Commit 89abebb9345a7d51e490530f72fb5a23c267ca28

Authored by 潘钊
2 parents 87be28a3 4935c902

Merge branch 'minhang' into qingpu

# Conflicts:
#	src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
#	src/main/resources/application-dev.properties
Showing 51 changed files with 2158 additions and 507 deletions

Too many changes to show.

To preserve performance only 51 of 97 files are displayed.

src/main/java/com/bsth/controller/forms/MCY_FormsController.java
... ... @@ -115,7 +115,7 @@ public class MCY_FormsController {
115 115 }
116 116  
117 117 // 营运线路名称统计表
118   - @RequestMapping(value = "/daily", method = RequestMethod.POST)
  118 + @RequestMapping(value = "/daily", method = RequestMethod.GET)
119 119 public List<Daily> daily(@RequestParam Map<String, Object> map) {
120 120  
121 121 return formsService.daily(map);
... ...
src/main/java/com/bsth/controller/oil/CwjyController.java
... ... @@ -2,6 +2,8 @@ package com.bsth.controller.oil;
2 2  
3 3  
4 4 import java.util.Date;
  5 +import java.util.HashMap;
  6 +import java.util.List;
5 7 import java.util.Map;
6 8  
7 9 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -31,9 +33,9 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
31 33 return service.save(t);
32 34 }
33 35  
34   - @RequestMapping(value = "/pagequery",method = RequestMethod.GET)
35   - public PageObject<Ylxxb> pagequery(@RequestParam Map<String, Object> map){
36   - PageObject<Ylxxb> pagequery=null;
  36 + @RequestMapping(value = "/queryList",method = RequestMethod.GET)
  37 + public List<Ylxxb> queryList(@RequestParam Map<String, Object> map){
  38 + List<Ylxxb> pagequery=null;
37 39 map.put("curPage", map.get("page").toString());
38 40 map.put("pageData","10");
39 41 pagequery=service.Pagequery(map);
... ... @@ -56,9 +58,15 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
56 58 * @throws
57 59 */
58 60 @RequestMapping(value="/savejzl",method = RequestMethod.POST)
59   - public Map<String, Object> savejzl(Ylxxb t){
60   - Map<String, Object> map=service.savejzl(t);
61   - return map;
  61 + public Map<String, Object> savejzl(Map<String, Object> map){
  62 + Map<String, Object> maps=new HashMap<>();
  63 + try {
  64 + maps = service.savejzl(map);
  65 + } catch (Exception e) {
  66 + // TODO Auto-generated catch block
  67 + e.printStackTrace();
  68 + }
  69 + return maps;
62 70 }
63 71  
64 72 }
... ...
src/main/java/com/bsth/controller/oil/YlbController.java
... ... @@ -16,6 +16,7 @@ import org.springframework.data.domain.Page;
16 16 import org.springframework.data.domain.PageRequest;
17 17 import org.springframework.data.domain.Sort;
18 18 import org.springframework.data.domain.Sort.Direction;
  19 +import org.springframework.web.bind.annotation.PathVariable;
19 20 import org.springframework.web.bind.annotation.RequestMapping;
20 21 import org.springframework.web.bind.annotation.RequestMethod;
21 22 import org.springframework.web.bind.annotation.RequestParam;
... ... @@ -40,7 +41,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
40 41 // SysUser user = SecurityUtils.getCurrentUser();
41 42 t.setCreatetime(new Date());
42 43 // Ylb t=new Ylb();
43   - return yblService.save(t);
  44 + return yblService.saveYlb(t);
44 45 }
45 46  
46 47  
... ... @@ -196,6 +197,17 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
196 197 return ylbList;
197 198 }
198 199  
  200 + @RequestMapping(value = "/deleteIds", method = RequestMethod.POST)
  201 + public Map<String, Object> deleteIds(@RequestParam Map<String, Object> map) {
  202 + Map<String, Object> maps=new HashMap<String, Object>();
  203 + try {
  204 + maps= yblService.deleteIds(map);
  205 + } catch (Exception e) {
  206 + // TODO Auto-generated catch block
  207 + e.printStackTrace();
  208 + }
  209 + return maps;
  210 + }
199 211 @RequestMapping(value="/oilListMonth")
200 212 public List<Ylb> oilListMonth(@RequestParam String line,@RequestParam String date){
201 213 return yblService.oilListMonth(line, date);
... ... @@ -219,17 +231,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
219 231 sdfSimple = new SimpleDateFormat("yyyyMMdd");
220 232 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
221 233 ReportUtils ee = new ReportUtils();
222   - String rq=map.get("rq").toString();
223   - if(!(rq=="")){
224   - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
225   - try {
226   - map.put("rq_eq", sdfMonth.parse(rq));
227   - } catch (ParseException e) {
228   - // TODO Auto-generated catch block
229   - e.printStackTrace();
230   - }
231   - }
232   - List<Ylb> ylb= (List<Ylb>)yblService.list(map);
  234 + List<Ylb> ylb= yblService.listYlb(map);
233 235 // (new CustomerSpecs<Ylb>(map)).iterator();
234 236 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
235 237 for (Ylb y : ylb) {
... ... @@ -245,12 +247,28 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
245 247 m.put("czyl", y.getCzyl());
246 248 m.put("jzyl", y.getJzyl());
247 249 m.put("yh", y.getYh());
248   - m.put("rylx", y.getRylx());
  250 + String rylx="";
  251 + if(y.getRylx()!=null){
  252 + if(y.getRylx().equals("0")){rylx="0号柴油";}
  253 + if(y.getRylx().equals("1")){rylx="负10号柴油";}
  254 + }
  255 + m.put("rylx", rylx);
249 256 m.put("ns", y.getNs());
250   - m.put("shyy", y.getShyy());
  257 + String shyy ="无";
  258 + if(y.getShyy()!=null){
  259 + if(shyy.equals("1")){shyy="票务用油";}
  260 + else if(shyy.equals("2")){shyy="保养用油";}
  261 + else if(shyy.equals("3")){shyy="报废车用油";}
  262 + else if(shyy.equals("4")){shyy="其它用油";}
  263 + else if(shyy.equals("5")){shyy="人保部";}
  264 + else if(shyy.equals("6")){shyy="车队";}
  265 + else if(shyy.equals("7")){shyy="车间(高保)";}
  266 + else if(shyy.equals("8")){shyy="车间(小修)";}
  267 + else{shyy ="无";}
  268 + }
  269 + m.put("shyy", shyy);
251 270 m.put("sh", y.getSh());
252 271 m.put("zlc", y.getZlc());
253   - m.put("yhlx", y.getYhlx());
254 272 m.put("bglyh", y.getBglyh());
255 273 resList.add(m);
256 274 }
... ... @@ -258,7 +276,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
258 276 listI.add(resList.iterator());
259 277 String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
260 278 ee.excelReplace(listI, new Object[] { map }, path+"mould/list.xls",
261   - path+"export/进出场存油量" + sdfSimple.format(sdfMonth.parse(map.get("rq").toString())) + ".xls");
  279 + path+"export/"+map.get("rq").toString()+ "进出场存油量.xls");
262 280 } catch (Exception e) {
263 281 e.printStackTrace();
264 282 }
... ...
src/main/java/com/bsth/controller/oil/YlxxbController.java
1 1 package com.bsth.controller.oil;
2 2  
  3 +import java.util.HashMap;
