Commit 5e7056814d173a1c7c2344f108c5d34a639f92fb

Authored by 廖磊
2 parents e7f80413 69aab057

Merge branch 'pudong' of http://222.66.0.204:8090/panzhaov5/bsth_control

into pudong
src/main/java/com/bsth/XDApplication.java
@@ -131,14 +131,14 @@ public class XDApplication implements CommandLineRunner { @@ -131,14 +131,14 @@ public class XDApplication implements CommandLineRunner {
131 ScheduledExecutorService sexec = Application.mainServices; 131 ScheduledExecutorService sexec = Application.mainServices;
132 132
133 /** 线调业务 */ 133 /** 线调业务 */
134 - sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);//班次更新线程 134 + sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程
135 sexec.scheduleWithFixedDelay(scheduleLateThread, 70, 30, TimeUnit.SECONDS);//检查班次误点 135 sexec.scheduleWithFixedDelay(scheduleLateThread, 70, 30, TimeUnit.SECONDS);//检查班次误点
136 sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据 136 sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据
137 137
138 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线 138 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线
139 sexec.scheduleWithFixedDelay(schedulePstThread, 120, 10, TimeUnit.SECONDS);//班次延迟入库线程 139 sexec.scheduleWithFixedDelay(schedulePstThread, 120, 10, TimeUnit.SECONDS);//班次延迟入库线程
140 sexec.scheduleWithFixedDelay(seiPstThread, 160, 60, TimeUnit.SECONDS);//班次修正日志入库 140 sexec.scheduleWithFixedDelay(seiPstThread, 160, 60, TimeUnit.SECONDS);//班次修正日志入库
141 - sexec.scheduleWithFixedDelay(directivesPstThread, 180, 100, TimeUnit.SECONDS);//调度指令延迟入库 141 + sexec.scheduleWithFixedDelay(directivesPstThread, 180, 120, TimeUnit.SECONDS);//调度指令延迟入库
142 sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);//线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作) 142 sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);//线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
143 sexec.scheduleWithFixedDelay(sampleTimeDataLoader, 140, 120 * 60, TimeUnit.SECONDS);//到离站预测需要的站点间耗时数据 143 sexec.scheduleWithFixedDelay(sampleTimeDataLoader, 140, 120 * 60, TimeUnit.SECONDS);//到离站预测需要的站点间耗时数据
144 sexec.scheduleWithFixedDelay(basicDataLoader, 2, 2, TimeUnit.HOURS);//基础数据更新 144 sexec.scheduleWithFixedDelay(basicDataLoader, 2, 2, TimeUnit.HOURS);//基础数据更新
src/main/java/com/bsth/data/forecast/ArrivalDataLoader.java
@@ -3,7 +3,6 @@ package com.bsth.data.forecast; @@ -3,7 +3,6 @@ package com.bsth.data.forecast;
3 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
4 import com.bsth.data.LineConfigData; 4 import com.bsth.data.LineConfigData;
5 import com.bsth.data.forecast.entity.ArrivalEntity; 5 import com.bsth.data.forecast.entity.ArrivalEntity;
6 -import com.bsth.entity.realcontrol.LineConfig;  
7 import com.bsth.util.db.DBUtils_MS; 6 import com.bsth.util.db.DBUtils_MS;
8 import org.slf4j.Logger; 7 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
@@ -16,7 +15,6 @@ import java.sql.ResultSet; @@ -16,7 +15,6 @@ import java.sql.ResultSet;
16 import java.sql.SQLException; 15 import java.sql.SQLException;
17 import java.util.ArrayList; 16 import java.util.ArrayList;
18 import java.util.Calendar; 17 import java.util.Calendar;
19 -import java.util.Collection;  
20 import java.util.List; 18 import java.util.List;
21 19
22 /** 20 /**
@@ -43,7 +41,7 @@ public class ArrivalDataLoader { @@ -43,7 +41,7 @@ public class ArrivalDataLoader {
43 * 41 *
44 * @Title: load 42 * @Title: load
45 * @Description: TODO(根据上次加载时间,查询之后的增量数据) 43 * @Description: TODO(根据上次加载时间,查询之后的增量数据)
46 - */ 44 +
47 public List<ArrivalEntity> load(){ 45 public List<ArrivalEntity> load(){
48 List<ArrivalEntity> list = null; 46 List<ArrivalEntity> list = null;
49 47
@@ -79,13 +77,13 @@ public class ArrivalDataLoader { @@ -79,13 +77,13 @@ public class ArrivalDataLoader {
79 } 77 }
80 } 78 }
81 return list; 79 return list;
82 - } 80 + }*/
83 81
84 /** 82 /**
85 * 83 *
86 * @Title: recovery 84 * @Title: recovery
87 * @Description: TODO(从数据库恢复数据,按照线路的开始运营时间恢复) 85 * @Description: TODO(从数据库恢复数据,按照线路的开始运营时间恢复)
88 - */ 86 +
89 public List<ArrivalEntity> recovery(){ 87 public List<ArrivalEntity> recovery(){
90 Collection<LineConfig> confs = lineConfigData.getAll(); 88 Collection<LineConfig> confs = lineConfigData.getAll();
91 long t = System.currentTimeMillis() 89 long t = System.currentTimeMillis()
@@ -105,7 +103,7 @@ public class ArrivalDataLoader { @@ -105,7 +103,7 @@ public class ArrivalDataLoader {
105 103
106 prveLoadTime = t; 104 prveLoadTime = t;
107 return all; 105 return all;
108 - } 106 + }*/
109 107
110 /** 108 /**
111 * 109 *
src/main/java/com/bsth/data/gpsdata/arrival/GpsRealAnalyse.java
@@ -41,7 +41,7 @@ public class GpsRealAnalyse { @@ -41,7 +41,7 @@ public class GpsRealAnalyse {
41 @Autowired 41 @Autowired
42 GpsRealData gpsRealData; 42 GpsRealData gpsRealData;
43 43
44 - final static int POOL_SIZE = 30; 44 + final static int POOL_SIZE = 25;
45 static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1); 45 static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1);
46 46
47 public static long st; 47 public static long st;
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -14,7 +14,6 @@ import com.bsth.entity.schedule.SchedulePlanInfo; @@ -14,7 +14,6 @@ import com.bsth.entity.schedule.SchedulePlanInfo;
14 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 14 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
15 import com.bsth.service.schedule.SchedulePlanInfoService; 15 import com.bsth.service.schedule.SchedulePlanInfoService;
16 import com.bsth.util.BatchSaveUtils; 16 import com.bsth.util.BatchSaveUtils;
17 -import com.bsth.util.DateUtils;  
18 import com.bsth.websocket.handler.SendUtils; 17 import com.bsth.websocket.handler.SendUtils;
19 import com.google.common.base.Predicate; 18 import com.google.common.base.Predicate;
20 import com.google.common.collect.ArrayListMultimap; 19 import com.google.common.collect.ArrayListMultimap;
@@ -136,14 +135,15 @@ public class DayOfSchedule { @@ -136,14 +135,15 @@ public class DayOfSchedule {
136 * @Description: TODO(计算线路当前应该使用的排班日期) 135 * @Description: TODO(计算线路当前应该使用的排班日期)
137 */ 136 */
138 public String calcSchDate(String lineCode) { 137 public String calcSchDate(String lineCode) {
  138 + Long t = System.currentTimeMillis();
139 LineConfig conf = lineConfigData.get(lineCode); 139 LineConfig conf = lineConfigData.get(lineCode);
140 - long ct = System.currentTimeMillis();  
141 140
142 - String schDate = fmtyyyyMMdd.print(ct);  
143 // 小于当天起始运营时间,则取前一天的排班 141 // 小于当天起始运营时间,则取前一天的排班
144 - if (ct < conf.getCurrStartTime())  
145 - schDate = DateUtils.subtractDay(schDate, 1); 142 + String ct = fmtHHmm.print(t);
  143 + if(ct.compareTo(conf.getStartOpt()) < 0)
  144 + t -= 1000 * 60 * 60 * 24;
146 145
  146 + String schDate = fmtyyyyMMdd.print(t);
147 return schDate; 147 return schDate;
148 } 148 }
149 149
src/main/java/com/bsth/data/schedule/auto_exec/RealScheduleAutoExecHandler.java
@@ -4,6 +4,7 @@ import com.bsth.data.gpsdata.status_manager.GpsStatusManager; @@ -4,6 +4,7 @@ import com.bsth.data.gpsdata.status_manager.GpsStatusManager;
4 import com.bsth.data.schedule.DayOfSchedule; 4 import com.bsth.data.schedule.DayOfSchedule;
5 import com.bsth.entity.realcontrol.ScheduleRealInfo; 5 import com.bsth.entity.realcontrol.ScheduleRealInfo;
6 import com.bsth.websocket.handler.SendUtils; 6 import com.bsth.websocket.handler.SendUtils;
  7 +import org.apache.commons.lang3.StringUtils;
7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Component; 9 import org.springframework.stereotype.Component;
9 10
@@ -29,20 +30,21 @@ public class RealScheduleAutoExecHandler { @@ -29,20 +30,21 @@ public class RealScheduleAutoExecHandler {
29 boolean flag = false; 30 boolean flag = false;
30 long t = System.currentTimeMillis(); 31 long t = System.currentTimeMillis();
31 32
32 - if (sch.getDfsjT() < t) { 33 + if (StringUtils.isEmpty(sch.getFcsjActual()) && sch.getDfsjT() < t) {
33 sch.setFcsjActualAll(sch.getDfsjT()); 34 sch.setFcsjActualAll(sch.getDfsjT());
34 flag = true; 35 flag = true;
35 } 36 }
36 37
37 - if (sch.getZdsjT() < t) { 38 + if (StringUtils.isEmpty(sch.getZdsjActual()) && sch.getZdsjT() < t) {
38 sch.setZdsjActualAll(sch.getZdsjT()); 39 sch.setZdsjActualAll(sch.getZdsjT());
39 40
40 //准备执行下一个班次 41 //准备执行下一个班次
41 ScheduleRealInfo next = dayOfSchedule.next(sch); 42 ScheduleRealInfo next = dayOfSchedule.next(sch);
42 if (next != null) { 43 if (next != null) {
  44 + dayOfSchedule.addExecPlan(next);
43 //套跑 -下发线路切换指令 45 //套跑 -下发线路切换指令
44 if(!next.getXlBm().equals(sch.getXlBm())){ 46 if(!next.getXlBm().equals(sch.getXlBm())){
45 - gpsStatusManager.changeLine(next.getClZbh(), next.getXlBm(), "套跑@系统"); 47 + gpsStatusManager.changeLine(next.getClZbh(), next.getXlBm(), "auto@系统");
46 } 48 }
47 } 49 }
48 50
@@ -60,6 +62,7 @@ public class RealScheduleAutoExecHandler { @@ -60,6 +62,7 @@ public class RealScheduleAutoExecHandler {
60 } 62 }
61 63
62 if (flag) { 64 if (flag) {
  65 + dayOfSchedule.save(sch);
63 sendUtils.refreshSch(sch); 66 sendUtils.refreshSch(sch);
64 } 67 }
65 } 68 }
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
@@ -50,7 +50,7 @@ public class LateAdjustHandle implements ApplicationContextAware{ @@ -50,7 +50,7 @@ public class LateAdjustHandle implements ApplicationContextAware{
50 public static void putLate(ScheduleRealInfo sch){ 50 public static void putLate(ScheduleRealInfo sch){
51 try { 51 try {
52 //出场班次不需要 52 //出场班次不需要
53 - if(/*sch.getBcType().equals("in") || */sch.getBcType().equals("out")) 53 + if(sch.getBcType().equals("out"))
54 return; 54 return;
55 //线路配置 55 //线路配置
56 LineConfig config = lineConfigData.get(sch.getXlBm()); 56 LineConfig config = lineConfigData.get(sch.getXlBm());
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
@@ -3,9 +3,6 @@ package com.bsth.entity.realcontrol; @@ -3,9 +3,6 @@ package com.bsth.entity.realcontrol;
3 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
4 4
5 import javax.persistence.*; 5 import javax.persistence.*;
6 -import java.text.ParseException;  
7 -import java.text.SimpleDateFormat;  
8 -import java.util.Date;  
9 import java.util.HashSet; 6 import java.util.HashSet;
10 import java.util.Set; 7 import java.util.Set;
11 8
@@ -156,7 +153,7 @@ public class LineConfig { @@ -156,7 +153,7 @@ public class LineConfig {
156 this.schDirectiveTemp = schDirectiveTemp; 153 this.schDirectiveTemp = schDirectiveTemp;
157 } 154 }
158 155
159 - public long getCurrStartTime() { 156 +/* public long getCurrStartTime() {
160 Date d = null; 157 Date d = null;
161 try { 158 try {
162 SimpleDateFormat sdfyyyyMMddHHmm = new SimpleDateFormat("yyyy-MM-ddHH:mm") 159 SimpleDateFormat sdfyyyyMMddHHmm = new SimpleDateFormat("yyyy-MM-ddHH:mm")
@@ -166,7 +163,7 @@ public class LineConfig { @@ -166,7 +163,7 @@ public class LineConfig {
166 e.printStackTrace(); 163 e.printStackTrace();
167 } 164 }
168 return d.getTime(); 165 return d.getTime();
169 - } 166 + }*/
170 167
171 public D80ReplyTemp findByCode(short code){ 168 public D80ReplyTemp findByCode(short code){
172 for(D80ReplyTemp temp : d80Temps){ 169 for(D80ReplyTemp temp : d80Temps){
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -285,7 +285,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -285,7 +285,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
285 //取消应发未到标记,不再自动调整待发 285 //取消应发未到标记,不再自动调整待发
286 //if(schedule.isLate2()){ 286 //if(schedule.isLate2()){
287 // schedule.setLate2(false); 287 // schedule.setLate2(false);
288 - LateAdjustHandle.remove(schedule); 288 + //LateAdjustHandle.remove(schedule);
289 //} 289 //}
290 290
291 try { 291 try {
src/main/resources/static/real_control_v2/fragments/north/nav/directive_history.html
@@ -112,7 +112,7 @@ @@ -112,7 +112,7 @@
112 var data = form.serializeJSON(); 112 var data = form.serializeJSON();
113 data.page = page; 113 data.page = page;
114 data.size = pageSize; 114 data.size = pageSize;
115 - if(data.lineCode){ 115 + if(data.lineCode && !data.nbbms){
116 //有选择线路,重新设置车辆字符串 116 //有选择线路,重新设置车辆字符串
117 var nbbmArray=data.nbbms=gb_schedule_table.findNbbmByLineCode(data.lineCode); 117 var nbbmArray=data.nbbms=gb_schedule_table.findNbbmByLineCode(data.lineCode);
118 if(nbbmArray.length>0){ 118 if(nbbmArray.length>0){
src/main/resources/static/real_control_v2/js/forms/form_embed.js
@@ -44,7 +44,7 @@ var gb_embed_form_hanlde = (function () { @@ -44,7 +44,7 @@ var gb_embed_form_hanlde = (function () {
44 //包裹页面 44 //包裹页面
45 var wrapUrl = '/real_control_v2/js/forms/wrap.html?origin=real_control_iframe'; 45 var wrapUrl = '/real_control_v2/js/forms/wrap.html?origin=real_control_iframe';
46 46
47 - layer.open({ 47 + var index = layer.open({
48 type: 2, 48 type: 2,
49 title: title, 49 title: title,
50 shadeClose: true, 50 shadeClose: true,
@@ -61,6 +61,7 @@ var gb_embed_form_hanlde = (function () { @@ -61,6 +61,7 @@ var gb_embed_form_hanlde = (function () {
61 61
62 } 62 }
63 }); 63 });
  64 + layer.full(index);
64 }; 65 };
65 66
66 67
src/main/resources/static/real_control_v2/js/main.js
@@ -47,7 +47,7 @@ var gb_main_ep = new EventProxy(), @@ -47,7 +47,7 @@ var gb_main_ep = new EventProxy(),
47 $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); 47 $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
48 }, 1000); 48 }, 1000);
49 //弹出更新说明 49 //弹出更新说明
50 - showUpdateDescription(); 50 + //showUpdateDescription();
51 }); 51 });
52 52
53 function g_emit(id) { 53 function g_emit(id) {