Commit 7a72d561867ec81f84e2be373d317fb45574ed2a
1 parent
f0a0253e
update
Showing
13 changed files
with
152 additions
and
225 deletions
src/main/java/com/bsth/controller/realcontrol/LineConfigController.java
| ... | ... | @@ -34,4 +34,9 @@ public class LineConfigController extends BaseController<LineConfig, Integer>{ |
| 34 | 34 | public Map<String, Object> editStartOptTime(@RequestParam String time,@RequestParam String lineCode){ |
| 35 | 35 | return lineConfigService.editStartOptTime(time, lineCode); |
| 36 | 36 | } |
| 37 | + | |
| 38 | + @RequestMapping(value = "/editOutTimeType", method = RequestMethod.POST) | |
| 39 | + public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type){ | |
| 40 | + return lineConfigService.editOutTimeType(lineCode, type); | |
| 41 | + } | |
| 37 | 42 | } | ... | ... |
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
| ... | ... | @@ -63,7 +63,7 @@ public class GpsRealData implements CommandLineRunner{ |
| 63 | 63 | @Override |
| 64 | 64 | public void run(String... arg0) throws Exception { |
| 65 | 65 | logger.info("gpsDataLoader,20,8"); |
| 66 | - Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 8, TimeUnit.SECONDS); | |
| 66 | + //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 8, TimeUnit.SECONDS); | |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | public static GpsEntity add(GpsEntity gps) { | ... | ... |
src/main/java/com/bsth/data/match/Arrival2Schedule.java
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| ... | ... | @@ -62,15 +62,11 @@ public class DayOfSchedule implements CommandLineRunner { |
| 62 | 62 | public static LinkedList<ScheduleRealInfo> pstBuffer; |
| 63 | 63 | |
| 64 | 64 | // 排序器 |
| 65 | - private static ScheduleComparator.FCNO schNoComparator; | |
| 66 | - //private static ScheduleComparator.FCSJ schFcsjComparator; | |
| 65 | + private static ScheduleComparator.FCSJ schFCSJComparator; | |
| 67 | 66 | |
| 68 | 67 | @Autowired |
| 69 | 68 | LineConfigData lineConfigData; |
| 70 | 69 | |
| 71 | - /*@Autowired | |
| 72 | - ScheduleRealInfoService scheduleRealService;*/ | |
| 73 | - | |
| 74 | 70 | @Autowired |
| 75 | 71 | ScheduleRealInfoRepository schRepository; |
| 76 | 72 | |
| ... | ... | @@ -90,7 +86,7 @@ public class DayOfSchedule implements CommandLineRunner { |
| 90 | 86 | nbbmScheduleMap = ArrayListMultimap.create(); |
| 91 | 87 | id2SchedulMap = new HashMap<>(); |
| 92 | 88 | pstBuffer = new LinkedList<>(); |
| 93 | - schNoComparator = new ScheduleComparator.FCNO(); | |
| 89 | + schFCSJComparator = new ScheduleComparator.FCSJ(); | |
| 94 | 90 | currSchDateMap = new HashMap<>(); |
| 95 | 91 | nbbm2SEStationMap = TreeMultimap.create(); |
| 96 | 92 | } |
| ... | ... | @@ -167,11 +163,18 @@ public class DayOfSchedule implements CommandLineRunner { |
| 167 | 163 | //添加到缓存 |
| 168 | 164 | putAll(list); |
| 169 | 165 | |
| 170 | - //计算“起点站应到”时间 | |
| 171 | 166 | Set<String> cars = searchAllCars(list); |
| 167 | + //计算“起点站应到”时间 | |
| 172 | 168 | for(String nbbm : cars) |
| 173 | 169 | schAttrCalculator.calcQdzTimePlan(nbbmScheduleMap.get(nbbm)); |
| 174 | 170 | |
| 171 | + //是否是出站即出场 | |
| 172 | + LineConfig conf = lineConfigData.get(lineCode); | |
| 173 | + if(conf.getOutConfig() == 2){ | |
| 174 | + for(String nbbm : cars) | |
| 175 | + schAttrCalculator.connectOutSchedule(nbbmScheduleMap.get(nbbm)); | |
| 176 | + } | |
| 177 | + | |
| 175 | 178 | // 页面 翻班通知 |
| 176 | 179 | sendUtils.shiftSchedule(lineCode); |
| 177 | 180 | } catch (Exception e) { |
| ... | ... | @@ -290,6 +293,9 @@ public class DayOfSchedule implements CommandLineRunner { |
| 290 | 293 | logger.error("loadPlanSch... 计算终点时间失败..."); |
| 291 | 294 | } |
| 292 | 295 | } |
| 296 | + //计划里程为0,直接清空 | |
| 297 | + if(sch.getJhlc() != null && sch.getJhlc() == 0) | |
| 298 | + sch.setJhlc(null); | |
| 293 | 299 | } |
| 294 | 300 | } catch (Exception e) { |
| 295 | 301 | logger.error("", e); |
| ... | ... | @@ -418,28 +424,6 @@ public class DayOfSchedule implements CommandLineRunner { |
| 418 | 424 | return next; |
| 419 | 425 | } |
| 420 | 426 | |
| 421 | - /** | |
| 422 | - * | |
| 423 | - * @Title: prveRealSch | |
| 424 | - * @Description: TODO(获取上一个已实际发出的班次) | |
| 425 | - */ | |
| 426 | -/* public ScheduleRealInfo prveSjfc(ScheduleRealInfo sch) { | |
| 427 | - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh()); | |
| 428 | - // 排序 | |
| 429 | - Collections.sort(list, schNoComparator); | |
| 430 | - | |
| 431 | - ScheduleRealInfo prve = null; | |
| 432 | - | |
| 433 | - int i = list.indexOf(sch); | |
| 434 | - for (; i >= 0; i--){ | |
| 435 | - if (list.get(i).getFcsjActual() != null){ | |
| 436 | - prve = list.get(i); | |
| 437 | - break; | |
| 438 | - } | |
| 439 | - } | |
| 440 | - return prve; | |
| 441 | - }*/ | |
| 442 | - | |
| 443 | 427 | public void put(ScheduleRealInfo sch) { |
| 444 | 428 | schAttrCalculator |
| 445 | 429 | .calcRealDate(sch) |
| ... | ... | @@ -466,7 +450,7 @@ public class DayOfSchedule implements CommandLineRunner { |
| 466 | 450 | public List<ScheduleRealInfo> nextAll(ScheduleRealInfo sch) { |
| 467 | 451 | List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh()); |
| 468 | 452 | // 排序 |
| 469 | - Collections.sort(list, schNoComparator); | |
| 453 | + Collections.sort(list, schFCSJComparator); | |
| 470 | 454 | |
| 471 | 455 | List<ScheduleRealInfo> rs = new ArrayList<>(); |
| 472 | 456 | ScheduleRealInfo temp; |
| ... | ... | @@ -554,33 +538,6 @@ public class DayOfSchedule implements CommandLineRunner { |
| 554 | 538 | pstBuffer.add(sch); |
| 555 | 539 | } |
| 556 | 540 | |
| 557 | - /** | |
| 558 | - * | |
| 559 | - * @Title: outSch | |
| 560 | - * @Description: TODO(出场班次) | |
| 561 | - */ | |
| 562 | -/* public List<ScheduleRealInfo> outSch(String nbbm){ | |
| 563 | - List<ScheduleRealInfo> all = nbbmScheduleMap.get(nbbm) | |
| 564 | - ,outList = new ArrayList<>(); | |
| 565 | - | |
| 566 | - for(ScheduleRealInfo sch : all){ | |
| 567 | - if(sch.getBcType().equals("out")) | |
| 568 | - outList.add(sch); | |
| 569 | - } | |
| 570 | - return outList; | |
| 571 | - } | |
| 572 | - | |
| 573 | - public ScheduleRealInfo nextOut(String nbbm){ | |
| 574 | - List<ScheduleRealInfo> list = outSch(nbbm); | |
| 575 | - Collections.sort(list, schNoComparator); | |
| 576 | - ScheduleRealInfo sch = null; | |
| 577 | - for(ScheduleRealInfo temp : list){ | |
| 578 | - if(temp.getFcsjActual() == null) | |
| 579 | - sch = temp; | |
| 580 | - } | |
| 581 | - | |
| 582 | - return sch; | |
| 583 | - }*/ | |
| 584 | 541 | |
| 585 | 542 | /** |
| 586 | 543 | * |
| ... | ... | @@ -590,7 +547,7 @@ public class DayOfSchedule implements CommandLineRunner { |
| 590 | 547 | public ScheduleRealInfo nextByBcType(String nbbm, String bcType){ |
| 591 | 548 | List<ScheduleRealInfo> list = findByBcType(nbbm, bcType); |
| 592 | 549 | |
| 593 | - Collections.sort(list, schNoComparator); | |
| 550 | + Collections.sort(list, schFCSJComparator); | |
| 594 | 551 | ScheduleRealInfo sch = null; |
| 595 | 552 | for(ScheduleRealInfo temp : list){ |
| 596 | 553 | if(temp.getFcsjActual() == null) | ... | ... |
src/main/java/com/bsth/data/schedule/SchAttrCalculator.java
| ... | ... | @@ -87,7 +87,7 @@ public class SchAttrCalculator { |
| 87 | 87 | * @Description: TODO(计算班次的起点应到时间,list 必须是同一辆车的班次) |
| 88 | 88 | */ |
| 89 | 89 | public void calcQdzTimePlan(List<ScheduleRealInfo> list){ |
| 90 | - Collections.sort(list, new ScheduleComparator.FCNO()); | |
| 90 | + Collections.sort(list, new ScheduleComparator.FCSJ()); | |
| 91 | 91 | |
| 92 | 92 | int len = list.size(); |
| 93 | 93 | if(len == 0) |
| ... | ... | @@ -102,6 +102,34 @@ public class SchAttrCalculator { |
| 102 | 102 | prve = curr; |
| 103 | 103 | } |
| 104 | 104 | } |
| 105 | + | |
| 106 | + /** | |
| 107 | + * | |
| 108 | + * @Title: connectOutSchedule | |
| 109 | + * @Description: TODO(关联出场班次) | |
| 110 | + */ | |
| 111 | + public void connectOutSchedule(List<ScheduleRealInfo> list){ | |
| 112 | + Collections.sort(list, new ScheduleComparator.FCSJ()); | |
| 113 | + | |
| 114 | + int len = list.size(); | |
| 115 | + if(len == 0) | |
| 116 | + return; | |
| 117 | + | |
| 118 | + ScheduleRealInfo prve = list.get(0), curr; | |
| 119 | + for(int i = 1; i < len; i ++){ | |
| 120 | + curr = list.get(i); | |
| 121 | + | |
| 122 | + //出站即出场关联 | |
| 123 | + if(prve.getBcType().equals("out") && prve.getJhlc() == null) | |
| 124 | + curr.setTwinsSch(prve); | |
| 125 | + | |
| 126 | + //进站即进场关联 | |
| 127 | + if(curr.getBcType().equals("in") && curr.getJhlc() == null) | |
| 128 | + prve.setTwinsSch(curr); | |
| 129 | + | |
| 130 | + prve = curr; | |
| 131 | + } | |
| 132 | + } | |
| 105 | 133 | |
| 106 | 134 | public SchAttrCalculator calcFcsjTime(ScheduleRealInfo sch) throws ParseException { |
| 107 | 135 | sch.setFcsjT(DateUtils.sdfyyyyMMddHHmm.parse(sch.getRealExecDate() + sch.getFcsj()).getTime()); | ... | ... |
src/main/java/com/bsth/data/schedule/ScheduleComparator.java
| ... | ... | @@ -14,12 +14,12 @@ import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 14 | 14 | */ |
| 15 | 15 | public class ScheduleComparator { |
| 16 | 16 | |
| 17 | - public static class FCNO implements Comparator<ScheduleRealInfo>{ | |
| 17 | +/* public static class FCNO implements Comparator<ScheduleRealInfo>{ | |
| 18 | 18 | @Override |
| 19 | 19 | public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) { |
| 20 | 20 | return s1.getFcno() - s2.getFcno(); |
| 21 | 21 | } |
| 22 | - } | |
| 22 | + }*/ | |
| 23 | 23 | |
| 24 | 24 | public static class FCSJ implements Comparator<ScheduleRealInfo>{ |
| 25 | 25 | ... | ... |
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
| ... | ... | @@ -55,10 +55,10 @@ public class LineConfig { |
| 55 | 55 | /** 托管状态 */ |
| 56 | 56 | private boolean trust; |
| 57 | 57 | |
| 58 | - /** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 */ | |
| 58 | + /** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 2:出站即出场 */ | |
| 59 | 59 | private int outConfig; |
| 60 | 60 | |
| 61 | - /** 进场时间设置 0:真实进场(设备进入缓冲区时间) 1:请求进场时间 */ | |
| 61 | + /** 进场时间设置 0:真实进场(设备进入缓冲区时间) 1:请求进场时间 2:出站即出场*/ | |
| 62 | 62 | private int inConfig; |
| 63 | 63 | |
| 64 | 64 | /** 短语模板 , 号分隔多个 */ | ... | ... |
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
| ... | ... | @@ -102,19 +102,10 @@ public class ScheduleRealInfo { |
| 102 | 102 | */ |
| 103 | 103 | private String bcType; |
| 104 | 104 | |
| 105 | - /** 设备请求出场或进场时间(班次为 出场或进场 时,该字段可能有值) | |
| 106 | - private Long devRequestTime;*/ | |
| 107 | - | |
| 108 | - /** 停车场既首发站 */ | |
| 109 | - @Transient | |
| 110 | - private boolean parkIsFirstStation; | |
| 111 | - /** 首发站既停车场 */ | |
| 112 | - @Transient | |
| 113 | - private boolean firstStationIsPark; | |
| 114 | - /** 与其共享发车时间的进出场班次 */ | |
| 105 | + /** 出站即出场 , 关联的进出场班次 */ | |
| 115 | 106 | @JsonIgnore |
| 116 | 107 | @Transient |
| 117 | - private ScheduleRealInfo twins; | |
| 108 | + private ScheduleRealInfo twinsSch; | |
| 118 | 109 | |
| 119 | 110 | /** 创建人 */ |
| 120 | 111 | @JsonIgnore |
| ... | ... | @@ -539,35 +530,6 @@ public class ScheduleRealInfo { |
| 539 | 530 | } |
| 540 | 531 | } |
| 541 | 532 | |
| 542 | - /** | |
| 543 | - * @throws ParseException | |
| 544 | - * | |
| 545 | - * @Title: syncTime | |
| 546 | - * @Description: TODO(根据计发时间,计算待发时间和终点时间) | |
| 547 | - * @param 设定文件 | |
| 548 | - * @return void 返回类型 | |
| 549 | - * @throws | |
| 550 | - | |
| 551 | - public void syncTime(){ | |
| 552 | - try{ | |
| 553 | - this.setDfsj(this.getFcsj()); | |
| 554 | - //发车时间戳 | |
| 555 | - this.setFcsjT(sdfyyyyMMddHHmm.parse(this.realExecDate + " " + this.getFcsj()).getTime()); | |
| 556 | - //待发时间戳 | |
| 557 | - this.setDfsjT(this.getFcsjT()); | |
| 558 | - //计算终点时间 | |
| 559 | - calcEndTime(); | |
| 560 | - | |
| 561 | - if(this.fcsjActual != null) | |
| 562 | - this.setFcsjActualAll(this.fcsjActual); | |
| 563 | - | |
| 564 | - if(this.zdsjActual != null) | |
| 565 | - this.setZdsjActualAll(this.zdsjActual); | |
| 566 | - }catch(Exception e){ | |
| 567 | - e.printStackTrace(); | |
| 568 | - } | |
| 569 | - } */ | |
| 570 | - | |
| 571 | 533 | public void calcEndTime(){ |
| 572 | 534 | //计划终点时间 |
| 573 | 535 | if(this.getBcsj() != null){ |
| ... | ... | @@ -671,21 +633,6 @@ public class ScheduleRealInfo { |
| 671 | 633 | calcStatus(); |
| 672 | 634 | } |
| 673 | 635 | |
| 674 | - //和依赖班次同步发车时间 | |
| 675 | -/* public void synchroFcsj(){ | |
| 676 | - if(this.isFirstStationIsPark() || this.isParkIsFirstStation()){ | |
| 677 | - ScheduleRealInfo twinsSch = this.twins; | |
| 678 | - if(null != twinsSch){ | |
| 679 | - //有关联的出场班次 | |
| 680 | - twinsSch.setFcsjActual(this.fcsjActual); | |
| 681 | - twinsSch.setFcsjActualTime(this.fcsjActualTime); | |
| 682 | - if(null != twinsSch.getSjfcModel()) | |
| 683 | - twinsSch.getSjfcModel().setPersonTime(this.fcsjActualTime); | |
| 684 | - twinsSch.calcStatus(); | |
| 685 | - } | |
| 686 | - } | |
| 687 | - }*/ | |
| 688 | - | |
| 689 | 636 | /** |
| 690 | 637 | * |
| 691 | 638 | * @Title: setFcsjActualAll |
| ... | ... | @@ -718,19 +665,6 @@ public class ScheduleRealInfo { |
| 718 | 665 | } |
| 719 | 666 | } |
| 720 | 667 | |
| 721 | - //和依赖的进场班次同步终点时间 | |
| 722 | -/* public void synchroZdsj(){ | |
| 723 | - if(this.isFirstStationIsPark()){ | |
| 724 | - ScheduleRealInfo twinsSch = this.twins; | |
| 725 | - if(null != twinsSch && twinsSch.getBcType().equals("in")){ | |
| 726 | - //有关联的进场班次 | |
| 727 | - twinsSch.setFcsjActual(this.zdsjActual); | |
| 728 | - twinsSch.setFcsjActualTime(this.zdsjActualTime); | |
| 729 | - twinsSch.calcStatus(); | |
| 730 | - } | |
| 731 | - } | |
| 732 | - }*/ | |
| 733 | - | |
| 734 | 668 | public Long getSpId() { |
| 735 | 669 | return spId; |
| 736 | 670 | } |
| ... | ... | @@ -755,9 +689,9 @@ public class ScheduleRealInfo { |
| 755 | 689 | if(StringUtils.isNotBlank(this.fcsjActual)){ |
| 756 | 690 | this.status = 1; |
| 757 | 691 | |
| 758 | - //进出场班次并且没有终点时间的 | |
| 692 | + //进出场班次并且没有计划里程的 | |
| 759 | 693 | if((this.bcType.equals("out") || this.bcType.equals("in")) |
| 760 | - && this.zdsj == null){ | |
| 694 | + && this.jhlc == null){ | |
| 761 | 695 | this.status = 2; |
| 762 | 696 | } |
| 763 | 697 | } |
| ... | ... | @@ -792,60 +726,12 @@ public class ScheduleRealInfo { |
| 792 | 726 | public void setScheduleDateStr(String scheduleDateStr) { |
| 793 | 727 | this.scheduleDateStr = scheduleDateStr; |
| 794 | 728 | } |
| 795 | - | |
| 796 | - public boolean isParkIsFirstStation() { | |
| 797 | - return parkIsFirstStation; | |
| 798 | - } | |
| 799 | - | |
| 800 | - public void setParkIsFirstStation(boolean parkIsFirstStation) { | |
| 801 | - this.parkIsFirstStation = parkIsFirstStation; | |
| 802 | - } | |
| 803 | - | |
| 804 | -/* public ScheduleRealInfo getTwins() { | |
| 805 | - return twins; | |
| 806 | - } | |
| 807 | - | |
| 808 | - public void setTwins(ScheduleRealInfo twins) { | |
| 809 | - this.twins = twins; | |
| 810 | - } | |
| 811 | - | |
| 812 | - public boolean isFirstStationIsPark() { | |
| 813 | - return firstStationIsPark; | |
| 814 | - } | |
| 815 | - | |
| 816 | - public void setFirstStationIsPark(boolean firstStationIsPark) { | |
| 817 | - this.firstStationIsPark = firstStationIsPark; | |
| 818 | - }*/ | |
| 819 | - | |
| 820 | - | |
| 821 | - /*public boolean statusTostart(){ | |
| 822 | - return this.getFcsjActual() == null | |
| 823 | - && this.getSjfcModel().getTime() != null; | |
| 824 | - } | |
| 825 | - | |
| 826 | - public boolean statusToEnd(){ | |
| 827 | - return this.getZdsjActual() == null | |
| 828 | - && this.getSjddModel().getTime() != null; | |
| 829 | - } | |
| 830 | - | |
| 831 | - public void revokeRealOutgo() { | |
| 832 | - //this.setStatus(0); | |
| 833 | - this.setFcsjActual(null); | |
| 834 | - this.setFcsjActualTime(null); | |
| 835 | - if(null != this.getSjfcModel()) | |
| 836 | - this.getSjfcModel().resetNull(); | |
| 837 | - this.calcStatus(); | |
| 838 | - }*/ | |
| 839 | 729 | |
| 840 | 730 | public void clearFcsjActual(){ |
| 841 | 731 | this.setFcsjActual(null); |
| 842 | 732 | this.setFcsjActualTime(null); |
| 843 | 733 | this.calcStatus(); |
| 844 | 734 | } |
| 845 | - | |
| 846 | -/* public boolean existDependent() { | |
| 847 | - return this.isFirstStationIsPark() || this.parkIsFirstStation; | |
| 848 | - }*/ | |
| 849 | 735 | |
| 850 | 736 | //清除实际终点时间 |
| 851 | 737 | public void clearZdsjActual(){ |
| ... | ... | @@ -862,4 +748,12 @@ public class ScheduleRealInfo { |
| 862 | 748 | public void setOpDirectiveState(Integer opDirectiveState) { |
| 863 | 749 | this.opDirectiveState = opDirectiveState; |
| 864 | 750 | } |
| 751 | + | |
| 752 | + public ScheduleRealInfo getTwinsSch() { | |
| 753 | + return twinsSch; | |
| 754 | + } | |
| 755 | + | |
| 756 | + public void setTwinsSch(ScheduleRealInfo twinsSch) { | |
| 757 | + this.twinsSch = twinsSch; | |
| 758 | + } | |
| 865 | 759 | } | ... | ... |
src/main/java/com/bsth/service/realcontrol/LineConfigService.java
src/main/java/com/bsth/service/realcontrol/impl/LineConfigServiceImpl.java
| ... | ... | @@ -64,4 +64,18 @@ public class LineConfigServiceImpl extends BaseServiceImpl<LineConfig, Integer> |
| 64 | 64 | rs.put("time", time); |
| 65 | 65 | return rs; |
| 66 | 66 | } |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public Map<String, Object> editOutTimeType(String lineCode, int type) { | |
| 70 | + Map<String, Object> rs = new HashMap<>(); | |
| 71 | + LineConfig conf = lineConfigData.get(lineCode); | |
| 72 | + | |
| 73 | + conf.setOutConfig(type); | |
| 74 | + conf.setInConfig(type); | |
| 75 | + lineConfigData.set(conf); | |
| 76 | + | |
| 77 | + rs.put("status", ResponseCode.SUCCESS); | |
| 78 | + rs.put("type", type); | |
| 79 | + return rs; | |
| 80 | + } | |
| 67 | 81 | } | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| ... | ... | @@ -712,7 +712,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 712 | 712 | } |
| 713 | 713 | else{ |
| 714 | 714 | // 按发车时间排序 |
| 715 | - Collections.sort(list, new ScheduleComparator.FCNO()); | |
| 715 | + Collections.sort(list, new ScheduleComparator.FCSJ()); | |
| 716 | 716 | |
| 717 | 717 | // 以第一个实际发车/待发时间为起点,调整间隔 |
| 718 | 718 | sch = list.get(0); | ... | ... |
src/main/java/com/bsth/websocket/handler/SendUtils.java
| ... | ... | @@ -14,6 +14,7 @@ import org.springframework.stereotype.Component; |
| 14 | 14 | |
| 15 | 15 | import com.alibaba.fastjson.JSONObject; |
| 16 | 16 | import com.bsth.data.BasicData; |
| 17 | +import com.bsth.data.LineConfigData; | |
| 17 | 18 | import com.bsth.data.schedule.DayOfSchedule; |
| 18 | 19 | import com.bsth.entity.directive.D80; |
| 19 | 20 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| ... | ... | @@ -24,6 +25,9 @@ public class SendUtils{ |
| 24 | 25 | |
| 25 | 26 | @Autowired |
| 26 | 27 | private RealControlSocketHandler socketHandler; |
| 28 | + | |
| 29 | + @Autowired | |
| 30 | + LineConfigData lineConfigData; | |
| 27 | 31 | |
| 28 | 32 | private static SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); |
| 29 | 33 | |
| ... | ... | @@ -33,17 +37,19 @@ public class SendUtils{ |
| 33 | 37 | * @throws JsonProcessingException |
| 34 | 38 | * TODO(推送发车信息) |
| 35 | 39 | */ |
| 36 | - public void sendFcsj(ScheduleRealInfo schedule) { | |
| 37 | - | |
| 40 | + public void sendFcsj(ScheduleRealInfo sch) { | |
| 41 | + //处理出站即出场的班次 | |
| 42 | + connectOutSchTime(sch); | |
| 43 | + | |
| 38 | 44 | Map<String, Object> map = new HashMap<>(); |
| 39 | 45 | map.put("fn", "faChe"); |
| 40 | - map.put("t", schedule); | |
| 46 | + map.put("t", sch); | |
| 41 | 47 | map.put("dataStr", sdf.format(new Date())); |
| 42 | 48 | |
| 43 | 49 | ObjectMapper mapper = new ObjectMapper(); |
| 44 | 50 | |
| 45 | 51 | try { |
| 46 | - socketHandler.sendMessageToLine(schedule.getXlBm(), mapper.writeValueAsString(map)); | |
| 52 | + socketHandler.sendMessageToLine(sch.getXlBm(), mapper.writeValueAsString(map)); | |
| 47 | 53 | } catch (Exception e) { |
| 48 | 54 | logger.error("", e); |
| 49 | 55 | } |
| ... | ... | @@ -77,11 +83,13 @@ public class SendUtils{ |
| 77 | 83 | * @throws NumberFormatException @Title: sendFcsj @Description: |
| 78 | 84 | * TODO(推送到达终点时间) @param @param schedule 班次 @throws |
| 79 | 85 | */ |
| 80 | - public void sendZdsj(ScheduleRealInfo schedule, ScheduleRealInfo nextSch, int finish) { | |
| 86 | + public void sendZdsj(ScheduleRealInfo sch, ScheduleRealInfo nextSch, int finish) { | |
| 87 | + //处理进站即进场的班次 | |
| 88 | + connectInSchTime(sch); | |
| 81 | 89 | |
| 82 | 90 | Map<String, Object> map = new HashMap<>(); |
| 83 | 91 | map.put("fn", "zhongDian"); |
| 84 | - map.put("t", schedule); | |
| 92 | + map.put("t", sch); | |
| 85 | 93 | map.put("nt", nextSch); |
| 86 | 94 | map.put("finish", finish); |
| 87 | 95 | map.put("dataStr", sdf.format(new Date())); |
| ... | ... | @@ -89,7 +97,7 @@ public class SendUtils{ |
| 89 | 97 | ObjectMapper mapper = new ObjectMapper(); |
| 90 | 98 | |
| 91 | 99 | try { |
| 92 | - socketHandler.sendMessageToLine(schedule.getXlBm(), mapper.writeValueAsString(map)); | |
| 100 | + socketHandler.sendMessageToLine(sch.getXlBm(), mapper.writeValueAsString(map)); | |
| 93 | 101 | } catch (Exception e) { |
| 94 | 102 | logger.error("", e); |
| 95 | 103 | } |
| ... | ... | @@ -141,5 +149,36 @@ public class SendUtils{ |
| 141 | 149 | refreshSch(list); |
| 142 | 150 | } |
| 143 | 151 | |
| 144 | - //public void sendReportOutTime(ScheduleRealInfo sch) | |
| 152 | + | |
| 153 | + //出站即出场 | |
| 154 | + public void connectOutSchTime(ScheduleRealInfo sch){ | |
| 155 | + try{ | |
| 156 | + ScheduleRealInfo twins = sch.getTwinsSch(); | |
| 157 | + if(twins != null | |
| 158 | + && lineConfigData.get(sch.getXlBm()).getOutConfig() == 2){ | |
| 159 | + | |
| 160 | + twins.setFcsjActualAll(sch.getFcsjActualTime()); | |
| 161 | + //刷新关联的出场班次 | |
| 162 | + refreshSch(twins); | |
| 163 | + } | |
| 164 | + }catch(Exception e){ | |
| 165 | + logger.error("", e); | |
| 166 | + } | |
| 167 | + } | |
| 168 | + | |
| 169 | + //进站即出场 | |
| 170 | + public void connectInSchTime(ScheduleRealInfo sch){ | |
| 171 | + try{ | |
| 172 | + ScheduleRealInfo twins = sch.getTwinsSch(); | |
| 173 | + if(twins != null | |
| 174 | + && lineConfigData.get(sch.getXlBm()).getOutConfig() == 2){ | |
| 175 | + | |
| 176 | + twins.setZdsjActualAll(sch.getZdsjActualTime()); | |
| 177 | + //刷新关联的出场班次 | |
| 178 | + refreshSch(twins); | |
| 179 | + } | |
| 180 | + }catch(Exception e){ | |
| 181 | + logger.error("", e); | |
| 182 | + } | |
| 183 | + } | |
| 145 | 184 | } | ... | ... |
src/main/resources/static/pages/control/lineConfig/config.html
| ... | ... | @@ -211,23 +211,14 @@ butto.line-config-btn:active{ |
| 211 | 211 | </div> |
| 212 | 212 | </section> |
| 213 | 213 | |
| 214 | - <!--<section> | |
| 215 | - <h3>出场时间</h3> | |
| 216 | - | |
| 217 | - <div class="settings-row" > | |
| 218 | - <p > 使用 <a href="javascript:;" data-type="select" id="outTimeType"></a> 作为出场班次的实际时间。</p> | |
| 219 | - </div> | |
| 220 | - </section> | |
| 221 | ---> | |
| 222 | -<!-- | |
| 223 | 214 | <section> |
| 224 | - <h3>进场时间</h3> | |
| 215 | + <h3>班次进出场时间</h3> | |
| 225 | 216 | |
| 226 | 217 | <div class="settings-row" > |
| 227 | - <p > 使用 <a href="javascript:;" data-type="select" id="inTimeType"></a> 作为进场班次的实际时间。</p> | |
| 218 | + <p > 使用 <a href="javascript:;" data-type="select" id="outTimeType"></a> 时间作为出场班次的实际时间。</p> | |
| 228 | 219 | </div> |
| 229 | 220 | </section> |
| 230 | ---> | |
| 221 | + | |
| 231 | 222 | </form> |
| 232 | 223 | </script> |
| 233 | 224 | |
| ... | ... | @@ -305,7 +296,6 @@ butto.line-config-btn:active{ |
| 305 | 296 | //运营开始时间 |
| 306 | 297 | $('#startOptTimeLink').editable({ |
| 307 | 298 | type: 'time', |
| 308 | - title:'修改线路运营开始时间', | |
| 309 | 299 | placement: 'right', |
| 310 | 300 | display: false, |
| 311 | 301 | validate: function(value){ |
| ... | ... | @@ -316,42 +306,41 @@ butto.line-config-btn:active{ |
| 316 | 306 | }) |
| 317 | 307 | .on('save', function(e, params) { |
| 318 | 308 | var index = showLoad('提交数据...'); |
| 319 | - var lineCode = $('.line_config_tree li.selected').data('code'); | |
| 320 | - $post('/lineConfig/editTime', {lineCode: lineCode, time: params.newValue} | |
| 309 | + $post('/lineConfig/editTime', {lineCode: getLineCode(), time: params.newValue} | |
| 321 | 310 | ,function(rs){ |
| 322 | 311 | layer.close(index); |
| 323 | 312 | $('#startOptTimeLink').text(rs.time); |
| 324 | 313 | }); |
| 325 | 314 | }); |
| 326 | 315 | |
| 327 | -/* //出场时间类型 | |
| 316 | + //进出场时间类型 | |
| 328 | 317 | $('#outTimeType').editable({ |
| 329 | 318 | value: conf.outConfig, |
| 330 | 319 | inputclass: 'form-control', |
| 331 | 320 | placement: 'right', |
| 332 | 321 | source: [{ |
| 333 | 322 | value: 0, |
| 334 | - text: '离开缓冲区时间' | |
| 323 | + text: 'gps出场' | |
| 335 | 324 | }, { |
| 336 | 325 | value: 1, |
| 337 | - text: '请求出场时间' | |
| 338 | - }] | |
| 339 | - }); | |
| 340 | - | |
| 341 | - //进场时间类型 | |
| 342 | - $('#inTimeType').editable({ | |
| 343 | - value: conf.inConfig, | |
| 344 | - inputclass: 'form-control', | |
| 345 | - placement: 'right', | |
| 346 | - source: [{ | |
| 347 | - value: 0, | |
| 348 | - text: '离开缓冲区时间' | |
| 326 | + text: '请求出场' | |
| 349 | 327 | }, { |
| 350 | - value: 1, | |
| 351 | - text: '请求进场时间' | |
| 328 | + value: 2, | |
| 329 | + text: '出站即出场' | |
| 352 | 330 | }] |
| 353 | - }); */ | |
| 354 | - | |
| 331 | + }) | |
| 332 | + .on('save', function(e, params) { | |
| 333 | + var index = showLoad('提交数据...'); | |
| 334 | + $post('/lineConfig/editOutTimeType', {lineCode: lineCode, type: params.newValue} | |
| 335 | + ,function(rs){ | |
| 336 | + layer.close(index); | |
| 337 | + $('#outTimeType').val(rs.type); | |
| 338 | + }); | |
| 339 | + }); | |
| 340 | + } | |
| 341 | + | |
| 342 | + function getLineCode(){ | |
| 343 | + return $('.line_config_tree li.selected').data('code'); | |
| 355 | 344 | } |
| 356 | 345 | }(); |
| 357 | 346 | </script> |
| 358 | 347 | \ No newline at end of file | ... | ... |