Commit 917b329b00d1d98d916093f306b962b1badd30e3
Merge branch 'minhang' of
http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
8 changed files
with
57 additions
and
28 deletions
src/main/java/com/bsth/controller/realcontrol/BasicDataController.java
| @@ -131,7 +131,7 @@ public class BasicDataController { | @@ -131,7 +131,7 @@ public class BasicDataController { | ||
| 131 | */ | 131 | */ |
| 132 | @RequestMapping("/nbbm2PlateNo") | 132 | @RequestMapping("/nbbm2PlateNo") |
| 133 | public Map<String, String> nbbm2PlateNo(){ | 133 | public Map<String, String> nbbm2PlateNo(){ |
| 134 | - return basicData.getNbbm2PlateNo(); | 134 | + return basicData.nbbmCompanyPlateMap; |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | 137 |
src/main/java/com/bsth/data/BasicData.java
| @@ -12,7 +12,6 @@ import org.apache.commons.lang3.StringUtils; | @@ -12,7 +12,6 @@ import org.apache.commons.lang3.StringUtils; | ||
| 12 | import org.slf4j.Logger; | 12 | import org.slf4j.Logger; |
| 13 | import org.slf4j.LoggerFactory; | 13 | import org.slf4j.LoggerFactory; |
| 14 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 15 | -import org.springframework.jdbc.core.JdbcTemplate; | ||
| 16 | import org.springframework.stereotype.Component; | 15 | import org.springframework.stereotype.Component; |
| 17 | 16 | ||
| 18 | import java.util.*; | 17 | import java.util.*; |
| @@ -82,7 +81,7 @@ public class BasicData { | @@ -82,7 +81,7 @@ public class BasicData { | ||
| 82 | return name != null? name: stationCode2NameMap.get(prefix + code); | 81 | return name != null? name: stationCode2NameMap.get(prefix + code); |
| 83 | } | 82 | } |
| 84 | 83 | ||
| 85 | - @Autowired | 84 | +/* @Autowired |
| 86 | JdbcTemplate jdbcTemplate; | 85 | JdbcTemplate jdbcTemplate; |
| 87 | public Map<String, String> getNbbm2PlateNo(){ | 86 | public Map<String, String> getNbbm2PlateNo(){ |
| 88 | List<Map<String, Object>> list = jdbcTemplate.queryForList("select CAR_CODE,CAR_PLATE from bsth_c_cars where CAR_CODE is not null and CAR_PLATE is not null"); | 87 | List<Map<String, Object>> list = jdbcTemplate.queryForList("select CAR_CODE,CAR_PLATE from bsth_c_cars where CAR_CODE is not null and CAR_PLATE is not null"); |
| @@ -92,7 +91,7 @@ public class BasicData { | @@ -92,7 +91,7 @@ public class BasicData { | ||
| 92 | rs.put(map.get("CAR_CODE").toString(), map.get("CAR_PLATE").toString()); | 91 | rs.put(map.get("CAR_CODE").toString(), map.get("CAR_PLATE").toString()); |
| 93 | } | 92 | } |
| 94 | return rs; | 93 | return rs; |
| 95 | - } | 94 | + }*/ |
| 96 | 95 | ||
| 97 | @Component | 96 | @Component |
| 98 | public static class BasicDataLoader extends Thread { | 97 | public static class BasicDataLoader extends Thread { |
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
| @@ -206,8 +206,8 @@ public class InOutStationSignalHandle extends SignalHandle{ | @@ -206,8 +206,8 @@ public class InOutStationSignalHandle extends SignalHandle{ | ||
| 206 | } | 206 | } |
| 207 | if(next != null && prev.getStopNo().equals(next.getQdzCode())){ | 207 | if(next != null && prev.getStopNo().equals(next.getQdzCode())){ |
| 208 | //发下一个班次 | 208 | //发下一个班次 |
| 209 | - dayOfSchedule.addExecPlan(next); | ||
| 210 | - outStation(gps, prev); | 209 | + if(dayOfSchedule.addExecPlan(next)) |
| 210 | + outStation(gps, prev); | ||
| 211 | } | 211 | } |
| 212 | } | 212 | } |
| 213 | //当前班次是区间 | 213 | //当前班次是区间 |
| @@ -219,8 +219,8 @@ public class InOutStationSignalHandle extends SignalHandle{ | @@ -219,8 +219,8 @@ public class InOutStationSignalHandle extends SignalHandle{ | ||
| 219 | //是环线 | 219 | //是环线 |
| 220 | if(prev.getStopNo().equals(next.getQdzCode())){ | 220 | if(prev.getStopNo().equals(next.getQdzCode())){ |
| 221 | //发下一个班次 | 221 | //发下一个班次 |
| 222 | - dayOfSchedule.addExecPlan(next); | ||
| 223 | - outStation(gps, prev); | 222 | + if(dayOfSchedule.addExecPlan(next)) |
| 223 | + outStation(gps, prev); | ||
| 224 | } | 224 | } |
| 225 | } | 225 | } |
| 226 | } | 226 | } |
| @@ -260,7 +260,7 @@ public class InOutStationSignalHandle extends SignalHandle{ | @@ -260,7 +260,7 @@ public class InOutStationSignalHandle extends SignalHandle{ | ||
| 260 | if (config != null && config.getOutConfig() == 2) { | 260 | if (config != null && config.getOutConfig() == 2) { |
| 261 | //出站既出场 | 261 | //出站既出场 |
| 262 | ScheduleRealInfo schPrev = dayOfSchedule.prev(sch); | 262 | ScheduleRealInfo schPrev = dayOfSchedule.prev(sch); |
| 263 | - if (schPrev != null && schPrev.getBcType().equals("out") && (schPrev.getBcsj()==0 || schPrev.getJhlcOrig().equals(0)) | 263 | + if (schPrev != null && schPrev.getBcType().equals("out") && (schPrev.getBcsj()==0 || schPrev.getJhlcOrig().intValue()==0) |
| 264 | && (!limitPark || park.equals(schPrev.getQdzCode()))) { | 264 | && (!limitPark || park.equals(schPrev.getQdzCode()))) { |
| 265 | 265 | ||
| 266 | schPrev.setFcsjActualAll(sch.getFcsjActualTime()); | 266 | schPrev.setFcsjActualAll(sch.getFcsjActualTime()); |
| @@ -402,9 +402,8 @@ public class InOutStationSignalHandle extends SignalHandle{ | @@ -402,9 +402,8 @@ public class InOutStationSignalHandle extends SignalHandle{ | ||
| 402 | 402 | ||
| 403 | if(nearSch != null){ | 403 | if(nearSch != null){ |
| 404 | //直接跳到这个班次 | 404 | //直接跳到这个班次 |
| 405 | - dayOfSchedule.addExecPlan(nearSch); | ||
| 406 | - //重新进站 | ||
| 407 | - inStation(gps, prev); | 405 | + if(dayOfSchedule.addExecPlan(nearSch)) |
| 406 | + inStation(gps, prev);//重新进站 | ||
| 408 | } | 407 | } |
| 409 | } | 408 | } |
| 410 | } | 409 | } |
| @@ -429,7 +428,7 @@ public class InOutStationSignalHandle extends SignalHandle{ | @@ -429,7 +428,7 @@ public class InOutStationSignalHandle extends SignalHandle{ | ||
| 429 | String stopId = gps.getStopNo(); | 428 | String stopId = gps.getStopNo(); |
| 430 | for(int i = 0; i < halfList.size(); i ++){ | 429 | for(int i = 0; i < halfList.size(); i ++){ |
| 431 | sch = halfList.get(i); | 430 | sch = halfList.get(i); |
| 432 | - if(!sch.getZdzCode().equals(stopId)) | 431 | + if(!sch.getZdzCode().equals(stopId) || sch.getStatus()==2) |
| 433 | continue; | 432 | continue; |
| 434 | 433 | ||
| 435 | if(sch.getZdsjT() < gps.getTimestamp()) | 434 | if(sch.getZdsjT() < gps.getTimestamp()) |
src/main/java/com/bsth/data/gpsdata/arrival/utils/SignalSchPlanMatcher.java
| @@ -69,8 +69,8 @@ public class SignalSchPlanMatcher { | @@ -69,8 +69,8 @@ public class SignalSchPlanMatcher { | ||
| 69 | double s = (int) (next.getDfsjT() - sch.getDfsjT()); | 69 | double s = (int) (next.getDfsjT() - sch.getDfsjT()); |
| 70 | double r = (int) (t - sch.getDfsjT()); | 70 | double r = (int) (t - sch.getDfsjT()); |
| 71 | if(r / s > 0.7){ | 71 | if(r / s > 0.7){ |
| 72 | - dayOfSchedule.addExecPlan(next); | ||
| 73 | - outMatch(outSigal, next); | 72 | + if(dayOfSchedule.addExecPlan(next)) |
| 73 | + outMatch(outSigal, next); | ||
| 74 | } | 74 | } |
| 75 | } | 75 | } |
| 76 | 76 |
src/main/java/com/bsth/data/gpsdata/recovery/GpsDataRecovery.java
| @@ -60,7 +60,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | @@ -60,7 +60,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | ||
| 60 | for (String nbbm : keys) { | 60 | for (String nbbm : keys) { |
| 61 | Collections.sort(listMap.get(nbbm), comp); | 61 | Collections.sort(listMap.get(nbbm), comp); |
| 62 | threadPool.execute(new RecoveryThread(listMap.get(nbbm), count)); | 62 | threadPool.execute(new RecoveryThread(listMap.get(nbbm), count)); |
| 63 | - /*if(nbbm.equals("W09-164")) | 63 | + /*if(nbbm.equals("S0K-004")) |
| 64 | new RecoveryThread(listMap.get(nbbm), count).run();*/ | 64 | new RecoveryThread(listMap.get(nbbm), count).run();*/ |
| 65 | /*if(lineId.equals("60028")) | 65 | /*if(lineId.equals("60028")) |
| 66 | new RecoveryThread(listMap.get(lineId), count).run();*/ | 66 | new RecoveryThread(listMap.get(lineId), count).run();*/ |
| @@ -84,7 +84,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | @@ -84,7 +84,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | ||
| 84 | Calendar calendar = Calendar.getInstance(); | 84 | Calendar calendar = Calendar.getInstance(); |
| 85 | int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); | 85 | int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); |
| 86 | 86 | ||
| 87 | - String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=241";// + dayOfYear; | 87 | + String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=246";// + dayOfYear; |
| 88 | JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource()); | 88 | JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource()); |
| 89 | 89 | ||
| 90 | List<GpsEntity> list = | 90 | List<GpsEntity> list = |
| @@ -153,7 +153,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | @@ -153,7 +153,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | ||
| 153 | boolean task; | 153 | boolean task; |
| 154 | for (GpsEntity gps : list) { | 154 | for (GpsEntity gps : list) { |
| 155 | try { | 155 | try { |
| 156 | - /*if(gps.getTimestamp() >= 1503960000000L){ | 156 | + /*if(gps.getTimestamp() >= 1504298280000L){ |
| 157 | System.out.println("debugger..."); | 157 | System.out.println("debugger..."); |
| 158 | }*/ | 158 | }*/ |
| 159 | //是否有任务 | 159 | //是否有任务 |
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| @@ -592,7 +592,7 @@ public class DayOfSchedule { | @@ -592,7 +592,7 @@ public class DayOfSchedule { | ||
| 592 | * @param sch 当前班次 | 592 | * @param sch 当前班次 |
| 593 | * @return | 593 | * @return |
| 594 | */ | 594 | */ |
| 595 | - private ScheduleRealInfo next2(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) { | 595 | + private ScheduleRealInfo next2_lp(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) { |
| 596 | int outConfig = -1; | 596 | int outConfig = -1; |
| 597 | LineConfig config = lineConfigData.get(sch.getXlBm()); | 597 | LineConfig config = lineConfigData.get(sch.getXlBm()); |
| 598 | if (config != null) | 598 | if (config != null) |
| @@ -605,8 +605,35 @@ public class DayOfSchedule { | @@ -605,8 +605,35 @@ public class DayOfSchedule { | ||
| 605 | flag = true; | 605 | flag = true; |
| 606 | continue; | 606 | continue; |
| 607 | } | 607 | } |
| 608 | - //忽略烂班 | ||
| 609 | - if (temp.isDestroy()) | 608 | + |
| 609 | + if (flag) { | ||
| 610 | + next = temp; | ||
| 611 | + break; | ||
| 612 | + } | ||
| 613 | + } | ||
| 614 | + return next; | ||
| 615 | + } | ||
| 616 | + | ||
| 617 | + private ScheduleRealInfo next3_lp(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) { | ||
| 618 | + int outConfig = -1; | ||
| 619 | + LineConfig config = lineConfigData.get(sch.getXlBm()); | ||
| 620 | + if (config != null) | ||
| 621 | + outConfig = config.getOutConfig(); | ||
| 622 | + | ||
| 623 | + //限定出站既出场的停车场 | ||
| 624 | + String park = config.getTwinsPark(); | ||
| 625 | + boolean limitPark = StringUtils.isNotEmpty(park); | ||
| 626 | + boolean flag = false; | ||
| 627 | + ScheduleRealInfo next = null; | ||
| 628 | + for (ScheduleRealInfo temp : list) { | ||
| 629 | + if (temp.getId() == sch.getId()) { | ||
| 630 | + flag = true; | ||
| 631 | + continue; | ||
| 632 | + } | ||
| 633 | + | ||
| 634 | + //出站既出场,忽略出场班次 | ||
| 635 | + if (outConfig == 2 && temp.getBcType().equals("out") && (temp.getBcsj()==0 || temp.getJhlcOrig().equals(0)) | ||
| 636 | + && (!limitPark || park.equals(temp.getQdzCode()))) | ||
| 610 | continue; | 637 | continue; |
| 611 | 638 | ||
| 612 | if (flag) { | 639 | if (flag) { |
| @@ -885,7 +912,8 @@ public class DayOfSchedule { | @@ -885,7 +912,8 @@ public class DayOfSchedule { | ||
| 885 | return nbbmScheduleMap.values(); | 912 | return nbbmScheduleMap.values(); |
| 886 | } | 913 | } |
| 887 | 914 | ||
| 888 | - public void addExecPlan(ScheduleRealInfo sch) { | 915 | + public boolean addExecPlan(ScheduleRealInfo sch) { |
| 916 | + ScheduleRealInfo oldExec = executeCurr(sch.getClZbh()); | ||
| 889 | if (sch != null){ | 917 | if (sch != null){ |
| 890 | if(sch.getStatus()==2) | 918 | if(sch.getStatus()==2) |
| 891 | reCalcExecPlan(sch.getClZbh()); | 919 | reCalcExecPlan(sch.getClZbh()); |
| @@ -894,6 +922,8 @@ public class DayOfSchedule { | @@ -894,6 +922,8 @@ public class DayOfSchedule { | ||
| 894 | } | 922 | } |
| 895 | else | 923 | else |
| 896 | carExecutePlanMap.remove(sch.getClZbh()); | 924 | carExecutePlanMap.remove(sch.getClZbh()); |
| 925 | + | ||
| 926 | + return executeCurr(sch.getClZbh()) != oldExec; | ||
| 897 | } | 927 | } |
| 898 | 928 | ||
| 899 | public void removeExecPlan(String clzbh) { | 929 | public void removeExecPlan(String clzbh) { |
| @@ -950,6 +980,7 @@ public class DayOfSchedule { | @@ -950,6 +980,7 @@ public class DayOfSchedule { | ||
| 950 | } | 980 | } |
| 951 | 981 | ||
| 952 | public void reCalcExecPlan(String nbbm) { | 982 | public void reCalcExecPlan(String nbbm) { |
| 983 | + logger.info("reCalcExecPlan...: " + nbbm); | ||
| 953 | List<ScheduleRealInfo> list = nbbmScheduleMap.get(nbbm); | 984 | List<ScheduleRealInfo> list = nbbmScheduleMap.get(nbbm); |
| 954 | Collections.sort(list, schFCSJComparator); | 985 | Collections.sort(list, schFCSJComparator); |
| 955 | 986 | ||
| @@ -1121,7 +1152,7 @@ public class DayOfSchedule { | @@ -1121,7 +1152,7 @@ public class DayOfSchedule { | ||
| 1121 | public ScheduleRealInfo nextByLp(ScheduleRealInfo sch) { | 1152 | public ScheduleRealInfo nextByLp(ScheduleRealInfo sch) { |
| 1122 | List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName()); | 1153 | List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName()); |
| 1123 | Collections.sort(list, schFCSJComparator); | 1154 | Collections.sort(list, schFCSJComparator); |
| 1124 | - return next(list, sch); | 1155 | + return next3_lp(list, sch); |
| 1125 | } | 1156 | } |
| 1126 | 1157 | ||
| 1127 | /** | 1158 | /** |
| @@ -1133,7 +1164,7 @@ public class DayOfSchedule { | @@ -1133,7 +1164,7 @@ public class DayOfSchedule { | ||
| 1133 | public ScheduleRealInfo nextByLp2(ScheduleRealInfo sch) { | 1164 | public ScheduleRealInfo nextByLp2(ScheduleRealInfo sch) { |
| 1134 | List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName()); | 1165 | List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName()); |
| 1135 | Collections.sort(list, schFCSJComparator); | 1166 | Collections.sort(list, schFCSJComparator); |
| 1136 | - return next2(list, sch); | 1167 | + return next2_lp(list, sch); |
| 1137 | } | 1168 | } |
| 1138 | 1169 | ||
| 1139 | public ArrayListMultimap<String, ScheduleRealInfo> getLpScheduleMap() { | 1170 | public ArrayListMultimap<String, ScheduleRealInfo> getLpScheduleMap() { |
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
| @@ -223,7 +223,7 @@ public class ScheduleRealInfo { | @@ -223,7 +223,7 @@ public class ScheduleRealInfo { | ||
| 223 | * 2:到站漂移 | 223 | * 2:到站漂移 |
| 224 | * 3:中途漂移 | 224 | * 3:中途漂移 |
| 225 | */ | 225 | */ |
| 226 | - private int driftStatus = 0; | 226 | + private Integer driftStatus = 0; |
| 227 | 227 | ||
| 228 | public boolean isDfAuto() { | 228 | public boolean isDfAuto() { |
| 229 | return dfAuto; | 229 | return dfAuto; |
| @@ -942,11 +942,11 @@ public class ScheduleRealInfo { | @@ -942,11 +942,11 @@ public class ScheduleRealInfo { | ||
| 942 | this.siginCompate = siginCompate; | 942 | this.siginCompate = siginCompate; |
| 943 | } | 943 | } |
| 944 | 944 | ||
| 945 | - public int getDriftStatus() { | 945 | + public Integer getDriftStatus() { |
| 946 | return driftStatus; | 946 | return driftStatus; |
| 947 | } | 947 | } |
| 948 | 948 | ||
| 949 | - public void setDriftStatus(int driftStatus) { | 949 | + public void setDriftStatus(Integer driftStatus) { |
| 950 | this.driftStatus = driftStatus; | 950 | this.driftStatus = driftStatus; |
| 951 | } | 951 | } |
| 952 | } | 952 | } |
src/main/resources/application-prod.properties
| @@ -2,7 +2,7 @@ server.port=9088 | @@ -2,7 +2,7 @@ server.port=9088 | ||
| 2 | management.port= 9001 | 2 | management.port= 9001 |
| 3 | management.address= 127.0.0.1 | 3 | management.address= 127.0.0.1 |
| 4 | 4 | ||
| 5 | -spring.jpa.hibernate.ddl-auto= update | 5 | +spring.jpa.hibernate.ddl-auto= none |
| 6 | spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy | 6 | spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy |
| 7 | #DATABASE | 7 | #DATABASE |
| 8 | spring.jpa.database= MYSQL | 8 | spring.jpa.database= MYSQL |