Commit 40e09602ce8daac90807f92e6b5d3887a6afec80

Authored by 潘钊
1 parent 4756d5b0

计划和实际匹配,并调整部分包结构

@@ -115,6 +115,12 @@ @@ -115,6 +115,12 @@
115 <artifactId>spring-boot-starter-test</artifactId> 115 <artifactId>spring-boot-starter-test</artifactId>
116 <scope>test</scope> 116 <scope>test</scope>
117 </dependency> 117 </dependency>
  118 +
  119 + <dependency>
  120 + <groupId>c3p0</groupId>
  121 + <artifactId>c3p0</artifactId>
  122 + <version>0.9.1.2</version>
  123 + </dependency>
118 124
119 </dependencies> 125 </dependencies>
120 126
src/main/java/com/bsth/StartCommand.java
@@ -12,10 +12,11 @@ import org.springframework.boot.CommandLineRunner; @@ -12,10 +12,11 @@ import org.springframework.boot.CommandLineRunner;
12 import org.springframework.stereotype.Component; 12 import org.springframework.stereotype.Component;
13 13
14 import com.bsth.security.SecurityMetadataSourceService; 14 import com.bsth.security.SecurityMetadataSourceService;
15 -import com.bsth.service.realcontrol.GetSchedulePlanThread;  
16 -import com.bsth.service.realcontrol.SchedulePersistenceThread; 15 +import com.bsth.service.realcontrol.buffer.GetSchedulePlanThread;
  16 +import com.bsth.service.realcontrol.buffer.SchedulePersistenceThread;
17 import com.bsth.vehicle.common.CommonRefreshThread; 17 import com.bsth.vehicle.common.CommonRefreshThread;
18 import com.bsth.vehicle.directive.DirectivePersistenceThread; 18 import com.bsth.vehicle.directive.DirectivePersistenceThread;
  19 +import com.bsth.vehicle.gpsdata.GpsArrivalStationThread;
