Commit 5b87aef859f1d863f7dceeb9abeec767e791e5ce
Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into minhang
Showing
11 changed files
with
224 additions
and
136 deletions
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<ScheduleRealInfo, | @@ -73,7 +73,7 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -83,7 +83,7 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -93,7 +93,7 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -103,7 +103,7 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -111,9 +111,9 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -121,14 +121,14 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -136,11 +136,11 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -160,9 +160,9 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -171,11 +171,11 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -183,11 +183,11 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -197,11 +197,11 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -209,11 +209,11 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -221,11 +221,11 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -235,9 +235,9 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -247,29 +247,29 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -277,41 +277,41 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -327,19 +327,19 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -372,41 +372,41 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -436,7 +436,7 @@ public class ScheduleRealInfoController extends BaseController<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<ScheduleRealInfo, | @@ -467,7 +467,7 @@ public class ScheduleRealInfoController extends BaseController<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); |