Commit 5b87aef859f1d863f7dceeb9abeec767e791e5ce

Authored by 娄高锋
2 parents d7b32888 7f04b456

Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into minhang

src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -24,10 +24,10 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, @@ -24,10 +24,10 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
24 24
25 /*@Autowired 25 /*@Autowired
26 GetSchedulePlanThread getSchedulePlanThread;*/ 26 GetSchedulePlanThread getSchedulePlanThread;*/
27 - 27 +
28 @Autowired 28 @Autowired
29 ScheduleRealInfoService scheduleRealInfoService; 29 ScheduleRealInfoService scheduleRealInfoService;
30 - 30 +
31 @Autowired 31 @Autowired
32 DayOfSchedule dayOfSchedule; 32 DayOfSchedule dayOfSchedule;
33 33
@@ -42,29 +42,29 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, @@ -42,29 +42,29 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
42 } 42 }
43 43
44 /** 44 /**
45 - * 45 + *
46 * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id 46 * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id
47 * 主键 @param @param remarks 备注 @param @param dfsj 待发时间(HH:mm) @throws 47 * 主键 @param @param remarks 备注 @param @param dfsj 待发时间(HH:mm) @throws
48 */ 48 */
49 @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST) 49 @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST)
50 public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks, 50 public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks,
51 - @RequestParam String dfsj,String bcType) { 51 + @RequestParam String dfsj,String bcType) {
52 return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType); 52 return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType);
53 } 53 }
54 54
55 /** 55 /**
56 - * 56 + *
57 * @Title: destroy @Description: TODO(销毁,烂班) @param @param idsStr 要烂掉的班次ID ,分隔 57 * @Title: destroy @Description: TODO(销毁,烂班) @param @param idsStr 要烂掉的班次ID ,分隔
58 */ 58 */
59 @RequestMapping(value = "/destroy", method = RequestMethod.POST) 59 @RequestMapping(value = "/destroy", method = RequestMethod.POST)
60 public Map<String, Object> destroy(@RequestParam String idsStr 60 public Map<String, Object> destroy(@RequestParam String idsStr
61 /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/, 61 /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/,
62 - @RequestParam String remarks, @RequestParam String adjustExps/*, @RequestParam(defaultValue = "0") int spaceNum*/) { 62 + @RequestParam String remarks, @RequestParam String adjustExps/*, @RequestParam(defaultValue = "0") int spaceNum*/) {
63 return scheduleRealInfoService.destroy(idsStr/*, spaceAdjust*/, remarks, adjustExps/*, spaceNum*/); 63 return scheduleRealInfoService.destroy(idsStr/*, spaceAdjust*/, remarks, adjustExps/*, spaceNum*/);
64 } 64 }
65 65
66 /** 66 /**
67 - * 67 + *
68 * @Title: carDeviceMapp @Description: TODO(获取车辆自编号和设备号对照,从缓存取) @throws 68 * @Title: carDeviceMapp @Description: TODO(获取车辆自编号和设备号对照,从缓存取) @throws
69 */ 69 */
70 @RequestMapping(value = "/carDeviceMapp", method = RequestMethod.GET) 70 @RequestMapping(value = "/carDeviceMapp", method = RequestMethod.GET)
@@ -73,7 +73,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -73,7 +73,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
73 } 73 }
74 74
75 /** 75 /**
76 - * 76 + *
77 * @Title: findPersionByLine @Description: TODO(根据线路主键获取驾驶员) @param @param 77 * @Title: findPersionByLine @Description: TODO(根据线路主键获取驾驶员) @param @param
78 * lineId @throws 78 * lineId @throws
79 */ 79 */
@@ -83,7 +83,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -83,7 +83,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
83 } 83 }
84 84
85 /** 85 /**
86 - * 86 + *
87 * @Title: findPersionByLine @Description: TODO(根据线路主键获取售票员) @param @param 87 * @Title: findPersionByLine @Description: TODO(根据线路主键获取售票员) @param @param
88 * lineId @throws 88 * lineId @throws
89 */ 89 */
@@ -93,7 +93,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -93,7 +93,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
93 } 93 }
94 94
95 /** 95 /**
96 - * 96 + *
97 * @Title: findPersionByLine @Description: TODO(根据线路主键获取车辆) @param @param 97 * @Title: findPersionByLine @Description: TODO(根据线路主键获取车辆) @param @param
98 * lineId @throws 98 * lineId @throws
99 */ 99 */
@@ -103,7 +103,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -103,7 +103,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
103 } 103 }
104 104
105 /** 105 /**
106 - * 106 + *
107 * @Title: sreachNbbm @Description: TODO(搜索车辆内部编码) @throws 107 * @Title: sreachNbbm @Description: TODO(搜索车辆内部编码) @throws
108 */ 108 */
109 @RequestMapping(value = "/sreachVehic", method = RequestMethod.GET) 109 @RequestMapping(value = "/sreachVehic", method = RequestMethod.GET)
@@ -111,9 +111,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -111,9 +111,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
111 return scheduleRealInfoService.sreachVehic(nbbm); 111 return scheduleRealInfoService.sreachVehic(nbbm);
112 } 112 }
113 /** 113 /**
114 - *  
115 - * @Title: realOutAdjust  
116 - * @Description: TODO(实发调整) 114 + *
  115 + * @Title: realOutAdjust
  116 + * @Description: TODO(实发调整)
117 * @param @param id 班次ID 117 * @param @param id 班次ID
118 * @param @param fcsjActual 实际发车时间 HH:mm 118 * @param @param fcsjActual 实际发车时间 HH:mm
119 * @param @param remarks 备注 119 * @param @param remarks 备注
@@ -121,14 +121,14 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -121,14 +121,14 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
121 */ 121 */
122 @RequestMapping(value = "/realOutAdjust", method = RequestMethod.POST) 122 @RequestMapping(value = "/realOutAdjust", method = RequestMethod.POST)
123 public Map<String, Object> realOutAdjust(@RequestParam Long id, @RequestParam String fcsjActual, 123 public Map<String, Object> realOutAdjust(@RequestParam Long id, @RequestParam String fcsjActual,
124 - @RequestParam String remarks) { 124 + @RequestParam String remarks) {
125 return scheduleRealInfoService.realOutAdjust(id, fcsjActual, remarks); 125 return scheduleRealInfoService.realOutAdjust(id, fcsjActual, remarks);
126 } 126 }
127 - 127 +
128 /** 128 /**
129 - *  
130 - * @Title: revokeDestroy  
131 - * @Description: TODO(撤销烂班) 129 + *
  130 + * @Title: revokeDestroy
  131 + * @Description: TODO(撤销烂班)
132 * @param @param id 132 * @param @param id
133 * @throws 133 * @throws
134 */ 134 */
@@ -136,11 +136,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -136,11 +136,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
136 public Map<String, Object> revokeDestroy(@RequestParam Long id){ 136 public Map<String, Object> revokeDestroy(@RequestParam Long id){
137 return scheduleRealInfoService.revokeDestroy(id); 137 return scheduleRealInfoService.revokeDestroy(id);
138 } 138 }
139 - 139 +
140 /** 140 /**
141 - *  
142 - * @Title: revokeRealOutgo  
143 - * @Description: TODO(撤销实发) 141 + *
  142 + * @Title: revokeRealOutgo
  143 + * @Description: TODO(撤销实发)
144 * @param @param id 144 * @param @param id
145 * @throws 145 * @throws
146 */ 146 */
@@ -160,9 +160,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -160,9 +160,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
160 } 160 }
161 161
162 /** 162 /**
163 - *  
164 - * @Title: spaceAdjust  
165 - * @Description: TODO(间隔调整) 163 + *
  164 + * @Title: spaceAdjust
  165 + * @Description: TODO(间隔调整)
166 * @param @param ids 要调整的班次数组ID 166 * @param @param ids 要调整的班次数组ID
167 * @param @param space 间隔 167 * @param @param space 间隔
168 * @throws 168 * @throws
@@ -171,11 +171,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -171,11 +171,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
171 public Map<String, Object> spaceAdjust(Long[] ids, Integer space){ 171 public Map<String, Object> spaceAdjust(Long[] ids, Integer space){
172 return scheduleRealInfoService.spaceAdjust(ids, space); 172 return scheduleRealInfoService.spaceAdjust(ids, space);
173 } 173 }
174 - 174 +
175 /** 175 /**
176 - *  
177 - * @Title: schInfoFineTune  
178 - * @Description: TODO(发车信息微调) 176 + *
  177 + * @Title: schInfoFineTune
  178 + * @Description: TODO(发车信息微调)
179 * @param @param map 179 * @param @param map
180 * @throws 180 * @throws
181 */ 181 */
@@ -183,11 +183,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -183,11 +183,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
183 public Map<String, Object> schInfoFineTune(@RequestParam Map<String, String> map){ 183 public Map<String, Object> schInfoFineTune(@RequestParam Map<String, String> map){
184 return scheduleRealInfoService.schInfoFineTune(map); 184 return scheduleRealInfoService.schInfoFineTune(map);
185 } 185 }
186 - 186 +
187 /** 187 /**
188 - *  
189 - * @Title: outgoAdjustAll  
190 - * @Description: TODO(批量待发调整) 188 + *
  189 + * @Title: outgoAdjustAll
  190 + * @Description: TODO(批量待发调整)
191 * @param @param list 191 * @param @param list
192 * @throws 192 * @throws
193 */ 193 */
@@ -197,11 +197,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -197,11 +197,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
197 params = StringEscapeUtils.unescapeHtml4(params); 197 params = StringEscapeUtils.unescapeHtml4(params);
198 return scheduleRealInfoService.outgoAdjustAll(params); 198 return scheduleRealInfoService.outgoAdjustAll(params);
199 } 199 }
200 - 200 +
201 /** 201 /**
202 - *  
203 - * @Title: findByLineAndUpDown  
204 - * @Description: TODO(根据线路和走向获取班次) 202 + *
  203 + * @Title: findByLineAndUpDown
  204 + * @Description: TODO(根据线路和走向获取班次)
205 * @param @param line 205 * @param @param line
206 * @param @param upDown 206 * @param @param upDown
207 */ 207 */
@@ -209,11 +209,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -209,11 +209,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
209 public List<ScheduleRealInfo> findByLineAndUpDown(@RequestParam String line,@RequestParam Integer upDown){ 209 public List<ScheduleRealInfo> findByLineAndUpDown(@RequestParam String line,@RequestParam Integer upDown){
210 return dayOfSchedule.findByLineAndUpDown(line, upDown); 210 return dayOfSchedule.findByLineAndUpDown(line, upDown);
211 } 211 }
212 - 212 +
213 /** 213 /**
214 - *  
215 - * @Title: findRouteByLine  
216 - * @Description: TODO(获取线路的站点,路段路由) 214 + *
  215 + * @Title: findRouteByLine
  216 + * @Description: TODO(获取线路的站点,路段路由)
217 * @param @param lineCode 217 * @param @param lineCode
218 * @throws 218 * @throws
219 */ 219 */
@@ -221,11 +221,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -221,11 +221,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
221 public Map<String, Object> findRouteByLine(@RequestParam String lineCode){ 221 public Map<String, Object> findRouteByLine(@RequestParam String lineCode){
222 return scheduleRealInfoService.findRouteByLine(lineCode); 222 return scheduleRealInfoService.findRouteByLine(lineCode);
223 } 223 }
224 - 224 +
225 /** 225 /**
226 - *  
227 - * @Title: removeChildTask  
228 - * @Description: TODO(删除子任务) 226 + *
  227 + * @Title: removeChildTask
  228 + * @Description: TODO(删除子任务)
229 * @param @param taskId 子任务ID 229 * @param @param taskId 子任务ID
230 * @throws 230 * @throws
231 */ 231 */
@@ -235,9 +235,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -235,9 +235,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
235 } 235 }
236 236
237 /** 237 /**
238 - *  
239 - * @Title: findByLineCode  
240 - * @Description: TODO(根据线路获取班次信息) 238 + *
  239 + * @Title: findByLineCode
  240 + * @Description: TODO(根据线路获取班次信息)
241 * @param @param lineCode 241 * @param @param lineCode
242 */ 242 */
243 @RequestMapping(value = "/lineCode/{lineCode}") 243 @RequestMapping(value = "/lineCode/{lineCode}")
@@ -247,29 +247,29 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -247,29 +247,29 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
247 247
248 @RequestMapping(value = "/queryUserInfo") 248 @RequestMapping(value = "/queryUserInfo")
249 public List<ScheduleRealInfo> queryUserInfo(@RequestParam String line, 249 public List<ScheduleRealInfo> queryUserInfo(@RequestParam String line,
250 - @RequestParam String date,@RequestParam String state) { 250 + @RequestParam String date,@RequestParam String state) {
251 return scheduleRealInfoService.queryUserInfo(line, date,state); 251 return scheduleRealInfoService.queryUserInfo(line, date,state);
252 } 252 }
253 - 253 +
254 @RequestMapping(value = "/queryUserInfoPx") 254 @RequestMapping(value = "/queryUserInfoPx")
255 public List<ScheduleRealInfo> queryUserInfoPx(@RequestParam String line, 255 public List<ScheduleRealInfo> queryUserInfoPx(@RequestParam String line,
256 - @RequestParam String date,@RequestParam String state,@RequestParam String type) { 256 + @RequestParam String date,@RequestParam String state,@RequestParam String type) {
257 return scheduleRealInfoService.queryUserInfoPx(line, date,state,type); 257 return scheduleRealInfoService.queryUserInfoPx(line, date,state,type);
258 } 258 }
259 259
260 @RequestMapping(value = "/exportWaybill",method = RequestMethod.GET) 260 @RequestMapping(value = "/exportWaybill",method = RequestMethod.GET)
261 public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName, @RequestParam String clZbh, 261 public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName, @RequestParam String clZbh,
262 - @RequestParam String lpName,@RequestParam String date,@RequestParam String line) { 262 + @RequestParam String lpName,@RequestParam String date,@RequestParam String line) {
263 return scheduleRealInfoService.exportWaybill(jName, clZbh, lpName,date,line); 263 return scheduleRealInfoService.exportWaybill(jName, clZbh, lpName,date,line);
264 } 264 }
265 - 265 +
266 @RequestMapping(value = "/exportWaybillQp",method = RequestMethod.GET) 266 @RequestMapping(value = "/exportWaybillQp",method = RequestMethod.GET)
267 public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh 267 public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh
268 ,@RequestParam String date,@RequestParam String line) { 268 ,@RequestParam String date,@RequestParam String line) {
269 return scheduleRealInfoService.exportWaybillQp( clZbh, date,line); 269 return scheduleRealInfoService.exportWaybillQp( clZbh, date,line);
270 } 270 }
271 271
272 - 272 +
273 @RequestMapping(value = "/dailyInfo") 273 @RequestMapping(value = "/dailyInfo")
274 public List<Map<String, Object>> dailyInfo(@RequestParam String line, @RequestParam String date,@RequestParam String type) { 274 public List<Map<String, Object>> dailyInfo(@RequestParam String line, @RequestParam String date,@RequestParam String type) {
275 return scheduleRealInfoService.dailyInfo(line, date, type); 275 return scheduleRealInfoService.dailyInfo(line, date, type);
@@ -277,41 +277,41 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -277,41 +277,41 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
277 277
278 @RequestMapping(value = "/historyMessage") 278 @RequestMapping(value = "/historyMessage")
279 public List<Object[]> historyMessage(@RequestParam String line, @RequestParam String date, 279 public List<Object[]> historyMessage(@RequestParam String line, @RequestParam String date,
280 - @RequestParam String code, @RequestParam String type) { 280 + @RequestParam String code, @RequestParam String type) {
281 return scheduleRealInfoService.historyMessage(line, date, code, type); 281 return scheduleRealInfoService.historyMessage(line, date, code, type);
282 } 282 }
283 - 283 +
284 @RequestMapping(value="/findLine") 284 @RequestMapping(value="/findLine")
285 public List<Map<String,String>> findLine(@RequestParam String line){ 285 public List<Map<String,String>> findLine(@RequestParam String line){
286 return scheduleRealInfoService.findLine(line); 286 return scheduleRealInfoService.findLine(line);
287 } 287 }
288 - 288 +
289 @RequestMapping(value="/findKMBC",method = RequestMethod.GET) 289 @RequestMapping(value="/findKMBC",method = RequestMethod.GET)
290 public Map<String,Object> findKMBC(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName 290 public Map<String,Object> findKMBC(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName
291 ,@RequestParam String date,@RequestParam String line){ 291 ,@RequestParam String date,@RequestParam String line){
292 return scheduleRealInfoService.findKMBC(jGh, clZbh,lpName,date,line); 292 return scheduleRealInfoService.findKMBC(jGh, clZbh,lpName,date,line);
293 } 293 }
294 - 294 +
295 @RequestMapping(value="/findKMBCQp",method = RequestMethod.GET) 295 @RequestMapping(value="/findKMBCQp",method = RequestMethod.GET)
296 public Map<String,Object> findKMBCQp(@RequestParam String clZbh 296 public Map<String,Object> findKMBCQp(@RequestParam String clZbh
297 ,@RequestParam String date,@RequestParam String line){ 297 ,@RequestParam String date,@RequestParam String line){
298 return scheduleRealInfoService.findKMBCQp(clZbh,date,line); 298 return scheduleRealInfoService.findKMBCQp(clZbh,date,line);
299 } 299 }
300 - 300 +
301 @RequestMapping(value="/findLpName") 301 @RequestMapping(value="/findLpName")
302 public List<Map<String,String>> findLpName(@RequestParam String lpName){ 302 public List<Map<String,String>> findLpName(@RequestParam String lpName){
303 return scheduleRealInfoService.findLpName(lpName); 303 return scheduleRealInfoService.findLpName(lpName);
304 } 304 }
305 - 305 +
306 @RequestMapping(value = "/account") 306 @RequestMapping(value = "/account")
307 public List<Map<String,Object>> account(@RequestParam String line, @RequestParam String date, 307 public List<Map<String,Object>> account(@RequestParam String line, @RequestParam String date,
308 - @RequestParam String code,@RequestParam String xlName, @RequestParam String type) { 308 + @RequestParam String code,@RequestParam String xlName, @RequestParam String type) {
309 return scheduleRealInfoService.account(line, date, code, xlName, type); 309 return scheduleRealInfoService.account(line, date, code, xlName, type);
310 } 310 }
311 - 311 +
312 @RequestMapping(value = "/correctForm") 312 @RequestMapping(value = "/correctForm")
313 public List<ScheduleRealInfo> correctForm(@RequestParam String line, @RequestParam String startDate, 313 public List<ScheduleRealInfo> correctForm(@RequestParam String line, @RequestParam String startDate,
314 - @RequestParam String endDate, @RequestParam String lpName, @RequestParam String code, @RequestParam String type) { 314 + @RequestParam String endDate, @RequestParam String lpName, @RequestParam String code, @RequestParam String type) {
315 return scheduleRealInfoService.correctForm(line, startDate, endDate, lpName, code, type); 315 return scheduleRealInfoService.correctForm(line, startDate, endDate, lpName, code, type);
316 } 316 }
317 /** 317 /**
@@ -327,19 +327,19 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -327,19 +327,19 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
327 ,@RequestParam String date,@RequestParam String line){ 327 ,@RequestParam String date,@RequestParam String line){
328 return scheduleRealInfoService.queryListWaybill(jName, clZbh,lpName,date,line); 328 return scheduleRealInfoService.queryListWaybill(jName, clZbh,lpName,date,line);
329 } 329 }
330 - 330 +
331 @RequestMapping(value="/queryListWaybillQp",method = RequestMethod.GET) 331 @RequestMapping(value="/queryListWaybillQp",method = RequestMethod.GET)
332 public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh, 332 public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh,
333 - @RequestParam String date,@RequestParam String line){ 333 + @RequestParam String date,@RequestParam String line){
334 return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line); 334 return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line);
335 } 335 }
336 - 336 +
337 @RequestMapping(value="/statisticsDaily") 337 @RequestMapping(value="/statisticsDaily")
338 public List<Map<String,Object>> statisticsDaily(@RequestParam String line, @RequestParam String date, 338 public List<Map<String,Object>> statisticsDaily(@RequestParam String line, @RequestParam String date,
339 - @RequestParam String xlName, @RequestParam String type){ 339 + @RequestParam String xlName, @RequestParam String type){
340 return scheduleRealInfoService.statisticsDaily(line, date, xlName, type); 340 return scheduleRealInfoService.statisticsDaily(line, date, xlName, type);
341 } 341 }
342 - 342 +
343 @RequestMapping(value="/statisticsDailyTj") 343 @RequestMapping(value="/statisticsDailyTj")
344 public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){ 344 public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){
345 String gsdm=""; 345 String gsdm="";
@@ -372,41 +372,41 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -372,41 +372,41 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
372 } 372 }
373 return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type); 373 return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type);
374 } 374 }
375 - 375 +
376 @RequestMapping(value="/MapById",method = RequestMethod.GET) 376 @RequestMapping(value="/MapById",method = RequestMethod.GET)
377 public Map<String, Object> MapById(@RequestParam("id") Long id){ 377 public Map<String, Object> MapById(@RequestParam("id") Long id){
378 return scheduleRealInfoService.MapById(id); 378 return scheduleRealInfoService.MapById(id);
379 } 379 }
380 - 380 +
381 /** 381 /**
382 - * @Title: scheduleDaily  
383 - * @Description: TODO(调度日报表) 382 + * @Title: scheduleDaily
  383 + * @Description: TODO(调度日报表)
384 * @param line 线路 384 * @param line 线路
385 * @param date 时间 385 * @param date 时间
386 - * @return 386 + * @return
387 */ 387 */
388 @RequestMapping(value="/scheduleDaily") 388 @RequestMapping(value="/scheduleDaily")
389 public Map<String,Object> scheduleDaily(@RequestParam String line,@RequestParam String date){ 389 public Map<String,Object> scheduleDaily(@RequestParam String line,@RequestParam String date){
390 return scheduleRealInfoService.scheduleDaily(line,date); 390 return scheduleRealInfoService.scheduleDaily(line,date);
391 } 391 }
392 - 392 +
393 @RequestMapping(value="/realScheduleList") 393 @RequestMapping(value="/realScheduleList")
394 public List<ScheduleRealInfo> realScheduleList(@RequestParam String line,@RequestParam String date){ 394 public List<ScheduleRealInfo> realScheduleList(@RequestParam String line,@RequestParam String date){
395 return scheduleRealInfoService.realScheduleList(line,date); 395 return scheduleRealInfoService.realScheduleList(line,date);
396 } 396 }
397 - 397 +
398 @RequestMapping(value="/realScheduleListQp") 398 @RequestMapping(value="/realScheduleListQp")
399 public List<ScheduleRealInfo> realScheduleListQp(@RequestParam String line,@RequestParam String date){ 399 public List<ScheduleRealInfo> realScheduleListQp(@RequestParam String line,@RequestParam String date){
400 return scheduleRealInfoService.realScheduleListQp(line,date); 400 return scheduleRealInfoService.realScheduleListQp(line,date);
401 } 401 }
402 - 402 +
403 @RequestMapping(value="/multi_tzrc", method=RequestMethod.POST) 403 @RequestMapping(value="/multi_tzrc", method=RequestMethod.POST)
404 public Map<String, Object> multi_tzrc(@RequestParam String cpcsJson){ 404 public Map<String, Object> multi_tzrc(@RequestParam String cpcsJson){
405 cpcsJson = StringEscapeUtils.unescapeHtml4(cpcsJson); 405 cpcsJson = StringEscapeUtils.unescapeHtml4(cpcsJson);
406 List<ChangePersonCar> cpcs = JSONArray.parseArray(cpcsJson, ChangePersonCar.class); 406 List<ChangePersonCar> cpcs = JSONArray.parseArray(cpcsJson, ChangePersonCar.class);
407 return scheduleRealInfoService.multi_tzrc(cpcs); 407 return scheduleRealInfoService.multi_tzrc(cpcs);
408 } 408 }
409 - 409 +
410 @RequestMapping(value="/multi_dftz", method=RequestMethod.POST) 410 @RequestMapping(value="/multi_dftz", method=RequestMethod.POST)
411 public Map<String, Object> multi_dftz(@RequestParam String dcsJson){ 411 public Map<String, Object> multi_dftz(@RequestParam String dcsJson){
412 dcsJson = StringEscapeUtils.unescapeHtml4(dcsJson); 412 dcsJson = StringEscapeUtils.unescapeHtml4(dcsJson);
@@ -436,7 +436,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -436,7 +436,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
436 List<String> rs = new ArrayList<>(); 436 List<String> rs = new ArrayList<>();
437 437
438 long t = new Date().getTime() - ONE_DAY - (1000 * 60 * 60 * 2); 438 long t = new Date().getTime() - ONE_DAY - (1000 * 60 * 60 * 2);
439 - for(int i = 0; i < 5; i ++){ 439 + for(int i = 0; i < 10; i ++){
440 rs.add(fmtyyyyMMdd.print(t)); 440 rs.add(fmtyyyyMMdd.print(t));
441 t -= ONE_DAY; 441 t -= ONE_DAY;
442 } 442 }
@@ -467,7 +467,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -467,7 +467,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
467 public List<Map<String, Object>> scheduleDailyExport(@RequestParam Map<String, Object> map){ 467 public List<Map<String, Object>> scheduleDailyExport(@RequestParam Map<String, Object> map){
468 return scheduleRealInfoService.scheduleDailyExport(map); 468 return scheduleRealInfoService.scheduleDailyExport(map);
469 } 469 }
470 - 470 +
471 @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET) 471 @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET)
472 public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){ 472 public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){
473 return scheduleRealInfoService.exportWaybillMore(map); 473 return scheduleRealInfoService.exportWaybillMore(map);
src/main/java/com/bsth/controller/realcontrol/anomalyCheckController.java
1 package com.bsth.controller.realcontrol; 1 package com.bsth.controller.realcontrol;
2 2
  3 +import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;
3 import com.bsth.data.schedule.DayOfSchedule; 4 import com.bsth.data.schedule.DayOfSchedule;
4 import com.bsth.entity.realcontrol.ScheduleRealInfo; 5 import com.bsth.entity.realcontrol.ScheduleRealInfo;
5 import org.slf4j.Logger; 6 import org.slf4j.Logger;
@@ -49,4 +50,9 @@ public class anomalyCheckController { @@ -49,4 +50,9 @@ public class anomalyCheckController {
49 dayOfSchedule.replaceByNbbm(nbbm, map.values()); 50 dayOfSchedule.replaceByNbbm(nbbm, map.values());
50 } 51 }
51 } 52 }
  53 +
  54 + @RequestMapping(value = "/shutdownThreadPool")
  55 + public void shutdownThreadPool(){
  56 + GpsRealAnalyse.shutdown();
  57 + }
