Commit 2e169c96f0c9680432c2c49159d86548a4c2cdd9

Authored by 潘钊
1 parent c667f4ec

update...

src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -488,7 +488,7 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
488 488 long t = new Date().getTime();
489 489 if(c != 1)
490 490 t -= ONE_DAY - (1000 * 60 * 60 * 2);
491   - for(int i = 0; i < 10; i ++){
  491 + for(int i = 0; i < 3; i ++){
492 492 rs.add(fmtyyyyMMdd.print(t));
493 493 t -= ONE_DAY;
494 494 }
... ...
src/main/java/com/bsth/data/gpsdata/GpsEntity.java
... ... @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
11 11 * @date 2016年5月11日 下午4:32:07
12 12 *
13 13 */
14   -public class GpsEntity {
  14 +public class GpsEntity implements Cloneable{
15 15  
16 16 /** 公司代码 */
17 17 private Short companyCode;
... ... @@ -98,6 +98,14 @@ public class GpsEntity {
98 98 */
99 99 private int source = -1;
100 100  
  101 + public Object clone() {
  102 + try {
  103 + return super.clone();
  104 + } catch (CloneNotSupportedException e) {
  105 + return null;
  106 + }
  107 + }
  108 +
101 109 public String getDeviceId() {
102 110 return deviceId;
103 111 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
... ... @@ -41,7 +41,7 @@ public class GpsRealAnalyse {
41 41 @Autowired
42 42 GpsRealData gpsRealData;
43 43  
44   - static ExecutorService threadPool = Executors.newFixedThreadPool(20);
  44 + static ExecutorService threadPool = Executors.newFixedThreadPool(25);
45 45  
46 46 public static long st;
47 47 public static CountDownLatch count;
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -90,6 +90,11 @@ public class InOutStationSignalHandle extends SignalHandle{
90 90 if(prev.getInstation() > 0 && gps.getInstation() > 0
91 91 && !prev.getStopNo().equals(gps.getStopNo()))
92 92 return true;
  93 +
  94 + //在被起点站覆盖的情况下出场
  95 + if(isOutPark(gps, prev)){
  96 + return true;
  97 + }
93 98 return false;
94 99 }
95 100  
... ... @@ -110,11 +115,15 @@ public class InOutStationSignalHandle extends SignalHandle{
110 115 if(prev.getInstation() == 2 && gps.getInstation() == 1){
111 116 return true;
112 117 }
  118 +
  119 + //被起点站覆盖的情况下进场
  120 + if(isInPark(gps, prev))
  121 + return true;
113 122 return false;
114 123 }
115 124  
116 125 /**
117   - * 出站
  126 + * 出站/出场
118 127 * @param gps 当前点
119 128 * @param prev 上一个点
120 129 */
... ... @@ -133,7 +142,9 @@ public class InOutStationSignalHandle extends SignalHandle{
133 142 return;
134 143  
135 144 //起点发车
136   - if(qdzCode != null && prev.getStopNo().equals(qdzCode)
  145 + if(qdzCode != null
  146 + && prev.getStopNo().equals(qdzCode)
  147 + && gps.getInstation()==0
137 148 && !willDepart(gps, prev, sch)){
138 149  
139 150 //发车班次匹配
... ... @@ -168,6 +179,21 @@ public class InOutStationSignalHandle extends SignalHandle{
168 179 logger.info("车辆:" + sch.getClZbh() + " 班次:" + sch.getDfsj() + "发车, 时间:" + sch.getFcsjActual());
169 180 }
170 181 else if(sch.getBcType().equals("out")){
  182 + //有出场动作(起点站覆盖停车场时,并且不设置出站既出场,逻辑可能会走到这里)
  183 + try{
  184 + if(isOutPark(gps, prev)){
  185 + if(prev.getCarparkNo().equals(sch.getQdzCode())){
  186 + //再试一下出场
  187 + GpsEntity prevClone = (GpsEntity) prev.clone(),
  188 + gpsClone = (GpsEntity) gps.clone();
  189 + prevClone.setStopNo(prevClone.getCarparkNo());
  190 + gpsClone.setInstation(0);
  191 + outStation(gpsClone, prevClone);
  192 + return;
  193 + }
  194 + }
  195 + }catch (Exception e){logger.error("",e);}
  196 +
171 197 ScheduleRealInfo next = dayOfSchedule.nextSame(sch);
172 198 //如果下一个班次是区间,并且是环线
173 199 if(next != null && next.getBcType().equals("region")){
... ... @@ -255,7 +281,8 @@ public class InOutStationSignalHandle extends SignalHandle{
255 281 private void inStation(GpsEntity gps, GpsEntity prev){
256 282 ScheduleRealInfo sch = dayOfSchedule.executeCurr(gps.getNbbm());
257 283  
258   - if(gps.getStopNo().equals(sch.getZdzCode())){
  284 + if(gps.getStopNo().equals(sch.getZdzCode())
  285 + && !gps.getStopNo().equals(prev.getStopNo())){
259 286  
260 287 int diff = 0;
261 288 try{
... ... @@ -336,6 +363,25 @@ public class InOutStationSignalHandle extends SignalHandle{
336 363 scheduleSignalState.signalRetrospect(gps, sch);
337 364 }
338 365 */
  366 + //被起点站覆盖的情况下进场,没有设置出站既是出场,逻辑会走到这里(模拟进站信号)
  367 + if(sch.getBcType().equals("in")){
  368 + try{
  369 + if(isInPark(gps, prev)){
  370 + if(gps.getCarparkNo().equals(sch.getZdzCode())){
  371 + //再试一下进场
  372 + GpsEntity gpsClone = (GpsEntity) gps.clone(),
  373 + prevClone = (GpsEntity) prev.clone();
  374 + gpsClone.setStopNo(gpsClone.getCarparkNo());
  375 + prevClone.setStopNo(null);
  376 + inStation(gpsClone, prevClone);
  377 + return;
  378 + }
  379 + }
  380 + }catch (Exception e){
  381 + logger.error("", e);
  382 + }
  383 + }
  384 +
339 385 //如果当前班次是出场,并且进的是下一个班次的终点
340 386 if(sch.getBcType().equals("out")){
341 387 ScheduleRealInfo next = dayOfSchedule.next(sch);
... ... @@ -447,4 +493,16 @@ public class InOutStationSignalHandle extends SignalHandle{
447 493 }*/
448 494 return false;
449 495 }
  496 +
  497 + private boolean isOutPark(GpsEntity gps, GpsEntity prve){
  498 + if(StringUtils.isNotEmpty(prve.getCarparkNo()) && StringUtils.isEmpty(gps.getCarparkNo()))
  499 + return true;
  500 + return false;
  501 + }
  502 +
  503 + private boolean isInPark(GpsEntity gps, GpsEntity prve){
  504 + if(StringUtils.isNotEmpty(gps.getCarparkNo()) && StringUtils.isEmpty(prve.getCarparkNo()))
  505 + return true;
  506 + return false;
  507 + }
450 508 }
451 509 \ No newline at end of file
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/StationInsideHandle.java
... ... @@ -25,6 +25,7 @@ public class StationInsideHandle extends SignalHandle {
25 25 if (parkCode != null) {
26 26 gps.setInstation(2);
27 27 gps.setStopNo(parkCode);
  28 + gps.setCarparkNo(parkCode);
28 29 }
29 30  
30 31 //是否在站内
... ...
src/main/java/com/bsth/data/gpsdata/recovery/GpsDataRecovery.java
... ... @@ -48,8 +48,8 @@ public class GpsDataRecovery implements ApplicationContextAware {
48 48 //按线路分组数据
49 49 ArrayListMultimap<String, GpsEntity> listMap = ArrayListMultimap.create();
50 50 for (GpsEntity gps : list) {
51   - if (gps.getLineId() != null)
52   - listMap.put(gps.getLineId(), gps);
  51 + if (gps.getNbbm() != null)
  52 + listMap.put(gps.getNbbm(), gps);
53 53 }
54 54  
55 55  
... ... @@ -57,10 +57,10 @@ public class GpsDataRecovery implements ApplicationContextAware {
57 57  
58 58 CountDownLatch count = new CountDownLatch(keys.size());
59 59 GpsComp comp = new GpsComp();
60   - for (String lineId : keys) {
61   - Collections.sort(listMap.get(lineId), comp);
62   - threadPool.execute(new RecoveryThread(listMap.get(lineId), count));
63   - /*if(nbbm.equals("W7E-016"))
  60 + for (String nbbm : keys) {
  61 + Collections.sort(listMap.get(nbbm), comp);
  62 + threadPool.execute(new RecoveryThread(listMap.get(nbbm), count));
  63 + /*if(nbbm.equals("W9H-088"))
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=194";// + dayOfYear;
  87 + String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=206";// + 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() >= 1495512240000L){
  156 + /*if(gps.getTimestamp() >= 1500942270000L){
157 157 System.out.println("debugger...");
158 158 }*/
159 159 //是否有任务
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -884,8 +884,12 @@ public class DayOfSchedule {
884 884 }
885 885  
886 886 public void addExecPlan(ScheduleRealInfo sch) {
887   - if (sch != null)
888   - carExecutePlanMap.put(sch.getClZbh(), sch);
  887 + if (sch != null){
  888 + if(sch.getStatus()==2)
  889 + reCalcExecPlan(sch.getClZbh());
  890 + else
  891 + carExecutePlanMap.put(sch.getClZbh(), sch);
  892 + }
889 893 else
890 894 carExecutePlanMap.remove(sch.getClZbh());
891 895 }
... ...
src/main/resources/static/real_control_v2/js/common.js
... ... @@ -232,8 +232,8 @@ var gb_common = (function () {
232 232 data.push({
233 233 value: name,
234 234 code: code,
235   - fullChars: pinyin.getFullChars(name).toLocaleLowerCase(),
236   - camelChars: pinyin.getCamelChars(name).toLocaleLowerCase()
  235 + fullChars: pinyin.getFullChars(name),
  236 + camelChars: pinyin.getCamelChars(name)
237 237 });
238 238 }
239 239 init_autocom_pinyin(element, data);
... ... @@ -271,7 +271,7 @@ var gb_common = (function () {
271 271 minLength: 1,
272 272 delay: 50,
273 273 source: function (release) {
274   - var q = $('input', element).val().toLocaleLowerCase(),
  274 + var q = $('input', element).val().toUpperCase(),
275 275 rs = [],
276 276 count = 0;
277 277  
... ... @@ -295,7 +295,7 @@ var gb_common = (function () {
295 295 minLength: 1,
296 296 delay: 50,
297 297 source: function (release) {
298   - var q = $('input', element).val().toLocaleLowerCase(),
  298 + var q = $('input', element).val().toUpperCase(),
299 299 rs = [],
300 300 count = 0;
301 301  
... ...
src/main/resources/static/real_control_v2/js/data/data_basic.js
... ... @@ -63,8 +63,8 @@ var gb_data_basic = (function () {
63 63 code = p['workId'].indexOf('-')!=-1?p['workId'].split('-')[1]:p['workId'];
64 64 data.push({
65 65 value: code + '/' + p.name,
66   - fullChars: p.fullChars,
67   - camelChars: p.camelChars
  66 + fullChars: p.fullChars.toUpperCase(),
  67 + camelChars: p.camelChars.toUpperCase()
68 68 });
69 69 }
70 70 cb && cb(data);
... ...