Commit 89abebb9345a7d51e490530f72fb5a23c267ca28
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<Cwjy, Integer>{ |
| 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<Cwjy, Integer>{ |
| 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<Ylb, Integer>{ |
| 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<Ylb, Integer>{ |
| 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<Ylb, Integer>{ |
| 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<Ylb, Integer>{ |
| 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<Ylb, Integer>{ |
| 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<Ylxxb, Integer>{ |
| 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<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<Ylb, Integer>{ |
| 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<Ylb, Integer>{ |
| 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<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<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<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<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<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<Ylb, Integer>{ |
| 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<Cwjy,Integer> 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<Cwjy,Integer> 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<Cwjy,Integer> 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<Cwjy,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylb,Integer> 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<Ylxxb,Integer> 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<Ylxxb,Integer> 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<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<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<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<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<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<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<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<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<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<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<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<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<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<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
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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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<SchedulePlan, Long> 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 | ... | ... |