Commit 5c4a4bc7cfeed63370a47a1a9664a7ec8ccc4d38
Merge branch 'minhang' into qingpu
Showing
16 changed files
with
902 additions
and
848 deletions
Too many changes to show.
To preserve performance only 16 of 64 files are displayed.
src/main/java/com/bsth/controller/oil/YlbController.java
| ... | ... | @@ -106,24 +106,24 @@ public class YlbController extends BaseController<Ylb, Integer>{ |
| 106 | 106 | @RequestParam(defaultValue = "DESC") String direction){ |
| 107 | 107 | |
| 108 | 108 | Direction d; |
| 109 | - try { | |
| 109 | +// try { | |
| 110 | 110 | String rq=map.get("rq").toString(); |
| 111 | 111 | if(!(rq=="")){ |
| 112 | - | |
| 113 | - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); | |
| 114 | - Calendar calendar = new GregorianCalendar(); | |
| 115 | - calendar.setTime(sdf.parse(rq)); | |
| 116 | - calendar.add(calendar.DATE,1); | |
| 117 | - Date date=calendar.getTime(); | |
| 118 | - map.put("rq_ge", rq); | |
| 119 | - map.put("rq_le", sdf.format(date)); | |
| 120 | - System.out.println(rq); | |
| 121 | - System.out.println(sdf.format(date)); | |
| 122 | - } | |
| 123 | - } catch (ParseException e) { | |
| 124 | - // TODO Auto-generated catch block | |
| 125 | - e.printStackTrace(); | |
| 112 | +// | |
| 113 | +// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); | |
| 114 | +// Calendar calendar = new GregorianCalendar(); | |
| 115 | +// calendar.setTime(sdf.parse(rq)); | |
| 116 | +// calendar.add(calendar.DATE,1); | |
| 117 | +// Date date=calendar.getTime(); | |
| 118 | + map.put("rq_eq", rq); | |
| 119 | +// map.put("rq_lt", sdf.format(date)); | |
| 120 | +// System.out.println(rq); | |
| 121 | +// System.out.println(sdf.format(date)); | |
| 126 | 122 | } |
| 123 | +// } catch (ParseException e) { | |
| 124 | +// // TODO Auto-generated catch block | |
| 125 | +// e.printStackTrace(); | |
| 126 | +// } | |
| 127 | 127 | if(null != direction && direction.equals("ASC")) |
| 128 | 128 | d = Direction.ASC; |
| 129 | 129 | else | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| ... | ... | @@ -36,35 +36,13 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | 38 | * |
| 39 | - * 改由通过 websocket 注册监听!!! | |
| 40 | - * | |
| 41 | - * @Title: registerLine @Description: TODO(注册线路,后续才能收到数据推送) @param @param | |
| 42 | - * lineCodes @throws | |
| 43 | - * 用GET 防止监控模式下被拦截 | |
| 44 | - | |
| 45 | - @RequestMapping(value = "/registerLine", method = RequestMethod.GET) | |
| 46 | - public int registerLine(@RequestParam String lineCodes) { | |
| 47 | - List<String> list = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(lineCodes); | |
| 48 | - String userName = SecurityUtils.getCurrentUser().getUserName(); | |
| 49 | - // 注销之前的绑定 | |
| 50 | - for (String line : list) | |
| 51 | - BasicData.lineCode2SocketUserMap.get(line).remove(userName); | |
| 52 | - // 重新绑定 | |
| 53 | - for (String line : list) | |
| 54 | - BasicData.lineCode2SocketUserMap.put(line, userName); | |
| 55 | - | |
| 56 | - return 0; | |
| 57 | - }*/ | |
| 58 | - | |
| 59 | - /** | |
| 60 | - * | |
| 61 | 39 | * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id |
| 62 | 40 | * 主键 @param @param remarks 备注 @param @param dfsj 待发时间(HH:mm) @throws |
| 63 | 41 | */ |
| 64 | 42 | @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST) |
| 65 | 43 | public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks, |
| 66 | - @RequestParam String dfsj/*, String clZbh, String jsy, String spy*/) { | |
| 67 | - return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj/*, clZbh, jsy, spy*/); | |
| 44 | + @RequestParam String dfsj,@RequestParam String bcType) { | |
| 45 | + return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType); | |
| 68 | 46 | } |
| 69 | 47 | |
| 70 | 48 | /** |
| ... | ... | @@ -125,19 +103,6 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 125 | 103 | public List<Map<String, String>> sreachVehic(@RequestParam String nbbm) { |
| 126 | 104 | return scheduleRealInfoService.sreachVehic(nbbm); |
| 127 | 105 | } |
| 128 | - | |
| 129 | - /** | |
| 130 | - * | |
| 131 | - * @Title: adjust @Description: TODO(调整人车) @param @param id | |
| 132 | - * 班次ID @param @param nbbm 内部编码 @param @param jsy 驾驶员 @param @param spy | |
| 133 | - * 售票员 @throws | |
| 134 | - | |
| 135 | - @RequestMapping(value = "/adjust", method = RequestMethod.POST) | |
| 136 | - public Map<String, Object> adjust(@RequestParam Long id, String nbbm, String jsy, | |
| 137 | - String spy, Integer revertLine, Integer borrowLine, String borrowTimeStr, String revertTimeStr) { | |
| 138 | - return scheduleRealInfoService.adjust(id, nbbm, jsy, spy, revertLine, borrowLine, borrowTimeStr, revertTimeStr); | |
| 139 | - } | |
| 140 | - */ | |
| 141 | 106 | /** |
| 142 | 107 | * |
| 143 | 108 | * @Title: realOutAdjust |
| ... | ... | @@ -427,4 +392,14 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 427 | 392 | } |
| 428 | 393 | return rs; |
| 429 | 394 | } |
| 395 | + | |
| 396 | + @RequestMapping(value = "svgAttr", method = RequestMethod.POST) | |
| 397 | + public Map<String, Object> svgAttr(@RequestParam String jsonStr){ | |
| 398 | + return scheduleRealInfoService.svgAttr(jsonStr); | |
| 399 | + } | |
| 400 | + | |
| 401 | + @RequestMapping(value = "svgAttr", method = RequestMethod.GET) | |
| 402 | + public Map<String, Object> findSvgAttr(@RequestParam String idx){ | |
| 403 | + return scheduleRealInfoService.findSvgAttr(idx); | |
| 404 | + } | |
| 430 | 405 | } | ... | ... |
src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
| 1 | -package com.bsth.controller.schedule.core; | |
| 2 | - | |
| 3 | -import com.bsth.common.ResponseCode; | |
| 4 | -import com.bsth.controller.schedule.BController; | |
| 5 | -import com.bsth.entity.schedule.TTInfoDetail; | |
| 6 | -import com.bsth.service.schedule.TTInfoDetailService; | |
| 7 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | -import org.springframework.web.bind.annotation.PathVariable; | |
| 9 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 10 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 11 | -import org.springframework.web.bind.annotation.RestController; | |
| 12 | - | |
| 13 | -import java.util.HashMap; | |
| 14 | -import java.util.List; | |
| 15 | -import java.util.Map; | |
| 16 | - | |
| 17 | -/** | |
| 18 | - * Created by xu on 17/1/4. | |
| 19 | - */ | |
| 20 | -@RestController | |
| 21 | -@RequestMapping("tidc") | |
| 22 | -public class TTInfoDetailController extends BController<TTInfoDetail, Long> { | |
| 23 | - @Autowired | |
| 24 | - private TTInfoDetailService ttInfoDetailService; | |
| 25 | - | |
| 26 | - @RequestMapping(value = "/bcdetail", method = RequestMethod.GET) | |
| 27 | - public List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId) { | |
| 28 | - return ttInfoDetailService.findBcdetails(xlId, ttinfoId, lpId); | |
| 29 | - } | |
| 30 | - | |
| 31 | - /** | |
| 32 | - * 验证sheet(以后放到规则引擎里去做)。 | |
| 33 | - * @param filename excel文件全路径名 | |
| 34 | - * @param sheetname sheet名字 | |
| 35 | - * @param lineid 线路id | |
| 36 | - * @param linename 线路名称 | |
| 37 | - * @return | |
| 38 | - */ | |
| 39 | - @RequestMapping(value = "/validate/sheet", method = RequestMethod.POST) | |
| 40 | - public Map<String, Object> validate_sheet(String filename, String sheetname, Integer lineid, String linename) { | |
| 41 | - Map<String, Object> rtn = new HashMap<>(); | |
| 42 | - try { | |
| 43 | - ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename); | |
| 44 | - rtn.put("status", ResponseCode.SUCCESS); | |
| 45 | - } catch (Exception exp) { | |
| 46 | - rtn.put("status", ResponseCode.ERROR); | |
| 47 | - rtn.put("msg", exp.getMessage()); | |
| 48 | - } | |
| 49 | - return rtn; | |
| 50 | - } | |
| 51 | - | |
| 52 | - /** | |
| 53 | - * 验证关联的线路标准信息(以后放到规则引擎里去做)。 | |
| 54 | - * @param lineinfoid | |
| 55 | - * @return | |
| 56 | - */ | |
| 57 | - @RequestMapping(value = "/validate/lineinfo", method = RequestMethod.GET) | |
| 58 | - public Map<String, Object> validate_lineInfo(Integer lineinfoid) { | |
| 59 | - Map<String, Object> rtn = new HashMap<>(); | |
| 60 | - try { | |
| 61 | - ttInfoDetailService.validateAssoLineInfo(lineinfoid); | |
| 62 | - rtn.put("status", ResponseCode.SUCCESS); | |
| 63 | - } catch (Exception exp) { | |
| 64 | - rtn.put("status", ResponseCode.ERROR); | |
| 65 | - rtn.put("msg", exp.getMessage()); | |
| 66 | - } | |
| 67 | - return rtn; | |
| 68 | - } | |
| 69 | - | |
| 70 | - /** | |
| 71 | - * 获取时刻表明细编辑信息。 | |
| 72 | - * @param xlid 线路id | |
| 73 | - * @param ttid 时刻表id | |
| 74 | - * @return | |
| 75 | - */ | |
| 76 | - @RequestMapping(value = "/edit/{xlid}/{ttid}", method = RequestMethod.GET) | |
| 77 | - public Map<String, Object> getEditInfo(@PathVariable("xlid") Integer xlid, | |
| 78 | - @PathVariable("ttid") Long ttid) { | |
| 79 | - Map<String, Object> rtn = new HashMap<>(); | |
| 80 | - try { | |
| 81 | - TTInfoDetailService.EditInfo editInfo = ttInfoDetailService.getEditInfo(xlid, ttid); | |
| 82 | - rtn.put("status", ResponseCode.SUCCESS); | |
| 83 | - rtn.put("data", editInfo); | |
| 84 | - } catch (Exception exp) { | |
| 85 | - rtn.put("status", ResponseCode.ERROR); | |
| 86 | - rtn.put("msg", exp.getMessage()); | |
| 87 | - } | |
| 88 | - return rtn; | |
| 89 | - } | |
| 90 | - | |
| 91 | -} | |
| 1 | +package com.bsth.controller.schedule.core; | |
| 2 | + | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.controller.schedule.BController; | |
| 5 | +import com.bsth.entity.schedule.TTInfoDetail; | |
| 6 | +import com.bsth.service.schedule.TTInfoDetailService; | |
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | +import org.springframework.web.bind.annotation.PathVariable; | |
| 9 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 10 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 11 | +import org.springframework.web.bind.annotation.RestController; | |
| 12 | + | |
| 13 | +import java.util.HashMap; | |
| 14 | +import java.util.List; | |
| 15 | +import java.util.Map; | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * Created by xu on 17/1/4. | |
| 19 | + */ | |
| 20 | +@RestController | |
| 21 | +@RequestMapping("tidc") | |
| 22 | +public class TTInfoDetailController extends BController<TTInfoDetail, Long> { | |
| 23 | + @Autowired | |
| 24 | + private TTInfoDetailService ttInfoDetailService; | |
| 25 | + | |
| 26 | + @RequestMapping(value = "/bcdetail", method = RequestMethod.GET) | |
| 27 | + public List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId) { | |
| 28 | + return ttInfoDetailService.findBcdetails(xlId, ttinfoId, lpId); | |
| 29 | + } | |
| 30 | + | |
| 31 | + /** | |
| 32 | + * 验证sheet(以后放到规则引擎里去做)。 | |
| 33 | + * @param filename excel文件全路径名 | |
| 34 | + * @param sheetname sheet名字 | |
| 35 | + * @param lineid 线路id | |
| 36 | + * @param linename 线路名称 | |
| 37 | + * @return | |
| 38 | + */ | |
| 39 | + @RequestMapping(value = "/validate/sheet", method = RequestMethod.POST) | |
| 40 | + public Map<String, Object> validate_sheet(String filename, String sheetname, Integer lineid, String linename) { | |
| 41 | + Map<String, Object> rtn = new HashMap<>(); | |
| 42 | + try { | |
| 43 | + ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename); | |
| 44 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 45 | + } catch (Exception exp) { | |
| 46 | + rtn.put("status", ResponseCode.ERROR); | |
| 47 | + rtn.put("msg", exp.getMessage()); | |
| 48 | + } | |
| 49 | + return rtn; | |
| 50 | + } | |
| 51 | + | |
| 52 | + /** | |
| 53 | + * 验证关联的线路标准信息(以后放到规则引擎里去做)。 | |
| 54 | + * @param lineinfoid | |
| 55 | + * @return | |
| 56 | + */ | |
| 57 | + @RequestMapping(value = "/validate/lineinfo", method = RequestMethod.GET) | |
| 58 | + public Map<String, Object> validate_lineInfo(Integer lineinfoid) { | |
| 59 | + Map<String, Object> rtn = new HashMap<>(); | |
| 60 | + try { | |
| 61 | + ttInfoDetailService.validateAssoLineInfo(lineinfoid); | |
| 62 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 63 | + } catch (Exception exp) { | |
| 64 | + rtn.put("status", ResponseCode.ERROR); | |
| 65 | + rtn.put("msg", exp.getMessage()); | |
| 66 | + } | |
| 67 | + return rtn; | |
| 68 | + } | |
| 69 | + | |
| 70 | + /** | |
| 71 | + * 获取时刻表明细编辑信息。 | |
| 72 | + * @param xlid 线路id | |
| 73 | + * @param ttid 时刻表id | |
| 74 | + * @return | |
| 75 | + */ | |
| 76 | + @RequestMapping(value = "/edit/{xlid}/{ttid}", method = RequestMethod.GET) | |
| 77 | + public Map<String, Object> getEditInfo(@PathVariable("xlid") Integer xlid, | |
| 78 | + @PathVariable("ttid") Long ttid) { | |
| 79 | + Map<String, Object> rtn = new HashMap<>(); | |
| 80 | + try { | |
| 81 | + TTInfoDetailService.EditInfo editInfo = ttInfoDetailService.getEditInfo(xlid, ttid); | |
| 82 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 83 | + rtn.put("data", editInfo); | |
| 84 | + } catch (Exception exp) { | |
| 85 | + rtn.put("status", ResponseCode.ERROR); | |
| 86 | + rtn.put("msg", exp.getMessage()); | |
| 87 | + } | |
| 88 | + return rtn; | |
| 89 | + } | |
| 90 | + | |
| 91 | +} | ... | ... |
src/main/java/com/bsth/controller/sys/DutyEmployeeController.java
| 1 | -package com.bsth.controller.sys; | |
| 2 | - | |
| 3 | -import com.bsth.controller.BaseController; | |
| 4 | -import com.bsth.entity.sys.DutyEmployee; | |
| 5 | -import com.bsth.service.sys.DutyEmployeeService; | |
| 6 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 8 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 9 | -import org.springframework.web.bind.annotation.RestController; | |
| 10 | - | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * Created by panzhao on 2017/1/5. | |
| 15 | - */ | |
| 16 | -@RestController | |
| 17 | -@RequestMapping("dutyEmployee") | |
| 18 | -public class DutyEmployeeController extends BaseController<DutyEmployee, Long> { | |
| 19 | - | |
| 20 | - @Autowired | |
| 21 | - DutyEmployeeService dutyEmployeeService; | |
| 22 | - | |
| 23 | - @RequestMapping(value = "queryByLineAndTime") | |
| 24 | - public List<DutyEmployee> getDutyEmployee(@RequestParam String lineCode, @RequestParam String startTime, @RequestParam String endTime) { | |
| 25 | - return dutyEmployeeService.getDutyEmployee(lineCode, startTime, endTime); | |
| 26 | - } | |
| 27 | -} | |
| 1 | +package com.bsth.controller.sys; | |
| 2 | + | |
| 3 | +import com.bsth.controller.BaseController; | |
| 4 | +import com.bsth.entity.sys.DutyEmployee; | |
| 5 | +import com.bsth.service.sys.DutyEmployeeService; | |
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 8 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 9 | +import org.springframework.web.bind.annotation.RestController; | |
| 10 | + | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * Created by panzhao on 2017/1/5. | |
| 15 | + */ | |
| 16 | +@RestController | |
| 17 | +@RequestMapping("dutyEmployee") | |
| 18 | +public class DutyEmployeeController extends BaseController<DutyEmployee, Long> { | |
| 19 | + | |
| 20 | + @Autowired | |
| 21 | + DutyEmployeeService dutyEmployeeService; | |
| 22 | + | |
| 23 | + @RequestMapping(value = "queryByLineAndTime") | |
| 24 | + public List<DutyEmployee> getDutyEmployee(@RequestParam String lineCode, @RequestParam String startTime, @RequestParam String endTime) { | |
| 25 | + return dutyEmployeeService.getDutyEmployee(lineCode, startTime, endTime); | |
| 26 | + } | |
| 27 | +} | ... | ... |
src/main/java/com/bsth/data/BasicData.java
| ... | ... | @@ -261,26 +261,26 @@ public class BasicData implements CommandLineRunner { |
| 261 | 261 | /** |
| 262 | 262 | * 加载运管处的站点及序号 |
| 263 | 263 | * 上行从1开始,下行顺序续编 |
| 264 | - | |
| 265 | - List<Object[]> ygcLines = stationRouteRepository.findAllLineWithYgc(); | |
| 266 | - if(ygcLines != null && ygcLines.size() > 0){ | |
| 267 | - int size = ygcLines.size(); | |
| 268 | - Object[] tempArray ; | |
| 269 | - int num = 1; | |
| 270 | - String key; | |
| 271 | - String lineCode = ""; | |
| 272 | - for (int i = 0; i < size; i ++){ | |
| 273 | - tempArray = ygcLines.get(i); | |
| 274 | - if(lineCode.equals("")){ | |
| 275 | - lineCode = tempArray[0]+""; | |
| 276 | - }else if(!lineCode.equals(tempArray[0]+"")){ | |
| 277 | - num = 1; | |
| 278 | - lineCode = tempArray[0]+""; | |
| 279 | - } | |
| 280 | - key = tempArray[0] + "_"+tempArray[1] + "_"+tempArray[2]; | |
| 281 | - tempStationName2YgcNumber.put(key,num++); | |
| 282 | - } | |
| 283 | - }*/ | |
| 264 | + */ | |
| 265 | + List<Object[]> ygcLines = stationRouteRepository.findAllLineWithYgc(); | |
| 266 | + if(ygcLines != null && ygcLines.size() > 0){ | |
| 267 | + int size = ygcLines.size(); | |
| 268 | + Object[] tempArray ; | |
| 269 | + int num = 1; | |
| 270 | + String key; | |
| 271 | + String lineCode = ""; | |
| 272 | + for (int i = 0; i < size; i ++){ | |
| 273 | + tempArray = ygcLines.get(i); | |
| 274 | + if(lineCode.equals("")){ | |
| 275 | + lineCode = tempArray[0]+""; | |
| 276 | + }else if(!lineCode.equals(tempArray[0]+"")){ | |
| 277 | + num = 1; | |
| 278 | + lineCode = tempArray[0]+""; | |
| 279 | + } | |
| 280 | + key = tempArray[0] + "_"+tempArray[1] + "_"+tempArray[2]; | |
| 281 | + tempStationName2YgcNumber.put(key,num++); | |
| 282 | + } | |
| 283 | + } | |
| 284 | 284 | } |
| 285 | 285 | |
| 286 | 286 | lineId2CodeMap = biMap; | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
| 1 | -package com.bsth.data.gpsdata.arrival.handlers; | |
| 2 | - | |
| 3 | -import com.bsth.data.LineConfigData; | |
| 4 | -import com.bsth.data.gpsdata.GpsEntity; | |
| 5 | -import com.bsth.data.gpsdata.arrival.SignalHandle; | |
| 6 | -import com.bsth.data.gpsdata.arrival.utils.CircleQueue; | |
| 7 | -import com.bsth.data.gpsdata.arrival.utils.ScheduleSignalState; | |
| 8 | -import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher; | |
| 9 | -import com.bsth.data.schedule.DayOfSchedule; | |
| 10 | -import com.bsth.entity.realcontrol.LineConfig; | |
| 11 | -import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 12 | -import com.bsth.service.directive.DirectiveService; | |
| 13 | -import com.bsth.websocket.handler.SendUtils; | |
| 14 | -import org.apache.commons.lang3.StringUtils; | |
| 15 | -import org.slf4j.Logger; | |
| 16 | -import org.slf4j.LoggerFactory; | |
| 17 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 18 | -import org.springframework.stereotype.Component; | |
| 19 | - | |
| 20 | -/** | |
| 21 | - * 进出站动作处理 | |
| 22 | - * Created by panzhao on 2016/12/27. | |
| 23 | - */ | |
| 24 | -@Component | |
| 25 | -public class InOutStationSignalHandle extends SignalHandle{ | |
| 26 | - | |
| 27 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 28 | - | |
| 29 | - @Autowired | |
| 30 | - DayOfSchedule dayOfSchedule; | |
| 31 | - | |
| 32 | - @Autowired | |
| 33 | - LineConfigData lineConfigData; | |
| 34 | - | |
| 35 | - @Autowired | |
| 36 | - SendUtils sendUtils; | |
| 37 | - | |
| 38 | - @Autowired | |
| 39 | - DirectiveService directiveService; | |
| 40 | - | |
| 41 | - @Autowired | |
| 42 | - ScheduleSignalState scheduleSignalState; | |
| 43 | - | |
| 44 | - @Autowired | |
| 45 | - SignalSchPlanMatcher signalSchPlanMatcher; | |
| 46 | - | |
| 47 | - private final static int MAX_BEFORE_TIME = 1000 * 60 * 72; | |
| 48 | - | |
| 49 | - @Override | |
| 50 | - public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) { | |
| 51 | - //忽略漂移信号 | |
| 52 | - if(isDriftSignal(gps)) | |
| 53 | - return false; | |
| 54 | - | |
| 55 | - //从异常状态恢复的第一个信号 | |
| 56 | - if(abnormalRecovery(gps, prevs)){ | |
| 57 | - //回溯一下之前的轨迹 | |
| 58 | - scheduleSignalState.signalRetrospect(gps); | |
| 59 | - } | |
| 60 | - | |
| 61 | - if(isNotEmpty(prevs)){ | |
| 62 | - GpsEntity prev = prevs.getTail(); | |
| 63 | - if(isOutStation(gps, prev)) | |
| 64 | - outStation(gps, prev); | |
| 65 | - | |
| 66 | - | |
| 67 | - if(isInStation(gps, prev)) | |
| 68 | - inStation(gps, prev); | |
| 69 | - } | |
| 70 | - | |
| 71 | - return true; | |
| 72 | - } | |
| 73 | - | |
| 74 | - private boolean isOutStation(GpsEntity gps, GpsEntity prev){ | |
| 75 | - //从站内到站外 | |
| 76 | - if(prev.getInstation() > 0 && gps.getInstation() == 0) | |
| 77 | - return true; | |
| 78 | - | |
| 79 | - //从站内到另一个站内 | |
| 80 | - if(prev.getInstation() > 0 && gps.getInstation() > 0 | |
| 81 | - && !prev.getStopNo().equals(gps.getStopNo())) | |
| 82 | - return true; | |
| 83 | - return false; | |
| 84 | - } | |
| 85 | - | |
| 86 | - private boolean isInStation(GpsEntity gps, GpsEntity prev){ | |
| 87 | - //从站外到站内 | |
| 88 | - if(prev.getInstation() == 0 && gps.getInstation() > 0 | |
| 89 | - /*&& !prev.getStopNo().equals(gps.getStopNo())*/){ | |
| 90 | - return true; | |
| 91 | - } | |
| 92 | - | |
| 93 | - //从站内到另一个站内 | |
| 94 | - if(prev.getInstation() > 0 && gps.getInstation() > 0 | |
| 95 | - && !prev.getStopNo().equals(gps.getStopNo())) | |
| 96 | - return true; | |
| 97 | - return false; | |
| 98 | - } | |
| 99 | - | |
| 100 | - /** | |
| 101 | - * 出站 | |
| 102 | - * @param gps 当前点 | |
| 103 | - * @param prev 上一个点 | |
| 104 | - */ | |
| 105 | - private void outStation(GpsEntity gps, GpsEntity prev) { | |
| 106 | - ScheduleRealInfo sch = dayOfSchedule.executeCurr(gps.getNbbm()); | |
| 107 | - String qdzCode = sch.getQdzCode(); | |
| 108 | - | |
| 109 | - //首班出场最多提前1.2小时 | |
| 110 | - if(dayOfSchedule.isFirstOut(sch) && sch.getDfsjT() - gps.getTimestamp() > MAX_BEFORE_TIME) | |
| 111 | - return; | |
| 112 | - | |
| 113 | - //起点发车 | |
| 114 | - if(qdzCode != null && prev.getStopNo().equals(qdzCode) | |
| 115 | - && !willDepart(gps, prev, sch)){ | |
| 116 | - | |
| 117 | - //发车班次匹配 | |
| 118 | - signalSchPlanMatcher.outMatch(gps, sch); | |
| 119 | - sch = dayOfSchedule.executeCurr(gps.getNbbm()); | |
| 120 | - | |
| 121 | - //实发时间不覆盖 | |
| 122 | - if(StringUtils.isNotEmpty(sch.getFcsjActual())) | |
| 123 | - return; | |
| 124 | - | |
| 125 | - //实发时间 | |
| 126 | - sch.setFcsjActualAll(gps.getTimestamp()); | |
| 127 | - //通知客户端 | |
| 128 | - sendUtils.sendFcsj(sch); | |
| 129 | - //持久化 | |
| 130 | - dayOfSchedule.save(sch); | |
| 131 | - | |
| 132 | - //出站既出场 | |
| 133 | - outStationAndOutPark(sch); | |
| 134 | - logger.info("班次:" + sch.getDfsj() + "发车, 时间:" + sch.getFcsjActual()); | |
| 135 | - } | |
| 136 | - else if(sch.getBcType().equals("out")){ | |
| 137 | - ScheduleRealInfo next = dayOfSchedule.nextSame(sch); | |
| 138 | - if(prev.getStopNo().equals(next.getQdzCode())){ | |
| 139 | - //发下一个班次 | |
| 140 | - dayOfSchedule.addExecPlan(next); | |
| 141 | - outStation(gps, prev); | |
| 142 | - } | |
| 143 | - } | |
| 144 | - } | |
| 145 | - | |
| 146 | - | |
| 147 | - private void outStationAndOutPark(ScheduleRealInfo sch){ | |
| 148 | - LineConfig config = lineConfigData.get(sch.getXlBm()); | |
| 149 | - if (config != null && config.getOutConfig() == 2) { | |
| 150 | - //出站既出场 | |
| 151 | - ScheduleRealInfo schPrev = dayOfSchedule.prev(sch); | |
| 152 | - if (schPrev != null && schPrev.getBcType().equals("out")) { | |
| 153 | - schPrev.setFcsjActualAll(sch.getFcsjActualTime()); | |
| 154 | - schPrev.setZdsjActualAll(sch.getFcsjActualTime()); | |
| 155 | - | |
| 156 | - sendUtils.refreshSch(schPrev); | |
| 157 | - dayOfSchedule.save(schPrev); | |
| 158 | - } | |
| 159 | - } | |
| 160 | - } | |
| 161 | - | |
| 162 | - /** | |
| 163 | - * 进站 | |
| 164 | - * @param gps 当前点 | |
| 165 | - * @param prev 上一个点 | |
| 166 | - */ | |
| 167 | - private void inStation(GpsEntity gps, GpsEntity prev){ | |
| 168 | - ScheduleRealInfo sch = dayOfSchedule.executeCurr(gps.getNbbm()); | |
| 169 | - | |
| 170 | - if(gps.getStopNo().equals(sch.getZdzCode())){ | |
| 171 | - | |
| 172 | - //实达时间不覆盖 | |
| 173 | - if(StringUtils.isNotEmpty(sch.getZdsjActual())) | |
| 174 | - return; | |
| 175 | - | |
| 176 | - sch.setZdsjActualAll(gps.getTimestamp()); | |
| 177 | - //已完成班次数 | |
| 178 | - int doneSum = dayOfSchedule.doneSum(sch.getClZbh()); | |
| 179 | - ScheduleRealInfo next = dayOfSchedule.next(sch); | |
| 180 | - //通知客户端 | |
| 181 | - sendUtils.sendZdsj(sch, next, doneSum); | |
| 182 | - //持久化 | |
| 183 | - dayOfSchedule.save(sch); | |
| 184 | - //下发调度指令 | |
| 185 | - directiveService.send60Dispatch(next, doneSum, "到站@系统"); | |
| 186 | - | |
| 187 | - //准备执行下一个班次 | |
| 188 | - if (next != null) { | |
| 189 | - next.setQdzArrDatesj(sch.getZdsjActual()); | |
| 190 | - dayOfSchedule.addExecPlan(next); | |
| 191 | - //进站既进场 | |
| 192 | - inStationAndInPark(sch, next); | |
| 193 | - //将gps转换为下一个班次走向的站内信号 | |
| 194 | - transformUpdown(gps, sch); | |
| 195 | - } | |
| 196 | - } | |
| 197 | - else if(sch.getFcsjActual() == null){ | |
| 198 | - //有进站,但班次没有实发,向前追溯一下信号 | |
| 199 | - scheduleSignalState.signalRetrospect(gps, sch); | |
| 200 | - } | |
| 201 | - } | |
| 202 | - | |
| 203 | - /** | |
| 204 | - * 进站既进场 | |
| 205 | - * @param sch | |
| 206 | - */ | |
| 207 | - private void inStationAndInPark(ScheduleRealInfo sch, ScheduleRealInfo next){ | |
| 208 | - LineConfig config = lineConfigData.get(sch.getXlBm()); | |
| 209 | - if (next.getBcType().equals("in") && | |
| 210 | - config != null && config.getOutConfig() == 2) { | |
| 211 | - next.setFcsjActualAll(sch.getZdsjActualTime()); | |
| 212 | - next.setZdsjActualAll(sch.getZdsjActualTime()); | |
| 213 | - | |
| 214 | - sendUtils.refreshSch(next); | |
| 215 | - dayOfSchedule.save(next); | |
| 216 | - } | |
| 217 | - } | |
| 218 | - | |
| 219 | - /** | |
| 220 | - * 发车漂移判定(这里出现的误判,由车辆到达中途站的时候补偿) | |
| 221 | - * @param gps | |
| 222 | - * @param prev | |
| 223 | - * @param task | |
| 224 | - * @return | |
| 225 | - */ | |
| 226 | - private boolean willDepart(GpsEntity gps, GpsEntity prev, Object task){ | |
| 227 | - | |
| 228 | - /*ScheduleRealInfo sch = (ScheduleRealInfo) task; | |
| 229 | - ScheduleRealInfo prevTask = dayOfSchedule.prev(sch); | |
| 230 | - if(prevTask == null || prevTask.getBcType().equals("out")) | |
| 231 | - return false; | |
| 232 | - | |
| 233 | - //计划停站时间 | |
| 234 | - int stopTimePlan = (int) (sch.getDfsjT() - prevTask.getZdsjT()); | |
| 235 | - | |
| 236 | - if(stopTimePlan < 1000 * 60 * 10) | |
| 237 | - return false; | |
| 238 | - | |
| 239 | - //实际停站时间 | |
| 240 | - if(prevTask.getZdsjActual() != null){ | |
| 241 | - int actualTime = (int) (gps.getTimestamp() - prevTask.getZdsjActualTime()); | |
| 242 | - | |
| 243 | - if(actualTime < stopTimePlan * 0.8){ | |
| 244 | - logger.info("漂移判定"); | |
| 245 | - | |
| 246 | - return true; | |
| 247 | - } | |
| 248 | - }*/ | |
| 249 | - return false; | |
| 250 | - } | |
| 1 | +package com.bsth.data.gpsdata.arrival.handlers; | |
| 2 | + | |
| 3 | +import com.bsth.data.LineConfigData; | |
| 4 | +import com.bsth.data.gpsdata.GpsEntity; | |
| 5 | +import com.bsth.data.gpsdata.arrival.SignalHandle; | |
| 6 | +import com.bsth.data.gpsdata.arrival.utils.CircleQueue; | |
| 7 | +import com.bsth.data.gpsdata.arrival.utils.ScheduleSignalState; | |
| 8 | +import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher; | |
| 9 | +import com.bsth.data.schedule.DayOfSchedule; | |
| 10 | +import com.bsth.entity.realcontrol.LineConfig; | |
| 11 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 12 | +import com.bsth.service.directive.DirectiveService; | |
| 13 | +import com.bsth.websocket.handler.SendUtils; | |
| 14 | +import org.apache.commons.lang3.StringUtils; | |
| 15 | +import org.slf4j.Logger; | |
| 16 | +import org.slf4j.LoggerFactory; | |
| 17 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 18 | +import org.springframework.stereotype.Component; | |
| 19 | + | |
| 20 | +/** | |
| 21 | + * 进出站动作处理 | |
| 22 | + * Created by panzhao on 2016/12/27. | |
| 23 | + */ | |
| 24 | +@Component | |
| 25 | +public class InOutStationSignalHandle extends SignalHandle{ | |
| 26 | + | |
| 27 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 28 | + | |
| 29 | + @Autowired | |
| 30 | + DayOfSchedule dayOfSchedule; | |
| 31 | + | |
| 32 | + @Autowired | |
| 33 | + LineConfigData lineConfigData; | |
| 34 | + | |
| 35 | + @Autowired | |
| 36 | + SendUtils sendUtils; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + DirectiveService directiveService; | |
| 40 | + | |
| 41 | + @Autowired | |
| 42 | + ScheduleSignalState scheduleSignalState; | |
| 43 | + | |
| 44 | + @Autowired | |
| 45 | + SignalSchPlanMatcher signalSchPlanMatcher; | |
| 46 | + | |
| 47 | + private final static int MAX_BEFORE_TIME = 1000 * 60 * 72; | |
| 48 | + | |
| 49 | + @Override | |
| 50 | + public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) { | |
| 51 | + //忽略漂移信号 | |
| 52 | + if(isDriftSignal(gps)) | |
| 53 | + return false; | |
| 54 | + | |
| 55 | + //从异常状态恢复的第一个信号 | |
| 56 | + if(abnormalRecovery(gps, prevs)){ | |
| 57 | + //回溯一下之前的轨迹 | |
| 58 | + scheduleSignalState.signalRetrospect(gps); | |
| 59 | + } | |
| 60 | + | |
| 61 | + if(isNotEmpty(prevs)){ | |
| 62 | + GpsEntity prev = prevs.getTail(); | |
| 63 | + if(isOutStation(gps, prev)) | |
| 64 | + outStation(gps, prev); | |
| 65 | + | |
| 66 | + | |
| 67 | + if(isInStation(gps, prev)) | |
| 68 | + inStation(gps, prev); | |
| 69 | + } | |
| 70 | + | |
| 71 | + return true; | |
| 72 | + } | |
| 73 | + | |
| 74 | + private boolean isOutStation(GpsEntity gps, GpsEntity prev){ | |
| 75 | + //从站内到站外 | |
| 76 | + if(prev.getInstation() > 0 && gps.getInstation() == 0) | |
| 77 | + return true; | |
| 78 | + | |
| 79 | + //从站内到另一个站内 | |
| 80 | + if(prev.getInstation() > 0 && gps.getInstation() > 0 | |
| 81 | + && !prev.getStopNo().equals(gps.getStopNo())) | |
| 82 | + return true; | |
| 83 | + return false; | |
| 84 | + } | |
| 85 | + | |
| 86 | + private boolean isInStation(GpsEntity gps, GpsEntity prev){ | |
| 87 | + //从站外到站内 | |
| 88 | + if(prev.getInstation() == 0 && gps.getInstation() > 0 | |
| 89 | + /*&& !prev.getStopNo().equals(gps.getStopNo())*/){ | |
| 90 | + return true; | |
| 91 | + } | |
| 92 | + | |
| 93 | + //从站内到另一个站内 | |
| 94 | + if(prev.getInstation() > 0 && gps.getInstation() > 0 | |
| 95 | + && !prev.getStopNo().equals(gps.getStopNo())) | |
| 96 | + return true; | |
| 97 | + return false; | |
| 98 | + } | |
| 99 | + | |
| 100 | + /** | |
| 101 | + * 出站 | |
| 102 | + * @param gps 当前点 | |
| 103 | + * @param prev 上一个点 | |
| 104 | + */ | |
| 105 | + private void outStation(GpsEntity gps, GpsEntity prev) { | |
| 106 | + ScheduleRealInfo sch = dayOfSchedule.executeCurr(gps.getNbbm()); | |
| 107 | + String qdzCode = sch.getQdzCode(); | |
| 108 | + | |
| 109 | + //首班出场最多提前1.2小时 | |
| 110 | + if(dayOfSchedule.isFirstOut(sch) && sch.getDfsjT() - gps.getTimestamp() > MAX_BEFORE_TIME) | |
| 111 | + return; | |
| 112 | + | |
| 113 | + //起点发车 | |
| 114 | + if(qdzCode != null && prev.getStopNo().equals(qdzCode) | |
| 115 | + && !willDepart(gps, prev, sch)){ | |
| 116 | + | |
| 117 | + //发车班次匹配 | |
| 118 | + signalSchPlanMatcher.outMatch(gps, sch); | |
| 119 | + sch = dayOfSchedule.executeCurr(gps.getNbbm()); | |
| 120 | + | |
| 121 | + //实发时间不覆盖 | |
| 122 | + if(StringUtils.isNotEmpty(sch.getFcsjActual())) | |
| 123 | + return; | |
| 124 | + | |
| 125 | + //实发时间 | |
| 126 | + sch.setFcsjActualAll(gps.getTimestamp()); | |
| 127 | + //通知客户端 | |
| 128 | + sendUtils.sendFcsj(sch); | |
| 129 | + //持久化 | |
| 130 | + dayOfSchedule.save(sch); | |
| 131 | + | |
| 132 | + //出站既出场 | |
| 133 | + outStationAndOutPark(sch); | |
| 134 | + logger.info("班次:" + sch.getDfsj() + "发车, 时间:" + sch.getFcsjActual()); | |
| 135 | + } | |
| 136 | + else if(sch.getBcType().equals("out")){ | |
| 137 | + ScheduleRealInfo next = dayOfSchedule.nextSame(sch); | |
| 138 | + if(prev.getStopNo().equals(next.getQdzCode())){ | |
| 139 | + //发下一个班次 | |
| 140 | + dayOfSchedule.addExecPlan(next); | |
| 141 | + outStation(gps, prev); | |
| 142 | + } | |
| 143 | + } | |
| 144 | + } | |
| 145 | + | |
| 146 | + | |
| 147 | + private void outStationAndOutPark(ScheduleRealInfo sch){ | |
| 148 | + LineConfig config = lineConfigData.get(sch.getXlBm()); | |
| 149 | + if (config != null && config.getOutConfig() == 2) { | |
| 150 | + //出站既出场 | |
| 151 | + ScheduleRealInfo schPrev = dayOfSchedule.prev(sch); | |
| 152 | + if (schPrev != null && schPrev.getBcType().equals("out")) { | |
| 153 | + schPrev.setFcsjActualAll(sch.getFcsjActualTime()); | |
| 154 | + schPrev.setZdsjActualAll(sch.getFcsjActualTime()); | |
| 155 | + | |
| 156 | + sendUtils.refreshSch(schPrev); | |
| 157 | + dayOfSchedule.save(schPrev); | |
| 158 | + } | |
| 159 | + } | |
| 160 | + } | |
| 161 | + | |
| 162 | + /** | |
| 163 | + * 进站 | |
| 164 | + * @param gps 当前点 | |
| 165 | + * @param prev 上一个点 | |
| 166 | + */ | |
| 167 | + private void inStation(GpsEntity gps, GpsEntity prev){ | |
| 168 | + ScheduleRealInfo sch = dayOfSchedule.executeCurr(gps.getNbbm()); | |
| 169 | + | |
| 170 | + if(gps.getStopNo().equals(sch.getZdzCode())){ | |
| 171 | + | |
| 172 | + //进场最多提前1.2小时 | |
| 173 | + if(sch.getBcType().equals("in") && sch.getZdsjT() - gps.getTimestamp() > MAX_BEFORE_TIME) | |
| 174 | + return; | |
| 175 | + | |
| 176 | + //实达时间不覆盖 | |
| 177 | + if(StringUtils.isNotEmpty(sch.getZdsjActual())) | |
| 178 | + return; | |
| 179 | + | |
| 180 | + sch.setZdsjActualAll(gps.getTimestamp()); | |
| 181 | + //已完成班次数 | |
| 182 | + int doneSum = dayOfSchedule.doneSum(sch.getClZbh()); | |
| 183 | + ScheduleRealInfo next = dayOfSchedule.next(sch); | |
| 184 | + //通知客户端 | |
| 185 | + sendUtils.sendZdsj(sch, next, doneSum); | |
| 186 | + //持久化 | |
| 187 | + dayOfSchedule.save(sch); | |
| 188 | + //下发调度指令 | |
| 189 | + directiveService.send60Dispatch(next, doneSum, "到站@系统"); | |
| 190 | + | |
| 191 | + //准备执行下一个班次 | |
| 192 | + if (next != null) { | |
| 193 | + next.setQdzArrDatesj(sch.getZdsjActual()); | |
| 194 | + dayOfSchedule.addExecPlan(next); | |
| 195 | + //进站既进场 | |
| 196 | + inStationAndInPark(sch, next); | |
| 197 | + //将gps转换为下一个班次走向的站内信号 | |
| 198 | + transformUpdown(gps, sch); | |
| 199 | + } | |
| 200 | + } | |
| 201 | + else if(sch.getFcsjActual() == null){ | |
| 202 | + //有进站,但班次没有实发,向前追溯一下信号 | |
| 203 | + scheduleSignalState.signalRetrospect(gps, sch); | |
| 204 | + } | |
| 205 | + } | |
| 206 | + | |
| 207 | + /** | |
| 208 | + * 进站既进场 | |
| 209 | + * @param sch | |
| 210 | + */ | |
| 211 | + private void inStationAndInPark(ScheduleRealInfo sch, ScheduleRealInfo next){ | |
| 212 | + LineConfig config = lineConfigData.get(sch.getXlBm()); | |
| 213 | + if (next.getBcType().equals("in") && | |
| 214 | + config != null && config.getOutConfig() == 2) { | |
| 215 | + next.setFcsjActualAll(sch.getZdsjActualTime()); | |
| 216 | + next.setZdsjActualAll(sch.getZdsjActualTime()); | |
| 217 | + | |
| 218 | + sendUtils.refreshSch(next); | |
| 219 | + dayOfSchedule.save(next); | |
| 220 | + } | |
| 221 | + } | |
| 222 | + | |
| 223 | + /** | |
| 224 | + * 发车漂移判定(这里出现的误判,由车辆到达中途站的时候补偿) | |
| 225 | + * @param gps | |
| 226 | + * @param prev | |
| 227 | + * @param task | |
| 228 | + * @return | |
| 229 | + */ | |
| 230 | + private boolean willDepart(GpsEntity gps, GpsEntity prev, Object task){ | |
| 231 | + | |
| 232 | + /*ScheduleRealInfo sch = (ScheduleRealInfo) task; | |
| 233 | + ScheduleRealInfo prevTask = dayOfSchedule.prev(sch); | |
| 234 | + if(prevTask == null || prevTask.getBcType().equals("out")) | |
| 235 | + return false; | |
| 236 | + | |
| 237 | + //计划停站时间 | |
| 238 | + int stopTimePlan = (int) (sch.getDfsjT() - prevTask.getZdsjT()); | |
| 239 | + | |
| 240 | + if(stopTimePlan < 1000 * 60 * 10) | |
| 241 | + return false; | |
| 242 | + | |
| 243 | + //实际停站时间 | |
| 244 | + if(prevTask.getZdsjActual() != null){ | |
| 245 | + int actualTime = (int) (gps.getTimestamp() - prevTask.getZdsjActualTime()); | |
| 246 | + | |
| 247 | + if(actualTime < stopTimePlan * 0.8){ | |
| 248 | + logger.info("漂移判定"); | |
| 249 | + | |
| 250 | + return true; | |
| 251 | + } | |
| 252 | + }*/ | |
| 253 | + return false; | |
| 254 | + } | |
| 251 | 255 | } |
| 252 | 256 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/data/gpsdata/arrival/utils/ScheduleSignalState.java
| 1 | -package com.bsth.data.gpsdata.arrival.utils; | |
| 2 | - | |
| 3 | -import com.bsth.data.LineConfigData; | |
| 4 | -import com.bsth.data.gpsdata.GpsEntity; | |
| 5 | -import com.bsth.data.gpsdata.SignalStateData; | |
| 6 | -import com.bsth.data.gpsdata.arrival.GeoCacheData; | |
| 7 | -import com.bsth.data.gpsdata.arrival.entity.RouteReverse; | |
| 8 | -import com.bsth.data.gpsdata.arrival.entity.SignalAbnormal; | |
| 9 | -import com.bsth.data.gpsdata.arrival.entity.SignalState; | |
| 10 | -import com.bsth.data.schedule.DayOfSchedule; | |
| 11 | -import com.bsth.entity.realcontrol.LineConfig; | |
| 12 | -import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 13 | -import org.slf4j.Logger; | |
| 14 | -import org.slf4j.LoggerFactory; | |
| 15 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 16 | -import org.springframework.stereotype.Component; | |
| 17 | - | |
| 18 | -/** | |
| 19 | - * 班次信号状态分析 | |
| 20 | - * Created by panzhao on 2016/12/29. | |
| 21 | - */ | |
| 22 | -@Component | |
| 23 | -public class ScheduleSignalState { | |
| 24 | - | |
| 25 | - @Autowired | |
| 26 | - DayOfSchedule dayOfSchedule; | |
| 27 | - | |
| 28 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 29 | - | |
| 30 | - @Autowired | |
| 31 | - LineConfigData lineConfigData; | |
| 32 | - | |
| 33 | - @Autowired | |
| 34 | - SignalStateData signalStateData; | |
| 35 | - | |
| 36 | - /** | |
| 37 | - * 路由反向分析 | |
| 38 | - */ | |
| 39 | - public void reverseAnalyse(RouteReverse reverse) { | |
| 40 | - ScheduleRealInfo sch = dayOfSchedule.executeCurr(reverse.getNbbm()); | |
| 41 | - | |
| 42 | - String bcType = sch.getBcType(); | |
| 43 | - | |
| 44 | - switch (bcType) { | |
| 45 | - case "out": | |
| 46 | - outReverseAnalyse(sch, reverse); | |
| 47 | - break; | |
| 48 | - case "normal": | |
| 49 | - normalReverseAnalyse(sch, reverse); | |
| 50 | - break; | |
| 51 | - } | |
| 52 | - } | |
| 53 | - | |
| 54 | - /** | |
| 55 | - * 出场班次路由反向分析 | |
| 56 | - * | |
| 57 | - * @param sch | |
| 58 | - */ | |
| 59 | - private void outReverseAnalyse(ScheduleRealInfo sch, RouteReverse reverse) { | |
| 60 | - long t = reverse.getCt(); | |
| 61 | - //出场班次终点时间前,允许反向轨迹 | |
| 62 | - if (sch.getZdsjT() != null && sch.getZdsjT() > t) { | |
| 63 | - return; | |
| 64 | - } | |
| 65 | - | |
| 66 | - int rt; | |
| 67 | - //从实发 到 当前时间 < 计划运送时间 * 0.9 | |
| 68 | - if (sch.getFcsjActual() != null && sch.getBcsj() != null) { | |
| 69 | - rt = (int) (t - sch.getFcsjActualTime()); | |
| 70 | - if (rt < sch.getBcsj() * 0.9) | |
| 71 | - return; | |
| 72 | - } | |
| 73 | - | |
| 74 | - ScheduleRealInfo next = dayOfSchedule.next(sch); | |
| 75 | - if (next.getXlDir().equals(sch.getXlDir())) | |
| 76 | - return; | |
| 77 | - | |
| 78 | - //时间足够下一个班次待发时间运行到当前站 | |
| 79 | - int runTime = reverse.getCount() * 1500 * 60; | |
| 80 | - if (next.getDfsjT() + runTime < t) { | |
| 81 | - //跳到下一个班次 | |
| 82 | - dayOfSchedule.addExecPlan(next); | |
| 83 | - } | |
| 84 | - } | |
| 85 | - | |
| 86 | - /** | |
| 87 | - * 正常班次路由反向分析 | |
| 88 | - * | |
| 89 | - * @param sch | |
| 90 | - * @param reverse | |
| 91 | - */ | |
| 92 | - private void normalReverseAnalyse(ScheduleRealInfo sch, RouteReverse reverse) { | |
| 93 | - LineConfig conf = lineConfigData.get(sch.getXlBm()); | |
| 94 | - | |
| 95 | - if (conf.isReadReverse()) { | |
| 96 | - //跳下一个班次 | |
| 97 | - ScheduleRealInfo next = dayOfSchedule.next(sch); | |
| 98 | - if (next != null) | |
| 99 | - dayOfSchedule.addExecPlan(next); | |
| 100 | - | |
| 101 | - //记录信号状态 | |
| 102 | - SignalState signalState = SignalState.reverseSignalSTate(sch, reverse); | |
| 103 | - if(signalState != null) | |
| 104 | - signalStateData.put(signalState); | |
| 105 | - } | |
| 106 | - } | |
| 107 | - | |
| 108 | - public void signalRetrospect(GpsEntity gps) { | |
| 109 | - signalRetrospect(gps, dayOfSchedule.executeCurr(gps.getNbbm())); | |
| 110 | - } | |
| 111 | - | |
| 112 | - /** | |
| 113 | - * 信号追溯 | |
| 114 | - * | |
| 115 | - * @param gps | |
| 116 | - * @param sch | |
| 117 | - */ | |
| 118 | - public void signalRetrospect(GpsEntity gps, ScheduleRealInfo sch) { | |
| 119 | - //回放数据,是否有掉线或者漂移 | |
| 120 | - CircleQueue<GpsEntity> queue = GeoCacheData.getGps(gps.getNbbm()); | |
| 121 | - if (queue == null || queue.size() == 0 /*|| gps.getInstation() == 0*/) | |
| 122 | - return; | |
| 123 | - | |
| 124 | - //起始时间点 | |
| 125 | - long st = 0; | |
| 126 | - ScheduleRealInfo prev = dayOfSchedule.prev(sch); | |
| 127 | - | |
| 128 | - if (prev != null) { | |
| 129 | - if (prev.getZdsjActual() != null) | |
| 130 | - st = prev.getZdsjActualTime(); | |
| 131 | - else | |
| 132 | - st = (GeoCacheData.midwayStation(gps.getLineId(), gps.getUpDown(), sch.getQdzCode(), gps.getStopNo()).size() + 1) * (1000 * 60 * 5); | |
| 133 | - } | |
| 134 | - | |
| 135 | - Object[] tempArray = queue.getQueue(); | |
| 136 | - int len = tempArray.length; | |
| 137 | - | |
| 138 | - Object[] array = new Object[len + 1]; | |
| 139 | - System.arraycopy(tempArray, 0, array, 0, len); | |
| 140 | - array[len] = gps; | |
| 141 | - | |
| 142 | - String gpsState = ""; | |
| 143 | - GpsEntity tempGps, nearGps = null; | |
| 144 | - int i = len - 1; | |
| 145 | - for (; i >= 0; i--) { | |
| 146 | - tempGps = (GpsEntity) array[i]; | |
| 147 | - | |
| 148 | - gpsState = tempGps.getSignalState(); | |
| 149 | - if (gpsState.equals("truncation")) | |
| 150 | - break; | |
| 151 | - else if (gpsState.equals("drift")) { | |
| 152 | - nearGps = (GpsEntity) array[i + 1]; | |
| 153 | - break; | |
| 154 | - } else if (gpsState.equals("reconnection")) { | |
| 155 | - nearGps = tempGps; | |
| 156 | - break; | |
| 157 | - } | |
| 158 | - | |
| 159 | - if (tempGps.getTimestamp() < st) | |
| 160 | - break; | |
| 161 | - } | |
| 162 | - | |
| 163 | - if (nearGps != null && i > 0) { | |
| 164 | - createSignalAbnormal(gpsState, nearGps, i, array, sch); | |
| 165 | - } | |
| 166 | - } | |
| 167 | - | |
| 168 | - private void createSignalAbnormal(String gpsState, GpsEntity nearGps, int i, Object[] array, ScheduleRealInfo sch) { | |
| 169 | - switch (gpsState) { | |
| 170 | - case "drift": | |
| 171 | - driftSignalAbnormal(nearGps, i, array, sch); | |
| 172 | - break; | |
| 173 | - case "reconnection": | |
| 174 | - offlineSignalAbnormal(nearGps, ((GpsEntity) array[i - 1]), sch); | |
| 175 | - break; | |
| 176 | - } | |
| 177 | - } | |
| 178 | - | |
| 179 | - /** | |
| 180 | - * 掉线异常状态记录 | |
| 181 | - * | |
| 182 | - * @param e | |
| 183 | - * @param s | |
| 184 | - */ | |
| 185 | - private void offlineSignalAbnormal(GpsEntity e, GpsEntity s, ScheduleRealInfo sch) { | |
| 186 | - long st = s.getTimestamp(), et = e.getTimestamp(); | |
| 187 | - | |
| 188 | - //掉线超过10分钟才记录 | |
| 189 | - if (et - st < (1000 * 60 * 10)) | |
| 190 | - return; | |
| 191 | - | |
| 192 | - SignalAbnormal signalAbnormal = new SignalAbnormal(); | |
| 193 | - signalAbnormal.setSt(st); | |
| 194 | - signalAbnormal.setEt(et); | |
| 195 | - signalAbnormal.setAbnormalType("reconnection"); | |
| 196 | - signalAbnormal.setDestCode(sch.getQdzCode()); | |
| 197 | - signalAbnormal.setOutOrIn(0); | |
| 198 | - | |
| 199 | - //截断GPS | |
| 200 | - e.setSignalState("truncation"); | |
| 201 | - | |
| 202 | - //记录信号状态 | |
| 203 | - SignalState signalState = SignalState.abnormalSignalSTate(sch, signalAbnormal); | |
| 204 | - signalStateData.put(signalState); | |
| 205 | - } | |
| 206 | - | |
| 207 | - /** | |
| 208 | - * 漂移异常状态记录 | |
| 209 | - * | |
| 210 | - * @param nearGps | |
| 211 | - * @param i | |
| 212 | - * @param array | |
| 213 | - */ | |
| 214 | - private void driftSignalAbnormal(GpsEntity nearGps, int i, Object[] array, ScheduleRealInfo sch) { | |
| 215 | - GpsEntity gps, s = null; | |
| 216 | - //找到漂移开始时间 | |
| 217 | - for (; i >= 0; i--) { | |
| 218 | - gps = (GpsEntity) array[i]; | |
| 219 | - | |
| 220 | - if (!gps.getSignalState().equals("drift") || i == 0 | |
| 221 | - || gps.getSignalState().equals("truncation")) { | |
| 222 | - s = gps; | |
| 223 | - break; | |
| 224 | - } | |
| 225 | - } | |
| 226 | - | |
| 227 | - long st = s.getTimestamp(), et = nearGps.getTimestamp(); | |
| 228 | - if (et - st < (1000 * 60 * 3)) | |
| 229 | - return; | |
| 230 | - /*if (s != null){ | |
| 231 | - st = s.getTimestamp(); | |
| 232 | - //漂移小于3分钟 | |
| 233 | - if(et - st < (1000 * 60 * 3)) | |
| 234 | - return; | |
| 235 | - }*/ | |
| 236 | - | |
| 237 | - | |
| 238 | - SignalAbnormal signalAbnormal = new SignalAbnormal(); | |
| 239 | - signalAbnormal.setSt(st); | |
| 240 | - signalAbnormal.setEt(et); | |
| 241 | - signalAbnormal.setAbnormalType("drift"); | |
| 242 | - signalAbnormal.setDestCode(sch.getQdzCode()); | |
| 243 | - signalAbnormal.setOutOrIn(0); | |
| 244 | - | |
| 245 | - //截断GPS | |
| 246 | - nearGps.setSignalState("truncation"); | |
| 247 | - | |
| 248 | - //记录信号状态 | |
| 249 | - SignalState signalState = SignalState.abnormalSignalSTate(sch, signalAbnormal); | |
| 250 | - signalStateData.put(signalState); | |
| 251 | - } | |
| 1 | +package com.bsth.data.gpsdata.arrival.utils; | |
| 2 | + | |
| 3 | +import com.bsth.data.LineConfigData; | |
| 4 | +import com.bsth.data.gpsdata.GpsEntity; | |
| 5 | +import com.bsth.data.gpsdata.SignalStateData; | |
| 6 | +import com.bsth.data.gpsdata.arrival.GeoCacheData; | |
| 7 | +import com.bsth.data.gpsdata.arrival.entity.RouteReverse; | |
| 8 | +import com.bsth.data.gpsdata.arrival.entity.SignalAbnormal; | |
| 9 | +import com.bsth.data.gpsdata.arrival.entity.SignalState; | |
| 10 | +import com.bsth.data.schedule.DayOfSchedule; | |
| 11 | +import com.bsth.entity.realcontrol.LineConfig; | |
| 12 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 13 | +import org.slf4j.Logger; | |
| 14 | +import org.slf4j.LoggerFactory; | |
| 15 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 16 | +import org.springframework.stereotype.Component; | |
| 17 | + | |
| 18 | +/** | |
| 19 | + * 班次信号状态分析 | |
| 20 | + * Created by panzhao on 2016/12/29. | |
| 21 | + */ | |
| 22 | +@Component | |
| 23 | +public class ScheduleSignalState { | |
| 24 | + | |
| 25 | + @Autowired | |
| 26 | + DayOfSchedule dayOfSchedule; | |
| 27 | + | |
| 28 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 29 | + | |
| 30 | + @Autowired | |
| 31 | + LineConfigData lineConfigData; | |
| 32 | + | |
| 33 | + @Autowired | |
| 34 | + SignalStateData signalStateData; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 路由反向分析 | |
| 38 | + */ | |
| 39 | + public void reverseAnalyse(RouteReverse reverse) { | |
| 40 | + ScheduleRealInfo sch = dayOfSchedule.executeCurr(reverse.getNbbm()); | |
| 41 | + | |
| 42 | + String bcType = sch.getBcType(); | |
| 43 | + | |
| 44 | + switch (bcType) { | |
| 45 | + case "out": | |
| 46 | + outReverseAnalyse(sch, reverse); | |
| 47 | + break; | |
| 48 | + case "normal": | |
| 49 | + normalReverseAnalyse(sch, reverse); | |
| 50 | + break; | |
| 51 | + } | |
| 52 | + } | |
| 53 | + | |
| 54 | + /** | |
| 55 | + * 出场班次路由反向分析 | |
| 56 | + * | |
| 57 | + * @param sch | |
| 58 | + */ | |
| 59 | + private void outReverseAnalyse(ScheduleRealInfo sch, RouteReverse reverse) { | |
| 60 | + long t = reverse.getCt(); | |
| 61 | + //出场班次终点时间前,允许反向轨迹 | |
| 62 | + if (sch.getZdsjT() != null && sch.getZdsjT() > t) { | |
| 63 | + return; | |
| 64 | + } | |
| 65 | + | |
| 66 | + int rt; | |
| 67 | + //从实发 到 当前时间 < 计划运送时间 * 0.9 | |
| 68 | + if (sch.getFcsjActual() != null && sch.getBcsj() != null) { | |
| 69 | + rt = (int) (t - sch.getFcsjActualTime()); | |
| 70 | + if (rt < sch.getBcsj() * 0.9) | |
| 71 | + return; | |
| 72 | + } | |
| 73 | + | |
| 74 | + ScheduleRealInfo next = dayOfSchedule.next(sch); | |
| 75 | + if (next.getXlDir().equals(sch.getXlDir())) | |
| 76 | + return; | |
| 77 | + | |
| 78 | + //时间足够下一个班次待发时间运行到当前站 | |
| 79 | + int runTime = reverse.getCount() * 1500 * 60; | |
| 80 | + if (next.getDfsjT() + runTime < t) { | |
| 81 | + //跳到下一个班次 | |
| 82 | + dayOfSchedule.addExecPlan(next); | |
| 83 | + } | |
| 84 | + } | |
| 85 | + | |
| 86 | + /** | |
| 87 | + * 正常班次路由反向分析 | |
| 88 | + * | |
| 89 | + * @param sch | |
| 90 | + * @param reverse | |
| 91 | + */ | |
| 92 | + private void normalReverseAnalyse(ScheduleRealInfo sch, RouteReverse reverse) { | |
| 93 | + LineConfig conf = lineConfigData.get(sch.getXlBm()); | |
| 94 | + | |
| 95 | + if (conf.isReadReverse()) { | |
| 96 | + //跳下一个班次 | |
| 97 | + ScheduleRealInfo next = dayOfSchedule.next(sch); | |
| 98 | + if (next != null) | |
| 99 | + dayOfSchedule.addExecPlan(next); | |
| 100 | + | |
| 101 | + //记录信号状态 | |
| 102 | + SignalState signalState = SignalState.reverseSignalSTate(sch, reverse); | |
| 103 | + if(signalState != null) | |
| 104 | + signalStateData.put(signalState); | |
| 105 | + } | |
| 106 | + } | |
| 107 | + | |
| 108 | + public void signalRetrospect(GpsEntity gps) { | |
| 109 | + signalRetrospect(gps, dayOfSchedule.executeCurr(gps.getNbbm())); | |
| 110 | + } | |
| 111 | + | |
| 112 | + /** | |
| 113 | + * 信号追溯 | |
| 114 | + * | |
| 115 | + * @param gps | |
| 116 | + * @param sch | |
| 117 | + */ | |
| 118 | + public void signalRetrospect(GpsEntity gps, ScheduleRealInfo sch) { | |
| 119 | + //回放数据,是否有掉线或者漂移 | |
| 120 | + CircleQueue<GpsEntity> queue = GeoCacheData.getGps(gps.getNbbm()); | |
| 121 | + if (queue == null || queue.size() == 0 /*|| gps.getInstation() == 0*/) | |
| 122 | + return; | |
| 123 | + | |
| 124 | + //起始时间点 | |
| 125 | + long st = 0; | |
| 126 | + ScheduleRealInfo prev = dayOfSchedule.prev(sch); | |
| 127 | + | |
| 128 | + if (prev != null) { | |
| 129 | + if (prev.getZdsjActual() != null) | |
| 130 | + st = prev.getZdsjActualTime(); | |
| 131 | + else | |
| 132 | + st = (GeoCacheData.midwayStation(gps.getLineId(), gps.getUpDown(), sch.getQdzCode(), gps.getStopNo()).size() + 1) * (1000 * 60 * 5); | |
| 133 | + } | |
| 134 | + | |
| 135 | + Object[] tempArray = queue.getQueue(); | |
| 136 | + int len = tempArray.length; | |
| 137 | + | |
| 138 | + Object[] array = new Object[len + 1]; | |
| 139 | + System.arraycopy(tempArray, 0, array, 0, len); | |
| 140 | + array[len] = gps; | |
| 141 | + | |
| 142 | + String gpsState = ""; | |
| 143 | + GpsEntity tempGps, nearGps = null; | |
| 144 | + int i = len - 1; | |
| 145 | + for (; i >= 0; i--) { | |
| 146 | + tempGps = (GpsEntity) array[i]; | |
| 147 | + | |
| 148 | + gpsState = tempGps.getSignalState(); | |
| 149 | + if (gpsState.equals("truncation")) | |
| 150 | + break; | |
| 151 | + else if (gpsState.equals("drift")) { | |
| 152 | + nearGps = (GpsEntity) array[i + 1]; | |
| 153 | + break; | |
| 154 | + } else if (gpsState.equals("reconnection")) { | |
| 155 | + nearGps = tempGps; | |
| 156 | + break; | |
| 157 | + } | |
| 158 | + | |
| 159 | + if (tempGps.getTimestamp() < st) | |
| 160 | + break; | |
| 161 | + } | |
| 162 | + | |
| 163 | + if (nearGps != null && i > 0) { | |
| 164 | + createSignalAbnormal(gpsState, nearGps, i, array, sch); | |
| 165 | + } | |
| 166 | + } | |
| 167 | + | |
| 168 | + private void createSignalAbnormal(String gpsState, GpsEntity nearGps, int i, Object[] array, ScheduleRealInfo sch) { | |
| 169 | + switch (gpsState) { | |
| 170 | + case "drift": | |
| 171 | + driftSignalAbnormal(nearGps, i, array, sch); | |
| 172 | + break; | |
| 173 | + case "reconnection": | |
| 174 | + offlineSignalAbnormal(nearGps, ((GpsEntity) array[i - 1]), sch); | |
| 175 | + break; | |
| 176 | + } | |
| 177 | + } | |
| 178 | + | |
| 179 | + /** | |
| 180 | + * 掉线异常状态记录 | |
| 181 | + * | |
| 182 | + * @param e | |
| 183 | + * @param s | |
| 184 | + */ | |
| 185 | + private void offlineSignalAbnormal(GpsEntity e, GpsEntity s, ScheduleRealInfo sch) { | |
| 186 | + long st = s.getTimestamp(), et = e.getTimestamp(); | |
| 187 | + | |
| 188 | + //掉线超过10分钟才记录 | |
| 189 | + if (et - st < (1000 * 60 * 10)) | |
| 190 | + return; | |
| 191 | + | |
| 192 | + SignalAbnormal signalAbnormal = new SignalAbnormal(); | |
| 193 | + signalAbnormal.setSt(st); | |
| 194 | + signalAbnormal.setEt(et); | |
| 195 | + signalAbnormal.setAbnormalType("reconnection"); | |
| 196 | + signalAbnormal.setDestCode(sch.getQdzCode()); | |
| 197 | + signalAbnormal.setOutOrIn(0); | |
| 198 | + | |
| 199 | + //截断GPS | |
| 200 | + e.setSignalState("truncation"); | |
| 201 | + | |
| 202 | + //记录信号状态 | |
| 203 | + SignalState signalState = SignalState.abnormalSignalSTate(sch, signalAbnormal); | |
| 204 | + signalStateData.put(signalState); | |
| 205 | + } | |
| 206 | + | |
| 207 | + /** | |
| 208 | + * 漂移异常状态记录 | |
| 209 | + * | |
| 210 | + * @param nearGps | |
| 211 | + * @param i | |
| 212 | + * @param array | |
| 213 | + */ | |
| 214 | + private void driftSignalAbnormal(GpsEntity nearGps, int i, Object[] array, ScheduleRealInfo sch) { | |
| 215 | + GpsEntity gps, s = null; | |
| 216 | + //找到漂移开始时间 | |
| 217 | + for (; i >= 0; i--) { | |
| 218 | + gps = (GpsEntity) array[i]; | |
| 219 | + | |
| 220 | + if (!gps.getSignalState().equals("drift") || i == 0 | |
| 221 | + || gps.getSignalState().equals("truncation")) { | |
| 222 | + s = gps; | |
| 223 | + break; | |
| 224 | + } | |
| 225 | + } | |
| 226 | + | |
| 227 | + long st = s.getTimestamp(), et = nearGps.getTimestamp(); | |
| 228 | + if (et - st < (1000 * 60 * 3)) | |
| 229 | + return; | |
| 230 | + /*if (s != null){ | |
| 231 | + st = s.getTimestamp(); | |
| 232 | + //漂移小于3分钟 | |
| 233 | + if(et - st < (1000 * 60 * 3)) | |
| 234 | + return; | |
| 235 | + }*/ | |
| 236 | + | |
| 237 | + | |
| 238 | + SignalAbnormal signalAbnormal = new SignalAbnormal(); | |
| 239 | + signalAbnormal.setSt(st); | |
| 240 | + signalAbnormal.setEt(et); | |
| 241 | + signalAbnormal.setAbnormalType("drift"); | |
| 242 | + signalAbnormal.setDestCode(sch.getQdzCode()); | |
| 243 | + signalAbnormal.setOutOrIn(0); | |
| 244 | + | |
| 245 | + //截断GPS | |
| 246 | + nearGps.setSignalState("truncation"); | |
| 247 | + | |
| 248 | + //记录信号状态 | |
| 249 | + SignalState signalState = SignalState.abnormalSignalSTate(sch, signalAbnormal); | |
| 250 | + signalStateData.put(signalState); | |
| 251 | + } | |
| 252 | 252 | } |
| 253 | 253 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/entity/realcontrol/SvgAttribute.java
0 → 100644
| 1 | +package com.bsth.entity.realcontrol; | |
| 2 | + | |
| 3 | +import javax.persistence.Entity; | |
| 4 | +import javax.persistence.Id; | |
| 5 | +import javax.persistence.Table; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * 主页SVG模拟图属性设置 | |
| 9 | + * Created by panzhao on 2017/1/6. | |
| 10 | + */ | |
| 11 | +@Entity | |
| 12 | +@Table(name = "bsth_c_svg_attr") | |
| 13 | +public class SvgAttribute { | |
| 14 | + | |
| 15 | + @Id | |
| 16 | + private String lineCode; | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 要隐藏的站点编码 , 号分割多个 | |
| 20 | + */ | |
| 21 | + private String hideStations; | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 站点别名 json对象字符串 | |
| 25 | + */ | |
| 26 | + private String nicknames; | |
| 27 | + | |
| 28 | + public String getLineCode() { | |
| 29 | + return lineCode; | |
| 30 | + } | |
| 31 | + | |
| 32 | + public void setLineCode(String lineCode) { | |
| 33 | + this.lineCode = lineCode; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public String getHideStations() { | |
| 37 | + return hideStations; | |
| 38 | + } | |
| 39 | + | |
| 40 | + public void setHideStations(String hideStations) { | |
| 41 | + this.hideStations = hideStations; | |
| 42 | + } | |
| 43 | + | |
| 44 | + public String getNicknames() { | |
| 45 | + return nicknames; | |
| 46 | + } | |
| 47 | + | |
| 48 | + public void setNicknames(String nicknames) { | |
| 49 | + this.nicknames = nicknames; | |
| 50 | + } | |
| 51 | +} | ... | ... |
src/main/java/com/bsth/entity/sys/DutyEmployee.java
| 1 | -package com.bsth.entity.sys; | |
| 2 | - | |
| 3 | -import javax.persistence.*; | |
| 4 | - | |
| 5 | -/** | |
| 6 | - * 当班调度员 | |
| 7 | - * Created by panzhao on 2017/1/5. | |
| 8 | - */ | |
| 9 | -@Entity | |
| 10 | -@Table(name = "bsth_c_sys_duty_employee") | |
| 11 | -public class DutyEmployee { | |
| 12 | - | |
| 13 | - @Id | |
| 14 | - @GeneratedValue | |
| 15 | - private Long id; | |
| 16 | - | |
| 17 | - /** | |
| 18 | - * 员工ID | |
| 19 | - */ | |
| 20 | - private Integer uId; | |
| 21 | - | |
| 22 | - /** | |
| 23 | - * 员工姓名 | |
| 24 | - */ | |
| 25 | - private String uName; | |
| 26 | - | |
| 27 | - /** | |
| 28 | - * 线路编码 ,号分割多个 | |
| 29 | - */ | |
| 30 | - private String codeIdx; | |
| 31 | - | |
| 32 | - /** | |
| 33 | - * 登入线调时间 | |
| 34 | - */ | |
| 35 | - private Long ts; | |
| 36 | - | |
| 37 | - /** | |
| 38 | - * 是否主调模式进入 | |
| 39 | - */ | |
| 40 | - private boolean main; | |
| 41 | - | |
| 42 | - public Integer getuId() { | |
| 43 | - return uId; | |
| 44 | - } | |
| 45 | - | |
| 46 | - public void setuId(Integer uId) { | |
| 47 | - this.uId = uId; | |
| 48 | - } | |
| 49 | - | |
| 50 | - public String getuName() { | |
| 51 | - return uName; | |
| 52 | - } | |
| 53 | - | |
| 54 | - public void setuName(String uName) { | |
| 55 | - this.uName = uName; | |
| 56 | - } | |
| 57 | - | |
| 58 | - public String getCodeIdx() { | |
| 59 | - return codeIdx; | |
| 60 | - } | |
| 61 | - | |
| 62 | - public void setCodeIdx(String codeIdx) { | |
| 63 | - this.codeIdx = codeIdx; | |
| 64 | - } | |
| 65 | - | |
| 66 | - public Long getTs() { | |
| 67 | - return ts; | |
| 68 | - } | |
| 69 | - | |
| 70 | - public void setTs(Long ts) { | |
| 71 | - this.ts = ts; | |
| 72 | - } | |
| 73 | - | |
| 74 | - public boolean isMain() { | |
| 75 | - return main; | |
| 76 | - } | |
| 77 | - | |
| 78 | - public void setMain(boolean main) { | |
| 79 | - this.main = main; | |
| 80 | - } | |
| 81 | - | |
| 82 | - public Long getId() { | |
| 83 | - return id; | |
| 84 | - } | |
| 85 | - | |
| 86 | - public void setId(Long id) { | |
| 87 | - this.id = id; | |
| 88 | - } | |
| 89 | -} | |
| 1 | +package com.bsth.entity.sys; | |
| 2 | + | |
| 3 | +import javax.persistence.*; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 当班调度员 | |
| 7 | + * Created by panzhao on 2017/1/5. | |
| 8 | + */ | |
| 9 | +@Entity | |
| 10 | +@Table(name = "bsth_c_sys_duty_employee") | |
| 11 | +public class DutyEmployee { | |
| 12 | + | |
| 13 | + @Id | |
| 14 | + @GeneratedValue | |
| 15 | + private Long id; | |
| 16 | + | |
| 17 | + /** | |
| 18 | + * 员工ID | |
| 19 | + */ | |
| 20 | + private Integer uId; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * 员工姓名 | |
| 24 | + */ | |
| 25 | + private String uName; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 线路编码 ,号分割多个 | |
| 29 | + */ | |
| 30 | + private String codeIdx; | |
| 31 | + | |
| 32 | + /** | |
| 33 | + * 登入线调时间 | |
| 34 | + */ | |
| 35 | + private Long ts; | |
| 36 | + | |
| 37 | + /** | |
| 38 | + * 是否主调模式进入 | |
| 39 | + */ | |
| 40 | + private boolean main; | |
| 41 | + | |
| 42 | + public Integer getuId() { | |
| 43 | + return uId; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public void setuId(Integer uId) { | |
| 47 | + this.uId = uId; | |
| 48 | + } | |
| 49 | + | |
| 50 | + public String getuName() { | |
| 51 | + return uName; | |
| 52 | + } | |
| 53 | + | |
| 54 | + public void setuName(String uName) { | |
| 55 | + this.uName = uName; | |
| 56 | + } | |
| 57 | + | |
| 58 | + public String getCodeIdx() { | |
| 59 | + return codeIdx; | |
| 60 | + } | |
| 61 | + | |
| 62 | + public void setCodeIdx(String codeIdx) { | |
| 63 | + this.codeIdx = codeIdx; | |
| 64 | + } | |
| 65 | + | |
| 66 | + public Long getTs() { | |
| 67 | + return ts; | |
| 68 | + } | |
| 69 | + | |
| 70 | + public void setTs(Long ts) { | |
| 71 | + this.ts = ts; | |
| 72 | + } | |
| 73 | + | |
| 74 | + public boolean isMain() { | |
| 75 | + return main; | |
| 76 | + } | |
| 77 | + | |
| 78 | + public void setMain(boolean main) { | |
| 79 | + this.main = main; | |
| 80 | + } | |
| 81 | + | |
| 82 | + public Long getId() { | |
| 83 | + return id; | |
| 84 | + } | |
| 85 | + | |
| 86 | + public void setId(Long id) { | |
| 87 | + this.id = id; | |
| 88 | + } | |
| 89 | +} | ... | ... |
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
| ... | ... | @@ -110,7 +110,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI |
| 110 | 110 | @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2") |
| 111 | 111 | List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date); |
| 112 | 112 | |
| 113 | - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY xlBm,clZbh") | |
| 113 | + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY realExecDate,fcsj,xlBm,clZbh") | |
| 114 | 114 | List<Map<String,Object>> yesterdayDataList(String line,String date); |
| 115 | 115 | |
| 116 | 116 | @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir") | ... | ... |
src/main/java/com/bsth/repository/realcontrol/SvgAttributeRepository.java
0 → 100644
| 1 | +package com.bsth.repository.realcontrol; | |
| 2 | + | |
| 3 | +import com.bsth.entity.realcontrol.SvgAttribute; | |
| 4 | +import com.bsth.repository.BaseRepository; | |
| 5 | +import org.springframework.data.jpa.repository.Query; | |
| 6 | +import org.springframework.stereotype.Repository; | |
| 7 | + | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * Created by panzhao on 2017/1/8. | |
| 12 | + */ | |
| 13 | +@Repository | |
| 14 | +public interface SvgAttributeRepository extends BaseRepository<SvgAttribute, String> { | |
| 15 | + @Query("select s from SvgAttribute s where s.lineCode in ?1") | |
| 16 | + List<SvgAttribute> findSvgAttr(List<String> lineCodes); | |
| 17 | +} | ... | ... |
src/main/java/com/bsth/repository/sys/DutyEmployeeRepository.java
| 1 | -package com.bsth.repository.sys; | |
| 2 | - | |
| 3 | -import com.bsth.entity.sys.DutyEmployee; | |
| 4 | -import com.bsth.repository.BaseRepository; | |
| 5 | -import org.springframework.data.jpa.repository.Query; | |
| 6 | -import org.springframework.stereotype.Repository; | |
| 7 | - | |
| 8 | -import java.util.List; | |
| 9 | - | |
| 10 | -/** | |
| 11 | - * Created by panzhao on 2017/1/5. | |
| 12 | - */ | |
| 13 | -@Repository | |
| 14 | -public interface DutyEmployeeRepository extends BaseRepository<DutyEmployee, Long>{ | |
| 15 | - | |
| 16 | - @Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts > ?2 and t.ts < ?3") | |
| 17 | - List<DutyEmployee> findByLineAndTime(String lineCode, long st, long et); | |
| 18 | -} | |
| 1 | +package com.bsth.repository.sys; | |
| 2 | + | |
| 3 | +import com.bsth.entity.sys.DutyEmployee; | |
| 4 | +import com.bsth.repository.BaseRepository; | |
| 5 | +import org.springframework.data.jpa.repository.Query; | |
| 6 | +import org.springframework.stereotype.Repository; | |
| 7 | + | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * Created by panzhao on 2017/1/5. | |
| 12 | + */ | |
| 13 | +@Repository | |
| 14 | +public interface DutyEmployeeRepository extends BaseRepository<DutyEmployee, Long>{ | |
| 15 | + | |
| 16 | + @Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts > ?2 and t.ts < ?3") | |
| 17 | + List<DutyEmployee> findByLineAndTime(String lineCode, long st, long et); | |
| 18 | +} | ... | ... |
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
| 1 | 1 | package com.bsth.service.impl; |
| 2 | 2 | |
| 3 | -import java.io.ByteArrayInputStream; | |
| 4 | -import java.io.File; | |
| 5 | -import java.io.InputStream; | |
| 6 | -import java.text.DecimalFormat; | |
| 7 | -import java.util.ArrayList; | |
| 8 | -import java.util.HashMap; | |
| 9 | -import java.util.List; | |
| 10 | -import java.util.Map; | |
| 11 | -import java.util.Properties; | |
| 12 | - | |
| 13 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 14 | -import org.springframework.data.jpa.repository.EntityGraph; | |
| 15 | -import org.springframework.stereotype.Service; | |
| 16 | - | |
| 17 | -import com.alibaba.fastjson.JSON; | |
| 18 | -import com.alibaba.fastjson.JSONArray; | |
| 19 | -import com.alibaba.fastjson.serializer.PropertyFilter; | |
| 20 | 3 | import com.bsth.common.ResponseCode; |
| 21 | 4 | import com.bsth.entity.Line; |
| 22 | 5 | import com.bsth.entity.Station; |
| ... | ... | @@ -30,7 +13,14 @@ import com.bsth.util.FTPClientUtils; |
| 30 | 13 | import com.bsth.util.PackTarGZUtils; |
| 31 | 14 | import com.bsth.util.db.DBUtils_MS; |
| 32 | 15 | import com.google.common.base.Splitter; |
| 33 | -import com.google.common.collect.Lists; | |
| 16 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.ByteArrayInputStream; | |
| 20 | +import java.io.File; | |
| 21 | +import java.io.InputStream; | |
| 22 | +import java.text.DecimalFormat; | |
| 23 | +import java.util.*; | |
| 34 | 24 | |
| 35 | 25 | /** |
| 36 | 26 | * |
| ... | ... | @@ -985,6 +975,8 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 985 | 975 | List<String> idx = Splitter.on(',').splitToList(lineIds); |
| 986 | 976 | //路由 |
| 987 | 977 | List<StationRoute> list = new ArrayList<>(); |
| 978 | + | |
| 979 | + | |
| 988 | 980 | /** |
| 989 | 981 | * in 查询符 无法和 @EntityGraph 同时配合使用,这可能是一个bug |
| 990 | 982 | * 暂时只能循环单线路查询 |
| ... | ... | @@ -993,9 +985,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 993 | 985 | for(String id : idx){ |
| 994 | 986 | list.addAll(repository.findByLineCode(id)); |
| 995 | 987 | } |
| 996 | - | |
| 988 | + | |
| 989 | + for(StationRoute sr : list){ | |
| 990 | + sr.setLine(null); | |
| 991 | + } | |
| 997 | 992 | //过滤部分字段 |
| 998 | - String jsonStr = JSON.toJSONString(list, new PropertyFilter() { | |
| 993 | + /*String jsonStr = JSON.toJSONString(list, new PropertyFilter() { | |
| 999 | 994 | |
| 1000 | 995 | @Override |
| 1001 | 996 | public boolean apply(Object object, String name, Object value) { |
| ... | ... | @@ -1003,10 +998,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 1003 | 998 | return false; |
| 1004 | 999 | return true; |
| 1005 | 1000 | } |
| 1006 | - }); | |
| 1001 | + });*/ | |
| 1007 | 1002 | |
| 1008 | 1003 | rs.put("status", ResponseCode.SUCCESS); |
| 1009 | - rs.put("list", jsonStr); | |
| 1004 | + rs.put("list", list); | |
| 1010 | 1005 | }catch(Exception e){ |
| 1011 | 1006 | logger.error("", e); |
| 1012 | 1007 | rs.put("status", ResponseCode.ERROR); | ... | ... |
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
| ... | ... | @@ -390,36 +390,44 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 390 | 390 | Map<String,Object> map = new HashMap<String,Object>(); |
| 391 | 391 | for(Map<String,Object> schRealInfo:listGroup){ |
| 392 | 392 | if(schRealInfo != null){ |
| 393 | + map.put("insideCode_eq", schRealInfo.get("clZbh")+""); | |
| 394 | + Cars car = carsRepository.findOne(new CustomerSpecs<Cars>(map)); | |
| 395 | + /** | |
| 396 | + * 如果car==null,则说明该车辆是从线调中换车功能中加进去的, | |
| 397 | + * 在cars基础信息中查不到车辆的信息,所以忽略该车辆 | |
| 398 | + */ | |
| 399 | + if(car == null){ | |
| 400 | + continue; | |
| 401 | + } | |
| 393 | 402 | //计算总公里和空驶公里,营运公里=总公里-空驶公里 |
| 394 | 403 | double totalKilometers = 0,emptyKilometers =0; |
| 395 | 404 | sf.append("<LCYH>"); |
| 396 | - map.put("insideCode_eq", schRealInfo.get("clZbh")+""); | |
| 397 | - Cars car = carsRepository.findOne(new CustomerSpecs<Cars>(map)); | |
| 398 | -// Cars car = carsRepository.findCarByClzbh(schRealInfo.getClZbh()); | |
| 399 | 405 | sf.append("<RQ>"+date+"</RQ>"); |
| 400 | 406 | sf.append("<XLBM>"+BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm"))+"</XLBM>"); |
| 401 | 407 | sf.append("<CPH>"+car.getCarPlate()+"</CPH>"); |
| 402 | - for(ScheduleRealInfo scheduleRealInfo:list){ | |
| 403 | - if((schRealInfo.get("xlBm")+"").equals(scheduleRealInfo.getXlBm()) && (schRealInfo.get("clZbh")+"") | |
| 404 | - .equals(scheduleRealInfo.getClZbh())){ | |
| 405 | - Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); | |
| 406 | - //如果没有子任务,里程就是已执行(Status=2);有子任务的,忽略主任务,子任务的烂班 | |
| 407 | - if(childTaskPlans.isEmpty()){ | |
| 408 | - if(scheduleRealInfo.getStatus() == 2){ | |
| 409 | - totalKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc(); | |
| 410 | - if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out") | |
| 411 | - || scheduleRealInfo.getBcType().equals("venting")){ | |
| 412 | - emptyKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc(); | |
| 408 | + if(list != null && list.size() > 0){ | |
| 409 | + for(ScheduleRealInfo scheduleRealInfo:list){ | |
| 410 | + if((schRealInfo.get("xlBm")+"").equals(scheduleRealInfo.getXlBm()) && (schRealInfo.get("clZbh")+"") | |
| 411 | + .equals(scheduleRealInfo.getClZbh())){ | |
| 412 | + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); | |
| 413 | + //如果没有子任务,里程就是已执行(Status=2);有子任务的,忽略主任务,子任务的烂班 | |
| 414 | + if(childTaskPlans.isEmpty()){ | |
| 415 | + if(scheduleRealInfo.getStatus() == 2){ | |
| 416 | + totalKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc(); | |
| 417 | + if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out") | |
| 418 | + || scheduleRealInfo.getBcType().equals("venting")){ | |
| 419 | + emptyKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc(); | |
| 420 | + } | |
| 413 | 421 | } |
| 414 | - } | |
| 415 | - }else{ | |
| 416 | - Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 417 | - while(it.hasNext()){ | |
| 418 | - ChildTaskPlan childTaskPlan = it.next(); | |
| 419 | - if(!childTaskPlan.isDestroy()){ | |
| 420 | - totalKilometers += childTaskPlan.getMileage()==null?0.0:childTaskPlan.getMileage(); | |
| 421 | - if(childTaskPlan.getMileageType().equals("empty")){ | |
| 422 | - emptyKilometers += childTaskPlan.getMileage()==null?0.0:childTaskPlan.getMileage();; | |
| 422 | + }else{ | |
| 423 | + Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 424 | + while(it.hasNext()){ | |
| 425 | + ChildTaskPlan childTaskPlan = it.next(); | |
| 426 | + if(!childTaskPlan.isDestroy()){ | |
| 427 | + totalKilometers += childTaskPlan.getMileage()==null?0.0:childTaskPlan.getMileage(); | |
| 428 | + if(childTaskPlan.getMileageType().equals("empty")){ | |
| 429 | + emptyKilometers += childTaskPlan.getMileage()==null?0.0:childTaskPlan.getMileage();; | |
| 430 | + } | |
| 423 | 431 | } |
| 424 | 432 | } |
| 425 | 433 | } |
| ... | ... | @@ -604,8 +612,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 604 | 612 | schedulePlanInfo.getXlBm(), schedulePlanInfo.getXlDir(), schedulePlanInfo.getQdzName())).append("</ZDXH>"); |
| 605 | 613 | sBuffer.append("<JHFCSJ>").append(schedulePlanInfo.getFcsj()).append("</JHFCSJ>"); |
| 606 | 614 | sBuffer.append("<DDZDMC>").append(schedulePlanInfo.getZdzName()).append("</DDZDMC>"); |
| 607 | - sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName( | |
| 608 | - schedulePlanInfo.getXlBm(), schedulePlanInfo.getXlDir(), schedulePlanInfo.getZdzName())).append("</ZDXH>"); | |
| 615 | + sBuffer.append("<DDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName( | |
| 616 | + schedulePlanInfo.getXlBm(), schedulePlanInfo.getXlDir(), schedulePlanInfo.getZdzName())).append("</DDXH>"); | |
| 609 | 617 | sBuffer.append("<JHDDSJ>").append(calcDdsj(schedulePlanInfo.getFcsj(),schedulePlanInfo.getBcsj())) |
| 610 | 618 | .append("</JHDDSJ>"); |
| 611 | 619 | sBuffer.append("</BC>"); | ... | ... |
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
| ... | ... | @@ -132,7 +132,7 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS |
| 132 | 132 | t.setJcsx(Integer.parseInt(map.get("seqNumber").toString())); |
| 133 | 133 | t.setSsgsdm(map.get("company")==null?"":map.get("company").toString()); |
| 134 | 134 | t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString()); |
| 135 | - t.setRq(dBefore); | |
| 135 | + t.setRq(sdf.parse(rq)); | |
| 136 | 136 | repository.save(t); |
| 137 | 137 | result = "success"; |
| 138 | 138 | } catch (Exception e) { | ... | ... |
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
| ... | ... | @@ -15,7 +15,7 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L |
| 15 | 15 | |
| 16 | 16 | Map<String, Collection<ScheduleRealInfo>> findByLines(String lines); |
| 17 | 17 | |
| 18 | - Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj/*,String nbbm,String jsy,String spy*/); | |
| 18 | + Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType); | |
| 19 | 19 | |
| 20 | 20 | Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks, String reason/*, int spaceNum*/); |
| 21 | 21 | |
| ... | ... | @@ -128,4 +128,8 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L |
| 128 | 128 | Map<String,Object> changeBcType(Long id, String bcType, String remarks); |
| 129 | 129 | |
| 130 | 130 | Map<String,Object> historySave(ScheduleRealInfo sch); |
| 131 | + | |
| 132 | + Map<String,Object> svgAttr(String jsonStr); | |
| 133 | + | |
| 134 | + Map<String,Object> findSvgAttr(String idx); | |
| 131 | 135 | } | ... | ... |