Commit dc24c65dd2dc1c2fa36ed937ee1c22914aa9db1e

Authored by 潘钊
2 parents f0694942 a4e98411

Merge branch 'minhang' into pudong

Showing 26 changed files with 583 additions and 325 deletions

Too many changes to show.

To preserve performance only 26 of 58 files are displayed.

... ... @@ -259,11 +259,11 @@
259 259 </dependency>
260 260  
261 261  
262   - <dependency>
263   - <groupId>ojdbc</groupId>
264   - <artifactId>ojdbc</artifactId>
265   - <version>14</version>
266   - </dependency>
  262 + <!--<dependency>-->
  263 + <!--<groupId>ojdbc</groupId>-->
  264 + <!--<artifactId>ojdbc</artifactId>-->
  265 + <!--<version>14</version>-->
  266 + <!--</dependency>-->
267 267 </dependencies>
268 268  
269 269 <dependencyManagement>
... ...
src/main/java/com/bsth/controller/forms/ExportController.java
... ... @@ -253,7 +253,7 @@ public class ExportController {
253 253 }
254 254  
255 255 // 运营服务阶段报表
256   - @RequestMapping(value = "/operationserviceExport", method = RequestMethod.POST)
  256 + @RequestMapping(value = "/operationserviceExport", method = RequestMethod.GET)
257 257 public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map) {
258 258 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
259 259 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
... ...
src/main/java/com/bsth/controller/forms/MCY_FormsController.java
... ... @@ -86,7 +86,7 @@ public class MCY_FormsController {
86 86 }
87 87  
88 88 // 运营服务阶段报表
89   - @RequestMapping(value = "/operationservice", method = RequestMethod.POST)
  89 + @RequestMapping(value = "/operationservice", method = RequestMethod.GET)
90 90 public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) {
91 91  
92 92 return formsService.operationservice(map);
... ...
src/main/java/com/bsth/controller/report/ReportController.java
1 1 package com.bsth.controller.report;
2 2  
  3 +import java.util.ArrayList;
3 4 import java.util.HashMap;
  5 +import java.util.Iterator;
4 6 import java.util.List;
5 7 import java.util.Map;
6 8  
... ... @@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
13 15 import com.bsth.entity.excep.ArrivalInfo;
14 16 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 17 import com.bsth.service.report.ReportService;
  18 +import com.bsth.util.ReportUtils;
16 19  
17 20 @RestController
18 21 @RequestMapping("report")
... ... @@ -31,12 +34,74 @@ public class ReportController {
31 34 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
32 35 return service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
33 36 }
  37 +
  38 + @RequestMapping(value="/exportQueryListZdxx" ,method = RequestMethod.GET)
  39 + public List<Map<String, Object>> exportQueryListZdxx(@RequestParam String clzbh,@RequestParam String line,
  40 + @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
  41 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  42 + ReportUtils ee = new ReportUtils();
  43 + List<ArrivalInfo> list=service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
  44 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  45 + int i=1;
  46 + for (ArrivalInfo a:list ) {
  47 + Map<String, Object> m = new HashMap<String, Object>();
  48 + m.put("i", i);
  49 + m.put("mbbm", a.getNbbm());
  50 + m.put("stopName", a.getStopName());
  51 + m.put("jzsj", a.getJzsj());
  52 + m.put("czsj", a.getCzsj());
  53 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  54 + i++;
  55 + }
  56 +
  57 + try {
  58 + Map<String, Object> map=new HashMap<String, Object>();
  59 + listI.add(resList.iterator());
  60 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  61 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  62 + path + "export/班次到离站.xls");
  63 + } catch (Exception e) {
  64 + e.printStackTrace();
  65 + }
  66 + return resList;
  67 + }
  68 +
34 69 @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)
35 70 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,
36 71 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
37 72 return service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
38 73 }
39 74  
  75 + @RequestMapping(value="/exportQueryListClzd" ,method = RequestMethod.GET)
  76 + public List<Map<String, Object>> exportQueryListClzd(@RequestParam String zd,@RequestParam String line,
  77 + @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
  78 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  79 + ReportUtils ee = new ReportUtils();
  80 + List<ArrivalInfo> list=service.queryListClzd(line, zd, zdlx, fcsj, ddsj);
  81 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  82 + int i=1;
  83 + for (ArrivalInfo a:list ) {
  84 + Map<String, Object> m = new HashMap<String, Object>();
  85 + m.put("i", i);
  86 + m.put("nbbm", a.getNbbm());
  87 + m.put("stopName", a.getStopName());
  88 + m.put("jzsj", a.getJzsj());
  89 + m.put("czsj", a.getCzsj());
  90 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  91 + i++;
  92 + }
  93 +
  94 + try {
  95 + Map<String, Object> map=new HashMap<String, Object>();
  96 + listI.add(resList.iterator());
  97 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  98 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  99 + path + "export/班次到离站.xls");
  100 + } catch (Exception e) {
  101 + e.printStackTrace();
  102 + }
  103 + return resList;
  104 + }
40 105 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)
41 106 public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) {
42 107 return service.sreachZd(line,zdlx, zd);
... ...
src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
... ... @@ -5,11 +5,7 @@ import com.bsth.controller.schedule.BController;
5 5 import com.bsth.entity.schedule.TTInfoDetail;
6 6 import com.bsth.service.schedule.TTInfoDetailService;
7 7 import org.springframework.beans.factory.annotation.Autowired;
8   -import org.springframework.web.bind.annotation.PathVariable;
9   -import org.springframework.web.bind.annotation.RequestMapping;
10   -import org.springframework.web.bind.annotation.RequestMethod;
11   -import org.springframework.web.bind.annotation.RequestParam;
12   -import org.springframework.web.bind.annotation.RestController;
  8 +import org.springframework.web.bind.annotation.*;
13 9  
14 10 import java.util.HashMap;
15 11 import java.util.List;
... ... @@ -88,6 +84,20 @@ public class TTInfoDetailController extends BController&lt;TTInfoDetail, Long&gt; {
88 84 }
89 85 return rtn;
90 86 }
  87 +
  88 + @RequestMapping(value = "/zd_tcc", method = RequestMethod.GET)
  89 + public Map<String, Object> getZdAndTccInfo(Integer lineid, Integer xldir) {
  90 + Map<String, Object> rtn = new HashMap<>();
  91 + try {
  92 + List<Map<String, Object>> list = ttInfoDetailService.findZdAndTcc(lineid, xldir);
  93 + rtn.put("status", ResponseCode.SUCCESS);
  94 + rtn.put("data", list);
  95 + } catch (Exception exp) {
  96 + rtn.put("status", ResponseCode.ERROR);
  97 + rtn.put("msg", exp.getMessage());
  98 + }
  99 + return rtn;
  100 + }