52 } 58 }
src/main/java/com/bsth/data/directive/GatewayHttpUtils.java
1 package com.bsth.data.directive; 1 package com.bsth.data.directive;
2 2
3 -import java.io.IOException;  
4 - 3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.bsth.util.ConfigUtil;
5 import org.apache.http.client.config.RequestConfig; 5 import org.apache.http.client.config.RequestConfig;
6 import org.apache.http.client.methods.CloseableHttpResponse; 6 import org.apache.http.client.methods.CloseableHttpResponse;
7 import org.apache.http.client.methods.HttpPost; 7 import org.apache.http.client.methods.HttpPost;
@@ -12,8 +12,7 @@ import org.apache.http.util.EntityUtils; @@ -12,8 +12,7 @@ import org.apache.http.util.EntityUtils;
12 import org.slf4j.Logger; 12 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory; 13 import org.slf4j.LoggerFactory;
14 14
15 -import com.alibaba.fastjson.JSONObject;  
16 -import com.bsth.util.ConfigUtil; 15 +import java.io.IOException;
17 16
18 /** 17 /**
19 * 18 *
@@ -42,7 +41,7 @@ public class GatewayHttpUtils { @@ -42,7 +41,7 @@ public class GatewayHttpUtils {
42 41
43 //超时时间 42 //超时时间
44 RequestConfig requestConfig = RequestConfig.custom() 43 RequestConfig requestConfig = RequestConfig.custom()
45 - .setConnectTimeout(3000).setConnectionRequestTimeout(1000) 44 + .setConnectTimeout(3000).setConnectionRequestTimeout(1000)
46 .setSocketTimeout(3000).build(); 45 .setSocketTimeout(3000).build();
47 46
48 HttpPost post = new HttpPost(url); 47 HttpPost post = new HttpPost(url);
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
@@ -4,6 +4,7 @@ import com.bsth.data.BasicData; @@ -4,6 +4,7 @@ import com.bsth.data.BasicData;
4 import com.bsth.data.forecast.ForecastRealServer; 4 import com.bsth.data.forecast.ForecastRealServer;
5 import com.bsth.data.gpsdata.thread.GpsDataLoaderThread; 5 import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
6 import com.bsth.data.gpsdata.thread.OfflineMonitorThread; 6 import com.bsth.data.gpsdata.thread.OfflineMonitorThread;
  7 +import com.bsth.data.gpsdata.thread.ThreadPollMonitor;
7 import com.bsth.data.schedule.DayOfSchedule; 8 import com.bsth.data.schedule.DayOfSchedule;
8 import com.bsth.entity.realcontrol.ScheduleRealInfo; 9 import com.bsth.entity.realcontrol.ScheduleRealInfo;
9 import com.google.common.collect.TreeMultimap; 10 import com.google.common.collect.TreeMultimap;
@@ -46,6 +47,9 @@ public class GpsRealData implements CommandLineRunner { @@ -46,6 +47,9 @@ public class GpsRealData implements CommandLineRunner {
46 @Autowired 47 @Autowired
47 ForecastRealServer forecastRealServer; 48 ForecastRealServer forecastRealServer;
48 49
  50 + @Autowired
  51 + ThreadPollMonitor threadPollMonitor;
  52 +
49 /** 53 /**
50 * 构造函数 54 * 构造函数
51 */ 55 */
@@ -61,6 +65,10 @@ public class GpsRealData implements CommandLineRunner { @@ -61,6 +65,10 @@ public class GpsRealData implements CommandLineRunner {
61 //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 2, TimeUnit.SECONDS); 65 //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 2, TimeUnit.SECONDS);
62 //定时扫描掉离线 66 //定时扫描掉离线
63 //Application.mainServices.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS); 67 //Application.mainServices.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);
  68 +
  69 + //扫描GPS线程池状态
  70 + //Application.mainServices.scheduleWithFixedDelay(threadPollMonitor, 60, 20, TimeUnit.SECONDS);
  71 +
64 } 72 }
65 73
66 74
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
@@ -26,7 +26,7 @@ import java.util.concurrent.Executors; @@ -26,7 +26,7 @@ import java.util.concurrent.Executors;
26 @Component 26 @Component
27 public class GpsRealAnalyse { 27 public class GpsRealAnalyse {
28 28
29 - Logger logger = LoggerFactory.getLogger(this.getClass()); 29 + static Logger logger = LoggerFactory.getLogger(GpsRealAnalyse.class);
30 30
31 @Autowired 31 @Autowired
32 OfflineSignalHandle offlineSignalHandle; 32 OfflineSignalHandle offlineSignalHandle;
@@ -46,40 +46,54 @@ public class GpsRealAnalyse { @@ -46,40 +46,54 @@ public class GpsRealAnalyse {
46 46
47 static ExecutorService threadPool = Executors.newFixedThreadPool(100); 47 static ExecutorService threadPool = Executors.newFixedThreadPool(100);
48 48
  49 + public static long st;
  50 + public static CountDownLatch count;
  51 +
49 public void analyse(List<GpsEntity> list) { 52 public void analyse(List<GpsEntity> list) {
50 - //如果正在恢复数据  
51 - if (GpsDataRecovery.run)  
52 - return;  
53 -  
54 - long t = System.currentTimeMillis();  
55 - logger.info("analyse gps size: " + list.size());  
56 - //按线路分组gps  
57 - ArrayListMultimap multimap = ArrayListMultimap.create();  
58 - for(GpsEntity gps : list){  
59 - multimap.put(gps.getLineId(), gps);  
60 - } 53 + try {
  54 + st = System.currentTimeMillis();
  55 + //如果正在恢复数据
  56 + if (GpsDataRecovery.run)
  57 + return;
  58 +
  59 + //按线路分组gps
  60 + ArrayListMultimap multimap = ArrayListMultimap.create();
  61 + for (GpsEntity gps : list) {
  62 + multimap.put(gps.getLineId(), gps);
  63 + }
61 64
62 - Set<String> ks = multimap.keySet();  
63 - CountDownLatch count = new CountDownLatch(ks.size()); 65 + Set<String> ks = multimap.keySet();
  66 + logger.info("analyse gps size: " + list.size() + ", ks: " + ks.size());
  67 + count = new CountDownLatch(ks.size());
64 68
65 - for(String lineCode : ks){  
66 - threadPool.execute(new SignalHandleThread(multimap.get(lineCode), count));  
67 - } 69 + for (String lineCode : ks) {
  70 + threadPool.execute(new SignalHandleThread(multimap.get(lineCode), count));
  71 + }
68 72
69 - try {  
70 //等待子线程结束 73 //等待子线程结束
71 count.await(); 74 count.await();
72 75
73 //加入实时gps对照 76 //加入实时gps对照
74 - for(GpsEntity gps: list) 77 + for (GpsEntity gps : list)
75 gpsRealData.put(gps); 78 gpsRealData.put(gps);
76 79
77 - logger.info("time , " + (System.currentTimeMillis() - t));  
78 - } catch (InterruptedException e) { 80 + logger.info("time , " + (System.currentTimeMillis() - st));
  81 + } catch (Exception e) {
79 logger.error("", e); 82 logger.error("", e);
80 } 83 }
81 } 84 }
82 85
  86 + public static void shutdown() {
  87 + logger.warn("GpsRealAnalyse shutdown!!");
  88 + threadPool.shutdownNow();
  89 + long len = count.getCount();
  90 + for (int i = 0; i < len; i++) {
  91 + count.countDown();
  92 + }
  93 +
  94 + threadPool = Executors.newFixedThreadPool(100);
  95 + }
  96 +
83 static GpsComp comp = new GpsComp(); 97 static GpsComp comp = new GpsComp();
84 98
85 public class SignalHandleThread implements Runnable { 99 public class SignalHandleThread implements Runnable {
@@ -97,7 +111,7 @@ public class GpsRealAnalyse { @@ -97,7 +111,7 @@ public class GpsRealAnalyse {
97 111
98 try { 112 try {
99 Collections.sort(list, comp); 113 Collections.sort(list, comp);
100 - for(GpsEntity gps : list){ 114 + for (GpsEntity gps : list) {
101 //是否有任务 115 //是否有任务
102 boolean task; 116 boolean task;
103 CircleQueue<GpsEntity> prevs = GeoCacheData.getGps(gps.getNbbm()); 117 CircleQueue<GpsEntity> prevs = GeoCacheData.getGps(gps.getNbbm());
@@ -110,7 +124,7 @@ public class GpsRealAnalyse { @@ -110,7 +124,7 @@ public class GpsRealAnalyse {
110 //异常判定(越界/超速) 124 //异常判定(越界/超速)
111 abnormalStateHandle.handle(gps, prevs); 125 abnormalStateHandle.handle(gps, prevs);
112 126
113 - if(!task) 127 + if (!task)
114 return; //无任务的,到这里就结束 128 return; //无任务的,到这里就结束
115 129
116 //反向处理 130 //反向处理
@@ -122,7 +136,7 @@ public class GpsRealAnalyse { @@ -122,7 +136,7 @@ public class GpsRealAnalyse {
122 } catch (Exception e) { 136 } catch (Exception e) {
123 logger.error("", e); 137 logger.error("", e);
124 } finally { 138 } finally {
125 - if(count != null) 139 + if (count != null)
126 count.countDown(); 140 count.countDown();
127 } 141 }
128 } 142 }
src/main/java/com/bsth/data/gpsdata/thread/GpsDataLoaderThread.java
@@ -101,9 +101,9 @@ public class GpsDataLoaderThread extends Thread { @@ -101,9 +101,9 @@ public class GpsDataLoaderThread extends Thread {
101 101
102 old = gpsRealData.get(gps.getDeviceId()); 102 old = gpsRealData.get(gps.getDeviceId());
103 if (old != null && 103 if (old != null &&
104 - old.getTimestamp() == gps.getTimestamp() &&  
105 - old.getLat() == gps.getLat() &&  
106 - old.getLon() == gps.getLon()) 104 + old.getTimestamp().equals(gps.getTimestamp()) &&
  105 + old.getLat().equals(gps.getLat()) &&
  106 + old.getLon().equals(gps.getLon()))
107 continue; 107 continue;
108 108
109 nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId()); 109 nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId());
src/main/java/com/bsth/data/gpsdata/thread/ThreadPollMonitor.java 0 → 100644
  1 +package com.bsth.data.gpsdata.thread;
  2 +
  3 +import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;
  4 +import org.springframework.stereotype.Component;
  5 +
  6 +/**
  7 + * 线程池监听
  8 + * Created by panzhao on 2017/5/10.
  9 + */
  10 +@Component
  11 +public class ThreadPollMonitor extends Thread{
  12 +
  13 + @Override
  14 + public void run() {
  15 + long t = System.currentTimeMillis();
  16 +
  17 + if(t - GpsRealAnalyse.st > 3000 * 10){
  18 + GpsRealAnalyse.shutdown();
  19 + }
  20 + }
  21 +}
src/main/java/com/bsth/data/pilot80/PilotReport.java
@@ -74,7 +74,7 @@ public class PilotReport { @@ -74,7 +74,7 @@ public class PilotReport {
74 switch (d80.getData().getRequestCode()) { 74 switch (d80.getData().getRequestCode()) {
75 case 0xA3: 75 case 0xA3:
76 //出场请求 76 //出场请求
77 - ScheduleRealInfo outSch = dayOfSchedule.nextByBcType(nbbm, "out"); 77 + ScheduleRealInfo outSch = dayOfSchedule.searchNearByBcType(nbbm, "out");
78 //如果有对应出场班次 78 //如果有对应出场班次
79 if(outSch != null){ 79 if(outSch != null){
80 //没有计划里程的出场班次,出场既是首发站,发送下一班次的营运指令 80 //没有计划里程的出场班次,出场既是首发站,发送下一班次的营运指令
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -833,6 +833,29 @@ public class DayOfSchedule implements CommandLineRunner { @@ -833,6 +833,29 @@ public class DayOfSchedule implements CommandLineRunner {
833 return sch; 833 return sch;
834 } 834 }
835 835
  836 + /**
  837 + * 搜索离当前时间最近的一个指定类型的班次
  838 + * @param nbbm
  839 + * @param bcType
  840 + * @return
  841 + */
  842 + public ScheduleRealInfo searchNearByBcType(String nbbm, String bcType){
  843 + List<ScheduleRealInfo> list = findByBcType(nbbm, bcType);
  844 + Collections.sort(list, schFCSJComparator);
  845 +
  846 + long t = System.currentTimeMillis();
  847 + int distance=-1;
  848 +
  849 + ScheduleRealInfo sch = null;
  850 + for(ScheduleRealInfo temp : list){
  851 +
  852 + if(Math.abs(temp.getDfsjT() - t) < distance || distance == -1){
  853 + sch = temp;
  854 + }
  855 + }
  856 + return sch;
  857 + }
  858 +
836 public List<ScheduleRealInfo> findByBcType(String nbbm, String bcType) { 859 public List<ScheduleRealInfo> findByBcType(String nbbm, String bcType) {
837 List<ScheduleRealInfo> all = nbbmScheduleMap.get(nbbm), outList = new ArrayList<>(); 860 List<ScheduleRealInfo> all = nbbmScheduleMap.get(nbbm), outList = new ArrayList<>();
838 861
src/main/java/com/bsth/data/schedule/ScheduleComparator.java
1 package com.bsth.data.schedule; 1 package com.bsth.data.schedule;
2 2
3 -import java.util.Comparator;  
4 -  
5 import com.bsth.entity.realcontrol.ScheduleRealInfo; 3 import com.bsth.entity.realcontrol.ScheduleRealInfo;
6 4
  5 +import java.util.Comparator;
  6 +
7 /** 7 /**
8 * 8 *
9 * @ClassName: ScheduleComparator 9 * @ClassName: ScheduleComparator
@@ -25,7 +25,7 @@ public class ScheduleComparator { @@ -25,7 +25,7 @@ public class ScheduleComparator {
25 25
26 @Override 26 @Override
27 public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) { 27 public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
28 - return (int) (s1.getDfsjT() - s2.getDfsjT()); 28 + return (int) (s1.getFcsjT() - s2.getFcsjT());
29 } 29 }
30 } 30 }
31 } 31 }
src/main/java/com/bsth/websocket/handler/RealControlSocketHandler.java
@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject; @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
4 import com.bsth.common.Constants; 4 import com.bsth.common.Constants;
5 import com.bsth.data.BasicData; 5 import com.bsth.data.BasicData;
6 import com.google.common.base.Splitter; 6 import com.google.common.base.Splitter;
7 -import com.google.common.collect.ArrayListMultimap;  
8 import org.slf4j.Logger; 7 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
10 import org.springframework.context.annotation.Scope; 9 import org.springframework.context.annotation.Scope;
@@ -12,6 +11,7 @@ import org.springframework.stereotype.Component; @@ -12,6 +11,7 @@ import org.springframework.stereotype.Component;
12 import org.springframework.web.socket.*; 11 import org.springframework.web.socket.*;
13 12
14 import java.util.*; 13 import java.util.*;
  14 +import java.util.concurrent.ConcurrentHashMap;
15 15
16 /** 16 /**
17 * @author PanZhao 17 * @author PanZhao
@@ -22,12 +22,14 @@ public class RealControlSocketHandler implements WebSocketHandler { @@ -22,12 +22,14 @@ public class RealControlSocketHandler implements WebSocketHandler {
22 22
23 Logger logger = LoggerFactory.getLogger(this.getClass()); 23 Logger logger = LoggerFactory.getLogger(this.getClass());
24 24
25 - private static final ArrayList<WebSocketSession> users;  
26 - private static final ArrayListMultimap<String, WebSocketSession> listenMap; 25 + private static ArrayList<WebSocketSession> users;
  26 + //private static final ArrayListMultimap<String, WebSocketSession> listenMap;
  27 + private static ConcurrentHashMap<String, List<WebSocketSession>> listenMap;
27 28
28 static { 29 static {
29 users = new ArrayList<WebSocketSession>(); 30 users = new ArrayList<WebSocketSession>();
30 - listenMap = ArrayListMultimap.create(); 31 + //listenMap = ArrayListMultimap.create();
  32 + listenMap = new ConcurrentHashMap();
31 } 33 }
32 34
33 @Override 35 @Override
@@ -35,19 +37,31 @@ public class RealControlSocketHandler implements WebSocketHandler { @@ -35,19 +37,31 @@ public class RealControlSocketHandler implements WebSocketHandler {
35 throws Exception { 37 throws Exception {
36 users.remove(session); 38 users.remove(session);
37 //清理监听 39 //清理监听
38 - Set<String> keys = listenMap.keySet();  
39 - Map<String, WebSocketSession> remMap = new HashMap<>();  
40 - for(String k : keys){  
41 - if(listenMap.get(k).contains(session))  
42 - remMap.put(k, session);  
43 - } 40 + //Set<String> keys = listenMap.keySet();
  41 + //Map<String, WebSocketSession> remMap = new HashMap<>();
  42 +
  43 + int vsCount=0;
  44 + Collection<List<WebSocketSession>> vs = listenMap.values();
  45 + for(List<WebSocketSession> list : vs){
  46 + list.remove(session);
44 47
45 - Set<String> remSet = remMap.keySet(); 48 + vsCount += list.size();
  49 + }
  50 + /*List<WebSocketSession> vs;
  51 + for(String k : keys){
  52 + //vs = listenMap.get(k);
  53 + //vs.remove(session);
  54 + listenMap.get(k).remove()
  55 + *//*if(listenMap.get(k).contains(session))
  56 + remMap.put(k, session);*//*
  57 + }*/
  58 +
  59 + /*Set<String> remSet = remMap.keySet();
46 for(String k : remSet){ 60 for(String k : remSet){
47 listenMap.remove(k, remMap.get(k)); 61 listenMap.remove(k, remMap.get(k));
48 logger.info("web socket close, remove listen K: "+ k); 62 logger.info("web socket close, remove listen K: "+ k);
49 - }  
50 - logger.info("listen values size: " + listenMap.values().size() + " -CloseStatus:" + arg1); 63 + }*/
  64 + logger.info("listen values size: " + vsCount + " -CloseStatus:" + arg1);
51 } 65 }
52 66
53 @Override 67 @Override
@@ -65,8 +79,12 @@ public class RealControlSocketHandler implements WebSocketHandler { @@ -65,8 +79,12 @@ public class RealControlSocketHandler implements WebSocketHandler {
65 //注册线路监听 79 //注册线路监听
66 List<String> idx = Splitter.on(",").splitToList(jsonObj.getString("idx")); 80 List<String> idx = Splitter.on(",").splitToList(jsonObj.getString("idx"));
67 for(String lineCode : idx){ 81 for(String lineCode : idx){
68 - if(BasicData.lineCode2NameMap.containsKey(lineCode))  
69 - listenMap.put(lineCode, session); 82 + if(BasicData.lineCode2NameMap.containsKey(lineCode)){
  83 + if(!listenMap.containsKey(lineCode)){
  84 + listenMap.put(lineCode, new ArrayList<WebSocketSession>());
  85 + }
  86 + listenMap.get(lineCode).add(session);
  87 + }
70 } 88 }
71 break; 89 break;
72 90
@@ -97,12 +115,11 @@ public class RealControlSocketHandler implements WebSocketHandler { @@ -97,12 +115,11 @@ public class RealControlSocketHandler implements WebSocketHandler {
97 public void sendMessageToLine(String lineCode, String msg) { 115 public void sendMessageToLine(String lineCode, String msg) {
98 116
99 TextMessage message = new TextMessage(msg.getBytes()); 117 TextMessage message = new TextMessage(msg.getBytes());
  118 + List<WebSocketSession> list = listenMap.get(lineCode);
  119 + if(list == null || list.size() == 0)
  120 + return;
100 121
101 - Iterator<WebSocketSession> iterator = listenMap.get(lineCode).iterator();  
102 -  
103 - WebSocketSession user;  
104 - while(iterator.hasNext()){  
105 - user = iterator.next(); 122 + for(WebSocketSession user : list){
106 try { 123 try {
107 if (user.isOpen()) { 124 if (user.isOpen()) {
108 user.sendMessage(message); 125 user.sendMessage(message);