Commit 9024e8aca70caf66432b4484d86be27b0d0025c4
Merge branch 'minhang' of http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
13 changed files
with
596 additions
and
151 deletions
Too many changes to show.
To preserve performance only 13 of 26 files are displayed.
src/main/java/com/bsth/controller/forms/ExportController.java
| @@ -190,9 +190,6 @@ public class ExportController { | @@ -190,9 +190,6 @@ public class ExportController { | ||
| 190 | m.put("clzbh", l.getClzbh()); | 190 | m.put("clzbh", l.getClzbh()); |
| 191 | m.put("jsy", l.getJsy()); | 191 | m.put("jsy", l.getJsy()); |
| 192 | m.put("jName", l.getjName()); | 192 | m.put("jName", l.getjName()); |
| 193 | - | ||
| 194 | - | ||
| 195 | - | ||
| 196 | m.put("sgh", l.getSgh()); | 193 | m.put("sgh", l.getSgh()); |
| 197 | m.put("sName", l.getsName()); | 194 | m.put("sName", l.getsName()); |
| 198 | m.put("jhlc", l.getJhlc()); | 195 | m.put("jhlc", l.getJhlc()); |
src/main/java/com/bsth/controller/forms/MCY_FormsController.java
| @@ -78,6 +78,13 @@ public class MCY_FormsController { | @@ -78,6 +78,13 @@ public class MCY_FormsController { | ||
| 78 | 78 | ||
| 79 | return formsService.singledata(map); | 79 | return formsService.singledata(map); |
| 80 | } | 80 | } |
| 81 | + | ||
| 82 | + // 路单数据 | ||
| 83 | + @RequestMapping(value = "/singledatanew", method = RequestMethod.GET) | ||
| 84 | + public List<Singledata> singledatanew(@RequestParam Map<String, Object> map) { | ||
| 85 | + | ||
| 86 | + return formsService.singledata(map); | ||
| 87 | + } | ||
| 81 | 88 | ||
| 82 | // 车辆加注 | 89 | // 车辆加注 |
| 83 | @RequestMapping(value = "/vehicleloading", method = RequestMethod.GET) | 90 | @RequestMapping(value = "/vehicleloading", method = RequestMethod.GET) |
src/main/java/com/bsth/controller/oil/YlxxbController.java
| 1 | package com.bsth.controller.oil; | 1 | package com.bsth.controller.oil; |
| 2 | 2 | ||
| 3 | import java.util.HashMap; | 3 | import java.util.HashMap; |
| 4 | +import java.util.List; | ||
| 4 | import java.util.Map; | 5 | import java.util.Map; |
| 5 | 6 | ||
| 6 | import org.springframework.beans.factory.annotation.Autowired; | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -28,6 +29,12 @@ public class YlxxbController extends BaseController<Ylxxb, Integer>{ | @@ -28,6 +29,12 @@ public class YlxxbController extends BaseController<Ylxxb, Integer>{ | ||
| 28 | return pagequery; | 29 | return pagequery; |
| 29 | } | 30 | } |
| 30 | 31 | ||
| 32 | + @RequestMapping(value = "/listNbbm",method = RequestMethod.GET) | ||
| 33 | + public List<Ylxxb> listNbbm(@RequestParam Map<String, Object> map){ | ||
| 34 | + List<Ylxxb> list=service.Pagequery_nbbm(map); | ||
| 35 | + return list; | ||
| 36 | + } | ||
| 37 | + | ||
| 31 | 38 | ||
| 32 | /** | 39 | /** |
| 33 | * 核对油量(有加油没里程) | 40 | * 核对油量(有加油没里程) |
| @@ -45,4 +52,17 @@ public class YlxxbController extends BaseController<Ylxxb, Integer>{ | @@ -45,4 +52,17 @@ public class YlxxbController extends BaseController<Ylxxb, Integer>{ | ||
| 45 | } | 52 | } |
| 46 | return list; | 53 | return list; |
| 47 | } | 54 | } |
| 55 | + | ||
| 56 | + @RequestMapping(value = "/checkNbbm",method = RequestMethod.POST) | ||
| 57 | + public Map<String, Object> checkNbbm(@RequestParam Map<String, Object> map){ | ||
| 58 | + Map<String, Object> list=new HashMap<>(); | ||
| 59 | + try { | ||
| 60 | + list = service.checkNbbm(map); | ||
| 61 | + } catch (Exception e) { | ||
| 62 | + // TODO Auto-generated catch block | ||
| 63 | + e.printStackTrace(); | ||
| 64 | + } | ||
| 65 | + return list; | ||
| 66 | + } | ||
| 67 | + | ||
| 48 | } | 68 | } |
src/main/java/com/bsth/data/gpsdata/arrival/entity/TimedEnableStationRoute.java
| 1 | -package com.bsth.data.gpsdata.arrival.entity; | ||
| 2 | - | ||
| 3 | -/** | ||
| 4 | - * 定时启用站点路由 | ||
| 5 | - * Created by panzhao on 2017/8/28. | ||
| 6 | - */ | ||
| 7 | -public class TimedEnableStationRoute { | ||
| 8 | - | ||
| 9 | - private String lineCode; | ||
| 10 | - | ||
| 11 | - private Long enableTime; | ||
| 12 | - | ||
| 13 | - public String getLineCode() { | ||
| 14 | - return lineCode; | ||
| 15 | - } | ||
| 16 | - | ||
| 17 | - public void setLineCode(String lineCode) { | ||
| 18 | - this.lineCode = lineCode; | ||
| 19 | - } | ||
| 20 | - | ||
| 21 | - public Long getEnableTime() { | ||
| 22 | - return enableTime; | ||
| 23 | - } | ||
| 24 | - | ||
| 25 | - public void setEnableTime(Long enableTime) { | ||
| 26 | - this.enableTime = enableTime; | ||
| 27 | - } | ||
| 28 | -} | 1 | +package com.bsth.data.gpsdata.arrival.entity; |
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * 定时启用站点路由 | ||
| 5 | + * Created by panzhao on 2017/8/28. | ||
| 6 | + */ | ||
| 7 | +public class TimedEnableStationRoute { | ||
| 8 | + | ||
| 9 | + private String lineCode; | ||
| 10 | + | ||
| 11 | + private Long enableTime; | ||
| 12 | + | ||
| 13 | + public String getLineCode() { | ||
| 14 | + return lineCode; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + public void setLineCode(String lineCode) { | ||
| 18 | + this.lineCode = lineCode; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public Long getEnableTime() { | ||
| 22 | + return enableTime; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public void setEnableTime(Long enableTime) { | ||
| 26 | + this.enableTime = enableTime; | ||
| 27 | + } | ||
| 28 | +} |
src/main/java/com/bsth/entity/oil/Ylxxb.java
| @@ -38,7 +38,7 @@ public class Ylxxb { | @@ -38,7 +38,7 @@ public class Ylxxb { | ||
| 38 | private Integer nylx; | 38 | private Integer nylx; |
| 39 | @Transient | 39 | @Transient |
| 40 | private String ldgh; | 40 | private String ldgh; |
| 41 | - //0为接口数据,1为手工输入 | 41 | + //0为接口数据,1为手工输入,2为改变车号,3为改变驾驶员 |
| 42 | private Integer jylx=0; | 42 | private Integer jylx=0; |
| 43 | @Transient | 43 | @Transient |
| 44 | private String gsname; | 44 | private String gsname; |
src/main/java/com/bsth/entity/oil/YlxxbUpdate.java
0 → 100644
| 1 | +package com.bsth.entity.oil; | ||
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | + | ||
| 5 | +import javax.persistence.Entity; | ||
| 6 | +import javax.persistence.GeneratedValue; | ||
| 7 | +import javax.persistence.Id; | ||
| 8 | +import javax.persistence.Table; | ||
| 9 | +import javax.persistence.Transient; | ||
| 10 | + | ||
| 11 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 12 | + | ||
| 13 | +import com.bsth.data.BasicData; | ||
| 14 | + | ||
| 15 | +@Entity | ||
| 16 | +@Table(name = "bsth_c_ylxxb_update") | ||
| 17 | +public class YlxxbUpdate { | ||
| 18 | + @Id | ||
| 19 | + @GeneratedValue | ||
| 20 | + private Integer id; | ||
| 21 | + @DateTimeFormat(pattern="yyyy-MM-dd") | ||
| 22 | + private Date yyrq; | ||
| 23 | + private Date jlrq; | ||
| 24 | + private String nbbm; | ||
| 25 | + private String jsy; | ||
| 26 | + private Double jzl; | ||
| 27 | + private String stationid; | ||
| 28 | + private Date createtime; | ||
| 29 | + private String gsdm; | ||
| 30 | + | ||
| 31 | + private Date xgrq; | ||
| 32 | + private String xgr; | ||
| 33 | + private String tj; | ||
| 34 | + public Integer getId() { | ||
| 35 | + return id; | ||
| 36 | + } | ||
| 37 | + public void setId(Integer id) { | ||
| 38 | + this.id = id; | ||
| 39 | + } | ||
| 40 | + public Date getYyrq() { | ||
| 41 | + return yyrq; | ||
| 42 | + } | ||
| 43 | + public void setYyrq(Date yyrq) { | ||
| 44 | + this.yyrq = yyrq; | ||
| 45 | + } | ||
| 46 | + public Date getJlrq() { | ||
| 47 | + return jlrq; | ||
| 48 | + } | ||
| 49 | + public void setJlrq(Date jlrq) { | ||
| 50 | + this.jlrq = jlrq; | ||
| 51 | + } | ||
| 52 | + public String getNbbm() { | ||
| 53 | + return nbbm; | ||
| 54 | + } | ||
| 55 | + public void setNbbm(String nbbm) { | ||
| 56 | + this.nbbm = nbbm; | ||
| 57 | + } | ||
| 58 | + public String getJsy() { | ||
| 59 | + return jsy; | ||
| 60 | + } | ||
| 61 | + public void setJsy(String jsy) { | ||
| 62 | + this.jsy = jsy; | ||
| 63 | + } | ||
| 64 | + public Double getJzl() { | ||
| 65 | + return jzl; | ||
| 66 | + } | ||
| 67 | + public void setJzl(Double jzl) { | ||
| 68 | + this.jzl = jzl; | ||
| 69 | + } | ||
| 70 | + public String getStationid() { | ||
| 71 | + return stationid; | ||
| 72 | + } | ||
| 73 | + public void setStationid(String stationid) { | ||
| 74 | + this.stationid = stationid; | ||
| 75 | + } | ||
| 76 | + public Date getCreatetime() { | ||
| 77 | + return createtime; | ||
| 78 | + } | ||
| 79 | + public void setCreatetime(Date createtime) { | ||
| 80 | + this.createtime = createtime; | ||
| 81 | + } | ||
| 82 | + public String getGsdm() { | ||
| 83 | + return gsdm; | ||
| 84 | + } | ||
| 85 | + public void setGsdm(String gsdm) { | ||
| 86 | + this.gsdm = gsdm; | ||
| 87 | + } | ||
| 88 | + public Date getXgrq() { | ||
| 89 | + return xgrq; | ||
| 90 | + } | ||
| 91 | + public void setXgrq(Date xgrq) { | ||
| 92 | + this.xgrq = xgrq; | ||
| 93 | + } | ||
| 94 | + public String getXgr() { | ||
| 95 | + return xgr; | ||
| 96 | + } | ||
| 97 | + public void setXgr(String xgr) { | ||
| 98 | + this.xgr = xgr; | ||
| 99 | + } | ||
| 100 | + public String getTj() { | ||
| 101 | + return tj; | ||
| 102 | + } | ||
| 103 | + public void setTj(String tj) { | ||
| 104 | + this.tj = tj; | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + | ||
| 108 | + | ||
| 109 | + | ||
| 110 | +} |
src/main/java/com/bsth/repository/oil/YlxxbUpdateRepository.java
0 → 100644
| 1 | +package com.bsth.repository.oil; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import org.springframework.stereotype.Repository; | ||
| 5 | +import com.bsth.entity.oil.YlxxbUpdate; | ||
| 6 | +import com.bsth.repository.BaseRepository; | ||
| 7 | + | ||
| 8 | +@Repository | ||
| 9 | +public interface YlxxbUpdateRepository extends BaseRepository<YlxxbUpdate, Integer>{ | ||
| 10 | + | ||
| 11 | +} |
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
| @@ -146,6 +146,11 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI | @@ -146,6 +146,11 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI | ||
| 146 | @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.lpName, s.realExecDate,s.fcsj") | 146 | @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.lpName, s.realExecDate,s.fcsj") |
| 147 | List<ScheduleRealInfo> scheduleByDateAndLineQp(String line,String date); | 147 | List<ScheduleRealInfo> scheduleByDateAndLineQp(String line,String date); |
| 148 | 148 | ||
| 149 | + | ||
| 150 | + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) | ||
| 151 | + @Query(value="select DISTINCT s from ScheduleRealInfo s where gsBm like %?1% and fgsBm like %?2% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?3 order by s.xlDir,s.realExecDate,s.fcsj, s.lpName") | ||
| 152 | + List<ScheduleRealInfo> scheduleByDateAndLineByGs_(String gsdm,String fgsdm,String date); | ||
| 153 | + | ||
| 149 | @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) | 154 | @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) |
| 150 | @Query(value="select DISTINCT s from ScheduleRealInfo s where gsBm like %?1% and fgsBm like %?2% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?3 and s.bcType not in ('in','out','ldks') order by s.xlDir,s.realExecDate,s.fcsj, s.lpName") | 155 | @Query(value="select DISTINCT s from ScheduleRealInfo s where gsBm like %?1% and fgsBm like %?2% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?3 and s.bcType not in ('in','out','ldks') order by s.xlDir,s.realExecDate,s.fcsj, s.lpName") |
| 151 | List<ScheduleRealInfo> scheduleByDateAndLineByGs(String gsdm,String fgsdm,String date); | 156 | List<ScheduleRealInfo> scheduleByDateAndLineByGs(String gsdm,String fgsdm,String date); |
src/main/java/com/bsth/service/forms/FormsService.java
| @@ -30,6 +30,7 @@ public interface FormsService { | @@ -30,6 +30,7 @@ public interface FormsService { | ||
| 30 | public List<Shifday> shifday(Map<String, Object> map); | 30 | public List<Shifday> shifday(Map<String, Object> map); |
| 31 | 31 | ||
| 32 | public List<Singledata> singledata(Map<String, Object> map); | 32 | public List<Singledata> singledata(Map<String, Object> map); |
| 33 | + public List<Singledata> singledatanew(Map<String, Object> map); | ||
| 33 | 34 | ||
| 34 | public List<Vehicleloading> vehicleloading(String line,String data); | 35 | public List<Vehicleloading> vehicleloading(String line,String data); |
| 35 | 36 |
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
| @@ -8,6 +8,8 @@ import java.text.NumberFormat; | @@ -8,6 +8,8 @@ import java.text.NumberFormat; | ||
| 8 | import java.text.ParseException; | 8 | import java.text.ParseException; |
| 9 | import java.text.SimpleDateFormat; | 9 | import java.text.SimpleDateFormat; |
| 10 | import java.util.ArrayList; | 10 | import java.util.ArrayList; |
| 11 | +import java.util.Collections; | ||
| 12 | +import java.util.Comparator; | ||
| 11 | import java.util.Date; | 13 | import java.util.Date; |
| 12 | import java.util.HashMap; | 14 | import java.util.HashMap; |
| 13 | import java.util.HashSet; | 15 | import java.util.HashSet; |
| @@ -598,7 +600,7 @@ public class FormsServiceImpl implements FormsService { | @@ -598,7 +600,7 @@ public class FormsServiceImpl implements FormsService { | ||
| 598 | 600 | ||
| 599 | // 路单数据 | 601 | // 路单数据 |
| 600 | @Override | 602 | @Override |
| 601 | - public List<Singledata> singledata(Map<String, Object> map) { | 603 | + public List<Singledata> singledatanew(Map<String, Object> map) { |
| 602 | 604 | ||
| 603 | String gsdm=""; | 605 | String gsdm=""; |
| 604 | if(map.get("gsdmSing")!=null){ | 606 | if(map.get("gsdmSing")!=null){ |
| @@ -651,7 +653,7 @@ public class FormsServiceImpl implements FormsService { | @@ -651,7 +653,7 @@ public class FormsServiceImpl implements FormsService { | ||
| 651 | sql += " and r.xl_bm = '"+xlbm+"'"; | 653 | sql += " and r.xl_bm = '"+xlbm+"'"; |
| 652 | } | 654 | } |
| 653 | sql += " group by r.s_gh,r.s_name," | 655 | sql += " group by r.s_gh,r.s_name," |
| 654 | - + " r.xl_bm,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm order by r.xl_bm"; | 656 | + + " r.xl_bm,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm order by r.xl_bm,r.cl_zbh"; |
| 655 | 657 | ||
| 656 | List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() { | 658 | List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() { |
| 657 | //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | 659 | //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| @@ -735,6 +737,199 @@ public class FormsServiceImpl implements FormsService { | @@ -735,6 +737,199 @@ public class FormsServiceImpl implements FormsService { | ||
| 735 | return list; | 737 | return list; |
| 736 | } | 738 | } |
| 737 | 739 | ||
| 740 | + | ||
| 741 | + // 路单数据 | ||
| 742 | + @Override | ||
| 743 | + public List<Singledata> singledata(Map<String, Object> map) { | ||
| 744 | + | ||
| 745 | + String gsdm=""; | ||
| 746 | + if(map.get("gsdmSing")!=null){ | ||
| 747 | + gsdm=map.get("gsdmSing").toString(); | ||
| 748 | + } | ||
| 749 | + String fgsdm=""; | ||
| 750 | + if(map.get("fgsdmSing")!=null){ | ||
| 751 | + fgsdm=map.get("fgsdmSing").toString(); | ||
| 752 | + } | ||
| 753 | + | ||
| 754 | + String tjtype=map.get("tjtype").toString(); | ||
| 755 | + String xlbm=map.get("line").toString().trim(); | ||
| 756 | + startDate = map.get("startDate").toString(); | ||
| 757 | + | ||
| 758 | + List<ScheduleRealInfo> listReal=new ArrayList<ScheduleRealInfo>(); | ||
| 759 | + if(xlbm.equals("")){ | ||
| 760 | + listReal=scheduleRealInfoRepository.scheduleByDateAndLineByGs_(gsdm, fgsdm, startDate); | ||
| 761 | + }else{ | ||
| 762 | + listReal=scheduleRealInfoRepository.scheduleByDateAndLineQp(xlbm, startDate); | ||
| 763 | + } | ||
| 764 | + List<Singledata> list=new ArrayList<Singledata>(); | ||
| 765 | + List<Singledata> listY=new ArrayList<Singledata>(); | ||
| 766 | + List<Singledata> listD=new ArrayList<Singledata>(); | ||
| 767 | + | ||
| 768 | + if(tjtype.equals("jsy")){ | ||
| 769 | + DecimalFormat df = new DecimalFormat("0.00"); | ||
| 770 | + List<Ylb> listYlb= ylbRepository.obtainYl(startDate, gsdm, fgsdm, xlbm, "", "xlbm"); | ||
| 771 | + for (int i = 0; i < listYlb.size(); i++) { | ||
| 772 | + Ylb y=listYlb.get(i); | ||
| 773 | + String jsy=y.getJsy(); | ||
| 774 | + String line=y.getXlbm(); | ||
| 775 | + String clzbh=y.getNbbm(); | ||
| 776 | + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>(); | ||
| 777 | + for (int j = 0; j < listReal.size(); j++) { | ||
| 778 | + ScheduleRealInfo s=listReal.get(j); | ||
| 779 | + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh) | ||
| 780 | + &&s.getXlBm().equals(line)){ | ||
| 781 | + newList.add(s); | ||
| 782 | + } | ||
| 783 | + } | ||
| 784 | + double jhgl=culateMileageService.culateJhgl(newList); | ||
| 785 | + double jhjcc=culateMileageService.culateJhJccgl(newList); | ||
| 786 | + double yygl=culateMileageService.culateSjgl(newList); | ||
| 787 | + double ljgl=culateMileageService.culateLjgl(newList); | ||
| 788 | + double ksgl=culateMileageService.culateKsgl(newList); | ||
| 789 | + double jcgl=culateMileageService.culateJccgl(newList); | ||
| 790 | + | ||
| 791 | + double zyygl=Arith.add(yygl, ljgl); | ||
| 792 | + double zksgl=Arith.add(ksgl, jcgl); | ||
| 793 | + | ||
| 794 | + Singledata sin=new Singledata(); | ||
| 795 | + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl))); | ||
| 796 | + | ||
| 797 | + sin.setEmptMileage(String.valueOf(zksgl)); | ||
| 798 | + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); | ||
| 799 | + sin.setxL(BasicData.lineCode2NameMap.get(y.getXlbm())); | ||
| 800 | + sin.setClzbh(clzbh); | ||
| 801 | + sin.setJsy(jsy); | ||
| 802 | + sin.setrQ(startDate); | ||
| 803 | + sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | ||
| 804 | + sin.setSgh(""); | ||
| 805 | + sin.setsName(""); | ||
| 806 | + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); | ||
| 807 | + sin.setHyl(df.format(y.getYh())); | ||
| 808 | + sin.setJzl(df.format(y.getJzl())); | ||
| 809 | + sin.setUnyyyl(df.format(y.getSh())); | ||
| 810 | + listY.add(sin); | ||
| 811 | + } | ||
| 812 | + | ||
| 813 | + List<Dlb> listDlb= dlbRepository.obtainDl(startDate, gsdm, fgsdm, xlbm, "", "xlbm"); | ||
| 814 | + for (int i = 0; i < listDlb.size(); i++) { | ||
| 815 | + | ||
| 816 | + Dlb y=listDlb.get(i); | ||
| 817 | + String jsy=y.getJsy(); | ||
| 818 | + String line=y.getXlbm(); | ||
| 819 | + String clzbh=y.getNbbm(); | ||
| 820 | + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>(); | ||
| 821 | + for (int j = 0; j < listReal.size(); j++) { | ||
| 822 | + ScheduleRealInfo s=listReal.get(j); | ||
| 823 | + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh) | ||
| 824 | + &&s.getXlBm().equals(line)){ | ||
| 825 | + newList.add(s); | ||
| 826 | + } | ||
| 827 | + } | ||
| 828 | + double jhgl=culateMileageService.culateJhgl(newList); | ||
| 829 | + double jhjcc=culateMileageService.culateJhJccgl(newList); | ||
| 830 | + double yygl=culateMileageService.culateSjgl(newList); | ||
| 831 | + double ljgl=culateMileageService.culateLjgl(newList); | ||
| 832 | + double ksgl=culateMileageService.culateKsgl(newList); | ||
| 833 | + double jcgl=culateMileageService.culateJccgl(newList); | ||
| 834 | + | ||
| 835 | + double zyygl=Arith.add(yygl, ljgl); | ||
| 836 | + double zksgl=Arith.add(ksgl, jcgl); | ||
| 837 | + | ||
| 838 | + Singledata sin=new Singledata(); | ||
| 839 | + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl))); | ||
| 840 | + | ||
| 841 | + sin.setEmptMileage(String.valueOf(zksgl)); | ||
| 842 | + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); | ||
| 843 | + sin.setxL(BasicData.lineCode2NameMap.get(y.getXlbm())); | ||
| 844 | + sin.setClzbh(clzbh); | ||
| 845 | + sin.setJsy(jsy); | ||
| 846 | + sin.setrQ(startDate); | ||
| 847 | + sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | ||
| 848 | + sin.setSgh(""); | ||
| 849 | + sin.setsName(""); | ||
| 850 | + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); | ||
| 851 | + sin.setHyl(df.format(y.getHd())); | ||
| 852 | + sin.setJzl(df.format(y.getCdl())); | ||
| 853 | + sin.setUnyyyl(df.format(y.getSh())); | ||
| 854 | + listD.add(sin); | ||
| 855 | + } | ||
| 856 | + | ||
| 857 | + Collections.sort(listY,new SingledataByXlbm()); | ||
| 858 | + Collections.sort(listD,new SingledataByXlbm()); | ||
| 859 | + list.addAll(listY); | ||
| 860 | + list.addAll(listD); | ||
| 861 | + }else{ | ||
| 862 | + String sql="select r.s_gh,r.s_name, " | ||
| 863 | + + " r.xl_bm,r.cl_zbh,r.gs_bm,r.fgs_bm" | ||
| 864 | + + " from bsth_c_s_sp_info_real r where " | ||
| 865 | + + " r.schedule_date_str = '"+startDate+"'" | ||
| 866 | + + " and r.s_gh !='' and r.s_gh is not null "; | ||
| 867 | + if(xlbm.equals("")){ | ||
| 868 | + sql +="and r.gs_bm='"+gsdm+"' " | ||
| 869 | + + " and r.fgs_bm='"+fgsdm+"'"; | ||
| 870 | + }else{ | ||
| 871 | + sql += " and r.xl_bm = '"+xlbm+"'"; | ||
| 872 | + } | ||
| 873 | + sql += " group by r.s_gh,r.s_name," | ||
| 874 | + + " r.xl_bm,r.cl_zbh,r.gs_bm,r.fgs_bm order by r.xl_bm,r.cl_zbh"; | ||
| 875 | + | ||
| 876 | + list = jdbcTemplate.query(sql, new RowMapper<Singledata>() { | ||
| 877 | + //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||
| 878 | + @Override | ||
| 879 | + public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException { | ||
| 880 | + Singledata sin = new Singledata(); | ||
| 881 | + sin.setrQ(startDate); | ||
| 882 | + sin.setxL(arg0.getString("xl_bm")); | ||
| 883 | + sin.setClzbh(arg0.getString("cl_zbh")); | ||
| 884 | + sin.setSgh(arg0.getString("s_gh")); | ||
| 885 | + sin.setsName(arg0.getString("s_name")); | ||
| 886 | + return sin; | ||
| 887 | + } | ||
| 888 | + }); | ||
| 889 | + | ||
| 890 | + for (int i = 0; i < list.size(); i++) { | ||
| 891 | + Singledata sin=list.get(i); | ||
| 892 | + String jsy=sin.getSgh(); | ||
| 893 | + String line=sin.getxL(); | ||
| 894 | + String clzbh=sin.getClzbh(); | ||
| 895 | + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>(); | ||
| 896 | + for (int j = 0; j < listReal.size(); j++) { | ||
| 897 | + ScheduleRealInfo s=listReal.get(j); | ||
| 898 | + if(s.getsGh().equals(jsy) && s.getClZbh().equals(clzbh) | ||
| 899 | + &&s.getXlBm().equals(line)){ | ||
| 900 | + newList.add(s); | ||
| 901 | + } | ||
| 902 | + } | ||
| 903 | + double jhgl=culateMileageService.culateJhgl(newList); | ||
| 904 | + double jhjcc=culateMileageService.culateJhJccgl(newList); | ||
| 905 | + double yygl=culateMileageService.culateSjgl(newList); | ||
| 906 | + double ljgl=culateMileageService.culateLjgl(newList); | ||
| 907 | + double ksgl=culateMileageService.culateKsgl(newList); | ||
| 908 | + double jcgl=culateMileageService.culateJccgl(newList); | ||
| 909 | + | ||
| 910 | + double zyygl=Arith.add(yygl, ljgl); | ||
| 911 | + double zksgl=Arith.add(ksgl, jcgl); | ||
| 912 | + | ||
| 913 | + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl))); | ||
| 914 | + | ||
| 915 | + sin.setEmptMileage(String.valueOf(zksgl)); | ||
| 916 | + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); | ||
| 917 | + sin.setxL(BasicData.lineCode2NameMap.get(line)); | ||
| 918 | + sin.setClzbh(clzbh); | ||
| 919 | + sin.setJsy(""); | ||
| 920 | + sin.setjName(""); | ||
| 921 | + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); | ||
| 922 | + sin.setHyl(""); | ||
| 923 | + sin.setJzl(""); | ||
| 924 | + sin.setUnyyyl(""); | ||
| 925 | + } | ||
| 926 | + Collections.sort(list,new SingledataByXlbm()); | ||
| 927 | + } | ||
| 928 | + | ||
| 929 | + return list; | ||
| 930 | + | ||
| 931 | + } | ||
| 932 | + | ||
| 738 | // 运营服务阶段报表 | 933 | // 运营服务阶段报表 |
| 739 | @Override | 934 | @Override |
| 740 | public List<Operationservice> operationservice(Map<String, Object> map) { | 935 | public List<Operationservice> operationservice(Map<String, Object> map) { |
| @@ -1398,4 +1593,12 @@ public class FormsServiceImpl implements FormsService { | @@ -1398,4 +1593,12 @@ public class FormsServiceImpl implements FormsService { | ||
| 1398 | } | 1593 | } |
| 1399 | return list; | 1594 | return list; |
| 1400 | } | 1595 | } |
| 1596 | + | ||
| 1597 | + class SingledataByXlbm implements Comparator<Singledata>{ | ||
| 1598 | + @Override | ||
| 1599 | + public int compare(Singledata o1, Singledata o2) { | ||
| 1600 | + // TODO Auto-generated method stub | ||
| 1601 | + return o2.getxL().compareTo(o1.getxL()); | ||
| 1602 | + } | ||
| 1603 | + } | ||
| 1401 | } | 1604 | } |
src/main/java/com/bsth/service/oil/YlxxbService.java
| 1 | package com.bsth.service.oil; | 1 | package com.bsth.service.oil; |
| 2 | 2 | ||
| 3 | +import java.util.List; | ||
| 3 | import java.util.Map; | 4 | import java.util.Map; |
| 4 | 5 | ||
| 5 | import com.bsth.entity.oil.Ylxxb; | 6 | import com.bsth.entity.oil.Ylxxb; |
| @@ -9,6 +10,9 @@ import com.bsth.util.PageObject; | @@ -9,6 +10,9 @@ import com.bsth.util.PageObject; | ||
| 9 | public interface YlxxbService extends BaseService<Ylxxb, Integer>{ | 10 | public interface YlxxbService extends BaseService<Ylxxb, Integer>{ |
| 10 | PageObject<Ylxxb> Pagequery(Map<String, Object> map) ; | 11 | PageObject<Ylxxb> Pagequery(Map<String, Object> map) ; |
| 11 | 12 | ||
| 13 | + List<Ylxxb> Pagequery_nbbm(Map<String, Object> map) ; | ||
| 14 | + | ||
| 12 | Map<String, Object> checkJsy(Map<String, Object> map) throws Exception; | 15 | Map<String, Object> checkJsy(Map<String, Object> map) throws Exception; |
| 16 | + Map<String, Object> checkNbbm(Map<String, Object> map) throws Exception; | ||
| 13 | 17 | ||
| 14 | } | 18 | } |
src/main/java/com/bsth/service/oil/impl/YlxxbServiceImpl.java
| @@ -5,6 +5,7 @@ import java.sql.SQLException; | @@ -5,6 +5,7 @@ import java.sql.SQLException; | ||
| 5 | import java.text.ParseException; | 5 | import java.text.ParseException; |
| 6 | import java.text.SimpleDateFormat; | 6 | import java.text.SimpleDateFormat; |
| 7 | import java.util.ArrayList; | 7 | import java.util.ArrayList; |
| 8 | +import java.util.Date; | ||
| 8 | import java.util.HashMap; | 9 | import java.util.HashMap; |
| 9 | import java.util.List; | 10 | import java.util.List; |
| 10 | import java.util.Map; | 11 | import java.util.Map; |
| @@ -25,9 +26,11 @@ import com.bsth.common.ResponseCode; | @@ -25,9 +26,11 @@ import com.bsth.common.ResponseCode; | ||
| 25 | import com.bsth.entity.excep.Offline; | 26 | import com.bsth.entity.excep.Offline; |
| 26 | import com.bsth.entity.oil.Ylb; | 27 | import com.bsth.entity.oil.Ylb; |
| 27 | import com.bsth.entity.oil.Ylxxb; | 28 | import com.bsth.entity.oil.Ylxxb; |
| 29 | +import com.bsth.entity.oil.YlxxbUpdate; | ||
| 28 | import com.bsth.entity.search.CustomerSpecs; | 30 | import com.bsth.entity.search.CustomerSpecs; |
| 29 | import com.bsth.repository.oil.YlbRepository; | 31 | import com.bsth.repository.oil.YlbRepository; |
| 30 | import com.bsth.repository.oil.YlxxbRepository; | 32 | import com.bsth.repository.oil.YlxxbRepository; |
| 33 | +import com.bsth.repository.oil.YlxxbUpdateRepository; | ||
| 31 | import com.bsth.service.impl.BaseServiceImpl; | 34 | import com.bsth.service.impl.BaseServiceImpl; |
| 32 | import com.bsth.service.oil.YlxxbService; | 35 | import com.bsth.service.oil.YlxxbService; |
| 33 | import com.bsth.util.PageHelper; | 36 | import com.bsth.util.PageHelper; |
| @@ -40,6 +43,8 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | @@ -40,6 +43,8 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | ||
| 40 | @Autowired | 43 | @Autowired |
| 41 | YlxxbRepository repository; | 44 | YlxxbRepository repository; |
| 42 | @Autowired | 45 | @Autowired |
| 46 | + YlxxbUpdateRepository updateRepository; | ||
| 47 | + @Autowired | ||
| 43 | YlbRepository ylbRepository; | 48 | YlbRepository ylbRepository; |
| 44 | @Autowired | 49 | @Autowired |
| 45 | JdbcTemplate jdbcTemplate; | 50 | JdbcTemplate jdbcTemplate; |
| @@ -53,7 +58,7 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | @@ -53,7 +58,7 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | ||
| 53 | String sql=" select * from (" | 58 | String sql=" select * from (" |
| 54 | + "select *,CONCAT(nbbm,jsy) as nj " | 59 | + "select *,CONCAT(nbbm,jsy) as nj " |
| 55 | + " from bsth_c_ylxxb where yyrq='"+rq+"' " | 60 | + " from bsth_c_ylxxb where yyrq='"+rq+"' " |
| 56 | - + " and gsdm ='"+gsdm+"' and jylx ='0') x where x.nj not in (" | 61 | + + " and gsdm ='"+gsdm+"' and jylx !='1') x where x.nj not in (" |
| 57 | + " select CONCAT(nbbm,jsy) from bsth_c_ylb " | 62 | + " select CONCAT(nbbm,jsy) from bsth_c_ylb " |
| 58 | + " where rq='"+rq+"'" | 63 | + " where rq='"+rq+"'" |
| 59 | + " and ssgsdm='"+gsdm+"' and fgsdm ='"+fgsdm+"')" | 64 | + " and ssgsdm='"+gsdm+"' and fgsdm ='"+fgsdm+"')" |
| @@ -61,7 +66,7 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | @@ -61,7 +66,7 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | ||
| 61 | + " where rq='"+rq+"'" | 66 | + " where rq='"+rq+"'" |
| 62 | + " and ssgsdm='"+gsdm+"' and fgsdm ='"+fgsdm+"') " | 67 | + " and ssgsdm='"+gsdm+"' and fgsdm ='"+fgsdm+"') " |
| 63 | + " and x.nbbm not in (select nbbm from bsth_c_ylxxb" | 68 | + " and x.nbbm not in (select nbbm from bsth_c_ylxxb" |
| 64 | - + " where yyrq='"+rq+"' and gsdm ='"+gsdm+"' AND jylx ='1')"; | 69 | + + " where yyrq='"+rq+"' and gsdm ='"+gsdm+"' AND jylx !='0')"; |
| 65 | 70 | ||
| 66 | 71 | ||
| 67 | /*String sql= "select v.*,u.jsy as ldgh from " | 72 | /*String sql= "select v.*,u.jsy as ldgh from " |
| @@ -179,7 +184,7 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | @@ -179,7 +184,7 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | ||
| 179 | Ylxxb ylxxb=repository.findOne(id); | 184 | Ylxxb ylxxb=repository.findOne(id); |
| 180 | if(!ylxxb.getJsy().equals(jsy)){ | 185 | if(!ylxxb.getJsy().equals(jsy)){ |
| 181 | ylxxb.setJsy(jsy); | 186 | ylxxb.setJsy(jsy); |
| 182 | - ylxxb.setJylx(1); | 187 | + ylxxb.setJylx(3); |
| 183 | repository.save(ylxxb); | 188 | repository.save(ylxxb); |
| 184 | } | 189 | } |
| 185 | } | 190 | } |
| @@ -191,5 +196,87 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | @@ -191,5 +196,87 @@ public class YlxxbServiceImpl extends BaseServiceImpl<Ylxxb,Integer> implements | ||
| 191 | } | 196 | } |
| 192 | return newMap; | 197 | return newMap; |
| 193 | } | 198 | } |
| 199 | + @Override | ||
| 200 | + public List<Ylxxb> Pagequery_nbbm(Map<String, Object> map) { | ||
| 201 | + // TODO Auto-generated method stub | ||
| 202 | + String rq=map.get("yyrq").toString(); | ||
| 203 | + String gsdm=map.get("gsdm_like").toString(); | ||
| 204 | + String nbbm=map.get("nbbm").toString(); | ||
| 205 | + | ||
| 206 | + String sql="select * from (select *,CONCAT(t.nbbm,'_',t.jsy,'_',t.jzl) as tj " | ||
| 207 | + + " from bsth_c_ylxxb t where t.yyrq='"+rq+"' and t.gsdm='"+gsdm+"' and " | ||
| 208 | + + " t.nylx=0 and t.jylx=0 and t.nbbm like '%"+nbbm+"%') y " | ||
| 209 | + + " where y.nbbm not in (select c.inside_code from bsth_c_cars c " | ||
| 210 | + + " where c.business_code ='05' and c.sfdc=0) and y.tj not in (" | ||
| 211 | + + " select x.tj from bsth_c_ylxxb_update x)"; | ||
| 212 | + | ||
| 213 | + //根具条件查询指定日期Ylb的数据 | ||
| 214 | +// List<Ylb> ylbIterator=ylbRepository.checkYl(rq,gsdm,fgsdm); | ||
| 215 | + List<Ylxxb> list=jdbcTemplate.query(sql, | ||
| 216 | + new RowMapper<Ylxxb>(){ | ||
| 217 | + @Override | ||
| 218 | + public Ylxxb mapRow(ResultSet rs, int rowNum) throws SQLException { | ||
| 219 | + Ylxxb s = new Ylxxb(); | ||
| 220 | + s.setId(rs.getInt("id")); | ||
| 221 | + s.setYyrq(rs.getDate("yyrq")); | ||
| 222 | + s.setNbbm(rs.getString("nbbm")); | ||
| 223 | + s.setGsdm(rs.getString("gsdm")); | ||
| 224 | + s.setJsy(rs.getString("jsy")); | ||
| 225 | + s.setJzl(rs.getDouble("jzl")); | ||
| 226 | + s.setStationid(rs.getString("stationid")); | ||
| 227 | + s.setNylx(rs.getInt("nylx")); | ||
| 228 | + s.setJyggh(rs.getString("jyggh")); | ||
| 229 | + s.setYj(rs.getDouble("yj")); | ||
| 230 | +// s.setLdgh(rs.getString("ldgh")); | ||
| 231 | + s.setBz(rs.getString("bz")); | ||
| 232 | + return s; | ||
| 233 | + } | ||
| 234 | + }); | ||
| 235 | + return list; | ||
| 236 | + } | ||
| 194 | 237 | ||
| 195 | -} | ||
| 196 | \ No newline at end of file | 238 | \ No newline at end of file |
| 239 | + | ||
| 240 | + @Transactional | ||
| 241 | + @Override | ||
| 242 | + public Map<String, Object> checkNbbm(Map<String, Object> map) throws Exception{ | ||
| 243 | + Map<String, Object> newMap=new HashMap<String,Object>(); | ||
| 244 | + // TODO Auto-generated method stub | ||
| 245 | + try { | ||
| 246 | +// int id=Integer.parseInt(map.get("id").toString()); | ||
| 247 | +// String jsy=map.get("jsy").toString(); | ||
| 248 | +// Ylxxb ylxxb=repository.findOne(id); | ||
| 249 | +// ylxxb.setJsy(jsy); | ||
| 250 | +// repository.save(ylxxb); | ||
| 251 | + String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString()); | ||
| 252 | + JSONArray jsonArray=JSONArray.parseArray(json); | ||
| 253 | + JSONObject jsonObject; | ||
| 254 | + for (int x = 0; x < jsonArray.size(); x++) { | ||
| 255 | + jsonObject=jsonArray.getJSONObject(x); | ||
| 256 | + Integer id =jsonObject.getInteger("id"); | ||
| 257 | + String nbbm =jsonObject.getString("nbbm").trim(); | ||
| 258 | + Ylxxb ylxxb=repository.findOne(id); | ||
| 259 | + if(!ylxxb.getNbbm().equals(nbbm)){ | ||
| 260 | + ylxxb.setNbbm(nbbm); | ||
| 261 | + ylxxb.setJylx(2); | ||
| 262 | + repository.save(ylxxb); | ||
| 263 | + YlxxbUpdate ylxxbUpdate=new YlxxbUpdate(); | ||
| 264 | + ylxxbUpdate.setGsdm(ylxxb.getGsdm()); | ||
| 265 | + ylxxbUpdate.setJsy(ylxxb.getJsy()); | ||
| 266 | + ylxxbUpdate.setJzl(ylxxb.getJzl()); | ||
| 267 | + ylxxbUpdate.setJlrq(ylxxb.getJlrq()); | ||
| 268 | + ylxxbUpdate.setNbbm(ylxxb.getNbbm()); | ||
| 269 | + ylxxbUpdate.setYyrq(ylxxb.getYyrq()); | ||
| 270 | + ylxxbUpdate.setCreatetime(new Date()); | ||
| 271 | + ylxxbUpdate.setTj(nbbm+"_"+ylxxb.getJsy()+"_"+ylxxb.getJzl()); | ||
| 272 | + updateRepository.save(ylxxbUpdate); | ||
| 273 | + } | ||
| 274 | + } | ||
| 275 | + newMap.put("status", ResponseCode.SUCCESS); | ||
| 276 | + }catch(Exception e){ | ||
| 277 | + newMap.put("status", ResponseCode.ERROR); | ||
| 278 | + logger.error("save erro.", e); | ||
| 279 | + throw e; | ||
| 280 | + } | ||
| 281 | + return newMap; | ||
| 282 | + } | ||
| 283 | +} |
src/main/java/com/bsth/service/schedule/rules/validate/ValidWholeRerunBcFunction.java
| 1 | -package com.bsth.service.schedule.rules.validate; | ||
| 2 | - | ||
| 3 | -import com.bsth.entity.schedule.SchedulePlanInfo; | ||
| 4 | -import org.kie.api.runtime.rule.AccumulateFunction; | ||
| 5 | - | ||
| 6 | -import java.io.*; | ||
| 7 | -import java.text.SimpleDateFormat; | ||
| 8 | -import java.util.ArrayList; | ||
| 9 | -import java.util.HashMap; | ||
| 10 | -import java.util.List; | ||
| 11 | -import java.util.Map; | ||
| 12 | - | ||
| 13 | -/** | ||
| 14 | - * 验证完全套跑路牌班次正确性。 | ||
| 15 | - * 完全套跑路牌班次指此路牌下的所有班次由其他线路完成。 | ||
| 16 | - * 记录漏掉的班次,并给出警告信息。 | ||
| 17 | - */ | ||
| 18 | -public class ValidWholeRerunBcFunction implements AccumulateFunction { | ||
| 19 | - @Override | ||
| 20 | - public void writeExternal(ObjectOutput out) throws IOException { | ||
| 21 | - } | ||
| 22 | - | ||
| 23 | - @Override | ||
| 24 | - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | ||
| 25 | - | ||
| 26 | - } | ||
| 27 | - | ||
| 28 | - protected static class RerunBcInfo implements Externalizable { | ||
| 29 | - /** 错误描述 */ | ||
| 30 | - public List<ValidateResults_output.ValidInfo> validInfoList = new ArrayList<>(); | ||
| 31 | - /** 内部计数Map,key:{路牌Id}_{发车时间},value:个数 */ | ||
| 32 | - public Map<String, Integer> lpBcFcsjCount = new HashMap<>(); | ||
| 33 | - | ||
| 34 | - public RerunBcInfo() { | ||
| 35 | - } | ||
| 36 | - | ||
| 37 | - @Override | ||
| 38 | - public void writeExternal(ObjectOutput out) throws IOException { | ||
| 39 | - out.writeObject(validInfoList); | ||
| 40 | - } | ||
| 41 | - | ||
| 42 | - @Override | ||
| 43 | - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | ||
| 44 | - validInfoList = (List<ValidateResults_output.ValidInfo>) in.readObject(); | ||
| 45 | - } | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - @Override | ||
| 49 | - public Serializable createContext() { | ||
| 50 | -// System.out.println("create"); | ||
| 51 | - return new RerunBcInfo(); | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | - @Override | ||
| 55 | - public void init(Serializable serializable) throws Exception { | ||
| 56 | - // TODO: | ||
| 57 | -// System.out.println("init"); | ||
| 58 | - } | ||
| 59 | - | ||
| 60 | - @Override | ||
| 61 | - public void accumulate(Serializable context, Object o) { | ||
| 62 | - RerunBcInfo rerunBcInfo = (RerunBcInfo) context; | ||
| 63 | - SchedulePlanInfo schedulePlanInfo = (SchedulePlanInfo) o; | ||
| 64 | - | ||
| 65 | - String key = schedulePlanInfo.getLp() + "_" + schedulePlanInfo.getFcsj(); | ||
| 66 | - SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日"); | ||
| 67 | - String infoformat = "日期(%s),路牌(%s)完全套跑,班次(%s),在套跑规则中未指定"; | ||
| 68 | - | ||
| 69 | - if (schedulePlanInfo.getCl() == null) { | ||
| 70 | - rerunBcInfo.lpBcFcsjCount.put(key, 1); | ||
| 71 | - | ||
| 72 | - ValidateResults_output.ValidInfo validInfo = new ValidateResults_output.ValidInfo(); | ||
| 73 | - validInfo.setSd(schedulePlanInfo.getScheduleDate()); | ||
| 74 | - validInfo.setDesc(String.format( | ||
| 75 | - infoformat, | ||
| 76 | - sf.format(schedulePlanInfo.getScheduleDate()), | ||
| 77 | - schedulePlanInfo.getLpName(), | ||
| 78 | - schedulePlanInfo.getFcsj(), | ||
| 79 | - 1)); | ||
| 80 | - | ||
| 81 | - rerunBcInfo.validInfoList.add(validInfo); | ||
| 82 | - } | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - @Override | ||
| 86 | - public boolean supportsReverse() { | ||
| 87 | - return true; | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - @Override | ||
| 91 | - public void reverse(Serializable context, Object o) throws Exception { | ||
| 92 | - RerunBcInfo rerunBcInfo = (RerunBcInfo) context; | ||
| 93 | - SchedulePlanInfo schedulePlanInfo = (SchedulePlanInfo) o; | ||
| 94 | - | ||
| 95 | - String key = schedulePlanInfo.getLp() + "_" + schedulePlanInfo.getFcsj(); | ||
| 96 | - rerunBcInfo.lpBcFcsjCount.remove(key); | ||
| 97 | - | ||
| 98 | - if (!rerunBcInfo.validInfoList.isEmpty()) { // 全部清空 | ||
| 99 | - rerunBcInfo.validInfoList.clear(); | ||
| 100 | - } | ||
| 101 | - } | ||
| 102 | - | ||
| 103 | - @Override | ||
| 104 | - public Class<?> getResultType() { | ||
| 105 | - return List.class; | ||
| 106 | - } | ||
| 107 | - | ||
| 108 | - @Override | ||
| 109 | - public Object getResult(Serializable context) throws Exception { | ||
| 110 | - RerunBcInfo rerunBcInfo = (RerunBcInfo) context; | ||
| 111 | - return rerunBcInfo.validInfoList; | ||
| 112 | - } | ||
| 113 | -} | 1 | +package com.bsth.service.schedule.rules.validate; |
| 2 | + | ||
| 3 | +import com.bsth.entity.schedule.SchedulePlanInfo; | ||
| 4 | +import org.kie.api.runtime.rule.AccumulateFunction; | ||
| 5 | + | ||
| 6 | +import java.io.*; | ||
| 7 | +import java.text.SimpleDateFormat; | ||
| 8 | +import java.util.ArrayList; | ||
| 9 | +import java.util.HashMap; | ||
| 10 | +import java.util.List; | ||
| 11 | +import java.util.Map; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 验证完全套跑路牌班次正确性。 | ||
| 15 | + * 完全套跑路牌班次指此路牌下的所有班次由其他线路完成。 | ||
| 16 | + * 记录漏掉的班次,并给出警告信息。 | ||
| 17 | + */ | ||
| 18 | +public class ValidWholeRerunBcFunction implements AccumulateFunction { | ||
| 19 | + @Override | ||
| 20 | + public void writeExternal(ObjectOutput out) throws IOException { | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + @Override | ||
| 24 | + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | ||
| 25 | + | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + protected static class RerunBcInfo implements Externalizable { | ||
| 29 | + /** 错误描述 */ | ||
| 30 | + public List<ValidateResults_output.ValidInfo> validInfoList = new ArrayList<>(); | ||
| 31 | + /** 内部计数Map,key:{路牌Id}_{发车时间},value:个数 */ | ||
| 32 | + public Map<String, Integer> lpBcFcsjCount = new HashMap<>(); | ||
| 33 | + | ||
| 34 | + public RerunBcInfo() { | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + @Override | ||
| 38 | + public void writeExternal(ObjectOutput out) throws IOException { | ||
| 39 | + out.writeObject(validInfoList); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + @Override | ||
| 43 | + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | ||
| 44 | + validInfoList = (List<ValidateResults_output.ValidInfo>) in.readObject(); | ||
| 45 | + } | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @Override | ||
| 49 | + public Serializable createContext() { | ||
| 50 | +// System.out.println("create"); | ||
| 51 | + return new RerunBcInfo(); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public void init(Serializable serializable) throws Exception { | ||
| 56 | + // TODO: | ||
| 57 | +// System.out.println("init"); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + @Override | ||
| 61 | + public void accumulate(Serializable context, Object o) { | ||
| 62 | + RerunBcInfo rerunBcInfo = (RerunBcInfo) context; | ||
| 63 | + SchedulePlanInfo schedulePlanInfo = (SchedulePlanInfo) o; | ||
| 64 | + | ||
| 65 | + String key = schedulePlanInfo.getLp() + "_" + schedulePlanInfo.getFcsj(); | ||
| 66 | + SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日"); | ||
| 67 | + String infoformat = "日期(%s),路牌(%s)完全套跑,班次(%s),在套跑规则中未指定"; | ||
| 68 | + | ||
| 69 | + if (schedulePlanInfo.getCl() == null) { | ||
| 70 | + rerunBcInfo.lpBcFcsjCount.put(key, 1); | ||
| 71 | + | ||
| 72 | + ValidateResults_output.ValidInfo validInfo = new ValidateResults_output.ValidInfo(); | ||
| 73 | + validInfo.setSd(schedulePlanInfo.getScheduleDate()); | ||
| 74 | + validInfo.setDesc(String.format( | ||
| 75 | + infoformat, | ||
| 76 | + sf.format(schedulePlanInfo.getScheduleDate()), | ||
| 77 | + schedulePlanInfo.getLpName(), | ||
| 78 | + schedulePlanInfo.getFcsj(), | ||
| 79 | + 1)); | ||
| 80 | + | ||
| 81 | + rerunBcInfo.validInfoList.add(validInfo); | ||
| 82 | + } | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + @Override | ||
| 86 | + public boolean supportsReverse() { | ||
| 87 | + return true; | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + @Override | ||
| 91 | + public void reverse(Serializable context, Object o) throws Exception { | ||
| 92 | + RerunBcInfo rerunBcInfo = (RerunBcInfo) context; | ||
| 93 | + SchedulePlanInfo schedulePlanInfo = (SchedulePlanInfo) o; | ||
| 94 | + | ||
| 95 | + String key = schedulePlanInfo.getLp() + "_" + schedulePlanInfo.getFcsj(); | ||
| 96 | + rerunBcInfo.lpBcFcsjCount.remove(key); | ||
| 97 | + | ||
| 98 | + if (!rerunBcInfo.validInfoList.isEmpty()) { // 全部清空 | ||
| 99 | + rerunBcInfo.validInfoList.clear(); | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + @Override | ||
| 104 | + public Class<?> getResultType() { | ||
| 105 | + return List.class; | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + @Override | ||
| 109 | + public Object getResult(Serializable context) throws Exception { | ||
| 110 | + RerunBcInfo rerunBcInfo = (RerunBcInfo) context; | ||
| 111 | + return rerunBcInfo.validInfoList; | ||
| 112 | + } | ||
| 113 | +} |