91 101  
92 102 /**
93 103 * 时刻表明细批量插入
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -253,20 +253,22 @@ public class InOutStationSignalHandle extends SignalHandle{
253 253 //已完成班次数
254 254 int doneSum = dayOfSchedule.doneSum(sch.getClZbh());
255 255 ScheduleRealInfo next = dayOfSchedule.next(sch);
256   - //通知客户端
257   - sendUtils.sendZdsj(sch, next, doneSum);
258 256 //持久化
259 257 dayOfSchedule.save(sch);
260 258  
261   - //准备执行下一个班次
262   - if (next != null) {
  259 + if(next != null){
263 260 next.setQdzArrDatesj(sch.getZdsjActual());
264 261 dayOfSchedule.addExecPlan(next);
265 262 //进站既进场
266 263 inStationAndInPark(sch, next);
  264 + }
  265 + //通知客户端
  266 + sendUtils.sendZdsj(sch, next, doneSum);
  267 +
  268 + //准备执行下一个班次
  269 + if (next != null) {
267 270 //将gps转换为下一个班次走向的站内信号
268 271 transformUpdown(gps, next);
269   -
270 272 //下发调度指令
271 273 directiveService.send60Dispatch(next, doneSum, "到站@系统");
272 274  
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -11,7 +11,10 @@ import com.bsth.data.directive.DirectivesPstThread;
11 11 import com.bsth.data.gpsdata.GpsRealData;
12 12 import com.bsth.data.gpsdata.recovery.GpsDataRecovery;
13 13 import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
14   -import com.bsth.data.schedule.thread.*;
  14 +import com.bsth.data.schedule.thread.CalcOilThread;
  15 +import com.bsth.data.schedule.thread.SchedulePstThread;
  16 +import com.bsth.data.schedule.thread.ScheduleRefreshThread;
  17 +import com.bsth.data.schedule.thread.SubmitToTrafficManage;
15 18 import com.bsth.entity.realcontrol.LineConfig;
16 19 import com.bsth.entity.realcontrol.ScheduleRealInfo;
17 20 import com.bsth.entity.schedule.SchedulePlanInfo;
... ... @@ -146,7 +149,7 @@ public class DayOfSchedule implements CommandLineRunner {
146 149 //入库
147 150 // Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
148 151 //班次误点扫描
149   -// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 60, TimeUnit.SECONDS);
  152 +// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS);
150 153  
151 154 //每天凌晨2点20提交数据到运管处
152 155 long diff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();
... ...
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
... ... @@ -116,17 +116,20 @@ public class LateAdjustHandle implements ApplicationContextAware{
116 116 return;
117 117  
118 118 //进的是班次起点
119   - if(gps.getStopNo().equals(sch.getQdzCode())
  119 + if(gps.getStationName().equals(sch.getQdzName())
120 120 && sch.getLateMinute() > 0){
121 121 //自动调整待发 到达时间 + 停靠时间
122   - long dt = gps.getTimestamp() + (Long.parseLong(String.valueOf(sch.getLateMinute() * 60 * 1000)));
  122 + long dt = (long) (gps.getTimestamp() + (sch.getLateMinute() * 60 * 1000));
123 123 sch.setDfsjAll(dt);
124 124 sch.setDfAuto(true);
  125 + //取消应发未到标记
  126 + sch.setLate2(false);
125 127  
126 128 lateSchMap.remove(sch.getClZbh());
127 129 logger.info("【应发未到】车辆到站 " + sch.getClZbh() + " -" + sch.getDfsj() + " -到站时间:" + gps.getTimestamp() + " -停靠时间:" + sch.getLateMinute() + " -自动设置的待发时间:" + dt);
128 130 }
129 131 }catch (Exception e){
  132 + e.printStackTrace();
130 133 logger.error("", e);
131 134 }
132 135 }
... ...
src/main/java/com/bsth/data/schedule/late_adjust/ScheduleLateThread.java
... ... @@ -19,7 +19,7 @@ import java.util.List;
19 19 * @ClassName: ScheduleLateThread
20 20 * @Description: TODO(班次误点扫描线程)
21 21 * @author PanZhao
22   - * @date 2016年8月31日 下午3:09:02
  22 + * @date 2016年8月31日 下午3:09:02
23 23 *
24 24 */
25 25 @Component
... ... @@ -44,11 +44,14 @@ public class ScheduleLateThread extends Thread{
44 44 ScheduleRealInfo sch;
45 45 for(int i = 0; i < size; i ++){
46 46 sch = all.get(i);
47   - if(sch.getDfsjT() > t || sch.isLate())
  47 + if(sch.getDfsjT() > t)
48 48 break;
49 49  
  50 + if(sch.isLate())
  51 + continue;
  52 +
50 53 if(sch.getStatus() == 0
51   - && sch.getFcsjActual() == null){
  54 + && StringUtils.isEmpty(sch.getFcsjActual())){
52 55  
53 56 //检查应发未到 当前班次无起点到达时间
54 57 if(StringUtils.isEmpty(sch.getQdzArrDateSJ())){
... ...
src/main/java/com/bsth/entity/mcy_forms/Operationservice.java
... ... @@ -3,7 +3,7 @@ package com.bsth.entity.mcy_forms;
3 3 public class Operationservice {
4 4  
5 5 private String xlName;//线路
6   -
  6 + private String xlBm;//线路编码
7 7 private String jzl;//加注量
8 8  
9 9 private String xhl;//消耗量
... ... @@ -81,6 +81,14 @@ public class Operationservice {
81 81 public void setSjbc(String sjbc) {
82 82 this.sjbc = sjbc;
83 83 }
  84 +
  85 + public String getXlBm() {
  86 + return xlBm;
  87 + }
  88 +
  89 + public void setXlBm(String xlBm) {
  90 + this.xlBm = xlBm;
  91 + }
84 92  
85 93  
86 94 }
... ...
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
... ... @@ -88,16 +88,18 @@ public class SchedulePlanInfo {
88 88 @Column(nullable = false)
89 89 private String xlDir;
90 90 /** 起点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */
91   - @Column(nullable = false)
92   - private Integer qdz;
  91 + // 这个字段以后不用了
  92 +// @Column(nullable = false)
  93 +// private Integer qdz;
93 94 /** 起点站code */
94 95 private String qdzCode;
95 96 /** 起点站名字 */
96 97 @Column(nullable = false)
97 98 private String qdzName;
98 99 /** 终点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */
99   - @Column(nullable = false)
100   - private Integer zdz;
  100 + // 这个字段以后不用了
  101 +// @Column(nullable = false)
  102 +// private Integer zdz;
101 103 /** 终点站code */
102 104 private String zdzCode;
103 105 /** 终点站名字 */
... ... @@ -238,28 +240,10 @@ public class SchedulePlanInfo {
238 240 // 时刻明细数据
239 241 this.xlDir = ttInfoDetail.getXlDir(); // 线路上下行
240 242 this.bcType = ttInfoDetail.getBcType(); // 班次类型
241   - if ("out".equals(this.bcType)) { // 出场班次
242   - this.qdz = ttInfoDetail.getTcc().getId(); // 起点站-停车场id
243   - this.qdzCode = ttInfoDetail.getTcc().getParkCode(); // 起点站-停车场code
244   - this.qdzName = ttInfoDetail.getTcc().getParkName(); // 起点站-停车场name
245   - this.zdz = ttInfoDetail.getZdz().getId(); // 终点站id
246   - this.zdzCode = ttInfoDetail.getZdz().getStationCod(); // 终点站code
247   - this.zdzName = ttInfoDetail.getZdz().getStationName(); // 终点站name
248   - } else if ("in".equals(this.bcType)) { // 进场班次
249   - this.qdz = ttInfoDetail.getQdz().getId(); // 起点站id
250   - this.qdzCode = ttInfoDetail.getQdz().getStationCod(); // 起点站code
251   - this.qdzName = ttInfoDetail.getQdz().getStationName(); // 起点站name
252   - this.zdz = ttInfoDetail.getTcc().getId(); // 终点站-停车场id
253   - this.zdzCode = ttInfoDetail.getTcc().getParkCode(); // 终点站-停车场code
254   - this.zdzName = ttInfoDetail.getTcc().getParkName(); // 终点站-停车场name
255   - } else { // 其他班次
256   - this.qdz = ttInfoDetail.getQdz().getId(); // 起点站id
257   - this.qdzCode = ttInfoDetail.getQdz().getStationCod(); // 起点站code
258   - this.qdzName = ttInfoDetail.getQdz().getStationName(); // 起点站name
259   - this.zdz = ttInfoDetail.getZdz().getId(); // 终点站id
260   - this.zdzCode = ttInfoDetail.getZdz().getStationCod(); // 终点站code
261   - this.zdzName = ttInfoDetail.getZdz().getStationName(); // 终点站name
262   - }
  243 + this.qdzCode = ttInfoDetail.getQdzCode(); // 起点站code
  244 + this.qdzName = ttInfoDetail.getQdzName(); // 起点站name
  245 + this.zdzCode = ttInfoDetail.getZdzCode(); // 终点站code
  246 + this.zdzName = ttInfoDetail.getZdzName(); // 终点站name
263 247  
264 248 this.fcsj = ttInfoDetail.getFcsj(); // 发车时间
265 249 this.fcno = ttInfoDetail.getFcno(); // 发车顺序号
... ... @@ -280,7 +264,7 @@ public class SchedulePlanInfo {
280 264 if (pzType != null && !pzType.equals("BSY")) {
281 265 if ("ZW".equals(pzType)) { // 只看早晚进出场
282 266 if (isFirstBc) { // 第一个班次是出场
283   - this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
  267 +// this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
284 268 this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code
285 269 this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name
286 270  
... ... @@ -288,7 +272,7 @@ public class SchedulePlanInfo {
288 272 this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue();
289 273  
290 274 } else if (isLastBc) { // 最后一个班次是进场
291   - this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
  275 +// this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
292 276 this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code
293 277 this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name
294 278  
... ... @@ -298,7 +282,7 @@ public class SchedulePlanInfo {
298 282  
299 283 } else if ("FS".equals(pzType)) { // 所有进出场
300 284 if ("out".equals(this.bcType)) { // 出场班次
301   - this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
  285 +// this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
302 286 this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code
303 287 this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name
304 288  
... ... @@ -306,7 +290,7 @@ public class SchedulePlanInfo {
306 290 this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue();
307 291  
308 292 } else if ("in".equals(this.bcType)) {
309   - this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
  293 +// this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
310 294 this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code
311 295 this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name
312 296  
... ... @@ -319,14 +303,6 @@ public class SchedulePlanInfo {
319 303 }
320 304  
321 305  
322   - public Integer getS() {
323   - return s;
324   - }
325   -
326   - public void setS(Integer s) {
327   - this.s = s;
328   - }
329   -
330 306 public Long getId() {
331 307 return id;
332 308 }
... ... @@ -343,6 +319,46 @@ public class SchedulePlanInfo {
343 319 this.scheduleDate = scheduleDate;
344 320 }
345 321  
  322 + public String getGsName() {
  323 + return gsName;
  324 + }
  325 +
  326 + public void setGsName(String gsName) {
  327 + this.gsName = gsName;
  328 + }
  329 +
  330 + public String getGsBm() {
  331 + return gsBm;
  332 + }
  333 +
  334 + public void setGsBm(String gsBm) {
  335 + this.gsBm = gsBm;
  336 + }
  337 +
  338 + public String getFgsName() {
  339 + return fgsName;
  340 + }
  341 +
  342 + public void setFgsName(String fgsName) {
  343 + this.fgsName = fgsName;
  344 + }
  345 +
  346 + public String getFgsBm() {
  347 + return fgsBm;
  348 + }
  349 +
  350 + public void setFgsBm(String fgsBm) {
  351 + this.fgsBm = fgsBm;
  352 + }
  353 +
  354 + public Integer getCcno() {
  355 + return ccno;
  356 + }
  357 +
  358 + public void setCcno(Integer ccno) {
  359 + this.ccno = ccno;
  360 + }
  361 +
346 362 public Integer getXl() {
347 363 return xl;
348 364 }
... ... @@ -439,6 +455,14 @@ public class SchedulePlanInfo {
439 455 this.jName = jName;
440 456 }
441 457  
  458 + public Integer getS() {
  459 + return s;
  460 + }
  461 +
  462 + public void setS(Integer s) {
  463 + this.s = s;
  464 + }
  465 +
442 466 public String getsGh() {
443 467 return sGh;
444 468 }
... ... @@ -463,12 +487,12 @@ public class SchedulePlanInfo {
463 487 this.xlDir = xlDir;
464 488 }
465 489  
466   - public Integer getQdz() {
467   - return qdz;
  490 + public String getQdzCode() {
  491 + return qdzCode;
468 492 }
469 493  
470   - public void setQdz(Integer qdz) {
471   - this.qdz = qdz;
  494 + public void setQdzCode(String qdzCode) {
  495 + this.qdzCode = qdzCode;
472 496 }
473 497  
474 498 public String getQdzName() {
... ... @@ -479,12 +503,12 @@ public class SchedulePlanInfo {
479 503 this.qdzName = qdzName;
480 504 }
481 505  
482   - public Integer getZdz() {
483   - return zdz;
  506 + public String getZdzCode() {
  507 + return zdzCode;
484 508 }
485 509  
486   - public void setZdz(Integer zdz) {
487   - this.zdz = zdz;
  510 + public void setZdzCode(String zdzCode) {
  511 + this.zdzCode = zdzCode;
488 512 }
489 513  
490 514 public String getZdzName() {
... ... @@ -543,6 +567,30 @@ public class SchedulePlanInfo {
543 567 this.bcType = bcType;
544 568 }
545 569  
  570 + public Long getTtInfo() {
  571 + return ttInfo;
  572 + }
  573 +
  574 + public void setTtInfo(Long ttInfo) {
  575 + this.ttInfo = ttInfo;
  576 + }
  577 +
  578 + public String getTtInfoName() {
  579 + return ttInfoName;
  580 + }
  581 +
  582 + public void setTtInfoName(String ttInfoName) {
  583 + this.ttInfoName = ttInfoName;
  584 + }
  585 +
  586 + public String getRemark() {
  587 + return remark;
  588 + }
  589 +
  590 + public void setRemark(String remark) {
  591 + this.remark = remark;
  592 + }
  593 +
546 594 public SysUser getCreateBy() {
547 595 return createBy;
548 596 }
... ... @@ -575,62 +623,6 @@ public class SchedulePlanInfo {
575 623 this.updateDate = updateDate;
576 624 }
577 625  
578   - public String getQdzCode() {
579   - return qdzCode;
580   - }
581   -
582   - public void setQdzCode(String qdzCode) {
583   - this.qdzCode = qdzCode;
584   - }
585   -
586   - public String getZdzCode() {
587   - return zdzCode;
588   - }
589   -
590   - public void setZdzCode(String zdzCode) {
591   - this.zdzCode = zdzCode;
592   - }
593   -
594   - public String getGsName() {
595   - return gsName;
596   - }
597   -
598   - public void setGsName(String gsName) {
599   - this.gsName = gsName;
600   - }
601   -
602   - public String getGsBm() {
603   - return gsBm;
604   - }
605   -
606   - public void setGsBm(String gsBm) {
607   - this.gsBm = gsBm;
608   - }
609   -
610   - public String getFgsName() {
611   - return fgsName;
612   - }
613   -
614   - public void setFgsName(String fgsName) {
615   - this.fgsName = fgsName;
616   - }
617   -
618   - public String getFgsBm() {
619   - return fgsBm;
620   - }
621   -
622   - public void setFgsBm(String fgsBm) {
623   - this.fgsBm = fgsBm;
624   - }
625   -
626   - public Integer getCcno() {
627   - return ccno;
628   - }
629   -
630   - public void setCcno(Integer ccno) {
631   - this.ccno = ccno;
632   - }
633   -
634 626 public SchedulePlan getSchedulePlan() {
635 627 return schedulePlan;
636 628 }
... ... @@ -638,28 +630,4 @@ public class SchedulePlanInfo {
638 630 public void setSchedulePlan(SchedulePlan schedulePlan) {
639 631 this.schedulePlan = schedulePlan;
640 632 }
641   -
642   - public Long getTtInfo() {
643   - return ttInfo;
644   - }
645   -
646   - public void setTtInfo(Long ttInfo) {
647   - this.ttInfo = ttInfo;
648   - }
649   -
650   - public String getTtInfoName() {
651   - return ttInfoName;
652   - }
653   -
654   - public void setTtInfoName(String ttInfoName) {
655   - this.ttInfoName = ttInfoName;
656   - }
657   -
658   - public String getRemark() {
659   - return remark;
660   - }
661   -
662   - public void setRemark(String remark) {
663   - this.remark = remark;
664   - }
665 633 }
... ...
src/main/java/com/bsth/entity/schedule/TTInfoDetail.java
... ... @@ -47,16 +47,28 @@ public class TTInfoDetail extends BEntity {
47 47 /** 线路方向(TODO:上下行,上行,下行,这个以后用枚举还是字典再议,现在先用文字) */
48 48 @Column(nullable = false)
49 49 private String xlDir;
50   - /** 起点站关联 */
  50 +
  51 + /** 起点站关联(以后不用了,暂时留着) */
51 52 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
52 53 private Station qdz;
53   - /** 终点站关联 */
  54 + /** 终点站关联(以后不用了,暂时留着) */
54 55 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
55 56 private Station zdz;
56   - /** 停车场关联(出场,进场班次会关联停车场) */
  57 + /** 停车场关联(出场,进场班次会关联停车场)(以后不用了,暂时留着) */
57 58 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
58 59 private CarPark tcc;
59 60  
  61 + // 站点包括普通站点和停车场(站点编码不同,使用站点编码区分)
  62 + // 以后不需要再区分是站点还是停车场了
  63 + /** 起站点代码(bsth_c_station,bsth_c_car_park 里的编码) */
  64 + private String qdzCode;
  65 + /** 起站点名字(bsth_c_stationroute,bsth_c_car_park里的名字) */
  66 + private String qdzName;
  67 + /** 终点站代码(bsth_c_station,bsth_c_car_park 里的编码) */
  68 + private String zdzCode;
  69 + /** 终点站名字(bsth_c_stationroute,bsth_c_car_park里的名字) */
  70 + private String zdzName;
  71 +
60 72 /** 发车时间(格式 HH:mm) */
61 73 @Column(nullable = false, length = 5)
62 74 private String fcsj;
... ... @@ -236,4 +248,36 @@ public class TTInfoDetail extends BEntity {
236 248 public void setIsFB(Boolean isFB) {
237 249 this.isFB = isFB;
238 250 }
  251 +
  252 + public String getQdzCode() {
  253 + return qdzCode;
  254 + }
  255 +
  256 + public void setQdzCode(String qdzCode) {
  257 + this.qdzCode = qdzCode;
  258 + }
  259 +
  260 + public String getQdzName() {
  261 + return qdzName;
  262 + }
  263 +
  264 + public void setQdzName(String qdzName) {
  265 + this.qdzName = qdzName;
  266 + }
  267 +
  268 + public String getZdzCode() {
  269 + return zdzCode;
  270 + }
  271 +
  272 + public void setZdzCode(String zdzCode) {
  273 + this.zdzCode = zdzCode;
  274 + }
  275 +
  276 + public String getZdzName() {
  277 + return zdzName;
  278 + }
  279 +
  280 + public void setZdzName(String zdzName) {
  281 + this.zdzName = zdzName;
  282 + }
239 283 }
... ...
src/main/java/com/bsth/entity/schedule/temp/SchedulePlanRuleResult.java
... ... @@ -10,6 +10,7 @@ import java.util.Date;
10 10 */
11 11 @Entity
12 12 @Table(name = "bsth_c_s_sp_rule_rst")
  13 +// TODO:此表以后考虑表分区
13 14 public class SchedulePlanRuleResult {
14 15 /** 主键Id */
15 16 @Id
... ... @@ -17,7 +18,8 @@ public class SchedulePlanRuleResult {
17 18 private Long id;
18 19  
19 20 /** 线路id */
20   - private String xlId;
  21 + // 这里要建一个索引 tt1 normal btree
  22 + private Integer xlId;
21 23 /** 线路名字 */
22 24 private String xlName;
23 25  
... ... @@ -49,6 +51,7 @@ public class SchedulePlanRuleResult {
49 51 private String ttinfoName;
50 52  
51 53 /** 排班日期 */
  54 + // 这里要建一个索引 tt2 normal btree
52 55 private Date scheduleDate;
53 56  
54 57 /** 操作人员id */
... ... @@ -56,6 +59,7 @@ public class SchedulePlanRuleResult {
56 59 /** 操作人员姓名 */
57 60 private String sysuserName;
58 61 /** 操作时间 */
  62 + // 这里要建一个索引 tt3 normal btree
59 63 private Date createDate;
60 64  
61 65 public SchedulePlanRuleResult() {
... ... @@ -76,6 +80,22 @@ public class SchedulePlanRuleResult {
76 80 this.id = id;
77 81 }
78 82  
  83 + public Integer getXlId() {
  84 + return xlId;
  85 + }
  86 +
  87 + public void setXlId(Integer xlId) {
  88 + this.xlId = xlId;
  89 + }
  90 +
  91 + public String getXlName() {
  92 + return xlName;
  93 + }
  94 +
  95 + public void setXlName(String xlName) {
  96 + this.xlName = xlName;
  97 + }
  98 +
79 99 public String getRuleId() {
80 100 return ruleId;
81 101 }
... ... @@ -148,6 +168,22 @@ public class SchedulePlanRuleResult {
148 168 this.ecindex = ecindex;
149 169 }
150 170  
  171 + public String getTtinfoId() {
  172 + return ttinfoId;
  173 + }
  174 +
  175 + public void setTtinfoId(String ttinfoId) {
  176 + this.ttinfoId = ttinfoId;
  177 + }
  178 +
  179 + public String getTtinfoName() {
  180 + return ttinfoName;
  181 + }
  182 +
  183 + public void setTtinfoName(String ttinfoName) {
  184 + this.ttinfoName = ttinfoName;
  185 + }
  186 +
151 187 public Date getScheduleDate() {
152 188 return scheduleDate;
153 189 }
... ... @@ -179,36 +215,4 @@ public class SchedulePlanRuleResult {
179 215 public void setCreateDate(Date createDate) {
180 216 this.createDate = createDate;
181 217 }
182   -
183   - public String getXlId() {
184   - return xlId;
185   - }
186   -
187   - public void setXlId(String xlId) {
188   - this.xlId = xlId;
189   - }
190   -
191   - public String getXlName() {
192   - return xlName;
193   - }
194   -
195   - public void setXlName(String xlName) {
196   - this.xlName = xlName;
197   - }
198   -
199   - public String getTtinfoId() {
200   - return ttinfoId;
201   - }
202   -
203   - public void setTtinfoId(String ttinfoId) {
204   - this.ttinfoId = ttinfoId;
205   - }
206   -
207   - public String getTtinfoName() {
208   - return ttinfoName;
209   - }
210   -
211   - public void setTtinfoName(String ttinfoName) {
212   - this.ttinfoName = ttinfoName;
213   - }
214 218 }
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -151,18 +151,19 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
151 151  
152 152 //按照时间段统计
153 153 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
154   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') and gsBm like %?4% and fgsBm like %?5% order by s.xlBm")
  154 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and gsBm like %?4% and fgsBm like %?5% order by s.xlBm")
155 155 List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2,String gsdm,String fgsdm);
156 156  
157 157 //按照时间段统计
158 158 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
159   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') order by s.xlBm")
  159 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 order by s.xlBm")
160 160 List<ScheduleRealInfo> scheduleByDateAndLineTj2(String line,String date,String date2);
161 161 //月报表
162 162 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
163 163 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 order by s.xlBm")
164 164 List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2);
165 165  
  166 +
166 167 @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY clZbh,fcsj")
167 168 List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm);
168 169  
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanRuleResultRepository.java
... ... @@ -2,24 +2,18 @@ package com.bsth.repository.schedule;
2 2  
3 3 import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
4 4 import com.bsth.repository.BaseRepository;
5   -import org.springframework.data.jpa.repository.Modifying;
6   -import org.springframework.data.jpa.repository.Query;
7 5 import org.springframework.stereotype.Repository;
8 6  
9   -import java.util.Date;
10   -import java.util.List;
11   -
12 7 /**
13 8 * Created by xu on 17/3/29.
14 9 */
15 10 @Repository
16 11 public interface SchedulePlanRuleResultRepository extends BaseRepository<SchedulePlanRuleResult, Long> {
17 12  
18   - @Query("select t from SchedulePlanRuleResult t " +
19   - "where not exists (select 1 from SchedulePlanRuleResult " +
20   - "where createDate > t.createDate and scheduleDate < ?2 ) " +
21   - "and t.xlId = ?1 and t.scheduleDate < ?2")
22   - List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from);
  13 +// @Query("select t from SchedulePlanRuleResult t " +
  14 +// "where not exists (select 1 from SchedulePlanRuleResult " +
  15 +// "where createDate > t.createDate and scheduleDate < ?2 ) " +
  16 +// "and t.xlId = ?1 and t.scheduleDate < ?2")
23 17  
24 18 // @Modifying
25 19 // @Query("delete from SchedulePlanRuleResult t " +
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
... ... @@ -539,55 +539,102 @@ public class FormsServiceImpl implements FormsService {
539 539 // 运营服务阶段报表
540 540 @Override
541 541 public List<Operationservice> operationservice(Map<String, Object> map) {
542   -
543   - String sql = " SELECT r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,y.JZL,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name,r.bc_type "
544   - + " FROM bsth_c_s_sp_info_real r "
545   - // + "LEFT JOIN bsth_c_s_sp_info_real r on r.cl_zbh=y.NBBM"
546   - + " left join bsth_c_ylb y ON r.cl_zbh = y.nbbm "
547   - + " where 1=1 ";
548   - if(map.get("startDate").toString()!=""){
549   - sql+=" and to_days(r.schedule_date_str) BETWEEN to_days('" + map.get("startDate").toString() + "') ";
550   - }
551 542  
552   - if(map.get("endDate").toString()!=""){
553   - sql+=" and to_days('" + map.get("endDate").toString() + "') ";
554   - }
555   - sql+=" and r.xl_bm='" + map.get("line").toString() + "'" ;
556   - sql+=" and r.bc_type not in('in','out')";
557   - if(map.get("gsdmOperat").toString()!=""){
558   - sql+=" and r.gs_bm='"+map.get("gsdmOperat").toString()+"'";
  543 + String xlbm=map.get("line").toString().trim();
  544 + String gsdm="";
  545 + if(map.get("gsdmOperat")!=null){
  546 + gsdm=map.get("gsdmOperat").toString();
559 547 }
560   - if(map.get("fgsdmOperat").toString()!=""){
561   - sql+=" and r.fgs_bm='"+map.get("fgsdmOperat").toString()+"'";
  548 + String fgsdm="";
  549 + if(map.get("fgsdmOperat")!=null){
  550 + fgsdm=map.get("fgsdmOperat").toString();
  551 + }
  552 + startDate=map.get("startDate").toString();
  553 + endDate =map.get("endDate").toString();
  554 + String sql="select r.xl_bm"
  555 + + " from bsth_c_s_sp_info_real r where"
  556 + + " r.schedule_date_str BETWEEN '"+startDate+"' and '"+endDate+"'";
  557 + if(xlbm.equals("")){
  558 + sql +="and r.gs_bm='"+gsdm+"' "
  559 + + " and r.fgs_bm='"+fgsdm+"'";
  560 + }else{
  561 + sql += " and r.xl_bm = '"+xlbm+"'";
562 562 }
563   - sql += " AND r.gs_bm is not null";
564   - sql += " GROUP BY r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,y.JZL,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name";
565   - startDate = map.get("startDate").toString();
566   - endDate = map.get("endDate").toString();
567   - List<Operationservice> list = jdbcTemplate.query(sql, new RowMapper<Operationservice>() {
568   -
569   - @Override
570   - public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException {
571   - Operationservice op = new Operationservice();
572   - op.setXlName(arg0.getString("xl_name"));
573   - op.setJzl(arg0.getString("JZL"));
574   - op.setXhl(arg0.getString("YH"));
575   - op.setClzbh(arg0.getString("cl_zbh"));
576   - op.setJname(arg0.getString("j_name"));
  563 + sql += " group by r.xl_bm";
  564 +
  565 +
  566 + List<Operationservice> list= jdbcTemplate.query(sql, new RowMapper<Operationservice>() {
  567 + @Override
  568 + public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException {
  569 + Operationservice ve = new Operationservice();
  570 + ve.setXlBm(arg0.getString("xl_bm"));
  571 + return ve;
  572 + }
  573 + });
  574 +
  575 + String ylbSql=" select * from bsth_c_ylb where rq BETWEEN '"+startDate+"' and '"+endDate+"'";
  576 + if(xlbm.equals("")){
  577 + ylbSql +="and ssgsdm='"+gsdm+"' "
  578 + + " and fgsdm='"+fgsdm+"'";
  579 + }else{
  580 + ylbSql += " and xlbm = '"+xlbm+"'";
  581 + }
  582 + List<Ylb> ylbList= jdbcTemplate.query(ylbSql, new RowMapper<Ylb>() {
  583 + @Override
  584 + public Ylb mapRow(ResultSet arg0, int arg1) throws SQLException {
  585 + Ylb y = new Ylb();
  586 + y.setXlbm(arg0.getString("xlbm"));
  587 + y.setJzl(arg0.getDouble("jzl"));
  588 + y.setYh(arg0.getDouble("yh"));
  589 + return y;
  590 + }
  591 + });
  592 + List<ScheduleRealInfo> listReal;
  593 + if(xlbm.equals("")){
  594 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineTj(xlbm, startDate, endDate, gsdm, fgsdm);
  595 + }else{
  596 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineTj2(xlbm, startDate, endDate);
  597 + }
  598 +
  599 + for (int i = 0; i < list.size(); i++) {
  600 + Operationservice o=list.get(i);
  601 + String line=o.getXlBm();
  602 + String xlname=BasicData.lineCode2NameMap.get(line);
  603 + o.setXlName(xlname);
  604 +
  605 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  606 + for (int j = 0; j < listReal.size(); j++) {
  607 + ScheduleRealInfo s=listReal.get(j);
  608 + if(s.getXlBm().equals(line)){
  609 + newList.add(s);
  610 + }
  611 + }
  612 +
  613 + int sjbc=culateMileageService.culateSjbc(newList,"");
  614 + int ljbc=culateMileageService.culateLjbc(newList,"");
  615 + double ksgl=culateMileageService.culateKsgl(newList);
  616 + double jccgl=culateMileageService.culateJccgl(newList);
  617 +
  618 + double sjgl=culateMileageService.culateSjgl(newList);
  619 + double ljgl=culateMileageService.culateLjgl(newList);
577 620  
578   - return op;
  621 + o.setEmptMileage(String.valueOf(Arith.add(ksgl, jccgl)));
  622 + o.setXsgl(String.valueOf(Arith.add(sjgl, ljgl)));
  623 + o.setSjbc(String.valueOf(sjbc+ljbc));
  624 +
  625 + double jzl=0.0;
  626 + double xhl=0.0;
  627 + for (int j = 0; j < ylbList.size(); j++) {
  628 + Ylb t=ylbList.get(j);
  629 + if(t.getXlbm().equals(line)){
  630 + jzl=Arith.add(jzl, t.getJzl());
  631 + xhl=Arith.add(xhl, t.getYh());
  632 + }
  633 + }
  634 +
  635 + o.setJzl(String.valueOf(jzl));
  636 + o.setXhl(String.valueOf(xhl));
579 637 }
580   - });
581   -
582   - for(int i=0;i<list.size();i++){
583   - Operationservice o=list.get(i);
584   - Map<String, Object> maps = new HashMap<>();
585   - maps = commonService.findKMBC1(o.getJname(), o.getClzbh(), startDate,
586   - endDate);
587   - o.setXsgl(maps.get("jhlc").toString() == null ? "" : maps.get("jhlc").toString());
588   - o.setEmptMileage(maps.get("ksgl").toString() == null ? "" : maps.get("ksgl").toString());
589   - o.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString());
590   - }
591 638 return list;
592 639 }
593 640  
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -3,6 +3,7 @@ package com.bsth.service.realcontrol.impl;
3 3 import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.JSONArray;
5 5 import com.alibaba.fastjson.JSONObject;
  6 +import com.alibaba.fastjson.support.odps.udf.CodecCheck.A;
6 7 import com.bsth.common.Constants;
7 8 import com.bsth.common.ResponseCode;
8 9 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
... ... @@ -1049,6 +1050,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1049 1050 ScheduleRealInfo next = dayOfSchedule.next(sch);
1050 1051 if (null != next) {
1051 1052 next.setQdzArrDateSJ(zdsjActual);
  1053 + next.setLate2(false);
1052 1054 ts.add(next);
1053 1055 }
1054 1056  
... ... @@ -1669,9 +1671,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1669 1671 List<ScheduleRealInfo> lists = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
1670 1672 Map<String, Object> map = new HashMap<String, Object>();
1671 1673 map.put("xlName", xlName);
1672   - map.put("jhlc", culateService.culateJhgl(lists));
  1674 + double jhlc=culateService.culateJhgl(lists);
  1675 + map.put("jhlc",jhlc);
1673 1676 map.put("sjgl", Arith.add(culateService.culateSjgl(lists),culateService.culateLjgl(lists)));
1674   - map.put("ssgl", culateService.culateLbgl(lists));
  1677 + double lbgl=culateService.culateLbgl(lists);
  1678 + map.put("ssgl", lbgl);
1675 1679 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
1676 1680 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
1677 1681 map.put("ssgl_gz", culateService.culateCJLC(lists, "故障"));
... ... @@ -1688,7 +1692,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1688 1692 double ssgl_qt=culateService.culateCJLC(lists, "其他");
1689 1693 map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by),Arith.add(ssgl_cj, ssgl_qt)));
1690 1694 map.put("ssbc", culateService.culateLbbc(lists));
1691   - map.put("ljgl", culateService.culateLjgl(lists));
  1695 + double ljgl=culateService.culateLjgl(lists);
  1696 + map.put("ljgl", ljgl);
1692 1697 map.put("jhbc", culateService.culateJhbc(lists,""));
1693 1698 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
1694 1699 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
... ... @@ -1708,6 +1713,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1708 1713 map.put("djg_m", 0);
1709 1714 map.put("djg_a", 0);
1710 1715 map.put("djg_time", 0);
  1716 + map.put("jls", Arith.sub(Arith.add(jhlc, ljgl), lbgl));
1711 1717 lMap.add(map);
1712 1718 return lMap;
1713 1719 }
... ... @@ -2261,8 +2267,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2261 2267 public final Map<String, Object> staticTj(List<ScheduleRealInfo> lists){
2262 2268 Map<String, Object> map = new HashMap<String, Object>();
2263 2269 map.put("xlName", lists.get(0).getXlName());
2264   - map.put("jhlc", culateService.culateJhgl(lists));
2265   - map.put("sjgl", Arith.add(culateService.culateSjgl(lists),culateService.culateLjgl(lists)));
  2270 + double jhyygl=culateService.culateJhgl(lists);//计划营运公里
  2271 + double jhjcclc= culateService.culateJhJccgl(lists);//计划进出场公里(计划空驶公里)
  2272 + map.put("jhlc", jhyygl);
  2273 + map.put("jcclc", jhjcclc);
  2274 + map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  2275 +
  2276 + double ljgl= culateService.culateLjgl(lists);
  2277 + double sjyygl= culateService.culateSjgl(lists);
  2278 + double zyygl= Arith.add(sjyygl,ljgl);
  2279 +
  2280 + double sjjccgl=culateService.culateJccgl(lists);
  2281 + double sjksgl=culateService.culateKsgl(lists);
  2282 + double zksgl=Arith.add(sjjccgl, sjksgl);
  2283 + map.put("sjzgl", Arith.add(zyygl, zksgl));
  2284 + map.put("sjgl",zyygl);
  2285 + map.put("sjksgl", zksgl);
  2286 +
2266 2287 map.put("ssgl", culateService.culateLbgl(lists));
2267 2288 map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
2268 2289 map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
... ... @@ -2276,7 +2297,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2276 2297 map.put("ssgl_yw", culateService.culateCJLC(lists, "援外"));
2277 2298 map.put("ssgl_other", culateService.culateCJLC(lists, "其他"));
2278 2299 map.put("ssbc", culateService.culateLbbc(lists));
2279   - map.put("ljgl", culateService.culateLjgl(lists));
  2300 + map.put("ljgl", ljgl);
2280 2301 map.put("jhbc", culateService.culateJhbc(lists,""));
2281 2302 map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
2282 2303 map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
... ... @@ -2339,8 +2360,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2339 2360  
2340 2361 Map<String, Object> map = new HashMap<String, Object>();
2341 2362 map.put("xlName", "合计");
2342   - map.put("jhlc", culateService.culateJhgl(list));
2343   - map.put("sjgl", Arith.add(culateService.culateSjgl(list),culateService.culateLjgl(list)));
  2363 + double jhyygl=culateService.culateJhgl(list);//计划营运公里
  2364 + double jhjcclc= culateService.culateJhJccgl(list);//计划进出场公里(计划空驶公里)
  2365 + map.put("jhlc", jhyygl);
  2366 + map.put("jcclc", jhjcclc);
  2367 + map.put("jhzlc", Arith.add(jhyygl, jhjcclc));
  2368 +
  2369 + double ljgl= culateService.culateLjgl(list);
  2370 + double sjyygl= culateService.culateSjgl(list);
  2371 + double zyygl= Arith.add(sjyygl,ljgl);
  2372 +
  2373 + double sjjccgl=culateService.culateJccgl(list);
  2374 + double sjksgl=culateService.culateKsgl(list);
  2375 + double zksgl=Arith.add(sjjccgl, sjksgl);
  2376 + map.put("sjzgl", Arith.add(zyygl, zksgl));
  2377 + map.put("sjgl",zyygl);
  2378 + map.put("sjksgl", zksgl);
2344 2379 map.put("ssgl", culateService.culateLbgl(list));
2345 2380 map.put("ssgl_lz", culateService.culateCJLC(list, "路阻"));
2346 2381 map.put("ssgl_dm", culateService.culateCJLC(list, "吊慢"));
... ... @@ -2354,7 +2389,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2354 2389 map.put("ssgl_yw", culateService.culateCJLC(list, "援外"));
2355 2390 map.put("ssgl_other", culateService.culateCJLC(list, "其他"));
2356 2391 map.put("ssbc", culateService.culateLbbc(list));
2357   - map.put("ljgl", culateService.culateLjgl(list));
  2392 + map.put("ljgl", ljgl);
2358 2393 map.put("jhbc", culateService.culateJhbc(list,""));
2359 2394 map.put("jhbc_m", culateService.culateJhbc(list, "zgf"));
2360 2395 map.put("jhbc_a", culateService.culateJhbc(list, "wgf"));
... ... @@ -2529,7 +2564,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2529 2564 list.add(t);
2530 2565 }
2531 2566  
2532   - List<ScheduleRealInfo> listInfo2 = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
  2567 + List<ScheduleRealInfo> listInfo2 = scheduleRealInfoRepository.scheduleByDateAndLineQp(line, date);
2533 2568 List<ScheduleRealInfo> xList = new ArrayList<ScheduleRealInfo>();
2534 2569 List<ScheduleRealInfo> yList = new ArrayList<ScheduleRealInfo>();
2535 2570 List<ScheduleRealInfo> zList = new ArrayList<ScheduleRealInfo>();
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -181,10 +181,10 @@ public class ReportServiceImpl implements ReportService{
181 181 try {
182 182 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
183 183 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
184   - Long date1=simpleDateFormat.parse(fcsj+" 00:00:00").getTime();
185   - Long date2=simpleDateFormat.parse(ddsj+" 23:59:59").getTime();
186   - Date dates1=simpleDateFormat.parse(fcsj+" 00:00:00");
187   - Date dates2=simpleDateFormat.parse(ddsj+" 00:00:00");
  184 + Long date1=simpleDateFormat.parse(fcsj+":00").getTime();
  185 + Long date2=simpleDateFormat.parse(ddsj+":00").getTime();
  186 + Date dates1=simpleDateFormat.parse(fcsj+":00");
  187 + Date dates2=simpleDateFormat.parse(ddsj+":00");
188 188 List<ArrivalInfo> lists=load2(line,date1,date2,dates1,dates2,zd,zdlx);
189 189  
190 190 for(int i=0;i<lists.size();i++){
... ...
src/main/java/com/bsth/service/schedule/TTInfoDetailService.java
... ... @@ -28,12 +28,10 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
28 28 /** 是偶分班 */
29 29 private Boolean isfb;
30 30  
31   - /** 起点站 */
32   - private Integer qdz;
33   - /** 终点站 */
34   - private Integer zdz;
35   - /** 停车场 */
36   - private Integer tcc;
  31 + /** 起点站code */
  32 + private String qdzCode;
  33 + /** 终点站code */
  34 + private String zdzCode;
37 35  
38 36 public FcInfo() {
39 37 }
... ... @@ -44,9 +42,8 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
44 42 String fcsj,
45 43 String xldir,
46 44 String isfb,
47   - String qdz,
48   - String zdz,
49   - String tcc) {
  45 + String qdzCode,
  46 + String zdzCode) {
50 47 this.ttdid = StringUtils.isEmpty(ttdid_str) ? null : Long.valueOf(ttdid_str);
51 48 this.bc_type = bc_type;
52 49 this.fcsj = fcsj;
... ... @@ -58,14 +55,11 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
58 55 else
59 56 this.isfb = false;
60 57  
61   - if (StringUtils.isNotEmpty(qdz) && !"null".equals(qdz)) {
62   - this.qdz = Integer.valueOf(qdz);
  58 + if (StringUtils.isNotEmpty(qdzCode) && !"null".equals(qdzCode)) {
  59 + this.qdzCode = qdzCode;
63 60 }
64   - if (StringUtils.isNotEmpty(zdz) && !"null".equals(zdz)) {
65   - this.zdz = Integer.valueOf(zdz);
66   - }
67   - if (StringUtils.isNotEmpty(tcc) && !"null".equals(tcc)) {
68   - this.tcc = Integer.valueOf(tcc);
  61 + if (StringUtils.isNotEmpty(zdzCode) && !"null".equals(zdzCode)) {
  62 + this.zdzCode = zdzCode;
69 63 }
70 64  
71 65 }
... ... @@ -110,28 +104,20 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
110 104 this.isfb = isfb;
111 105 }
112 106  
113   - public Integer getQdz() {
114   - return qdz;
115   - }
116   -
117   - public void setQdz(Integer qdz) {
118   - this.qdz = qdz;
  107 + public String getQdzCode() {
  108 + return qdzCode;
119 109 }
120 110  
121   - public Integer getZdz() {
122   - return zdz;
  111 + public void setQdzCode(String qdzCode) {
  112 + this.qdzCode = qdzCode;
123 113 }
124 114  
125   - public void setZdz(Integer zdz) {
126   - this.zdz = zdz;
  115 + public String getZdzCode() {
  116 + return zdzCode;
127 117 }
128 118  
129   - public Integer getTcc() {
130   - return tcc;
131   - }
132   -
133   - public void setTcc(Integer tcc) {
134   - this.tcc = tcc;
  119 + public void setZdzCode(String zdzCode) {
  120 + this.zdzCode = zdzCode;
135 121 }
136 122 }
137 123  
... ... @@ -202,4 +188,6 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
202 188 List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId);
203 189  
204 190 Map<String, Object> skbDetailMxSave(Map<String, Object> map);
  191 +
  192 + List<Map<String, Object>> findZdAndTcc(int lineid, int xldir);
205 193 }
... ...
src/main/java/com/bsth/service/schedule/impl/SchedulePlanServiceImpl.java
... ... @@ -8,6 +8,7 @@ import com.bsth.repository.LineRepository;
8 8 import com.bsth.repository.schedule.*;
9 9 import com.bsth.service.schedule.SchedulePlanRuleResultService;
10 10 import com.bsth.service.schedule.SchedulePlanService;
  11 +import com.bsth.service.schedule.rules.ScheduleRuleService;
11 12 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input;
12 13 import com.bsth.service.schedule.rules.plan.PlanResult;
13 14 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
... ... @@ -55,7 +56,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
55 56 @Autowired
56 57 private SchedulePlanRuleResultService schedulePlanRuleResultService;
57 58 @Autowired
58   - private SchedulePlanRuleResultRepository schedulePlanRuleResultRepository;
  59 + private ScheduleRuleService scheduleRuleService;
59 60  
60 61 /** 日志记录器 */
61 62 private Logger logger = LoggerFactory.getLogger(SchedulePlanServiceImpl.class);
... ... @@ -89,7 +90,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
89 90 // 设置gloable对象,在drl中通过别名使用
90 91 session.setGlobal("scheduleResult", scheduleResults_output);
91 92 session.setGlobal("log", logger); // 设置日志
92   - session.setGlobal("schedulePlanRuleResultRepository", schedulePlanRuleResultRepository);
  93 + session.setGlobal("scheduleRuleService", scheduleRuleService);
93 94  
94 95 // 载入数据
95 96 session.insert(scheduleCalcuParam_input);
... ...
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
... ... @@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory;
37 37 import org.springframework.beans.factory.annotation.Autowired;
38 38 import org.springframework.beans.factory.annotation.Qualifier;
39 39 import org.springframework.boot.context.properties.EnableConfigurationProperties;
  40 +import org.springframework.jdbc.core.JdbcTemplate;
40 41 import org.springframework.stereotype.Service;
41 42 import org.springframework.transaction.annotation.Transactional;
42 43 import org.springframework.util.CollectionUtils;
... ... @@ -85,6 +86,28 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
85 86 @Qualifier(value = "dataToolsServiceImpl")
86 87 private DataToolsService dataToolsService;
87 88  
  89 + @Autowired
  90 + private JdbcTemplate jdbcTemplate;
  91 +
  92 + /**
  93 + * 查找站点和停车场集合
  94 + * @param lineid 线路id
  95 + * @param xldir 线路上下行
  96 + * @return
  97 + */
  98 + public List<Map<String, Object>> findZdAndTcc(int lineid, int xldir) {
  99 + String sql = "select * from " +
  100 + "(" +
  101 + "select station_code as zcode, station_name as zname from bsth_c_stationroute " +
  102 + "where destroy = 0 and line = ? and directions = ? " +
  103 + "union all " +
  104 + "select park_code as zcode, park_name as zname from bsth_c_car_park " +
  105 + "where destroy = 0 " +
  106 + ") a ";
  107 +
  108 + return jdbcTemplate.queryForList(sql, lineid, xldir);
  109 + }
  110 +
88 111 @Override
89 112 public TTInfoDetail findById(Long aLong) {
90 113 return ttInfoDetailRepository.findOneExtend(aLong);
... ... @@ -294,7 +317,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
294 317 for (int r = 1; r < sheet.getRows(); r++) {
295 318 List<FcInfo> fcInfos = new ArrayList<>();
296 319 // 每行第一列都是路牌
297   - fcInfos.add(new FcInfo(null, null, sheet.getCell(0, r).getContents(), null, null, null, null, null)); // 用fcsj放置路牌显示
  320 + fcInfos.add(new FcInfo(null, null, sheet.getCell(0, r).getContents(), null, null, null, null)); // 用fcsj放置路牌显示
298 321  
299 322 int bc_ks = 0; // 空驶班次
300 323 int bc_yy = 0; // 营运班次
... ... @@ -314,11 +337,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
314 337 String xldir = content == null ? "" : content[5]; // 线路上下行
315 338 String isfb = content == null ? "" : content[6]; // 是否分班
316 339  
317   - String qdz = content == null ? "" : content[7]; // 起点站
318   - String zdz = content == null ? "" : content[8]; // 终点站
319   - String tcc = content == null ? "" : content[9]; // 停车场
  340 + String qdzCode = content == null ? "" : content[7]; // 起点站编码
  341 + String zdzCode = content == null ? "" : content[8]; // 终点站编码
320 342  
321   - FcInfo fcInfo = new FcInfo(ttdid_str, bctype, fcsj, xldir, isfb, qdz, zdz, tcc);
  343 + FcInfo fcInfo = new FcInfo(ttdid_str, bctype, fcsj, xldir, isfb, qdzCode, zdzCode);
322 344  
323 345 if (StringUtils.isNotEmpty(fzdname))
324 346 headarrays[c] = fzdname;
... ... @@ -344,6 +366,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
344 366 }
345 367  
346 368 } catch (Exception exp) {
  369 + exp.printStackTrace();
347 370 LOGGER.info("第{}行,第{}列数据有问题,数据={},异常message={}", r, c, content_str, exp.getCause());
348 371 break;
349 372 }
... ... @@ -351,10 +374,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
351 374 }
352 375  
353 376 // 添加一列 空驶班次/空驶里程,fcsj放置数据
354   - fcInfos.add(new FcInfo(null, null, String.format("%d/%.2f", bc_ks, lc_ks), null, null, null, null, null));
  377 + fcInfos.add(new FcInfo(null, null, String.format("%d/%.2f", bc_ks, lc_ks), null, null, null, null));
355 378  
356 379 // 添加一列 营运班次/营运里程,fcsj放置数据
357   - fcInfos.add(new FcInfo(null, null, String.format("%d/%.2f", bc_yy, lc_yy), null, null, null, null, null));
  380 + fcInfos.add(new FcInfo(null, null, String.format("%d/%.2f", bc_yy, lc_yy), null, null, null, null));
358 381  
359 382 editInfo.getContents().add(fcInfos);
360 383 }
... ... @@ -421,6 +444,8 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
421 444 throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中不是起点站", i + 1, cell_con.trim(), linename));
422 445 } else if (stationRouteList.size() > 1) {
423 446 throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中上下行都是起点站", i + 1, cell_con.trim(), linename));
  447 + } else if (StringUtils.isEmpty(stationRouteList.get(0).getStationCode())) {
  448 + throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中没有站点编码", i + 1, cell_con.trim(), linename));
424 449 }
425 450 }
426 451  
... ...
src/main/java/com/bsth/service/schedule/rules/ScheduleRuleService.java 0 → 100644
  1 +package com.bsth.service.schedule.rules;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +
  5 +import java.util.Date;
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * 排班计划使用的service。
  10 + */
  11 +public interface ScheduleRuleService {
  12 +
  13 + // TODO:之后所有排班使用的方法汇总到这里
  14 +
  15 + /**
  16 + * 查找最近的历史排班记录
  17 + * @param xlid 线路id
  18 + * @param from 开始时间
  19 + * @return
  20 + */
  21 + List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from);
  22 +}
... ...
src/main/java/com/bsth/service/schedule/rules/ScheduleRuleServiceImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.rules;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +import org.springframework.beans.factory.annotation.Autowired;
  5 +import org.springframework.jdbc.core.JdbcTemplate;
  6 +import org.springframework.jdbc.core.RowMapper;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import java.sql.ResultSet;
  10 +import java.sql.SQLException;
  11 +import java.util.Date;
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * Created by xu on 17/4/19.
  16 + */
  17 +@Service
  18 +public class ScheduleRuleServiceImpl implements ScheduleRuleService {
  19 +
  20 + @Autowired
  21 + private JdbcTemplate jdbcTemplate;
  22 +
  23 + @Override
  24 + public List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from) {
  25 + String sql = "select * from bsth_c_s_sp_rule_rst a " +
  26 + "where exists (select 1 from " +
  27 + "(select t.rule_id as rid, max(t.schedule_date) as sd from bsth_c_s_sp_rule_rst t " +
  28 + "where t.xl_id = ? and t.schedule_date < ? " +
  29 + "group by t.rule_id) a2 " +
  30 + "where a.rule_id = rid and a.schedule_date = sd) ";
  31 +
  32 + return jdbcTemplate.query(sql, new Object[]{xlid, from}, new RowMapper<SchedulePlanRuleResult>() {
  33 + @Override
  34 + public SchedulePlanRuleResult mapRow(ResultSet rs, int i) throws SQLException {
  35 + SchedulePlanRuleResult obj = new SchedulePlanRuleResult();
  36 + obj.setRuleId(rs.getString("rule_id"));
  37 + obj.setScheduleDate(rs.getDate("schedule_date"));
  38 + obj.setGidindex(rs.getString("gidindex"));
  39 + obj.setEcindex(rs.getString("ecindex"));
  40 +
  41 + // 其他字段没用
  42 + return obj;
  43 + }
  44 + });
  45 + }
  46 +}
... ...
src/main/java/com/bsth/service/schedule/rules/ttinfo2/ErrorBcCountFunction.java
1 1 package com.bsth.service.schedule.rules.ttinfo2;
2 2  
3 3 import com.bsth.entity.schedule.TTInfoDetail;
  4 +import org.apache.commons.lang3.StringUtils;
4 5 import org.kie.api.runtime.rule.AccumulateFunction;
5 6  
6 7 import java.io.*;
... ... @@ -58,18 +59,12 @@ public class ErrorBcCountFunction implements AccumulateFunction {
58 59 return;
59 60 }
60 61  
61   - if ("in".equals(ttInfoDetail.getBcType())) {
62   - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getTcc() == null) {
63   - errorCountData.errorcount ++;
64   - }
65   - } else if ("out".equals(ttInfoDetail.getBcType())) {
66   - if (ttInfoDetail.getTcc() == null || ttInfoDetail.getZdz() == null) {
67   - errorCountData.errorcount ++;
68   - }
69   - } else {
70   - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getZdz() == null) {
71   - errorCountData.errorcount ++;
72   - }
  62 + if (StringUtils.isEmpty(ttInfoDetail.getQdzCode()) ||
  63 + StringUtils.isEmpty(ttInfoDetail.getQdzName()) ||
  64 + StringUtils.isEmpty(ttInfoDetail.getZdzCode()) ||
  65 + StringUtils.isEmpty(ttInfoDetail.getZdzName()) ) {
  66 +
  67 + errorCountData.errorcount ++;
73 68 }
74 69 }
75 70  
... ... @@ -83,18 +78,12 @@ public class ErrorBcCountFunction implements AccumulateFunction {
83 78 return;
84 79 }
85 80  
86   - if ("in".equals(ttInfoDetail.getBcType())) {
87   - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getTcc() == null) {
88   - errorCountData.errorcount --;
89   - }
90   - } else if ("out".equals(ttInfoDetail.getBcType())) {
91   - if (ttInfoDetail.getTcc() == null || ttInfoDetail.getZdz() == null) {
92   - errorCountData.errorcount --;
93   - }
94   - } else {
95   - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getZdz() == null) {
96   - errorCountData.errorcount --;
97   - }
  81 + if (StringUtils.isEmpty(ttInfoDetail.getQdzCode()) ||
  82 + StringUtils.isEmpty(ttInfoDetail.getQdzName()) ||
  83 + StringUtils.isEmpty(ttInfoDetail.getZdzCode()) ||
  84 + StringUtils.isEmpty(ttInfoDetail.getZdzName()) ) {
  85 +
  86 + errorCountData.errorcount --;
98 87 }
99 88  
100 89 }
... ...
src/main/resources/application-dev.properties
... ... @@ -8,9 +8,9 @@ spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
8 8 spring.jpa.database= MYSQL
9 9 spring.jpa.show-sql= true
10 10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11   -spring.datasource.url= jdbc:mysql://localhost/control?useUnicode=true&characterEncoding=utf-8&useSSL=false
  11 +spring.datasource.url= jdbc:mysql://127.0.0.1/control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 12 spring.datasource.username= root
13   -spring.datasource.password= root123
  13 +spring.datasource.password=
14 14 #spring.datasource.url= jdbc:mysql://192.168.168.117/pd_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
15 15 #spring.datasource.username= root
16 16 #spring.datasource.password= root
... ...
src/main/resources/datatools/config-dev.properties
... ... @@ -10,7 +10,7 @@ datatools.kvars_dbuname=root
10 10 #数据库密码
11 11 datatools.kvars_dbpwd=
12 12 #数据库库名
13   -datatools.kvars_dbdname=qp_control
  13 +datatools.kvars_dbdname=control
14 14  
15 15 # 3、上传数据配置信息
16 16 # 上传文件目录配置(根据不同的环境需要修正)
... ...