3 4 import java.util.Map;
4 5  
5 6 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -33,9 +34,15 @@ public class YlxxbController extends BaseController&lt;Ylxxb, Integer&gt;{
33 34 * @param map
34 35 * @return
35 36 */
36   - @RequestMapping(value = "/check",method = RequestMethod.GET)
  37 + @RequestMapping(value = "/check",method = RequestMethod.POST)
37 38 public Map<String, Object> check(@RequestParam Map<String, Object> map){
38   - Map<String, Object> list=service.checkJsy(map);
  39 + Map<String, Object> list=new HashMap<>();
  40 + try {
  41 + list = service.checkJsy(map);
  42 + } catch (Exception e) {
  43 + // TODO Auto-generated catch block
  44 + e.printStackTrace();
  45 + }
39 46 return list;
40 47 }
41 48 }
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -314,9 +314,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
314 314 }
315 315  
316 316 @RequestMapping(value="/findKMBC",method = RequestMethod.GET)
317   - public Map<String,Object> findKMBC(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName
  317 + public Map<String,Object> findKMBC(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName
318 318 ,@RequestParam String date,@RequestParam String line){
319   - return scheduleRealInfoService.findKMBC(jName, clZbh,lpName,date,line);
  319 + return scheduleRealInfoService.findKMBC(jGh, clZbh,lpName,date,line);
320 320 }
321 321  
322 322 @RequestMapping(value="/findKMBCQp",method = RequestMethod.GET)
... ...
src/main/java/com/bsth/controller/report/ReportController.java
1 1 package com.bsth.controller.report;
2 2  
  3 +import java.util.HashMap;
3 4 import java.util.List;
4 5 import java.util.Map;
5 6  
... ... @@ -78,5 +79,38 @@ public class ReportController {
78 79 public List<Map<String,Object>> getTtinfo(@RequestParam Map<String, Object> map){
79 80 return service.getTtinfo(map);
80 81 }
  82 +
  83 +
  84 + @RequestMapping(value="/jobFwqk", method = RequestMethod.GET)
  85 + public List<Map<String,Object>> jobFwqk(@RequestParam Map<String, Object> map){
  86 + return service.jobFwqk(map);
  87 + }
  88 +
  89 + @RequestMapping(value="/jobHzxx", method = RequestMethod.GET)
  90 + public Map<String,Object> jobHzxx(@RequestParam Map<String, Object> map){
  91 + Map<String, Object> newMap=service.jobHzxx(map);
  92 + return newMap;
  93 + }
  94 +
81 95  
  96 + @RequestMapping(value="/jobLjqk", method = RequestMethod.GET)
  97 + public List<Map<String,Object>> jobLjqk(@RequestParam Map<String, Object> map){
  98 + return service.jobLjqk(map);
  99 + }
  100 +
  101 + @RequestMapping(value="/lineList",method = RequestMethod.GET)
  102 + public List<Map<String,Object>> lineList(){
  103 + return service.lineList();
  104 + }
  105 +
  106 + @RequestMapping(value="/carList",method = RequestMethod.GET)
  107 + public List<Map<String,String>> carList(@RequestParam Map<String, Object> map){
  108 + return service.carList(map);
  109 + }
  110 +
  111 + @RequestMapping(value="/userList",method = RequestMethod.GET)
  112 + public List<Map<String,String>> userList(@RequestParam Map<String, Object> map){
  113 + return service.userList(map);
  114 + }
  115 +
82 116 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/CorrectSignalHandle.java
... ... @@ -6,6 +6,9 @@ import com.bsth.data.gpsdata.arrival.utils.CircleQueue;
6 6 import com.bsth.data.schedule.DayOfSchedule;
7 7 import com.bsth.entity.realcontrol.ChildTaskPlan;
8 8 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  9 +import com.bsth.service.directive.DirectiveService;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
9 12 import org.springframework.beans.factory.annotation.Autowired;
10 13 import org.springframework.stereotype.Component;
11 14  
... ... @@ -18,6 +21,10 @@ public class CorrectSignalHandle extends SignalHandle {
18 21  
19 22 @Autowired
20 23 DayOfSchedule dayOfSchedule;
  24 + @Autowired
  25 + DirectiveService directiveService;
  26 +
  27 + Logger logger = LoggerFactory.getLogger(this.getClass());
21 28  
22 29 @Override
23 30 public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) {
... ... @@ -41,6 +48,11 @@ public class CorrectSignalHandle extends SignalHandle {
41 48 gps.setState(0);
42 49 }
43 50  
  51 + if(gps.getState() != 0){
  52 + logger.info(gps.getNbbm() + " 纠正状态到营运");
  53 + //切换到营运状态
  54 + directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "纠正@系统");
  55 + }
44 56  
45 57 return true;
46 58 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -235,6 +235,10 @@ public class InOutStationSignalHandle extends SignalHandle{
235 235  
236 236 //下发调度指令
237 237 directiveService.send60Dispatch(next, doneSum, "到站@系统");
  238 +
  239 + //套跑 -下发线路切换指令
  240 + if(!next.getXlBm().equals(sch.getXlBm()))
  241 + directiveService.lineChange(next.getClZbh(), next.getXlBm(), "套跑@系统");
238 242 }
239 243 else if(sch.getBcType().equals("in")){
240 244 //终班进场,切换成非营运状态
... ...
src/main/java/com/bsth/entity/Cars.java
... ... @@ -2,6 +2,7 @@ package com.bsth.entity;
2 2  
3 3 import com.bsth.entity.schedule.BEntity;
4 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5 +import org.hibernate.annotations.Formula;
5 6  
6 7 import javax.persistence.*;
7 8 import java.io.Serializable;
... ... @@ -47,6 +48,10 @@ public class Cars extends BEntity implements Serializable {
47 48 /** 分公司 */
48 49 private String brancheCompany;
49 50  
  51 + /** 组合公司分公司编码 */
  52 + @Formula(" concat(business_code, '_', branche_company_code) ")
  53 + private String cgsbm;
  54 +
50 55 /** 车辆编码(TODO:在原系统里没有,这里暂时留着) */
51 56 @Column(nullable = false)
52 57 private String carCode;
... ... @@ -499,4 +504,12 @@ public class Cars extends BEntity implements Serializable {
499 504 public void setXlmc(String xlmc) {
500 505 this.xlmc = xlmc;
501 506 }
  507 +
  508 + public String getCgsbm() {
  509 + return cgsbm;
  510 + }
  511 +
  512 + public void setCgsbm(String cgsbm) {
  513 + this.cgsbm = cgsbm;
  514 + }
502 515 }
... ...
src/main/java/com/bsth/entity/Line.java
1 1 package com.bsth.entity;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  4 +import org.hibernate.annotations.Formula;
4 5 import org.springframework.format.annotation.DateTimeFormat;
5 6  
6 7 import javax.persistence.*;
... ... @@ -69,6 +70,10 @@ public class Line implements Serializable {
69 70 /** 分公司 varchar length(50)*/
70 71 private String brancheCompany;
71 72  
  73 + /** 组合公司分公司编码 */
  74 + @Formula(" concat(company, '_', branche_company) ")
  75 + private String cgsbm;
  76 +
72 77 /** 性质(线路类型) varchar length(50) */
73 78 private String nature;
74 79  
... ... @@ -457,4 +462,12 @@ public class Line implements Serializable {
457 462 public Integer getInUse() { return inUse; }
458 463  
459 464 public void setInUse(Integer inUse) { this.inUse = inUse; }
  465 +
  466 + public String getCgsbm() {
  467 + return cgsbm;
  468 + }
  469 +
  470 + public void setCgsbm(String cgsbm) {
  471 + this.cgsbm = cgsbm;
  472 + }
460 473 }
... ...
src/main/java/com/bsth/entity/Personnel.java
... ... @@ -2,6 +2,7 @@ package com.bsth.entity;
2 2  
3 3 import com.bsth.entity.schedule.BEntity;
4 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5 +import org.hibernate.annotations.Formula;
5 6  
6 7 import javax.persistence.*;
7 8  
... ... @@ -39,6 +40,10 @@ public class Personnel extends BEntity {
39 40 private String brancheCompany;
40 41 /** 分公司编码 */
41 42 private String brancheCompanyCode;
  43 + /** 组合公司分公司编码 */
  44 + @Formula(" concat(company_code, '_', branche_company_code) ")
  45 + private String cgsbm;
  46 +
42 47 /** 工号 */
43 48 @Column(nullable = false)
44 49 private String jobCode;
... ... @@ -218,4 +223,12 @@ public class Personnel extends BEntity {
218 223 public void setDescriptions(String descriptions) {
219 224 this.descriptions = descriptions;
220 225 }
  226 +
  227 + public String getCgsbm() {
  228 + return cgsbm;
  229 + }
  230 +
  231 + public void setCgsbm(String cgsbm) {
  232 + this.cgsbm = cgsbm;
  233 + }
221 234 }
... ...
src/main/java/com/bsth/entity/schedule/SchedulePlan.java
1 1 package com.bsth.entity.schedule;
2 2  
3 3 import com.bsth.entity.Line;
4   -import com.bsth.entity.schedule.rule.ScheduleRule1;
5 4 import com.fasterxml.jackson.annotation.JsonIgnore;
6 5  
7 6 import javax.persistence.*;
... ... @@ -15,9 +14,8 @@ import java.util.List;
15 14 @Entity
16 15 @Table(name = "bsth_c_s_sp")
17 16 @NamedEntityGraphs({
18   - @NamedEntityGraph(name = "schedulePlan_xl_ttinfo", attributeNodes = {
  17 + @NamedEntityGraph(name = "schedulePlan_xl", attributeNodes = {
19 18 @NamedAttributeNode("xl"),
20   - @NamedAttributeNode("ttInfo")
21 19 })
22 20 })
23 21 public class SchedulePlan extends BEntity {
... ... @@ -30,22 +28,6 @@ public class SchedulePlan extends BEntity {
30 28 /** 关联的线路 */
31 29 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
32 30 private Line xl;
33   - /** 关联的时刻表/模版 */
34   - // TODO:这个字段之后就不用了
35   - @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
36   - private TTInfo ttInfo;
37   - /** TODO:关联的排班规则(这里暂时改成可以不关联规则,直接生成排班) */
38   - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
39   - private ScheduleRule1 scheduleRule1;
40   -
41   - // TODO: 新字段,测试完后删除旧的字段
42   -
43   - /** 使用的时刻表名字列表(用逗号连接) */
44   - private String ttInfoNames;
45   - /** 使用的时刻表id列表(用逗号连接) */
46   - private String ttInfoId;
47   - /** 使用的规则1列表(用逗号连接) */
48   - private String rule1Ids;
49 31  
50 32 /** 排班计划的开始时间 */
51 33 @Column(nullable = false)
... ... @@ -54,6 +36,11 @@ public class SchedulePlan extends BEntity {
54 36 @Column(nullable = false)
55 37 private Date scheduleToTime;
56 38  
  39 + /** 使用的时刻表名字列表(用逗号连接) */
  40 + private String ttInfoNames;
  41 + /** 使用的时刻表id列表(用逗号连接) */
  42 + private String ttInfoIds;
  43 +
57 44 @JsonIgnore
58 45 /** 使用中间表的一对多关联 明细信息 */
59 46 @OneToMany(mappedBy = "schedulePlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
... ... @@ -75,22 +62,6 @@ public class SchedulePlan extends BEntity {
75 62 this.xl = xl;
76 63 }
77 64  
78   - public TTInfo getTtInfo() {
79   - return ttInfo;
80   - }
81   -
82   - public void setTtInfo(TTInfo ttInfo) {
83   - this.ttInfo = ttInfo;
84   - }
85   -
86   - public ScheduleRule1 getScheduleRule1() {
87   - return scheduleRule1;
88   - }
89   -
90   - public void setScheduleRule1(ScheduleRule1 scheduleRule1) {
91   - this.scheduleRule1 = scheduleRule1;
92   - }
93   -
94 65 public Date getScheduleFromTime() {
95 66 return scheduleFromTime;
96 67 }
... ... @@ -123,19 +94,11 @@ public class SchedulePlan extends BEntity {
123 94 this.ttInfoNames = ttInfoNames;
124 95 }
125 96  
126   - public String getTtInfoId() {
127   - return ttInfoId;
128   - }
129   -
130   - public void setTtInfoId(String ttInfoId) {
131   - this.ttInfoId = ttInfoId;
132   - }
133   -
134   - public String getRule1Ids() {
135   - return rule1Ids;
  97 + public String getTtInfoIds() {
  98 + return ttInfoIds;
136 99 }
137 100  
138   - public void setRule1Ids(String rule1Ids) {
139   - this.rule1Ids = rule1Ids;
  101 + public void setTtInfoIds(String ttInfoIds) {
  102 + this.ttInfoIds = ttInfoIds;
140 103 }
141 104 }
... ...
src/main/java/com/bsth/entity/schedule/temp/SchedulePlanRuleResult.java 0 → 100644
  1 +package com.bsth.entity.schedule.temp;
  2 +
  3 +import com.bsth.entity.schedule.SchedulePlan;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.Table;
  9 +import java.util.Date;
  10 +
  11 +/**
  12 + * 排班的中间结果数据,记录每次排班后规则的变化。
  13 + */
  14 +@Entity
  15 +@Table(name = "bsth_c_s_sp_rule_rst")
  16 +public class SchedulePlanRuleResult {
  17 + /** 主键Id */
  18 + @Id
  19 + @GeneratedValue
  20 + private Long id;
  21 +
  22 + /** 线路id */
  23 + private String xlId;
  24 + /** 线路名字 */
  25 + private String xlName;
  26 +
  27 + /** 排班规则id */
  28 + private String ruleId;
  29 + /** 车辆配置id */
  30 + private String ccId;
  31 + /** 车辆自编号 */
  32 + private String ccZbh;
  33 +
  34 + /** 路牌id列表字符串 */
  35 + private String gids;
  36 + /** 路牌名字列表字符串 */
  37 + private String gnames;
  38 + /** 翻到哪个路牌索引 */
  39 + private String gidindex;
  40 + /** 人员配置id列表字符串 */
  41 + private String ecids;
  42 + /** 人员配置搭班编码列表字符串 */
  43 + private String ecdbbms;
  44 + /** 翻到哪个人员配置索引 */
  45 + private String ecindex;
  46 +
  47 + /** 时刻表id */
  48 + private String ttinfoId;
  49 + /** 时刻表名字 */
  50 + private String ttinfoName;
  51 +
  52 + /** 排班日期 */
  53 + private Date scheduleDate;
  54 +
  55 + /** 操作人员id */
  56 + private String sysuserId;
  57 + /** 操作人员姓名 */
  58 + private String sysuserName;
  59 + /** 操作时间 */
  60 + private Date createDate;
  61 +
  62 + public SchedulePlanRuleResult() {
  63 +
  64 + }
  65 + public SchedulePlanRuleResult(SchedulePlan schedulePlan) {
  66 + this.sysuserId = schedulePlan.getCreateBy().getId().toString();
  67 + this.sysuserName = schedulePlan.getCreateBy().getName();
  68 +// this.createDate = schedulePlan.getCreateDate();
  69 + this.createDate = new Date();
  70 + }
  71 +
  72 + public Long getId() {
  73 + return id;
  74 + }
  75 +
  76 + public void setId(Long id) {
  77 + this.id = id;
  78 + }
  79 +
  80 + public String getRuleId() {
  81 + return ruleId;
  82 + }
  83 +
  84 + public void setRuleId(String ruleId) {
  85 + this.ruleId = ruleId;
  86 + }
  87 +
  88 + public String getCcId() {
  89 + return ccId;
  90 + }
  91 +
  92 + public void setCcId(String ccId) {
  93 + this.ccId = ccId;
  94 + }
  95 +
  96 + public String getCcZbh() {
  97 + return ccZbh;
  98 + }
  99 +
  100 + public void setCcZbh(String ccZbh) {
  101 + this.ccZbh = ccZbh;
  102 + }
  103 +
  104 + public String getGids() {
  105 + return gids;
  106 + }
  107 +
  108 + public void setGids(String gids) {
  109 + this.gids = gids;
  110 + }
  111 +
  112 + public String getGnames() {
  113 + return gnames;
  114 + }
  115 +
  116 + public void setGnames(String gnames) {
  117 + this.gnames = gnames;
  118 + }
  119 +
  120 + public String getGidindex() {
  121 + return gidindex;
  122 + }
  123 +
  124 + public void setGidindex(String gidindex) {
  125 + this.gidindex = gidindex;
  126 + }
  127 +
  128 + public String getEcids() {
  129 + return ecids;
  130 + }
  131 +
  132 + public void setEcids(String ecids) {
  133 + this.ecids = ecids;
  134 + }
  135 +
  136 + public String getEcdbbms() {
  137 + return ecdbbms;
  138 + }
  139 +
  140 + public void setEcdbbms(String ecdbbms) {
  141 + this.ecdbbms = ecdbbms;
  142 + }
  143 +
  144 + public String getEcindex() {
  145 + return ecindex;
  146 + }
  147 +
  148 + public void setEcindex(String ecindex) {
  149 + this.ecindex = ecindex;
  150 + }
  151 +
  152 + public Date getScheduleDate() {
  153 + return scheduleDate;
  154 + }
  155 +
  156 + public void setScheduleDate(Date scheduleDate) {
  157 + this.scheduleDate = scheduleDate;
  158 + }
  159 +
  160 + public String getSysuserId() {
  161 + return sysuserId;
  162 + }
  163 +
  164 + public void setSysuserId(String sysuserId) {
  165 + this.sysuserId = sysuserId;
  166 + }
  167 +
  168 + public String getSysuserName() {
  169 + return sysuserName;
  170 + }
  171 +
  172 + public void setSysuserName(String sysuserName) {
  173 + this.sysuserName = sysuserName;
  174 + }
  175 +
  176 + public Date getCreateDate() {
  177 + return createDate;
  178 + }
  179 +
  180 + public void setCreateDate(Date createDate) {
  181 + this.createDate = createDate;
  182 + }
  183 +
  184 + public String getXlId() {
  185 + return xlId;
  186 + }
  187 +
  188 + public void setXlId(String xlId) {
  189 + this.xlId = xlId;
  190 + }
  191 +
  192 + public String getXlName() {
  193 + return xlName;
  194 + }
  195 +
  196 + public void setXlName(String xlName) {
  197 + this.xlName = xlName;
  198 + }
  199 +
  200 + public String getTtinfoId() {
  201 + return ttinfoId;
  202 + }
  203 +
  204 + public void setTtinfoId(String ttinfoId) {
  205 + this.ttinfoId = ttinfoId;
  206 + }
  207 +
  208 + public String getTtinfoName() {
  209 + return ttinfoName;
  210 + }
  211 +
  212 + public void setTtinfoName(String ttinfoName) {
  213 + this.ttinfoName = ttinfoName;
  214 + }
  215 +}
... ...
src/main/java/com/bsth/repository/BusinessRepository.java
... ... @@ -4,6 +4,8 @@ import org.springframework.stereotype.Repository;
4 4  
5 5 import com.bsth.entity.Business;
6 6  
  7 +import java.util.List;
  8 +
7 9 /**
8 10 *
9 11 * @Interface: BusinessRepository(公司Repository数据持久层接口)
... ... @@ -23,4 +25,8 @@ import com.bsth.entity.Business;
23 25 @Repository
24 26 public interface BusinessRepository extends BaseRepository<Business, Integer> {
25 27  
  28 + List<Business> findByBusinessCode(String code);
  29 +
  30 + List<Business> findByUpCodeAndBusinessCode(String c1, String c2);
  31 +
26 32 }
... ...
src/main/java/com/bsth/repository/oil/YlbRepository.java
... ... @@ -42,8 +42,13 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
42 42  
43 43 @Transactional
44 44 @Modifying
45   - @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3",nativeQuery=true)
  45 + @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3 ",nativeQuery=true)
46 46 List<Ylb> queryListYlb(String rq,String nbbm,String jgh);
  47 +
  48 + @Transactional
  49 + @Modifying
  50 + @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3 and xlbm=?4 order by ?5 asc",nativeQuery=true)
  51 + List<Ylb> checkYlb(String rq,String nbbm,String jgh,String xlbm,String px);
47 52 /**
48 53 * 查询当天总的加注量和总里程
49 54 * @param rq
... ... @@ -71,6 +76,23 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
71 76 List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
72 77  
73 78  
  79 + /**
  80 + *
  81 + * @param nbbm
  82 + * @param rq
  83 + * @param xlbm
  84 + * @return
  85 + */
  86 + @Transactional
  87 + @Modifying
  88 + @Query(value="select nbbm,sum(jzl*100) as jzl ,sum(zlc*100) as zlc from bsth_c_ylb where to_days(?1)=to_days(rq) and "
  89 + + " ssgsdm like %?2% "
  90 + + " and fgsdm like %?3%"
  91 + + " and xlbm like %?4% and nbbm like %?5% "
  92 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  93 + List<Object[]> checkNbmmYl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
  94 +
  95 +
74 96 @Query(value="select jzl,yh,sh from Ylb s "
75 97 + " where to_days(?1)=to_days(s.rq) "
76 98 + " and s.ssgsdm like %?2% "
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -89,6 +89,19 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
89 89 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
90 90 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and s.scheduleDate = str_to_date(?4,'%Y-%m-%d') and s.xlBm=?5 order by realExecDate,fcsj")
91 91 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName,String date,String line);
  92 +
  93 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  94 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.jGh = ?1 and s.clZbh = ?2 and s.lpName = ?3 and s.scheduleDate = str_to_date(?4,'%Y-%m-%d') and s.xlBm=?5 order by realExecDate,fcsj")
  95 + List<ScheduleRealInfo> queryListWaybillXcld(String jGh,String clZbh,String lpName,String date,String line);
  96 +
  97 +// @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  98 +// @Query(value="select DISTINCT s from ScheduleRealInfo s where s.jGh like %?1% and s.clZbh like %?2% and s.scheduleDate = str_to_date(?3,'%Y-%m-%d') and s.gsBm like %?4% and s.fgsBm like %?5% order by realExecDate,fcsj")
  99 +// List<ScheduleRealInfo> queryListWaybill3(String jName,String clZbh,String date,String gsbm,String fgsbm);
  100 +
  101 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  102 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.xlBm,s.clZbh,s.jGh,s.adjustExps,s.fcsj")
  103 + List<ScheduleRealInfo> scheduleByDateAndLineTjrb(String line,String date);
  104 +
92 105  
93 106 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
94 107 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.clZbh = ?1 and s.scheduleDate = str_to_date(?2,'%Y-%m-%d') and xlBm =?3 order by realExecDate,fcsj")
... ... @@ -119,25 +132,30 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
119 132 void deleteByLineCodeAndDate(String xlBm, String schDate);
120 133  
121 134 //去掉了 xlBm is not null
122   - @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.realExecDate,s.fcsj, (s.lpName+1)")
  135 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  136 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.realExecDate,s.fcsj, (s.lpName+1)")
123 137 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date);
124 138  
125   - @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by (s.lpName+1), s.realExecDate,s.fcsj")
  139 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  140 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by (s.lpName+1), s.realExecDate,s.fcsj")
126 141 List<ScheduleRealInfo> scheduleByDateAndLineQp(String line,String date);
127 142  
128   - @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.bcType not in ('in','out') order by s.xlBm")
  143 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  144 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.bcType not in ('in','out') order by s.xlBm,s.adjustExps,s.fcsj")
129 145 List<ScheduleRealInfo> scheduleByDateAndLine2(String line,String date);
130 146  
131 147 //按月统计
132   - @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m') = ?2 and s.bcType not in ('in','out') order by s.xlBm")
  148 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  149 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m') = ?2 and s.bcType not in ('in','out') order by s.xlBm")
133 150 List<ScheduleRealInfo> scheduleByDateAndLine3(String line,String date);
134 151  
135 152 //按照时间段统计
136   - @Query(value="select 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') order by s.xlBm")
  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') order by s.xlBm")
137 155 List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2);
138 156  
139 157 //按照时间段统计
140   - @Query(value="select 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")
  158 + @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")
141 159 List<ScheduleRealInfo> scheduleByDateAndLineTj2(String line,String date,String date2);
142 160  
143 161 @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")
... ...
src/main/java/com/bsth/repository/schedule/CarConfigInfoRepository.java
... ... @@ -19,7 +19,9 @@ import org.springframework.stereotype.Repository;
19 19 @Repository
20 20 public interface CarConfigInfoRepository extends BaseRepository<CarConfigInfo, Long> {
21 21  
22   - @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH)
  22 +// @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH)
  23 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  24 + // Hibernate ORMHHH-9230
23 25 @Override
24 26 Page<CarConfigInfo> findAll(Specification<CarConfigInfo> spec, Pageable pageable);
25 27  
... ... @@ -45,4 +47,7 @@ public interface CarConfigInfoRepository extends BaseRepository&lt;CarConfigInfo, L
45 47  
46 48 @Query("select new map(cc.cl.id as id, cc.cl.insideCode as insideCode) from CarConfigInfo cc")
47 49 List<Map<String, Object>> findCarsFromConfig();
  50 +
  51 + @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH)
  52 + List<CarConfigInfo> findByXlId(Integer xlid);
48 53 }
49 54 \ No newline at end of file
... ...
src/main/java/com/bsth/repository/schedule/EmployeeConfigInfoRepository.java
... ... @@ -25,6 +25,11 @@ public interface EmployeeConfigInfoRepository extends BaseRepository&lt;EmployeeCon
25 25 List<EmployeeConfigInfo> findBylineCode(String lineCode);
26 26  
27 27 @EntityGraph(value = "employeeConfigInfo_jsy_spy_xl", type = EntityGraph.EntityGraphType.FETCH)
  28 + List<EmployeeConfigInfo> findByXlId(Integer xlid);
  29 +
  30 +// @EntityGraph(value = "employeeConfigInfo_jsy_spy_xl", type = EntityGraph.EntityGraphType.FETCH)
  31 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  32 + // Hibernate ORMHHH-9230
28 33 @Override
29 34 Page<EmployeeConfigInfo> findAll(Specification<EmployeeConfigInfo> spec, Pageable pageable);
30 35  
... ...
src/main/java/com/bsth/repository/schedule/GuideboardInfoRepository.java
... ... @@ -21,7 +21,9 @@ import org.springframework.stereotype.Repository;
21 21 @Repository
22 22 public interface GuideboardInfoRepository extends BaseRepository<GuideboardInfo, Long> {
23 23  
24   - @EntityGraph(value = "guideboardInfo_xl", type = EntityGraph.EntityGraphType.FETCH)
  24 +// @EntityGraph(value = "guideboardInfo_xl", type = EntityGraph.EntityGraphType.FETCH)
  25 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  26 + // Hibernate ORMHHH-9230
25 27 @Override
26 28 Page<GuideboardInfo> findAll(Specification<GuideboardInfo> spec, Pageable pageable);
27 29  
... ...
src/main/java/com/bsth/repository/schedule/RerunRuleRepository.java
... ... @@ -15,7 +15,9 @@ import org.springframework.stereotype.Repository;
15 15 */
16 16 @Repository
17 17 public interface RerunRuleRepository extends BaseRepository<RerunRule, Long> {
18   - @EntityGraph(value = "dylp", type = EntityGraph.EntityGraphType.FETCH)
  18 +// @EntityGraph(value = "dylp", type = EntityGraph.EntityGraphType.FETCH)
  19 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  20 + // Hibernate ORMHHH-9230
19 21 @Override
20 22 Page<RerunRule> findAll(Specification<RerunRule> spec, Pageable pageable);
21 23  
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanRepository.java
... ... @@ -5,7 +5,6 @@ import com.bsth.repository.BaseRepository;
5 5 import org.springframework.data.domain.Page;
6 6 import org.springframework.data.domain.Pageable;
7 7 import org.springframework.data.jpa.domain.Specification;
8   -import org.springframework.data.jpa.repository.EntityGraph;
9 8 import org.springframework.stereotype.Repository;
10 9  
11 10 /**
... ... @@ -13,7 +12,9 @@ import org.springframework.stereotype.Repository;
13 12 */
14 13 @Repository
15 14 public interface SchedulePlanRepository extends BaseRepository<SchedulePlan, Long> {
16   - @EntityGraph(value = "schedulePlan_xl_ttinfo", type = EntityGraph.EntityGraphType.FETCH)
  15 +// @EntityGraph(value = "schedulePlan_xl", type = EntityGraph.EntityGraphType.FETCH)
  16 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  17 + // Hibernate ORMHHH-9230
17 18 @Override
18 19 Page<SchedulePlan> findAll(Specification<SchedulePlan> spec, Pageable pageable);
19 20  
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanRuleResultRepository.java 0 → 100644
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.data.jpa.repository.Modifying;
  6 +import org.springframework.data.jpa.repository.Query;
  7 +import org.springframework.stereotype.Repository;
  8 +
  9 +import java.util.Date;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * Created by xu on 17/3/29.
  14 + */
  15 +@Repository
  16 +public interface SchedulePlanRuleResultRepository extends BaseRepository<SchedulePlanRuleResult, Long> {
  17 +
  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);
  23 +
  24 +// @Modifying
  25 +// @Query("delete from SchedulePlanRuleResult t " +
  26 +// "where t.xlId = ?1 and t.scheduleDate >= ?2 and t.scheduleDate <= ?3")
  27 +// void deleteByXlAndDate(String xlid, Date from, Date to);
  28 +}
... ...
src/main/java/com/bsth/repository/schedule/ScheduleRule1FlatRepository.java
1 1 package com.bsth.repository.schedule;
2 2  
  3 +import com.bsth.entity.Line;
3 4 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
4 5 import com.bsth.repository.BaseRepository;
5 6 import org.springframework.data.domain.Page;
... ... @@ -9,17 +10,23 @@ import org.springframework.data.jpa.repository.EntityGraph;
9 10 import org.springframework.data.jpa.repository.Query;
10 11 import org.springframework.stereotype.Repository;
11 12  
  13 +import java.util.List;
  14 +
12 15 /**
13 16 * Created by xu on 16/7/4.
14 17 */
15 18 @Repository
16 19 public interface ScheduleRule1FlatRepository extends BaseRepository<ScheduleRule1Flat, Long> {
17 20  
18   - @EntityGraph(value = "scheduleRule1Flat_xl_carconfig", type = EntityGraph.EntityGraphType.FETCH)
  21 +// @EntityGraph(value = "scheduleRule1Flat_xl_carconfig", type = EntityGraph.EntityGraphType.FETCH)
  22 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  23 + // Hibernate ORMHHH-9230
19 24 @Override
20 25 Page<ScheduleRule1Flat> findAll(Specification<ScheduleRule1Flat> spec, Pageable pageable);
21 26  
22 27 @EntityGraph(value = "scheduleRule1Flat_xl_carconfig", type = EntityGraph.EntityGraphType.FETCH)
23 28 @Query("select cc from ScheduleRule1Flat cc where cc.id=?1")
24 29 ScheduleRule1Flat findOneExtend(Long aLong);
  30 +
  31 + List<ScheduleRule1Flat> findByXl(Line line);
25 32 }
... ...
src/main/java/com/bsth/repository/schedule/TTInfoDetailRepository.java
... ... @@ -45,8 +45,11 @@ public interface TTInfoDetailRepository extends BaseRepository&lt;TTInfoDetail, Lon
45 45 @Query(value = "select tt from TTInfoDetail tt where tt.xl.id = ?1 and tt.ttinfo.id = ?2 and tt.lp.id = ?3 order by tt.fcno asc")
46 46 List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId);
47 47  
  48 + List<TTInfoDetail> findByTtinfoId(Long id);
  49 +
48 50 @Modifying
49 51 @Query(value = "delete from TTInfoDetail t where t.ttinfo.id = ?1")
50 52 void deleteByTtinfoIdWithModify(Long ttinfoid);
51 53  
  54 +
52 55 }
... ...
src/main/java/com/bsth/repository/schedule/TTInfoRepository.java
1 1 package com.bsth.repository.schedule;
2 2  
  3 +import com.bsth.entity.Line;
3 4 import com.bsth.entity.schedule.EmployeeConfigInfo;
4 5 import com.bsth.entity.schedule.TTInfo;
5 6 import com.bsth.repository.BaseRepository;
... ... @@ -10,17 +11,24 @@ import org.springframework.data.jpa.repository.EntityGraph;
10 11 import org.springframework.data.jpa.repository.Query;
11 12 import org.springframework.stereotype.Repository;
12 13  
  14 +import java.util.List;
  15 +
13 16 /**
14 17 * Created by xu on 16/5/12.
15 18 */
16 19 @Repository
17 20 public interface TTInfoRepository extends BaseRepository<TTInfo, Long> {
18 21  
19   - @EntityGraph(value = "ttInfo_xl", type = EntityGraph.EntityGraphType.FETCH)
  22 +// @EntityGraph(value = "ttInfo_xl", type = EntityGraph.EntityGraphType.FETCH)
  23 + // 因为使用了in操作符,用 @EntityGraph会报错,升到hibernate 5.0.4就好了,暂时不用@EntityGraph
  24 + // Hibernate ORMHHH-9230
20 25 @Override
21 26 Page<TTInfo> findAll(Specification<TTInfo> spec, Pageable pageable);
22 27  
23 28 @EntityGraph(value = "ttInfo_xl", type = EntityGraph.EntityGraphType.FETCH)
24 29 @Query("select cc from TTInfo cc where cc.id=?1")
25 30 TTInfo findOneExtend(Long aLong);
  31 +
  32 + @Query("select t from TTInfo t where t.xl = ?1 and t.isCancel = false")
  33 + List<TTInfo> findInCanceledByXl(Line xl);
26 34 }
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
... ... @@ -6,6 +6,7 @@ import java.text.DecimalFormat;
6 6 import java.text.NumberFormat;
7 7 import java.text.ParseException;
8 8 import java.text.SimpleDateFormat;
  9 +import java.util.ArrayList;
9 10 import java.util.Date;
10 11 import java.util.HashMap;
11 12 import java.util.List;
... ... @@ -24,6 +25,8 @@ import com.bsth.entity.mcy_forms.Singledata;
24 25 import com.bsth.entity.mcy_forms.Turnoutrate;
25 26 import com.bsth.entity.mcy_forms.Vehicleloading;
26 27 import com.bsth.entity.mcy_forms.Waybillday;
  28 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  29 +import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
27 30 import com.bsth.data.BasicData;
28 31 import com.bsth.entity.mcy_forms.Allline;
29 32 import com.bsth.entity.mcy_forms.Changetochange;
... ... @@ -32,6 +35,8 @@ import com.bsth.entity.mcy_forms.Executionrate;
32 35 import com.bsth.service.forms.CommonService;
33 36 import com.bsth.service.forms.FormsService;
34 37 import com.bsth.service.realcontrol.ScheduleRealInfoService;
  38 +import com.bsth.service.report.CulateMileageService;
  39 +import com.bsth.util.Arith;
35 40  
36 41 @Service
37 42 public class FormsServiceImpl implements FormsService {
... ... @@ -44,6 +49,12 @@ public class FormsServiceImpl implements FormsService {
44 49  
45 50 @Autowired
46 51 CommonService commonService;
  52 +
  53 + @Autowired
  54 + ScheduleRealInfoRepository scheduleRealInfoRepository;
  55 +
  56 + @Autowired
  57 + CulateMileageService culateMileageService;
47 58  
48 59 // 行车路单日报表
49 60 @Override
... ... @@ -720,20 +731,33 @@ public class FormsServiceImpl implements FormsService {
720 731  
721 732 @Override
722 733 public List<Daily> daily(Map<String, Object> map) {
  734 +
  735 + String gsbm="";
  736 + if(map.get("gsdmDaily")!=null){
  737 + gsbm=map.get("gsdmDaily").toString();
  738 + }
  739 +
  740 + String fgsbm="";
  741 + if(map.get("fgsdmDaily").toString()!=null){
  742 + fgsbm=map.get("fgsdmDaily").toString();
  743 + }
  744 +
723 745 String sql="select t.schedule_date_str,"
724 746 + " t.cl_zbh,t.j_gh,t.j_name,x.yh from (select r.schedule_date_str,r.xl_bm,r.xl_name,"
725 747 + " r.cl_zbh,r.j_gh,r.j_name from bsth_c_s_sp_info_real r WHERE "
726   - + " r.xl_bm='" + map.get("line").toString() + "' and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "
727   - + " and r.gs_bm like '%"+map.get("gsdmDaily").toString()+"%' "
728   - + " and r.fgs_bm like '%"+map.get("fgsdmDaily").toString()+"%' "
  748 + + " r.xl_bm='" + map.get("line").toString() + "' "
  749 + + " and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "
  750 + + " and r.gs_bm like '%"+gsbm+"%' "
  751 + + " and r.fgs_bm like '%"+fgsbm+"%' "
729 752 + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name) t"
730 753 + " left join (select * from bsth_c_ylb y where "
731 754 + " to_days(y.rq)=to_days('"+map.get("date").toString()+"') "
732 755 + " and y.xlbm= '" + map.get("line").toString() + "'"
733   - + " and y.ssgsdm like '%"+map.get("gsdmDaily").toString()+"%' "
734   - + " and y.fgsdm like '%"+map.get("fgsdmDaily").toString()+"%'"
  756 + + " and y.ssgsdm like '%"+gsbm+"%' "
  757 + + " and y.fgsdm like '%"+fgsbm+"%'"
735 758 + " ) x"
736 759 + " on t.cl_zbh = x.nbbm ";
  760 +
737 761 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() {
738 762 @Override
739 763 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException {
... ... @@ -746,14 +770,28 @@ public class FormsServiceImpl implements FormsService {
746 770 return daily;
747 771 }
748 772 });
749   -
  773 + List<ScheduleRealInfo> sList;
  774 + List<ScheduleRealInfo> lists=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(map.get("line").toString(), map.get("date").toString());
750 775 for(int i=0;i<list.size();i++){
  776 + sList =new ArrayList<ScheduleRealInfo>();
751 777 Daily d=list.get(i);
752   - Map<String, Object> maps = new HashMap<>();
753   - maps = commonService.findKMBC2(d.getJgh(),d.getZbh(),d.getRq());
754   - d.setJzl1(maps.get("ksgl").toString());
755   - d.setZlc(maps.get("realMileage").toString());
756   - d.setBc(maps.get("sjbc").toString());
  778 + for (int j = 0; j < lists.size(); j++) {
  779 + ScheduleRealInfo s=lists.get(j);
  780 + if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){
  781 + sList.add(s);
  782 + }
  783 + }
  784 +
  785 + double ksgl=culateMileageService.culateKsgl(sList);
  786 + double jccgl=culateMileageService.culateJccgl(sList);
  787 + double zksgl=Arith.add(ksgl, jccgl);
  788 + double ljgl=culateMileageService.culateLjgl(sList);
  789 + double sjgl=culateMileageService.culateSjgl(sList);
  790 + double zyygl=Arith.add(ljgl, sjgl);
  791 +
  792 + d.setJzl1(String.valueOf(zksgl));//空驶公里
  793 + d.setZlc(String.valueOf(Arith.add(zksgl, zyygl)));
  794 + d.setBc(String.valueOf(culateMileageService.culateSjbc(sList, "")+culateMileageService.culateLjbc(sList, "")));
757 795 }
758 796 return list;
759 797 }
... ...
src/main/java/com/bsth/service/oil/CwjyService.java
1 1 package com.bsth.service.oil;
2 2  
3 3  
  4 +import java.util.List;
4 5 import java.util.Map;
5 6  
6 7 import com.bsth.entity.oil.Cwjy;
... ... @@ -9,8 +10,8 @@ import com.bsth.service.BaseService;
9 10 import com.bsth.util.PageObject;
10 11  
11 12 public interface CwjyService extends BaseService<Cwjy, Integer>{
12   - PageObject<Ylxxb> Pagequery(Map<String, Object> map) ;
  13 + List<Ylxxb> Pagequery(Map<String, Object> map) ;
13 14 Ylxxb bynbbm(Map<String, Object> map);
14 15  
15   - Map<String, Object> savejzl(Ylxxb t);
  16 + Map<String, Object> savejzl(Map<String, Object> map) throws Exception ;
16 17 }
... ...
src/main/java/com/bsth/service/oil/YlbService.java
... ... @@ -23,5 +23,6 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{
23 23 List<Ylb> listYlb(Map<String, Object> map);
24 24 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx);
25 25  
  26 + Map<String, Object> deleteIds(Map<String, Object> map) throws Exception;
26 27  
27 28 }
... ...
src/main/java/com/bsth/service/oil/YlxxbService.java
... ... @@ -9,6 +9,6 @@ import com.bsth.util.PageObject;
9 9 public interface YlxxbService extends BaseService<Ylxxb, Integer>{
10 10 PageObject<Ylxxb> Pagequery(Map<String, Object> map) ;
11 11  
12   - Map<String, Object> checkJsy(Map<String, Object> map);
  12 + Map<String, Object> checkJsy(Map<String, Object> map) throws Exception;
13 13  
14 14 }
... ...
src/main/java/com/bsth/service/oil/impl/CwjyServiceImpl.java
... ... @@ -6,17 +6,26 @@ import java.text.ParseException;
6 6 import java.text.SimpleDateFormat;
7 7 import java.util.ArrayList;
8 8 import java.util.Arrays;
  9 +import java.util.Date;
9 10 import java.util.HashMap;
10 11 import java.util.List;
11 12 import java.util.Map;
12 13  
  14 +import javax.transaction.Transactional;
  15 +
  16 +import org.apache.commons.lang3.StringEscapeUtils;
  17 +import org.slf4j.Logger;
  18 +import org.slf4j.LoggerFactory;
13 19 import org.springframework.beans.factory.annotation.Autowired;
14 20 import org.springframework.jdbc.core.JdbcTemplate;
15 21 import org.springframework.jdbc.core.RowMapper;
16 22 import org.springframework.stereotype.Service;
17 23  
  24 +import com.alibaba.fastjson.JSONArray;
  25 +import com.alibaba.fastjson.JSONObject;
18 26 import com.bsth.common.ResponseCode;
19 27 import com.bsth.entity.oil.Cwjy;
  28 +import com.bsth.entity.oil.Cyl;
20 29 import com.bsth.entity.oil.Ylxxb;
21 30 import com.bsth.repository.oil.CwjyRepository;
22 31 import com.bsth.repository.oil.YlxxbRepository;
... ... @@ -35,8 +44,8 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
35 44  
36 45 @Autowired
37 46 JdbcTemplate jdbcTemplate;
38   -
39   - @SuppressWarnings("unchecked")
  47 + Logger logger = LoggerFactory.getLogger(this.getClass());
  48 + /*@SuppressWarnings("unchecked")
40 49 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) {
41 50 int page=Integer.parseInt(map.get("page").toString());
42 51 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -129,7 +138,7 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
129 138 return t;
130 139 }
131 140 });
132   - /*List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
  141 + List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
133 142 for (int i = 0; i < list.size(); i++) {
134 143 Ylxxb y=new Ylxxb();
135 144 y.setGsdm(list.get(i)[0]==null?"":list.get(i)[0].toString());
... ... @@ -148,13 +157,13 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
148 157 e.printStackTrace();
149 158 }
150 159 yList.add(y);
151   - }*/
  160 + }
152 161 PageHelper pageHelper = new PageHelper(listsize, map);
153 162 pageHelper.getMap();
154 163 PageObject<Ylxxb> pageObject=pageHelper.getPageObject();
155 164 pageObject.setDataList(yList);
156 165 return pageObject;
157   - }
  166 + }*/
158 167  
159 168 @Override
160 169 public Ylxxb bynbbm(Map<String, Object> map) {
... ... @@ -188,28 +197,112 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
188 197 return y;
189 198 }
190 199  
  200 + @Transactional
191 201 @Override
192   - public Map<String, Object> savejzl(Ylxxb t) {
  202 + public Map<String, Object> savejzl(Map<String, Object> maps) throws Exception {
193 203 // TODO Auto-generated method stub
194 204 Map<String, Object> map=new HashMap<String,Object>();
195 205 try {
196 206 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
197   - String rq = sdf.format(t.getYyrq());
198   - String nbbm=t.getNbbm();
199   - List<Ylxxb> yList=ylxxbRepository.obtainYlxx2(rq,nbbm);
200   - if(yList.size()>0){
201   - t.setId(yList.get(0).getId());
202   - ylxxbRepository.save(t);
203   - }else{
204   - ylxxbRepository.save(t);
  207 +// String rq = sdf.format(t.getYyrq());
  208 +// String nbbm=t.getNbbm();
  209 +// List<Ylxxb> yList=ylxxbRepository.obtainYlxx2(rq,nbbm);
  210 +// if(yList.size()>0){
  211 +// t.setId(yList.get(0).getId());
  212 +// ylxxbRepository.save(t);
  213 +// }else{
  214 +// ylxxbRepository.save(t);
  215 +// }
  216 + String gsbm=maps.get("gsbm").toString();
  217 + String fgsbm=maps.get("fgsbm").toString();
  218 + String rq=maps.get("rq").toString();
  219 + Date date=sdf.parse(rq);
  220 + String json =StringEscapeUtils.unescapeHtml4(maps.get("ylbList").toString());
  221 + JSONArray jsonArray=JSONArray.parseArray(json);
  222 + JSONObject jsonObject;
  223 + // 获取车辆存油信息
  224 + for (int i = 0; i < jsonArray.size(); i++) {
  225 + jsonObject=jsonArray.getJSONObject(i);
  226 + Integer id =jsonObject.getInteger("id");
  227 + String jsy=jsonObject.getString("jsy");
  228 + double jzl=jsonObject.getDoubleValue("jzl");
  229 + String stationid=jsonObject.getString("stationid");
  230 + int nylx=jsonObject.getIntValue("nylx");
  231 + String jyggh=jsonObject.getString("jyggh");
  232 + String bz=jsonObject.getString("bz");
  233 + Ylxxb y;
  234 + if(id>0){
  235 + y=ylxxbRepository.findOne(id);
  236 + y.setJsy(jsy);
  237 + y.setJzl(jzl);
  238 + y.setStationid(stationid);
  239 + y.setJyggh(jyggh);
  240 + y.setBz(bz);
  241 + y.setCreatetime(date);
  242 + ylxxbRepository.save(y);
  243 + }else{
  244 + y=new Ylxxb();
  245 + y.setGsdm(gsbm);
  246 + y.setJsy(jsy);
  247 + y.setJzl(jzl);
  248 + y.setStationid(stationid);
  249 + y.setJyggh(jyggh);
  250 + y.setBz(bz);
  251 + y.setCreatetime(date);
  252 + y.setJylx(1);
  253 + ylxxbRepository.save(y);
  254 + }
205 255 }
206 256 map.put("status", ResponseCode.SUCCESS);
  257 +
207 258 } catch (Exception e) {
208 259 map.put("status", ResponseCode.ERROR);
209   - e.printStackTrace();
  260 + logger.error("save erro.", e);
  261 + throw e;
210 262 // TODO: handle exception
211 263 }
212 264 return map;
213 265 }
214 266  
  267 + @Override
  268 + public List<Ylxxb> Pagequery(Map<String, Object> map) {
  269 + // TODO Auto-generated method stub
  270 + String rq=map.get("rq").toString();
  271 + String nbbm=map.get("nbbh").toString();
  272 + String sql="SELECT a.gsdm as gsdm,a.fgsdm as fgsdm,a.nbbm as nbbm,"
  273 + + "b.jyggh as jyggh,b.jzl as jzl ,b.stationid as stationid,b.jsy as jsy,"
  274 + + "b.nylx as nylx,b.yj as yj,b.bz as bz,b.id as id ,c.jsy as ldgh FROM bsth_c_cwjy a "+
  275 + " left join ("
  276 + + " select * from bsth_c_ylxxb b "
  277 + + "where to_days(b.yyrq)=to_days('"+rq+"') and jylx=1) b " +
  278 + " on a.nbbm=b.nbbm "
  279 + + "left join (select nbbm,group_concat(jsy) as jsy "
  280 + + "from bsth_c_ylb where to_days(rq)= to_days('"+rq+"' ) group by nbbm "+
  281 + " ) c on a.nbbm=c.nbbm "
  282 + + "where a.nbbm like '%"+nbbm+"%'";
  283 +
  284 + List<Ylxxb> yList= jdbcTemplate.query(sql,
  285 + new RowMapper<Ylxxb>(){
  286 + @Override
  287 + public Ylxxb mapRow(ResultSet rs, int rowNum) throws SQLException {
  288 + Ylxxb t=new Ylxxb();
  289 + t.setId(rs.getInt("id"));
  290 + t.setGsdm(rs.getString("gsdm"));
  291 + t.setFgsdm(rs.getString("fgsdm"));
  292 + t.setNbbm(rs.getString("nbbm"));
  293 + t.setJyggh(rs.getString("jyggh"));
  294 + t.setJsy(rs.getString("jsy"));
  295 + t.setJzl(rs.getDouble("jzl"));
  296 + t.setStationid(rs.getString("stationid"));
  297 + t.setNylx(rs.getInt("nylx"));
  298 + t.setYj(rs.getDouble("yj"));
  299 + t.setBz(rs.getString("bz"));
  300 + t.setJsy(rs.getString("ldgh"));
  301 + return t;
  302 + }
  303 + });
  304 +
  305 + return yList;
  306 + }
  307 +
215 308 }
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -30,6 +30,7 @@ import com.alibaba.fastjson.JSONObject;
30 30 import com.bsth.common.ResponseCode;
31 31 import com.bsth.data.BasicData;
32 32 import com.bsth.entity.Cars;
  33 +import com.bsth.entity.Line;
33 34 import com.bsth.entity.oil.Cyl;
34 35 import com.bsth.entity.oil.Ylb;
35 36 import com.bsth.entity.oil.Ylxxb;
... ... @@ -134,11 +135,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
134 135 Ylb ylb=ylListBe.get(i);
135 136 if(map.get("clZbh").toString().equals(ylb.getNbbm())){
136 137 if(ylb.getJzyl()!=null){
137   - if(ylb.getJzyl()>0){
138   - t.setCzyl(ylb.getJzyl());
139   - fage=false;
140   - break;
141   - }
  138 + t.setCzyl(ylb.getJzyl());
  139 + fage=false;
  140 + break;
142 141 }
143 142  
144 143 }
... ... @@ -178,6 +177,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
178 177 t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
179 178 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
180 179 t.setRq(sdf.parse(rq));
  180 + t.setCreatetime(dNow);
181 181 repository.save(t);
182 182  
183 183 }
... ... @@ -202,6 +202,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
202 202 public Map<String, Object> obtain(Map<String, Object> map2) throws Exception{
203 203 Map<String, Object> newMap = new HashMap<String, Object>();
204 204 try {
  205 + Date date=new Date();
205 206 List<Cars> carsList = carsRepository.findCars();
206 207 Map<String, Boolean> carsMap = new HashMap<String, Boolean>();
207 208 for (int i = 0; i < carsList.size(); i++) {
... ... @@ -269,7 +270,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
269 270 for (int i = 0; i < ylListBe.size(); i++) {
270 271 Ylb ylb = ylListBe.get(i);
271 272 if (map.get("clZbh").toString().equals(ylb.getNbbm())) {
272   - if(ylb.getJzyl()>0){
  273 + if(ylb.getJzyl()>=0){
273 274 t.setCzyl(ylb.getJzyl());
274 275 fage = false;
275 276 break;
... ... @@ -281,7 +282,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
281 282 for (int y = 0; y < clyList.size(); y++) {
282 283 Cyl cyl = clyList.get(y);
283 284 if (map.get("clZbh").toString().equals(cyl.getNbbm())) {
284   - if(cyl.getCyl()>0){
  285 + if(cyl.getCyl()>=0){
285 286 t.setCzyl(cyl.getCyl());
286 287 fage = false;
287 288 break;
... ... @@ -312,12 +313,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
312 313 jzl =Arith.add(jzl, ylxxb.getJzl());
313 314 }
314 315 }
315   - if(map.get("clZbh").toString().equals("W0A-212")){
316   - System.out.println();
317   - }
318   - if(map.get("clZbh").toString().equals("W0A-211")){
319   - System.out.println();
320   - }
  316 +
321 317 t.setJzl(jzl);
322 318 t.setNbbm(map.get("clZbh").toString());
323 319 t.setJsy(map.get("jGh") == null ? "" : map.get("jGh").toString());
... ... @@ -329,6 +325,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
329 325 t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString());
330 326 t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
331 327 t.setRq(sdf.parse(rq));
  328 + t.setCreatetime(date);
332 329 if(type.equals("add")){
333 330 addList.add(t);
334 331 }else{
... ... @@ -385,8 +382,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
385 382 nbbm=map.get("nbbm_eq").toString();
386 383 }
387 384  
388   - List<Cyl> cylListAdd=new ArrayList<Cyl>();
389   - Map<String, Object> cylMapAdd=new HashMap<String,Object>();
390 385 Map<String, Object> newMap=new HashMap<String,Object>();
391 386 Map<String, Object> map2=new HashMap<String,Object>();
392 387 try {
... ... @@ -456,7 +451,10 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
456 451 nextJzyl=ylxs;
457 452 } else {
458 453 t.setCzyl(nextJzyl);
459   - Double yh = Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
  454 + Double yh=0.0;
  455 + if(zlc>0){
  456 + yh= Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
  457 + }
460 458 nextJzyl =Arith.sub( Arith.add(t.getJzl(),nextJzyl),yh);
461 459 long l=Math.round(nextJzyl);
462 460 double ylxs=l*100/100;
... ... @@ -466,16 +464,21 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
466 464 t.setJzyl(ylxs);
467 465 nextJzyl= ylxs;
468 466 }
469   -
470 467 repository.save(t);
  468 + for (int z = 0; z < cylList.size(); z++) {
  469 + Cyl cyl = cylList.get(z);
  470 + if (t.getNbbm().equals(cyl.getNbbm())) {
  471 + cyl.setCyl(t.getJzyl());
  472 + cyl.setUpdatetime(t.getRq());
  473 + break;
  474 + }
  475 + cylRepository.save(cyl);
  476 + }
471 477 }
472 478 map2.put("status", ResponseCode.SUCCESS);
473 479 }
474 480 }
475 481 }
476   - for (int i = 0; i < cylListAdd.size(); i++) {
477   - cylRepository.save(cylListAdd.get(i));
478   - }
479 482 } catch (Exception e) {
480 483 map2.put("status", ResponseCode.ERROR);
481 484 logger.error("save erro.", e);
... ... @@ -647,9 +650,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
647 650 // xlbm=map.get("xlbm_like").toString();
648 651 // }
649 652 // TODO Auto-generated method stub
  653 +
  654 + List<Cars> carsList = carsRepository.findCars();
  655 + Map<String, String> carsMap = new HashMap<String, String>();
  656 + for (int i = 0; i < carsList.size(); i++) {
  657 + Cars c = carsList.get(i);
  658 + carsMap.put(c.getInsideCode(), c.getBrancheCompanyCode()==null?"":c.getBrancheCompanyCode());
  659 + }
  660 +
650 661 try{
651 662 //获取车辆存油信息
652   - List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
  663 +
653 664 String rq=map.get("rq").toString();
654 665 String xlbm="";
655 666 if(map.get("xlbm_like")!=null){
... ... @@ -667,6 +678,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
667 678 if(map.get("nbbm_eq")!=null){
668 679 nbbm=map.get("nbbm_eq").toString();
669 680 }
  681 + List<Ylb> ylListBe=repository.obtainYlbefore(rq, gsbm, "", xlbm, nbbm);
  682 + List<Cyl> cylList=cylRepository.obtainCyl(nbbm, gsbm);
670 683 List<Ylb> ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
671 684 List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm);
672 685 for (int i = 0; i < ylxxbList.size(); i++) {
... ... @@ -681,14 +694,56 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
681 694 }
682 695  
683 696 if(fage){
  697 + Cyl cyl=null;
684 698 Ylb t=new Ylb();
685 699 t.setNbbm(y1.getNbbm());
686 700 t.setRq(y1.getYyrq());
687 701 t.setJsy(y1.getJsy());
688 702 t.setJzl(y1.getJzl());
689 703 t.setSsgsdm(y1.getGsdm());
690   - t.setXlbm(xlbm);
691   - repository.save(t);
  704 + String fgsdm=carsMap.get(y1.getNbbm());
  705 + t.setFgsdm(fgsdm);
  706 + t.setJcsx(1);
  707 + Line line= BasicData.nbbm2LineMap.get(y1.getNbbm());
  708 + if(null !=line){
  709 + t.setXlbm(line.getLineCode());
  710 + }else{
  711 + t.setXlbm("");
  712 + }
  713 + t.setJcsx(1);
  714 + boolean status=true;
  715 + for (int j = 0; j < ylListBe.size(); j++) {
  716 + Ylb b=ylListBe.get(j);
  717 + if(b.getNbbm().equals(y1.getNbbm())){
  718 + t.setCzyl(b.getJzyl());
  719 + status=false;
  720 + break;
  721 + }
  722 + }
  723 + if(status){
  724 + for (int j = 0; j < cylList.size(); j++) {
  725 + Cyl c=cylList.get(j);
  726 + if(c.getNbbm().equals(y1.getNbbm())){
  727 + t.setCzyl(c.getCyl());
  728 + cyl=c;
  729 + status=false;
  730 + break;
  731 + }
  732 + }
  733 + }
  734 + if(status){
  735 + t.setCzyl(0.0);
  736 + }
  737 +// double jzyl=Arith.add(t.getJzl(), t.getCzyl());
  738 + t.setJzyl(Arith.add(t.getJzl(), t.getCzyl()));
  739 + t.setYh(0.0);
  740 + if(fgsdm.equals("fgsbm")){
  741 + repository.save(t);
  742 + if(null!=cyl){
  743 + cyl.setCyl(Arith.add(t.getJzl(), t.getCzyl()));
  744 + cylRepository.save(cyl);
  745 + }
  746 + }
692 747 }
693 748 }
694 749 newMap.put("status", ResponseCode.SUCCESS);
... ... @@ -862,23 +917,52 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
862 917 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
863 918 }
864 919 }else{
865   - List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
866   - for (int i = 0; i < objectLists.size(); i++) {
867   - String clbm=objectLists.get(i)[0].toString();
868   - int cs=Integer.parseInt(objectLists.get(i)[1].toString());
869   - //一车一单
870   - if(sxtj.equals("1")){
871   - if(cs==1){
  920 + List<Object[]> objectLists;
  921 + if(sxtj.equals("3")){
  922 + //有加油没里程
  923 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm);
  924 + for (int i = 0; i < objectLists.size(); i++) {
  925 + String clbm=objectLists.get(i)[0].toString();
  926 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  927 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  928 + if(jzl>0 && zlc<=0){
872 929 stringList.add(clbm);
873 930 }
  931 +
874 932 }
875   - //一车多单
876   - if(sxtj.equals("2")){
877   - if(cs>1){
  933 +
  934 + }else if(sxtj.equals("4")){
  935 + //有里程没加油
  936 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm);
  937 + for (int i = 0; i < objectLists.size(); i++) {
  938 + String clbm=objectLists.get(i)[0].toString();
  939 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  940 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  941 + if(zlc>0 && jzl<=0){
878 942 stringList.add(clbm);
879 943 }
  944 +
  945 + }
  946 + }else{
  947 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  948 + for (int i = 0; i < objectLists.size(); i++) {
  949 + String clbm=objectLists.get(i)[0].toString();
  950 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  951 + //一车一单
  952 + if(sxtj.equals("1")){
  953 + if(cs==1){
  954 + stringList.add(clbm);
  955 + }
  956 + }
  957 + //一车多单
  958 + if(sxtj.equals("2")){
  959 + if(cs>1){
  960 + stringList.add(clbm);
  961 + }
  962 + }
880 963 }
881 964 }
  965 +
882 966 if(stringList.size()>0){
883 967 listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
884 968 }
... ... @@ -894,10 +978,12 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
894 978 // TODO Auto-generated method stub
895 979 Map<String, Object> newMap=new HashMap<String,Object>();
896 980 try{
  981 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
897 982 String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString());
898 983 JSONArray jsonArray=JSONArray.parseArray(json);
899 984 JSONObject jsonObject;
900   -
  985 + // 获取车辆存油信息
  986 + List<Cyl> cylList = cylRepository.obtainCyl("","");
901 987 for (int i = 0; i < jsonArray.size(); i++) {
902 988 // Ylb t=new Ylb();
903 989 jsonObject=jsonArray.getJSONObject(i);
... ... @@ -910,6 +996,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
910 996 String rylx =jsonObject.getString("rylx");
911 997 int yhlx =jsonObject.getIntValue("yhlx");
912 998 Integer id =jsonObject.getInteger("id");
  999 + String nbbm =jsonObject.getString("nbbm");
  1000 + String rq=jsonObject.getString("rq");
913 1001 double yh = Arith.sub(Arith.add(czyl, jzl), jzyl);
914 1002 /*t.setJzyl(jzyl);
915 1003 t.setSh(sh);
... ... @@ -918,6 +1006,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
918 1006 t.setRylx(rylx);
919 1007 t.setId(jsonObject.getInteger("id"));*/
920 1008 repository.ylbUpdate(id, czyl, jzyl, yh, sh, shyy, ns, rylx,yhlx);
  1009 + for (int z = 0; z < cylList.size(); z++) {
  1010 + Cyl cyl = cylList.get(z);
  1011 + if (nbbm.equals(cyl.getNbbm())) {
  1012 + cyl.setCyl(jzyl);
  1013 + cyl.setUpdatetime(sdf.parse(rq));
  1014 + break;
  1015 + }
  1016 + cylRepository.save(cyl);
  1017 + }
921 1018 }
922 1019 // List<Map<String, Object>> list=(List<Map<String, Object>>) map.get("ylbList");
923 1020  
... ... @@ -986,8 +1083,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
986 1083 Double zyl = 0.0;
987 1084 Double nextJzyl = 0.0;
988 1085 // 车的,进,出油量及耗油
989   - Map<String, Object> cylMapAdd=new HashMap<String,Object>();
990   - List<Cyl> cylListAdd=new ArrayList<Cyl>();
991 1086 for (int i = 0; i < iterator2.size(); i++) {
992 1087 Ylb t = iterator2.get(i);
993 1088 if (t.getJcsx() == 1) {
... ... @@ -1029,9 +1124,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1029 1124 nextJzyl=ylxs;
1030 1125 }
1031 1126 repository.save(t);
1032   - }
1033   - for (int i = 0; i < cylListAdd.size(); i++) {
1034   - cylRepository.save(cylListAdd.get(i));
  1127 + for (int z = 0; z < cylList.size(); z++) {
  1128 + Cyl cyl = cylList.get(z);
  1129 + if (t.getNbbm().equals(cyl.getNbbm())) {
  1130 + cyl.setCyl(t.getJzyl());
  1131 + cyl.setUpdatetime(t.getRq());
  1132 + break;
  1133 + }
  1134 + cylRepository.save(cyl);
  1135 + }
1035 1136 }
1036 1137 newMap.put("status", ResponseCode.SUCCESS);
1037 1138 }
... ... @@ -1050,19 +1151,71 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1050 1151 String rq=map.get("date").toString();
1051 1152 String nbbm=map.get("nbbm").toString();
1052 1153 String jsy =map.get("jsy").toString();
1053   - List<Ylb> list= repository.queryListYlb(rq, nbbm, jsy);
1054   - String type="";
  1154 + String xlbm=map.get("xlbm").toString();
  1155 + List<Ylb> list= repository.checkYlb(rq, nbbm, jsy,xlbm,"nbbm");
  1156 + String type="1";
1055 1157 if(list.size()>0){
1056   - type="cunzai";
  1158 + type="0";
1057 1159 }
1058 1160 return type;
1059 1161 }
1060 1162  
1061 1163 @Override
1062 1164 public Map<String, Object> saveYlb(Ylb t) {
  1165 + Map<String, Object> map = new HashMap<>();
  1166 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  1167 + String rq=sdf.format(t.getRq());
  1168 + String gsdm=t.getSsgsdm();
  1169 + String fgsdm=t.getFgsdm();
  1170 + String xlbm=t.getXlbm();
  1171 + String jhsj=t.getJhsj();
  1172 + String jsy=t.getJsy();
  1173 + String nbbm=t.getNbbm();
  1174 + t.setCreatetime(new Date());
  1175 + String[] jhsjStr = jhsj.split(":");
  1176 + long fcsjL= Long.parseLong(jhsjStr[0])*60+Long.parseLong(jhsjStr[1]);
  1177 + List<Ylb> list=repository.obtainYl(rq, gsdm, fgsdm, xlbm, nbbm, "jhsj");
  1178 + int jcsx=1;
  1179 + if(list.size()>0){
  1180 + for (int i = 0; i < list.size(); i++) {
  1181 + Ylb y=list.get(i);
  1182 + String[] fcsjStr = y.getJhsj().split(":");
  1183 + long fcsj=Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  1184 + if(fcsjL>fcsj){
  1185 + jcsx=jcsx+y.getJcsx();
  1186 + }else{
  1187 + y.setJcsx(y.getJcsx()+1);
  1188 + repository.save(y);
  1189 + }
  1190 + }
1063 1191  
1064   - String gsbm="";
1065   - String fgsbm="";
1066   - return null;
  1192 + }
  1193 + t.setJcsx(jcsx);
  1194 + repository.save(t);
  1195 + map.put("status", ResponseCode.SUCCESS);
  1196 + map.put("t", t);
  1197 + return map;
  1198 + }
  1199 + @Transactional
  1200 + @Override
  1201 + public Map<String, Object> deleteIds(Map<String, Object> map) throws Exception{
  1202 + // TODO Auto-generated method stub
  1203 + Map<String, Object> maps = new HashMap<>();
  1204 + try{
  1205 + String json =StringEscapeUtils.unescapeHtml4(map.get("ids").toString());
  1206 + JSONArray jsonArray=JSONArray.parseArray(json);
  1207 + JSONObject jsonObject;
  1208 + for (int x = 0; x < jsonArray.size(); x++) {
  1209 + jsonObject=jsonArray.getJSONObject(x);
  1210 + Integer id =jsonObject.getInteger("id");
  1211 + repository.delete(id);
  1212 + }
  1213 + maps.put("status", ResponseCode.SUCCESS);
  1214 + } catch (Exception e) {
  1215 + maps.put("status", ResponseCode.ERROR);
  1216 + logger.error("save erro.", e);
  1217 + throw e;
  1218 + }
  1219 + return maps;
1067 1220 }
1068 1221 }
1069 1222 \ No newline at end of file
... ...
src/main/java/com/bsth/service/oil/impl/YlxxbServiceImpl.java
... ... @@ -9,6 +9,9 @@ import java.util.HashMap;
9 9 import java.util.List;
10 10 import java.util.Map;
11 11  
  12 +import javax.transaction.Transactional;
  13 +
  14 +import org.apache.commons.lang3.StringEscapeUtils;
12 15 import org.slf4j.Logger;
13 16 import org.slf4j.LoggerFactory;
14 17 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -16,6 +19,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
16 19 import org.springframework.jdbc.core.RowMapper;
17 20 import org.springframework.stereotype.Service;
18 21  
  22 +import com.alibaba.fastjson.JSONArray;
  23 +import com.alibaba.fastjson.JSONObject;
19 24 import com.bsth.common.ResponseCode;
20 25 import com.bsth.entity.excep.Offline;
21 26 import com.bsth.entity.oil.Ylb;
... ... @@ -44,12 +49,27 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
44 49 String rq=map.get("yyrq").toString();
45 50 String gsdm=map.get("gsdm_like").toString();
46 51 String fgsdm=map.get("fgsdm_like").toString();
47   -
  52 + /*
48 53 String sql=" select x.*,y.jsy as ldgh,y.fgsdm as fgsdm from bsth_c_ylxxb x "
49 54 + " left join bsth_c_ylb y on x.nbbm = y.nbbm and x.jsy !=y.jsy "
50 55 + " where DATE_FORMAT(y.rq,'%Y-%m-%d')='"+rq+"' and y.ssgsdm='"+gsdm+"' "
51 56 + " and y.fgsdm='"+fgsdm+"' and DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' "
52   - + " and x.gsdm='"+gsdm+"'";
  57 + + " and x.gsdm='"+gsdm+"'";*/
  58 +
  59 + String sql= "select v.*,u.jsy as ldgh from "
  60 + + " ( select * from bsth_c_ylxxb x where "
  61 + + " DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' and x.gsdm='"+gsdm+"'"
  62 + + " and x.jsy not in ("
  63 + + " select jsy from bsth_c_ylb "
  64 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  65 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"')"
  66 + + " and x.nbbm in (select nbbm from bsth_c_ylb "
  67 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  68 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"' )) v "
  69 + + " left join (select * from bsth_c_ylb "
  70 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"'"
  71 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"' ) u "
  72 + + " on v.nbbm=u.nbbm ";
53 73  
54 74 //根具条件查询指定日期Ylxxb的数据
55 75 // List<Ylxxb> iterator=repository.checkYlxx(rq,gsdm);
... ... @@ -114,21 +134,33 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
114 134 pageObject.setDataList(list);
115 135 return pageObject;
116 136 }
117   -
  137 + @Transactional
118 138 @Override
119   - public Map<String, Object> checkJsy(Map<String, Object> map) {
  139 + public Map<String, Object> checkJsy(Map<String, Object> map) throws Exception{
120 140 Map<String, Object> newMap=new HashMap<String,Object>();
121 141 // TODO Auto-generated method stub
122 142 try {
123   - int id=Integer.parseInt(map.get("id").toString());
124   - String jsy=map.get("jsy").toString();
125   - Ylxxb ylxxb=repository.findOne(id);
126   - ylxxb.setJsy(jsy);
127   - repository.save(ylxxb);
  143 +// int id=Integer.parseInt(map.get("id").toString());
  144 +// String jsy=map.get("jsy").toString();
  145 +// Ylxxb ylxxb=repository.findOne(id);
  146 +// ylxxb.setJsy(jsy);
  147 +// repository.save(ylxxb);
  148 + String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString());
  149 + JSONArray jsonArray=JSONArray.parseArray(json);
  150 + JSONObject jsonObject;
  151 + for (int x = 0; x < jsonArray.size(); x++) {
  152 + jsonObject=jsonArray.getJSONObject(x);
  153 + Integer id =jsonObject.getInteger("id");
  154 + String jsy =jsonObject.getString("jsy");
  155 + Ylxxb ylxxb=repository.findOne(id);
  156 + ylxxb.setJsy(jsy);
  157 + repository.save(ylxxb);
  158 + }
128 159 newMap.put("status", ResponseCode.SUCCESS);
129 160 }catch(Exception e){
130 161 newMap.put("status", ResponseCode.ERROR);
131 162 logger.error("save erro.", e);
  163 + throw e;
132 164 }
133 165 return newMap;
134 166 }
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -92,7 +92,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
92 92  
93 93 Map<String,Object> findKMBC1(String jName,String clZbh, String date,String enddate);
94 94  
95   - Map<String,Object> findKMBC(String jName,String clZbh,String lpName,String date,String line);
  95 + Map<String,Object> findKMBC(String jGh,String clZbh,String lpName,String date,String line);
96 96  
97 97 Map<String,Object> findKMBCQp(String clZbh,String date,String line);
98 98  
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -40,6 +40,8 @@ import com.bsth.security.util.SecurityUtils;
40 40 import com.bsth.service.SectionRouteService;
41 41 import com.bsth.service.impl.BaseServiceImpl;
42 42 import com.bsth.service.realcontrol.ScheduleRealInfoService;
  43 +import com.bsth.service.report.CulateMileageService;
  44 +import com.bsth.service.report.ReportService;
43 45 import com.bsth.service.schedule.SchedulePlanInfoService;
44 46 import com.bsth.service.sys.DutyEmployeeService;
45 47 import com.bsth.util.*;
... ... @@ -87,6 +89,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
87 89  
88 90 @Autowired
89 91 SectionRouteService sectionRouteService;
  92 +
  93 + @Autowired
  94 + CulateMileageService culateMieageService;
90 95  
91 96 /*@Autowired
92 97 BorrowCenter borrowCenter;*/
... ... @@ -120,6 +125,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
120 125  
121 126 @Autowired
122 127 YlbRepository ylbRepository;
  128 +
  129 + @Autowired
  130 + ReportService reposrService;
  131 +
  132 + @Autowired
  133 + CulateMileageService culateService;
123 134  
124 135 Logger logger = LoggerFactory.getLogger(this.getClass());
125 136  
... ... @@ -1298,7 +1309,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1298 1309 }
1299 1310  
1300 1311  
1301   - @Override
  1312 + /* @Override
1302 1313 public Map<String, Object> findKMBC(String jName, String clZbh,
1303 1314 String lpName, String date, String line) {
1304 1315 List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill(jName, clZbh, lpName, date, line);
... ... @@ -1398,6 +1409,31 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1398 1409 map.put("zkslc", format.format(ksgl + jcclc));
1399 1410 // map.put("zkslc", format.format(ksgl + jcclc+addMileageJc));
1400 1411 return map;
  1412 + }*/
  1413 +
  1414 + public Map<String, Object> findKMBC(String jGh, String clZbh,
  1415 + String lpName, String date, String line) {
  1416 + Map<String, Object> map = new HashMap<String, Object>();
  1417 + List<ScheduleRealInfo> lists=scheduleRealInfoRepository.queryListWaybillXcld(jGh, clZbh, lpName, date, line);
  1418 + double ksgl=culateService.culateKsgl(lists);
  1419 + double sjgl=culateService.culateSjgl(lists);
  1420 + double jccgl=culateService.culateJccgl(lists);
  1421 + double ljgl=culateService.culateLjgl(lists);
  1422 + map.put("jhlc", culateService.culateJhgl(lists)); //计划里程
  1423 + map.put("remMileage", culateService.culateLbgl(lists)); //烂班公里
  1424 + map.put("addMileage", ljgl); //临加公里
  1425 + map.put("yygl",Arith.add(sjgl,ljgl)); //实际公里
  1426 + map.put("ksgl", ksgl);//空驶公里
  1427 + map.put("realMileage",Arith.add(Arith.add(ksgl,jccgl ),Arith.add(sjgl,ljgl)));
  1428 +// map.put("realMileage", format.format(yygl + ksgl + jcclc+addMileage));
  1429 + map.put("jhbc", culateService.culateJhbc(lists,""));
  1430 + map.put("cjbc", culateService.culateLbbc(lists));
  1431 + map.put("ljbc", culateService.culateLjbc(lists,""));
  1432 + map.put("sjbc", culateService.culateJhbc(lists,"") - culateService.culateLbbc(lists) + culateService.culateLjbc(lists,""));
  1433 + map.put("jcclc", jccgl);
  1434 + map.put("zkslc", Arith.add(ksgl,jccgl));
  1435 +// map.put("zkslc", format.format(ksgl + jcclc+addMileageJc));
  1436 + return map;
1401 1437 }
1402 1438  
1403 1439  
... ... @@ -1543,10 +1579,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1543 1579 listSchedule.add(s);
1544 1580 //计算营运里程,空驶里程
1545 1581 if (!childTaskPlans.isEmpty()) {
1546   - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
1547   - while (it.hasNext()) {
  1582 +// Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1583 + List<ChildTaskPlan> listit=new ArrayList<ChildTaskPlan>(childTaskPlans);
  1584 + Collections.sort(listit, new ComparableChild());
  1585 + for (int j = 0; j < listit.size(); j++) {
1548 1586 ScheduleRealInfo t = new ScheduleRealInfo();
1549   - ChildTaskPlan childTaskPlan = it.next();
  1587 + ChildTaskPlan childTaskPlan = listit.get(j);
1550 1588 if (childTaskPlan.isDestroy()) {
1551 1589 t.setFcsjActual("");
1552 1590 t.setZdsjActual("");
... ... @@ -1611,10 +1649,55 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1611 1649 }
1612 1650 return rs;
1613 1651 }
1614   -
1615 1652 @Override
1616 1653 public List<Map<String, Object>> statisticsDaily(String line, String date,
1617 1654 String xlName, String type) {
  1655 + List<Map<String, Object>> lMap= new ArrayList<Map<String, Object>>();
  1656 + List<ScheduleRealInfo> lists = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
  1657 + Map<String, Object> map = new HashMap<String, Object>();
  1658 + map.put("xlName", xlName);
  1659 + map.put("jhlc", culateService.culateJhgl(lists));
  1660 + map.put("sjgl", Arith.add(culateService.culateSjgl(lists),culateService.culateLjgl(lists)));
  1661 + map.put("ssgl", culateService.culateLbgl(lists));
  1662 + map.put("ssgl_lz", culateService.culateCJLC(lists, "路阻"));
  1663 + map.put("ssgl_dm", culateService.culateCJLC(lists, "吊慢"));
  1664 + map.put("ssgl_gz", culateService.culateCJLC(lists, "故障"));
  1665 + map.put("ssgl_jf", culateService.culateCJLC(lists, "纠纷"));
  1666 + map.put("ssgl_zs", culateService.culateCJLC(lists, "肇事"));
  1667 + map.put("ssgl_qr", culateService.culateCJLC(lists, "缺人"));
  1668 + map.put("ssgl_qc", culateService.culateCJLC(lists, "缺车"));
  1669 + map.put("ssgl_kx", culateService.culateCJLC(lists, "客稀"));
  1670 + map.put("ssgl_qh", culateService.culateCJLC(lists, "气候"));
  1671 + map.put("ssgl_yw", culateService.culateCJLC(lists, "援外"));
  1672 + map.put("ssgl_other", culateService.culateCJLC(lists, "其他"));
  1673 + map.put("ssbc", culateService.culateLbbc(lists));
  1674 + map.put("ljgl", culateService.culateLjgl(lists));
  1675 + map.put("jhbc", culateService.culateJhbc(lists,""));
  1676 + map.put("jhbc_m", culateService.culateJhbc(lists, "zgf"));
  1677 + map.put("jhbc_a", culateService.culateJhbc(lists, "wgf"));
  1678 + map.put("sjbc", culateService.culateSjbc(lists,""));
  1679 + map.put("sjbc_m", culateService.culateSjbc(lists,"zgf"));
  1680 + map.put("sjbc_a", culateService.culateSjbc(lists,"wgf"));
  1681 + map.put("ljbc", culateService.culateLjbc(lists,""));
  1682 + map.put("ljbc_m", culateService.culateLjbc(lists,"zgf"));
  1683 + map.put("ljbc_a", culateService.culateLjbc(lists,"wgf"));
  1684 + map.put("fzbc", culateService.culateFzbc(lists, ""));
  1685 + map.put("fzbc_m", culateService.culateFzbc(lists, "zgf"));
  1686 + map.put("fzbc_a", culateService.culateFzbc(lists, "wgf"));
  1687 + map.put("dtbc", 0);
  1688 + map.put("dtbc_m", 0);
  1689 + map.put("dtbc_a", 0);
  1690 + map.put("djg", 0);
  1691 + map.put("djg_m", 0);
  1692 + map.put("djg_a", 0);
  1693 + map.put("djg_time", 0);
  1694 + lMap.add(map);
  1695 + return lMap;
  1696 + }
  1697 +
  1698 + /* @Override
  1699 + public List<Map<String, Object>> statisticsDaily(String line, String date,
  1700 + String xlName, String type) {
1618 1701 List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
1619 1702 if (date.length() == 10)
1620 1703 list = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
... ... @@ -1748,8 +1831,6 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1748 1831 while (it.hasNext()) {
1749 1832 ChildTaskPlan childTaskPlan = it.next();
1750 1833 childMileage = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
1751   - jhlc += childMileage;
1752   - jhlcZ += childMileage;
1753 1834 if (childTaskPlan.isDestroy()) {
1754 1835 ssgl += childMileage;
1755 1836 ssglZ += childMileage;
... ... @@ -2101,7 +2182,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2101 2182 map.put("djg_a", djg_aZ);
2102 2183 map.put("djg_time", djg_timeZ);
2103 2184 lMap.add(map);
2104   - /* for (int i = 0; i < lMap.size(); i++) {
  2185 + for (int i = 0; i < lMap.size(); i++) {
2105 2186 Map<String, Object> m=lMap.get(i);
2106 2187 // m.get(""))
2107 2188 jhlc += Double.parseDouble(m.get("jhlc").toString());
... ... @@ -2138,7 +2219,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2138 2219 m.get("djg_m", djg_m);
2139 2220 m.get("djg_a", djg_a);
2140 2221 m.get("djg_time", djg_time);
2141   - }*/
  2222 + }
2142 2223  
2143 2224 if (type != null && type.length() != 0 && type.equals("export")) {
2144 2225 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
... ... @@ -2158,7 +2239,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2158 2239 }
2159 2240  
2160 2241 return lMap;
2161   - }
  2242 + }*/
2162 2243  
2163 2244 @Override
2164 2245 public List<Map<String, Object>> statisticsDailyTj(String line, String date,String date2,
... ... @@ -2969,12 +3050,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2969 3050 String jName = yesterdayDataList.get(x).get("jGh").toString();
2970 3051 String clZbh = yesterdayDataList.get(x).get("clZbh").toString();
2971 3052  
2972   - double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0;
  3053 +// double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0;
2973 3054 double addMileage = 0, remMileage = 0;
2974 3055 Map<String, Object> map = new HashMap<String, Object>();
2975 3056 boolean fage = true;
2976 3057 String company="";
2977 3058 String bCompany="";
  3059 + List<ScheduleRealInfo> listS=new ArrayList<ScheduleRealInfo>();
2978 3060 for (ScheduleRealInfo scheduleRealInfo : lists) {
2979 3061 if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)){
2980 3062 if (fage) {
... ... @@ -2983,7 +3065,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2983 3065 bCompany=scheduleRealInfo.getFgsBm();
2984 3066 fage = false;
2985 3067 }
2986   - if (scheduleRealInfo != null) {
  3068 + listS.add(scheduleRealInfo);
  3069 +
  3070 + /* if (scheduleRealInfo != null) {
2987 3071 //计划里程(主任务过滤掉临加班次),
2988 3072 //烂班里程(主任务烂班),
2989 3073 //临加里程(主任务临加),
... ... @@ -3042,16 +3126,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3042 3126 }
3043 3127 }
3044 3128 }
3045   - }
  3129 + }*/
3046 3130 }
3047 3131 }
  3132 +
3048 3133 yesterdayDataList.get(x).put("company", company);
3049 3134 yesterdayDataList.get(x).put("bCompany", bCompany);
3050   - Double zgl=Arith.add(yygl,ksgl);
3051   - yesterdayDataList.get(x).put("totalKilometers", Arith.add(zgl, jcclc));
  3135 +// Double zgl=Arith.add(yygl,ksgl);
  3136 + Double ljgl=culateMieageService.culateLjgl(listS);
  3137 + Double sjgl=culateMieageService.culateSjgl(listS);
  3138 + Double ksgl=culateMieageService.culateKsgl(listS);
  3139 + Double jccgl=culateMieageService.culateJccgl(listS);
  3140 + Double zyygl=Arith.add(sjgl, ljgl);
  3141 + Double zksgl=Arith.add(ksgl, jccgl);
  3142 + yesterdayDataList.get(x).put("totalKilometers", Arith.add(zyygl, zksgl));
3052 3143  
3053 3144 }
3054   - System.out.println();
3055 3145 //增加顺序号
3056 3146 for (int i = 0; i < yesterdayDataList.size(); i++) {
3057 3147 if (i == 0) {
... ...
src/main/java/com/bsth/service/report/CulateMileageService.java 0 → 100644
  1 +package com.bsth.service.report;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  7 +
  8 +public interface CulateMileageService {
  9 +
  10 + List<Map<String,Object>> jobFwqk(List<ScheduleRealInfo> lists);
  11 + double culateLbgl(List<ScheduleRealInfo> lists);
  12 + int culateLbbc(List<ScheduleRealInfo> lists);
  13 +
  14 + List<Map<String,Object>> jobLjqk(List<ScheduleRealInfo> lists);
  15 + double culateLjgl(List<ScheduleRealInfo> lists);
  16 + int culateLjbc(List<ScheduleRealInfo> lists,String item);
  17 +
  18 + double culateJhgl(List<ScheduleRealInfo> lists);
  19 + int culateJhbc(List<ScheduleRealInfo> lists,String item);
  20 +
  21 + double culateSjgl(List<ScheduleRealInfo> lists);
  22 + int culateSjbc(List<ScheduleRealInfo> lists,String item);
  23 +
  24 + double culateKsgl(List<ScheduleRealInfo> lists);
  25 + double culateJccgl(List<ScheduleRealInfo> lists);
  26 +
  27 + double culateCJLC(List<ScheduleRealInfo> lists,String item);
  28 +
  29 + int culateFzbc(List<ScheduleRealInfo> lists,String item);
  30 +
  31 +}
  32 +
... ...
src/main/java/com/bsth/service/report/ReportService.java
... ... @@ -29,5 +29,15 @@ public interface ReportService {
29 29 List<Map<String, Object>> tbodyTime5(String line ,String ttinfo);
30 30  
31 31 List<Map<String, Object>> getTtinfo(Map<String, Object> map);
32   -
  32 +
  33 + List<Map<String,Object>> jobFwqk(Map<String, Object> map);
  34 + List<Map<String,Object>> jobLjqk(Map<String, Object> map);
  35 +
  36 + Map<String, Object> jobHzxx(Map<String, Object> map);
  37 +
  38 + List<Map<String, Object>> lineList();
  39 +
  40 + List<Map<String, String>> carList(Map<String, Object> map);
  41 +
  42 + List<Map<String, String>> userList(Map<String, Object> map);
33 43 }
... ...
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java 0 → 100644
  1 +package com.bsth.service.report.impl;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.HashMap;
  5 +import java.util.Iterator;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +import java.util.Set;
  9 +
  10 +import org.apache.commons.lang.StringUtils;
  11 +import org.springframework.stereotype.Service;
  12 +
  13 +import com.bsth.entity.realcontrol.ChildTaskPlan;
  14 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  15 +import com.bsth.service.report.CulateMileageService;
  16 +import com.bsth.util.Arith;
  17 +
  18 +@Service
  19 +public class CulateMileageServiceImpl implements CulateMileageService{
  20 +
  21 + private static long zgf1 = 6 * 60 + 31,
  22 + zgf2 = 8 * 60 + 30,
  23 + wgf1 = 16 * 60 + 1,
  24 + wgf2 = 18 * 60;
  25 + @Override
  26 + public List<Map<String, Object>> jobFwqk(List<ScheduleRealInfo> lists) {
  27 + // TODO Auto-generated method stub
  28 + List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  29 + for (int i = 0; i < lists.size(); i++) {
  30 + ScheduleRealInfo scheduleRealInfo = lists.get(i);
  31 + if (!(scheduleRealInfo.getBcType().equals("in")
  32 + || scheduleRealInfo.getBcType().equals("out"))) {
  33 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  34 + if (childTaskPlans.isEmpty()) {
  35 + Map<String, Object> newMap = new HashMap<String, Object>();
  36 + String adjustExps = "";
  37 + if (scheduleRealInfo.getAdjustExps() == "" || scheduleRealInfo.getAdjustExps() == null) {
  38 + adjustExps = "其他";
  39 + } else {
  40 + adjustExps = scheduleRealInfo.getAdjustExps();
  41 + }
  42 + if (scheduleRealInfo.getStatus() == -1) {
  43 + newMap.put("nr", adjustExps);
  44 + newMap.put("lp", scheduleRealInfo.getLpName());
  45 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  46 + newMap.put("jgh", scheduleRealInfo.getjGh());
  47 + newMap.put("dz", scheduleRealInfo.getQdzName());
  48 + newMap.put("sj", scheduleRealInfo.getFcsj());
  49 + newMap.put("lbbc", 1);
  50 + newMap.put("lblc", scheduleRealInfo.getJhlcOrig());
  51 + newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  52 + list.add(newMap);
  53 + }
  54 +
  55 + } else {
  56 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  57 + while (it.hasNext()) {
  58 + ChildTaskPlan childTaskPlan = it.next();
  59 + if (childTaskPlan.isDestroy()) {
  60 + String destroyReason = "";
  61 + if (childTaskPlan.getDestroyReason() == "" || childTaskPlan.getDestroyReason() == null) {
  62 + destroyReason = "其他";
  63 + } else {
  64 + destroyReason = childTaskPlan.getDestroyReason();
  65 + }
  66 + Map<String, Object> newMap = new HashMap<String, Object>();
  67 + newMap.put("nr", destroyReason);
  68 + newMap.put("lp", scheduleRealInfo.getLpName());
  69 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  70 + newMap.put("jgh", scheduleRealInfo.getjGh());
  71 + newMap.put("dz", childTaskPlan.getStartStationName());
  72 + newMap.put("sj", childTaskPlan.getStartDate());
  73 + newMap.put("lbbc", 0);
  74 + newMap.put("lblc", childTaskPlan.getMileage());
  75 + newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  76 + list.add(newMap);
  77 +
  78 + }
  79 + }
  80 + }
  81 + }
  82 + }
  83 + return list;
  84 + }
  85 +
  86 + @Override
  87 + public double culateLbgl(List<ScheduleRealInfo> lists) {
  88 + // TODO Auto-generated method stub
  89 + double zlblc =0.0;
  90 + for (int i = 0; i < lists.size(); i++) {
  91 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  92 + if (!isInOut(scheduleRealInfo)) {
  93 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  94 + if(childTaskPlans.isEmpty()){
  95 + if(scheduleRealInfo.getStatus() == -1){
  96 + zlblc=Arith.add(zlblc,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  97 + }else{
  98 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  99 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  100 + double cjlc=Arith.sub(jhlcOrig,jhlc);
  101 + if(cjlc>0){
  102 + zlblc=Arith.add(zlblc, cjlc);
  103 + }
  104 + }
  105 + }else{
  106 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  107 + while (it.hasNext()) {
  108 + ChildTaskPlan childTaskPlan = it.next();
  109 + if (childTaskPlan.isDestroy()) {
  110 + zlblc=Arith.add(zlblc,childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage());
  111 + }
  112 + }
  113 + }
  114 + }
  115 + }
  116 + return zlblc;
  117 + }
  118 +
  119 + @Override
  120 + public int culateLbbc(List<ScheduleRealInfo> lists) {
  121 + // TODO Auto-generated method stub
  122 + int lbbc=0;
  123 + for (int i = 0; i < lists.size(); i++) {
  124 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  125 + if (!(scheduleRealInfo.getBcType().equals("in")
  126 + || scheduleRealInfo.getBcType().equals("out"))) {
  127 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  128 + if(childTaskPlans.isEmpty()){
  129 + if(scheduleRealInfo.getStatus() == -1){
  130 + lbbc++;
  131 + }
  132 + }else{
  133 + if(scheduleRealInfo.getStatus() == -1){
  134 + boolean fage=true;
  135 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  136 + if(it.hasNext()){
  137 + ChildTaskPlan childTaskPlan = it.next();
  138 + if(!childTaskPlan.isDestroy()){
  139 + if(childTaskPlan.getMileageType().equals("service")){
  140 + fage=false;
  141 + }
  142 + }
  143 +
  144 + }
  145 + if(fage){
  146 + lbbc++;
  147 + }
  148 + }
  149 + }
  150 + }
  151 + }
  152 + return lbbc;
  153 + }
  154 +
  155 + @Override
  156 + public List<Map<String, Object>> jobLjqk(List<ScheduleRealInfo> lists) {
  157 + // TODO Auto-generated method stub
  158 + List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  159 + for (int i = 0; i < lists.size(); i++) {
  160 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  161 + if (!(scheduleRealInfo.getBcType().equals("in")
  162 + || scheduleRealInfo.getBcType().equals("out"))) {
  163 +// Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  164 +// if(childTaskPlans.isEmpty()){
  165 + if(scheduleRealInfo.isSflj()){
  166 + Map<String, Object> newMap=new HashMap<String,Object>();
  167 + newMap.put("lp", scheduleRealInfo.getLpName());
  168 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  169 + newMap.put("jgh", scheduleRealInfo.getjGh());
  170 + newMap.put("dz", scheduleRealInfo.getQdzName());
  171 + newMap.put("sj", scheduleRealInfo.getFcsj());
  172 + newMap.put("ljlc", scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  173 + newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  174 + list.add(newMap);
  175 + }
  176 +// }else{
  177 +// Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  178 +// while (it.hasNext()) {
  179 +// ChildTaskPlan childTaskPlan = it.next();
  180 +// if (childTaskPlan.isDestroy()) {
  181 +// }
  182 +// }
  183 +// }
  184 + }
  185 + }
  186 + return list;
  187 + }
  188 +
  189 + @Override
  190 + public double culateLjgl(List<ScheduleRealInfo> lists) {
  191 + // TODO Auto-generated method stub
  192 + double ljgl=0;
  193 + for (int i = 0; i < lists.size(); i++) {
  194 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  195 + if (!(scheduleRealInfo.getBcType().equals("in")
  196 + || scheduleRealInfo.getBcType().equals("out"))) {
  197 + if(!scheduleRealInfo.isDestroy()){
  198 + if(scheduleRealInfo.isSflj()){
  199 + ljgl=Arith.add(ljgl,scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  200 + }else{
  201 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  202 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  203 + double zjlc=Arith.sub(jhlc, jhlcOrig);
  204 + if(zjlc>0){
  205 + ljgl=Arith.add(zjlc, ljgl);
  206 + }
  207 + }
  208 + }
  209 +
  210 + }
  211 + }
  212 + return ljgl;
  213 + }
  214 +
  215 + @Override
  216 + public int culateLjbc(List<ScheduleRealInfo> lists,String item) {
  217 + // TODO Auto-generated method stub
  218 + int ljbc=0;
  219 + for (int i = 0; i < lists.size(); i++) {
  220 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  221 + if (!(scheduleRealInfo.getBcType().equals("in")
  222 + || scheduleRealInfo.getBcType().equals("out"))) {
  223 + if(scheduleRealInfo.isSflj()){
  224 + if(item.equals("zgf") || item.equals("wgf")){
  225 + String time="";
  226 + if(scheduleRealInfo.getFcsjActual()!=null){
  227 + time=scheduleRealInfo.getFcsjActual();
  228 + }
  229 + if(time.equals("")){
  230 + if(scheduleRealInfo.getDfsj()!=null){
  231 + time=scheduleRealInfo.getDfsj();
  232 + }
  233 + }
  234 + if(!time.equals("")){
  235 + String[] fcsjStr = time.split(":");
  236 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  237 +
  238 + if(item.equals("zgf")){
  239 + if(fcsj>=zgf1 && fcsj<=zgf2){
  240 + ljbc++;
  241 + }
  242 + }else if(item.equals("wgf")){
  243 + if(fcsj>=wgf1 && fcsj<=wgf2){
  244 + ljbc++;
  245 + }
  246 + }
  247 + }
  248 + }else{
  249 + ljbc++;
  250 + }
  251 + }
  252 + }
  253 + }
  254 + return ljbc;
  255 + }
  256 +
  257 + @Override
  258 + public double culateJhgl(List<ScheduleRealInfo> lists) {
  259 + // TODO Auto-generated method stub
  260 + double jhgl=0;
  261 + for (int i = 0; i < lists.size(); i++) {
  262 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  263 + if (!(scheduleRealInfo.getBcType().equals("in")
  264 + || scheduleRealInfo.getBcType().equals("out"))) {
  265 + if(!scheduleRealInfo.isSflj()){
  266 + jhgl=Arith.add(jhgl,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  267 + }
  268 + }
  269 + }
  270 + return jhgl;
  271 + }
  272 +
  273 + @Override
  274 + public int culateJhbc(List<ScheduleRealInfo> lists,String item) {
  275 + // TODO Auto-generated method stub
  276 + int jhbc=0;
  277 + for (int i = 0; i < lists.size(); i++) {
  278 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  279 + if (!(scheduleRealInfo.getBcType().equals("in")
  280 + || scheduleRealInfo.getBcType().equals("out"))) {
  281 + if(!scheduleRealInfo.isSflj()){
  282 + String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
  283 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  284 + if(item.equals("zgf")){
  285 + if(fcsj>=zgf1 && fcsj<=zgf2){
  286 + jhbc++;
  287 + }
  288 + }else if(item.equals("wgf")){
  289 + if(fcsj>=wgf1 && fcsj<=wgf2){
  290 + jhbc++;
  291 + }
  292 + }else{
  293 + jhbc++;
  294 + }
  295 +
  296 + }
  297 + }
  298 + }
  299 + return jhbc;
  300 + }
  301 +
  302 + @Override
  303 + public double culateSjgl(List<ScheduleRealInfo> lists) {
  304 + // TODO Auto-generated method stub
  305 + double sjgl =0;
  306 + for (int i = 0; i < lists.size(); i++) {
  307 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  308 + if (!isInOut(scheduleRealInfo)) {
  309 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  310 + if(!scheduleRealInfo.isSflj()){
  311 + if(childTaskPlans.isEmpty()){
  312 + if(scheduleRealInfo.getStatus() != -1){
  313 + double jggl=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  314 + sjgl=Arith.add(sjgl,jggl);
  315 + }
  316 + }else{
  317 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  318 + while (it.hasNext()) {
  319 + ChildTaskPlan childTaskPlan = it.next();
  320 + if(childTaskPlan.getMileageType().equals("service")){
  321 + if (!childTaskPlan.isDestroy()) {
  322 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  323 + sjgl=Arith.add(sjgl,jhgl);
  324 + }
  325 + }
  326 + }
  327 + }
  328 + }
  329 + }
  330 + }
  331 + return sjgl;
  332 + }
  333 +
  334 + @Override
  335 + public int culateSjbc(List<ScheduleRealInfo> lists,String item) {
  336 + // TODO Auto-generated method stub
  337 + int sjbc=0;
  338 + for (int i = 0; i < lists.size(); i++) {
  339 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  340 + if (!(scheduleRealInfo.getBcType().equals("in")
  341 + || scheduleRealInfo.getBcType().equals("out"))) {
  342 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  343 + if(!scheduleRealInfo.isSflj()){
  344 + String time="";
  345 + if(item.equals("zgf") || item.equals("wgf")){
  346 + if(scheduleRealInfo.getFcsjActual()!=null){
  347 + time=scheduleRealInfo.getFcsjActual();
  348 + }
  349 + if(time.equals("")){
  350 + if(scheduleRealInfo.getDfsj()!=null){
  351 + time=scheduleRealInfo.getDfsj();
  352 + }
  353 + }
  354 + }else{
  355 + time=scheduleRealInfo.getFcsj();
  356 + }
  357 + if(!time.equals("")){
  358 + String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
  359 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  360 + if(childTaskPlans.isEmpty()){
  361 + if(scheduleRealInfo.getStatus()!=-1){
  362 + if(item.equals("zgf")){
  363 + if(fcsj>=zgf1 && fcsj<=zgf2){
  364 + sjbc++;
  365 + }
  366 + }else if(item.equals("wgf")){
  367 + if(fcsj>=wgf1 && fcsj<=wgf2){
  368 + sjbc++;
  369 + }
  370 + }else{
  371 + sjbc++;
  372 + }
  373 +
  374 + }
  375 + }else{
  376 + if(scheduleRealInfo.getStatus() == -1){
  377 + boolean fage=false;
  378 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  379 + if(it.hasNext()){
  380 + ChildTaskPlan childTaskPlan = it.next();
  381 + if(!childTaskPlan.isDestroy()){
  382 + if(childTaskPlan.getMileageType().equals("service")){
  383 + fage=true;
  384 + }
  385 + }
  386 +
  387 + }
  388 + if(fage){
  389 + if(item.equals("zgf")){
  390 + if(fcsj>=zgf1 && fcsj<=zgf2){
  391 + sjbc++;
  392 + }
  393 + }else if(item.equals("wgf")){
  394 + if(fcsj>=wgf1 && fcsj<=wgf2){
  395 + sjbc++;
  396 + }
  397 + }else{
  398 + sjbc++;
  399 + }
  400 + }
  401 +
  402 + }else{
  403 + if(item.equals("zgf")){
  404 + if(fcsj>=zgf1 && fcsj<=zgf2){
  405 + sjbc++;
  406 + }
  407 + }else if(item.equals("wgf")){
  408 + if(fcsj>=wgf1 && fcsj<=wgf2){
  409 + sjbc++;
  410 + }
  411 + }else{
  412 + sjbc++;
  413 + }
  414 + }
  415 + }
  416 + }
  417 + }
  418 + }
  419 + }
  420 + return sjbc;
  421 + }
  422 +
  423 + @Override
  424 + public double culateKsgl(List<ScheduleRealInfo> lists) {
  425 + // TODO Auto-generated method stub
  426 + double ksgl =0;
  427 + for (int i = 0; i < lists.size(); i++) {
  428 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  429 + if (!(scheduleRealInfo.getBcType().equals("in")
  430 + || scheduleRealInfo.getBcType().equals("out"))) {
  431 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  432 + if(!childTaskPlans.isEmpty()){
  433 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  434 + while (it.hasNext()) {
  435 + ChildTaskPlan childTaskPlan = it.next();
  436 + if(childTaskPlan.getMileageType().equals("empty")){
  437 + if (!childTaskPlan.isDestroy()) {
  438 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  439 + ksgl=Arith.add(ksgl,jhgl);
  440 + }
  441 + }
  442 + }
  443 + }
  444 + }
  445 + }
  446 + return ksgl;
  447 + }
  448 +
  449 + @Override
  450 + public double culateJccgl(List<ScheduleRealInfo> lists) {
  451 + // TODO Auto-generated method stub
  452 + double jcclc =0;
  453 + for (int i = 0; i < lists.size(); i++) {
  454 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  455 + if (scheduleRealInfo.getBcType().equals("in")
  456 + || scheduleRealInfo.getBcType().equals("out")) {
  457 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  458 + if(childTaskPlans.isEmpty()){
  459 + if(!scheduleRealInfo.isDestroy())
  460 + jcclc =Arith.add(jcclc, scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  461 + }else{
  462 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  463 + while (it.hasNext()) {
  464 + ChildTaskPlan childTaskPlan = it.next();
  465 + if(childTaskPlan.getMileageType().equals("empty")){
  466 + if (!childTaskPlan.isDestroy()) {
  467 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  468 + jcclc=Arith.add(jcclc,jhgl);
  469 + }
  470 + }
  471 + }
  472 + }
  473 + }
  474 + }
  475 + return jcclc;
  476 + }
  477 +
  478 + public static boolean isInOut(ScheduleRealInfo s){
  479 + boolean fage=false;
  480 + if(s.getBcType().equals("in")){
  481 + fage=true;
  482 + }
  483 + if(s.getBcType().equals("out")){
  484 + fage=true;
  485 + }
  486 +
  487 + return fage;
  488 + }
  489 +
  490 + @Override
  491 + public double culateCJLC(List<ScheduleRealInfo> list, String item) {
  492 + // TODO Auto-generated method stub
  493 + double sum = 0;
  494 + Set<ChildTaskPlan> cts;
  495 + for(ScheduleRealInfo sch : list){
  496 + if (sch.isSflj())
  497 + continue;
  498 + cts = sch.getcTasks();
  499 + //有子任务
  500 + if (cts != null && cts.size() > 0) {
  501 + for(ChildTaskPlan c : cts){
  502 + if(c.isDestroy() && c.getDestroyReason().equals(item))
  503 + sum = Arith.add(sum, c.getMileage());
  504 + }
  505 + }
  506 + else if(isInOut(sch))
  507 + continue;
  508 + //主任务烂班
  509 + else if(sch.getStatus() == -1){
  510 + if(sch.getAdjustExps().equals(item) ||
  511 + (StringUtils.isEmpty(sch.getAdjustExps()) && item.equals("其他"))){
  512 + sum = Arith.add(sum, sch.getJhlcOrig());
  513 + }
  514 + }
  515 + else if(item.equals("其他")){
  516 + double diff = Arith.sub(sch.getJhlcOrig(), sch.getJhlc());
  517 + if(diff > 0){
  518 + sum = Arith.add(sum, diff);
  519 + }
  520 + }
  521 + }
  522 + return sum;
  523 +
  524 + }
  525 +
  526 + @Override
  527 + public int culateFzbc(List<ScheduleRealInfo> lists, String item) {
  528 + // TODO Auto-generated method stub
  529 + int fzbc=0;
  530 + for (int i = 0; i < lists.size(); i++) {
  531 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  532 + if (scheduleRealInfo.getBcType().equals("venting")) {
  533 +// if(!scheduleRealInfo.isSflj()){
  534 + String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
  535 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  536 + if(item.equals("zgf")){
  537 + if(fcsj>=zgf1 && fcsj<=zgf2){
  538 + fzbc++;
  539 + }
  540 + }else if(item.equals("wgf")){
  541 + if(fcsj>=wgf1 && fcsj<=wgf2){
  542 + fzbc++;
  543 + }
  544 + }else{
  545 + fzbc++;
  546 + }
  547 +
  548 +// }
  549 + }
  550 + }
  551 + return fzbc;
  552 + }
  553 +
  554 +}
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -10,9 +10,12 @@ import java.util.ArrayList;
10 10 import java.util.Calendar;
11 11 import java.util.Date;
12 12 import java.util.HashMap;
  13 +import java.util.Iterator;
13 14 import java.util.List;
14 15 import java.util.Map;
  16 +import java.util.Set;
15 17  
  18 +import org.apache.commons.lang.StringUtils;
16 19 import org.slf4j.Logger;
17 20 import org.slf4j.LoggerFactory;
18 21 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -21,14 +24,20 @@ import org.springframework.jdbc.core.RowMapper;
21 24 import org.springframework.stereotype.Service;
22 25  
23 26 import com.bsth.data.BasicData;
  27 +import com.bsth.entity.Line;
  28 +import com.bsth.entity.Personnel;
24 29 import com.bsth.entity.StationRoute;
25 30 import com.bsth.entity.excep.ArrivalInfo;
26 31 import com.bsth.entity.oil.Ylb;
  32 +import com.bsth.entity.realcontrol.ChildTaskPlan;
27 33 import com.bsth.entity.realcontrol.ScheduleRealInfo;
28 34 import com.bsth.entity.schedule.SchedulePlanInfo;
  35 +import com.bsth.repository.LineRepository;
29 36 import com.bsth.repository.StationRouteRepository;
30 37 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  38 +import com.bsth.service.report.CulateMileageService;
31 39 import com.bsth.service.report.ReportService;
  40 +import com.bsth.util.Arith;
32 41 import com.bsth.util.db.DBUtils_MS;
33 42  
34 43 @Service
... ... @@ -44,6 +53,10 @@ public class ReportServiceImpl implements ReportService{
44 53 ScheduleRealInfoRepository scheduleRealInfoRepository;
45 54 @Autowired
46 55 StationRouteRepository stationRoutRepository;
  56 + @Autowired
  57 + CulateMileageService culateService;
  58 + @Autowired
  59 + LineRepository lineRepository;
47 60 @Override
48 61 public List<ScheduleRealInfo> queryListBczx(String line, String date,String clzbh) {
49 62 // TODO Auto-generated method stub
... ... @@ -1059,4 +1072,360 @@ public class ReportServiceImpl implements ReportService{
1059 1072 return list;
1060 1073 }
1061 1074  
  1075 + private List<ScheduleRealInfo> getListSinfo(Map<String, Object> map){
  1076 + List<ScheduleRealInfo> list =new ArrayList<ScheduleRealInfo>();
  1077 +
  1078 + String sql="select DISTINCT a.* from (select * from bsth_c_s_sp_info_real where 1=1 ";
  1079 + if(map.get("date")!=null){
  1080 + sql += " and schedule_date_str='"+map.get("date").toString()+"'";
  1081 + }
  1082 + if(map.get("line")!=null){
  1083 + if(map.get("line").toString()!=""){
  1084 + sql += " and xl_bm='"+map.get("line").toString()+"'";
  1085 + }
  1086 +
  1087 + }
  1088 + if(map.get("bcType")!=null){
  1089 + if(map.get("bcType").toString().equals("inout")){
  1090 + sql += " and bc_type in ('in','out')";
  1091 + }
  1092 +
  1093 + if(map.get("bcType").toString().equals("normal")){
  1094 + sql += " and bc_type not in ('in','out')";
  1095 + }
  1096 + }
  1097 +
  1098 + sql += " )a left join bsth_c_s_child_task b on a.id=b.schedule";
  1099 + list= jdbcTemplate.query(sql,
  1100 + new RowMapper<ScheduleRealInfo>(){
  1101 + @Override
  1102 + public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
  1103 + ScheduleRealInfo m=new ScheduleRealInfo();
  1104 + m.setId(rs.getLong("id"));
  1105 +// m.setBcs();
  1106 +// m.setBcsj();
  1107 + m.setClZbh(rs.getString("cl_zbh"));
  1108 + m.setFcsj(rs.getString("fcsj"));
  1109 + m.setFcsjActual(rs.getString("fcsj_actual"));
  1110 + m.setjGh(rs.getString("j_gh"));
  1111 + m.setjName(rs.getString("j_name"));
  1112 + m.setJhlc(rs.getDouble("jhlc"));
  1113 + m.setLpName(rs.getString("lp_name"));
  1114 + m.setQdzCode(rs.getString("qdz_code"));
  1115 + m.setQdzName(rs.getString("qdz_name"));
  1116 + m.setRealExecDate(rs.getString("real_exec_date"));
  1117 + m.setRealMileage(rs.getDouble("real_mileage"));
  1118 + m.setRemarks(rs.getString("remarks"));
  1119 + m.setsGh(rs.getString("s_gh"));
  1120 + m.setsName(rs.getString("s_name"));
  1121 + m.setScheduleDate(rs.getDate("schedule_date"));
  1122 + m.setScheduleDateStr(rs.getString("schedule_date_str"));
  1123 + m.setSflj(rs.getBoolean("sflj"));
  1124 + m.setSpId(rs.getLong("sp_id"));
  1125 + m.setStatus(rs.getInt("status"));
  1126 + m.setXlBm(rs.getString("xl_bm"));
  1127 + m.setXlDir(rs.getString("xl_dir"));
  1128 + m.setXlName(rs.getString("xl_name"));
  1129 + m.setZdsj(rs.getString("zdsj"));
  1130 + m.setZdsjActual(rs.getString("zdsj_actual"));
  1131 + m.setZdzCode(rs.getString("zdz_code"));
  1132 + m.setZdzName(rs.getString("zdz_name"));
  1133 + m.setCcno(rs.getInt("ccno"));
  1134 + m.setDfAuto(rs.getBoolean("df_auto"));
  1135 + m.setFgsBm(rs.getString("fgs_bm"));
  1136 + m.setFgsName(rs.getString("fgs_name"));
  1137 + m.setGsBm(rs.getString("gs_bm"));
  1138 + m.setGsName(rs.getString("gs_name"));
  1139 + m.setOnline(rs.getBoolean("online"));
  1140 + m.setAdjustExps(rs.getString("adjust_exps"));
  1141 + m.setReissue(rs.getBoolean("reissue"));
  1142 + m.setJhlcOrig(rs.getDouble("jhlc_orig"));
  1143 + return m;
  1144 + }
  1145 + });
  1146 +
  1147 + return list;
  1148 + }
  1149 +
  1150 + @Override
  1151 + public List<Map<String, Object>> jobFwqk(Map<String, Object> map) {
  1152 + // TODO Auto-generated method stub
  1153 + String line=map.get("line").toString();
  1154 + String date=map.get("date").toString();
  1155 + map.put("bcType", "normal");
  1156 + List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  1157 + List<ScheduleRealInfo> sList=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date);
  1158 + for (int i = 0; i < sList.size(); i++) {
  1159 + ScheduleRealInfo scheduleRealInfo = sList.get(i);
  1160 + if (!(scheduleRealInfo.getBcType().equals("in")
  1161 + || scheduleRealInfo.getBcType().equals("out"))) {
  1162 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1163 + if (childTaskPlans.isEmpty()) {
  1164 + Map<String, Object> newMap = new HashMap<String, Object>();
  1165 + String adjustExps = "";
  1166 + if (scheduleRealInfo.getAdjustExps() == null) {
  1167 + adjustExps = "其他";
  1168 + } else if(scheduleRealInfo.getAdjustExps().equals("")){
  1169 + adjustExps = "其他";
  1170 + }else {
  1171 + adjustExps = scheduleRealInfo.getAdjustExps();
  1172 + }
  1173 + if (scheduleRealInfo.getStatus() == -1) {
  1174 + newMap.put("nr", adjustExps);
  1175 + newMap.put("lp", scheduleRealInfo.getLpName());
  1176 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  1177 + newMap.put("jgh", scheduleRealInfo.getjGh());
  1178 + newMap.put("dz", scheduleRealInfo.getQdzName());
  1179 + newMap.put("sj", scheduleRealInfo.getFcsj());
  1180 + newMap.put("lbbc", 1);
  1181 + newMap.put("lblc", scheduleRealInfo.getJhlcOrig());
  1182 + newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  1183 + list.add(newMap);
  1184 + }
  1185 +
  1186 + } else {
  1187 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1188 + while (it.hasNext()) {
  1189 + ChildTaskPlan childTaskPlan = it.next();
  1190 + if (childTaskPlan.isDestroy()) {
  1191 + String destroyReason = "";
  1192 + if ( childTaskPlan.getDestroyReason() == null) {
  1193 + destroyReason = "其他";
  1194 + }else if(childTaskPlan.getDestroyReason().equals("")){
  1195 + destroyReason = "其他";
  1196 + } else {
  1197 + destroyReason = childTaskPlan.getDestroyReason();
  1198 + }
  1199 + Map<String, Object> newMap = new HashMap<String, Object>();
  1200 + newMap.put("nr", destroyReason);
  1201 + newMap.put("lp", scheduleRealInfo.getLpName());
  1202 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  1203 + newMap.put("jgh", scheduleRealInfo.getjGh());
  1204 + newMap.put("dz", childTaskPlan.getStartStationName());
  1205 + newMap.put("sj", childTaskPlan.getStartDate());
  1206 + newMap.put("lbbc", 0);
  1207 + newMap.put("lblc", childTaskPlan.getMileage());
  1208 + newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  1209 + list.add(newMap);
  1210 +
  1211 + }
  1212 + }
  1213 + }
  1214 + }
  1215 + }
  1216 + return list;
  1217 + }
  1218 +
  1219 + //统计临加班次详细信息
  1220 + @Override
  1221 + public List<Map<String, Object>> jobLjqk(Map<String, Object> map) {
  1222 + // TODO Auto-generated method stub
  1223 + String line=map.get("line").toString();
  1224 + String date=map.get("date").toString();
  1225 + map.put("bcType", "normal");
  1226 + List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  1227 + List<ScheduleRealInfo> sList=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date);
  1228 + for (int i = 0; i < sList.size(); i++) {
  1229 + ScheduleRealInfo scheduleRealInfo=sList.get(i);
  1230 + if (!(scheduleRealInfo.getBcType().equals("in")
  1231 + || scheduleRealInfo.getBcType().equals("out"))) {
  1232 +// Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1233 +// if(childTaskPlans.isEmpty()){
  1234 + if(scheduleRealInfo.isSflj()){
  1235 + Map<String, Object> newMap=new HashMap<String,Object>();
  1236 + newMap.put("lp", scheduleRealInfo.getLpName());
  1237 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  1238 + newMap.put("jgh", scheduleRealInfo.getjGh());
  1239 + newMap.put("dz", scheduleRealInfo.getQdzName());
  1240 + newMap.put("sj", scheduleRealInfo.getFcsj());
  1241 + newMap.put("ljlc", scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  1242 + newMap.put("jyqp", scheduleRealInfo.getRealMileage());
  1243 + list.add(newMap);
  1244 + }
  1245 +// }else{
  1246 +// Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1247 +// while (it.hasNext()) {
  1248 +// ChildTaskPlan childTaskPlan = it.next();
  1249 +// if (childTaskPlan.isDestroy()) {
  1250 +// }
  1251 +// }
  1252 +// }
  1253 + }
  1254 + }
  1255 + return list;
  1256 + }
  1257 +
  1258 + public static double culateCJLC2(List<ScheduleRealInfo> list, String item) {
  1259 + // TODO Auto-generated method stub
  1260 + double sum = 0;
  1261 + Set<ChildTaskPlan> cts;
  1262 + for(ScheduleRealInfo sch : list){
  1263 + if (sch.isSflj())
  1264 + continue;
  1265 + cts = sch.getcTasks();
  1266 + //有子任务
  1267 + if (cts != null && cts.size() > 0) {
  1268 + for(ChildTaskPlan c : cts){
  1269 + if(c.isDestroy() && c.getDestroyReason().equals(item))
  1270 + sum = Arith.add(sum, c.getMileage());
  1271 + }
  1272 + }
  1273 +// else if(isInOut(sch))
  1274 +// continue;
  1275 + //主任务烂班
  1276 + else if(sch.getStatus() == -1){
  1277 + if(sch.getAdjustExps().equals(item) ||
  1278 + (StringUtils.isEmpty(sch.getAdjustExps()) && item.equals("其他"))){
  1279 + sum = Arith.add(sum, sch.getJhlcOrig());
  1280 + }
  1281 + }
  1282 + else if(item.equals("其他")){
  1283 + double diff = Arith.sub(sch.getJhlcOrig(), sch.getJhlc());
  1284 + if(diff > 0){
  1285 + sum = Arith.add(sum, diff);
  1286 + }
  1287 + }
  1288 + }
  1289 + return sum;
  1290 +
  1291 + }
  1292 + @Override
  1293 + public Map<String, Object> jobHzxx(Map<String, Object> map) {
  1294 + // TODO Auto-generated method stub
  1295 + String line="";
  1296 + if(map.get("line")!=null){
  1297 + line=map.get("line").toString();
  1298 + }
  1299 + String date="";
  1300 + if(map.get("date")!=null){
  1301 + date=map.get("date").toString();
  1302 + }
  1303 +
  1304 + List<ScheduleRealInfo> sList=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date);
  1305 + Map<String, Object> newMap=new HashMap<String,Object>();
  1306 + newMap.put("jhbc", culateService.culateJhbc(sList,""));
  1307 + newMap.put("jhgl", culateService.culateJhgl(sList));
  1308 + newMap.put("sjbc", culateService.culateSjbc(sList,""));
  1309 + newMap.put("sjgl", culateService.culateSjgl(sList));
  1310 + newMap.put("lbgl", culateService.culateLbgl(sList));
  1311 + newMap.put("lbbc", culateService.culateLbbc(sList));
  1312 + newMap.put("ljgl", culateService.culateLjgl(sList));
  1313 + newMap.put("ljbc", culateService.culateLjbc(sList,""));
  1314 + newMap.put("ksgl", culateService.culateKsgl(sList));
  1315 + return newMap;
  1316 + }
  1317 + @Override
  1318 + public List<Map<String, Object>> lineList() {
  1319 + // TODO Auto-generated method stub
  1320 + List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
  1321 + Iterator<Line> iterator = lineRepository.findAll().iterator();
  1322 + Line line;
  1323 + while (iterator.hasNext()) {
  1324 + line = iterator.next();
  1325 + Map<String, Object> map=new HashMap<String,Object>();
  1326 + map.put("gsbm", line.getCompany());
  1327 + map.put("fgsbm", line.getBrancheCompany());
  1328 + map.put("xlbm", line.getLineCode());
  1329 + map.put("xlname", line.getName());
  1330 + list.add(map);
  1331 + }
  1332 + return list;
  1333 + }
  1334 + @Override
  1335 + public List<Map<String, String>> carList(Map<String, Object> maps) {
  1336 + // TODO Auto-generated method stub
  1337 + // 转大写
  1338 + String nbbm =maps.get("nbbm").toString().toUpperCase();
  1339 + String gsbm=maps.get("gsbm").toString().trim();
  1340 +// String fgsbm=maps.get("fgsbm").toString().trim();
  1341 + String xlbm=maps.get("xlbm").toString().trim();
  1342 + List<Map<String, String>> list = new ArrayList<Map<String, String>>();
  1343 + Map<String, String> map;
  1344 + Set<String> allSet = BasicData.nbbm2CompanyCodeMap.keySet();
  1345 +
  1346 + Line line;
  1347 + for (String k : allSet) {
  1348 + if (k.indexOf(nbbm) != -1) {
  1349 + // 所属线路
  1350 + boolean fage=true;
  1351 + map = new HashMap<>();
  1352 + line = BasicData.nbbm2LineMap.get(k);
  1353 + String clgsdm= BasicData.nbbm2CompanyCodeMap.get(k);
  1354 +
  1355 + map.put("id", k);
  1356 + map.put("text", k);
  1357 + if (null != line) {
  1358 + map.put("lineName", line.getName());
  1359 + map.put("lineCode", line.getLineCode());
  1360 + }
  1361 +
  1362 + if(!xlbm.equals("")){
  1363 + if(null!=line){
  1364 + if(!line.getLineCode().equals(xlbm)){
  1365 + fage=false;
  1366 + }
  1367 + }
  1368 +
  1369 + }
  1370 +
  1371 + if(!gsbm.equals("")){
  1372 + if(!clgsdm.equals(gsbm)){
  1373 + fage=false;
  1374 + }
  1375 + }
  1376 +
  1377 + if(fage){
  1378 + list.add(map);
  1379 + }
  1380 +
  1381 + }
  1382 +
  1383 + if (list.size() > 20)
  1384 + break;
  1385 + }
  1386 + return list;
  1387 + }
  1388 +
  1389 +
  1390 + @Override
  1391 + public List<Map<String, String>> userList(Map<String, Object> maps) {
  1392 + // TODO Auto-generated method stub
  1393 + // 转大写
  1394 + String jsy =maps.get("jsy").toString().toUpperCase();
  1395 + String gsbm=maps.get("gsbm").toString().trim();
  1396 +// String fgsbm=maps.get("fgsbm").toString().trim();
  1397 + List<Map<String, String>> list = new ArrayList<Map<String, String>>();
  1398 + Map<String, String> map;
  1399 +// Set<String> allSet = BasicData.nbbm2CompanyCodeMap.keySet();
  1400 + Set<String> allJsy = BasicData.jsyMap.keySet();
  1401 +
  1402 + Personnel per;
  1403 + for (String k : allJsy) {
  1404 + if (k.indexOf(jsy) != -1) {
  1405 + // 所属线路
  1406 + boolean fage=true;
  1407 + map = new HashMap<>();
  1408 + per = BasicData.jsyMap.get(k);
  1409 + String rygsdm= per.getCompanyCode();
  1410 +
  1411 + map.put("id", k);
  1412 + map.put("text", k+"/"+per.getPersonnelName());
  1413 +
  1414 + if(!gsbm.equals("")){
  1415 + if(!rygsdm.equals(gsbm)){
  1416 + fage=false;
  1417 + }
  1418 + }
  1419 +
  1420 + if(fage){
  1421 + list.add(map);
  1422 + }
  1423 +
  1424 + }
  1425 +
  1426 + if (list.size() > 20)
  1427 + break;
  1428 + }
  1429 + return list;
  1430 + }
1062 1431 }
... ...
src/main/java/com/bsth/service/schedule/SchedulePlanRuleResultService.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +
  5 +/**
  6 + * Created by xu on 17/3/29.
  7 + */
  8 +public interface SchedulePlanRuleResultService extends BService<SchedulePlanRuleResult, Long> {
  9 +}
... ...
src/main/java/com/bsth/service/schedule/impl/SchedulePlanRuleResultServiceImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.impl;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +import com.bsth.service.schedule.SchedulePlanRuleResultService;
  5 +import org.springframework.stereotype.Service;
  6 +
  7 +/**
  8 + * Created by xu on 17/3/29.
  9 + */
  10 +@Service
  11 +public class SchedulePlanRuleResultServiceImpl extends BServiceImpl<SchedulePlanRuleResult, Long> implements SchedulePlanRuleResultService {
  12 +}
... ...
src/main/java/com/bsth/service/schedule/impl/SchedulePlanServiceImpl.java
1 1 package com.bsth.service.schedule.impl;
2 2  
3   -import com.bsth.entity.Line;
4 3 import com.bsth.entity.schedule.SchedulePlan;
5 4 import com.bsth.entity.schedule.TTInfo;
6 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
7   -import com.bsth.repository.schedule.SchedulePlanInfoRepository;
8   -import com.bsth.repository.schedule.SchedulePlanRepository;
9   -import com.bsth.service.BusinessService;
10   -import com.bsth.service.LineService;
11   -import com.bsth.service.schedule.*;
  6 +import com.bsth.repository.BusinessRepository;
  7 +import com.bsth.repository.LineRepository;
  8 +import com.bsth.repository.schedule.*;
  9 +import com.bsth.service.schedule.SchedulePlanRuleResultService;
  10 +import com.bsth.service.schedule.SchedulePlanService;
12 11 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input;
13 12 import com.bsth.service.schedule.rules.plan.PlanResult;
14 13 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
15 14 import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;
16 15 import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;
17   -import com.bsth.service.schedule.rules.strategy.IStrategy;
18 16 import com.bsth.service.schedule.rules.ttinfo.*;
19 17 import com.bsth.service.schedule.rules.ttinfo2.CalcuParam;
20 18 import com.bsth.service.schedule.rules.ttinfo2.Result;
... ... @@ -28,7 +26,6 @@ import org.springframework.stereotype.Service;
28 26 import org.springframework.transaction.annotation.Isolation;
29 27 import org.springframework.transaction.annotation.Propagation;
30 28 import org.springframework.transaction.annotation.Transactional;
31   -import org.springframework.util.CollectionUtils;
32 29  
33 30 import java.util.*;
34 31  
... ... @@ -40,75 +37,49 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
40 37 @Autowired
41 38 private KieBase kieBase;
42 39 @Autowired
43   - private IStrategy strategy;
  40 + private SchedulePlanInfoRepository schedulePlanInfoRepository;
44 41 @Autowired
45   - private SchedulePlanRepository schedulePlanRepository;
  42 + private ScheduleRule1FlatRepository scheduleRule1FlatRepository;
46 43 @Autowired
47   - private SchedulePlanInfoRepository schedulePlanInfoRepository;
  44 + private TTInfoRepository ttInfoRepository;
  45 + @Autowired
  46 + private TTInfoDetailRepository ttInfoDetailRepository;
48 47 @Autowired
49   - private LineService lineService;
  48 + private LineRepository lineRepository;
50 49 @Autowired
51   - private TTInfoService ttInfoService;
  50 + private CarConfigInfoRepository carConfigInfoRepository;
52 51 @Autowired
53   - private TTInfoDetailService ttInfoDetailService;
  52 + private EmployeeConfigInfoRepository employeeConfigInfoRepository;
54 53 @Autowired
55   - private BusinessService businessService;
  54 + private BusinessRepository businessRepository;
56 55 @Autowired
57   - private CarConfigInfoService carConfigInfoService;
  56 + private SchedulePlanRuleResultService schedulePlanRuleResultService;
58 57 @Autowired
59   - private EmployeeConfigInfoService employeeConfigInfoService;
  58 + private SchedulePlanRuleResultRepository schedulePlanRuleResultRepository;
60 59  
61 60 /** 日志记录器 */
62 61 private Logger logger = LoggerFactory.getLogger(SchedulePlanServiceImpl.class);
63 62  
64   - // 查找线路(未撤销),TODO:到时候放入drl中
65   - private Line getLine(Integer xlId) {
66   - Map<String, Object> param = new HashMap<>();
67   - param.put("id_eq", xlId);
68   - param.put("destroy_eq", 0); // 未撤销
69   - List<Line> lines = (List<Line>) lineService.list(param);
70   - if (CollectionUtils.isEmpty(lines)) {
71   - throw new RuntimeException("线路找不到,可能已经撤销!");
72   - }
73   - return lines.get(0);
74   - }
75   - // 查找时刻表(未作废),TODO:到时候放入drl中
76   - private List<TTInfo> getTTInfos(Integer xlId) {
77   - // 查询参数
78   - Map<String, Object> param = new HashMap<>();
79   - param.put("xl.id_eq", xlId); // 线路Id
80   - param.put("isCancel_eq", false); // 作废的过滤掉
81   - Iterator<TTInfo> ttInfoIterator = ttInfoService.list(param).iterator();
82   - if (!ttInfoIterator.hasNext()) {
83   - throw new RuntimeException("线路id=" + xlId + " 没有时刻表!");
84   - }
85   - List<TTInfo> ttInfos = new ArrayList<>();
86   - while (ttInfoIterator.hasNext()) {
87   - TTInfo ttInfo = ttInfoIterator.next();
88   - ttInfos.add(ttInfo);
89   - }
90   - return ttInfos;
91   - }
92   -
93 63 /**
94 64 * 循环规则输出。
95   - * @param schedulePlan
  65 + * @param schedulePlan 排班计划对象
  66 + * @param lpInfoResults_output 时刻表每日路牌的情况
96 67 */
97   - private ScheduleResults_output loopRuleOutput(SchedulePlan schedulePlan, LpInfoResults_output lpInfoResults_output) {
98   - // 获取主线路
99   - Line xl = strategy.getLine(schedulePlan.getXl().getId());
100   -
  68 + private ScheduleResults_output loopRuleOutput(
  69 + SchedulePlan schedulePlan,
  70 + LpInfoResults_output lpInfoResults_output) {
101 71 // 1-1、构造drools规则输入数据,输出数据
102 72 // 全局计算参数
103 73 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan);
104 74 // 每个规则对应的输入参数
105 75 List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>();
106   - Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = strategy.getScheduleRule(xl.getId()).iterator();
107   - while (scheduleRule1FlatIterator.hasNext()) {
108   - ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next();
109   - ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp);
  76 + List<ScheduleRule1Flat> scheduleRule1Flats = scheduleRule1FlatRepository.findByXl(schedulePlan.getXl());
  77 +
  78 + for (ScheduleRule1Flat scheduleRule1Flat: scheduleRule1Flats) {
  79 + ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat);
110 80 scheduleRule_inputs.add(scheduleRule_input);
111 81 }
  82 +
112 83 // 规则输出数据
113 84 ScheduleResults_output scheduleResults_output = new ScheduleResults_output();
114 85  
... ... @@ -118,12 +89,14 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
118 89 // 设置gloable对象,在drl中通过别名使用
119 90 session.setGlobal("scheduleResult", scheduleResults_output);
120 91 session.setGlobal("log", logger); // 设置日志
  92 + session.setGlobal("schedulePlanRuleResultRepository", schedulePlanRuleResultRepository);
121 93  
122 94 // 载入数据
123 95 session.insert(scheduleCalcuParam_input);
124 96 for (ScheduleRule_input scheduleRule_input : scheduleRule_inputs) {
125 97 session.insert(scheduleRule_input);
126 98 }
  99 + // 每日时刻表路牌数据
127 100 for (LpInfoResult_output lpInfoResult_output: lpInfoResults_output.getLpInfoResult_outputs()) {
128 101 session.insert(lpInfoResult_output);
129 102 }
... ... @@ -140,12 +113,12 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
140 113  
141 114 /**
142 115 * 时刻表选择(判定每天使用的时刻表,以及路牌数据输出)。
143   - * @param schedulePlan
  116 + * @param schedulePlan 排班计划对象
144 117 * @return TTInfoResults_output, LpInfoResults_output
145 118 */
146 119 private Object[] ttInfoOutput(SchedulePlan schedulePlan) {
147 120 // 获取线路的所有未作废的时刻表
148   - List<TTInfo> ttInfos = getTTInfos(schedulePlan.getXl().getId());
  121 + List<TTInfo> ttInfos = ttInfoRepository.findInCanceledByXl(schedulePlan.getXl());
149 122  
150 123 // 1-1、构造drools规则输入数据,输出数据
151 124 // 全局计算参数
... ... @@ -167,8 +140,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
167 140 session.setGlobal("results", ttInfoResults_output);
168 141 session.setGlobal("lpInfoResults_output", lpInfoResults_output);
169 142 session.setGlobal("log", logger); // 设置日志
170   -
171   - session.setGlobal("tTInfoDetailService", ttInfoDetailService);
  143 + session.setGlobal("tTInfoDetailRepository", ttInfoDetailRepository);
172 144  
173 145 // 载入数据
174 146 session.insert(ttInfoCalcuParam_input);
... ... @@ -177,12 +149,11 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
177 149 session.insert(ttInfo_input);
178 150 }
179 151  
  152 + // 载入数据2(计算规则最早启用时间)
  153 + List<ScheduleRule1Flat> scheduleRule1Flats = scheduleRule1FlatRepository.findByXl(schedulePlan.getXl());
180 154  
181   - // 载入数据2
182   - Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = strategy.getScheduleRule(schedulePlan.getXl().getId()).iterator();
183   - while (scheduleRule1FlatIterator.hasNext()) {
184   - ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next();
185   - ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp);
  155 + for (ScheduleRule1Flat scheduleRule1Flat: scheduleRule1Flats) {
  156 + ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat);
186 157 session.insert(scheduleRule_input);
187 158 }
188 159  
... ... @@ -196,6 +167,13 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
196 167  
197 168 }
198 169  
  170 + /**
  171 + * 排班生成。
  172 + * @param schedulePlan 排班计划对象
  173 + * @param scheduleResults_output loopRuleOutput方法规则输出
  174 + * @param ttInfoResults_output ttInfoOutput方法规则输出
  175 + * @return PlanResult
  176 + */
199 177 private PlanResult planResultOutput(
200 178 SchedulePlan schedulePlan,
201 179 ScheduleResults_output scheduleResults_output,
... ... @@ -216,14 +194,14 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
216 194  
217 195 // 设置gloable对象,在drl中通过别名使用
218 196 session.setGlobal("planResult", planResult);
219   - session.setGlobal("tTInfoService", ttInfoService);
220   - session.setGlobal("tTInfoDetailService", ttInfoDetailService);
221   - session.setGlobal("carConfigInfoService", carConfigInfoService);
222   - session.setGlobal("employeeConfigInfoService", employeeConfigInfoService);
223   - session.setGlobal("lineService", lineService);
224   - session.setGlobal("businessService", businessService);
225 197 session.setGlobal("log", logger); // 设置日志
226 198  
  199 + session.setGlobal("tTInfoDetailRepository", ttInfoDetailRepository);
  200 + session.setGlobal("carConfigInfoRepository", carConfigInfoRepository);
  201 + session.setGlobal("employeeConfigInfoRepository", employeeConfigInfoRepository);
  202 + session.setGlobal("lineRepository", lineRepository);
  203 + session.setGlobal("businessRepository", businessRepository);
  204 +
227 205 // 载入数据
228 206 session.insert(planCalcuParam_input);
229 207  
... ... @@ -238,207 +216,30 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
238 216 }
239 217  
240 218 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
241   - public SchedulePlan save2(SchedulePlan schedulePlan) {
  219 + public SchedulePlan save(SchedulePlan schedulePlan) {
  220 + // pre、如果排班的数据之前已经有了,删除之前的数据
  221 + schedulePlanInfoRepository.deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(
  222 + schedulePlan.getXl().getId(), schedulePlan.getScheduleFromTime(), schedulePlan.getScheduleToTime()
  223 + );
  224 +
242 225 // 1、时刻表数据及每日路牌数据计算
243 226 Object[] ttInfoRets = ttInfoOutput(schedulePlan);
244 227 TTInfoResults_output ttInfoResults_output = (TTInfoResults_output) ttInfoRets[0];
245 228 LpInfoResults_output lpInfoResults_output = (LpInfoResults_output) ttInfoRets[1];
246   -
247 229 // 2、循环规则计算输出
248 230 ScheduleResults_output scheduleResults_output = loopRuleOutput(schedulePlan, lpInfoResults_output);
249   -
250 231 // 3、计划输出
251 232 PlanResult planResult = planResultOutput(schedulePlan, scheduleResults_output, ttInfoResults_output);
252 233  
253   - schedulePlan.setTtInfoId("todo"); // TODO:待修正
254   - schedulePlan.setTtInfoNames("todo"); // TODO:待修正
255   -
  234 + // 4、保存数据(TODO:之后改成批量保存)
256 235 schedulePlan.getSchedulePlanInfoList().addAll(planResult.getSchedulePlanInfos());
257   -
258 236 super.save(schedulePlan);
259 237  
260   -
261   -
262   -// // 1、循环规则计算输出
263   -// ScheduleResults_output scheduleResults_output = loopRuleOutput(schedulePlan);
264   -// // 2、时刻表选择
265   -// TTInfoResults_output ttInfoResults_output = ttInfoOutput(schedulePlan);
266   -// // 3、计划输出
267   -// PlanResult planResult = planResultOutput(schedulePlan, scheduleResults_output, ttInfoResults_output);
268   -//
269   -// schedulePlan.getSchedulePlanInfoList().addAll(planResult.getSchedulePlanInfos());
270   -// schedulePlan.setTtInfoId("todo"); // TODO:待修正
271   -// schedulePlan.setTtInfoNames("todo"); // TODO:待修正
272   -//
273   -// super.save(schedulePlan);
  238 + schedulePlanRuleResultService.bulkSave(scheduleResults_output.getSchedulePlanRuleResults());
274 239  
275 240 return new SchedulePlan();
276 241 }
277 242  
278   - @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
279   - public SchedulePlan save(SchedulePlan schedulePlan) {
280   - // 2-3、如果排班的数据之前已经有了,删除之前的数据
281   - schedulePlanInfoRepository.deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(
282   - schedulePlan.getXl().getId(), schedulePlan.getScheduleFromTime(), schedulePlan.getScheduleToTime()
283   - );
284   -
285   - // 测试
286   - return save2(schedulePlan);
287   -
288   -// // 1-1、查找线路具体信息
289   -// Line xl = strategy.getLine(schedulePlan.getXl().getId());
290   -// // 1-2、查出指定线路的所有规则
291   -// TTInfo ttInfo = strategy.getTTInfo(xl.getId()).get(0); // 时刻表id
292   -// schedulePlan.setTtInfo(ttInfo); // TODO:关联的时刻表,之后改掉
293   -//
294   -// // 2-1、构造drools规则输入数据,输出数据
295   -// // 全局计算参数
296   -// ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan);
297   -// // 每个规则对应的输入参数
298   -// List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>();
299   -// Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = strategy.getScheduleRule(xl.getId()).iterator();
300   -// while (scheduleRule1FlatIterator.hasNext()) {
301   -// ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next();
302   -// ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp);
303   -// scheduleRule_inputs.add(scheduleRule_input);
304   -// }
305   -// // 规则输出数据
306   -// ScheduleResults_output scheduleResults_output = new ScheduleResults_output();
307   -//
308   -// // 2-2、构造drools session->载入数据->启动规则->计算->销毁session
309   -// // 创建session,内部配置的是stateful
310   -// KieSession session = kieBase.newKieSession();
311   -// // 设置gloable对象,在drl中通过别名使用
312   -// session.setGlobal("scheduleResult", scheduleResults_output);
313   -// session.setGlobal("log", logger); // 设置日志
314   -//
315   -// // 载入数据
316   -// session.insert(scheduleCalcuParam_input);
317   -// for (ScheduleRule_input scheduleRule_input : scheduleRule_inputs) {
318   -// session.insert(scheduleRule_input);
319   -// }
320   -// // 执行rule
321   -// session.fireAllRules();
322   -//
323   -// // 执行完毕销毁,有日志的也要关闭
324   -// session.dispose();
325   -//
326   -// System.out.println(scheduleResults_output.showGuideboardDesc1());
327   -//
328   -// // 2-3、如果排班的数据之前已经有了,删除之前的数据
329   -// schedulePlanInfoRepository.deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(
330   -// xl.getId(), schedulePlan.getScheduleFromTime(), schedulePlan.getScheduleToTime()
331   -// );
332   -//
333   -// // 3、根据规则返回,组合最后的输出数据
334   -// // 3-1、根据注入的策略服务,获取原始数据
335   -// Map<Date, Multimap<Long, TTInfoDetail>> gbdTTinfoMaps = strategy.getGuideboardXlTTInfoDetailMaps(
336   -// xl.getId(), schedulePlan.getScheduleFromTime(), schedulePlan.getScheduleToTime());
337   -//
338   -// Map<Long, CarConfigInfo> carConfigMaps = strategy.getCarConfigMaps(xl.getId()); // 车辆配置对应车辆信息
339   -// Map<Long, EmployeeConfigInfo> employeeConfigMaps = strategy.getEmployeeConfigMaps(xl.getId()); // 人员配置对应的人员信息
340   -//
341   -// // 3-2、循环规则输出
342   -// Map<Long, String> ttInfoMap = new HashMap<>(); // 时刻表映射,id和名字
343   -// List<SchedulePlanInfo> schedulePlanInfos = new ArrayList<>();
344   -// for (ScheduleResult_output scheduleResult_output : scheduleResults_output.getResults()) {
345   -// // 车辆配置对应的车辆
346   -// CarConfigInfo configInfo = carConfigMaps.get(Long.valueOf(scheduleResult_output.getCarConfigId()));
347   -// // 人员配置对应的人员,这里需要分班处理的
348   -// List<EmployeeConfigInfo> employeeConfigInfoList = new ArrayList<>();
349   -// String[] eids = scheduleResult_output.getEmployeeConfigId().split("-");
350   -// for (String eid : eids) {
351   -// employeeConfigInfoList.add(employeeConfigMaps.get(Long.valueOf(eid)));
352   -// }
353   -// // 排班明细(这个要迭代的)
354   -// Collection<TTInfoDetail> ttInfoDetails_ = gbdTTinfoMaps.get(scheduleResult_output.getSd().toDate()).get(
355   -// Long.parseLong(scheduleResult_output.getGuideboardId()));
356   -// List<TTInfoDetail> ttInfoDetails = new ArrayList<>(ttInfoDetails_);
357   -//
358   -// // 排序ttInfoDetails
359   -// Collections.sort(ttInfoDetails, new Comparator<TTInfoDetail>() {
360   -// @Override
361   -// public int compare(TTInfoDetail o1, TTInfoDetail o2) {
362   -// return o1.getFcno().compareTo(o2.getFcno());
363   -// }
364   -// });
365   -//
366   -// Boolean isFb = false; // 是否分班
367   -// for (int i = 0; i < ttInfoDetails.size(); i++) {
368   -// TTInfoDetail ttInfoDetail = ttInfoDetails.get(i);
369   -//
370   -// if (ttInfoDetail.getIsFB())
371   -// isFb = ttInfoDetail.getIsFB();
372   -//
373   -// SchedulePlanInfo schedulePlanInfo = new SchedulePlanInfo(
374   -// xl,
375   -// scheduleResult_output,
376   -// ttInfoDetail,
377   -// isFb,
378   -// configInfo,
379   -// employeeConfigInfoList,
380   -// schedulePlan,
381   -// i == 0,
382   -// i == ttInfoDetails.size() - 1);
383   -//
384   -// // 获取公司,分公司信息
385   -// String gsbm = xl.getCompany();
386   -// String fgsbm = xl.getBrancheCompany();
387   -// Business gs = null;
388   -// Business fgs = null;
389   -//
390   -// Map<String, Object> param = new HashMap<>();
391   -//
392   -// if (StringUtils.isNotEmpty(gsbm)) {
393   -// param.clear();
394   -// param.put("businessCode_eq", gsbm);
395   -// Iterator<Business> businessIterator = businessService.list(param).iterator();
396   -// if (businessIterator.hasNext()) {
397   -// gs = businessIterator.next();
398   -// }
399   -// }
400   -// if (StringUtils.isNotEmpty(gsbm) && StringUtils.isNotEmpty(fgsbm)) {
401   -// param.clear();;
402   -// param.put("upCode_eq", gsbm);
403   -// param.put("businessCode_eq", fgsbm);
404   -// Iterator<Business> businessIterator = businessService.list(param).iterator();
405   -// if (businessIterator.hasNext()) {
406   -// fgs = businessIterator.next();
407   -// }
408   -// }
409   -//
410   -// if (gs != null) {
411   -// schedulePlanInfo.setGsBm(gs.getBusinessCode());
412   -// schedulePlanInfo.setGsName(gs.getBusinessName());
413   -// }
414   -// if (fgs != null) {
415   -// schedulePlanInfo.setFgsBm(fgs.getBusinessCode());
416   -// schedulePlanInfo.setFgsName(fgs.getBusinessName());
417   -// }
418   -//
419   -// // 操作人,操作时间
420   -// schedulePlanInfo.setCreateBy(schedulePlan.getCreateBy());
421   -// schedulePlanInfo.setCreateDate(schedulePlan.getCreateDate());
422   -// schedulePlanInfo.setUpdateBy(schedulePlan.getUpdateBy());
423   -// schedulePlanInfo.setUpdateDate(schedulePlan.getUpdateDate());
424   -//
425   -// schedulePlanInfos.add(schedulePlanInfo);
426   -// ttInfoMap.put(ttInfoDetail.getTtinfo().getId(), ttInfoDetail.getTtinfo().getName());
427   -//
428   -// }
429   -//
430   -// }
431   -//
432   -// schedulePlan.setTtInfoId(StringUtils.join(ttInfoMap.keySet(), ","));
433   -// schedulePlan.setTtInfoNames(StringUtils.join(ttInfoMap.values(), ","));
434   -//
435   -// // 3-2、保存生成的排班和明细
436   -// schedulePlan.getSchedulePlanInfoList().addAll(schedulePlanInfos); // 关联的排班明细信息
437   -// super.save(schedulePlan);
438   -//
439   -// return new SchedulePlan();
440   - }
441   -
442 243 @Override
443 244 public SchedulePlan findSchedulePlanTommorw() {
444 245 DateTime today = new DateTime(new Date());
... ... @@ -460,8 +261,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
460 261 KieSession session = kieBase.newKieSession();
461 262 // 设置gloable对象,在drl中通过别名使用
462 263 session.setGlobal("log", logger);
463   - session.setGlobal("lineService", lineService);
464   - session.setGlobal("ttInfoDetailService", ttInfoDetailService);
  264 + session.setGlobal("lineRepository", lineRepository);
  265 + session.setGlobal("tTInfoDetailRepository", ttInfoDetailRepository);
465 266  
466 267 Result rs = new Result(); // 输出gloable对象
467 268 session.setGlobal("rs", rs);
... ... @@ -470,11 +271,10 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
470 271 CalcuParam calcuParam = new CalcuParam(
471 272 new DateTime(from), new DateTime(to), xlid);
472 273 session.insert(calcuParam);
473   - List<TTInfo> ttInfos = ttInfoService.findAll();
  274 + List<TTInfo> ttInfos = (List<TTInfo>) ttInfoRepository.findAll();
474 275 for (TTInfo ttInfo: ttInfos)
475 276 session.insert(ttInfo);
476 277  
477   -
478 278 // 执行rule
479 279 session.fireAllRules();
480 280  
... ...
src/main/java/com/bsth/service/schedule/rules/Message.java deleted 100644 → 0
1   -package com.bsth.service.schedule.rules;
2   -
3   -/**
4   - * Created by xu on 16/6/15.
5   - */
6   -public class Message {
7   - public static final int HELLO = 0;
8   - public static final int GOODBYE = 1;
9   -
10   - private String message;
11   - private int status;
12   - public String getMessage() {
13   - return message;
14   - }
15   - public void setMessage(String message) {
16   - this.message = message;
17   - }
18   - public int getStatus() {
19   - return status;
20   - }
21   - public void setStatus(int status) {
22   - this.status = status;
23   - }
24   -}
src/main/java/com/bsth/service/schedule/rules/MyDroolsConfiguration.java
... ... @@ -55,9 +55,6 @@ public class MyDroolsConfiguration {
55 55 kfs.write("src/main/resources/functions.drl", kieServices.getResources()
56 56 .newInputStreamResource(this.getClass().getResourceAsStream(
57 57 "/rules/functions.drl"), "UTF-8"));
58   - kfs.write("src/main/resources/HelloWorld.drl", kieServices.getResources()
59   - .newInputStreamResource(this.getClass().getResourceAsStream(
60   - "/rules/HelloWorld.drl"), "UTF-8"));
61 58 kfs.write("src/main/resources/shiftloop_fb_2.drl", kieServices.getResources()
62 59 .newInputStreamResource(this.getClass().getResourceAsStream(
63 60 "/rules/shiftloop_fb_2.drl"), "UTF-8"));
... ...
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleCalcuParam_input.java
... ... @@ -12,11 +12,20 @@ public class ScheduleCalcuParam_input {
12 12 /** 结束计算日期 */
13 13 private DateTime toDate;
14 14  
  15 + /** 线路Id */
  16 + private String xlId;
  17 +
  18 + /** 排班计划实体 */
  19 + private SchedulePlan schedulePlan;
  20 +
15 21 public ScheduleCalcuParam_input() {}
16 22  
17 23 public ScheduleCalcuParam_input(SchedulePlan schedulePlan) {
18 24 this.fromDate = new DateTime((schedulePlan.getScheduleFromTime()));
19 25 this.toDate = new DateTime((schedulePlan.getScheduleToTime()));
  26 +
  27 + this.schedulePlan = schedulePlan;
  28 + this.xlId = String.valueOf(schedulePlan.getXl().getId());
20 29 }
21 30  
22 31 public DateTime getFromDate() {
... ... @@ -35,4 +44,19 @@ public class ScheduleCalcuParam_input {
35 44 this.toDate = toDate;
36 45 }
37 46  
  47 + public SchedulePlan getSchedulePlan() {
  48 + return schedulePlan;
  49 + }
  50 +
  51 + public void setSchedulePlan(SchedulePlan schedulePlan) {
  52 + this.schedulePlan = schedulePlan;
  53 + }
  54 +
  55 + public String getXlId() {
  56 + return xlId;
  57 + }
  58 +
  59 + public void setXlId(String xlId) {
  60 + this.xlId = xlId;
  61 + }
38 62 }
... ...
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleResults_output.java
1 1 package com.bsth.service.schedule.rules.shiftloop;
2 2  
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
3 4 import org.apache.commons.lang3.StringUtils;
4 5  
5 6 import java.util.*;
... ... @@ -11,6 +12,17 @@ public class ScheduleResults_output {
11 12 /** 输出列表 */
12 13 private List<ScheduleResult_output> results = new ArrayList<>();
13 14  
  15 + /** 排班规则结果保存数据 */
  16 + private List<SchedulePlanRuleResult> schedulePlanRuleResults = new ArrayList<>();
  17 +
  18 + public List<SchedulePlanRuleResult> getSchedulePlanRuleResults() {
  19 + return schedulePlanRuleResults;
  20 + }
  21 +
  22 + public void setSchedulePlanRuleResults(List<SchedulePlanRuleResult> schedulePlanRuleResults) {
  23 + this.schedulePlanRuleResults = schedulePlanRuleResults;
  24 + }
  25 +
14 26 public List<ScheduleResult_output> getResults() {
15 27 return results;
16 28 }
... ...
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleRule_input.java
... ... @@ -36,6 +36,9 @@ public class ScheduleRule_input {
36 36 /** 车辆翻版(周一到周日是否启用) */
37 37 private List<Boolean> weekdays = new ArrayList<>();
38 38  
  39 + /** 关联的原始规则 */
  40 + private ScheduleRule1Flat self;
  41 +
39 42 public ScheduleRule_input() {}
40 43  
41 44 public ScheduleRule_input(ScheduleRule1Flat scheduleRule1Flat) {
... ... @@ -74,6 +77,8 @@ public class ScheduleRule_input {
74 77 weekdays.add(false);
75 78 }
76 79 }
  80 +
  81 + this.self = scheduleRule1Flat;
77 82 }
78 83  
79 84 public String getRuleId() {
... ... @@ -147,4 +152,12 @@ public class ScheduleRule_input {
147 152 public void setXlId(String xlId) {
148 153 this.xlId = xlId;
149 154 }
  155 +
  156 + public ScheduleRule1Flat getSelf() {
  157 + return self;
  158 + }
  159 +
  160 + public void setSelf(ScheduleRule1Flat self) {
  161 + this.self = self;
  162 + }
150 163 }
... ...
src/main/java/com/bsth/service/schedule/rules/ttinfo/LpInfoResult_output.java
... ... @@ -14,6 +14,8 @@ public class LpInfoResult_output {
14 14 private String xlId;
15 15 /** 时刻表Id */
16 16 private String ttInfoId;
  17 + /** 时刻表名字 */
  18 + private String ttInfoName;
17 19  
18 20 public DateTime getDateTime() {
19 21 return dateTime;
... ... @@ -46,4 +48,12 @@ public class LpInfoResult_output {
46 48 public void setTtInfoId(String ttInfoId) {
47 49 this.ttInfoId = ttInfoId;
48 50 }
  51 +
  52 + public String getTtInfoName() {
  53 + return ttInfoName;
  54 + }
  55 +
  56 + public void setTtInfoName(String ttInfoName) {
  57 + this.ttInfoName = ttInfoName;
  58 + }
49 59 }
... ...
src/main/java/com/bsth/service/schedule/rules/ttinfo/LpInfoResultsFunction.java
... ... @@ -66,6 +66,7 @@ public class LpInfoResultsFunction implements AccumulateFunction {
66 66 lpInfoResult_output.setLpId(String.valueOf(ttInfoDetail.getLp().getId()));
67 67 lpInfoResult_output.setXlId(String.valueOf(ttInfoDetail.getXl().getId()));
68 68 lpInfoResult_output.setTtInfoId(String.valueOf(ttInfoDetail.getTtinfo().getId()));
  69 + lpInfoResult_output.setTtInfoName(ttInfoDetail.getTtinfo().getName());
69 70  
70 71 lpInfoResultsData.lpInfoResult_outputMap.put(
71 72 ttInfoDetail.getLp().getId(),
... ...
src/main/java/com/bsth/util/Arith.java
... ... @@ -20,9 +20,9 @@ public class Arith {
20 20 * @param v2 加数
21 21 * @return 两个参数的和
22 22 */
23   - public static double add(double v1,double v2){
24   - BigDecimal b1 = new BigDecimal(Double.toString(v1));
25   - BigDecimal b2 = new BigDecimal(Double.toString(v2));
  23 + public static double add(Object v1,Object v2){
  24 + BigDecimal b1 = new BigDecimal(v1.toString());
  25 + BigDecimal b2 = new BigDecimal(v2.toString());
26 26 return b1.add(b2).doubleValue();
27 27 }
28 28  
... ... @@ -32,9 +32,9 @@ public class Arith {
32 32 * @param v2 减数
33 33 * @return 两个参数的差
34 34 */
35   - public static double sub(double v1,double v2){
36   - BigDecimal b1 = new BigDecimal(Double.toString(v1));
37   - BigDecimal b2 = new BigDecimal(Double.toString(v2));
  35 + public static double sub(Object v1,Object v2){
  36 + BigDecimal b1 = new BigDecimal(v1.toString());
  37 + BigDecimal b2 = new BigDecimal(v2.toString());
38 38 return b1.subtract(b2).doubleValue();
39 39 }
40 40  
... ... @@ -44,9 +44,9 @@ public class Arith {
44 44 * @param v2 乘数
45 45 * @return 两个参数的积
46 46 */
47   - public static double mul(double v1,double v2){
48   - BigDecimal b1 = new BigDecimal(Double.toString(v1));
49   - BigDecimal b2 = new BigDecimal(Double.toString(v2));
  47 + public static double mul(Object v1,Object v2){
  48 + BigDecimal b1 = new BigDecimal(v1.toString());
  49 + BigDecimal b2 = new BigDecimal(v2.toString());
50 50 return b1.multiply(b2).doubleValue();
51 51 }
52 52  
... ... @@ -57,7 +57,7 @@ public class Arith {
57 57 * @param v2 除数
58 58 * @return 两个参数的商
59 59 */
60   - public static double div(double v1,double v2){
  60 + public static double div(Object v1,Object v2){
61 61 return div(v1,v2,DEF_DIV_SCALE);
62 62 }
63 63  
... ... @@ -69,13 +69,13 @@ public class Arith {
69 69 * @param scale 表示表示需要精确到小数点以后几位。
70 70 * @return 两个参数的商
71 71 */
72   - public static double div(double v1,double v2,int scale){
  72 + public static double div(Object v1,Object v2,int scale){
73 73 if(scale<0){
74 74 throw new IllegalArgumentException(
75 75 "The scale must be a positive integer or zero");
76 76 }
77   - BigDecimal b1 = new BigDecimal(Double.toString(v1));
78   - BigDecimal b2 = new BigDecimal(Double.toString(v2));
  77 + BigDecimal b1 = new BigDecimal(v1.toString());
  78 + BigDecimal b2 = new BigDecimal(v2.toString());
79 79 return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
80 80 }
81 81  
... ... @@ -85,12 +85,12 @@ public class Arith {
85 85 * @param scale 小数点后保留几位
86 86 * @return 四舍五入后的结果
87 87 */
88   - public static double round(double v,int scale){
  88 + public static double round(Object v,int scale){
89 89 if(scale<0){
90 90 throw new IllegalArgumentException(
91 91 "The scale must be a positive integer or zero");
92 92 }
93   - BigDecimal b = new BigDecimal(Double.toString(v));
  93 + BigDecimal b = new BigDecimal(v.toString());
94 94 BigDecimal one = new BigDecimal("1");
95 95 return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
96 96 }
... ... @@ -100,8 +100,8 @@ public class Arith {
100 100 * @param v 需要被转换的数字
101 101 * @return 返回转换结果
102 102 */
103   - public static float convertsToFloat(double v){
104   - BigDecimal b = new BigDecimal(v);
  103 + public static float convertsToFloat(Object v){
  104 + BigDecimal b = new BigDecimal(v.toString());
105 105 return b.floatValue();
106 106 }
107 107  
... ... @@ -110,8 +110,8 @@ public class Arith {
110 110 * @param v 需要被转换的数字
111 111 * @return 返回转换结果
112 112 */
113   - public static int convertsToInt(double v){
114   - BigDecimal b = new BigDecimal(v);
  113 + public static int convertsToInt(Object v){
  114 + BigDecimal b = new BigDecimal(v.toString());
115 115 return b.intValue();
116 116 }
117 117  
... ... @@ -120,8 +120,8 @@ public class Arith {
120 120 * @param v 需要被转换的数字
121 121 * @return 返回转换结果
122 122 */
123   - public static long convertsToLong(double v){
124   - BigDecimal b = new BigDecimal(v);
  123 + public static long convertsToLong(Object v){
  124 + BigDecimal b = new BigDecimal(v.toString());
125 125 return b.longValue();
126 126 }
127 127  
... ... @@ -131,9 +131,9 @@ public class Arith {
131 131 * @param v2 需要被对比的第二个数
132 132 * @return 返回两个数中大的一个值
133 133 */
134   - public static double returnMax(double v1,double v2){
135   - BigDecimal b1 = new BigDecimal(v1);
136   - BigDecimal b2 = new BigDecimal(v2);
  134 + public static double returnMax(Object v1,Object v2){
  135 + BigDecimal b1 = new BigDecimal(v1.toString());
  136 + BigDecimal b2 = new BigDecimal(v2.toString());
137 137 return b1.max(b2).doubleValue();
138 138 }
139 139  
... ... @@ -143,9 +143,9 @@ public class Arith {
143 143 * @param v2 需要被对比的第二个数
144 144 * @return 返回两个数中小的一个值
145 145 */
146   - public static double returnMin(double v1,double v2){
147   - BigDecimal b1 = new BigDecimal(v1);
148   - BigDecimal b2 = new BigDecimal(v2);
  146 + public static double returnMin(Object v1,Object v2){
  147 + BigDecimal b1 = new BigDecimal(v1.toString());
  148 + BigDecimal b2 = new BigDecimal(v2.toString());
149 149 return b1.min(b2).doubleValue();
150 150 }
151 151  
... ... @@ -155,9 +155,9 @@ public class Arith {
155 155 * @param v2 需要被对比的第二个数
156 156 * @return 如果两个数一样则返回0,如果第一个数比第二个数大则返回1,反之返回-1
157 157 */
158   - public static int compareTo(double v1,double v2){
159   - BigDecimal b1 = new BigDecimal(v1);
160   - BigDecimal b2 = new BigDecimal(v2);
  158 + public static int compareTo(Object v1,Object v2){
  159 + BigDecimal b1 = new BigDecimal(v1.toString());
  160 + BigDecimal b2 = new BigDecimal(v2.toString());
161 161 return b1.compareTo(b2);
162 162 }
163 163 }
... ...
src/main/java/com/bsth/util/ComparableChild.java 0 → 100644
  1 +package com.bsth.util;
  2 +
  3 +import java.util.Comparator;
  4 +import java.util.List;
  5 +
  6 +import com.bsth.entity.realcontrol.ChildTaskPlan;
  7 +
  8 +public class ComparableChild implements Comparator<ChildTaskPlan>{
  9 +
  10 + @Override
  11 + public int compare(ChildTaskPlan o1, ChildTaskPlan o2) {
  12 + // TODO Auto-generated method stub
  13 + return o1.getStartDate().compareTo(o2.getStartDate());
  14 + }
  15 +
  16 +}
... ...
src/main/resources/application-dev.properties
... ... @@ -7,13 +7,14 @@ spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
7 7 #DATABASE
8 8 spring.jpa.database= MYSQL
9 9 spring.jpa.show-sql= true
10   -#spring.datasource.driver-class-name= com.mysql.jdbc.Driver
  10 +spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11 11 #spring.datasource.url= jdbc:mysql://192.168.168.201/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 12 #spring.datasource.username= root
13 13 #spring.datasource.password= 123456
14 14 spring.datasource.url= jdbc:mysql://localhost/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
  15 +
15 16 spring.datasource.username= root
16   -spring.datasource.password= root
  17 +spring.datasource.password=
17 18 #DATASOURCE
18 19 spring.datasource.max-active=100
19 20 spring.datasource.max-idle=8
... ...