19 import com.bsth.vehicle.gpsdata.GpsRefreshThread; 20 import com.bsth.vehicle.gpsdata.GpsRefreshThread;
20 21
21 /** 22 /**
@@ -31,22 +32,20 @@ public class StartCommand implements CommandLineRunner{ @@ -31,22 +32,20 @@ public class StartCommand implements CommandLineRunner{
31 @Autowired 32 @Autowired
32 SecurityMetadataSourceService invocationSecurityMetadataSourceService; 33 SecurityMetadataSourceService invocationSecurityMetadataSourceService;
33 34
34 - public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(5); 35 + public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(6);
35 36
36 @Autowired 37 @Autowired
37 GpsRefreshThread gpsRefreshThread; 38 GpsRefreshThread gpsRefreshThread;
38 -  
39 @Autowired 39 @Autowired
40 GetSchedulePlanThread getSchedulePlanThread; 40 GetSchedulePlanThread getSchedulePlanThread;
41 -  
42 @Autowired 41 @Autowired
43 CommonRefreshThread commonRefreshThread; 42 CommonRefreshThread commonRefreshThread;
44 -  
45 @Autowired 43 @Autowired
46 DirectivePersistenceThread directivePersistenceThread; 44 DirectivePersistenceThread directivePersistenceThread;
47 -  
48 @Autowired 45 @Autowired
49 SchedulePersistenceThread SchedulePersistenceThread; 46 SchedulePersistenceThread SchedulePersistenceThread;
  47 + @Autowired
  48 + GpsArrivalStationThread gpsArrivalStationThread;
50 49
51 @Override 50 @Override
52 public void run(String... arg0){ 51 public void run(String... arg0){
@@ -57,20 +56,18 @@ public class StartCommand implements CommandLineRunner{ @@ -57,20 +56,18 @@ public class StartCommand implements CommandLineRunner{
57 56
58 //GPS实时数据更新线程,每次执行完成4秒后开始下一次 57 //GPS实时数据更新线程,每次执行完成4秒后开始下一次
59 scheduler.scheduleWithFixedDelay(gpsRefreshThread, 0, 4, TimeUnit.SECONDS); 58 scheduler.scheduleWithFixedDelay(gpsRefreshThread, 0, 4, TimeUnit.SECONDS);
60 -  
61 //定时0点从计划排班表抓取当天实际排班 59 //定时0点从计划排班表抓取当天实际排班
62 scheduler.scheduleAtFixedRate(getSchedulePlanThread 60 scheduler.scheduleAtFixedRate(getSchedulePlanThread
63 , 0//DateUtils.getTimesnight() + 5 - System.currentTimeMillis() / 1000 61 , 0//DateUtils.getTimesnight() + 5 - System.currentTimeMillis() / 1000
64 , 60 * 60 * 24, TimeUnit.SECONDS); 62 , 60 * 60 * 24, TimeUnit.SECONDS);
65 -  
66 //两分钟调度指令入库一次 63 //两分钟调度指令入库一次
67 scheduler.scheduleWithFixedDelay(directivePersistenceThread, 20, 60 * 1, TimeUnit.SECONDS); 64 scheduler.scheduleWithFixedDelay(directivePersistenceThread, 20, 60 * 1, TimeUnit.SECONDS);
68 -  
69 //两小时刷新一次对照数据 65 //两小时刷新一次对照数据
70 scheduler.scheduleWithFixedDelay(commonRefreshThread, 0, 60 * 60 * 2, TimeUnit.SECONDS); 66 scheduler.scheduleWithFixedDelay(commonRefreshThread, 0, 60 * 60 * 2, TimeUnit.SECONDS);
71 -  
72 //一分钟持久化一次实际排班 67 //一分钟持久化一次实际排班
73 scheduler.scheduleWithFixedDelay(SchedulePersistenceThread, 60 * 1, 60 * 1, TimeUnit.SECONDS); 68 scheduler.scheduleWithFixedDelay(SchedulePersistenceThread, 60 * 1, 60 * 1, TimeUnit.SECONDS);
  69 + //将实际到离站和排班计划进行匹配 12秒一次
  70 + //scheduler.scheduleWithFixedDelay(gpsArrivalStationThread, 20, 1200, TimeUnit.SECONDS);
74 } catch (Exception e) { 71 } catch (Exception e) {
75 e.printStackTrace(); 72 e.printStackTrace();
76 } 73 }
src/main/java/com/bsth/common/Constants.java
@@ -10,7 +10,6 @@ package com.bsth.common; @@ -10,7 +10,6 @@ package com.bsth.common;
10 */ 10 */
11 public class Constants { 11 public class Constants {
12 12
13 -  
14 /** 13 /**
15 * 不需要拦截的资源 14 * 不需要拦截的资源
16 */ 15 */
@@ -21,6 +20,12 @@ public class Constants { @@ -21,6 +20,12 @@ public class Constants {
21 public static final String METRONIC_URL = "/metronic_v4.5.4/**"; 20 public static final String METRONIC_URL = "/metronic_v4.5.4/**";
22 public static final String LOGIN_FAILURE = "/user/loginFailure"; 21 public static final String LOGIN_FAILURE = "/user/loginFailure";
23 22
  23 + /**
  24 + * 线调部分子页面不做拦截,便于浏览器缓存
  25 + */
  26 + public static final String XD_CHILD_PAGES = "/pages/control/line/child_pages/**";
  27 + public static final String XD_TEMPS = "/pages/control/line/temps/**";
  28 +
24 //车载网关上行接口 29 //车载网关上行接口
25 public static final String UPSTREAM_URL = "/control/upstream"; 30 public static final String UPSTREAM_URL = "/control/upstream";
26 } 31 }
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController; @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
12 import com.bsth.controller.BaseController; 12 import com.bsth.controller.BaseController;
13 import com.bsth.entity.realcontrol.ScheduleRealInfo; 13 import com.bsth.entity.realcontrol.ScheduleRealInfo;
14 import com.bsth.service.realcontrol.ScheduleRealInfoService; 14 import com.bsth.service.realcontrol.ScheduleRealInfoService;
  15 +import com.bsth.vehicle.common.CommonMapped;
15 16
16 @RestController 17 @RestController
17 @RequestMapping("/realSchedule") 18 @RequestMapping("/realSchedule")
@@ -54,4 +55,15 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -54,4 +55,15 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
54 public Map<String, Object> destroy(@RequestParam String idsStr,@RequestParam int spaceAdjust,@RequestParam String remarks,@RequestParam String reason,@RequestParam int spaceNum){ 55 public Map<String, Object> destroy(@RequestParam String idsStr,@RequestParam int spaceAdjust,@RequestParam String remarks,@RequestParam String reason,@RequestParam int spaceNum){
55 return scheduleRealInfoService.destroy(idsStr, spaceAdjust, remarks, reason, spaceNum); 56 return scheduleRealInfoService.destroy(idsStr, spaceAdjust, remarks, reason, spaceNum);
56 } 57 }
  58 +
  59 + /**
  60 + *
  61 + * @Title: carDeviceMapp
  62 + * @Description: TODO(获取车辆自编号和设备号对照,从缓存取)
  63 + * @throws
  64 + */
  65 + @RequestMapping(value = "/carDeviceMapp", method = RequestMethod.GET)
  66 + public Map<String, String> carDeviceMapp(){
  67 + return CommonMapped.vehicDeviceBiMap.inverse();
  68 + }
57 } 69 }
src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
1 package com.bsth.entity.realcontrol; 1 package com.bsth.entity.realcontrol;
2 2
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.GeneratedValue;
  5 +import javax.persistence.Id;
3 import javax.persistence.ManyToOne; 6 import javax.persistence.ManyToOne;
  7 +import javax.persistence.Table;
