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
src/main/java/com/bsth/data/BasicData.java
| ... | ... | @@ -12,7 +12,6 @@ import org.apache.commons.lang3.StringUtils; |
| 12 | 12 | import org.slf4j.Logger; |
| 13 | 13 | import org.slf4j.LoggerFactory; |
| 14 | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 15 | -import org.springframework.jdbc.core.JdbcTemplate; | |
| 16 | 15 | import org.springframework.stereotype.Component; |
| 17 | 16 | |
| 18 | 17 | import java.util.*; |
| ... | ... | @@ -82,7 +81,7 @@ public class BasicData { |
| 82 | 81 | return name != null? name: stationCode2NameMap.get(prefix + code); |
| 83 | 82 | } |
| 84 | 83 | |
| 85 | - @Autowired | |
| 84 | +/* @Autowired | |
| 86 | 85 | JdbcTemplate jdbcTemplate; |
| 87 | 86 | public Map<String, String> getNbbm2PlateNo(){ |
| 88 | 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 | 91 | rs.put(map.get("CAR_CODE").toString(), map.get("CAR_PLATE").toString()); |
| 93 | 92 | } |
| 94 | 93 | return rs; |
| 95 | - } | |
| 94 | + }*/ | |
| 96 | 95 | |
| 97 | 96 | @Component |
| 98 | 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 | 206 | } |
| 207 | 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 | 219 | //是环线 |
| 220 | 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 | 260 | if (config != null && config.getOutConfig() == 2) { |
| 261 | 261 | //出站既出场 |
| 262 | 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 | 264 | && (!limitPark || park.equals(schPrev.getQdzCode()))) { |
| 265 | 265 | |
| 266 | 266 | schPrev.setFcsjActualAll(sch.getFcsjActualTime()); |
| ... | ... | @@ -402,9 +402,8 @@ public class InOutStationSignalHandle extends SignalHandle{ |
| 402 | 402 | |
| 403 | 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 | 428 | String stopId = gps.getStopNo(); |
| 430 | 429 | for(int i = 0; i < halfList.size(); i ++){ |
| 431 | 430 | sch = halfList.get(i); |
| 432 | - if(!sch.getZdzCode().equals(stopId)) | |
| 431 | + if(!sch.getZdzCode().equals(stopId) || sch.getStatus()==2) | |
| 433 | 432 | continue; |
| 434 | 433 | |
| 435 | 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 | 69 | double s = (int) (next.getDfsjT() - sch.getDfsjT()); |
| 70 | 70 | double r = (int) (t - sch.getDfsjT()); |
| 71 | 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 | 60 | for (String nbbm : keys) { |
| 61 | 61 | Collections.sort(listMap.get(nbbm), comp); |
| 62 | 62 | threadPool.execute(new RecoveryThread(listMap.get(nbbm), count)); |
| 63 | - /*if(nbbm.equals("W09-164")) | |
| 63 | + /*if(nbbm.equals("S0K-004")) | |
| 64 | 64 | new RecoveryThread(listMap.get(nbbm), count).run();*/ |
| 65 | 65 | /*if(lineId.equals("60028")) |
| 66 | 66 | new RecoveryThread(listMap.get(lineId), count).run();*/ |
| ... | ... | @@ -84,7 +84,7 @@ public class GpsDataRecovery implements ApplicationContextAware { |
| 84 | 84 | Calendar calendar = Calendar.getInstance(); |
| 85 | 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 | 88 | JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource()); |
| 89 | 89 | |
| 90 | 90 | List<GpsEntity> list = |
| ... | ... | @@ -153,7 +153,7 @@ public class GpsDataRecovery implements ApplicationContextAware { |
| 153 | 153 | boolean task; |
| 154 | 154 | for (GpsEntity gps : list) { |
| 155 | 155 | try { |
| 156 | - /*if(gps.getTimestamp() >= 1503960000000L){ | |
| 156 | + /*if(gps.getTimestamp() >= 1504298280000L){ | |
| 157 | 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 | 592 | * @param sch 当前班次 |
| 593 | 593 | * @return |
| 594 | 594 | */ |
| 595 | - private ScheduleRealInfo next2(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) { | |
| 595 | + private ScheduleRealInfo next2_lp(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) { | |
| 596 | 596 | int outConfig = -1; |
| 597 | 597 | LineConfig config = lineConfigData.get(sch.getXlBm()); |
| 598 | 598 | if (config != null) |
| ... | ... | @@ -605,8 +605,35 @@ public class DayOfSchedule { |
| 605 | 605 | flag = true; |
| 606 | 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 | 637 | continue; |
| 611 | 638 | |
| 612 | 639 | if (flag) { |
| ... | ... | @@ -885,7 +912,8 @@ public class DayOfSchedule { |
| 885 | 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 | 917 | if (sch != null){ |
| 890 | 918 | if(sch.getStatus()==2) |
| 891 | 919 | reCalcExecPlan(sch.getClZbh()); |
| ... | ... | @@ -894,6 +922,8 @@ public class DayOfSchedule { |
| 894 | 922 | } |
| 895 | 923 | else |
| 896 | 924 | carExecutePlanMap.remove(sch.getClZbh()); |
| 925 | + | |
| 926 | + return executeCurr(sch.getClZbh()) != oldExec; | |
| 897 | 927 | } |
| 898 | 928 | |
| 899 | 929 | public void removeExecPlan(String clzbh) { |
| ... | ... | @@ -950,6 +980,7 @@ public class DayOfSchedule { |
| 950 | 980 | } |
| 951 | 981 | |
| 952 | 982 | public void reCalcExecPlan(String nbbm) { |
| 983 | + logger.info("reCalcExecPlan...: " + nbbm); | |
| 953 | 984 | List<ScheduleRealInfo> list = nbbmScheduleMap.get(nbbm); |
| 954 | 985 | Collections.sort(list, schFCSJComparator); |
| 955 | 986 | |
| ... | ... | @@ -1121,7 +1152,7 @@ public class DayOfSchedule { |
| 1121 | 1152 | public ScheduleRealInfo nextByLp(ScheduleRealInfo sch) { |
| 1122 | 1153 | List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName()); |
| 1123 | 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 | 1164 | public ScheduleRealInfo nextByLp2(ScheduleRealInfo sch) { |
| 1134 | 1165 | List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName()); |
| 1135 | 1166 | Collections.sort(list, schFCSJComparator); |
| 1136 | - return next2(list, sch); | |
| 1167 | + return next2_lp(list, sch); | |
| 1137 | 1168 | } |
| 1138 | 1169 | |
| 1139 | 1170 | public ArrayListMultimap<String, ScheduleRealInfo> getLpScheduleMap() { | ... | ... |
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
| ... | ... | @@ -223,7 +223,7 @@ public class ScheduleRealInfo { |
| 223 | 223 | * 2:到站漂移 |
| 224 | 224 | * 3:中途漂移 |
| 225 | 225 | */ |
| 226 | - private int driftStatus = 0; | |
| 226 | + private Integer driftStatus = 0; | |
| 227 | 227 | |
| 228 | 228 | public boolean isDfAuto() { |
| 229 | 229 | return dfAuto; |
| ... | ... | @@ -942,11 +942,11 @@ public class ScheduleRealInfo { |
| 942 | 942 | this.siginCompate = siginCompate; |
| 943 | 943 | } |
| 944 | 944 | |
| 945 | - public int getDriftStatus() { | |
| 945 | + public Integer getDriftStatus() { | |
| 946 | 946 | return driftStatus; |
| 947 | 947 | } |
| 948 | 948 | |
| 949 | - public void setDriftStatus(int driftStatus) { | |
| 949 | + public void setDriftStatus(Integer driftStatus) { | |
| 950 | 950 | this.driftStatus = driftStatus; |
| 951 | 951 | } |
| 952 | 952 | } | ... | ... |
src/main/resources/application-prod.properties
| ... | ... | @@ -2,7 +2,7 @@ server.port=9088 |
| 2 | 2 | management.port= 9001 |
| 3 | 3 | management.address= 127.0.0.1 |
| 4 | 4 | |
| 5 | -spring.jpa.hibernate.ddl-auto= update | |
| 5 | +spring.jpa.hibernate.ddl-auto= none | |
| 6 | 6 | spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy |
| 7 | 7 | #DATABASE |
| 8 | 8 | spring.jpa.database= MYSQL | ... | ... |