Commit 917b329b00d1d98d916093f306b962b1badd30e3

Authored by 廖磊
2 parents 0c40bf1d bf1ff552

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
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