Commit c6f658dc6b0ed3dea8993578c0cafe350d3a3e69

Authored by 徐烜
2 parents ac2f3b27 1700f00e

update

Too many changes to show.

To preserve performance only 28 of 64 files are displayed.

README.md
1 -公交调度系统BS版 0.1  
2 -======  
3 -----------  
4 -## 目录  
5 ----------  
6 - * [字典表](#字典表)  
7 - * [车载 gps 相关数据](#gps)  
8 - * [实时gps数据接口 http](#实时gps接口)  
9 - * [进出站数据表结构](#进站数据)  
10 - * [异常警报表结构](#异常警报)  
11 - * [大间隔](#大间隔)  
12 - * [超速](#超速)  
13 - * [越界](#越界)  
14 - * [越站](#越站)  
15 - * [聚集](#聚集)  
16 - * [掉线](#掉线)  
17 - * [消息上传下发](#消息上传下发)  
18 -  
19 -----------  
20 -  
21 -## 字典表  
22 -----------  
23 -字典操作全部由前端负责,主要有2种。  
24 -  
25 -1、将字典代码转换为中文 。片段加载完成后,包含 `class="nt-dictionary"` 的标签会被转换,data-group 为所属字典组。  
26 -``` html  
27 -  
28 -<span class="nt-dictionary" data-group="XianLuXingZhi">GJXL</span>  
29 -  
30 ---转换后  
31 -<span class="dictionary" data-group="XianLuXingZhi" data-code="GJXL" >过江线路</span>  
32 -```  
33 -2、生成下拉框,当包含`class="nt-dictionary"` 的标签是`select`时。  
34 -``` html  
35 -<!- 原 -->  
36 -<select class="nt-dictionary" data-group="XianLuXingZhi" data-code="GJXL"></select>  
37 -  
38 -<!-- 转换后 -->  
39 -<select class="nt-dictionary" data-group="XianLuXingZhi" >  
40 - <option value="GJXL">过江线路</option>  
41 - <option value="CCTXL">村村通线路</option>  
42 - <option value="YXXL">夜宵线路</option>  
43 - <option value="CSBS">穿梭巴士</option>  
44 -</select>  
45 -```  
46 -  
47 -## gps  
48 -----------  
49 -### 实时gps接口  
50 -  
51 -所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)  
52 -根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)  
53 -  
54 -<span style="color: red">Response</span>:  
55 -```json  
56 -{  
57 - "data":[  
58 - {  
59 - "companyCode":5,  
60 - "lineId":10329,  
61 - "deviceId":"05B01901",  
62 - "carparkNo":"00000000",  
63 - "stopNo":"7C890002",  
64 - "lon":121.549866,  
65 - "lat":31.238798,  
66 - "timestamp":1397104499000,  
67 - "speed":42.0,  
68 - "direction":245.9,  
69 - "state":0,  
70 - "upDown":0  
71 - }]  
72 -}  
73 -```  
74 -  
75 -| -- | --|--|  
76 -| ---- | ---- | ---- |  
77 -| companyCode | int | 公司代码 |  
78 -| lineId | int | 线路编码 |  
79 -| deviceId | String | 设备编号 |  
80 -| carparkNo | String | 停车场编码 |  
81 -| stopNo | String | 站点编码 |  
82 -| lon | float | 经度 |  
83 -| lat | float | 纬度 |  
84 -| timestamp | long | 时间戳 |  
85 -| speed | float | 速度|  
86 -| direction | float | 方向(角度) |  
87 -| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |  
88 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|  
89 -  
90 -  
91 -### 进站数据  
92 -----------  
93 -表名:  
94 -  
95 -| .. | .. | .. |  
96 -| ---- | ---- | ---- |  
97 -| id | int | 主键 |  
98 -| deviceId | String | 设备号 |  
99 -| lineId | int | 线路编码 |  
100 -| stopNo | long | 站点编码 |  
101 -| timestamp | long | 时间戳 |  
102 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
103 -| createDate | Date | 创建时间 |  
104 -  
105 -  
106 -### 异常警报  
107 -----------  
108 -  
109 -### 大间隔  
110 -----------  
111 -表名:  
112 -  
113 -| .. | .. | .. |  
114 -| ---- | ---- | ---- |  
115 -| id | int | 主键 |  
116 -| line | int | 线路编码 |  
117 -| station | String | 站点编码 |  
118 -| cVehicle | String | 当前车辆编码 |  
119 -| lastVehicle | String | 上一个车辆编码 |  
120 -| interval | long | 间隔时间(秒) |  
121 -| timestamp | long | 时间戳 |  
122 -| createDate | Date | 创建时间 |  
123 -  
124 -### 超速  
125 -----------  
126 -表名:  
127 -  
128 -| .. | .. | .. |  
129 -| ---- | ---- | ---- |  
130 -| id | int | 主键 |  
131 -| vehicle | String | 车辆编码 |  
132 -| line | int | 线路编码 |  
133 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
134 -| lon | float | 经度 |  
135 -| lat | float | 纬度|  
136 -| speed | float | 速度 |  
137 -| timestamp | long | 时间戳 |  
138 -| createDate | Date | 时间 |  
139 -  
140 -### 越界  
141 -----------  
142 -表名:  
143 -  
144 -| .. | .. | .. |  
145 -| ---- | ---- | ---- |  
146 -| id | int | 主键 |  
147 -| vehicle | String | 车辆编码 |  
148 -| line | int | 线路编码 |  
149 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
150 -| lon | float | 经度 |  
151 -| lat | float | 纬度|  
152 -| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|  
153 -| timestamp | long | 时间戳 |  
154 -| createDate | Date | 时间 |  
155 -  
156 -  
157 -### 越站  
158 -----------  
159 -表名:  
160 -  
161 -| .. | .. | .. |  
162 -| ---- | ---- | ---- |  
163 -| id | int | 主键 |  
164 -| line | int | 线路编码 |  
165 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
166 -| station | String | 站点编码 |  
167 -| vehicle | String | 车辆编码 |  
168 -| inData | Date | 进站时间 |  
169 -| outDate | Date | 出站时间 |  
170 -  
171 -  
172 -### 聚集  
173 -----------  
174 -表名:  
175 -  
176 -| .. | .. | .. |  
177 -| ---- | ---- | ---- |  
178 -| id | int | 主键 |  
179 -| line | int | 线路编码 |  
180 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
181 -| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |  
182 -| vehicles | String | 车辆编码(多个用 , 号分隔) |  
183 -| timestamp | long | 时间戳 |  
184 -| createDate | Date | 时间 |  
185 -  
186 -  
187 -### 掉线  
188 -----------  
189 -表名:  
190 -  
191 -| .. | .. | .. |  
192 -| ---- | ---- | ---- |  
193 -| id | int | 主键 |  
194 -| line | int | 线路编码 |  
195 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
196 -| vehicle | String | 车辆编码 |  
197 -| lon | float | 经度 |  
198 -| lat | float | 纬度|  
199 -| timestamp | long | 时间戳 |  
200 -| createDate | Date | 时间 |  
201 -  
202 -## 消息上传下发  
203 -----------  
204 -### 消息下发接口  
205 -[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/)  
206 -  
207 -<span style="color: red">Request</span>:  
208 -```json  
209 -{  
210 - "deviceId":12345,  
211 - "timestamp":44324,  
212 - "operCode":0x60,  
213 - "data":{  
214 - "companyCode":22,//short  
215 - "deviceId":"029L2222",//string  
216 - "timestamp":134326,//long  
217 - "instructType":00,//short  
218 - "dispatchInstruct":0x00,//short  
219 - "msgId":12345,//long  
220 - "alarmTime":201606012000,//long  
221 - "serviceState":00000000,//long  
222 - "txtContent":"你好"//string  
223 - }  
224 -}  
225 -```  
226 -| .. | .. | .. |  
227 -| ---- | ---- | ---- |  
228 -| deviceId | string | 设备编号 |  
229 -| timestamp | long | 时间戳(ms) |  
230 -| operCode | short | 一级协议 |  
231 -| data.companyCode | short | 公司代码 |  
232 -| data.deviceId | string | 设备编号 |  
233 -| data.timestamp | long | 时间戳 |  
234 -| data.instructType | short | 保留 默认0 |  
235 -| data.dispatchInstruct | short | 调度指令 |  
236 -| data.msgId | long | 同上 |  
237 -| data.alarmTime | long | 闹钟 |  
238 -| data.serviceState | long | 多状态字节 |  
239 -| data.txtContent | string | 下发的消息文本 |  
240 -```json  
241 -{  
242 - "deviceId":12345,  
243 - "timestamp":44324,  
244 - "operCode":0x64,  
245 - "data":{  
246 - "cityCode":22,//int  
247 - "deviceId":"029L2222",//string  
248 - "lineId":"134326"//string  
249 - }  
250 -}  
251 -```  
252 -| .. | .. | .. |  
253 -| ---- | ---- | ---- |  
254 -| deviceId | string | 设备编号 |  
255 -| timestamp | long | 时间戳(ms) |  
256 -| operCode | short | 一级协议 |  
257 -| data.cityCode | short | 城市区号 |  
258 -| data.deviceId | string | 设备编号 |  
259 -| data.lineId | string | 线路编号 |  
260 -  
261 -```json  
262 -{  
263 - "deviceId":12345,  
264 - "timestamp":44324,  
265 - "operCode":0xC0,  
266 - "data":{  
267 - "operCode":0x86,  
268 - "requestAck":0x06 // 0x06同意 0x15不同意  
269 - }  
270 -}  
271 -```  
272 -| .. | .. | .. |  
273 -| ---- | ---- | ---- |  
274 -| deviceId | string | 设备编号 |  
275 -| timestamp | long | 时间戳(ms) |  
276 -| operCode | short | 一级协议 |  
277 -| data.operCode | short | 二级协议 |  
278 -| data.requestAck | short | 请求应答字 |  
279 -  
280 -<span style="color: red">Response</span>:  
281 -```json  
282 -{  
283 - "errCode":0  
284 -}  
285 -```  
286 -  
287 -### 消息上传接口  
288 -  
289 -<span style="color: red">Request</span>:  
290 -```json  
291 -{  
292 - "deviceId":12345,  
293 - "timestamp":44324,  
294 - "status":0,// 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读  
295 - "operCode":0x80,// 消息确认时无数据  
296 - "data":{  
297 - "operCode":0x26,//二级协议  
298 - "requestCode":22//short  
299 - }// 消息确认将无数据  
300 -}  
301 -```  
302 -  
303 -<span style="color: red">Response</span>:  
304 -```json  
305 -{  
306 - "errCode":0  
307 -} 1 +公交调度系统BS版 0.1
  2 +======
  3 +----------
  4 +## 目录
  5 +---------
  6 + * [字典表](#字典表)
  7 + * [车载 gps 相关数据](#gps)
  8 + * [实时gps数据接口 http](#实时gps接口)
  9 + * [进出站数据表结构](#进站数据)
  10 + * [异常警报表结构](#异常警报)
  11 + * [大间隔](#大间隔)
  12 + * [超速](#超速)
  13 + * [越界](#越界)
  14 + * [越站](#越站)
  15 + * [聚集](#聚集)
  16 + * [掉线](#掉线)
  17 + * [消息上传下发](#消息上传下发)
  18 +
  19 +----------
  20 +
  21 +## 字典表
  22 +----------
  23 +字典操作全部由前端负责,主要有2种。
  24 +
  25 +1、将字典代码转换为中文 。片段加载完成后,包含 `class="nt-dictionary"` 的标签会被转换,data-group 为所属字典组。
  26 +``` html
  27 +
  28 +<span class="nt-dictionary" data-group="XianLuXingZhi">GJXL</span>
  29 +
  30 +--转换后
  31 +<span class="dictionary" data-group="XianLuXingZhi" data-code="GJXL" >过江线路</span>
  32 +```
  33 +2、生成下拉框,当包含`class="nt-dictionary"` 的标签是`select`时。
  34 +``` html
  35 +<!- 原 -->
  36 +<select class="nt-dictionary" data-group="XianLuXingZhi" data-code="GJXL"></select>
  37 +
  38 +<!-- 转换后 -->
  39 +<select class="nt-dictionary" data-group="XianLuXingZhi" >
  40 + <option value="GJXL">过江线路</option>
  41 + <option value="CCTXL">村村通线路</option>
  42 + <option value="YXXL">夜宵线路</option>
  43 + <option value="CSBS">穿梭巴士</option>
  44 +</select>
  45 +```
  46 +
  47 +## gps
  48 +----------
  49 +### 实时gps接口
  50 +
  51 +所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)
  52 +根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)
  53 +
  54 +<span style="color: red">Response</span>:
  55 +```json
  56 +{
  57 + "data":[
  58 + {
  59 + "companyCode":5,
  60 + "lineId":10329,
  61 + "deviceId":"05B01901",
  62 + "carparkNo":"00000000",
  63 + "stopNo":"7C890002",
  64 + "lon":121.549866,
  65 + "lat":31.238798,
  66 + "timestamp":1397104499000,
  67 + "speed":42.0,
  68 + "direction":245.9,
  69 + "state":0,
  70 + "upDown":0
  71 + }]
  72 +}
  73 +```
  74 +
  75 +| -- | --|--|
  76 +| ---- | ---- | ---- |
  77 +| companyCode | int | 公司代码 |
  78 +| lineId | int | 线路编码 |
  79 +| deviceId | String | 设备编号 |
  80 +| carparkNo | String | 停车场编码 |
  81 +| stopNo | String | 站点编码 |
  82 +| lon | float | 经度 |
  83 +| lat | float | 纬度 |
  84 +| timestamp | long | 时间戳 |
  85 +| speed | float | 速度|
  86 +| direction | float | 方向(角度) |
  87 +| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |
  88 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|
  89 +
  90 +
  91 +### 进站数据
  92 +----------
  93 +表名:
  94 +
  95 +| .. | .. | .. |
  96 +| ---- | ---- | ---- |
  97 +| id | int | 主键 |
  98 +| deviceId | String | 设备号 |
  99 +| lineId | int | 线路编码 |
  100 +| stopNo | long | 站点编码 |
  101 +| timestamp | long | 时间戳 |
  102 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  103 +| createDate | Date | 创建时间 |
  104 +
  105 +
  106 +### 异常警报
  107 +----------
  108 +
  109 +### 大间隔
  110 +----------
  111 +表名:
  112 +
  113 +| .. | .. | .. |
  114 +| ---- | ---- | ---- |
  115 +| id | int | 主键 |
  116 +| line | int | 线路编码 |
  117 +| station | String | 站点编码 |
  118 +| cVehicle | String | 当前车辆编码 |
  119 +| lastVehicle | String | 上一个车辆编码 |
  120 +| interval | long | 间隔时间(秒) |
  121 +| timestamp | long | 时间戳 |
  122 +| createDate | Date | 创建时间 |
  123 +
  124 +### 超速
  125 +----------
  126 +表名:
  127 +
  128 +| .. | .. | .. |
  129 +| ---- | ---- | ---- |
  130 +| id | int | 主键 |
  131 +| vehicle | String | 车辆编码 |
  132 +| line | int | 线路编码 |
  133 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  134 +| lon | float | 经度 |
  135 +| lat | float | 纬度|
  136 +| speed | float | 速度 |
  137 +| timestamp | long | 时间戳 |
  138 +| createDate | Date | 时间 |
  139 +
  140 +### 越界
  141 +----------
  142 +表名:
  143 +
  144 +| .. | .. | .. |
  145 +| ---- | ---- | ---- |
  146 +| id | int | 主键 |
  147 +| vehicle | String | 车辆编码 |
  148 +| line | int | 线路编码 |
  149 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  150 +| lon | float | 经度 |
  151 +| lat | float | 纬度|
  152 +| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|
  153 +| timestamp | long | 时间戳 |
  154 +| createDate | Date | 时间 |
  155 +
  156 +
  157 +### 越站
  158 +----------
  159 +表名:
  160 +
  161 +| .. | .. | .. |
  162 +| ---- | ---- | ---- |
  163 +| id | int | 主键 |
  164 +| line | int | 线路编码 |
  165 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  166 +| station | String | 站点编码 |
  167 +| vehicle | String | 车辆编码 |
  168 +| inData | Date | 进站时间 |
  169 +| outDate | Date | 出站时间 |
  170 +
  171 +
  172 +### 聚集
  173 +----------
  174 +表名:
  175 +
  176 +| .. | .. | .. |
  177 +| ---- | ---- | ---- |
  178 +| id | int | 主键 |
  179 +| line | int | 线路编码 |
  180 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  181 +| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |
  182 +| vehicles | String | 车辆编码(多个用 , 号分隔) |
  183 +| timestamp | long | 时间戳 |
  184 +| createDate | Date | 时间 |
  185 +
  186 +
  187 +### 掉线
  188 +----------
  189 +表名:
  190 +
  191 +| .. | .. | .. |
  192 +| ---- | ---- | ---- |
  193 +| id | int | 主键 |
  194 +| line | int | 线路编码 |
  195 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  196 +| vehicle | String | 车辆编码 |
  197 +| lon | float | 经度 |
  198 +| lat | float | 纬度|
  199 +| timestamp | long | 时间戳 |
  200 +| createDate | Date | 时间 |
  201 +
  202 +## 消息上传下发
  203 +----------
  204 +### 消息下发接口
  205 +[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/)
  206 +
  207 +<span style="color: red">Request</span>:
  208 +```json
  209 +{
  210 + "deviceId":12345,
  211 + "timestamp":44324,
  212 + "operCode":0x60,
  213 + "data":{
  214 + "companyCode":22,//short
  215 + "deviceId":"029L2222",//string
  216 + "timestamp":134326,//long
  217 + "instructType":00,//short
  218 + "dispatchInstruct":0x00,//short
  219 + "msgId":12345,//long
  220 + "alarmTime":201606012000,//long
  221 + "serviceState":00000000,//long
  222 + "txtContent":"你好"//string
  223 + }
  224 +}
  225 +```
  226 +| .. | .. | .. |
  227 +| ---- | ---- | ---- |
  228 +| deviceId | string | 设备编号 |
  229 +| timestamp | long | 时间戳(ms) |
  230 +| operCode | short | 一级协议 |
  231 +| data.companyCode | short | 公司代码 |
  232 +| data.deviceId | string | 设备编号 |
  233 +| data.timestamp | long | 时间戳 |
  234 +| data.instructType | short | 保留 默认0 |
  235 +| data.dispatchInstruct | short | 调度指令 |
  236 +| data.msgId | long | 同上 |
  237 +| data.alarmTime | long | 闹钟 |
  238 +| data.serviceState | long | 多状态字节 |
  239 +| data.txtContent | string | 下发的消息文本 |
  240 +```json
  241 +{
  242 + "deviceId":12345,
  243 + "timestamp":44324,
  244 + "operCode":0x64,
  245 + "data":{
  246 + "cityCode":22,//int
  247 + "deviceId":"029L2222",//string
  248 + "lineId":"134326"//string
  249 + }
  250 +}
  251 +```
  252 +| .. | .. | .. |
  253 +| ---- | ---- | ---- |
  254 +| deviceId | string | 设备编号 |
  255 +| timestamp | long | 时间戳(ms) |
  256 +| operCode | short | 一级协议 |
  257 +| data.cityCode | short | 城市区号 |
  258 +| data.deviceId | string | 设备编号 |
  259 +| data.lineId | string | 线路编号 |
  260 +
  261 +```json
  262 +{
  263 + "deviceId":12345,
  264 + "timestamp":44324,
  265 + "operCode":0xC0,
  266 + "data":{
  267 + "operCode":0x86,
  268 + "requestAck":0x06 // 0x06同意 0x15不同意
  269 + }
  270 +}
  271 +```
  272 +| .. | .. | .. |
  273 +| ---- | ---- | ---- |
  274 +| deviceId | string | 设备编号 |
  275 +| timestamp | long | 时间戳(ms) |
  276 +| operCode | short | 一级协议 |
  277 +| data.operCode | short | 二级协议 |
  278 +| data.requestAck | short | 请求应答字 |
  279 +
  280 +<span style="color: red">Response</span>:
  281 +```json
  282 +{
  283 + "errCode":0
  284 +}
  285 +```
  286 +
  287 +### 消息上传接口
  288 +
  289 +<span style="color: red">Request</span>:
  290 +```json
  291 +{
  292 + "deviceId":12345,
  293 + "timestamp":44324,
  294 + "status":0,// 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读
  295 + "operCode":0x80,// 消息确认时无数据
  296 + "data":{
  297 + "operCode":0x26,//二级协议
  298 + "requestCode":22//short
  299 + }// 消息确认将无数据
  300 +}
  301 +```
  302 +
  303 +<span style="color: red">Response</span>:
  304 +```json
  305 +{
  306 + "errCode":0
  307 +}
308 ``` 308 ```
309 \ No newline at end of file 309 \ No newline at end of file
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <groupId>com.bsth</groupId> 5 <groupId>com.bsth</groupId>
6 <artifactId>bsth_control</artifactId> 6 <artifactId>bsth_control</artifactId>
7 <version>0.0.1-SNAPSHOT</version> 7 <version>0.0.1-SNAPSHOT</version>
8 - <packaging>war</packaging> 8 + <packaging>jar</packaging>
9 9
10 <parent> 10 <parent>
11 <groupId>org.springframework.boot</groupId> 11 <groupId>org.springframework.boot</groupId>
src/main/java/com/bsth/StartCommand.java
@@ -3,6 +3,7 @@ package com.bsth; @@ -3,6 +3,7 @@ package com.bsth;
3 3
4 import java.util.concurrent.Executors; 4 import java.util.concurrent.Executors;
5 import java.util.concurrent.ScheduledExecutorService; 5 import java.util.concurrent.ScheduledExecutorService;
  6 +import java.util.concurrent.TimeUnit;
6 7
7 import org.slf4j.Logger; 8 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory; 9 import org.slf4j.LoggerFactory;
@@ -39,10 +40,10 @@ public class StartCommand implements CommandLineRunner{ @@ -39,10 +40,10 @@ public class StartCommand implements CommandLineRunner{
39 invocationSecurityMetadataSourceService.loadResourceDefine(); 40 invocationSecurityMetadataSourceService.loadResourceDefine();
40 41
41 /** 42 /**
42 - * 定时GPS实时数据更新线程,每次执行完成4秒后开始下一次 43 + * GPS实时数据更新线程,每次执行完成4秒后开始下一次
43 * 如果抛出异常,后续执行将被取消 44 * 如果抛出异常,后续执行将被取消
44 */ 45 */
45 - //scheduler.scheduleWithFixedDelay(gpsRefreshThread, 0, 4, TimeUnit.SECONDS); 46 + scheduler.scheduleWithFixedDelay(gpsRefreshThread, 0, 4, TimeUnit.SECONDS);
46 } catch (Exception e) { 47 } catch (Exception e) {
47 e.printStackTrace(); 48 e.printStackTrace();
48 } 49 }
src/main/java/com/bsth/controller/CarsController.java
1 -package com.bsth.controller;  
2 -  
3 -import com.bsth.entity.Cars;  
4 -import org.springframework.web.bind.annotation.RequestMapping;  
5 -import org.springframework.web.bind.annotation.RestController;  
6 -  
7 -/**  
8 - * Created by xu on 16/5/31.  
9 - */  
10 -@RestController  
11 -@RequestMapping("cars")  
12 -public class CarsController extends BaseController<Cars, Integer> {  
13 -} 1 +package com.bsth.controller;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +import org.springframework.web.bind.annotation.RequestMapping;
  5 +import org.springframework.web.bind.annotation.RestController;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/31.
  9 + */
  10 +@RestController
  11 +@RequestMapping("cars")
  12 +public class CarsController extends BaseController<Cars, Integer> {
  13 +}
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java 0 → 100644
  1 +package com.bsth.entity.realcontrol;
  2 +
  3 +import com.bsth.entity.sys.SysUser;
  4 +
  5 +import javax.persistence.*;
  6 +import java.util.Date;
  7 +
  8 +/**
  9 + * 实际排班计划明细。
  10 + */
  11 +@Entity
  12 +@Table(name = "bsth_c_s_sp_info_real")
  13 +public class ScheduleRealInfo {
  14 +
  15 + /** 主键Id */
  16 + @Id
  17 + @GeneratedValue
  18 + private Long id;
  19 +
  20 + /** 排班计划日期 */
  21 + private Date scheduleDate;
  22 +
  23 + /** 路牌名称 */
  24 + private String lpName;
  25 + /** 线路编码 */
  26 + private String xlBm;
  27 + /** 线路名称 */
  28 + private String xlName;
  29 + /** 车辆自编号 */
  30 + private String clZbh;
  31 +
  32 + /** 报道1时间(格式 HH:mm) */
  33 + private String bd1Time;
  34 + /** 出场1时间(格式 HH:mm) */
  35 + private String cc1Time;
  36 + /** 驾驶员1工号 */
  37 + private String j1Gh;
  38 + /** 驾驶员1名字 */
  39 + private String j1Name;
  40 + /** 售票员1工号 */
  41 + private String s1Gh;
  42 + /** 售票员1名字 */
  43 + private String s1Name;
  44 +
  45 + // 冗余的时刻明细信息
  46 + /** 线路方向 */
  47 + private String xlDir;
  48 + /** 起点站名称 */
  49 + private String qdz;
  50 + /** 终点站名称 */
  51 + private String zdz;
  52 + /** 发车时间(格式 HH:mm) */
  53 + private String fcsj;
  54 + /** 发车顺序号 */
  55 + private int fcno;
  56 + /** 对应班次数 */
  57 + private int bcs;
  58 + /** 计划里程 */
  59 + private double jhlc;
  60 + /** 班次历时 */
  61 + private int bcsj;
  62 +
  63 + /** 操作人 */
  64 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  65 + private SysUser user;
  66 +
  67 + // 创建日期
  68 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  69 + private Date createDate;
  70 + // 修改日期
  71 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  72 + private Date updateDate;
  73 +
  74 + public Long getId() {
  75 + return id;
  76 + }
  77 +
  78 + public void setId(Long id) {
  79 + this.id = id;
  80 + }
  81 +
  82 + public Date getScheduleDate() {
  83 + return scheduleDate;
  84 + }
  85 +
  86 + public void setScheduleDate(Date scheduleDate) {
  87 + this.scheduleDate = scheduleDate;
  88 + }
  89 +
  90 + public String getLpName() {
  91 + return lpName;
  92 + }
  93 +
  94 + public void setLpName(String lpName) {
  95 + this.lpName = lpName;
  96 + }
  97 +
  98 + public String getXlName() {
  99 + return xlName;
  100 + }
  101 +
  102 + public void setXlName(String xlName) {
  103 + this.xlName = xlName;
  104 + }
  105 +
  106 + public String getClZbh() {
  107 + return clZbh;
  108 + }
  109 +
  110 + public void setClZbh(String clZbh) {
  111 + this.clZbh = clZbh;
  112 + }
  113 +
  114 + public String getCc1Time() {
  115 + return cc1Time;
  116 + }
  117 +
  118 + public void setCc1Time(String cc1Time) {
  119 + this.cc1Time = cc1Time;
  120 + }
  121 +
  122 + public String getJ1Gh() {
  123 + return j1Gh;
  124 + }
  125 +
  126 + public void setJ1Gh(String j1Gh) {
  127 + this.j1Gh = j1Gh;
  128 + }
  129 +
  130 + public String getJ1Name() {
  131 + return j1Name;
  132 + }
  133 +
  134 + public void setJ1Name(String j1Name) {
  135 + this.j1Name = j1Name;
  136 + }
  137 +
  138 + public String getS1Gh() {
  139 + return s1Gh;
  140 + }
  141 +
  142 + public void setS1Gh(String s1Gh) {
  143 + this.s1Gh = s1Gh;
  144 + }
  145 +
  146 + public String getS1Name() {
  147 + return s1Name;
  148 + }
  149 +
  150 + public void setS1Name(String s1Name) {
  151 + this.s1Name = s1Name;
  152 + }
  153 +
  154 + public String getBd1Time() {
  155 + return bd1Time;
  156 + }
  157 +
  158 + public void setBd1Time(String bd1Time) {
  159 + this.bd1Time = bd1Time;
  160 + }
  161 +
  162 + public String getXlDir() {
  163 + return xlDir;
  164 + }
  165 +
  166 + public void setXlDir(String xlDir) {
  167 + this.xlDir = xlDir;
  168 + }
  169 +
  170 + public String getQdz() {
  171 + return qdz;
  172 + }
  173 +
  174 + public void setQdz(String qdz) {
  175 + this.qdz = qdz;
  176 + }
  177 +
  178 + public String getZdz() {
  179 + return zdz;
  180 + }
  181 +
  182 + public void setZdz(String zdz) {
  183 + this.zdz = zdz;
  184 + }
  185 +
  186 + public String getFcsj() {
  187 + return fcsj;
  188 + }
  189 +
  190 + public void setFcsj(String fcsj) {
  191 + this.fcsj = fcsj;
  192 + }
  193 +
  194 + public SysUser getUser() {
  195 + return user;
  196 + }
  197 +
  198 + public void setUser(SysUser user) {
  199 + this.user = user;
  200 + }
  201 +
  202 + public Date getCreateDate() {
  203 + return createDate;
  204 + }
  205 +
  206 + public void setCreateDate(Date createDate) {
  207 + this.createDate = createDate;
  208 + }
  209 +
  210 + public Date getUpdateDate() {
  211 + return updateDate;
  212 + }
  213 +
  214 + public void setUpdateDate(Date updateDate) {
  215 + this.updateDate = updateDate;
  216 + }
  217 +
  218 + public int getFcno() {
  219 + return fcno;
  220 + }
  221 +
  222 + public void setFcno(int fcno) {
  223 + this.fcno = fcno;
  224 + }
  225 +
  226 + public int getBcs() {
  227 + return bcs;
  228 + }
  229 +
  230 + public void setBcs(int bcs) {
  231 + this.bcs = bcs;
  232 + }
  233 +
  234 + public double getJhlc() {
  235 + return jhlc;
  236 + }
  237 +
  238 + public void setJhlc(double jhlc) {
  239 + this.jhlc = jhlc;
  240 + }
  241 +
  242 + public int getBcsj() {
  243 + return bcsj;
  244 + }
  245 +
  246 + public void setBcsj(int bcsj) {
  247 + this.bcsj = bcsj;
  248 + }
  249 +
  250 + public String getXlBm() {
  251 + return xlBm;
  252 + }
  253 +
  254 + public void setXlBm(String xlBm) {
  255 + this.xlBm = xlBm;
  256 + }
  257 +}
src/main/java/com/bsth/entity/schedule/CarConfigInfo.java
1 -package com.bsth.entity.schedule;  
2 -  
3 -import com.bsth.entity.Cars;  
4 -import com.bsth.entity.Line;  
5 -import com.bsth.entity.sys.SysUser;  
6 -  
7 -import javax.persistence.*;  
8 -import java.util.Date;  
9 -  
10 -/**  
11 - * 车辆配置信息。  
12 - */  
13 -@Entity  
14 -@Table(name = "bsth_c_s_ccinfo")  
15 -public class CarConfigInfo {  
16 -  
17 - /** 主健Id */  
18 - @Id  
19 - @GeneratedValue  
20 - private Long id;  
21 -  
22 - /** 线路关联 */  
23 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
24 - private Line xl;  
25 - /** 车辆关联 */  
26 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
27 - private Cars cl;  
28 -  
29 -  
30 - /** 早班时间(格式:HH:mm) */  
31 - @Column(length = 5)  
32 - private String zbsj;  
33 - /** 末班时间(格式:HH:mm) */  
34 - @Column(length = 5)  
35 - private String mbsj;  
36 -  
37 - /** 启用日期 */  
38 - @Column(nullable = false)  
39 - private Date qyrq;  
40 - /** 终止日期 */  
41 - private Date zzrq;  
42 - @Column(nullable = false)  
43 - /** 停车点(TODO:这个不知道是否要关联)*/  
44 - private String tcd;  
45 - /** 受否切换 0或者1(TODO:不懂,貌似喝历史配车有关) */  
46 - @Column(nullable = false)  
47 - private int isSwitch;  
48 -  
49 - /** 创建人 */  
50 - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)  
51 - private SysUser createBy;  
52 - /** 修改人 */  
53 - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)  
54 - private SysUser updateBy;  
55 -  
56 - /** 创建日期 */  
57 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
58 - private Date createDate;  
59 - /** 修改日期 */  
60 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
61 - private Date updateDate;  
62 -  
63 - public Long getId() {  
64 - return id;  
65 - }  
66 -  
67 - public void setId(Long id) {  
68 - this.id = id;  
69 - }  
70 -  
71 - public Line getXl() {  
72 - return xl;  
73 - }  
74 -  
75 - public void setXl(Line xl) {  
76 - this.xl = xl;  
77 - }  
78 -  
79 - public Cars getCl() {  
80 - return cl;  
81 - }  
82 -  
83 - public void setCl(Cars cl) {  
84 - this.cl = cl;  
85 - }  
86 -  
87 - public String getZbsj() {  
88 - return zbsj;  
89 - }  
90 -  
91 - public void setZbsj(String zbsj) {  
92 - this.zbsj = zbsj;  
93 - }  
94 -  
95 - public String getMbsj() {  
96 - return mbsj;  
97 - }  
98 -  
99 - public void setMbsj(String mbsj) {  
100 - this.mbsj = mbsj;  
101 - }  
102 -  
103 - public Date getQyrq() {  
104 - return qyrq;  
105 - }  
106 -  
107 - public void setQyrq(Date qyrq) {  
108 - this.qyrq = qyrq;  
109 - }  
110 -  
111 - public Date getZzrq() {  
112 - return zzrq;  
113 - }  
114 -  
115 - public void setZzrq(Date zzrq) {  
116 - this.zzrq = zzrq;  
117 - }  
118 -  
119 - public String getTcd() {  
120 - return tcd;  
121 - }  
122 -  
123 - public void setTcd(String tcd) {  
124 - this.tcd = tcd;  
125 - }  
126 -  
127 - public int getIsSwitch() {  
128 - return isSwitch;  
129 - }  
130 -  
131 - public void setIsSwitch(int isSwitch) {  
132 - this.isSwitch = isSwitch;  
133 - }  
134 -  
135 - public SysUser getCreateBy() {  
136 - return createBy;  
137 - }  
138 -  
139 - public void setCreateBy(SysUser createBy) {  
140 - this.createBy = createBy;  
141 - }  
142 -  
143 - public SysUser getUpdateBy() {  
144 - return updateBy;  
145 - }  
146 -  
147 - public void setUpdateBy(SysUser updateBy) {  
148 - this.updateBy = updateBy;  
149 - }  
150 -  
151 - public Date getCreateDate() {  
152 - return createDate;  
153 - }  
154 -  
155 - public void setCreateDate(Date createDate) {  
156 - this.createDate = createDate;  
157 - }  
158 -  
159 - public Date getUpdateDate() {  
160 - return updateDate;  
161 - }  
162 -  
163 - public void setUpdateDate(Date updateDate) {  
164 - this.updateDate = updateDate;  
165 - }  
166 -} 1 +package com.bsth.entity.schedule;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +import com.bsth.entity.Line;
  5 +import com.bsth.entity.sys.SysUser;
  6 +
  7 +import javax.persistence.*;
  8 +import java.util.Date;
  9 +
  10 +/**
  11 + * 车辆配置信息。
  12 + */
  13 +@Entity
  14 +@Table(name = "bsth_c_s_ccinfo")
  15 +public class CarConfigInfo {
  16 +
  17 + /** 主健Id */
  18 + @Id
  19 + @GeneratedValue
  20 + private Long id;
  21 +
  22 + /** 线路关联 */
  23 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  24 + private Line xl;
  25 + /** 车辆关联 */
  26 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  27 + private Cars cl;
  28 +
  29 +
  30 + /** 早班时间(格式:HH:mm) */
  31 + @Column(length = 5)
  32 + private String zbsj;
  33 + /** 末班时间(格式:HH:mm) */
  34 + @Column(length = 5)
  35 + private String mbsj;
  36 +
  37 + /** 启用日期 */
  38 + @Column(nullable = false)
  39 + private Date qyrq;
  40 + /** 终止日期 */
  41 + private Date zzrq;
  42 + @Column(nullable = false)
  43 + /** 停车点(TODO:这个不知道是否要关联)*/
  44 + private String tcd;
  45 + /** 受否切换 0或者1(TODO:不懂,貌似喝历史配车有关) */
  46 + @Column(nullable = false)
  47 + private int isSwitch;
  48 +
  49 + /** 创建人 */
  50 + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
  51 + private SysUser createBy;
  52 + /** 修改人 */
  53 + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
  54 + private SysUser updateBy;
  55 +
  56 + /** 创建日期 */
  57 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  58 + private Date createDate;
  59 + /** 修改日期 */
  60 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  61 + private Date updateDate;
  62 +
  63 + public Long getId() {
  64 + return id;
  65 + }
  66 +
  67 + public void setId(Long id) {
  68 + this.id = id;
  69 + }
  70 +
  71 + public Line getXl() {
  72 + return xl;
  73 + }
  74 +
  75 + public void setXl(Line xl) {
  76 + this.xl = xl;
  77 + }
  78 +
  79 + public Cars getCl() {
  80 + return cl;
  81 + }
  82 +
  83 + public void setCl(Cars cl) {
  84 + this.cl = cl;
  85 + }
  86 +
  87 + public String getZbsj() {
  88 + return zbsj;
  89 + }
  90 +
  91 + public void setZbsj(String zbsj) {
  92 + this.zbsj = zbsj;
  93 + }
  94 +
  95 + public String getMbsj() {
  96 + return mbsj;
  97 + }
  98 +
  99 + public void setMbsj(String mbsj) {
  100 + this.mbsj = mbsj;
  101 + }
  102 +
  103 + public Date getQyrq() {
  104 + return qyrq;
  105 + }
  106 +
  107 + public void setQyrq(Date qyrq) {
  108 + this.qyrq = qyrq;
  109 + }
  110 +
  111 + public Date getZzrq() {
  112 + return zzrq;
  113 + }
  114 +
  115 + public void setZzrq(Date zzrq) {
  116 + this.zzrq = zzrq;
  117 + }
  118 +
  119 + public String getTcd() {
  120 + return tcd;
  121 + }
  122 +
  123 + public void setTcd(String tcd) {
  124 + this.tcd = tcd;
  125 + }
  126 +
  127 + public int getIsSwitch() {
  128 + return isSwitch;
  129 + }
  130 +
  131 + public void setIsSwitch(int isSwitch) {
  132 + this.isSwitch = isSwitch;
  133 + }
  134 +
  135 + public SysUser getCreateBy() {
  136 + return createBy;
  137 + }
  138 +
  139 + public void setCreateBy(SysUser createBy) {
  140 + this.createBy = createBy;
  141 + }
  142 +
  143 + public SysUser getUpdateBy() {
  144 + return updateBy;
  145 + }
  146 +
  147 + public void setUpdateBy(SysUser updateBy) {
  148 + this.updateBy = updateBy;
  149 + }
  150 +
  151 + public Date getCreateDate() {
  152 + return createDate;
  153 + }
  154 +
  155 + public void setCreateDate(Date createDate) {
  156 + this.createDate = createDate;
  157 + }
  158 +
  159 + public Date getUpdateDate() {
  160 + return updateDate;
  161 + }
  162 +
  163 + public void setUpdateDate(Date updateDate) {
  164 + this.updateDate = updateDate;
  165 + }
  166 +}
src/main/java/com/bsth/entity/schedule/EmployeeConfigInfo.java
1 -package com.bsth.entity.schedule;  
2 -  
3 -import com.bsth.entity.Cars;  
4 -import com.bsth.entity.Line;  
5 -import com.bsth.entity.Personnel;  
6 -import com.bsth.entity.sys.SysUser;  
7 -  
8 -import javax.persistence.*;  
9 -import java.util.Date;  
10 -  
11 -/**  
12 - * 人员配置信息。  
13 - */  
14 -@Entity  
15 -@Table(name = "bsth_c_s_ecinfo")  
16 -public class EmployeeConfigInfo {  
17 -  
18 - /** 主键Id */  
19 - @Id  
20 - @GeneratedValue  
21 - private Long id;  
22 -  
23 - /** 线路关联 */  
24 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
25 - private Line xl;  
26 - /** 车辆关联 */  
27 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
28 - private Cars cl;  
29 - /** 人员关联(驾驶员) */  
30 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
31 - private Personnel jsy;  
32 - /** 人员关联(售票员) */  
33 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
34 - private Personnel spy;  
35 -  
36 - /** 搭班编码(TODO:估计是售票员和驾驶员搭配时使用) */  
37 - private String dbbm;  
38 -  
39 - /** 创建人 */  
40 - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)  
41 - private SysUser createBy;  
42 - /** 修改人 */  
43 - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)  
44 - private SysUser updateBy;  
45 -  
46 - /** 创建日期 */  
47 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
48 - private Date createDate;  
49 - /** 修改日期 */  
50 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
51 - private Date updateDate;  
52 -  
53 - public Long getId() {  
54 - return id;  
55 - }  
56 -  
57 - public void setId(Long id) {  
58 - this.id = id;  
59 - }  
60 -  
61 - public Line getXl() {  
62 - return xl;  
63 - }  
64 -  
65 - public void setXl(Line xl) {  
66 - this.xl = xl;  
67 - }  
68 -  
69 - public Cars getCl() {  
70 - return cl;  
71 - }  
72 -  
73 - public void setCl(Cars cl) {  
74 - this.cl = cl;  
75 - }  
76 -  
77 - public Personnel getJsy() {  
78 - return jsy;  
79 - }  
80 -  
81 - public void setJsy(Personnel jsy) {  
82 - this.jsy = jsy;  
83 - }  
84 -  
85 - public Personnel getSpy() {  
86 - return spy;  
87 - }  
88 -  
89 - public void setSpy(Personnel spy) {  
90 - this.spy = spy;  
91 - }  
92 -  
93 - public String getDbbm() {  
94 - return dbbm;  
95 - }  
96 -  
97 - public void setDbbm(String dbbm) {  
98 - this.dbbm = dbbm;  
99 - }  
100 -  
101 - public Date getCreateDate() {  
102 - return createDate;  
103 - }  
104 -  
105 - public void setCreateDate(Date createDate) {  
106 - this.createDate = createDate;  
107 - }  
108 -  
109 - public Date getUpdateDate() {  
110 - return updateDate;  
111 - }  
112 -  
113 - public void setUpdateDate(Date updateDate) {  
114 - this.updateDate = updateDate;  
115 - }  
116 -} 1 +package com.bsth.entity.schedule;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +import com.bsth.entity.Line;
  5 +import com.bsth.entity.Personnel;
  6 +import com.bsth.entity.sys.SysUser;
  7 +
  8 +import javax.persistence.*;
  9 +import java.util.Date;
  10 +
  11 +/**
  12 + * 人员配置信息。
  13 + */
  14 +@Entity
  15 +@Table(name = "bsth_c_s_ecinfo")
  16 +public class EmployeeConfigInfo {
  17 +
  18 + /** 主键Id */
  19 + @Id
  20 + @GeneratedValue
  21 + private Long id;
  22 +
  23 + /** 线路关联 */
  24 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  25 + private Line xl;
  26 + /** 车辆关联 */
  27 + @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  28 + private Cars cl;
  29 + /** 人员关联(驾驶员) */
  30 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  31 + private Personnel jsy;
  32 + /** 人员关联(售票员) */
  33 + @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  34 + private Personnel spy;
  35 +
  36 + /** 搭班编码(TODO:估计是售票员和驾驶员搭配时使用) */
  37 + private String dbbm;
  38 +
  39 + /** 创建人 */
  40 + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
  41 + private SysUser createBy;
  42 + /** 修改人 */
  43 + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
  44 + private SysUser updateBy;
  45 +
  46 + /** 创建日期 */
  47 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  48 + private Date createDate;
  49 + /** 修改日期 */
  50 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  51 + private Date updateDate;
  52 +
  53 + public Long getId() {
  54 + return id;
  55 + }
  56 +
  57 + public void setId(Long id) {
  58 + this.id = id;
  59 + }
  60 +
  61 + public Line getXl() {
  62 + return xl;
  63 + }
  64 +
  65 + public void setXl(Line xl) {
  66 + this.xl = xl;
  67 + }
  68 +
  69 + public Cars getCl() {
  70 + return cl;
  71 + }
  72 +
  73 + public void setCl(Cars cl) {
  74 + this.cl = cl;
  75 + }
  76 +
  77 + public Personnel getJsy() {
  78 + return jsy;
  79 + }
  80 +
  81 + public void setJsy(Personnel jsy) {
  82 + this.jsy = jsy;
  83 + }
  84 +
  85 + public Personnel getSpy() {
  86 + return spy;
  87 + }
  88 +
  89 + public void setSpy(Personnel spy) {
  90 + this.spy = spy;
  91 + }
  92 +
  93 + public String getDbbm() {
  94 + return dbbm;
  95 + }
  96 +
  97 + public void setDbbm(String dbbm) {
  98 + this.dbbm = dbbm;
  99 + }
  100 +
  101 + public Date getCreateDate() {
  102 + return createDate;
  103 + }
  104 +
  105 + public void setCreateDate(Date createDate) {
  106 + this.createDate = createDate;
  107 + }
  108 +
  109 + public Date getUpdateDate() {
  110 + return updateDate;
  111 + }
  112 +
  113 + public void setUpdateDate(Date updateDate) {
  114 + this.updateDate = updateDate;
  115 + }
  116 +}
src/main/java/com/bsth/entity/schedule/SchedulePlan.java
1 -package com.bsth.entity.schedule;  
2 -  
3 -import com.bsth.entity.Line;  
4 -import com.bsth.entity.schedule.rule.ScheduleRule1;  
5 -import com.bsth.entity.sys.SysUser;  
6 -  
7 -import javax.persistence.*;  
8 -import java.util.Date;  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * 排班计划。  
13 - */  
14 -@Entity  
15 -@Table(name = "bsth_c_s_sp")  
16 -public class SchedulePlan {  
17 -  
18 - /** 主键Id */  
19 - @Id  
20 - @GeneratedValue  
21 - private Long id;  
22 -  
23 - /** 关联的线路 */  
24 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
25 - private Line xl;  
26 - /** 关联的时刻表/模版 */  
27 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
28 - private TTInfo ttInfo;  
29 - /** 关联的排班规则 */  
30 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
31 - private ScheduleRule1 scheduleRule1;  
32 -  
33 - /** 排班计划的开始时间 */  
34 - private Date scheduleFromTime;  
35 - /** 排班计划的结束时间 */  
36 - private Date scheduleToTime;  
37 -  
38 - /** 操作人 */  
39 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
40 - private SysUser user;  
41 -  
42 - /** 使用中间表的一对多关联 明细信息 */  
43 - @OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
44 - @JoinTable(  
45 - name = "bsth_c_s_sp_r_info",  
46 - joinColumns = @JoinColumn(name = "sp_id"),  
47 - inverseJoinColumns = @JoinColumn(name = "sp_info_id")  
48 - )  
49 - private List<SchedulePlanInfo> schedulePlanInfoList;  
50 -  
51 - // 创建日期  
52 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
53 - private Date createDate;  
54 - // 修改日期  
55 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
56 - private Date updateDate;  
57 -  
58 - public Long getId() {  
59 - return id;  
60 - }  
61 -  
62 - public void setId(Long id) {  
63 - this.id = id;  
64 - }  
65 -  
66 - public Line getXl() {  
67 - return xl;  
68 - }  
69 -  
70 - public void setXl(Line xl) {  
71 - this.xl = xl;  
72 - }  
73 -  
74 - public TTInfo getTtInfo() {  
75 - return ttInfo;  
76 - }  
77 -  
78 - public void setTtInfo(TTInfo ttInfo) {  
79 - this.ttInfo = ttInfo;  
80 - }  
81 -  
82 - public Date getScheduleFromTime() {  
83 - return scheduleFromTime;  
84 - }  
85 -  
86 - public void setScheduleFromTime(Date scheduleFromTime) {  
87 - this.scheduleFromTime = scheduleFromTime;  
88 - }  
89 -  
90 - public Date getScheduleToTime() {  
91 - return scheduleToTime;  
92 - }  
93 -  
94 - public void setScheduleToTime(Date scheduleToTime) {  
95 - this.scheduleToTime = scheduleToTime;  
96 - }  
97 -  
98 - public SysUser getUser() {  
99 - return user;  
100 - }  
101 -  
102 - public void setUser(SysUser user) {  
103 - this.user = user;  
104 - }  
105 -  
106 - public Date getCreateDate() {  
107 - return createDate;  
108 - }  
109 -  
110 - public void setCreateDate(Date createDate) {  
111 - this.createDate = createDate;  
112 - }  
113 -  
114 - public Date getUpdateDate() {  
115 - return updateDate;  
116 - }  
117 -  
118 - public ScheduleRule1 getScheduleRule1() {  
119 - return scheduleRule1;  
120 - }  
121 -  
122 - public void setScheduleRule1(ScheduleRule1 scheduleRule1) {  
123 - this.scheduleRule1 = scheduleRule1;  
124 - }  
125 -  
126 - public void setUpdateDate(Date updateDate) {  
127 - this.updateDate = updateDate;  
128 - }  
129 -} 1 +package com.bsth.entity.schedule;
  2 +
  3 +import com.bsth.entity.Line;
  4 +import com.bsth.entity.schedule.rule.ScheduleRule1;
  5 +import com.bsth.entity.sys.SysUser;
  6 +
  7 +import javax.persistence.*;
  8 +import java.util.Date;
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * 排班计划。
  13 + */
  14 +@Entity
  15 +@Table(name = "bsth_c_s_sp")
  16 +public class SchedulePlan {
  17 +
  18 + /** 主键Id */
  19 + @Id
  20 + @GeneratedValue
  21 + private Long id;
  22 +
  23 + /** 关联的线路 */
  24 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  25 + private Line xl;
  26 + /** 关联的时刻表/模版 */
  27 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  28 + private TTInfo ttInfo;
  29 + /** 关联的排班规则 */
  30 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  31 + private ScheduleRule1 scheduleRule1;
  32 +
  33 + /** 排班计划的开始时间 */
  34 + private Date scheduleFromTime;
  35 + /** 排班计划的结束时间 */
  36 + private Date scheduleToTime;
  37 +
  38 + /** 操作人 */
  39 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  40 + private SysUser user;
  41 +
  42 + /** 使用中间表的一对多关联 明细信息 */
  43 + @OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  44 + @JoinTable(
  45 + name = "bsth_c_s_sp_r_info",
  46 + joinColumns = @JoinColumn(name = "sp_id"),
  47 + inverseJoinColumns = @JoinColumn(name = "sp_info_id")
  48 + )
  49 + private List<SchedulePlanInfo> schedulePlanInfoList;
  50 +
  51 + // 创建日期
  52 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  53 + private Date createDate;
  54 + // 修改日期
  55 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  56 + private Date updateDate;
  57 +
  58 + public Long getId() {
  59 + return id;
  60 + }
  61 +
  62 + public void setId(Long id) {
  63 + this.id = id;
  64 + }
  65 +
  66 + public Line getXl() {
  67 + return xl;
  68 + }
  69 +
  70 + public void setXl(Line xl) {
  71 + this.xl = xl;
  72 + }
  73 +
  74 + public TTInfo getTtInfo() {
  75 + return ttInfo;
  76 + }
  77 +
  78 + public void setTtInfo(TTInfo ttInfo) {
  79 + this.ttInfo = ttInfo;
  80 + }
  81 +
  82 + public Date getScheduleFromTime() {
  83 + return scheduleFromTime;
  84 + }
  85 +
  86 + public void setScheduleFromTime(Date scheduleFromTime) {
  87 + this.scheduleFromTime = scheduleFromTime;
  88 + }
  89 +
  90 + public Date getScheduleToTime() {
  91 + return scheduleToTime;
  92 + }
  93 +
  94 + public void setScheduleToTime(Date scheduleToTime) {
  95 + this.scheduleToTime = scheduleToTime;
  96 + }
  97 +
  98 + public SysUser getUser() {
  99 + return user;
  100 + }
  101 +
  102 + public void setUser(SysUser user) {
  103 + this.user = user;
  104 + }
  105 +
  106 + public Date getCreateDate() {
  107 + return createDate;
  108 + }
  109 +
  110 + public void setCreateDate(Date createDate) {
  111 + this.createDate = createDate;
  112 + }
  113 +
  114 + public Date getUpdateDate() {
  115 + return updateDate;
  116 + }
  117 +
  118 + public ScheduleRule1 getScheduleRule1() {
  119 + return scheduleRule1;
  120 + }
  121 +
  122 + public void setScheduleRule1(ScheduleRule1 scheduleRule1) {
  123 + this.scheduleRule1 = scheduleRule1;
  124 + }
  125 +
  126 + public void setUpdateDate(Date updateDate) {
  127 + this.updateDate = updateDate;
  128 + }
  129 +}
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
1 -package com.bsth.entity.schedule;  
2 -  
3 -import com.bsth.entity.sys.SysUser;  
4 -  
5 -import javax.persistence.*;  
6 -import java.util.Date;  
7 -  
8 -/**  
9 - * 排班计划明细。  
10 - * 内部字段全冗余,无关联对象(外键关联关系),  
11 - * 可以单独存在,其余表要关联此对象/表,必须使用中间对象/表。  
12 - */  
13 -@Entity  
14 -@Table(name = "bsth_c_s_sp_info")  
15 -public class SchedulePlanInfo {  
16 -  
17 - /** 主键Id */  
18 - @Id  
19 - @GeneratedValue  
20 - private Long id;  
21 -  
22 - /** 排班计划日期 */  
23 - private Date scheduleDate;  
24 -  
25 - /** 路牌名称 */  
26 - private String lpName;  
27 - /** 线路编码 */  
28 - private String xlBm;  
29 - /** 线路名称 */  
30 - private String xlName;  
31 - /** 车辆自编号 */  
32 - private String clZbh;  
33 -  
34 -  
35 - /** 报道1时间(格式 HH:mm) */  
36 - private String bd1Time;  
37 - /** 出场1时间(格式 HH:mm) */  
38 - private String cc1Time;  
39 - /** 驾驶员1工号 */  
40 - private String j1Gh;  
41 - /** 驾驶员1名字 */  
42 - private String j1Name;  
43 - /** 售票员1工号 */  
44 - private String s1Gh;  
45 - /** 售票员1名字 */  
46 - private String s1Name;  
47 -  
48 - /** 报道2时间(格式 HH:mm) */  
49 - private String bd2Time;  
50 - /** 出场2时间(格式 HH:mm) */  
51 - private String cc2Time;  
52 - /** 驾驶员2工号 */  
53 - private String j2Gh;  
54 - /** 驾驶员2名字 */  
55 - private String j2Name;  
56 - /** 售票员2工号 */  
57 - private String s2Gh;  
58 - /** 售票员2名字 */  
59 - private String s2Name;  
60 -  
61 - // 冗余的时刻明细信息  
62 - /** 线路方向 */  
63 - private String xlDir;  
64 - /** 起点站名称 */  
65 - private String qdz;  
66 - /** 终点站名称 */  
67 - private String zdz;  
68 - /** 发车时间(格式 HH:mm) */  
69 - private String fcsj;  
70 - /** 发车顺序号 */  
71 - private int fcno;  
72 - /** 对应班次数 */  
73 - private int bcs;  
74 - /** 计划里程 */  
75 - private double jhlc;  
76 - /** 班次历时 */  
77 - private int bcsj;  
78 -  
79 - /** 操作人 */  
80 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
81 - private SysUser user;  
82 -  
83 - // 创建日期  
84 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
85 - private Date createDate;  
86 - // 修改日期  
87 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
88 - private Date updateDate;  
89 -  
90 - public Long getId() {  
91 - return id;  
92 - }  
93 -  
94 - public void setId(Long id) {  
95 - this.id = id;  
96 - }  
97 -  
98 - public Date getScheduleDate() {  
99 - return scheduleDate;  
100 - }  
101 -  
102 - public void setScheduleDate(Date scheduleDate) {  
103 - this.scheduleDate = scheduleDate;  
104 - }  
105 -  
106 - public String getLpName() {  
107 - return lpName;  
108 - }  
109 -  
110 - public void setLpName(String lpName) {  
111 - this.lpName = lpName;  
112 - }  
113 -  
114 - public String getXlName() {  
115 - return xlName;  
116 - }  
117 -  
118 - public void setXlName(String xlName) {  
119 - this.xlName = xlName;  
120 - }  
121 -  
122 - public String getClZbh() {  
123 - return clZbh;  
124 - }  
125 -  
126 - public void setClZbh(String clZbh) {  
127 - this.clZbh = clZbh;  
128 - }  
129 -  
130 - public String getCc1Time() {  
131 - return cc1Time;  
132 - }  
133 -  
134 - public void setCc1Time(String cc1Time) {  
135 - this.cc1Time = cc1Time;  
136 - }  
137 -  
138 - public String getJ1Gh() {  
139 - return j1Gh;  
140 - }  
141 -  
142 - public void setJ1Gh(String j1Gh) {  
143 - this.j1Gh = j1Gh;  
144 - }  
145 -  
146 - public String getJ1Name() {  
147 - return j1Name;  
148 - }  
149 -  
150 - public void setJ1Name(String j1Name) {  
151 - this.j1Name = j1Name;  
152 - }  
153 -  
154 - public String getS1Gh() {  
155 - return s1Gh;  
156 - }  
157 -  
158 - public void setS1Gh(String s1Gh) {  
159 - this.s1Gh = s1Gh;  
160 - }  
161 -  
162 - public String getS1Name() {  
163 - return s1Name;  
164 - }  
165 -  
166 - public void setS1Name(String s1Name) {  
167 - this.s1Name = s1Name;  
168 - }  
169 -  
170 - public String getBd1Time() {  
171 - return bd1Time;  
172 - }  
173 -  
174 - public void setBd1Time(String bd1Time) {  
175 - this.bd1Time = bd1Time;  
176 - }  
177 -  
178 - public String getBd2Time() {  
179 - return bd2Time;  
180 - }  
181 -  
182 - public void setBd2Time(String bd2Time) {  
183 - this.bd2Time = bd2Time;  
184 - }  
185 -  
186 - public String getCc2Time() {  
187 - return cc2Time;  
188 - }  
189 -  
190 - public void setCc2Time(String cc2Time) {  
191 - this.cc2Time = cc2Time;  
192 - }  
193 -  
194 - public String getJ2Gh() {  
195 - return j2Gh;  
196 - }  
197 -  
198 - public void setJ2Gh(String j2Gh) {  
199 - this.j2Gh = j2Gh;  
200 - }  
201 -  
202 - public String getJ2Name() {  
203 - return j2Name;  
204 - }  
205 -  
206 - public void setJ2Name(String j2Name) {  
207 - this.j2Name = j2Name;  
208 - }  
209 -  
210 - public String getS2Gh() {  
211 - return s2Gh;  
212 - }  
213 -  
214 - public void setS2Gh(String s2Gh) {  
215 - this.s2Gh = s2Gh;  
216 - }  
217 -  
218 - public String getS2Name() {  
219 - return s2Name;  
220 - }  
221 -  
222 - public void setS2Name(String s2Name) {  
223 - this.s2Name = s2Name;  
224 - }  
225 -  
226 - public String getXlDir() {  
227 - return xlDir;  
228 - }  
229 -  
230 - public void setXlDir(String xlDir) {  
231 - this.xlDir = xlDir;  
232 - }  
233 -  
234 - public String getQdz() {  
235 - return qdz;  
236 - }  
237 -  
238 - public void setQdz(String qdz) {  
239 - this.qdz = qdz;  
240 - }  
241 -  
242 - public String getZdz() {  
243 - return zdz;  
244 - }  
245 -  
246 - public void setZdz(String zdz) {  
247 - this.zdz = zdz;  
248 - }  
249 -  
250 - public String getFcsj() {  
251 - return fcsj;  
252 - }  
253 -  
254 - public void setFcsj(String fcsj) {  
255 - this.fcsj = fcsj;  
256 - }  
257 -  
258 - public SysUser getUser() {  
259 - return user;  
260 - }  
261 -  
262 - public void setUser(SysUser user) {  
263 - this.user = user;  
264 - }  
265 -  
266 - public Date getCreateDate() {  
267 - return createDate;  
268 - }  
269 -  
270 - public void setCreateDate(Date createDate) {  
271 - this.createDate = createDate;  
272 - }  
273 -  
274 - public Date getUpdateDate() {  
275 - return updateDate;  
276 - }  
277 -  
278 - public void setUpdateDate(Date updateDate) {  
279 - this.updateDate = updateDate;  
280 - }  
281 -  
282 - public int getFcno() {  
283 - return fcno;  
284 - }  
285 -  
286 - public void setFcno(int fcno) {  
287 - this.fcno = fcno;  
288 - }  
289 -  
290 - public int getBcs() {  
291 - return bcs;  
292 - }  
293 -  
294 - public void setBcs(int bcs) {  
295 - this.bcs = bcs;  
296 - }  
297 -  
298 - public double getJhlc() {  
299 - return jhlc;  
300 - }  
301 -  
302 - public void setJhlc(double jhlc) {  
303 - this.jhlc = jhlc;  
304 - }  
305 -  
306 - public int getBcsj() {  
307 - return bcsj;  
308 - }  
309 -  
310 - public void setBcsj(int bcsj) {  
311 - this.bcsj = bcsj;  
312 - }  
313 -  
314 - public String getXlBm() {  
315 - return xlBm;  
316 - }  
317 -  
318 - public void setXlBm(String xlBm) {  
319 - this.xlBm = xlBm;  
320 - }  
321 -} 1 +package com.bsth.entity.schedule;
  2 +
  3 +import com.bsth.entity.sys.SysUser;
  4 +
  5 +import javax.persistence.*;
  6 +import java.util.Date;
  7 +
  8 +/**
  9 + * 排班计划明细。
  10 + * 内部字段全冗余,无关联对象(外键关联关系),
  11 + * 可以单独存在,其余表要关联此对象/表,必须使用中间对象/表。
  12 + */
  13 +@Entity
  14 +@Table(name = "bsth_c_s_sp_info")
  15 +public class SchedulePlanInfo {
  16 +
  17 + /** 主键Id */
  18 + @Id
  19 + @GeneratedValue
  20 + private Long id;
  21 +
  22 + /** 排班计划日期 */
  23 + private Date scheduleDate;
  24 +
  25 + /** 路牌名称 */
  26 + private String lpName;
  27 + /** 线路编码 */
  28 + private String xlBm;
  29 + /** 线路名称 */
  30 + private String xlName;
  31 + /** 车辆自编号 */
  32 + private String clZbh;
  33 +
  34 +
  35 + /** 报道1时间(格式 HH:mm) */
  36 + private String bd1Time;
  37 + /** 出场1时间(格式 HH:mm) */
  38 + private String cc1Time;
  39 + /** 驾驶员1工号 */
  40 + private String j1Gh;
  41 + /** 驾驶员1名字 */
  42 + private String j1Name;
  43 + /** 售票员1工号 */
  44 + private String s1Gh;
  45 + /** 售票员1名字 */
  46 + private String s1Name;
  47 +
  48 + /** 报道2时间(格式 HH:mm) */
  49 + private String bd2Time;
  50 + /** 出场2时间(格式 HH:mm) */
  51 + private String cc2Time;
  52 + /** 驾驶员2工号 */
  53 + private String j2Gh;
  54 + /** 驾驶员2名字 */
  55 + private String j2Name;
  56 + /** 售票员2工号 */
  57 + private String s2Gh;
  58 + /** 售票员2名字 */
  59 + private String s2Name;
  60 +
  61 + // 冗余的时刻明细信息
  62 + /** 线路方向 */
  63 + private String xlDir;
  64 + /** 起点站名称 */
  65 + private String qdz;
  66 + /** 终点站名称 */
  67 + private String zdz;
  68 + /** 发车时间(格式 HH:mm) */
  69 + private String fcsj;
  70 + /** 发车顺序号 */
  71 + private int fcno;
  72 + /** 对应班次数 */
  73 + private int bcs;
  74 + /** 计划里程 */
  75 + private double jhlc;
  76 + /** 班次历时 */
  77 + private int bcsj;
  78 +
  79 + /** 操作人 */
  80 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  81 + private SysUser user;
  82 +
  83 + // 创建日期
  84 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  85 + private Date createDate;
  86 + // 修改日期
  87 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  88 + private Date updateDate;
  89 +
  90 + public Long getId() {
  91 + return id;
  92 + }
  93 +
  94 + public void setId(Long id) {
  95 + this.id = id;
  96 + }
  97 +
  98 + public Date getScheduleDate() {
  99 + return scheduleDate;
  100 + }
  101 +
  102 + public void setScheduleDate(Date scheduleDate) {
  103 + this.scheduleDate = scheduleDate;
  104 + }
  105 +
  106 + public String getLpName() {
  107 + return lpName;
  108 + }
  109 +
  110 + public void setLpName(String lpName) {
  111 + this.lpName = lpName;
  112 + }
  113 +
  114 + public String getXlName() {
  115 + return xlName;
  116 + }
  117 +
  118 + public void setXlName(String xlName) {
  119 + this.xlName = xlName;
  120 + }
  121 +
  122 + public String getClZbh() {
  123 + return clZbh;
  124 + }
  125 +
  126 + public void setClZbh(String clZbh) {
  127 + this.clZbh = clZbh;
  128 + }
  129 +
  130 + public String getCc1Time() {
  131 + return cc1Time;
  132 + }
  133 +
  134 + public void setCc1Time(String cc1Time) {
  135 + this.cc1Time = cc1Time;
  136 + }
  137 +
  138 + public String getJ1Gh() {
  139 + return j1Gh;
  140 + }
  141 +
  142 + public void setJ1Gh(String j1Gh) {
  143 + this.j1Gh = j1Gh;
  144 + }
  145 +
  146 + public String getJ1Name() {
  147 + return j1Name;
  148 + }
  149 +
  150 + public void setJ1Name(String j1Name) {
  151 + this.j1Name = j1Name;
  152 + }
  153 +
  154 + public String getS1Gh() {
  155 + return s1Gh;
  156 + }
  157 +
  158 + public void setS1Gh(String s1Gh) {
  159 + this.s1Gh = s1Gh;
  160 + }
  161 +
  162 + public String getS1Name() {
  163 + return s1Name;
  164 + }
  165 +
  166 + public void setS1Name(String s1Name) {
  167 + this.s1Name = s1Name;
  168 + }
  169 +
  170 + public String getBd1Time() {
  171 + return bd1Time;
  172 + }
  173 +
  174 + public void setBd1Time(String bd1Time) {
  175 + this.bd1Time = bd1Time;
  176 + }
  177 +
  178 + public String getBd2Time() {
  179 + return bd2Time;
  180 + }
  181 +
  182 + public void setBd2Time(String bd2Time) {
  183 + this.bd2Time = bd2Time;
  184 + }
  185 +
  186 + public String getCc2Time() {
  187 + return cc2Time;
  188 + }
  189 +
  190 + public void setCc2Time(String cc2Time) {
  191 + this.cc2Time = cc2Time;
  192 + }
  193 +
  194 + public String getJ2Gh() {
  195 + return j2Gh;
  196 + }
  197 +
  198 + public void setJ2Gh(String j2Gh) {
  199 + this.j2Gh = j2Gh;
  200 + }
  201 +
  202 + public String getJ2Name() {
  203 + return j2Name;
  204 + }
  205 +
  206 + public void setJ2Name(String j2Name) {
  207 + this.j2Name = j2Name;
  208 + }
  209 +
  210 + public String getS2Gh() {
  211 + return s2Gh;
  212 + }
  213 +
  214 + public void setS2Gh(String s2Gh) {
  215 + this.s2Gh = s2Gh;
  216 + }
  217 +
  218 + public String getS2Name() {
  219 + return s2Name;
  220 + }
  221 +
  222 + public void setS2Name(String s2Name) {
  223 + this.s2Name = s2Name;
  224 + }
  225 +
  226 + public String getXlDir() {
  227 + return xlDir;
  228 + }
  229 +
  230 + public void setXlDir(String xlDir) {
  231 + this.xlDir = xlDir;
  232 + }
  233 +
  234 + public String getQdz() {
  235 + return qdz;
  236 + }
  237 +
  238 + public void setQdz(String qdz) {
  239 + this.qdz = qdz;
  240 + }
  241 +
  242 + public String getZdz() {
  243 + return zdz;
  244 + }
  245 +
  246 + public void setZdz(String zdz) {
  247 + this.zdz = zdz;
  248 + }
  249 +
  250 + public String getFcsj() {
  251 + return fcsj;
  252 + }
  253 +
  254 + public void setFcsj(String fcsj) {
  255 + this.fcsj = fcsj;
  256 + }
  257 +
  258 + public SysUser getUser() {
  259 + return user;
  260 + }
  261 +
  262 + public void setUser(SysUser user) {
  263 + this.user = user;
  264 + }
  265 +
  266 + public Date getCreateDate() {
  267 + return createDate;
  268 + }
  269 +
  270 + public void setCreateDate(Date createDate) {
  271 + this.createDate = createDate;
  272 + }
  273 +
  274 + public Date getUpdateDate() {
  275 + return updateDate;
  276 + }
  277 +
  278 + public void setUpdateDate(Date updateDate) {
  279 + this.updateDate = updateDate;
  280 + }
  281 +
  282 + public int getFcno() {
  283 + return fcno;
  284 + }
  285 +
  286 + public void setFcno(int fcno) {
  287 + this.fcno = fcno;
  288 + }
  289 +
  290 + public int getBcs() {
  291 + return bcs;
  292 + }
  293 +
  294 + public void setBcs(int bcs) {
  295 + this.bcs = bcs;
  296 + }
  297 +
  298 + public double getJhlc() {
  299 + return jhlc;
  300 + }
  301 +
  302 + public void setJhlc(double jhlc) {
  303 + this.jhlc = jhlc;
  304 + }
  305 +
  306 + public int getBcsj() {
  307 + return bcsj;
  308 + }
  309 +
  310 + public void setBcsj(int bcsj) {
  311 + this.bcsj = bcsj;
  312 + }
  313 +
  314 + public String getXlBm() {
  315 + return xlBm;
  316 + }
  317 +
  318 + public void setXlBm(String xlBm) {
  319 + this.xlBm = xlBm;
  320 + }
  321 +}
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1.java
1 -package com.bsth.entity.schedule.rule;  
2 -  
3 -import com.bsth.entity.Cars;  
4 -import com.bsth.entity.Line;  
5 -import com.bsth.entity.Personnel;  
6 -import com.bsth.entity.schedule.GuideboardInfo;  
7 -  
8 -import javax.persistence.*;  
9 -import java.util.Date;  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 排班规则1,  
14 - * 基于老系统的规则设定实体,  
15 - * 有所谓的路牌范围,就是关联多个路牌  
16 - * 有所谓的人员返回,就是关联多个人(可能带早晚班)  
17 - * 有起始路牌,起始人员,翻班格式  
18 - */  
19 -@Entity  
20 -@Table(name = "bsth_c_s_sr1")  
21 -public class ScheduleRule1 {  
22 -  
23 - /** 主键Id */  
24 - @Id  
25 - @GeneratedValue  
26 - private Long id;  
27 -  
28 - /** 关联线路 */  
29 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
30 - private Line xl;  
31 - /** 关联车辆 */  
32 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
33 - private Cars cl;  
34 - /** 启用日期 */  
35 - private Date qyrq;  
36 -  
37 - /** 起始路牌 */  
38 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
39 - private GuideboardInfo qslp;  
40 - /** 起始人员 */  
41 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
42 - private Personnel qsry;  
43 - /** 翻班格式(TODO:这个目前还不太明白)*/  
44 - private String fbgs;  
45 -  
46 - /** 路牌范围(TODO:路牌有序号的需要排序,这个再议了) */  
47 - @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)  
48 - @JoinTable(  
49 - name = "bsth_c_s_sr1_lp",  
50 - joinColumns = @JoinColumn(name = "SR1_ID"),  
51 - inverseJoinColumns = @JoinColumn(name = "LP_ID")  
52 - )  
53 - private List<GuideboardInfo> guideboardInfos;  
54 -  
55 - // TODO:暂时不考虑早晚班  
56 -// /** 是否早晚班 */  
57 -// private boolean isZWB = false;  
58 -  
59 - /** 人员范围 */  
60 - @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)  
61 - @JoinTable(  
62 - name = "bsth_c_s_sr1_ry",  
63 - joinColumns = @JoinColumn(name = "SR1_ID"),  
64 - inverseJoinColumns = @JoinColumn(name = "RY_ID")  
65 - )  
66 - private List<Personnel> personnels;  
67 -  
68 -  
69 - // 创建日期  
70 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
71 - private Date createDate;  
72 - // 修改日期  
73 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
74 - private Date updateDate;  
75 -  
76 - public Long getId() {  
77 - return id;  
78 - }  
79 -  
80 - public void setId(Long id) {  
81 - this.id = id;  
82 - }  
83 -  
84 - public Line getXl() {  
85 - return xl;  
86 - }  
87 -  
88 - public void setXl(Line xl) {  
89 - this.xl = xl;  
90 - }  
91 -  
92 - public Cars getCl() {  
93 - return cl;  
94 - }  
95 -  
96 - public void setCl(Cars cl) {  
97 - this.cl = cl;  
98 - }  
99 -  
100 - public Date getQyrq() {  
101 - return qyrq;  
102 - }  
103 -  
104 - public void setQyrq(Date qyrq) {  
105 - this.qyrq = qyrq;  
106 - }  
107 -  
108 - public GuideboardInfo getQslp() {  
109 - return qslp;  
110 - }  
111 -  
112 - public void setQslp(GuideboardInfo qslp) {  
113 - this.qslp = qslp;  
114 - }  
115 -  
116 - public Personnel getQsry() {  
117 - return qsry;  
118 - }  
119 -  
120 - public void setQsry(Personnel qsry) {  
121 - this.qsry = qsry;  
122 - }  
123 -  
124 - public String getFbgs() {  
125 - return fbgs;  
126 - }  
127 -  
128 - public void setFbgs(String fbgs) {  
129 - this.fbgs = fbgs;  
130 - }  
131 -  
132 - public List<GuideboardInfo> getGuideboardInfos() {  
133 - return guideboardInfos;  
134 - }  
135 -  
136 - public void setGuideboardInfos(List<GuideboardInfo> guideboardInfos) {  
137 - this.guideboardInfos = guideboardInfos;  
138 - }  
139 -  
140 - public List<Personnel> getPersonnels() {  
141 - return personnels;  
142 - }  
143 -  
144 - public void setPersonnels(List<Personnel> personnels) {  
145 - this.personnels = personnels;  
146 - }  
147 -  
148 - public Date getCreateDate() {  
149 - return createDate;  
150 - }  
151 -  
152 - public void setCreateDate(Date createDate) {  
153 - this.createDate = createDate;  
154 - }  
155 -  
156 - public Date getUpdateDate() {  
157 - return updateDate;  
158 - }  
159 -  
160 - public void setUpdateDate(Date updateDate) {  
161 - this.updateDate = updateDate;  
162 - }  
163 -} 1 +package com.bsth.entity.schedule.rule;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +import com.bsth.entity.Line;
  5 +import com.bsth.entity.Personnel;
  6 +import com.bsth.entity.schedule.GuideboardInfo;
  7 +
  8 +import javax.persistence.*;
  9 +import java.util.Date;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * 排班规则1,
  14 + * 基于老系统的规则设定实体,
  15 + * 有所谓的路牌范围,就是关联多个路牌
  16 + * 有所谓的人员返回,就是关联多个人(可能带早晚班)
  17 + * 有起始路牌,起始人员,翻班格式
  18 + */
  19 +@Entity
  20 +@Table(name = "bsth_c_s_sr1")
  21 +public class ScheduleRule1 {
  22 +
  23 + /** 主键Id */
  24 + @Id
  25 + @GeneratedValue
  26 + private Long id;
  27 +
  28 + /** 关联线路 */
  29 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  30 + private Line xl;
  31 + /** 关联车辆 */
  32 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  33 + private Cars cl;
  34 + /** 启用日期 */
  35 + private Date qyrq;
  36 +
  37 + /** 起始路牌 */
  38 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  39 + private GuideboardInfo qslp;
  40 + /** 起始人员 */
  41 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  42 + private Personnel qsry;
  43 + /** 翻班格式(TODO:这个目前还不太明白)*/
  44 + private String fbgs;
  45 +
  46 + /** 路牌范围(TODO:路牌有序号的需要排序,这个再议了) */
  47 + @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  48 + @JoinTable(
  49 + name = "bsth_c_s_sr1_lp",
  50 + joinColumns = @JoinColumn(name = "SR1_ID"),
  51 + inverseJoinColumns = @JoinColumn(name = "LP_ID")
  52 + )
  53 + private List<GuideboardInfo> guideboardInfos;
  54 +
  55 + // TODO:暂时不考虑早晚班
  56 +// /** 是否早晚班 */
  57 +// private boolean isZWB = false;
  58 +
  59 + /** 人员范围 */
  60 + @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  61 + @JoinTable(
  62 + name = "bsth_c_s_sr1_ry",
  63 + joinColumns = @JoinColumn(name = "SR1_ID"),
  64 + inverseJoinColumns = @JoinColumn(name = "RY_ID")
  65 + )
  66 + private List<Personnel> personnels;
  67 +
  68 +
  69 + // 创建日期
  70 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  71 + private Date createDate;
  72 + // 修改日期
  73 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  74 + private Date updateDate;
  75 +
  76 + public Long getId() {
  77 + return id;
  78 + }
  79 +
  80 + public void setId(Long id) {
  81 + this.id = id;
  82 + }
  83 +
  84 + public Line getXl() {
  85 + return xl;
  86 + }
  87 +
  88 + public void setXl(Line xl) {
  89 + this.xl = xl;
  90 + }
  91 +
  92 + public Cars getCl() {
  93 + return cl;
  94 + }
  95 +
  96 + public void setCl(Cars cl) {
  97 + this.cl = cl;
  98 + }
  99 +
  100 + public Date getQyrq() {
  101 + return qyrq;
  102 + }
  103 +
  104 + public void setQyrq(Date qyrq) {
  105 + this.qyrq = qyrq;
  106 + }
  107 +
  108 + public GuideboardInfo getQslp() {
  109 + return qslp;
  110 + }
  111 +
  112 + public void setQslp(GuideboardInfo qslp) {
  113 + this.qslp = qslp;
  114 + }
  115 +
  116 + public Personnel getQsry() {
  117 + return qsry;
  118 + }
  119 +
  120 + public void setQsry(Personnel qsry) {
  121 + this.qsry = qsry;
  122 + }
  123 +
  124 + public String getFbgs() {
  125 + return fbgs;
  126 + }
  127 +
  128 + public void setFbgs(String fbgs) {
  129 + this.fbgs = fbgs;
  130 + }
  131 +
  132 + public List<GuideboardInfo> getGuideboardInfos() {
  133 + return guideboardInfos;
  134 + }
  135 +
  136 + public void setGuideboardInfos(List<GuideboardInfo> guideboardInfos) {
  137 + this.guideboardInfos = guideboardInfos;
  138 + }
  139 +
  140 + public List<Personnel> getPersonnels() {
  141 + return personnels;
  142 + }
  143 +
  144 + public void setPersonnels(List<Personnel> personnels) {
  145 + this.personnels = personnels;
  146 + }
  147 +
  148 + public Date getCreateDate() {
  149 + return createDate;
  150 + }
  151 +
  152 + public void setCreateDate(Date createDate) {
  153 + this.createDate = createDate;
  154 + }
  155 +
  156 + public Date getUpdateDate() {
  157 + return updateDate;
  158 + }
  159 +
  160 + public void setUpdateDate(Date updateDate) {
  161 + this.updateDate = updateDate;
  162 + }
  163 +}
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1_LP.java
1 -package com.bsth.entity.schedule.rule;  
2 -  
3 -import javax.persistence.Column;  
4 -import javax.persistence.EmbeddedId;  
5 -import javax.persistence.Entity;  
6 -import javax.persistence.Table;  
7 -import java.util.Date;  
8 -  
9 -/**  
10 - * 排班规则1关联的路牌。  
11 - */  
12 -@Entity  
13 -@Table(name = "bsth_c_s_sr1_lp")  
14 -public class ScheduleRule1_LP {  
15 -  
16 - /** 业务主键 */  
17 - @EmbeddedId  
18 - private ScheduleRule1_LP_PK pk;  
19 -  
20 - // 创建日期  
21 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
22 - private Date createDate;  
23 - // 修改日期  
24 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
25 - private Date updateDate;  
26 -  
27 - public ScheduleRule1_LP_PK getPk() {  
28 - return pk;  
29 - }  
30 -  
31 - public void setPk(ScheduleRule1_LP_PK pk) {  
32 - this.pk = pk;  
33 - }  
34 -  
35 - public Date getCreateDate() {  
36 - return createDate;  
37 - }  
38 -  
39 - public void setCreateDate(Date createDate) {  
40 - this.createDate = createDate;  
41 - }  
42 -  
43 - public Date getUpdateDate() {  
44 - return updateDate;  
45 - }  
46 -  
47 - public void setUpdateDate(Date updateDate) {  
48 - this.updateDate = updateDate;  
49 - }  
50 -} 1 +package com.bsth.entity.schedule.rule;
  2 +
  3 +import javax.persistence.Column;
  4 +import javax.persistence.EmbeddedId;
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.Table;
  7 +import java.util.Date;
  8 +
  9 +/**
  10 + * 排班规则1关联的路牌。
  11 + */
  12 +@Entity
  13 +@Table(name = "bsth_c_s_sr1_lp")
  14 +public class ScheduleRule1_LP {
  15 +
  16 + /** 业务主键 */
  17 + @EmbeddedId
  18 + private ScheduleRule1_LP_PK pk;
  19 +
  20 + // 创建日期
  21 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  22 + private Date createDate;
  23 + // 修改日期
  24 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  25 + private Date updateDate;
  26 +
  27 + public ScheduleRule1_LP_PK getPk() {
  28 + return pk;
  29 + }
  30 +
  31 + public void setPk(ScheduleRule1_LP_PK pk) {
  32 + this.pk = pk;
  33 + }
  34 +
  35 + public Date getCreateDate() {
  36 + return createDate;
  37 + }
  38 +
  39 + public void setCreateDate(Date createDate) {
  40 + this.createDate = createDate;
  41 + }
  42 +
  43 + public Date getUpdateDate() {
  44 + return updateDate;
  45 + }
  46 +
  47 + public void setUpdateDate(Date updateDate) {
  48 + this.updateDate = updateDate;
  49 + }
  50 +}
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1_LP_PK.java
1 -package com.bsth.entity.schedule.rule;  
2 -  
3 -import com.bsth.entity.schedule.GuideboardInfo;  
4 -  
5 -import javax.persistence.*;  
6 -import java.io.Serializable;  
7 -  
8 -/**  
9 - * 排班规则1 路牌范围 主键。  
10 - */  
11 -@Embeddable  
12 -public class ScheduleRule1_LP_PK implements Serializable {  
13 -  
14 - /** 关联的排班规则1 */  
15 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
16 - @JoinColumn(name = "SR1_ID")  
17 - private ScheduleRule1 scheduleRule1;  
18 -  
19 - /** 关联的路牌 */  
20 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
21 - @JoinColumn(name = "LP_ID")  
22 - private GuideboardInfo guideboardInfo;  
23 -  
24 - /** 顺序号 */  
25 - private Integer orderNo;  
26 -  
27 - public ScheduleRule1_LP_PK(ScheduleRule1 scheduleRule1, GuideboardInfo guideboardInfo, Integer orderNo) {  
28 - this.scheduleRule1 = scheduleRule1;  
29 - this.guideboardInfo = guideboardInfo;  
30 - this.orderNo = orderNo;  
31 - }  
32 -  
33 - public ScheduleRule1 getScheduleRule1() {  
34 - return scheduleRule1;  
35 - }  
36 -  
37 - public void setScheduleRule1(ScheduleRule1 scheduleRule1) {  
38 - this.scheduleRule1 = scheduleRule1;  
39 - }  
40 -  
41 - public GuideboardInfo getGuideboardInfo() {  
42 - return guideboardInfo;  
43 - }  
44 -  
45 - public void setGuideboardInfo(GuideboardInfo guideboardInfo) {  
46 - this.guideboardInfo = guideboardInfo;  
47 - }  
48 -  
49 - public Integer getOrderNo() {  
50 - return orderNo;  
51 - }  
52 -  
53 - public void setOrderNo(Integer orderNo) {  
54 - this.orderNo = orderNo;  
55 - }  
56 -} 1 +package com.bsth.entity.schedule.rule;
  2 +
  3 +import com.bsth.entity.schedule.GuideboardInfo;
  4 +
  5 +import javax.persistence.*;
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 排班规则1 路牌范围 主键。
  10 + */
  11 +@Embeddable
  12 +public class ScheduleRule1_LP_PK implements Serializable {
  13 +
  14 + /** 关联的排班规则1 */
  15 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  16 + @JoinColumn(name = "SR1_ID")
  17 + private ScheduleRule1 scheduleRule1;
  18 +
  19 + /** 关联的路牌 */
  20 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  21 + @JoinColumn(name = "LP_ID")
  22 + private GuideboardInfo guideboardInfo;
  23 +
  24 + /** 顺序号 */
  25 + private Integer orderNo;
  26 +
  27 + public ScheduleRule1_LP_PK(ScheduleRule1 scheduleRule1, GuideboardInfo guideboardInfo, Integer orderNo) {
  28 + this.scheduleRule1 = scheduleRule1;
  29 + this.guideboardInfo = guideboardInfo;
  30 + this.orderNo = orderNo;
  31 + }
  32 +
  33 + public ScheduleRule1 getScheduleRule1() {
  34 + return scheduleRule1;
  35 + }
  36 +
  37 + public void setScheduleRule1(ScheduleRule1 scheduleRule1) {
  38 + this.scheduleRule1 = scheduleRule1;
  39 + }
  40 +
  41 + public GuideboardInfo getGuideboardInfo() {
  42 + return guideboardInfo;
  43 + }
  44 +
  45 + public void setGuideboardInfo(GuideboardInfo guideboardInfo) {
  46 + this.guideboardInfo = guideboardInfo;
  47 + }
  48 +
  49 + public Integer getOrderNo() {
  50 + return orderNo;
  51 + }
  52 +
  53 + public void setOrderNo(Integer orderNo) {
  54 + this.orderNo = orderNo;
  55 + }
  56 +}
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1_RY.java
1 -package com.bsth.entity.schedule.rule;  
2 -  
3 -import javax.persistence.Column;  
4 -import javax.persistence.EmbeddedId;  
5 -import javax.persistence.Entity;  
6 -import javax.persistence.Table;  
7 -import java.util.Date;  
8 -  
9 -/**  
10 - * 排班规则1关联的人员。  
11 - */  
12 -@Entity  
13 -@Table(name = "bsth_c_s_sr1_ry")  
14 -public class ScheduleRule1_RY {  
15 -  
16 - /** 业务主键 */  
17 - @EmbeddedId  
18 - private ScheduleRule1_RY_PK pk;  
19 -  
20 - // 创建日期  
21 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
22 - private Date createDate;  
23 - // 修改日期  
24 - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
25 - private Date updateDate;  
26 -  
27 - public ScheduleRule1_RY_PK getPk() {  
28 - return pk;  
29 - }  
30 -  
31 - public void setPk(ScheduleRule1_RY_PK pk) {  
32 - this.pk = pk;  
33 - }  
34 -  
35 - public Date getCreateDate() {  
36 - return createDate;  
37 - }  
38 -  
39 - public void setCreateDate(Date createDate) {  
40 - this.createDate = createDate;  
41 - }  
42 -  
43 - public Date getUpdateDate() {  
44 - return updateDate;  
45 - }  
46 -  
47 - public void setUpdateDate(Date updateDate) {  
48 - this.updateDate = updateDate;  
49 - }  
50 -} 1 +package com.bsth.entity.schedule.rule;
  2 +
  3 +import javax.persistence.Column;
  4 +import javax.persistence.EmbeddedId;
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.Table;
  7 +import java.util.Date;
  8 +
  9 +/**
  10 + * 排班规则1关联的人员。
  11 + */
  12 +@Entity
  13 +@Table(name = "bsth_c_s_sr1_ry")
  14 +public class ScheduleRule1_RY {
  15 +
  16 + /** 业务主键 */
  17 + @EmbeddedId
  18 + private ScheduleRule1_RY_PK pk;
  19 +
  20 + // 创建日期
  21 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  22 + private Date createDate;
  23 + // 修改日期
  24 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  25 + private Date updateDate;
  26 +
  27 + public ScheduleRule1_RY_PK getPk() {
  28 + return pk;
  29 + }
  30 +
  31 + public void setPk(ScheduleRule1_RY_PK pk) {
  32 + this.pk = pk;
  33 + }
  34 +
  35 + public Date getCreateDate() {
  36 + return createDate;
  37 + }
  38 +
  39 + public void setCreateDate(Date createDate) {
  40 + this.createDate = createDate;
  41 + }
  42 +
  43 + public Date getUpdateDate() {
  44 + return updateDate;
  45 + }
  46 +
  47 + public void setUpdateDate(Date updateDate) {
  48 + this.updateDate = updateDate;
  49 + }
  50 +}
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1_RY_PK.java
1 -package com.bsth.entity.schedule.rule;  
2 -  
3 -import com.bsth.entity.Personnel;  
4 -  
5 -import javax.persistence.*;  
6 -import java.io.Serializable;  
7 -  
8 -/**  
9 - * 排班规则1 人员范围  
10 - * TODO:暂时不考虑早晚班  
11 - */  
12 -@Embeddable  
13 -public class ScheduleRule1_RY_PK implements Serializable {  
14 -  
15 - /** 关联的排班规则1 */  
16 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
17 - @JoinColumn(name = "SR1_ID")  
18 - private ScheduleRule1 scheduleRule1;  
19 -  
20 - /** 关联的人员 */  
21 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
22 - @JoinColumn(name = "RY_ID")  
23 - private Personnel personnel;  
24 -  
25 - /** 顺序号 */  
26 - private Integer orderNo;  
27 -  
28 - public ScheduleRule1_RY_PK(ScheduleRule1 scheduleRule1, Personnel personnel, Integer orderNo) {  
29 - this.scheduleRule1 = scheduleRule1;  
30 - this.personnel = personnel;  
31 - this.orderNo = orderNo;  
32 - }  
33 -  
34 - public ScheduleRule1 getScheduleRule1() {  
35 - return scheduleRule1;  
36 - }  
37 -  
38 - public void setScheduleRule1(ScheduleRule1 scheduleRule1) {  
39 - this.scheduleRule1 = scheduleRule1;  
40 - }  
41 -  
42 - public Personnel getPersonnel() {  
43 - return personnel;  
44 - }  
45 -  
46 - public void setPersonnel(Personnel personnel) {  
47 - this.personnel = personnel;  
48 - }  
49 -  
50 - public Integer getOrderNo() {  
51 - return orderNo;  
52 - }  
53 -  
54 - public void setOrderNo(Integer orderNo) {  
55 - this.orderNo = orderNo;  
56 - }  
57 -} 1 +package com.bsth.entity.schedule.rule;
  2 +
  3 +import com.bsth.entity.Personnel;
  4 +
  5 +import javax.persistence.*;
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * 排班规则1 人员范围
  10 + * TODO:暂时不考虑早晚班
  11 + */
  12 +@Embeddable
  13 +public class ScheduleRule1_RY_PK implements Serializable {
  14 +
  15 + /** 关联的排班规则1 */
  16 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  17 + @JoinColumn(name = "SR1_ID")
  18 + private ScheduleRule1 scheduleRule1;
  19 +
  20 + /** 关联的人员 */
  21 + @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  22 + @JoinColumn(name = "RY_ID")
  23 + private Personnel personnel;
  24 +
  25 + /** 顺序号 */
  26 + private Integer orderNo;
  27 +
  28 + public ScheduleRule1_RY_PK(ScheduleRule1 scheduleRule1, Personnel personnel, Integer orderNo) {
  29 + this.scheduleRule1 = scheduleRule1;
  30 + this.personnel = personnel;
  31 + this.orderNo = orderNo;
  32 + }
  33 +
  34 + public ScheduleRule1 getScheduleRule1() {
  35 + return scheduleRule1;
  36 + }
  37 +
  38 + public void setScheduleRule1(ScheduleRule1 scheduleRule1) {
  39 + this.scheduleRule1 = scheduleRule1;
  40 + }
  41 +
  42 + public Personnel getPersonnel() {
  43 + return personnel;
  44 + }
  45 +
  46 + public void setPersonnel(Personnel personnel) {
  47 + this.personnel = personnel;
  48 + }
  49 +
  50 + public Integer getOrderNo() {
  51 + return orderNo;
  52 + }
  53 +
  54 + public void setOrderNo(Integer orderNo) {
  55 + this.orderNo = orderNo;
  56 + }
  57 +}
src/main/java/com/bsth/gpsdata/buffer/GpsRealDataBuffer.java
1 package com.bsth.gpsdata.buffer; 1 package com.bsth.gpsdata.buffer;
2 2
  3 +import java.util.ArrayList;
3 import java.util.HashMap; 4 import java.util.HashMap;
4 import java.util.Iterator; 5 import java.util.Iterator;
5 import java.util.List; 6 import java.util.List;
@@ -63,6 +64,11 @@ public class GpsRealDataBuffer { @@ -63,6 +64,11 @@ public class GpsRealDataBuffer {
63 */ 64 */
64 private static Map<String, String> stationCodeMap; 65 private static Map<String, String> stationCodeMap;
65 66
  67 + /**
  68 + * 最后同步时间
  69 + */
  70 + private static Long lastUpdateTime;
  71 +
66 72
67 public boolean isNullEmpty(){ 73 public boolean isNullEmpty(){
68 return deviceGpsMap == null; 74 return deviceGpsMap == null;
@@ -170,13 +176,49 @@ public class GpsRealDataBuffer { @@ -170,13 +176,49 @@ public class GpsRealDataBuffer {
170 * @throws 176 * @throws
171 */ 177 */
172 public List<GpsRealData> getListByLineCode(Integer lineCode){ 178 public List<GpsRealData> getListByLineCode(Integer lineCode){
173 - List<GpsRealData> list = lineGpsMultimap.get(lineCode); 179 + List<GpsRealData> list = lineGpsMultimap.get(lineCode)
  180 + ,resList = new ArrayList<>();
174 181
175 //写入车辆自编号 182 //写入车辆自编号
  183 + String nbbm;
  184 + logger.info("list size..." + list.size());
176 for(GpsRealData gpsData : list){ 185 for(GpsRealData gpsData : list){
177 - gpsData.setNbbm(vehicDeviceMap.get(gpsData.getDeviceId()));  
178 - gpsData.setStationName(stationCodeMap.get(gpsData.getStopNo())); 186 + nbbm = vehicDeviceMap.get(gpsData.getDeviceId());
  187 + if(null != nbbm){
  188 + gpsData.setNbbm(nbbm);
  189 + gpsData.setStationName(stationCodeMap.get(gpsData.getStopNo()));
  190 + resList.add(gpsData);
  191 + }
179 } 192 }
  193 + return resList;
  194 + }
  195 +
  196 + /**
  197 + *
  198 + * @Title: getListByLineCode
  199 + * @Description: TODO(根据多个线路编码获取该线路所有的GPS点)
  200 + * @return List<GpsRealData> 返回类型
  201 + * @throws
  202 + */
  203 + public List<GpsRealData> getListByLines(Iterator<String> iterator){
  204 +
  205 + List<GpsRealData> list = new ArrayList<>();
  206 +
  207 + Integer code;
  208 + while(iterator.hasNext()){
  209 + code = Integer.parseInt(iterator.next());
  210 + list.addAll(getListByLineCode(code));
  211 + }
  212 +
180 return list; 213 return list;
181 } 214 }
  215 +
  216 +
  217 + public void setLastUpdateTime(Long time){
  218 + lastUpdateTime = time;
  219 + }
  220 +
  221 + public Long getLastUpdateTime(){
  222 + return lastUpdateTime;
  223 + }
182 } 224 }
src/main/java/com/bsth/gpsdata/config.properties deleted 100644 → 0
1 -#http.gps.real.url= http://222.66.0.204:5555/transport_server/rtgps/  
2 -http.gps.real.url= http://192.168.168.192:8080/transport_server/rtgps/  
3 \ No newline at end of file 0 \ No newline at end of file
src/main/java/com/bsth/gpsdata/controller/GpsDataController.java
@@ -5,10 +5,12 @@ import java.util.List; @@ -5,10 +5,12 @@ import java.util.List;
5 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.web.bind.annotation.PathVariable; 6 import org.springframework.web.bind.annotation.PathVariable;
7 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RequestParam;
8 import org.springframework.web.bind.annotation.RestController; 9 import org.springframework.web.bind.annotation.RestController;
9 10
10 import com.bsth.gpsdata.buffer.GpsRealDataBuffer; 11 import com.bsth.gpsdata.buffer.GpsRealDataBuffer;
11 import com.bsth.gpsdata.entity.GpsRealData; 12 import com.bsth.gpsdata.entity.GpsRealData;
  13 +import com.google.common.base.Splitter;
12 14
13 @RestController 15 @RestController
14 @RequestMapping("gps") 16 @RequestMapping("gps")
@@ -21,4 +23,9 @@ public class GpsDataController { @@ -21,4 +23,9 @@ public class GpsDataController {
21 public List<GpsRealData> findByLineCode(@PathVariable("lineCode") Integer lineCode){ 23 public List<GpsRealData> findByLineCode(@PathVariable("lineCode") Integer lineCode){
22 return gpsBuffer.getListByLineCode(lineCode); 24 return gpsBuffer.getListByLineCode(lineCode);
23 } 25 }
  26 +
  27 + @RequestMapping(value = "/real/line")
  28 + public List<GpsRealData> findByLineCode(@RequestParam String lineCodes){
  29 + return gpsBuffer.getListByLines(Splitter.on(",").split(lineCodes).iterator());
  30 + }
24 } 31 }
src/main/java/com/bsth/gpsdata/thread/GpsBufferRefreshThread.java
@@ -21,7 +21,7 @@ import com.alibaba.fastjson.JSON; @@ -21,7 +21,7 @@ import com.alibaba.fastjson.JSON;
21 import com.alibaba.fastjson.JSONObject; 21 import com.alibaba.fastjson.JSONObject;
22 import com.bsth.gpsdata.buffer.GpsRealDataBuffer; 22 import com.bsth.gpsdata.buffer.GpsRealDataBuffer;
23 import com.bsth.gpsdata.entity.GpsRealData; 23 import com.bsth.gpsdata.entity.GpsRealData;
24 -import com.bsth.gpsdata.util.ConfigUtil; 24 +import com.bsth.util.Tools;
25 import com.google.common.collect.ImmutableMap; 25 import com.google.common.collect.ImmutableMap;
26 26
27 /** 27 /**
@@ -42,7 +42,8 @@ public class GpsBufferRefreshThread extends Thread{ @@ -42,7 +42,8 @@ public class GpsBufferRefreshThread extends Thread{
42 42
43 43
44 public GpsBufferRefreshThread() { 44 public GpsBufferRefreshThread() {
45 - url = ConfigUtil.getProp("http.gps.real.url"); 45 + Tools t = new Tools("application.properties");
  46 + url = t.getValue("http.gps.real.url");
46 } 47 }
47 48
48 @Autowired 49 @Autowired
@@ -81,6 +82,7 @@ public class GpsBufferRefreshThread extends Thread{ @@ -81,6 +82,7 @@ public class GpsBufferRefreshThread extends Thread{
81 82
82 //更新缓存 83 //更新缓存
83 gpsBuffer.updateBuffer(upLines, upGpsList); 84 gpsBuffer.updateBuffer(upLines, upGpsList);
  85 + gpsBuffer.setLastUpdateTime(System.currentTimeMillis());
84 } 86 }
85 87
86 logger.info("本次刷新GPS实时数据耗时:" + (System.currentTimeMillis() - t) + "毫秒"); 88 logger.info("本次刷新GPS实时数据耗时:" + (System.currentTimeMillis() - t) + "毫秒");
src/main/java/com/bsth/gpsdata/util/ConfigUtil.java deleted 100644 → 0
1 -package com.bsth.gpsdata.util;  
2 -  
3 -import java.io.IOException;  
4 -import java.io.InputStream;  
5 -import java.util.Properties;  
6 -  
7 -public class ConfigUtil {  
8 -  
9 - private static Properties properties = new Properties();  
10 -  
11 - static {  
12 - InputStream in = Object.class.getResourceAsStream("/com/bsth/gpsdata/config.properties");  
13 - try {  
14 - properties.load(in);  
15 - } catch (IOException e) {  
16 - e.printStackTrace();  
17 - }  
18 - }  
19 -  
20 - public static String getProp(String key){  
21 -  
22 - return properties.getProperty(key);  
23 - }  
24 -}  
src/main/java/com/bsth/service/CarsService.java
1 -package com.bsth.service;  
2 -  
3 -import com.bsth.entity.Cars;  
4 -  
5 -/**  
6 - * Created by xu on 16/5/31.  
7 - */  
8 -public interface CarsService extends BaseService<Cars, Integer> {  
9 -} 1 +package com.bsth.service;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +
  5 +/**
  6 + * Created by xu on 16/5/31.
  7 + */
  8 +public interface CarsService extends BaseService<Cars, Integer> {
  9 +}
src/main/java/com/bsth/service/impl/CarsServiceImpl.java
1 -package com.bsth.service.impl;  
2 -  
3 -import com.bsth.entity.Cars;  
4 -import com.bsth.service.CarsService;  
5 -import org.springframework.stereotype.Service;  
6 -  
7 -/**  
8 - * Created by xu on 16/5/31.  
9 - */  
10 -@Service  
11 -public class CarsServiceImpl extends BaseServiceImpl<Cars, Integer> implements CarsService {  
12 -} 1 +package com.bsth.service.impl;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +import com.bsth.service.CarsService;
  5 +import org.springframework.stereotype.Service;
  6 +
  7 +/**
  8 + * Created by xu on 16/5/31.
  9 + */
  10 +@Service
  11 +public class CarsServiceImpl extends BaseServiceImpl<Cars, Integer> implements CarsService {
  12 +}
src/main/java/com/bsth/util/Tools.java 0 → 100644
  1 +package com.bsth.util;
  2 +
  3 +import java.io.IOException;
  4 +import java.util.Properties;
  5 +
  6 +public class Tools {
  7 + private static Properties p = new Properties();
  8 + private static String f;
  9 + public Tools(String file){
  10 + f = file;
  11 + try {
  12 + p.load(Tools.class.getClassLoader().getResourceAsStream(f));
  13 + } catch (IOException e) {
  14 + e.printStackTrace();
  15 + }
  16 + }
  17 +
  18 + /**
  19 + * 根据key得到value的值
  20 + */
  21 + public String getValue(String key)
  22 + {
  23 + return p.getProperty(key);
  24 + }
  25 +}
src/main/resources/application.properties
@@ -24,3 +24,7 @@ spring.view.suffix=.html @@ -24,3 +24,7 @@ spring.view.suffix=.html
24 server.session-timeout=-1 24 server.session-timeout=-1
25 25
26 security.basic.enabled=false 26 security.basic.enabled=false
  27 +
  28 +##
  29 +#http.gps.real.url= http://222.66.0.204:5555/transport_server/rtgps/
  30 +http.gps.real.url= http://192.168.168.192:8080/transport_server/rtgps/
src/main/resources/fatso/exclude.txt 0 → 100644
  1 +resources\fatso
  2 +.git
  3 +.settings
  4 +target
0 \ No newline at end of file 5 \ No newline at end of file
src/main/resources/fatso/minifier.js 0 → 100644
  1 +/**
  2 + * @author PanZhao
  3 + * @date 2016年3月17日 下午12:44:06
  4 + */
  5 +var fs = require('fs');
  6 +var UglifyJS = require("uglify-js");
  7 +
  8 +var minifier = {
  9 +
  10 + mergeAndMini: function(fileArray,scriptString, root, isIndex){
  11 + var len = fileArray.length;
  12 + for(var i = 0; i < len; i ++){
  13 + fileArray[i] = root + fileArray[i].split('/').join('\\');
  14 + }
  15 +
  16 + var result, indoorRs;
  17 +
  18 + try {
  19 + if(fileArray && len > 0)
  20 + result = UglifyJS.minify(fileArray);
  21 +
  22 + if(scriptString)
  23 + indoorRs = UglifyJS.minify(scriptString, {fromString: true});
  24 + } catch (e) {
  25 + console.log(e);
  26 + process.exit();
  27 + }
  28 +
  29 + return {outside: result?result.code:'', inside: indoorRs?indoorRs.code:''};
  30 + },
  31 + mini: function(file){
  32 + return UglifyJS.minify(file).code;
  33 + }
  34 +}
  35 +
  36 +module.exports = minifier;
0 \ No newline at end of file 37 \ No newline at end of file
src/main/resources/fatso/package.json 0 → 100644
  1 +{
  2 + "name": "fatso",
  3 + "version": "1.0.0",
  4 + "description": "子页面js检查、合并、压缩等处理",
  5 + "main": "start.js",
  6 + "scripts": {
  7 + "test": "echo \"Error: no test specified\" && exit 1"
  8 + },
  9 + "author": "panzhaov5",
  10 + "license": "ISC",
  11 + "dependencies": {
  12 + "cheerio": "^0.20.0",
  13 + "colors": "^1.1.2",
  14 + "eventproxy": "^0.3.4",
  15 + "uglify-js": "^2.6.2"
  16 + }
  17 +}
src/main/resources/fatso/parse.js 0 → 100644
  1 +/**
  2 + * @author PanZhao
  3 + * @date 2016年3月17日 下午12:44:06
  4 + */
  5 +var fs = require('fs')
  6 + ,cheerio = require('cheerio')
  7 + ,minifier = require('./minifier')
  8 + ,crypto = require("crypto");
  9 +
  10 +var parse = {
  11 + html: function(filePath, root){
  12 + var data = fs.readFileSync(filePath, 'utf-8')
  13 + ,$ = cheerio.load(data)
  14 + ,scriptString = '';
  15 +
  16 + var script = $('script')
  17 + ,linkArray = [];
  18 +
  19 + for(var i = 0, s; s = script[i++];){
  20 + //模板
  21 + if($(s).attr('type') == 'text/html')
  22 + continue;
  23 + //不参与的
  24 + if($(s).data('exclude') == 1)
  25 + continue;
  26 +
  27 + //外部引用JS
  28 + if($(s).attr('src') != null ){
  29 + var src = $(s).attr('src');
  30 + //独立自主第三方
  31 + if($(s).data('autocephaly') == 1){
  32 + var mini = minifier.mini(root + src)
  33 + ,code = md5(mini);
  34 +
  35 + var newPath = src.substr(0, src.lastIndexOf('/')) + '/' +code + '.js';
  36 + //重命名文件
  37 + fs.renameSync(root + src, root + newPath);
  38 + write(root + newPath, mini);
  39 +
  40 + $(s).attr('src', newPath);
  41 + continue;
  42 + }else
  43 + linkArray.push(src);
  44 + }
  45 + //内部JS
  46 + else{
  47 + scriptString = $(s).html();
  48 + }
  49 +
  50 + $(s).remove();
  51 + }
  52 + return {jsArray: linkArray, $: $, scriptString: scriptString};
  53 + }
  54 +}
  55 +
  56 +
  57 +function md5(text){
  58 + return crypto.createHash("md5").update(text).digest("hex");
  59 +}
  60 +
  61 +function write(file, text){
  62 + fs.writeFile(file, text, function (err) {
  63 + if (err){
  64 + console.log(err.toString().red);
  65 + process.exit();
  66 + }
  67 + console.log(file.green);
  68 + });
  69 +}
  70 +
  71 +module.exports = parse;
0 \ No newline at end of file 72 \ No newline at end of file
src/main/resources/fatso/start.js 0 → 100644
  1 +/**
  2 + * @author PanZhao
  3 + * @date 2016年3月17日 下午12:44:06
  4 + */
  5 +var fs = require('fs')
  6 + ,colors = require('colors')
  7 + ,child_process = require('child_process')
  8 + ,EventProxy = require('eventproxy')
  9 + ,parse = require('./parse')
  10 + ,minifier = require('./minifier')
  11 + ,crypto = require("crypto");
  12 +
  13 +//不参与的目录
  14 +var excludes = ['scheduleApp']
  15 + ,ep = new EventProxy()
  16 + ,pName = 'bsth_control'
  17 + ,path = process.cwd()
  18 + //根目录
  19 + ,root = path.substr(0, path.indexOf('\\src\\main'))
  20 + ,workspace = root.substr(0, root.indexOf('\\' + pName))
  21 + //临时目录
  22 + ,dest = (workspace + '\\' + pName+'@fatso_copy').replace(/\//g,'\\')
  23 + ,_static = '\\src\\main\\resources\\static'
  24 + ,_pages = dest + _static + '\\pages';
  25 +
  26 +
  27 +//创建临时目录
  28 +fs.mkdir(dest, function(e){
  29 + if(e)
  30 + logError('创建临时目录出错,请检查目录 ' + dest + '是否存在');
  31 +
  32 + setTimeout(function(){
  33 + ep.emit('mvn-clean');
  34 + }, 500);
  35 +});
  36 +//子进程
  37 +var cProcess;
  38 +
  39 +ep.tail('mvn-clean',function(){
  40 + //清理target
  41 + logInfo('mvn clean...');
  42 + cProcess = child_process.exec("mvn clean",{cwd: workspace + '\\' + pName},function(error){
  43 + if(error)
  44 + logError(error);
  45 +
  46 + logSuccess('mvn clean success');
  47 +
  48 + ep.emit('copy-project');
  49 + });
  50 + output(cProcess);
  51 +});
  52 +
  53 +//复制项目副本
  54 +ep.tail('copy-project',function(){
  55 + logInfo('copy project...');
  56 + var xcopyCom = 'XCOPY '+ root.replace(/\//g,'\\') + ' ' + dest +' /e /exclude:'+path+'\\exclude.txt';
  57 + cProcess = child_process.exec(xcopyCom,{maxBuffer: 5000*1024},function(error){
  58 + if(error)
  59 + logError(error);
  60 +
  61 + logSuccess('copy project success');
  62 +
  63 + ep.emit('check-js');
  64 + });
  65 + //output(cProcess);
  66 +});
  67 +
  68 +//检查JS
  69 +ep.tail('check-js', function(){
  70 + ep.emit('minifier-js');
  71 +});
  72 +
  73 +//合并压缩JS
  74 +ep.tail('minifier-js', function(){
  75 + logInfo('handle index.html...');
  76 +
  77 + //先处理首页
  78 + ep.emit('handle-index', function(){
  79 + //递归处理片段
  80 + walk(dest + _static + '\\pages', function(item){
  81 + ep.emit('handle-fragment', item);
  82 + },
  83 + function(){
  84 + ep.emit('package-jar');
  85 + });
  86 + });
  87 +});
  88 +
  89 +//打包
  90 +ep.tail('package-jar', function(file){
  91 + var packageCom = 'mvn clean package';
  92 + cProcess = child_process.exec(packageCom,{maxBuffer: 5000*1024, cwd: dest},function(error){
  93 + if(error)
  94 + logError(error);
  95 +
  96 + logSuccess('mvn package success');
  97 +
  98 + console.log(('成功打包在 ' + dest + '\\target 目录下').cyan);
  99 + });
  100 +
  101 + output(cProcess);
  102 +});
  103 +
  104 +//处理片段
  105 +ep.tail('handle-fragment', function(file){
  106 + //要排除的文件
  107 + for(var i = 0, ex; ex = excludes[i++];){
  108 + if(file.indexOf(_pages + '\\' + ex) != -1)
  109 + return false;
  110 + }
  111 + handleJavascript(file, function(mini, $){
  112 + var jsMini;
  113 + if(mini.inside)
  114 + jsMini = '(function(){' + mini.inside + '\n' + mini.outside + '})();';
  115 + else
  116 + jsMini = '(function(){' + mini.outside + '})();';
  117 +
  118 + write(file, $.html() + '<script>' + jsMini + '</script>');
  119 + });
  120 +
  121 +});
  122 +
  123 +//处理首页
  124 +ep.tail('handle-index', function(cb){
  125 + var index = dest + _static + '\\index.html';
  126 + handleJavascript(index, function(mini, $){
  127 + var jsMiniText = mini.inside + mini.outside;
  128 +
  129 + var code = md5(jsMiniText);
  130 + fs.open( dest + _static + '\\assets\\js\\' + code + '.js', 'a', function(err, fd){
  131 + if(err)
  132 + logError(err);
  133 +
  134 + fs.write(fd,jsMiniText, function(){
  135 + var ss = $('script');
  136 +
  137 + $(ss[ss.length - 1]).before('<script src="/assets/js/'+code+'.js"></script>\n');
  138 + for(var i = 0, s; s = ss[i++];){
  139 + $(s).removeAttr('data-exclude')
  140 + .removeAttr('flag')
  141 + .removeAttr('data-autocephaly');
  142 + }
  143 + write(index, $.html());
  144 +
  145 + cb && cb();
  146 + });
  147 + });
  148 + });
  149 +});
  150 +
  151 +
  152 +function handleJavascript(item, cb){
  153 + //解析页面
  154 + var htmlResult = parse.html(item, dest + _static)
  155 + ,jsArray = htmlResult.jsArray
  156 + ,$ = htmlResult.$
  157 + ,scrStr = htmlResult.scriptString;
  158 +
  159 + //合并压缩
  160 + var mini = minifier.mergeAndMini(jsArray, scrStr, dest + _static);
  161 +
  162 + cb && cb(mini, $);
  163 +}
  164 +
  165 +function removeJsLink(s, e){
  166 + var newArray = [], flag;
  167 +
  168 + for(var i = 0, si; si = s[i++];){
  169 + flag = 0;
  170 + for(var j = 0,ei; ei = e[j++];){
  171 + if(si.indexOf(ei) != -1){
  172 + flag = -1;
  173 + break;
  174 + }
  175 + }
  176 +
  177 + if(flag == 0){
  178 + newArray.push(si);
  179 + }
  180 + }
  181 + return newArray;
  182 +}
  183 +
  184 +function write(file, text){
  185 + fs.writeFile(file, text, function (err) {
  186 + if (err){
  187 + console.log(err.toString().red);
  188 + process.exit();
  189 + }
  190 + console.log(file.green);
  191 + });
  192 +}
  193 +
  194 +function md5(text){
  195 + return crypto.createHash("md5").update(text).digest("hex");
  196 +}
  197 +
  198 +
  199 +function walk(path ,handleFile, over) {
  200 + fs.readdir(path, function(err, files) {
  201 + if (err) {
  202 + console.log('read dir error'.red);
  203 + } else {
  204 + files.forEach(function(item) {
  205 + var tmpPath = path + '\\' + item;
  206 + fs.stat(tmpPath, function(err1, stats) {
  207 + if (err1) {
  208 + console.log('stat error');
  209 + } else {
  210 + if (stats.isDirectory()) {
  211 + walk(tmpPath, handleFile);
  212 + } else if(item.indexOf('.html') != -1){
  213 + handleFile(tmpPath);
  214 + }
  215 + }
  216 + })
  217 + });
  218 +
  219 + over && over();
  220 + }
  221 + });
  222 +}
  223 +
  224 +function logInfo(t){
  225 + console.log(t);
  226 +}
  227 +
  228 +function logSuccess(t){
  229 + console.log(t.green);
  230 +}
  231 +
  232 +function logError(e){
  233 + console.log(e.toString().red);
  234 + process.exit();
  235 +}
  236 +
  237 +function output(cProcess){
  238 + //标准输出
  239 + cProcess.stdout.on('data', function (s) {
  240 + console.log(s);
  241 + });
  242 +}
0 \ No newline at end of file 243 \ No newline at end of file