4 8
5 /** 9 /**
6 * 10 *
7 * @ClassName: ChildTaskPlan 11 * @ClassName: ChildTaskPlan
8 - * @Description: TODO(子任务计划) 12 + * @Description: TODO(子任务)
9 * @author PanZhao 13 * @author PanZhao
10 * @date 2016年6月20日 上午11:22:22 14 * @date 2016年6月20日 上午11:22:22
11 * 15 *
12 */ 16 */
  17 +@Entity
  18 +@Table(name = "bsth_c_s_child_task")
13 public class ChildTaskPlan { 19 public class ChildTaskPlan {
14 20
  21 + @Id
  22 + @GeneratedValue
15 private Long id; 23 private Long id;
16 24
17 /** 25 /**
18 - * 开始时间 HH:mm 26 + * 任务类型1
  27 + * 正常,临加
19 */ 28 */
20 - private String startTimeStr; 29 + private String type1;
21 30
22 /** 31 /**
23 - * 结束时间 HH:mm 32 + * 任务类型2
24 */ 33 */
25 - private String endTimeStr; 34 + private String type2;
26 35
27 /** 36 /**
28 - * 任务类型  
29 - */  
30 - private String type;  
31 -  
32 - /**  
33 - * 起点站名 37 + * 起点
34 */ 38 */
35 private String startStation; 39 private String startStation;
36 40
37 /** 41 /**
38 - * 终点站名 42 + * 终点
39 */ 43 */
40 private String endStation; 44 private String endStation;
41 45
@@ -50,15 +54,32 @@ public class ChildTaskPlan { @@ -50,15 +54,32 @@ public class ChildTaskPlan {
50 private Float mileage; 54 private Float mileage;
51 55
52 /** 56 /**
53 - * 备注 57 + * 开始时间 HH:mm
54 */ 58 */
55 - private String remarks;  
56 - 59 + private String startDate;
  60 +
  61 + /**
  62 + * 结束时间 HH:mm
  63 + */
  64 + private String endDate;
  65 +
57 /** 66 /**
58 - * 主任务 67 + * 是否烂班
  68 + */
  69 + private boolean destroy;
  70 +
  71 + /**
  72 + * 烂班原因
  73 + */
  74 + private String destroyReason;
  75 +
  76 + /**
  77 + * 主排班计划
59 */ 78 */
60 @ManyToOne 79 @ManyToOne
61 - private ScheduleRealInfo schedul; 80 + private ScheduleRealInfo schedule;
  81 +
  82 + private String remarks;
62 83
63 public Long getId() { 84 public Long getId() {
64 return id; 85 return id;
@@ -68,28 +89,20 @@ public class ChildTaskPlan { @@ -68,28 +89,20 @@ public class ChildTaskPlan {
68 this.id = id; 89 this.id = id;
69 } 90 }
70 91
71 - public String getStartTimeStr() {  
72 - return startTimeStr;  
73 - }  
74 -  
75 - public void setStartTimeStr(String startTimeStr) {  
76 - this.startTimeStr = startTimeStr;  
77 - }  
78 -  
79 - public String getEndTimeStr() {  
80 - return endTimeStr; 92 + public String getType1() {
  93 + return type1;
81 } 94 }
82 95
83 - public void setEndTimeStr(String endTimeStr) {  
84 - this.endTimeStr = endTimeStr; 96 + public void setType1(String type1) {
  97 + this.type1 = type1;
85 } 98 }
86 99
87 - public String getType() {  
88 - return type; 100 + public String getType2() {
  101 + return type2;
89 } 102 }
90 103
91 - public void setType(String type) {  
92 - this.type = type; 104 + public void setType2(String type2) {
  105 + this.type2 = type2;
93 } 106 }
94 107
95 public String getStartStation() { 108 public String getStartStation() {
@@ -124,19 +137,51 @@ public class ChildTaskPlan { @@ -124,19 +137,51 @@ public class ChildTaskPlan {
124 this.mileage = mileage; 137 this.mileage = mileage;
125 } 138 }
126 139
127 - public String getRemarks() {  
128 - return remarks; 140 + public String getStartDate() {
  141 + return startDate;
129 } 142 }
130 143
131 - public void setRemarks(String remarks) {  
132 - this.remarks = remarks; 144 + public void setStartDate(String startDate) {
  145 + this.startDate = startDate;
  146 + }
  147 +
  148 + public String getEndDate() {
  149 + return endDate;
  150 + }
  151 +
  152 + public void setEndDate(String endDate) {
  153 + this.endDate = endDate;
  154 + }
  155 +
  156 + public boolean isDestroy() {
  157 + return destroy;
  158 + }
  159 +
  160 + public void setDestroy(boolean destroy) {
  161 + this.destroy = destroy;
133 } 162 }
134 163
135 - public ScheduleRealInfo getSchedul() {  
136 - return schedul; 164 + public String getDestroyReason() {
  165 + return destroyReason;
137 } 166 }
138 167
139 - public void setSchedul(ScheduleRealInfo schedul) {  
140 - this.schedul = schedul; 168 + public void setDestroyReason(String destroyReason) {
  169 + this.destroyReason = destroyReason;
  170 + }
  171 +
  172 + public ScheduleRealInfo getSchedule() {
  173 + return schedule;
  174 + }
  175 +
  176 + public void setSchedule(ScheduleRealInfo schedule) {
  177 + this.schedule = schedule;
  178 + }
  179 +
  180 + public String getRemarks() {
  181 + return remarks;
  182 + }
  183 +
  184 + public void setRemarks(String remarks) {
  185 + this.remarks = remarks;
141 } 186 }
142 } 187 }
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -4,6 +4,8 @@ import com.bsth.entity.sys.SysUser; @@ -4,6 +4,8 @@ import com.bsth.entity.sys.SysUser;
4 4
5 import javax.persistence.*; 5 import javax.persistence.*;
6 import java.util.Date; 6 import java.util.Date;
  7 +import java.util.HashSet;
  8 +import java.util.Set;
7 9
8 /** 10 /**
9 * 实际排班计划明细。 11 * 实际排班计划明细。
@@ -19,20 +21,14 @@ public class ScheduleRealInfo { @@ -19,20 +21,14 @@ public class ScheduleRealInfo {
19 /** 排班计划日期 */ 21 /** 排班计划日期 */
20 private Date scheduleDate; 22 private Date scheduleDate;
21 23
22 - /** 关联 bsth_c_line 主键,不做mapping */  
23 - private Integer xl;  
24 /** 线路名称 */ 24 /** 线路名称 */
25 private String xlName; 25 private String xlName;
26 /** 线路编码 */ 26 /** 线路编码 */
27 private String xlBm; 27 private String xlBm;
28 28
29 - /** 关联 bsth_c_s_gbi 主键,不做mapping */  
30 - private Long lp;  
31 /** 路牌名称 */ 29 /** 路牌名称 */
32 private String lpName; 30 private String lpName;
33 31
34 - /** 关联 bsth_c_cars 主键,不做mapping */  
35 - private Integer cl;  
36 /** 车辆自编号 */ 32 /** 车辆自编号 */
37 private String clZbh; 33 private String clZbh;
38 34
@@ -40,8 +36,7 @@ public class ScheduleRealInfo { @@ -40,8 +36,7 @@ public class ScheduleRealInfo {
40 private String bdTime; 36 private String bdTime;
41 /** 出场时间(格式 HH:mm) */ 37 /** 出场时间(格式 HH:mm) */
42 private String ccTime; 38 private String ccTime;
43 - /** 关联 bsth_c_personnel 主键,不做mapping */  
44 - private Integer j; 39 +
45 /** 驾驶员工号 */ 40 /** 驾驶员工号 */
46 private String jGh; 41 private String jGh;
47 /** 驾驶员名字 */ 42 /** 驾驶员名字 */
@@ -53,17 +48,28 @@ public class ScheduleRealInfo { @@ -53,17 +48,28 @@ public class ScheduleRealInfo {
53 48
54 /** 线路方向 */ 49 /** 线路方向 */
55 private String xlDir; 50 private String xlDir;
56 - /** 起点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */  
57 - private Integer qdz; 51 + /** 起点站code*/
  52 + private String qdzCode;
58 /** 起点站名字 */ 53 /** 起点站名字 */
59 private String qdzName; 54 private String qdzName;
60 - /** 终点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */  
61 - private Integer zdz; 55 +
  56 + /** 终点站code*/
  57 + private String zdzCode;
62 /** 终点站名字 */ 58 /** 终点站名字 */
63 private String zdzName; 59 private String zdzName;
64 60
65 /** 计划发车时间(格式 HH:mm) */ 61 /** 计划发车时间(格式 HH:mm) */
66 private String fcsj; 62 private String fcsj;
  63 + /** 计划发车时间戳*/
  64 + @Transient
  65 + private Long fcsjT;
  66 +
  67 + /** 计划终点时间(格式 HH:mm) */
  68 + private String zdsj;
  69 + /** 计划终点时间戳*/
  70 + @Transient
  71 + private Long zdsjT;
  72 +
67 /** 发车顺序号 */ 73 /** 发车顺序号 */
68 private Integer fcno; 74 private Integer fcno;
69 /** 对应班次数 */ 75 /** 对应班次数 */
@@ -93,8 +99,14 @@ public class ScheduleRealInfo { @@ -93,8 +99,14 @@ public class ScheduleRealInfo {
93 99
94 /** 实际发车时间*/ 100 /** 实际发车时间*/
95 private String fcsjActual; 101 private String fcsjActual;
  102 + /** 实际发车时间戳*/
  103 + @Transient
  104 + private Long fcsjActualTime;
96 /**实际终点时间 */ 105 /**实际终点时间 */
97 private String zdsjActual; 106 private String zdsjActual;
  107 + /** 实际终点时间戳*/
  108 + @Transient
  109 + private Long zdsjActualTime;
98 110
99 /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */ 111 /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */
100 private int status; 112 private int status;
@@ -121,10 +133,6 @@ public class ScheduleRealInfo { @@ -121,10 +133,6 @@ public class ScheduleRealInfo {
121 @Transient 133 @Transient
122 private Long dfsjT; 134 private Long dfsjT;
123 135
124 - /** 发车时间戳*/  
125 - @Transient  
126 - private Long fcsjT;  
127 -  
128 public void addRemarks(String remark){ 136 public void addRemarks(String remark){
129 String newRem = this.getRemarks(); 137 String newRem = this.getRemarks();
130 if(null == newRem) 138 if(null == newRem)
@@ -132,7 +140,7 @@ public class ScheduleRealInfo { @@ -132,7 +140,7 @@ public class ScheduleRealInfo {
132 newRem += remark; 140 newRem += remark;
133 this.setRemarks(newRem); 141 this.setRemarks(newRem);
134 } 142 }
135 - 143 +
136 public Long getId() { 144 public Long getId() {
137 return id; 145 return id;
138 } 146 }
@@ -149,14 +157,6 @@ public class ScheduleRealInfo { @@ -149,14 +157,6 @@ public class ScheduleRealInfo {
149 this.scheduleDate = scheduleDate; 157 this.scheduleDate = scheduleDate;
150 } 158 }
151 159
152 - public Integer getXl() {  
153 - return xl;  
154 - }  
155 -  
156 - public void setXl(Integer xl) {  
157 - this.xl = xl;  
158 - }  
159 -  
160 public String getXlName() { 160 public String getXlName() {
161 return xlName; 161 return xlName;
162 } 162 }
@@ -173,14 +173,6 @@ public class ScheduleRealInfo { @@ -173,14 +173,6 @@ public class ScheduleRealInfo {
173 this.xlBm = xlBm; 173 this.xlBm = xlBm;
174 } 174 }
175 175
176 - public Long getLp() {  
177 - return lp;  
178 - }  
179 -  
180 - public void setLp(Long lp) {  
181 - this.lp = lp;  
182 - }  
183 -  
184 public String getLpName() { 176 public String getLpName() {
185 return lpName; 177 return lpName;
186 } 178 }
@@ -189,14 +181,6 @@ public class ScheduleRealInfo { @@ -189,14 +181,6 @@ public class ScheduleRealInfo {
189 this.lpName = lpName; 181 this.lpName = lpName;
190 } 182 }
191 183
192 - public Integer getCl() {  
193 - return cl;  
194 - }  
195 -  
196 - public void setCl(Integer cl) {  
197 - this.cl = cl;  
198 - }  
199 -  
200 public String getClZbh() { 184 public String getClZbh() {
201 return clZbh; 185 return clZbh;
202 } 186 }
@@ -221,14 +205,6 @@ public class ScheduleRealInfo { @@ -221,14 +205,6 @@ public class ScheduleRealInfo {
221 this.ccTime = ccTime; 205 this.ccTime = ccTime;
222 } 206 }
223 207
224 - public Integer getJ() {  
225 - return j;  
226 - }  
227 -  
228 - public void setJ(Integer j) {  
229 - this.j = j;  
230 - }  
231 -  
232 public String getjGh() { 208 public String getjGh() {
233 return jGh; 209 return jGh;
234 } 210 }
@@ -269,12 +245,12 @@ public class ScheduleRealInfo { @@ -269,12 +245,12 @@ public class ScheduleRealInfo {
269 this.xlDir = xlDir; 245 this.xlDir = xlDir;
270 } 246 }
271 247
272 - public Integer getQdz() {  
273 - return qdz; 248 + public String getQdzCode() {
  249 + return qdzCode;
274 } 250 }
275 251
276 - public void setQdz(Integer qdz) {  
277 - this.qdz = qdz; 252 + public void setQdzCode(String qdzCode) {
  253 + this.qdzCode = qdzCode;
278 } 254 }
279 255
280 public String getQdzName() { 256 public String getQdzName() {
@@ -285,12 +261,12 @@ public class ScheduleRealInfo { @@ -285,12 +261,12 @@ public class ScheduleRealInfo {
285 this.qdzName = qdzName; 261 this.qdzName = qdzName;
286 } 262 }
287 263
288 - public Integer getZdz() {  
289 - return zdz; 264 + public String getZdzCode() {
  265 + return zdzCode;
290 } 266 }
291 267
292 - public void setZdz(Integer zdz) {  
293 - this.zdz = zdz; 268 + public void setZdzCode(String zdzCode) {
  269 + this.zdzCode = zdzCode;
294 } 270 }
295 271
296 public String getZdzName() { 272 public String getZdzName() {
@@ -309,6 +285,30 @@ public class ScheduleRealInfo { @@ -309,6 +285,30 @@ public class ScheduleRealInfo {
309 this.fcsj = fcsj; 285 this.fcsj = fcsj;
310 } 286 }
311 287
  288 + public Long getFcsjT() {
  289 + return fcsjT;
  290 + }
  291 +
  292 + public void setFcsjT(Long fcsjT) {
  293 + this.fcsjT = fcsjT;
  294 + }
  295 +
  296 + public String getZdsj() {
  297 + return zdsj;
  298 + }
  299 +
  300 + public void setZdsj(String zdsj) {
  301 + this.zdsj = zdsj;
  302 + }
  303 +
  304 + public Long getZdsjT() {
  305 + return zdsjT;
  306 + }
  307 +
  308 + public void setZdsjT(Long zdsjT) {
  309 + this.zdsjT = zdsjT;
  310 + }
  311 +
312 public Integer getFcno() { 312 public Integer getFcno() {
313 return fcno; 313 return fcno;
314 } 314 }
@@ -389,6 +389,14 @@ public class ScheduleRealInfo { @@ -389,6 +389,14 @@ public class ScheduleRealInfo {
389 this.fcsjActual = fcsjActual; 389 this.fcsjActual = fcsjActual;
390 } 390 }
391 391
  392 + public Long getFcsjActualTime() {
  393 + return fcsjActualTime;
  394 + }
  395 +
  396 + public void setFcsjActualTime(Long fcsjActualTime) {
  397 + this.fcsjActualTime = fcsjActualTime;
  398 + }
  399 +
392 public String getZdsjActual() { 400 public String getZdsjActual() {
393 return zdsjActual; 401 return zdsjActual;
394 } 402 }
@@ -397,6 +405,14 @@ public class ScheduleRealInfo { @@ -397,6 +405,14 @@ public class ScheduleRealInfo {
397 this.zdsjActual = zdsjActual; 405 this.zdsjActual = zdsjActual;
398 } 406 }
399 407
  408 + public Long getZdsjActualTime() {
  409 + return zdsjActualTime;
  410 + }
  411 +
  412 + public void setZdsjActualTime(Long zdsjActualTime) {
  413 + this.zdsjActualTime = zdsjActualTime;
  414 + }
  415 +
400 public int getStatus() { 416 public int getStatus() {
401 return status; 417 return status;
402 } 418 }
@@ -421,6 +437,22 @@ public class ScheduleRealInfo { @@ -421,6 +437,22 @@ public class ScheduleRealInfo {
421 this.realMileage = realMileage; 437 this.realMileage = realMileage;
422 } 438 }
423 439
  440 + public Float getAddMileage() {
  441 + return addMileage;
  442 + }
  443 +
  444 + public void setAddMileage(Float addMileage) {
  445 + this.addMileage = addMileage;
  446 + }
  447 +
  448 + public Float getRemMileage() {
  449 + return remMileage;
  450 + }
  451 +
  452 + public void setRemMileage(Float remMileage) {
  453 + this.remMileage = remMileage;
  454 + }
  455 +
424 public String getRemarks() { 456 public String getRemarks() {
425 return remarks; 457 return remarks;
426 } 458 }
@@ -437,14 +469,6 @@ public class ScheduleRealInfo { @@ -437,14 +469,6 @@ public class ScheduleRealInfo {
437 this.dfsj = dfsj; 469 this.dfsj = dfsj;
438 } 470 }
439 471
440 - public Long getFcsjT() {  
441 - return fcsjT;  
442 - }  
443 -  
444 - public void setFcsjT(Long fcsjT) {  
445 - this.fcsjT = fcsjT;  
446 - }  
447 -  
448 public Long getDfsjT() { 472 public Long getDfsjT() {
449 return dfsjT; 473 return dfsjT;
450 } 474 }
@@ -452,20 +476,4 @@ public class ScheduleRealInfo { @@ -452,20 +476,4 @@ public class ScheduleRealInfo {
452 public void setDfsjT(Long dfsjT) { 476 public void setDfsjT(Long dfsjT) {
453 this.dfsjT = dfsjT; 477 this.dfsjT = dfsjT;
454 } 478 }
455 -  
456 - public Float getAddMileage() {  
457 - return addMileage;  
458 - }  
459 -  
460 - public void setAddMileage(Float addMileage) {  
461 - this.addMileage = addMileage;  
462 - }  
463 -  
464 - public Float getRemMileage() {  
465 - return remMileage;  
466 - }  
467 -  
468 - public void setRemMileage(Float remMileage) {  
469 - this.remMileage = remMileage;  
470 - }  
471 } 479 }
src/main/java/com/bsth/filter/BaseFilter.java
@@ -24,7 +24,7 @@ public abstract class BaseFilter implements Filter { @@ -24,7 +24,7 @@ public abstract class BaseFilter implements Filter {
24 * 白名单 24 * 白名单
25 */ 25 */
26 private String[] whiteListURLs = { Constants.LOGIN_PAGE, 26 private String[] whiteListURLs = { Constants.LOGIN_PAGE,
27 - Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL }; 27 + Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_TEMPS };
28 28
29 @Override 29 @Override
30 public void destroy() { 30 public void destroy() {
src/main/java/com/bsth/security/WebSecurityConfig.java
@@ -31,12 +31,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @@ -31,12 +31,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
31 @Autowired 31 @Autowired
32 SecurityMetadataSourceService securityMetadataSourceService; 32 SecurityMetadataSourceService securityMetadataSourceService;
33 33
  34 +
34 @Override 35 @Override
35 public void configure(WebSecurity web) throws Exception { 36 public void configure(WebSecurity web) throws Exception {
36 // 白名单 37 // 白名单
37 - web.ignoring().antMatchers(Constants.ASSETS_URL, Constants.FAVICON_URL,  
38 - Constants.METRONIC_URL, Constants.LOGIN_PAGE,  
39 - Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL); 38 + web.ignoring().antMatchers(Constants.LOGIN_PAGE, Constants.ASSETS_URL, Constants.FAVICON_URL,
  39 + Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_TEMPS);
40 } 40 }
41 41
42 @Override 42 @Override
src/main/java/com/bsth/service/realcontrol/GetSchedulePlanThread.java renamed to src/main/java/com/bsth/service/realcontrol/buffer/GetSchedulePlanThread.java
1 -package com.bsth.service.realcontrol; 1 +package com.bsth.service.realcontrol.buffer;
2 2
3 import java.text.SimpleDateFormat; 3 import java.text.SimpleDateFormat;
4 import java.util.Date; 4 import java.util.Date;
@@ -37,32 +37,37 @@ public class GetSchedulePlanThread extends Thread{ @@ -37,32 +37,37 @@ public class GetSchedulePlanThread extends Thread{
37 ScheduleRealInfoRepository scheduleRealInfoRepository; 37 ScheduleRealInfoRepository scheduleRealInfoRepository;
38 38
39 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") 39 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")
40 - ,sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");  
41 -  
42 -  
43 - SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 40 + ,sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm")
  41 + ,sdf3 = new SimpleDateFormat("HH:mm");
44 42
45 @Override 43 @Override
46 public void run() { 44 public void run() {
47 try{ 45 try{
48 String dateStr = /*sdf.format(new Date())*/"2016-06-01"; 46 String dateStr = /*sdf.format(new Date())*/"2016-06-01";
49 List<SchedulePlanInfo> list = schedulePlanInfoRepository.findByDate(dateStr); 47 List<SchedulePlanInfo> list = schedulePlanInfoRepository.findByDate(dateStr);
50 - logger.info("开始................." + sdf3.format(new Date(System.currentTimeMillis())));  
51 48
52 //实际排班计划 49 //实际排班计划
53 List<ScheduleRealInfo> realList = JSONArray.parseArray(JSON.toJSONString(list), ScheduleRealInfo.class); 50 List<ScheduleRealInfo> realList = JSONArray.parseArray(JSON.toJSONString(list), ScheduleRealInfo.class);
54 51
  52 + Date zdDate;
55 for(ScheduleRealInfo item : realList){ 53 for(ScheduleRealInfo item : realList){
56 item.setDfsj(item.getFcsj()); 54 item.setDfsj(item.getFcsj());
57 //发车时间戳 55 //发车时间戳
58 item.setFcsjT(sdf2.parse(dateStr + " " + item.getFcsj()).getTime()); 56 item.setFcsjT(sdf2.parse(dateStr + " " + item.getFcsj()).getTime());
  57 + //待发时间
59 item.setDfsjT(item.getFcsjT()); 58 item.setDfsjT(item.getFcsjT());
  59 +
  60 + //计划终点时间
  61 + if(item.getBcsj() != null){
  62 + zdDate = new Date(item.getFcsjT() + (item.getBcsj() * 60 * 1000));
  63 + item.setZdsjT(zdDate.getTime());
  64 + item.setZdsj(sdf3.format(zdDate));
  65 + }
60 } 66 }
61 67
62 //new BatchSaveUtils<ScheduleRealInfo>().saveList(realList, ScheduleRealInfo.class); 68 //new BatchSaveUtils<ScheduleRealInfo>().saveList(realList, ScheduleRealInfo.class);
63 //写入缓存 69 //写入缓存
64 ScheduleBuffer.init(realList); 70 ScheduleBuffer.init(realList);
65 - logger.info("结束................." + sdf3.format(new Date(System.currentTimeMillis())));  
66 71
67 logger.info("获取当天实际排班计划数量:" + realList.size()); 72 logger.info("获取当天实际排班计划数量:" + realList.size());
68 }catch(Exception e){ 73 }catch(Exception e){
src/main/java/com/bsth/service/realcontrol/ScheduleBuffer.java renamed to src/main/java/com/bsth/service/realcontrol/buffer/ScheduleBuffer.java
1 -package com.bsth.service.realcontrol; 1 +package com.bsth.service.realcontrol.buffer;
2 2
3 import java.util.Collections; 3 import java.util.Collections;
4 import java.util.Comparator; 4 import java.util.Comparator;
src/main/java/com/bsth/service/realcontrol/SchedulePersistenceThread.java renamed to src/main/java/com/bsth/service/realcontrol/buffer/SchedulePersistenceThread.java
1 -package com.bsth.service.realcontrol; 1 +package com.bsth.service.realcontrol.buffer;
2 2
3 import java.util.LinkedList; 3 import java.util.LinkedList;
4 4
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -17,8 +17,8 @@ import com.bsth.common.ResponseCode; @@ -17,8 +17,8 @@ import com.bsth.common.ResponseCode;
17 import com.bsth.entity.realcontrol.ScheduleRealInfo; 17 import com.bsth.entity.realcontrol.ScheduleRealInfo;
18 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 18 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
19 import com.bsth.service.impl.BaseServiceImpl; 19 import com.bsth.service.impl.BaseServiceImpl;
20 -import com.bsth.service.realcontrol.ScheduleBuffer;  
21 import com.bsth.service.realcontrol.ScheduleRealInfoService; 20 import com.bsth.service.realcontrol.ScheduleRealInfoService;
  21 +import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
22 import com.google.common.base.Splitter; 22 import com.google.common.base.Splitter;
23 import com.google.common.collect.ArrayListMultimap; 23 import com.google.common.collect.ArrayListMultimap;
24 import com.google.common.collect.Lists; 24 import com.google.common.collect.Lists;
src/main/java/com/bsth/util/BatchSaveUtils.java
@@ -16,8 +16,6 @@ import org.apache.commons.lang3.StringUtils; @@ -16,8 +16,6 @@ import org.apache.commons.lang3.StringUtils;
16 import org.slf4j.Logger; 16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory; 17 import org.slf4j.LoggerFactory;
18 18
19 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
20 -  
21 /** 19 /**
22 * 20 *
23 * @ClassName: BatchSaveUtils 21 * @ClassName: BatchSaveUtils
src/main/java/com/bsth/vehicle/directive/service/DirectiveServiceImpl.java
@@ -115,7 +115,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive, Integer&gt; im @@ -115,7 +115,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive, Integer&gt; im
115 Long timestamp = System.currentTimeMillis(); 115 Long timestamp = System.currentTimeMillis();
116 116
117 //向测试设备发送 117 //向测试设备发送
118 - String deviceId = "229L4041"; 118 + String deviceId = "ABCDFEGH";
119 Short company = 5; 119 Short company = 5;
120 120
121 /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm); 121 /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
src/main/java/com/bsth/vehicle/gpsdata/buffer/GpsRealDataBuffer.java
@@ -13,7 +13,7 @@ import org.slf4j.LoggerFactory; @@ -13,7 +13,7 @@ import org.slf4j.LoggerFactory;
13 import org.springframework.stereotype.Component; 13 import org.springframework.stereotype.Component;
14 14
15 import com.bsth.entity.realcontrol.ScheduleRealInfo; 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
16 -import com.bsth.service.realcontrol.ScheduleBuffer; 16 +import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
17 import com.bsth.vehicle.common.CommonMapped; 17 import com.bsth.vehicle.common.CommonMapped;
18 import com.bsth.vehicle.gpsdata.entity.GpsRealData; 18 import com.bsth.vehicle.gpsdata.entity.GpsRealData;
19 import com.google.common.collect.ArrayListMultimap; 19 import com.google.common.collect.ArrayListMultimap;
@@ -140,7 +140,6 @@ public class GpsRealDataBuffer { @@ -140,7 +140,6 @@ public class GpsRealDataBuffer {
140 gpsData.setNbbm(nbbm); 140 gpsData.setNbbm(nbbm);
141 gpsData.setStationName(CommonMapped.stationCodeMap.get(gpsData.getStopNo())); 141 gpsData.setStationName(CommonMapped.stationCodeMap.get(gpsData.getStopNo()));
142 142
143 -  
144 linkedList = ScheduleBuffer.vehLinkedMap.get(nbbm); 143 linkedList = ScheduleBuffer.vehLinkedMap.get(nbbm);
145 if(null != linkedList){ 144 if(null != linkedList){
146 //为GPS点附加班次信息 145 //为GPS点附加班次信息