Commit 60cdd640c4113055947323bf4b171794cdeb9c91
Merge branch 'pudong' of http://222.66.0.204:8090//panzhaov5/bsth_control into pudong
Showing
45 changed files
with
2069 additions
and
911 deletions
Too many changes to show.
To preserve performance only 45 of 122 files are displayed.
README.md
| ... | ... | @@ -447,9 +447,5 @@ |
| 447 | 447 | | direction | float | 角度0-359 | |
| 448 | 448 | | inTemp | int | 车内温度 | |
| 449 | 449 | | serviceState | long | 设备状态字 | |
| 450 | -<<<<<<< HEAD | |
| 451 | -| daysYear | int | 对应年中的天数 为分区字段 查询一定要用此字段过滤 | | |
| 452 | -======= | |
| 453 | 450 | | daysYear | int | 对应年中的天数 为分区字段 查询一定要用此字段过滤 | |
| 454 | 451 | |
| 455 | ->>>>>>> af8ec3bedc8644f5813e9adab12a163e93cc7f50 | ... | ... |
src/main/java/com/bsth/controller/LineVersionsController.java
| 1 | 1 | package com.bsth.controller; |
| 2 | 2 | |
| 3 | -import java.util.List; | |
| 4 | -import java.util.Map; | |
| 5 | - | |
| 3 | +import com.bsth.entity.LineVersions; | |
| 4 | +import com.bsth.repository.LineRepository; | |
| 5 | +import com.bsth.service.LineVersionsService; | |
| 6 | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 7 | 7 | import org.springframework.web.bind.annotation.RequestMapping; |
| 8 | 8 | import org.springframework.web.bind.annotation.RequestMethod; |
| 9 | 9 | import org.springframework.web.bind.annotation.RequestParam; |
| 10 | 10 | import org.springframework.web.bind.annotation.RestController; |
| 11 | 11 | |
| 12 | -import com.bsth.entity.LineVersions; | |
| 13 | -import com.bsth.repository.LineRepository; | |
| 14 | -import com.bsth.service.LineVersionsService; | |
| 12 | +import java.util.List; | |
| 13 | +import java.util.Map; | |
| 15 | 14 | |
| 16 | 15 | /** |
| 17 | 16 | * |
| ... | ... | @@ -75,7 +74,11 @@ public class LineVersionsController extends BaseController<LineVersions, Integer |
| 75 | 74 | public Map<String, Object> add(@RequestParam Map<String, Object> map) { |
| 76 | 75 | return service.add(map); |
| 77 | 76 | } |
| 78 | - | |
| 77 | + @RequestMapping(value = "delete", method = RequestMethod.POST) | |
| 78 | + public Map<String, Object> delete(@RequestParam (defaultValue = "id") int id) { | |
| 79 | + return service.delete(id); | |
| 80 | + } | |
| 81 | + | |
| 79 | 82 | /** |
| 80 | 83 | * 根据线路id获取当前版本号 |
| 81 | 84 | * | ... | ... |
src/main/java/com/bsth/controller/calc/CalcExportController.java
0 → 100644
| 1 | +package com.bsth.controller.calc; | |
| 2 | + | |
| 3 | +import java.text.SimpleDateFormat; | |
| 4 | +import java.util.ArrayList; | |
| 5 | +import java.util.HashMap; | |
| 6 | +import java.util.Iterator; | |
| 7 | +import java.util.List; | |
| 8 | +import java.util.Map; | |
| 9 | + | |
| 10 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 11 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 12 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 13 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 14 | +import org.springframework.web.bind.annotation.RestController; | |
| 15 | + | |
| 16 | +import com.bsth.common.ResponseCode; | |
| 17 | +import com.bsth.entity.calc.CalcWaybill; | |
| 18 | +import com.bsth.entity.mcy_forms.Waybillday; | |
| 19 | +import com.bsth.service.calc.CalcMixService; | |
| 20 | +import com.bsth.service.calc.CalcWaybillService; | |
| 21 | +import com.bsth.util.ReportUtils; | |
| 22 | + | |
| 23 | +@RestController | |
| 24 | +@RequestMapping("calc_export") | |
| 25 | +public class CalcExportController { | |
| 26 | + | |
| 27 | + @Autowired | |
| 28 | + CalcWaybillService service; | |
| 29 | + | |
| 30 | + @Autowired | |
| 31 | + CalcMixService clacMixService; | |
| 32 | + | |
| 33 | + @RequestMapping(value = "/waybilldayExport", method = RequestMethod.GET) | |
| 34 | + public Map<String, Object> calcjsyspyExport(@RequestParam Map<String, Object> map) { | |
| 35 | + | |
| 36 | + String line=""; | |
| 37 | + if(map.get("line")!=null){ | |
| 38 | + line=map.get("line").toString().trim(); | |
| 39 | + } | |
| 40 | + String lineName=""; | |
| 41 | + if(map.get("lineName")!=null){ | |
| 42 | + lineName=map.get("lineName").toString().trim(); | |
| 43 | + } | |
| 44 | + String startDate=""; | |
| 45 | + if(map.get("startDate")!=null){ | |
| 46 | + startDate=map.get("startDate").toString().trim(); | |
| 47 | + } | |
| 48 | + String endDate=""; | |
| 49 | + if(map.get("endDate")!=null){ | |
| 50 | + endDate=map.get("endDate").toString().trim(); | |
| 51 | + } | |
| 52 | + String cont=""; | |
| 53 | + if(map.get("cont")!=null){ | |
| 54 | + cont=map.get("cont").toString().trim(); | |
| 55 | + } | |
| 56 | + String empnames=""; | |
| 57 | + if(map.get("empnames")!=null){ | |
| 58 | + empnames=map.get("empnames").toString().trim(); | |
| 59 | + } | |
| 60 | + String gsdmManth=""; | |
| 61 | + if(map.get("gsdmManth")!=null){ | |
| 62 | + gsdmManth=map.get("gsdmManth").toString().trim(); | |
| 63 | + } | |
| 64 | + String fgsdmManth=""; | |
| 65 | + if(map.get("fgsdmManth")!=null){ | |
| 66 | + fgsdmManth=map.get("fgsdmManth").toString().trim(); | |
| 67 | + } | |
| 68 | + | |
| 69 | + Map<String, Object> resMap = new HashMap<String, Object>(); | |
| 70 | + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | |
| 71 | + List<Map<String, Object>> list = clacMixService.calcjsyspy(line, startDate, endDate, empnames, cont, gsdmManth, fgsdmManth); | |
| 72 | + | |
| 73 | + Map<String, Object> temp = new HashMap<String, Object>(); | |
| 74 | + temp.put("i", "序号"); | |
| 75 | + temp.put("jName", empnames); | |
| 76 | + temp.put("jhyybc", "计划营运班次"); | |
| 77 | + temp.put("jhfyybc", "计划空驶班次"); | |
| 78 | + temp.put("sjyybc", "实际营运班次"); | |
| 79 | + temp.put("sjfyybc", "实际空驶班次"); | |
| 80 | + temp.put("lbbc", "烂班班次"); | |
| 81 | + temp.put("ljbc", "临加班次"); | |
| 82 | + temp.put("jhzlc", "计划总里程"); | |
| 83 | + temp.put("jhyylc", "计划营运里程"); | |
| 84 | + temp.put("jhfyylc", "计划空驶里程"); | |
| 85 | + temp.put("sjzlc", "实际总里程"); | |
| 86 | + temp.put("sjyylc", "实际营运里程"); | |
| 87 | + temp.put("sjfyylc", "实际空驶里程"); | |
| 88 | + temp.put("lblc", "烂班里程"); | |
| 89 | + temp.put("ljyylc", "临加营运里程"); | |
| 90 | + temp.put("ljfyylc", "临加空驶里程"); | |
| 91 | + resList.add(temp); | |
| 92 | + for(int i = 0; i < list.size(); i++){ | |
| 93 | + temp = list.get(i); | |
| 94 | + temp.put("i", i+1); | |
| 95 | + resList.add(temp); | |
| 96 | + } | |
| 97 | + | |
| 98 | + String date = startDate.replaceAll("-", ""); | |
| 99 | + if(!startDate.equals(endDate)){ | |
| 100 | + date = startDate.replaceAll("-", "") + "-" + endDate.replaceAll("-", ""); | |
| 101 | + } | |
| 102 | + | |
| 103 | + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), | |
| 104 | + sdfSimple = new SimpleDateFormat("yyyyMMdd"); | |
| 105 | + List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); | |
| 106 | + Map<String,Object> mm = new HashMap<String, Object>(); | |
| 107 | + ReportUtils ee = new ReportUtils(); | |
| 108 | + | |
| 109 | + try { | |
| 110 | + listI.add(resList.iterator()); | |
| 111 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 112 | + ee.excelReplace(listI, new Object[] { mm }, path+"mould/calcjsyspy.xls", | |
| 113 | + path+"export/"+date+"-"+lineName+"-人车班次公里统计.xls"); | |
| 114 | + resMap.put("status", ResponseCode.SUCCESS); | |
| 115 | + } catch (Exception e) { | |
| 116 | + e.printStackTrace(); | |
| 117 | + resMap.put("status", ResponseCode.ERROR); | |
| 118 | + } | |
| 119 | + return resMap; | |
| 120 | + } | |
| 121 | + | |
| 122 | + @RequestMapping(value = "/singledataExportTj", method = RequestMethod.GET) | |
| 123 | + public Map<String, Object> singledataExportTj(@RequestParam Map<String, Object> map) { | |
| 124 | + | |
| 125 | + String line=""; | |
| 126 | + if(map.get("line")!=null){ | |
| 127 | + line=map.get("line").toString().trim(); | |
| 128 | + } | |
| 129 | + String lineName=""; | |
| 130 | + if(map.get("lineName")!=null){ | |
| 131 | + lineName=map.get("lineName").toString().trim(); | |
| 132 | + } | |
| 133 | + String startDate=""; | |
| 134 | + if(map.get("startDate")!=null){ | |
| 135 | + startDate=map.get("startDate").toString().trim(); | |
| 136 | + } | |
| 137 | + String endDate=""; | |
| 138 | + if(map.get("endDate")!=null){ | |
| 139 | + endDate=map.get("endDate").toString().trim(); | |
| 140 | + } | |
| 141 | + String tjtype=""; | |
| 142 | + if(map.get("tjtype")!=null){ | |
| 143 | + tjtype=map.get("tjtype").toString().trim(); | |
| 144 | + } | |
| 145 | + String cont=""; | |
| 146 | + if(map.get("cont")!=null){ | |
| 147 | + cont=map.get("cont").toString().trim(); | |
| 148 | + } | |
| 149 | + String gsdmSing=""; | |
| 150 | + if(map.get("gsdmSing")!=null){ | |
| 151 | + gsdmSing=map.get("gsdmSing").toString().trim(); | |
| 152 | + } | |
| 153 | + String fgsdmSing=""; | |
| 154 | + if(map.get("fgsdmSing")!=null){ | |
| 155 | + fgsdmSing=map.get("fgsdmSing").toString().trim(); | |
| 156 | + } | |
| 157 | + | |
| 158 | + Map<String, Object> resMap = new HashMap<String, Object>(); | |
| 159 | + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | |
| 160 | + List<Map<String, Object>> list = clacMixService.singledatatj(line, startDate, endDate, tjtype, cont, gsdmSing, fgsdmSing); | |
| 161 | + | |
| 162 | + Map<String, Object> temp = new HashMap<String, Object>(); | |
| 163 | + temp.put("i", "序号"); | |
| 164 | + temp.put("gS", "所属公司"); | |
| 165 | + temp.put("xlName", "线路"); | |
| 166 | + temp.put("jName", tjtype); | |
| 167 | + temp.put("jhzlc", "计划公里"); | |
| 168 | + temp.put("sjzlc", "行驶里程(包括空放)"); | |
| 169 | + temp.put("sjfyylc", "空驶里程"); | |
| 170 | + temp.put("hyl", "耗油量"); | |
| 171 | + temp.put("jzl", "加注量"); | |
| 172 | + temp.put("sh", "非营业用油"); | |
| 173 | + | |
| 174 | + resList.add(temp); | |
| 175 | + for(int i = 0; i < list.size(); i++){ | |
| 176 | + temp = list.get(i); | |
| 177 | + temp.put("i", i+1); | |
| 178 | + if(temp.get("xlName") == null){ | |
| 179 | + temp.put("xlName", ""); | |
| 180 | + } | |
| 181 | + resList.add(temp); | |
| 182 | + } | |
| 183 | + | |
| 184 | + String date = startDate.replaceAll("-", ""); | |
| 185 | + if(!startDate.equals(endDate)){ | |
| 186 | + date = startDate.replaceAll("-", "") + "-" + endDate.replaceAll("-", ""); | |
| 187 | + } | |
| 188 | + | |
| 189 | + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), | |
| 190 | + sdfSimple = new SimpleDateFormat("yyyyMMdd"); | |
| 191 | + List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); | |
| 192 | + Map<String,Object> mm = new HashMap<String, Object>(); | |
| 193 | + ReportUtils ee = new ReportUtils(); | |
| 194 | + | |
| 195 | + try { | |
| 196 | + listI.add(resList.iterator()); | |
| 197 | + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; | |
| 198 | + ee.excelReplace(listI, new Object[] { mm }, path+"mould/calcsingledata.xls", | |
| 199 | + path+"export/"+date+"-"+lineName+"-路单数据(统计).xls"); | |
| 200 | + resMap.put("status", ResponseCode.SUCCESS); | |
| 201 | + } catch (Exception e) { | |
| 202 | + e.printStackTrace(); | |
| 203 | + resMap.put("status", ResponseCode.ERROR); | |
| 204 | + } | |
| 205 | + return resMap; | |
| 206 | + } | |
| 207 | + | |
| 208 | +} | ... | ... |
src/main/java/com/bsth/controller/calc/CalcMixController.java
0 → 100644
| 1 | +package com.bsth.controller.calc; | |
| 2 | + | |
| 3 | +import java.util.List; | |
| 4 | +import java.util.Map; | |
| 5 | + | |
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 8 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 9 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 10 | +import org.springframework.web.bind.annotation.RestController; | |
| 11 | + | |
| 12 | +import com.bsth.service.calc.CalcMixService; | |
| 13 | + | |
| 14 | +@RestController | |
| 15 | +@RequestMapping("calc_mix") | |
| 16 | +public class CalcMixController { | |
| 17 | + | |
| 18 | + @Autowired | |
| 19 | + CalcMixService service; | |
| 20 | + | |
| 21 | + @RequestMapping(value="/calcjsyspy") | |
| 22 | + public List<Map<String, Object>> calcjsyspy(@RequestParam Map<String, Object> map){ | |
| 23 | + String line=""; | |
| 24 | + if(map.get("line")!=null){ | |
| 25 | + line=map.get("line").toString().trim(); | |
| 26 | + } | |
| 27 | + String startDate=""; | |
| 28 | + if(map.get("startDate")!=null){ | |
| 29 | + startDate=map.get("startDate").toString().trim(); | |
| 30 | + } | |
| 31 | + String endDate=""; | |
| 32 | + if(map.get("endDate")!=null){ | |
| 33 | + endDate=map.get("endDate").toString().trim(); | |
| 34 | + } | |
| 35 | + String empnames=""; | |
| 36 | + if(map.get("empnames")!=null){ | |
| 37 | + empnames=map.get("empnames").toString().trim(); | |
| 38 | + } | |
| 39 | + String cont=""; | |
| 40 | + if(map.get("cont")!=null){ | |
| 41 | + cont=map.get("cont").toString().trim(); | |
| 42 | + } | |
| 43 | + String gsdmManth=""; | |
| 44 | + if(map.get("gsdmManth")!=null){ | |
| 45 | + gsdmManth=map.get("gsdmManth").toString().trim(); | |
| 46 | + } | |
| 47 | + String fgsdmManth=""; | |
| 48 | + if(map.get("fgsdmManth")!=null){ | |
| 49 | + fgsdmManth=map.get("fgsdmManth").toString().trim(); | |
| 50 | + } | |
| 51 | + return service.calcjsyspy(line, startDate, endDate, empnames, cont, gsdmManth, fgsdmManth); | |
| 52 | + } | |
| 53 | + | |
| 54 | + @RequestMapping(value = "/singledatatj", method = RequestMethod.GET) | |
| 55 | + public List<Map<String, Object>> singledatatj(@RequestParam Map<String, Object> map) { | |
| 56 | + String line=""; | |
| 57 | + if(map.get("line")!=null){ | |
| 58 | + line=map.get("line").toString().trim(); | |
| 59 | + } | |
| 60 | + String startDate=""; | |
| 61 | + if(map.get("startDate")!=null){ | |
| 62 | + startDate=map.get("startDate").toString().trim(); | |
| 63 | + } | |
| 64 | + String endDate=""; | |
| 65 | + if(map.get("endDate")!=null){ | |
| 66 | + endDate=map.get("endDate").toString().trim(); | |
| 67 | + } | |
| 68 | + String tjtype=""; | |
| 69 | + if(map.get("tjtype")!=null){ | |
| 70 | + tjtype=map.get("tjtype").toString().trim(); | |
| 71 | + } | |
| 72 | + String cont=""; | |
| 73 | + if(map.get("cont")!=null){ | |
| 74 | + cont=map.get("cont").toString().trim(); | |
| 75 | + } | |
| 76 | + String gsdmSing=""; | |
| 77 | + if(map.get("gsdmSing")!=null){ | |
| 78 | + gsdmSing=map.get("gsdmSing").toString().trim(); | |
| 79 | + } | |
| 80 | + String fgsdmSing=""; | |
| 81 | + if(map.get("fgsdmSing")!=null){ | |
| 82 | + fgsdmSing=map.get("fgsdmSing").toString().trim(); | |
| 83 | + } | |
| 84 | + return service.singledatatj(line, startDate, endDate, tjtype, cont, gsdmSing, fgsdmSing); | |
| 85 | + } | |
| 86 | + | |
| 87 | +} | ... | ... |
src/main/java/com/bsth/controller/realcontrol/RealMapController.java
| ... | ... | @@ -49,6 +49,12 @@ public class RealMapController { |
| 49 | 49 | return realMapService.findRouteByLine(idx); |
| 50 | 50 | } |
| 51 | 51 | |
| 52 | + | |
| 53 | + @RequestMapping(value = "/findRouteAndVersionByLine") | |
| 54 | + public Map<String, Object> findRouteByLineAndVersion(@RequestParam String idx) { | |
| 55 | + return realMapService.findRouteAndVersionByLine(idx); | |
| 56 | + } | |
| 57 | + | |
| 52 | 58 | @RequestMapping(value = "/multiRouteByLine") |
| 53 | 59 | public Map<String, Object> multiRouteByLine(@RequestParam String codeStr) { |
| 54 | 60 | return realMapService.multiRouteByLine(codeStr); | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| ... | ... | @@ -711,6 +711,13 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 711 | 711 | public Map<String, Object> deleteToHistory(@PathVariable("id") Long id){ |
| 712 | 712 | return scheduleRealInfoService.deleteToHistory(id); |
| 713 | 713 | } |
| 714 | + | |
| 715 | + @RequestMapping(value = "isCircleQdz", method = RequestMethod.POST) | |
| 716 | + public Map<String, Object> isCircleQdz(@RequestParam String line, String nbbm, String ts, String qdzCode){ | |
| 717 | + Map<String, Object> map =new HashMap<>(); | |
| 718 | + map.put("isExist",scheduleRealInfoService.isCircleQdz(nbbm, ts, line, qdzCode)); | |
| 719 | + return map; | |
| 720 | + } | |
| 714 | 721 | |
| 715 | 722 | /** |
| 716 | 723 | * 从历史库里删除临加班次 | ... | ... |
src/main/java/com/bsth/data/schedule/thread/CalcOilThread.java
| ... | ... | @@ -44,7 +44,7 @@ public class CalcOilThread extends Thread{ |
| 44 | 44 | dlbService.obtainDsq(); |
| 45 | 45 | logger.info("计算路单里程加注量结束!"); |
| 46 | 46 | logger.info("开始计算班次准点率...."); |
| 47 | - sheetService.saveSheetList(""); | |
| 47 | + //sheetService.saveSheetList(""); | |
| 48 | 48 | logger.info("计算班次准点率结束!"); |
| 49 | 49 | |
| 50 | 50 | logger.info("开始保存重新统计数据...."); | ... | ... |
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
| ... | ... | @@ -231,6 +231,15 @@ public class ScheduleRealInfo { |
| 231 | 231 | * 换车营运标记 true 表示该主任务由 【中途换车子任务】 级联生成 |
| 232 | 232 | */ |
| 233 | 233 | private boolean ccService; |
| 234 | + private Integer lpChange; | |
| 235 | + | |
| 236 | + public Integer getLpChange() { | |
| 237 | + return lpChange; | |
| 238 | + } | |
| 239 | + | |
| 240 | + public void setLpChange(Integer lpChange) { | |
| 241 | + this.lpChange = lpChange; | |
| 242 | + } | |
| 234 | 243 | |
| 235 | 244 | public boolean isDfAuto() { |
| 236 | 245 | return dfAuto; | ... | ... |
src/main/java/com/bsth/entity/search/PredicatesBuilder.java
| ... | ... | @@ -9,6 +9,7 @@ import java.text.NumberFormat; |
| 9 | 9 | import java.text.ParseException; |
| 10 | 10 | import java.text.SimpleDateFormat; |
| 11 | 11 | import java.util.ArrayList; |
| 12 | +import java.util.Calendar; | |
| 12 | 13 | import java.util.Date; |
| 13 | 14 | import java.util.List; |
| 14 | 15 | |
| ... | ... | @@ -37,7 +38,13 @@ public class PredicatesBuilder { |
| 37 | 38 | if(Date.class.isAssignableFrom(leftType) && |
| 38 | 39 | String.class.isAssignableFrom(rightType)){ |
| 39 | 40 | DateTime dateTime = new DateTime(object); |
| 40 | - return cb.equal(expression, dateTime.toDate()); | |
| 41 | + Date startTime = dateTime.toDate();//设置起始时间 | |
| 42 | + Calendar c = Calendar.getInstance(); | |
| 43 | + c.setTime(startTime); | |
| 44 | + c.add(Calendar.DAY_OF_MONTH, 1); | |
| 45 | + // 设置结束时间,起始时间为结束时间加1天 | |
| 46 | + Date endTime = c.getTime(); | |
| 47 | + return cb.between((Path<Date>) expression,startTime,endTime); | |
| 41 | 48 | } |
| 42 | 49 | else { |
| 43 | 50 | return cb.equal(expression, object); | ... | ... |
src/main/java/com/bsth/entity/traffic/SKBUploadLogger.java
| 1 | 1 | package com.bsth.entity.traffic; |
| 2 | 2 | |
| 3 | -import com.bsth.entity.schedule.TTInfo; | |
| 3 | +import com.bsth.entity.Line; | |
| 4 | 4 | import com.bsth.entity.sys.SysUser; |
| 5 | 5 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
| 6 | 6 | |
| ... | ... | @@ -33,7 +33,7 @@ public class SKBUploadLogger { |
| 33 | 33 | |
| 34 | 34 | /** 时刻表信息 */ |
| 35 | 35 | @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) |
| 36 | - private TTInfo ttInfo; | |
| 36 | + private Line line; | |
| 37 | 37 | |
| 38 | 38 | /** 用户 关联 */ |
| 39 | 39 | @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) |
| ... | ... | @@ -43,6 +43,23 @@ public class SKBUploadLogger { |
| 43 | 43 | @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") |
| 44 | 44 | private Date createDate; |
| 45 | 45 | |
| 46 | + // 上传的参数 | |
| 47 | + @Column( name = "upload_xml" , columnDefinition="TEXT") | |
| 48 | + private String uploadXml; | |
| 49 | + | |
| 50 | + // 上传的参数2 | |
| 51 | + @Column( name = "upload_xml_sub" , columnDefinition="TEXT") | |
| 52 | + private String uploadXmlSub; | |
| 53 | + | |
| 54 | + // 日志类型 1:时刻表;2:上传线路;3:上传路单 | |
| 55 | + private String type; | |
| 56 | + | |
| 57 | + // 模板名称 | |
| 58 | + private String name; | |
| 59 | + | |
| 60 | + // 上传状态:是否成功 1:成功;0:失败 | |
| 61 | + private String state; | |
| 62 | + | |
| 46 | 63 | public Integer getId() { |
| 47 | 64 | return id; |
| 48 | 65 | } |
| ... | ... | @@ -51,14 +68,6 @@ public class SKBUploadLogger { |
| 51 | 68 | this.id = id; |
| 52 | 69 | } |
| 53 | 70 | |
| 54 | - public TTInfo getTtInfo() { | |
| 55 | - return ttInfo; | |
| 56 | - } | |
| 57 | - | |
| 58 | - public void setTtInfo(TTInfo ttInfo) { | |
| 59 | - this.ttInfo = ttInfo; | |
| 60 | - } | |
| 61 | - | |
| 62 | 71 | public SysUser getUser() { |
| 63 | 72 | return user; |
| 64 | 73 | } |
| ... | ... | @@ -71,7 +80,29 @@ public class SKBUploadLogger { |
| 71 | 80 | return createDate; |
| 72 | 81 | } |
| 73 | 82 | |
| 74 | - public void setCreateDate(Date createDate) { | |
| 75 | - this.createDate = createDate; | |
| 76 | - } | |
| 83 | + public void setCreateDate(Date createDate) { this.createDate = createDate; } | |
| 84 | + | |
| 85 | + public String getUploadXml() { return uploadXml; } | |
| 86 | + | |
| 87 | + public void setUploadXml(String uploadXml) { this.uploadXml = uploadXml; } | |
| 88 | + | |
| 89 | + public String getState() { return state; } | |
| 90 | + | |
| 91 | + public void setState(String state) { this.state = state; } | |
| 92 | + | |
| 93 | + public Line getLine() { return line;} | |
| 94 | + | |
| 95 | + public void setLine(Line line) { this.line = line; } | |
| 96 | + | |
| 97 | + public String getType() { return type; } | |
| 98 | + | |
| 99 | + public void setType(String type) { this.type = type; } | |
| 100 | + | |
| 101 | + public String getName() { return name; } | |
| 102 | + | |
| 103 | + public void setName(String name) { this.name = name; } | |
| 104 | + | |
| 105 | + public String getUploadXmlSub() {return uploadXmlSub;} | |
| 106 | + | |
| 107 | + public void setUploadXmlSub(String uploadXmlSub) {this.uploadXmlSub = uploadXmlSub; } | |
| 77 | 108 | } | ... | ... |
src/main/java/com/bsth/repository/StationRouteRepository.java
| ... | ... | @@ -392,6 +392,7 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int |
| 392 | 392 | |
| 393 | 393 | @EntityGraph(value = "stationRoute_station", type = EntityGraph.EntityGraphType.FETCH) |
| 394 | 394 | @Override |
| 395 | + @Query(value = "select r from StationRoute r where r.destroy=0") | |
| 395 | 396 | List<StationRoute> findAll(); |
| 396 | 397 | |
| 397 | 398 | @Query("select new map(sr.station.id as stationid, sr.stationName as stationname) from StationRoute sr where sr.line.id=?1 and sr.directions=?2") | ... | ... |
src/main/java/com/bsth/repository/calc/CalcWaybillRepository.java
| ... | ... | @@ -58,4 +58,15 @@ public interface CalcWaybillRepository extends BaseRepository<CalcWaybill, Integ |
| 58 | 58 | @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr=?1") |
| 59 | 59 | List<ScheduleRealInfo> findAllScheduleByDate(String schDate); |
| 60 | 60 | |
| 61 | + | |
| 62 | + //按照时间段统计,公司下线路 (驾驶员) | |
| 63 | + @Query(value="select DISTINCT c from CalcWaybill c where c.xl like %?1% and c.rqStr between ?2 and ?3 and c.gsdm like %?4% and c.fgsdm like %?5% and CONCAT(jGh,'/',jName) like %?6% order by c.xl") | |
| 64 | + List<CalcWaybill> scheduleByJsy(String line,String date,String date2,String gsdm,String fgsdm,String jsy); | |
| 65 | + //按照时间段统计,公司下线路 (售票员) | |
| 66 | + @Query(value="select DISTINCT c from CalcWaybill c where c.xl like %?1% and c.rqStr between ?2 and ?3 and c.gsdm like %?4% and c.fgsdm like %?5% and CONCAT(sGh,'/',sName) like %?6% order by c.xl") | |
| 67 | + List<CalcWaybill> scheduleBySpy(String line,String date,String date2,String gsdm,String fgsdm,String spy); | |
| 68 | + //按照时间段统计,公司下线路 (车辆自编号) | |
| 69 | + @Query(value="select DISTINCT c from CalcWaybill c where c.xl like %?1% and c.rqStr between ?2 and ?3 and c.gsdm like %?4% and c.fgsdm like %?5% and cl like %?6% order by c.xl") | |
| 70 | + List<CalcWaybill> scheduleByZbh(String line,String date,String date2,String gsdm,String fgsdm,String zbh); | |
| 71 | + | |
| 61 | 72 | } | ... | ... |
src/main/java/com/bsth/repository/oil/DlbRepository.java
| 1 | 1 | package com.bsth.repository.oil; |
| 2 | 2 | |
| 3 | +import java.util.Date; | |
| 3 | 4 | import java.util.List; |
| 4 | 5 | |
| 5 | 6 | import org.springframework.data.jpa.repository.Modifying; |
| ... | ... | @@ -41,6 +42,14 @@ public interface DlbRepository extends BaseRepository<Dlb, Integer>{ |
| 41 | 42 | + " and s.nbbm in ?5 order by nbbm,jcsx") |
| 42 | 43 | List<Dlb> listDlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); |
| 43 | 44 | |
| 45 | + @Query(value="select s from Dlb s " | |
| 46 | + + " where s.rq=?1 " | |
| 47 | + + " and s.ssgsdm like %?2% " | |
| 48 | + + " and s.fgsdm like %?3%" | |
| 49 | + + " and s.xlbm like %?4% " | |
| 50 | + + " and s.nbbm in ?5 order by nbbm,jcsx") | |
| 51 | + List<Dlb> listDlb_s(Date rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); | |
| 52 | + | |
| 44 | 53 | |
| 45 | 54 | /** |
| 46 | 55 | * |
| ... | ... | @@ -73,6 +82,15 @@ public interface DlbRepository extends BaseRepository<Dlb, Integer>{ |
| 73 | 82 | + " and s.nbbm in ?5 ") |
| 74 | 83 | List<Object[]> sumDlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); |
| 75 | 84 | |
| 85 | + @Query(value="select cdl,hd,sh from Dlb s " | |
| 86 | + + " where s.rq=?1" | |
| 87 | + + " and s.ssgsdm like %?2% " | |
| 88 | + + " and s.fgsdm like %?3%" | |
| 89 | + + " and s.xlbm like %?4% " | |
| 90 | + + " and s.nbbm in ?5 ") | |
| 91 | + List<Object[]> sumDlb_s(Date rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); | |
| 92 | + | |
| 93 | + | |
| 76 | 94 | @Query(value="select ifnull(cdl,0),ifnull(hd,0),ifnull(sh,0) from bsth_c_dlb " |
| 77 | 95 | + " where rq=?1 " |
| 78 | 96 | + " and ssgsdm like %?2% " | ... | ... |
src/main/java/com/bsth/repository/oil/YlbRepository.java
| ... | ... | @@ -133,6 +133,15 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ |
| 133 | 133 | + " and s.nbbm in ?5 ") |
| 134 | 134 | List<Object[]> sumYlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); |
| 135 | 135 | |
| 136 | + @Query(value="select jzl,yh,sh from Ylb s " | |
| 137 | + + " where s.rq=?1 " | |
| 138 | + + " and s.ssgsdm like %?2% " | |
| 139 | + + " and s.fgsdm like %?3%" | |
| 140 | + + " and s.xlbm like %?4% " | |
| 141 | + + " and s.nbbm in ?5 ") | |
| 142 | + List<Object[]> sumYlb_s(Date rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); | |
| 143 | + | |
| 144 | + | |
| 136 | 145 | @Query(value="select ifnull(jzl,0),ifnull(yh,0),ifnull(sh,0) from bsth_c_ylb " |
| 137 | 146 | + " where rq=?1 " |
| 138 | 147 | + " and ssgsdm like %?2% " |
| ... | ... | @@ -151,6 +160,14 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ |
| 151 | 160 | + " and s.nbbm in ?5 order by nbbm,jcsx") |
| 152 | 161 | List<Ylb> listYlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); |
| 153 | 162 | |
| 163 | + @Query(value="select s from Ylb s " | |
| 164 | + + " where s.rq=?1 " | |
| 165 | + + " and s.ssgsdm =?2 " | |
| 166 | + + " and s.fgsdm =?3 " | |
| 167 | + + " and s.xlbm like %?4% " | |
| 168 | + + " and s.nbbm in ?5 order by nbbm,jcsx") | |
| 169 | + List<Ylb> listYlb_s(Date rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm); | |
| 170 | + | |
| 154 | 171 | |
| 155 | 172 | @Transactional |
| 156 | 173 | @Modifying | ... | ... |
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
| ... | ... | @@ -223,4 +223,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI |
| 223 | 223 | @Override |
| 224 | 224 | List<ScheduleRealInfo> findAll(); |
| 225 | 225 | |
| 226 | + @Modifying | |
| 227 | + @Transactional | |
| 228 | + @Query(value = "update ScheduleRealInfo s set s.lpChange=1 where s.id=?1 ") | |
| 229 | + Integer updateLpChange(Long id); | |
| 230 | + | |
| 231 | + @Query(value = "select count (s.id) from ScheduleRealInfo s where s.clZbh=?1 and s.scheduleDateStr=?2 and s.xlBm=?3 and s.qdzCode=?4") | |
| 232 | + Long isCircleQdz(String clzbh,String sdr,String xlbm,String qdzCode); | |
| 233 | + | |
| 226 | 234 | } | ... | ... |
src/main/java/com/bsth/repository/sys/RoleRepository.java
| ... | ... | @@ -3,6 +3,7 @@ package com.bsth.repository.sys; |
| 3 | 3 | |
| 4 | 4 | import javax.transaction.Transactional; |
| 5 | 5 | |
| 6 | +import org.springframework.data.jpa.domain.Specification; | |
| 6 | 7 | import org.springframework.data.jpa.repository.Modifying; |
| 7 | 8 | import org.springframework.data.jpa.repository.Query; |
| 8 | 9 | import org.springframework.stereotype.Repository; |
| ... | ... | @@ -10,6 +11,8 @@ import org.springframework.stereotype.Repository; |
| 10 | 11 | import com.bsth.entity.sys.Role; |
| 11 | 12 | import com.bsth.repository.BaseRepository; |
| 12 | 13 | |
| 14 | +import java.util.List; | |
| 15 | + | |
| 13 | 16 | @Repository |
| 14 | 17 | public interface RoleRepository extends BaseRepository<Role, Integer>{ |
| 15 | 18 | |
| ... | ... | @@ -21,4 +24,7 @@ public interface RoleRepository extends BaseRepository<Role, Integer>{ |
| 21 | 24 | @Transactional |
| 22 | 25 | @Query("update Role r set r.codeName=?1, r.roleName=?2, r.enable=?3, r.descriptions=?4 where r.id=?5") |
| 23 | 26 | void update(String codeName, String roleName, boolean enable, String descriptions, Integer id); |
| 27 | + | |
| 28 | + @Query(value = "select * from role where id in(?1)",nativeQuery = true) | |
| 29 | + List<Role> findAllById(String ids); | |
| 24 | 30 | } | ... | ... |
src/main/java/com/bsth/service/calc/CalcMixService.java
0 → 100644
| 1 | +package com.bsth.service.calc; | |
| 2 | + | |
| 3 | +import java.util.List; | |
| 4 | +import java.util.Map; | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * Created by 19/02/28. | |
| 8 | + */ | |
| 9 | +public interface CalcMixService { | |
| 10 | + | |
| 11 | + List<Map<String, Object>> calcjsyspy(String line, String startDate, String endDate, String cont, String empnames, String gsdmManth, String fgsdmManth); | |
| 12 | + | |
| 13 | + List<Map<String, Object>> singledatatj(String line, String startDate, String endDate, String tjtype, String cont, String gsdmSing, String fgsdmSing); | |
| 14 | + | |
| 15 | +} | ... | ... |
src/main/java/com/bsth/service/calc/impl/CalcMixServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.calc.impl; | |
| 2 | + | |
| 3 | +import java.sql.ResultSet; | |
| 4 | +import java.sql.SQLException; | |
| 5 | +import java.util.ArrayList; | |
| 6 | +import java.util.HashMap; | |
| 7 | +import java.util.List; | |
| 8 | +import java.util.Map; | |
| 9 | + | |
| 10 | +import com.bsth.data.BasicData; | |
| 11 | +import com.bsth.entity.calc.CalcWaybill; | |
| 12 | +import com.bsth.entity.mcy_forms.Singledata; | |
| 13 | +import com.bsth.repository.calc.CalcWaybillRepository; | |
| 14 | +import com.bsth.service.calc.CalcMixService; | |
| 15 | +import com.bsth.util.Arith; | |
| 16 | + | |
| 17 | +import org.slf4j.Logger; | |
| 18 | +import org.slf4j.LoggerFactory; | |
| 19 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 20 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 21 | +import org.springframework.jdbc.core.RowMapper; | |
| 22 | +import org.springframework.stereotype.Service; | |
| 23 | + | |
| 24 | +/** | |
| 25 | + * Created by 19/02/28. | |
| 26 | + */ | |
| 27 | +@Service | |
| 28 | +public class CalcMixServiceImpl implements CalcMixService { | |
| 29 | + | |
| 30 | + @Autowired | |
| 31 | + private CalcWaybillRepository calcRepository; | |
| 32 | + | |
| 33 | + @Autowired | |
| 34 | + JdbcTemplate jdbcTemplate; | |
| 35 | + | |
| 36 | + | |
| 37 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 38 | + | |
| 39 | + | |
| 40 | + @Override | |
| 41 | + public List<Map<String, Object>> calcjsyspy(String line, String date, String date2, | |
| 42 | + String empnames, String cont, String gsdm, String fgsdm) { | |
| 43 | + | |
| 44 | + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | |
| 45 | + List<CalcWaybill> list = null; | |
| 46 | + | |
| 47 | + int flag = 0; | |
| 48 | + if("驾驶员".equals(empnames)){ | |
| 49 | + flag = 1; | |
| 50 | + list = calcRepository.scheduleByJsy(line, date, date2, gsdm, fgsdm, cont); | |
| 51 | + } else if("售票员".equals(empnames)){ | |
| 52 | + flag = 2; | |
| 53 | + list = calcRepository.scheduleBySpy(line, date, date2, gsdm, fgsdm, cont); | |
| 54 | + } else if("车辆自编号".equals(empnames)){ | |
| 55 | + flag = 3; | |
| 56 | + list = calcRepository.scheduleByZbh(line, date, date2, gsdm, fgsdm, cont); | |
| 57 | + } | |
| 58 | + | |
| 59 | + List<CalcWaybill> calcList = new ArrayList<CalcWaybill>(); | |
| 60 | + Map<String, CalcWaybill> calcMap = new HashMap<String, CalcWaybill>(); | |
| 61 | + | |
| 62 | + CalcWaybill zjCalc = this.initCalcWaybill(); | |
| 63 | + zjCalc.setjName("合计"); | |
| 64 | + for(CalcWaybill c : list){ | |
| 65 | + String key = ""; | |
| 66 | + if(flag == 1){ | |
| 67 | + if(c.getjGh() != null && c.getjName() != null) | |
| 68 | + key = c.getjGh() + "/" + c.getjName(); | |
| 69 | + } else if(flag == 2){ | |
| 70 | + if(c.getsGh() != null && c.getsName() != null) | |
| 71 | + key = c.getsGh() + "/" + c.getsName(); | |
| 72 | + } else if(flag == 3){ | |
| 73 | + if(c.getCl() != null) | |
| 74 | + key = c.getCl(); | |
| 75 | + } | |
| 76 | + | |
| 77 | + if(key.trim().length() == 0 || "/".equals(key)) | |
| 78 | + continue; | |
| 79 | + | |
| 80 | + CalcWaybill calc = null; | |
| 81 | + if(calcMap.containsKey(key)){ | |
| 82 | + calc = calcMap.get(key); | |
| 83 | + } else { | |
| 84 | + calc = this.initCalcWaybill(); | |
| 85 | + calc.setjName(key); | |
| 86 | + calcList.add(calc); | |
| 87 | + calcMap.put(key, calc); | |
| 88 | + } | |
| 89 | + | |
| 90 | + this.summation(calc, c); | |
| 91 | + | |
| 92 | + this.summation(zjCalc, c); | |
| 93 | + | |
| 94 | + } | |
| 95 | + calcList.add(zjCalc); | |
| 96 | + calcMap.put("合计", zjCalc); | |
| 97 | + | |
| 98 | + for(CalcWaybill c : calcList){ | |
| 99 | + Map<String, Object> m = new HashMap<String, Object>(); | |
| 100 | + m.put("jName", c.getjName()); | |
| 101 | + m.put("jhyybc", c.getJhyybc()); | |
| 102 | + m.put("jhfyybc", c.getJhfyybc()); | |
| 103 | + m.put("sjyybc", c.getSjyybc()); | |
| 104 | + m.put("sjfyybc", c.getSjfyybc()); | |
| 105 | + m.put("lbbc", c.getLbbc()); | |
| 106 | + m.put("ljbc", c.getLjbc()); | |
| 107 | + m.put("jhzlc", Arith.add(c.getJhyylc(), c.getJhfyylc())); | |
| 108 | + m.put("jhyylc", c.getJhyylc()); | |
| 109 | + m.put("jhfyylc", c.getJhfyylc()); | |
| 110 | + m.put("sjzlc", Arith.add(c.getSjyylc(), c.getSjfyylc())); | |
| 111 | + m.put("sjyylc", c.getSjyylc()); | |
| 112 | + m.put("sjfyylc", c.getSjfyylc()); | |
| 113 | + m.put("lblc", c.getLblc()); | |
| 114 | + m.put("ljyylc", c.getLjyylc()); | |
| 115 | + m.put("ljfyylc", c.getLjfyylc()); | |
| 116 | + resList.add(m); | |
| 117 | + } | |
| 118 | + | |
| 119 | + return resList; | |
| 120 | + } | |
| 121 | + | |
| 122 | + public CalcWaybill initCalcWaybill(){ | |
| 123 | + CalcWaybill calc = new CalcWaybill(); | |
| 124 | + calc.setJhyybc(0); | |
| 125 | + calc.setJhyylc(0d); | |
| 126 | + calc.setJhfyybc(0); | |
| 127 | + calc.setJhfyylc(0d); | |
| 128 | + calc.setSjyybc(0); | |
| 129 | + calc.setSjyylc(0d); | |
| 130 | + calc.setSjfyybc(0); | |
| 131 | + calc.setSjfyylc(0d); | |
| 132 | + calc.setLbbc(0); | |
| 133 | + calc.setLblc(0d); | |
| 134 | + calc.setLjbc(0); | |
| 135 | + calc.setLjyylc(0d); | |
| 136 | + calc.setLjfyylc(0d); | |
| 137 | + return calc; | |
| 138 | + } | |
| 139 | + | |
| 140 | + public CalcWaybill summation(CalcWaybill c1, CalcWaybill c2){ | |
| 141 | + c1.setJhyybc(c1.getJhyybc() + c2.getJhyybc()); | |
| 142 | + c1.setJhyylc(Arith.add(c1.getJhyylc(), c2.getJhyylc())); | |
| 143 | + c1.setJhfyybc(c1.getJhfyybc() + c2.getJhfyybc()); | |
| 144 | + c1.setJhfyylc(Arith.add(c1.getJhfyylc(), c2.getJhfyylc())); | |
| 145 | + c1.setSjyybc(c1.getSjyybc() + c2.getSjyybc()); | |
| 146 | + c1.setSjyylc(Arith.add(c1.getSjyylc(), c2.getSjyylc())); | |
| 147 | + c1.setSjyylc(Arith.add(c1.getSjyylc(), c2.getLjyylc())); | |
| 148 | + c1.setSjfyybc(c1.getSjfyybc() + c2.getSjfyybc()); | |
| 149 | + c1.setSjfyylc(Arith.add(c1.getSjfyylc(), c2.getSjfyylc())); | |
| 150 | + c1.setSjfyylc(Arith.add(c1.getSjfyylc(), c2.getLjfyylc())); | |
| 151 | + c1.setLbbc(c1.getLbbc() + c2.getLbbc()); | |
| 152 | + c1.setLblc(Arith.add(c1.getLblc(), c2.getLblc())); | |
| 153 | + c1.setLjbc(c1.getLjbc() + c2.getLjbc()); | |
| 154 | + c1.setLjyylc(Arith.add(c1.getLjyylc(), c2.getLjyylc())); | |
| 155 | + c1.setLjfyylc(Arith.add(c1.getLjfyylc(), c2.getLjfyylc())); | |
| 156 | + return c1; | |
| 157 | + } | |
| 158 | + | |
| 159 | + @Override | |
| 160 | + public List<Map<String, Object>> singledatatj(String line, | |
| 161 | + String date, String date2, | |
| 162 | + String tjtype, String cont, | |
| 163 | + String gsdm, String fgsdm) { | |
| 164 | + | |
| 165 | + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | |
| 166 | + List<CalcWaybill> list = null; | |
| 167 | + | |
| 168 | + int flag = 0; | |
| 169 | + if("驾驶员".equals(tjtype)){ | |
| 170 | + flag = 1; | |
| 171 | + list = calcRepository.scheduleByJsy(line, date, date2, gsdm, fgsdm, cont); | |
| 172 | + } else if("售票员".equals(tjtype)){ | |
| 173 | + flag = 2; | |
| 174 | + list = calcRepository.scheduleBySpy(line, date, date2, gsdm, fgsdm, cont); | |
| 175 | + } else if("车辆自编号".equals(tjtype)){ | |
| 176 | + flag = 3; | |
| 177 | + list = calcRepository.scheduleByZbh(line, date, date2, gsdm, fgsdm, cont); | |
| 178 | + } | |
| 179 | + | |
| 180 | + List<CalcWaybill> calcList = new ArrayList<CalcWaybill>(); | |
| 181 | + Map<String, CalcWaybill> calcMap = new HashMap<String, CalcWaybill>(); | |
| 182 | + | |
| 183 | + CalcWaybill zjCalc = this.initCalcWaybill(); | |
| 184 | + zjCalc.setjName("合计"); | |
| 185 | + for(CalcWaybill c : list){ | |
| 186 | + String key = ""; | |
| 187 | + if(flag == 1){ | |
| 188 | + if(c.getjGh() != null && c.getjName() != null) | |
| 189 | + key += c.getjGh() + "/" + c.getjName(); | |
| 190 | + } else if(flag == 2){ | |
| 191 | + if(c.getsGh() != null && c.getsName() != null) | |
| 192 | + key += c.getsGh() + "/" + c.getsName(); | |
| 193 | + } else if(flag == 3){ | |
| 194 | + if(c.getCl() != null) | |
| 195 | + key += c.getCl(); | |
| 196 | + } | |
| 197 | + | |
| 198 | + if(key.trim().length() == 0 || "/".equals(key)) | |
| 199 | + continue; | |
| 200 | + | |
| 201 | + String jName = key; | |
| 202 | + key = c.getXl() + "/" + key; | |
| 203 | + | |
| 204 | + CalcWaybill calc = null; | |
| 205 | + if(calcMap.containsKey(key)){ | |
| 206 | + calc = calcMap.get(key); | |
| 207 | + } else { | |
| 208 | + calc = this.initCalcWaybill(); | |
| 209 | + calc.setXlName(c.getXlName()); | |
| 210 | + calc.setXl(c.getXl()); | |
| 211 | + calc.setjName(jName); | |
| 212 | + calcList.add(calc); | |
| 213 | + calcMap.put(key, calc); | |
| 214 | + } | |
| 215 | + | |
| 216 | + this.summation(calc, c); | |
| 217 | + | |
| 218 | + this.summation(zjCalc, c); | |
| 219 | + | |
| 220 | + } | |
| 221 | + calcList.add(zjCalc); | |
| 222 | + calcMap.put("合计", zjCalc); | |
| 223 | + | |
| 224 | + Map<String, Map<String, Object>> keyMap = new HashMap<String, Map<String, Object>>(); | |
| 225 | + for(CalcWaybill c : calcList){ | |
| 226 | + Map<String, Object> m = new HashMap<String, Object>(); | |
| 227 | + m.put("gS", BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); | |
| 228 | + m.put("xl", c.getXl()); | |
| 229 | + m.put("xlName", c.getXlName()); | |
| 230 | + m.put("jName", c.getjName()); | |
| 231 | + m.put("jhyybc", c.getJhyybc()); | |
| 232 | + m.put("jhfyybc", c.getJhfyybc()); | |
| 233 | + m.put("sjyybc", c.getSjyybc()); | |
| 234 | + m.put("sjfyybc", c.getSjfyybc()); | |
| 235 | + m.put("lbbc", c.getLbbc()); | |
| 236 | + m.put("ljbc", c.getLjbc()); | |
| 237 | + m.put("jhzlc", Arith.add(c.getJhyylc(), c.getJhfyylc())); | |
| 238 | + m.put("jhyylc", c.getJhyylc()); | |
| 239 | + m.put("jhfyylc", c.getJhfyylc()); | |
| 240 | + m.put("sjzlc", Arith.add(c.getSjyylc(), c.getSjfyylc())); | |
| 241 | + m.put("sjyylc", c.getSjyylc()); | |
| 242 | + m.put("sjfyylc", c.getSjfyylc()); | |
| 243 | + m.put("lblc", c.getLblc()); | |
| 244 | + m.put("ljyylc", c.getLjyylc()); | |
| 245 | + m.put("ljfyylc", c.getLjfyylc()); | |
| 246 | + if(flag != 2){ | |
| 247 | + m.put("hyl", 0); | |
| 248 | + m.put("jzl", 0); | |
| 249 | + m.put("sh", 0); | |
| 250 | + } | |
| 251 | + resList.add(m); | |
| 252 | + keyMap.put(c.getXl() + "/" + c.getjName(), m); | |
| 253 | + } | |
| 254 | + | |
| 255 | + String linesql=""; | |
| 256 | + if(!line.equals("")){ | |
| 257 | + linesql +=" and xlbm ='"+line+"' "; | |
| 258 | + } | |
| 259 | + if(!gsdm.equals("")){ | |
| 260 | + linesql +=" and ssgsdm ='"+gsdm+"' "; | |
| 261 | + } | |
| 262 | + if(!fgsdm.equals("")){ | |
| 263 | + linesql +=" and fgsdm ='"+fgsdm+"' "; | |
| 264 | + } | |
| 265 | + String nysql="SELECT id,xlbm,nbbm,jsy,jzl as jzl,yh as yh,sh as sh,fgsdm FROM bsth_c_ylb" | |
| 266 | + + " WHERE rq >= '"+date+"' and rq <= '"+date2+"'" | |
| 267 | + + linesql | |
| 268 | + + " union" | |
| 269 | + + " SELECT id,xlbm,nbbm,jsy,cdl as jzl,hd as yh,sh as sh,fgsdm FROM bsth_c_dlb" | |
| 270 | + + " WHERE rq >= '"+date2+"' and rq <= '"+date2+"'" | |
| 271 | + + linesql; | |
| 272 | + List<Singledata> listNy = jdbcTemplate.query(nysql, new RowMapper<Singledata>() { | |
| 273 | + @Override | |
| 274 | + public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException { | |
| 275 | + Singledata sin = new Singledata(); | |
| 276 | + sin.setxL(arg0.getString("xlbm")); | |
| 277 | + sin.setJsy(arg0.getString("jsy")); | |
| 278 | + sin.setClzbh(arg0.getString("nbbm")); | |
| 279 | + sin.setJzl(arg0.getString("jzl")); | |
| 280 | + sin.setHyl(arg0.getString("yh")); | |
| 281 | + sin.setUnyyyl(arg0.getString("sh")); | |
| 282 | + sin.setgS(arg0.getString("fgsdm")); | |
| 283 | + return sin; | |
| 284 | + } | |
| 285 | + }); | |
| 286 | + | |
| 287 | + if(flag != 2){ | |
| 288 | + Map<String, Object> last = resList.get(resList.size()-1); | |
| 289 | + last.put("hyl", 0); | |
| 290 | + last.put("jzl", 0); | |
| 291 | + last.put("sh", 0); | |
| 292 | + | |
| 293 | + //统计油,电表中手动添加的或者有加注没里程的数据 | |
| 294 | + for (int i = 0; i < listNy.size(); i++) { | |
| 295 | + Singledata sin_=listNy.get(i); | |
| 296 | + String xl=sin_.getxL(); | |
| 297 | + String str = ""; | |
| 298 | + if(flag == 1){ | |
| 299 | + str = sin_.getJsy() + "/" + BasicData.allPerson.get(gsdm+"-"+sin_.getJsy()); | |
| 300 | + } else { | |
| 301 | + str = sin_.getClzbh(); | |
| 302 | + } | |
| 303 | +// boolean fages=true; | |
| 304 | + if(keyMap.containsKey(xl + "/" + str)){ | |
| 305 | + Map<String, Object> m = keyMap.get(xl + "/" + str); | |
| 306 | + m.put("hyl", Arith.add(m.get("hyl"), sin_.getHyl()!=null?sin_.getHyl():0)); | |
| 307 | + m.put("jzl", Arith.add(m.get("jzl"), sin_.getJzl()!=null?sin_.getJzl():0)); | |
| 308 | + m.put("sh", Arith.add(m.get("sh"), sin_.getUnyyyl()!=null?sin_.getUnyyyl():0)); | |
| 309 | + last.put("hyl", Arith.add(last.get("hyl"), m.get("hyl"))); | |
| 310 | + last.put("jzl", Arith.add(last.get("jzl"), m.get("jzl"))); | |
| 311 | + last.put("sh", Arith.add(last.get("sh"), m.get("sh"))); | |
| 312 | + } else { | |
| 313 | + Map<String, Object> m = new HashMap<String, Object>(); | |
| 314 | + m.put("gS", BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); | |
| 315 | + m.put("xl", xl); | |
| 316 | + m.put("xlName", BasicData.lineCodeAllNameMap.get(xl)); | |
| 317 | + m.put("jName", str); | |
| 318 | + m.put("jhzlc", 0); | |
| 319 | + m.put("sjzlc", 0); | |
| 320 | + m.put("sjfyylc", 0); | |
| 321 | + m.put("hyl", sin_.getHyl()!=null?sin_.getHyl():0); | |
| 322 | + m.put("jzl", sin_.getJzl()!=null?sin_.getJzl():0); | |
| 323 | + m.put("sh", sin_.getUnyyyl()!=null?sin_.getUnyyyl():0); | |
| 324 | + last.put("hyl", Arith.add(last.get("hyl"), m.get("hyl"))); | |
| 325 | + last.put("jzl", Arith.add(last.get("jzl"), m.get("jzl"))); | |
| 326 | + last.put("sh", Arith.add(last.get("sh"), m.get("sh"))); | |
| 327 | + | |
| 328 | + keyMap.put(xl + "/" + str, m); | |
| 329 | + } | |
| 330 | + } | |
| 331 | + resList.remove(last); | |
| 332 | + resList.add(last); | |
| 333 | + } | |
| 334 | + | |
| 335 | + return resList; | |
| 336 | + } | |
| 337 | + | |
| 338 | +} | ... | ... |
src/main/java/com/bsth/service/calc/impl/CalcToolServiceImpl.java
| ... | ... | @@ -181,12 +181,12 @@ public class CalcToolServiceImpl implements CalcToolService { |
| 181 | 181 | if(i != l){ |
| 182 | 182 | CalcWaybill c1 = listCal.get(i); |
| 183 | 183 | CalcWaybill c2 = listCal.get(l); |
| 184 | - | |
| 185 | - c1.setSjyylc(c1.getSjyylc() + c2.getSjyylc()); | |
| 186 | - c1.setSjfyylc(c1.getSjfyylc() + c2.getSjfyylc()); | |
| 187 | - c1.setLjyylc(c1.getLjyylc() + c2.getLjyylc()); | |
| 188 | - c1.setLjfyylc(c1.getLjfyylc() + c2.getLjfyylc()); | |
| 189 | - | |
| 184 | +// | |
| 185 | +// c1.setSjyylc(c1.getSjyylc() + c2.getSjyylc()); | |
| 186 | +// c1.setSjfyylc(c1.getSjfyylc() + c2.getSjfyylc()); | |
| 187 | +// c1.setLjyylc(c1.getLjyylc() + c2.getLjyylc()); | |
| 188 | +// c1.setLjfyylc(c1.getLjfyylc() + c2.getLjfyylc()); | |
| 189 | +// | |
| 190 | 190 | listCal.remove(l); |
| 191 | 191 | } else { |
| 192 | 192 | break; | ... | ... |
src/main/java/com/bsth/service/geo_data/impl/GeoDataServiceImpl.java
| ... | ... | @@ -376,7 +376,7 @@ public class GeoDataServiceImpl implements GeoDataService { |
| 376 | 376 | lVersion.setLineCode(lineCode); |
| 377 | 377 | |
| 378 | 378 | //如果有待启用的版本,设置为历史版本 |
| 379 | - jdbcTemplate.update("update bsth_c_line_versions set `status`=0, start_date=null,end_date=null where line_code='"+lineCode+"' and `status`=2"); | |
| 379 | + jdbcTemplate.update("update bsth_c_line_versions set `status`=2, start_date=null,end_date=null where line_code='"+lineCode+"' and `status`=0"); | |
| 380 | 380 | |
| 381 | 381 | //入库线路版本 |
| 382 | 382 | jdbcTemplate.update("insert into bsth_c_line_versions(name, line, line_code, versions, start_date, create_date, update_date, remark,status, isupdate) " + | ... | ... |
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
| ... | ... | @@ -12,9 +12,11 @@ import com.bsth.data.pilot80.PilotReport; |
| 12 | 12 | import com.bsth.data.safe_driv.SafeDriv; |
| 13 | 13 | import com.bsth.data.safe_driv.SafeDrivCenter; |
| 14 | 14 | import com.bsth.data.schedule.DayOfSchedule; |
| 15 | +import com.bsth.entity.LineVersions; | |
| 15 | 16 | import com.bsth.entity.directive.D80; |
| 16 | 17 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 17 | 18 | import com.bsth.repository.CarParkRepository; |
| 19 | +import com.bsth.repository.LineVersionsRepository; | |
| 18 | 20 | import com.bsth.repository.StationRepository; |
| 19 | 21 | import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; |
| 20 | 22 | import com.bsth.service.gps.entity.*; |
| ... | ... | @@ -81,6 +83,10 @@ public class GpsServiceImpl implements GpsService { |
| 81 | 83 | @Autowired |
| 82 | 84 | ScheduleRealInfoRepository scheduleRealInfoRepository; |
| 83 | 85 | |
| 86 | + | |
| 87 | + @Autowired | |
| 88 | + LineVersionsRepository lineVersionsRepository; | |
| 89 | + | |
| 84 | 90 | // 历史gps查询 |
| 85 | 91 | @Override |
| 86 | 92 | public List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions) { |
| ... | ... | @@ -222,7 +228,35 @@ public class GpsServiceImpl implements GpsService { |
| 222 | 228 | //查询GPS数据 |
| 223 | 229 | JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); |
| 224 | 230 | List<Map<String, Object>> dataList = jdbcTemplate_ms.queryForList(sql.toString()); |
| 225 | - | |
| 231 | + if (!dataList.isEmpty()){ | |
| 232 | + | |
| 233 | + int lineId=Integer.parseInt(map_get_str(dataList.get(0), "LINE_ID")); | |
| 234 | + List<LineVersions> lvs=lineVersionsRepository.findBylineId(lineId); | |
| 235 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); | |
| 236 | + List<Map<String,Object>> vlist=new ArrayList<>(); | |
| 237 | + Map<String,Object> vMap; | |
| 238 | + if (lvs!=null&&!lvs.isEmpty()){ | |
| 239 | + for (LineVersions lv : lvs) { | |
| 240 | + vMap=new HashMap(); | |
| 241 | + Long sd=lv.getStartDate().getTime(); | |
| 242 | + Long ed=lv.getEndDate().getTime(); | |
| 243 | + if (sd<st&&et<ed){ | |
| 244 | + vMap.put("version",lv.getVersions()); | |
| 245 | + vMap.put("vtime","all"); | |
| 246 | + vlist.add(vMap); | |
| 247 | + }else if(sd<st&&et>ed&&st<ed){ | |
| 248 | + vMap.put("version",lv.getVersions()); | |
| 249 | + vMap.put("endTime",lv.getEndDate().getTime()); | |
| 250 | + vlist.add(vMap); | |
| 251 | + }else if(st<sd&&et<ed&&sd<et){ | |
| 252 | + vMap.put("version",lv.getVersions()); | |
| 253 | + vMap.put("startTime",lv.getStartDate().getTime()); | |
| 254 | + vlist.add(vMap); | |
| 255 | + } | |
| 256 | + } | |
| 257 | + } | |
| 258 | + rsMap.put("lineVerson",vlist); | |
| 259 | + } | |
| 226 | 260 | Float lon, lat; |
| 227 | 261 | Location bdLoc, gdLoc; |
| 228 | 262 | int inOutStop; |
| ... | ... | @@ -714,6 +748,7 @@ public class GpsServiceImpl implements GpsService { |
| 714 | 748 | rs.put("outboundList", outboundList); |
| 715 | 749 | rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000)); |
| 716 | 750 | rs.put("dcs", gpsMap.get("dcs")); |
| 751 | + rs.put("lineVerson",gpsMap.get("lineVerson")); | |
| 717 | 752 | } catch (Exception e) { |
| 718 | 753 | logger.error("", e); |
| 719 | 754 | rs.put("status", ResponseCode.ERROR); | ... | ... |
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
| ... | ... | @@ -505,7 +505,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 505 | 505 | } |
| 506 | 506 | |
| 507 | 507 | String key = schedule.getXlBm() + "/" + schedule.getXlName() + "/" + schedule.getQdzName() |
| 508 | - + "/" + schedule.getFgsName() + "/" + schedule.getFgsBm(); | |
| 508 | + + "/" + schedule.getFgsBm(); | |
| 509 | 509 | if(!keyMap.containsKey(key)) |
| 510 | 510 | keyMap.put(key, new ArrayList<ScheduleRealInfo>()); |
| 511 | 511 | keyMap.get(key).add(schedule); |
| ... | ... | @@ -618,8 +618,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 618 | 618 | tempMap.put("line", split[1]); |
| 619 | 619 | tempMap.put("qdz", split[2]); |
| 620 | 620 | tempMap.put("company", companyName); |
| 621 | - tempMap.put("subCompany", split[3]); | |
| 622 | - tempMap.put("fgsbm", split[4]); | |
| 621 | + tempMap.put("subCompany", subCompanyName); | |
| 622 | + tempMap.put("fgsbm", split[3]); | |
| 623 | 623 | long jhInterval = 0l; |
| 624 | 624 | long sjInterval = 0l; |
| 625 | 625 | for(Long i : fcsjs) |
| ... | ... | @@ -677,7 +677,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 677 | 677 | }else if(statu.equals("0")){ |
| 678 | 678 | List<Long> longList = new ArrayList<Long>(); |
| 679 | 679 | for(String key : keyList){ |
| 680 | - long xlBm = Long.valueOf(key.split("/")[4]) * 1000000l + Long.valueOf(key.split("/")[0]); | |
| 680 | + long xlBm = Long.valueOf(key.split("/")[3]) * 1000000l + Long.valueOf(key.split("/")[0]); | |
| 681 | 681 | if(!longList.contains(xlBm)) |
| 682 | 682 | longList.add(xlBm); |
| 683 | 683 | Collections.sort(longList); |
| ... | ... | @@ -685,7 +685,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 685 | 685 | for(long xlBm : longList){ |
| 686 | 686 | for(String key : keyList){ |
| 687 | 687 | String[] split = key.split("/"); |
| 688 | - long kl = Long.valueOf(split[4]) * 1000000l + Long.valueOf(split[0]); | |
| 688 | + long kl = Long.valueOf(split[3]) * 1000000l + Long.valueOf(split[0]); | |
| 689 | 689 | if(kl == xlBm){ |
| 690 | 690 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 691 | 691 | List<Long> fcsjs = new ArrayList<Long>(); |
| ... | ... | @@ -712,8 +712,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { |
| 712 | 712 | tempMap.put("line", split[1]); |
| 713 | 713 | tempMap.put("qdz", split[2]); |
| 714 | 714 | tempMap.put("company", companyName); |
| 715 | - tempMap.put("subCompany", split[3]); | |
| 716 | - tempMap.put("fgsbm", split[4]); | |
| 715 | + tempMap.put("subCompany", subCompanyName); | |
| 716 | + tempMap.put("fgsbm", split[3]); | |
| 717 | 717 | tempMap.put("jhInterval", fcsjs.size()>0?df.format((double)fcsj/fcsjs.size()):"/"); |
| 718 | 718 | tempMap.put("sjInterval", fcsjAs.size()>0?df.format((double)fcsjA/fcsjAs.size()):"/"); |
| 719 | 719 | tempMap.put("MaxInterval", fcsjAs.size()>0?fcsjAs.get(fcsjAs.size() - 1):"/"); | ... | ... |
src/main/java/com/bsth/service/impl/LineVersionsServiceImpl.java
| 1 | 1 | package com.bsth.service.impl; |
| 2 | 2 | |
| 3 | -import java.sql.PreparedStatement; | |
| 4 | -import java.sql.SQLException; | |
| 5 | -import java.text.ParseException; | |
| 6 | -import java.text.SimpleDateFormat; | |
| 7 | -import java.util.Date; | |
| 8 | -import java.util.HashMap; | |
| 9 | -import java.util.List; | |
| 10 | -import java.util.Map; | |
| 11 | - | |
| 12 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 13 | -import org.springframework.jdbc.core.BatchPreparedStatementSetter; | |
| 14 | -import org.springframework.jdbc.core.JdbcTemplate; | |
| 15 | -import org.springframework.stereotype.Service; | |
| 16 | -import org.springframework.transaction.annotation.Transactional; | |
| 17 | - | |
| 18 | 3 | import com.alibaba.fastjson.JSON; |
| 19 | 4 | import com.alibaba.fastjson.JSONArray; |
| 20 | 5 | import com.bsth.common.ResponseCode; |
| ... | ... | @@ -31,6 +16,20 @@ import com.bsth.repository.LsStationRouteRepository; |
| 31 | 16 | import com.bsth.service.LineVersionsService; |
| 32 | 17 | import com.bsth.service.SectionRouteService; |
| 33 | 18 | import com.bsth.service.StationRouteService; |
| 19 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 20 | +import org.springframework.jdbc.core.BatchPreparedStatementSetter; | |
| 21 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 22 | +import org.springframework.stereotype.Service; | |
| 23 | +import org.springframework.transaction.annotation.Transactional; | |
| 24 | + | |
| 25 | +import java.sql.PreparedStatement; | |
| 26 | +import java.sql.SQLException; | |
| 27 | +import java.text.ParseException; | |
| 28 | +import java.text.SimpleDateFormat; | |
| 29 | +import java.util.Date; | |
| 30 | +import java.util.HashMap; | |
| 31 | +import java.util.List; | |
| 32 | +import java.util.Map; | |
| 34 | 33 | |
| 35 | 34 | /** |
| 36 | 35 | * |
| ... | ... | @@ -97,8 +96,10 @@ public class LineVersionsServiceImpl extends BaseServiceImpl<LineVersions, Integ |
| 97 | 96 | int statu = repository.update(id,line,lineCode,new java.sql.Date(startDate.getTime()), |
| 98 | 97 | new java.sql.Date(endDate.getTime()),versions,status,remark); |
| 99 | 98 | LineVersions upLineVersions = repository.findBylineIdAndVersions(line.getId(),versions); |
| 100 | - upLineVersions.setEndDate(new java.sql.Date(startDate.getTime())); | |
| 101 | - repository.save(upLineVersions); | |
| 99 | + if(upLineVersions != null){ | |
| 100 | + upLineVersions.setEndDate(new java.sql.Date(startDate.getTime())); | |
| 101 | + repository.save(upLineVersions); | |
| 102 | + } | |
| 102 | 103 | if (statu==1) { |
| 103 | 104 | resultMap.put("status", ResponseCode.SUCCESS); |
| 104 | 105 | } else { | ... | ... |
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
| 1 | 1 | package com.bsth.service.impl; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.common.ResponseCode; |
| 4 | -import com.bsth.entity.*; | |
| 4 | +import com.bsth.entity.Line; | |
| 5 | +import com.bsth.entity.LsStationRoute; | |
| 6 | +import com.bsth.entity.Station; | |
| 7 | +import com.bsth.entity.StationRoute; | |
| 8 | +import com.bsth.entity.StationRouteCache; | |
| 5 | 9 | import com.bsth.entity.search.CustomerSpecs; |
| 6 | -import com.bsth.repository.*; | |
| 10 | +import com.bsth.repository.LineRepository; | |
| 11 | +import com.bsth.repository.LsStationRouteRepository; | |
| 12 | +import com.bsth.repository.SectionRouteRepository; | |
| 13 | +import com.bsth.repository.StationRepository; | |
| 14 | +import com.bsth.repository.StationRouteCacheRepository; | |
| 15 | +import com.bsth.repository.StationRouteRepository; | |
| 7 | 16 | import com.bsth.service.StationRouteService; |
| 8 | 17 | import com.bsth.util.ExcelUtil; |
| 9 | 18 | import com.bsth.util.FTPClientUtils; |
| 10 | -import com.bsth.util.PackTarGZUtils; | |
| 11 | 19 | import com.bsth.util.Geo.GeoUtils; |
| 12 | 20 | import com.bsth.util.Geo.Point; |
| 21 | +import com.bsth.util.PackTarGZUtils; | |
| 13 | 22 | import com.bsth.util.db.DBUtils_MS; |
| 14 | 23 | import com.google.common.base.Splitter; |
| 15 | 24 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -18,13 +27,17 @@ import org.springframework.data.domain.Sort.Direction; |
| 18 | 27 | import org.springframework.stereotype.Service; |
| 19 | 28 | import org.springframework.transaction.annotation.Transactional; |
| 20 | 29 | |
| 30 | +import javax.servlet.http.HttpServletResponse; | |
| 21 | 31 | import java.io.ByteArrayInputStream; |
| 22 | 32 | import java.io.File; |
| 23 | 33 | import java.io.InputStream; |
| 24 | 34 | import java.text.DecimalFormat; |
| 25 | -import java.util.*; | |
| 26 | - | |
| 27 | -import javax.servlet.http.HttpServletResponse; | |
| 35 | +import java.util.ArrayList; | |
| 36 | +import java.util.HashMap; | |
| 37 | +import java.util.Iterator; | |
| 38 | +import java.util.List; | |
| 39 | +import java.util.Map; | |
| 40 | +import java.util.Properties; | |
| 28 | 41 | |
| 29 | 42 | /** |
| 30 | 43 | * |
| ... | ... | @@ -93,7 +106,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 93 | 106 | public Map<String, Object> getSectionRouteExport(Integer id, HttpServletResponse resp) { |
| 94 | 107 | Map<String, Object> resultMap = new HashMap<String, Object>(); |
| 95 | 108 | try { |
| 96 | - // List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>(); | |
| 109 | + // List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>(); | |
| 97 | 110 | Map<String,Object> resultExcel = new HashMap<String,Object>();//导出参数的对象 |
| 98 | 111 | /* 添加表头*/ |
| 99 | 112 | List<String> title = new ArrayList<String>(); |
| ... | ... | @@ -113,10 +126,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 113 | 126 | if(strtionList == null){ |
| 114 | 127 | logger.info("没有数据导,出用户信息失败!"); |
| 115 | 128 | } else { |
| 116 | - | |
| 129 | + | |
| 117 | 130 | for (int i = 0; i < strtionList.size(); i++) { |
| 118 | 131 | StationRoute station = strtionList.get(i); |
| 119 | - | |
| 132 | + | |
| 120 | 133 | List<String> varList = new ArrayList<String>(); |
| 121 | 134 | varList.add(station.getLine().getId().toString()); |
| 122 | 135 | varList.add(station.getDirections().toString()); | ... | ... |
src/main/java/com/bsth/service/impl/StationServiceImpl.java
| ... | ... | @@ -1372,8 +1372,11 @@ public class StationServiceImpl extends BaseServiceImpl<Station, Integer> implem |
| 1372 | 1372 | // 匹配到了用数据库中的点替换 |
| 1373 | 1373 | if (GeoUtils.isPointInCircle(point, circle)) { |
| 1374 | 1374 | map.put("name", s.getStationName().toString()); |
| 1375 | - map.put("potion_lng", points[0]); | |
| 1376 | - map.put("potion_lat", points[1]); | |
| 1375 | + // 匹配到站点后用这个站点的名字,但是使用gps点作为中心点 | |
| 1376 | +// map.put("potion_lng", points[0]); | |
| 1377 | +// map.put("potion_lat", points[1]); | |
| 1378 | + map.put("potion_lng", lon); | |
| 1379 | + map.put("potion_lat", lat); | |
| 1377 | 1380 | map.put("isHave", "true"); |
| 1378 | 1381 | map.put("id", s.getId()); |
| 1379 | 1382 | isMatch = true; | ... | ... |
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
| ... | ... | @@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory; |
| 32 | 32 | import org.springframework.beans.factory.annotation.Autowired; |
| 33 | 33 | import org.springframework.data.domain.Sort; |
| 34 | 34 | import org.springframework.data.domain.Sort.Direction; |
| 35 | +import org.springframework.security.core.context.SecurityContextHolder; | |
| 35 | 36 | import org.springframework.stereotype.Service; |
| 36 | 37 | |
| 37 | 38 | import java.io.*; |
| ... | ... | @@ -65,6 +66,10 @@ import java.util.regex.Pattern; |
| 65 | 66 | public class TrafficManageServiceImpl implements TrafficManageService{ |
| 66 | 67 | |
| 67 | 68 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 69 | + // 运管处上传日志类型 | |
| 70 | + public static final String UPLOAD_TYPE_SKB = "1"; | |
| 71 | + public static final String UPLOAD_TYPE_XL = "2"; | |
| 72 | + public static final String UPLOAD_TYPE_LD = "3"; | |
| 68 | 73 | |
| 69 | 74 | // 线路repository |
| 70 | 75 | @Autowired |
| ... | ... | @@ -170,7 +175,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 170 | 175 | @Override |
| 171 | 176 | public String setXL(String ids) { |
| 172 | 177 | String result = "failure"; |
| 173 | - StringBuffer sBuffer = new StringBuffer(); | |
| 178 | + String xml ; | |
| 174 | 179 | String[] idArray = ids.split(","); |
| 175 | 180 | try { |
| 176 | 181 | for (String id : idArray) { |
| ... | ... | @@ -185,12 +190,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 185 | 190 | if(line == null){ |
| 186 | 191 | continue; |
| 187 | 192 | } |
| 188 | - List<StationRoute> upStationsList ;// 上行站点路由集 | |
| 189 | - List<StationRoute> downStationsList;// 下行站点路由集 | |
| 190 | - List<Object[]> downPointList;// 下行站点集 | |
| 191 | - List<Object[]> upPointList;// 上行站点集 | |
| 192 | - sBuffer.append("<XLs>"); | |
| 193 | - sBuffer.append("<XL>"); | |
| 194 | 193 | if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){ |
| 195 | 194 | return result; |
| 196 | 195 | } |
| ... | ... | @@ -200,56 +199,25 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 200 | 199 | if(lineInformation == null){ |
| 201 | 200 | continue; |
| 202 | 201 | } |
| 203 | - sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(line.getId())).append("</XLBM>"); | |
| 204 | - sBuffer.append("<XLMC>").append(line.getName()).append("</XLMC>"); | |
| 205 | - sBuffer.append("<QDZ>").append(line.getStartStationName()).append("</QDZ>"); | |
| 206 | - sBuffer.append("<ZDZ>").append(line.getEndStationName()).append("</ZDZ>"); | |
| 207 | - sBuffer.append("<QZLC>").append(lineInformation.getUpMileage()).append("</QZLC>"); | |
| 208 | - sBuffer.append("<ZQLC>").append(lineInformation.getDownMileage()).append("</ZQLC>"); | |
| 209 | - sBuffer.append("<XLGH>").append(line.getLinePlayType()).append("</XLGH>"); | |
| 210 | - sBuffer.append("<UPDATE_DATE>").append(sdfnyr.format(new Date())).append("</UPDATE_DATE>"); | |
| 211 | - | |
| 212 | - // 循环添加站点信息 | |
| 213 | - sBuffer.append("<StationList>"); | |
| 214 | - | |
| 215 | - // 先查上行 | |
| 216 | - upStationsList = stationRouteRepository.findByLine(line.getLineCode(), 0); | |
| 217 | - Map<String, Integer> stationNumMap = getStationName2YgcNumberMap(line.getLineCode()); | |
| 218 | - int startId = 1; | |
| 219 | - startId = packagStationXml(upStationsList, sBuffer, startId,stationNumMap); | |
| 220 | - // 环线不查下行 | |
| 221 | - if(line.getLinePlayType() != 1){ | |
| 222 | - // 再查下行 | |
| 223 | - downStationsList = stationRouteRepository.findByLine(line.getLineCode(), 1); | |
| 224 | - packagStationXml(downStationsList, sBuffer, startId,stationNumMap); | |
| 225 | - } | |
| 226 | - sBuffer.append("</StationList>"); | |
| 227 | - | |
| 228 | - // 循环添加站点点位信息 | |
| 229 | - sBuffer.append("<LinePointList>"); | |
| 230 | - upPointList = sectionRepository.getSectionDirByLineId(line.getId(),0); | |
| 231 | - startId = 1; | |
| 232 | - startId = packagStationPointXml(upPointList, sBuffer, startId); | |
| 233 | - // 环线不查下行 | |
| 234 | - if(line.getLinePlayType() != 1){ | |
| 235 | - downPointList = sectionRepository.getSectionDirByLineId(line.getId(),1); | |
| 236 | - packagStationPointXml(downPointList, sBuffer, startId); | |
| 237 | - } | |
| 238 | - sBuffer.append("</LinePointList>"); | |
| 239 | - sBuffer.append("</XL>"); | |
| 240 | - sBuffer.append("</XLs>"); | |
| 241 | - // 临时添加,后面删除 | |
| 242 | - if(sBuffer.indexOf("<ZDXH>0</ZDXH>") != -1){ | |
| 202 | + // 取得封装好的xml | |
| 203 | + xml = getSetXlXml(line,lineInformation); | |
| 204 | + // 站点序号不能为0,如果为0,则返回错误 | |
| 205 | + if(xml.indexOf("<ZDXH>0</ZDXH>") != -1){ | |
| 243 | 206 | return "0"; |
| 244 | 207 | } |
| 208 | + String state;// 是否上传成功 | |
| 245 | 209 | // 调用上传方法 |
| 246 | - if(getWebServiceSoapUp().setXL(userNameUp,passwordUp,sBuffer.toString()).isSuccess()){ | |
| 210 | + if(getWebServiceSoapUp().setXL(userNameUp,passwordUp,xml).isSuccess()){ | |
| 247 | 211 | result = "success"; |
| 212 | + state = "1"; | |
| 248 | 213 | }else{ |
| 249 | 214 | result = "failure"; |
| 215 | + state = "0"; | |
| 250 | 216 | } |
| 251 | - logger.info("setXL:"+sBuffer.toString()); | |
| 217 | + logger.info("setXL:"+xml); | |
| 252 | 218 | logger.info("setXL:"+result); |
| 219 | + // 保存运管处上传记录 | |
| 220 | + saveYgcUploadLog(line,xml,TrafficManageServiceImpl.UPLOAD_TYPE_XL,state); | |
| 253 | 221 | } |
| 254 | 222 | } catch (Exception e) { |
| 255 | 223 | logger.error("setXL:",e); |
| ... | ... | @@ -422,10 +390,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 422 | 390 | HashMap logXlbmMap = new HashMap(); |
| 423 | 391 | Results results = null; |
| 424 | 392 | String str = "",xlbm; |
| 393 | + // 保存线路(运管处日志用) | |
| 394 | + Map<String , Line> logLineMap = null; | |
| 425 | 395 | try { |
| 426 | 396 | int counter = 0; // 计数器 |
| 427 | 397 | int per = 10; // 每几条线路上传一次路单 |
| 428 | - | |
| 429 | 398 | List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date); |
| 430 | 399 | List<Map<String,Object>> listGroup = scheduleRealInfoRepository.setLDGroup(date); |
| 431 | 400 | Map<String,Object> map = new HashMap(); |
| ... | ... | @@ -444,13 +413,15 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 444 | 413 | if(counter % per == 0){ |
| 445 | 414 | sf = new StringBuffer(); |
| 446 | 415 | sf.append("<DLDS>"); |
| 416 | + logLineMap = new HashMap<>(); | |
| 447 | 417 | } |
| 448 | 418 | counter ++; |
| 449 | 419 | xlbm = BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm")+""); |
| 450 | - // 保存一次路单的线路编码,用于发送邮箱 | |
| 451 | - if(logXlbmMap.get(xlbm) == null){ | |
| 420 | + // 保存一线次路单的路编码,用于发送邮箱 | |
| 421 | + if(xlbm != null && !xlbm.equals("null") && logXlbmMap.get(xlbm) == null){ | |
| 452 | 422 | logXlbmMap.put(xlbm,xlbm); |
| 453 | 423 | } |
| 424 | + logLineMap.put(line.getLineCode(),line); | |
| 454 | 425 | sf.append("<DLD>"); |
| 455 | 426 | sf.append("<RQ>"+date+"</RQ>"); |
| 456 | 427 | sf.append("<XLBM>"+xlbm+"</XLBM>"); |
| ... | ... | @@ -513,7 +484,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 513 | 484 | str = sf.toString().replace("'","");// 去掉'号 |
| 514 | 485 | results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str)); |
| 515 | 486 | // 记录日志 |
| 516 | - result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str); | |
| 487 | + result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str,logLineMap); | |
| 517 | 488 | } |
| 518 | 489 | } |
| 519 | 490 | // 每per条线路上传后剩下的数据再上传 |
| ... | ... | @@ -521,9 +492,9 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 521 | 492 | sf.append("</DLDS>"); |
| 522 | 493 | str = sf.toString().replace("'","");// 去掉'号 |
| 523 | 494 | results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str)); |
| 495 | + // 记录日志 | |
| 496 | + result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str,logLineMap); | |
| 524 | 497 | } |
| 525 | - // 记录日志 | |
| 526 | - result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str); | |
| 527 | 498 | } catch (Exception e) { |
| 528 | 499 | logger.error("setLD:",e); |
| 529 | 500 | logFailure.append(e).append("<br/>"); |
| ... | ... | @@ -558,21 +529,26 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 558 | 529 | * @param str |
| 559 | 530 | */ |
| 560 | 531 | private String logRecord(Results results,HashMap logXlbmMap,HashMap logXlbmSuccessMap,HashMap logXlbmFailureMap,StringBuffer logSuccess, |
| 561 | - StringBuffer logFailure,String str){ | |
| 532 | + StringBuffer logFailure,String str,Map<String ,Line> logLineMap){ | |
| 562 | 533 | String result = "failure"; |
| 534 | + String state; | |
| 563 | 535 | // 记录日志 |
| 564 | 536 | if(results != null){ |
| 565 | 537 | if(results.isSuccess()){// 上传成功 |
| 566 | 538 | // 把上线成功的线路编码放入 logXlbmSuccessMap,并记录logSuccess |
| 567 | 539 | countSuccess += fillMailXlbmMap(logXlbmMap,logXlbmSuccessMap,logSuccess); |
| 568 | 540 | result = "success"; |
| 541 | + state = "1"; | |
| 569 | 542 | }else{// 上传失败 |
| 570 | 543 | // 把上线失败的线路编码放入 logXlbmFailureMap,并记录logFailure |
| 571 | 544 | countFailure += fillMailXlbmMap(logXlbmMap,logXlbmFailureMap,logFailure); |
| 572 | 545 | result = "failure"; |
| 546 | + state = "0"; | |
| 573 | 547 | } |
| 574 | 548 | logger.info("setLD:"+str); |
| 575 | 549 | logger.info("setLD:"+result); |
| 550 | + // 保存运管处上传记录 | |
| 551 | + saveYgcUploadLog(logLineMap,str,TrafficManageServiceImpl.UPLOAD_TYPE_LD,state); | |
| 576 | 552 | results = null; |
| 577 | 553 | logXlbmMap = new HashMap(); |
| 578 | 554 | } |
| ... | ... | @@ -946,7 +922,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 946 | 922 | @Override |
| 947 | 923 | public String setSKB(String ids) { |
| 948 | 924 | String result = "上传失败,"; |
| 949 | - StringBuffer sBuffer = new StringBuffer(); | |
| 925 | + StringBuffer sBuffer = new StringBuffer("<SKBs>"); | |
| 950 | 926 | DecimalFormat df = new DecimalFormat("######0.000"); |
| 951 | 927 | Map<String,String> lsStationCode2NameMap = null; |
| 952 | 928 | Map<String, Integer> lsStationName2YgcNumber = null; |
| ... | ... | @@ -962,7 +938,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 962 | 938 | LineInformation lineInformation; |
| 963 | 939 | Iterator<TTInfoDetail> ttInfoDetailIterator; |
| 964 | 940 | HashMap<String,Object> param ; |
| 965 | - sBuffer.append("<SKBs>"); | |
| 966 | 941 | HashMap<String,String> paramMap; |
| 967 | 942 | HashMap<String,String> otherMap = new HashMap<>(); |
| 968 | 943 | // 线路编码、周几执行、发车站点名称、发车站点序号、到达站点名称、到达站点序号 |
| ... | ... | @@ -1113,29 +1088,103 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 1113 | 1088 | logger.info("setSKB:"+"ttinfoId:"+ttinfoId+";当前站点版本号:"+lineVersion+";查询历史站点路由:"+lsStationCode2NameMap+";查询历史站点编号:"+lsStationName2YgcNumber); |
| 1114 | 1089 | } |
| 1115 | 1090 | sBuffer.append("</SKBs>"); |
| 1116 | - if(ssop.setSKB(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){ | |
| 1117 | - result = "上传成功"; | |
| 1118 | - SKBUploadLogger skbUploadLogger ; | |
| 1119 | - SysUser user = SecurityUtils.getCurrentUser(); | |
| 1120 | - // 保存时刻表上传记录 | |
| 1121 | - for(TTInfo ttInfo1 : ttinfoList){ | |
| 1122 | - skbUploadLogger = new SKBUploadLogger(); | |
| 1123 | - skbUploadLogger.setTtInfo(ttInfo1); | |
| 1124 | - skbUploadLogger.setUser(user); | |
| 1125 | - skbUploadLoggerRepository.save(skbUploadLogger); | |
| 1126 | - } | |
| 1127 | - } | |
| 1091 | + String state;// 是否上传成功 | |
| 1092 | + if(ssop.setSKB(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){ | |
| 1093 | + result = "上传成功"; | |
| 1094 | + state = "1"; | |
| 1095 | + }else{// 上传失败 | |
| 1096 | + result = "上传失败"; | |
| 1097 | + state = "0"; | |
| 1098 | + } | |
| 1099 | + // 保存运管处上传记录 | |
| 1100 | + saveYgcUploadLog(ttinfoList,sBuffer.toString(),TrafficManageServiceImpl.UPLOAD_TYPE_SKB,state); | |
| 1128 | 1101 | } catch (Exception e) { |
| 1129 | 1102 | logger.error("setSKB:", e); |
| 1130 | 1103 | e.printStackTrace(); |
| 1131 | 1104 | }finally{ |
| 1132 | - logger.info("setSKB:"+sBuffer.toString()); | |
| 1133 | - logger.info("setSKB:"+result); | |
| 1105 | + logger.info("setSKB:"+sBuffer.toString()); | |
| 1106 | + logger.info("setSKB:"+result); | |
| 1134 | 1107 | } |
| 1135 | 1108 | return result; |
| 1136 | 1109 | } |
| 1137 | 1110 | |
| 1138 | 1111 | /** |
| 1112 | + * 保存上传运管处的日志 | |
| 1113 | + * @param obj 参数 | |
| 1114 | + * @param type 日志类型 | |
| 1115 | + * @param xml 上传参数 | |
| 1116 | + */ | |
| 1117 | + private void saveYgcUploadLog(Object obj,String xml,String type,String state){ | |
| 1118 | + SKBUploadLogger skbUploadLogger = new SKBUploadLogger(); | |
| 1119 | + SysUser user; | |
| 1120 | + // 如果不是人为上传,SysUser则为空,设置上传人员为管理员 | |
| 1121 | + if(SecurityContextHolder.getContext() == null || SecurityContextHolder.getContext().getAuthentication() == null){ | |
| 1122 | + user = new SysUser(); | |
| 1123 | + user.setId(1); | |
| 1124 | + }else{// 获取上传人员 | |
| 1125 | + user = SecurityUtils.getCurrentUser(); | |
| 1126 | + } | |
| 1127 | + // 最大的字符长度 | |
| 1128 | + int maxLength = 60000; | |
| 1129 | + int cutLength = 50000;// 需要截取的字符长度 | |
| 1130 | + String xml_sub = null; | |
| 1131 | + skbUploadLogger.setType(type);// 设置类型 | |
| 1132 | + // 判断xml是否超长,如果超长,则截取 | |
| 1133 | + if(xml != null && xml.length() > maxLength){ | |
| 1134 | + int xmlLength = xml.length(); | |
| 1135 | + int cutCount = xmlLength / cutLength + (xmlLength % cutLength > 0 ? 1 : 0); | |
| 1136 | + if(cutCount > 2){ | |
| 1137 | + xml = "由于上传参数内容超长,请查看服务器的系统日志"; | |
| 1138 | + }else if(cutCount == 2){ | |
| 1139 | + xml_sub =xml.substring(cutLength); | |
| 1140 | + xml = xml.substring(0,cutLength); | |
| 1141 | + }else{ | |
| 1142 | + // 不做处理 | |
| 1143 | + } | |
| 1144 | + } | |
| 1145 | + skbUploadLogger.setUploadXml(xml);// 上传的参数 | |
| 1146 | + skbUploadLogger.setUploadXmlSub(xml_sub); | |
| 1147 | + skbUploadLogger.setState(state);// 状态:是否成功 | |
| 1148 | + skbUploadLogger.setUser(user); | |
| 1149 | + // 时刻表 | |
| 1150 | + if(type.equals(TrafficManageServiceImpl.UPLOAD_TYPE_SKB)){ | |
| 1151 | + List<TTInfo> ttInfoList = (List<TTInfo>)obj; | |
| 1152 | + String name = ""; | |
| 1153 | + Line line = null; | |
| 1154 | + for(TTInfo ttInfo : ttInfoList){ | |
| 1155 | + name += ttInfo.getName() + " "; | |
| 1156 | + line = ttInfo.getXl(); | |
| 1157 | + } | |
| 1158 | + skbUploadLogger.setLine(line); | |
| 1159 | + skbUploadLogger.setUser(user); | |
| 1160 | + skbUploadLogger.setName(name); | |
| 1161 | + skbUploadLoggerRepository.save(skbUploadLogger); | |
| 1162 | + }else{ | |
| 1163 | + if(type.equals(TrafficManageServiceImpl.UPLOAD_TYPE_XL)){ | |
| 1164 | + Line line = (Line) obj; | |
| 1165 | + String name = line.getName() + "线路停靠站上传"; | |
| 1166 | + skbUploadLogger.setLine(line); | |
| 1167 | + skbUploadLogger.setName(name); | |
| 1168 | + skbUploadLoggerRepository.save(skbUploadLogger); | |
| 1169 | + }else if(type.equals(TrafficManageServiceImpl.UPLOAD_TYPE_LD)){ | |
| 1170 | + Map<String ,Line> logLineMap = (Map<String ,Line> )obj; | |
| 1171 | + for (String key : logLineMap.keySet()) { | |
| 1172 | + Line line = logLineMap.get(key); | |
| 1173 | + String name = line.getName() + "路单上传"; | |
| 1174 | + skbUploadLogger = new SKBUploadLogger(); | |
| 1175 | + skbUploadLogger.setType(type);// 设置类型 | |
| 1176 | + skbUploadLogger.setUploadXml(xml);// 上传的参数 | |
| 1177 | + skbUploadLogger.setUploadXmlSub(xml_sub); | |
| 1178 | + skbUploadLogger.setState(state);// 状态:是否成功 | |
| 1179 | + skbUploadLogger.setUser(user); | |
| 1180 | + skbUploadLogger.setLine(line); | |
| 1181 | + skbUploadLogger.setName(name); | |
| 1182 | + skbUploadLoggerRepository.save(skbUploadLogger); | |
| 1183 | + } | |
| 1184 | + } | |
| 1185 | + } | |
| 1186 | + } | |
| 1187 | + /** | |
| 1139 | 1188 | * 上传线路人员车辆配置信息 |
| 1140 | 1189 | */ |
| 1141 | 1190 | @Override |
| ... | ... | @@ -1640,4 +1689,50 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 1640 | 1689 | } |
| 1641 | 1690 | return tempStationName2YgcNumber; |
| 1642 | 1691 | } |
| 1692 | + | |
| 1693 | + private String getSetXlXml(Line line,LineInformation lineInformation){ | |
| 1694 | + StringBuffer sBuffer = new StringBuffer(); | |
| 1695 | + List<StationRoute> upStationsList ;// 上行站点路由集 | |
| 1696 | + List<StationRoute> downStationsList;// 下行站点路由集 | |
| 1697 | + List<Object[]> downPointList;// 下行站点集 | |
| 1698 | + List<Object[]> upPointList;// 上行站点集 | |
| 1699 | + sBuffer.append("<XLs>"); | |
| 1700 | + sBuffer.append("<XL>"); | |
| 1701 | + sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(line.getId())).append("</XLBM>"); | |
| 1702 | + sBuffer.append("<XLMC>").append(line.getName()).append("</XLMC>"); | |
| 1703 | + sBuffer.append("<QDZ>").append(line.getStartStationName()).append("</QDZ>"); | |
| 1704 | + sBuffer.append("<ZDZ>").append(line.getEndStationName()).append("</ZDZ>"); | |
| 1705 | + sBuffer.append("<QZLC>").append(lineInformation.getUpMileage()).append("</QZLC>"); | |
| 1706 | + sBuffer.append("<ZQLC>").append(lineInformation.getDownMileage()).append("</ZQLC>"); | |
| 1707 | + sBuffer.append("<XLGH>").append(line.getLinePlayType()).append("</XLGH>"); | |
| 1708 | + sBuffer.append("<UPDATE_DATE>").append(sdfnyr.format(new Date())).append("</UPDATE_DATE>"); | |
| 1709 | + // 循环添加站点信息 | |
| 1710 | + sBuffer.append("<StationList>"); | |
| 1711 | + // 先查上行 | |
| 1712 | + upStationsList = stationRouteRepository.findByLine(line.getLineCode(), 0); | |
| 1713 | + Map<String, Integer> stationNumMap = getStationName2YgcNumberMap(line.getLineCode()); | |
| 1714 | + int startId = 1; | |
| 1715 | + startId = packagStationXml(upStationsList, sBuffer, startId,stationNumMap); | |
| 1716 | + // 环线不查下行 | |
| 1717 | + if(line.getLinePlayType() != 1){ | |
| 1718 | + // 再查下行 | |
| 1719 | + downStationsList = stationRouteRepository.findByLine(line.getLineCode(), 1); | |
| 1720 | + packagStationXml(downStationsList, sBuffer, startId,stationNumMap); | |
| 1721 | + } | |
| 1722 | + sBuffer.append("</StationList>"); | |
| 1723 | + // 循环添加站点点位信息 | |
| 1724 | + sBuffer.append("<LinePointList>"); | |
| 1725 | + upPointList = sectionRepository.getSectionDirByLineId(line.getId(),0); | |
| 1726 | + startId = 1; | |
| 1727 | + startId = packagStationPointXml(upPointList, sBuffer, startId); | |
| 1728 | + // 环线不查下行 | |
| 1729 | + if(line.getLinePlayType() != 1){ | |
| 1730 | + downPointList = sectionRepository.getSectionDirByLineId(line.getId(),1); | |
| 1731 | + packagStationPointXml(downPointList, sBuffer, startId); | |
| 1732 | + } | |
| 1733 | + sBuffer.append("</LinePointList>"); | |
| 1734 | + sBuffer.append("</XL>"); | |
| 1735 | + sBuffer.append("</XLs>"); | |
| 1736 | + return sBuffer.toString(); | |
| 1737 | + } | |
| 1643 | 1738 | } | ... | ... |
src/main/java/com/bsth/service/oil/impl/DlbServiceImpl.java
| ... | ... | @@ -662,82 +662,97 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS |
| 662 | 662 | @Override |
| 663 | 663 | public List<Dlb> listDlb(Map<String, Object> map) { |
| 664 | 664 | // TODO Auto-generated method stub |
| 665 | - List<Dlb> listDlb=new ArrayList<Dlb>(); | |
| 666 | - List<String> stringList=new ArrayList<String>(); | |
| 667 | - String rq=map.get("rq").toString(); | |
| 668 | - String gsbm=map.get("ssgsdm_like").toString(); | |
| 669 | - String fgsbm=map.get("fgsdm_like").toString(); | |
| 670 | - String xlbm=map.get("xlbm_like").toString().trim(); | |
| 671 | - String nbbm=map.get("nbbm_eq").toString(); | |
| 672 | - String sxtj=map.get("sxtj").toString(); | |
| 673 | - | |
| 674 | - if(nbbm.trim()!=""){ | |
| 675 | - stringList.add(nbbm); | |
| 676 | - listDlb=repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 677 | - }else{ | |
| 678 | - //全部 | |
| 679 | - if(sxtj.equals("0")){ | |
| 680 | - List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm); | |
| 681 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 682 | - String clbm=objectLists.get(i)[0].toString(); | |
| 683 | - stringList.add(clbm); | |
| 684 | - } | |
| 685 | - if(stringList.size()>0){ | |
| 686 | - listDlb=repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 687 | - } | |
| 688 | - }else{ | |
| 689 | - List<Object[]> objectLists; | |
| 690 | - if(sxtj.equals("3")){ | |
| 691 | - //有加油没里程 | |
| 692 | - objectLists=repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 665 | + List<Dlb> listDlb = new ArrayList<Dlb>(); | |
| 666 | + List<String> stringList = new ArrayList<String>(); | |
| 667 | + String rq = map.get("rq").toString(); | |
| 668 | + String gsbm = map.get("ssgsdm_like").toString(); | |
| 669 | + String fgsbm = map.get("fgsdm_like").toString(); | |
| 670 | + String xlbm = map.get("xlbm_like").toString().trim(); | |
| 671 | + String nbbm = map.get("nbbm_eq").toString(); | |
| 672 | + String sxtj = map.get("sxtj").toString(); | |
| 673 | + String type = map.get("type").toString(); | |
| 674 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 675 | + try { | |
| 676 | + if (nbbm.trim() != "") { | |
| 677 | + stringList.add(nbbm); | |
| 678 | + if (type.equals("1")) | |
| 679 | + listDlb = repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 680 | + else | |
| 681 | + listDlb = repository.listDlb_s(sdf.parse(rq + " 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 682 | + | |
| 683 | + } else { | |
| 684 | + // 全部 | |
| 685 | + if (sxtj.equals("0")) { | |
| 686 | + List<Object[]> objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 693 | 687 | for (int i = 0; i < objectLists.size(); i++) { |
| 694 | - String clbm=objectLists.get(i)[0].toString(); | |
| 695 | - double jzl=Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 696 | - double zlc=Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 697 | - if(jzl>0 && zlc<=0){ | |
| 698 | - stringList.add(clbm); | |
| 699 | - } | |
| 700 | - | |
| 688 | + String clbm = objectLists.get(i)[0].toString(); | |
| 689 | + stringList.add(clbm); | |
| 701 | 690 | } |
| 702 | - | |
| 703 | - }else if(sxtj.equals("4")){ | |
| 704 | - //有里程没加油 | |
| 705 | - objectLists=repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 706 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 707 | - String clbm=objectLists.get(i)[0].toString(); | |
| 708 | - double jzl=Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 709 | - double zlc=Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 710 | - if(zlc>0 && jzl<=0){ | |
| 711 | - stringList.add(clbm); | |
| 712 | - } | |
| 713 | - | |
| 691 | + if (stringList.size() > 0) { | |
| 692 | + if (type.equals("1")) | |
| 693 | + listDlb = repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 694 | + else | |
| 695 | + listDlb = repository.listDlb_s(sdf.parse(rq + " 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 714 | 696 | } |
| 715 | - }else{ | |
| 716 | - objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm); | |
| 717 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 718 | - String clbm=objectLists.get(i)[0].toString(); | |
| 719 | - int cs=Integer.parseInt(objectLists.get(i)[1].toString()); | |
| 720 | - //一车一单 | |
| 721 | - if(sxtj.equals("1")){ | |
| 722 | - if(cs==1){ | |
| 697 | + } else { | |
| 698 | + List<Object[]> objectLists; | |
| 699 | + if (sxtj.equals("3")) { | |
| 700 | + // 有加油没里程 | |
| 701 | + objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 702 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 703 | + String clbm = objectLists.get(i)[0].toString(); | |
| 704 | + double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 705 | + double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 706 | + if (jzl > 0 && zlc <= 0) { | |
| 723 | 707 | stringList.add(clbm); |
| 724 | 708 | } |
| 725 | - } | |
| 726 | - //一车多单 | |
| 727 | - if(sxtj.equals("2")){ | |
| 728 | - if(cs>1){ | |
| 709 | + | |
| 710 | + } | |
| 711 | + | |
| 712 | + } else if (sxtj.equals("4")) { | |
| 713 | + // 有里程没加油 | |
| 714 | + objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 715 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 716 | + String clbm = objectLists.get(i)[0].toString(); | |
| 717 | + double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 718 | + double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 719 | + if (zlc > 0 && jzl <= 0) { | |
| 729 | 720 | stringList.add(clbm); |
| 730 | 721 | } |
| 722 | + | |
| 723 | + } | |
| 724 | + } else { | |
| 725 | + objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 726 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 727 | + String clbm = objectLists.get(i)[0].toString(); | |
| 728 | + int cs = Integer.parseInt(objectLists.get(i)[1].toString()); | |
| 729 | + // 一车一单 | |
| 730 | + if (sxtj.equals("1")) { | |
| 731 | + if (cs == 1) { | |
| 732 | + stringList.add(clbm); | |
| 733 | + } | |
| 734 | + } | |
| 735 | + // 一车多单 | |
| 736 | + if (sxtj.equals("2")) { | |
| 737 | + if (cs > 1) { | |
| 738 | + stringList.add(clbm); | |
| 739 | + } | |
| 740 | + } | |
| 731 | 741 | } |
| 732 | 742 | } |
| 733 | - } | |
| 734 | - | |
| 735 | - if(stringList.size()>0){ | |
| 736 | - listDlb=repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 743 | + | |
| 744 | + if (stringList.size() > 0) { | |
| 745 | + if (type.equals("1")) | |
| 746 | + listDlb = repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 747 | + else | |
| 748 | + listDlb = repository.listDlb_s(sdf.parse(rq + " 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 749 | + } | |
| 737 | 750 | } |
| 738 | 751 | } |
| 752 | + } catch (ParseException e) { | |
| 753 | + // TODO Auto-generated catch block | |
| 754 | + e.printStackTrace(); | |
| 739 | 755 | } |
| 740 | - | |
| 741 | 756 | return listDlb; |
| 742 | 757 | } |
| 743 | 758 | |
| ... | ... | @@ -751,86 +766,97 @@ public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbS |
| 751 | 766 | String xlbm = map.get("xlbm_like").toString().trim(); |
| 752 | 767 | String nbbm = map.get("nbbm_eq").toString(); |
| 753 | 768 | String sxtj = map.get("sxtj").toString(); |
| 754 | - if (nbbm.trim() != "") { | |
| 755 | - stringList.add(nbbm); | |
| 756 | - } else { | |
| 757 | - if (!sxtj.equals("0")) { | |
| 758 | - List<Object[]> objectLists; | |
| 759 | - if (sxtj.equals("3")) { | |
| 760 | - // 有加油没里程 | |
| 761 | - objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 762 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 763 | - String clbm = objectLists.get(i)[0].toString(); | |
| 764 | - double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 765 | - double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 766 | - if (jzl > 0 && zlc <= 0) { | |
| 767 | - stringList.add(clbm); | |
| 768 | - } | |
| 769 | - | |
| 770 | - } | |
| 769 | + String type = map.get("type").toString(); | |
| 770 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 771 | + List<Object[]> sumYlbList = new ArrayList<Object[]>(); | |
| 772 | + try { | |
| 773 | + if (nbbm.trim() != "") { | |
| 774 | + stringList.add(nbbm); | |
| 775 | + } else { | |
| 776 | + if (!sxtj.equals("0")) { | |
| 777 | + List<Object[]> objectLists; | |
| 778 | + if (sxtj.equals("3")) { | |
| 779 | + // 有加油没里程 | |
| 780 | + objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 781 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 782 | + String clbm = objectLists.get(i)[0].toString(); | |
| 783 | + double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 784 | + double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 785 | + if (jzl > 0 && zlc <= 0) { | |
| 786 | + stringList.add(clbm); | |
| 787 | + } | |
| 771 | 788 | |
| 772 | - } else if (sxtj.equals("4")) { | |
| 773 | - // 有里程没加油 | |
| 774 | - objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 775 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 776 | - String clbm = objectLists.get(i)[0].toString(); | |
| 777 | - double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 778 | - double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 779 | - if (zlc > 0 && jzl <= 0) { | |
| 780 | - stringList.add(clbm); | |
| 781 | 789 | } |
| 782 | 790 | |
| 783 | - } | |
| 784 | - } else { | |
| 785 | - objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 786 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 787 | - String clbm = objectLists.get(i)[0].toString(); | |
| 788 | - int cs = Integer.parseInt(objectLists.get(i)[1].toString()); | |
| 789 | - // 一车一单 | |
| 790 | - | |
| 791 | - if (sxtj.equals("1")) { | |
| 792 | - if (cs == 1) { | |
| 791 | + } else if (sxtj.equals("4")) { | |
| 792 | + // 有里程没加油 | |
| 793 | + objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 794 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 795 | + String clbm = objectLists.get(i)[0].toString(); | |
| 796 | + double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 797 | + double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 798 | + if (zlc > 0 && jzl <= 0) { | |
| 793 | 799 | stringList.add(clbm); |
| 794 | 800 | } |
| 801 | + | |
| 795 | 802 | } |
| 796 | - // 一车多单 | |
| 797 | - if (sxtj.equals("2")) { | |
| 798 | - if (cs > 1) { | |
| 799 | - stringList.add(clbm); | |
| 803 | + } else { | |
| 804 | + objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 805 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 806 | + String clbm = objectLists.get(i)[0].toString(); | |
| 807 | + int cs = Integer.parseInt(objectLists.get(i)[1].toString()); | |
| 808 | + // 一车一单 | |
| 809 | + | |
| 810 | + if (sxtj.equals("1")) { | |
| 811 | + if (cs == 1) { | |
| 812 | + stringList.add(clbm); | |
| 813 | + } | |
| 814 | + } | |
| 815 | + // 一车多单 | |
| 816 | + if (sxtj.equals("2")) { | |
| 817 | + if (cs > 1) { | |
| 818 | + stringList.add(clbm); | |
| 819 | + } | |
| 800 | 820 | } |
| 801 | 821 | } |
| 802 | 822 | } |
| 803 | 823 | } |
| 804 | 824 | } |
| 805 | - } | |
| 806 | - List<Object[]> sumYlbList = new ArrayList<Object[]>(); | |
| 807 | 825 | if (sxtj.equals("0")) { |
| 808 | 826 | sumYlbList = repository.sumDlb2(rq, gsbm, fgsbm, xlbm, nbbm); |
| 809 | 827 | } else { |
| 810 | 828 | if (stringList.size() > 0) { |
| 811 | - | |
| 829 | + | |
| 812 | 830 | // String strings[]=new String[stringList.size()]; |
| 813 | 831 | // for(int i=0;i<stringList.size();i++){ |
| 814 | 832 | // strings[i]=stringList.get(i); |
| 815 | 833 | // } |
| 816 | - sumYlbList = repository.sumDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 817 | - } | |
| 818 | -// else { | |
| 819 | -// sumYlbList = repository.sumDlb2(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 820 | -// } | |
| 821 | - } | |
| 822 | - Double jzl = 0.0, yh = 0.0, sh = 0.0; | |
| 823 | - for (int i = 0; i < sumYlbList.size(); i++) { | |
| 824 | - jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString())); | |
| 825 | - yh = Arith.add(yh, Double.valueOf(sumYlbList.get(i)[1].toString())); | |
| 826 | - sh = Arith.add(sh, Double.valueOf(sumYlbList.get(i)[2].toString())); | |
| 834 | + if (type.equals("1")) | |
| 835 | + sumYlbList = repository.sumDlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 836 | + else | |
| 837 | + sumYlbList = repository.sumDlb_s(sdf.parse(rq + " 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 838 | + | |
| 839 | + } | |
| 840 | + // else { | |
| 841 | + // sumYlbList = repository.sumDlb2(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 842 | + // } | |
| 827 | 843 | } |
| 828 | - | |
| 829 | - Map<String, Object> sumMap = new HashMap<String, Object>(); | |
| 830 | - sumMap.put("jzl", jzl); | |
| 831 | - sumMap.put("yh", yh); | |
| 832 | - sumMap.put("sh", sh); | |
| 833 | - return sumMap; | |
| 844 | + } catch (ParseException e) { | |
| 845 | + // TODO Auto-generated catch block | |
| 846 | + e.printStackTrace(); | |
| 847 | + } | |
| 848 | + Double jzl = 0.0, yh = 0.0, sh = 0.0; | |
| 849 | + for (int i = 0; i < sumYlbList.size(); i++) { | |
| 850 | + jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString())); | |
| 851 | + yh = Arith.add(yh, Double.valueOf(sumYlbList.get(i)[1].toString())); | |
| 852 | + sh = Arith.add(sh, Double.valueOf(sumYlbList.get(i)[2].toString())); | |
| 853 | + } | |
| 854 | + | |
| 855 | + Map<String, Object> sumMap = new HashMap<String, Object>(); | |
| 856 | + sumMap.put("jzl", jzl); | |
| 857 | + sumMap.put("yh", yh); | |
| 858 | + sumMap.put("sh", sh); | |
| 859 | + return sumMap; | |
| 834 | 860 | } |
| 835 | 861 | |
| 836 | 862 | ... | ... |
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
| ... | ... | @@ -1108,6 +1108,10 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS |
| 1108 | 1108 | String xlbm=map.get("xlbm_like").toString().trim(); |
| 1109 | 1109 | String nbbm=map.get("nbbm_eq").toString(); |
| 1110 | 1110 | String sxtj=map.get("sxtj").toString(); |
| 1111 | + String type=map.get("type").toString(); | |
| 1112 | + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 1113 | + List<Object[]> sumYlbList=new ArrayList<Object[]>(); | |
| 1114 | + try { | |
| 1111 | 1115 | if(nbbm.trim()!=""){ |
| 1112 | 1116 | stringList.add(nbbm); |
| 1113 | 1117 | }else{ |
| ... | ... | @@ -1160,7 +1164,6 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS |
| 1160 | 1164 | } |
| 1161 | 1165 | } |
| 1162 | 1166 | } |
| 1163 | - List<Object[]> sumYlbList=new ArrayList<Object[]>(); | |
| 1164 | 1167 | if(sxtj.equals("0")){ |
| 1165 | 1168 | sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm,nbbm); |
| 1166 | 1169 | }else{ |
| ... | ... | @@ -1170,14 +1173,20 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS |
| 1170 | 1173 | // for(int i=0;i<stringList.size();i++){ |
| 1171 | 1174 | // strings[i]=stringList.get(i); |
| 1172 | 1175 | // } |
| 1173 | - sumYlbList=repository.sumYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1176 | + if (type.equals("1")) | |
| 1177 | + sumYlbList=repository.sumYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1178 | + else | |
| 1179 | + sumYlbList=repository.sumYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 1174 | 1180 | } |
| 1175 | 1181 | // else{ |
| 1176 | 1182 | // sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm, nbbm); |
| 1177 | 1183 | // } |
| 1178 | 1184 | |
| 1179 | 1185 | } |
| 1180 | - | |
| 1186 | + } catch (ParseException e) { | |
| 1187 | + // TODO Auto-generated catch block | |
| 1188 | + e.printStackTrace(); | |
| 1189 | + } | |
| 1181 | 1190 | Double jzl=0.0,yh=0.0,sh=0.0; |
| 1182 | 1191 | for (int i = 0; i < sumYlbList.size(); i++) { |
| 1183 | 1192 | jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString())); |
| ... | ... | @@ -1189,6 +1198,7 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS |
| 1189 | 1198 | sumMap.put("jzl", jzl); |
| 1190 | 1199 | sumMap.put("yh", yh); |
| 1191 | 1200 | sumMap.put("sh", sh); |
| 1201 | + | |
| 1192 | 1202 | // String sql="select sum(jzl),sum(yh),sum(sh) from bsth_c_ylb " |
| 1193 | 1203 | // + " where to_days('"+map.get("rq").toString()+"')=to_days(rq) " |
| 1194 | 1204 | // + " and ssgsdm like '%"+map.get("ssgsdm_like").toString()+"%' " |
| ... | ... | @@ -1206,96 +1216,118 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS |
| 1206 | 1216 | @Override |
| 1207 | 1217 | public List<Ylb> listYlb(Map<String, Object> map) { |
| 1208 | 1218 | // TODO Auto-generated method stub |
| 1209 | - List<Ylb> listYlb=new ArrayList<Ylb>(); | |
| 1210 | - List<String> stringList=new ArrayList<String>(); | |
| 1211 | - String rq=map.get("rq").toString(); | |
| 1212 | - String gsbm=map.get("ssgsdm_like").toString(); | |
| 1213 | - String fgsbm=map.get("fgsdm_like").toString(); | |
| 1214 | - String xlbm=map.get("xlbm_like").toString().trim(); | |
| 1215 | - String nbbm=map.get("nbbm_eq").toString(); | |
| 1216 | - String sxtj=map.get("sxtj").toString(); | |
| 1217 | - if(nbbm.trim()!=""){ | |
| 1218 | - stringList.add(nbbm); | |
| 1219 | - List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm); | |
| 1220 | - if(objectLists.size()>0){ | |
| 1221 | - int cs=Integer.parseInt(objectLists.get(0)[1].toString()); | |
| 1222 | - if(sxtj.equals("1")){ | |
| 1223 | - if(cs==1){ | |
| 1224 | - listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1225 | - } | |
| 1226 | - }else if(sxtj.equals("2")){ | |
| 1227 | - if(cs>1){ | |
| 1228 | - listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1219 | + List<Ylb> listYlb = new ArrayList<Ylb>(); | |
| 1220 | + try { | |
| 1221 | + List<String> stringList = new ArrayList<String>(); | |
| 1222 | + String rq = map.get("rq").toString(); | |
| 1223 | + String gsbm = map.get("ssgsdm_like").toString(); | |
| 1224 | + String fgsbm = map.get("fgsdm_like").toString(); | |
| 1225 | + String xlbm = map.get("xlbm_like").toString().trim(); | |
| 1226 | + String nbbm = map.get("nbbm_eq").toString(); | |
| 1227 | + String sxtj = map.get("sxtj").toString(); | |
| 1228 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 1229 | + String type = map.get("type").toString(); | |
| 1230 | + if (nbbm.trim() != "") { | |
| 1231 | + stringList.add(nbbm); | |
| 1232 | + List<Object[]> objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1233 | + if (objectLists.size() > 0) { | |
| 1234 | + int cs = Integer.parseInt(objectLists.get(0)[1].toString()); | |
| 1235 | + if (sxtj.equals("1")) { | |
| 1236 | + if (cs == 1) { | |
| 1237 | + if (type.equals("1")) | |
| 1238 | + listYlb = repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1239 | + else | |
| 1240 | + listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 1241 | + | |
| 1242 | + } | |
| 1243 | + } else if (sxtj.equals("2")) { | |
| 1244 | + if (cs > 1) { | |
| 1245 | + if (type.equals("1")) | |
| 1246 | + listYlb = repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1247 | + else | |
| 1248 | + listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 1249 | + } | |
| 1250 | + } else { | |
| 1251 | + if (type.equals("1")) | |
| 1252 | + listYlb = repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1253 | + else | |
| 1254 | + listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 1229 | 1255 | } |
| 1230 | - }else{ | |
| 1231 | - listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1232 | - } | |
| 1233 | - } | |
| 1234 | - | |
| 1235 | - }else{ | |
| 1236 | - //全部 | |
| 1237 | - if(sxtj.equals("0")){ | |
| 1238 | - List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm); | |
| 1239 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 1240 | - String clbm=objectLists.get(i)[0].toString(); | |
| 1241 | - stringList.add(clbm); | |
| 1242 | - } | |
| 1243 | - if(stringList.size()>0){ | |
| 1244 | - listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1245 | 1256 | } |
| 1246 | - }else{ | |
| 1247 | - List<Object[]> objectLists; | |
| 1248 | - if(sxtj.equals("3")){ | |
| 1249 | - //有加油没里程 | |
| 1250 | - objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1257 | + | |
| 1258 | + } else { | |
| 1259 | + // 全部 | |
| 1260 | + if (sxtj.equals("0")) { | |
| 1261 | + List<Object[]> objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1251 | 1262 | for (int i = 0; i < objectLists.size(); i++) { |
| 1252 | - String clbm=objectLists.get(i)[0].toString(); | |
| 1253 | - double jzl=Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 1254 | - double zlc=Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 1255 | - if(jzl>0 && zlc<=0){ | |
| 1256 | - stringList.add(clbm); | |
| 1257 | - } | |
| 1258 | - | |
| 1263 | + String clbm = objectLists.get(i)[0].toString(); | |
| 1264 | + stringList.add(clbm); | |
| 1259 | 1265 | } |
| 1260 | - | |
| 1261 | - }else if(sxtj.equals("4")){ | |
| 1262 | - //有里程没加油 | |
| 1263 | - objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1264 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 1265 | - String clbm=objectLists.get(i)[0].toString(); | |
| 1266 | - double jzl=Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 1267 | - double zlc=Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 1268 | - if(zlc>0 && jzl<=0){ | |
| 1269 | - stringList.add(clbm); | |
| 1270 | - } | |
| 1271 | - | |
| 1266 | + if (stringList.size() > 0) { | |
| 1267 | + if (type.equals("1")) | |
| 1268 | + listYlb = repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1269 | + else | |
| 1270 | + listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 1272 | 1271 | } |
| 1273 | - }else{ | |
| 1274 | - objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm); | |
| 1275 | - for (int i = 0; i < objectLists.size(); i++) { | |
| 1276 | - String clbm=objectLists.get(i)[0].toString(); | |
| 1277 | - int cs=Integer.parseInt(objectLists.get(i)[1].toString()); | |
| 1278 | - //一车一单 | |
| 1279 | - if(sxtj.equals("1")){ | |
| 1280 | - if(cs==1){ | |
| 1272 | + } else { | |
| 1273 | + List<Object[]> objectLists; | |
| 1274 | + if (sxtj.equals("3")) { | |
| 1275 | + // 有加油没里程 | |
| 1276 | + objectLists = repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1277 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 1278 | + String clbm = objectLists.get(i)[0].toString(); | |
| 1279 | + double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 1280 | + double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 1281 | + if (jzl > 0 && zlc <= 0) { | |
| 1281 | 1282 | stringList.add(clbm); |
| 1282 | 1283 | } |
| 1283 | - } | |
| 1284 | - //一车多单 | |
| 1285 | - if(sxtj.equals("2")){ | |
| 1286 | - if(cs>1){ | |
| 1284 | + | |
| 1285 | + } | |
| 1286 | + | |
| 1287 | + } else if (sxtj.equals("4")) { | |
| 1288 | + // 有里程没加油 | |
| 1289 | + objectLists = repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1290 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 1291 | + String clbm = objectLists.get(i)[0].toString(); | |
| 1292 | + double jzl = Double.parseDouble(objectLists.get(i)[1].toString()); | |
| 1293 | + double zlc = Double.parseDouble(objectLists.get(i)[2].toString()); | |
| 1294 | + if (zlc > 0 && jzl <= 0) { | |
| 1287 | 1295 | stringList.add(clbm); |
| 1288 | 1296 | } |
| 1297 | + | |
| 1298 | + } | |
| 1299 | + } else { | |
| 1300 | + objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm); | |
| 1301 | + for (int i = 0; i < objectLists.size(); i++) { | |
| 1302 | + String clbm = objectLists.get(i)[0].toString(); | |
| 1303 | + int cs = Integer.parseInt(objectLists.get(i)[1].toString()); | |
| 1304 | + // 一车一单 | |
| 1305 | + if (sxtj.equals("1")) { | |
| 1306 | + if (cs == 1) { | |
| 1307 | + stringList.add(clbm); | |
| 1308 | + } | |
| 1309 | + } | |
| 1310 | + // 一车多单 | |
| 1311 | + if (sxtj.equals("2")) { | |
| 1312 | + if (cs > 1) { | |
| 1313 | + stringList.add(clbm); | |
| 1314 | + } | |
| 1315 | + } | |
| 1289 | 1316 | } |
| 1290 | 1317 | } |
| 1291 | - } | |
| 1292 | - | |
| 1293 | - if(stringList.size()>0){ | |
| 1294 | - listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1318 | + | |
| 1319 | + if (stringList.size() > 0) { | |
| 1320 | + if (type.equals("1")) | |
| 1321 | + listYlb = repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | |
| 1322 | + else | |
| 1323 | + listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | |
| 1324 | + } | |
| 1295 | 1325 | } |
| 1296 | 1326 | } |
| 1327 | + } catch (ParseException e) { | |
| 1328 | + // TODO Auto-generated catch block | |
| 1329 | + e.printStackTrace(); | |
| 1297 | 1330 | } |
| 1298 | - | |
| 1299 | 1331 | return listYlb; |
| 1300 | 1332 | } |
| 1301 | 1333 | ... | ... |
src/main/java/com/bsth/service/realcontrol/RealMapService.java
| ... | ... | @@ -12,6 +12,8 @@ public interface RealMapService { |
| 12 | 12 | |
| 13 | 13 | Map<String, Object> findRouteByLine(String idx); |
| 14 | 14 | |
| 15 | + Map<String, Object> findRouteAndVersionByLine(String idx); | |
| 16 | + | |
| 15 | 17 | Map<String,Object> findRouteAndStationByLine(String lineCode); |
| 16 | 18 | |
| 17 | 19 | Map<String,Object> multiSectionRoute(String codeIdx); | ... | ... |
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
| ... | ... | @@ -193,4 +193,5 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L |
| 193 | 193 | |
| 194 | 194 | List<Map<String, Object>> scheduleCorrectionReport(String gsdm, String fgsdm, |
| 195 | 195 | String line, String date, String date2); |
| 196 | + Integer isCircleQdz(String clzbh,String sdr,String xlbm,String qdzCode); | |
| 196 | 197 | } | ... | ... |
src/main/java/com/bsth/service/realcontrol/dto/SectionRouteCoords.java
| ... | ... | @@ -24,6 +24,16 @@ public class SectionRouteCoords { |
| 24 | 24 | |
| 25 | 25 | private Float sectionTime; |
| 26 | 26 | |
| 27 | + private Integer versions; | |
| 28 | + | |
| 29 | + public Integer getVersions() { | |
| 30 | + return versions; | |
| 31 | + } | |
| 32 | + | |
| 33 | + public void setVersions(Integer versions) { | |
| 34 | + this.versions = versions; | |
| 35 | + } | |
| 36 | + | |
| 27 | 37 | public int getId() { |
| 28 | 38 | return id; |
| 29 | 39 | } | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/RealMapServiceImpl.java
| ... | ... | @@ -42,7 +42,7 @@ public class RealMapServiceImpl implements RealMapService { |
| 42 | 42 | } |
| 43 | 43 | inStr = " (" + inStr.substring(1) + ")"; |
| 44 | 44 | |
| 45 | - String sql = "select r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,s.G_LONX,s.G_LATY,s.RADIUS,s.SHAPES_TYPE,ST_AsText(s.G_POLYGON_GRID) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0"; | |
| 45 | + String sql = "select r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,s.G_LONX,s.G_LATY,s.RADIUS,s.SHAPES_TYPE,ST_AsText(s.G_POLYGON_GRID) as G_POLYGON_GRID, r.STATION_ROUTE_CODE,r.versions from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0"; | |
| 46 | 46 | |
| 47 | 47 | List<StationSpatialData> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(StationSpatialData.class)); |
| 48 | 48 | rs.put("status", ResponseCode.SUCCESS); |
| ... | ... | @@ -84,7 +84,7 @@ public class RealMapServiceImpl implements RealMapService { |
| 84 | 84 | } |
| 85 | 85 | inCond.deleteCharAt(inCond.length() - 1).append(")"); |
| 86 | 86 | |
| 87 | - String sql = "SELECT r.ID,r.LINE_CODE,r.SECTION_CODE,r.SECTIONROUTE_CODE,r.DIRECTIONS,s.SECTION_NAME,ST_AsText(s.GSECTION_VECTOR) GSECTION_VECTOR,s.SECTION_DISTANCE,s.SECTION_TIME FROM bsth_c_sectionroute r INNER JOIN bsth_c_section s on r.section_code=s.section_code WHERE r.line_code in "+inCond.toString()+" and r.destroy=0 order by sectionroute_code"; | |
| 87 | + String sql = "SELECT r.ID,r.LINE_CODE,r.SECTION_CODE,r.SECTIONROUTE_CODE,r.DIRECTIONS,s.SECTION_NAME,ST_AsText(s.GSECTION_VECTOR) GSECTION_VECTOR,s.SECTION_DISTANCE,s.SECTION_TIME,r.versions FROM bsth_c_sectionroute r INNER JOIN bsth_c_section s on r.section_code=s.section_code WHERE r.line_code in "+inCond.toString()+" and r.destroy=0 order by sectionroute_code"; | |
| 88 | 88 | List<SectionRouteCoords> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SectionRouteCoords.class)); |
| 89 | 89 | |
| 90 | 90 | //排序 |
| ... | ... | @@ -133,6 +133,64 @@ public class RealMapServiceImpl implements RealMapService { |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | @Override |
| 136 | + public Map<String, Object> findRouteAndVersionByLine(String idx) { | |
| 137 | + Map<String, Object> rs = new HashMap<>(); | |
| 138 | + StringBuilder inCond = new StringBuilder("("); | |
| 139 | + List<String> codeList = Splitter.on(",").splitToList(idx); | |
| 140 | + for(String lineCode : codeList){ | |
| 141 | + inCond.append("'" + lineCode + "',"); | |
| 142 | + } | |
| 143 | + inCond.deleteCharAt(inCond.length() - 1).append(")"); | |
| 144 | + | |
| 145 | + String sql = "SELECT r.ID,r.LINE_CODE,r.SECTION_CODE,r.SECTIONROUTE_CODE,r.DIRECTIONS,s.SECTION_NAME,ST_AsText(s.GSECTION_VECTOR) GSECTION_VECTOR,s.SECTION_DISTANCE,s.SECTION_TIME,r.versions FROM bsth_c_sectionroute r INNER JOIN bsth_c_section s on r.section_code=s.section_code WHERE r.line_code in "+inCond.toString()+" and r.destroy=0 order by sectionroute_code"; | |
| 146 | + List<SectionRouteCoords> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SectionRouteCoords.class)); | |
| 147 | + | |
| 148 | + //排序 | |
| 149 | + Collections.sort(list, new Comparator<SectionRouteCoords>() { | |
| 150 | + @Override | |
| 151 | + public int compare(SectionRouteCoords o1, SectionRouteCoords o2) { | |
| 152 | + return Integer.parseInt(o1.getSectionrouteCode()) - Integer.parseInt(o2.getSectionrouteCode()); | |
| 153 | + } | |
| 154 | + }); | |
| 155 | + | |
| 156 | + ArrayListMultimap<String, SectionRouteCoords> listMultimap = ArrayListMultimap.create(); | |
| 157 | + for (SectionRouteCoords sr : list) { | |
| 158 | + //按lineCode 分组 | |
| 159 | + listMultimap.put(sr.getLineCode()+"_"+sr.getVersions(), sr); | |
| 160 | + } | |
| 161 | + //坐标转换 | |
| 162 | + Map<String, Object> subMap; | |
| 163 | + Set<String> ks = listMultimap.keySet(); | |
| 164 | + List<SectionRouteCoords> sublist; | |
| 165 | + List<String> upList,downList; | |
| 166 | + String vectorStr = ""; | |
| 167 | + for(String k : ks){ | |
| 168 | + subMap = new HashMap<>(); | |
| 169 | + sublist = listMultimap.get(k); | |
| 170 | + upList = new ArrayList<>(); | |
| 171 | + downList = new ArrayList<>(); | |
| 172 | + for(SectionRouteCoords sr : sublist){ | |
| 173 | + vectorStr = sr.getGsectionVector(); | |
| 174 | + vectorStr = vectorStr.substring(11, vectorStr.length() - 2); | |
| 175 | + if (sr.getDirections() == 0) | |
| 176 | + upList.add(vectorStr); | |
| 177 | + else | |
| 178 | + downList.add(vectorStr); | |
| 179 | + } | |
| 180 | + subMap.put("up", upList); | |
| 181 | + //subMap.put("upJoins", jointCoords(upList)); | |
| 182 | + subMap.put("down", downList); | |
| 183 | + subMap.put("up_bd", multiWgsToBd(upList)); | |
| 184 | + subMap.put("down_bd", multiWgsToBd(downList)); | |
| 185 | + subMap.put("up_gcj", multiWgsToGcj(upList)); | |
| 186 | + subMap.put("down_gcj", multiWgsToGcj(downList)); | |
| 187 | + | |
| 188 | + rs.put(k, subMap); | |
| 189 | + } | |
| 190 | + return rs; | |
| 191 | + } | |
| 192 | + | |
| 193 | + @Override | |
| 136 | 194 | public Map<String, Object> findRouteAndStationByLine(String lineCode) { |
| 137 | 195 | Map<String, Object> rs = new HashMap<>(); |
| 138 | 196 | try { | ... | ... |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| ... | ... | @@ -5606,8 +5606,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 5606 | 5606 | ScheduleRealInfo leftSch, rightSch = null; |
| 5607 | 5607 | for (int i = 0; i < largeList.size(); i++) { |
| 5608 | 5608 | leftSch = largeList.get(i); |
| 5609 | + leftSch.setLpChange(1); | |
| 5609 | 5610 | if (i < smallList.size()) { |
| 5610 | 5611 | rightSch = smallList.get(i); |
| 5612 | + rightSch.setLpChange(1); | |
| 5611 | 5613 | ts.add(rightSch); |
| 5612 | 5614 | } else { |
| 5613 | 5615 | //不对称时多出来的 |
| ... | ... | @@ -5626,6 +5628,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 5626 | 5628 | |
| 5627 | 5629 | carSet.add(leftSch.getClZbh()); |
| 5628 | 5630 | carSet.add(rightSch.getClZbh()); |
| 5631 | + scheduleRealInfoRepository.updateLpChange(leftSch.getId()); | |
| 5632 | + scheduleRealInfoRepository.updateLpChange(rightSch.getId()); | |
| 5629 | 5633 | } |
| 5630 | 5634 | |
| 5631 | 5635 | //重新计算路牌的起点应到时间 |
| ... | ... | @@ -5981,6 +5985,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf |
| 5981 | 5985 | lMap.add(resMap); |
| 5982 | 5986 | return lMap; |
| 5983 | 5987 | } |
| 5988 | + | |
| 5989 | + @Override | |
| 5990 | + public Integer isCircleQdz(String clzbh, String sdr, String xlbm, String qdzCode) { | |
| 5991 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | |
| 5992 | + String time =sdf.format(Long.parseLong(sdr)); | |
| 5993 | + | |
| 5994 | + Long num=scheduleRealInfoRepository.isCircleQdz(clzbh, time, xlbm, qdzCode); | |
| 5995 | + Integer num2=num==0L?0:1; | |
| 5996 | + return num2; | |
| 5997 | + } | |
| 5984 | 5998 | } |
| 5985 | 5999 | |
| 5986 | 6000 | class AccountMap implements Comparator<Map<String, Object>> { | ... | ... |
src/main/java/com/bsth/service/report/impl/CalcSheetServiceImpl.java
| ... | ... | @@ -790,11 +790,11 @@ public class CalcSheetServiceImpl extends BaseServiceImpl<CalcSheet, Integer> im |
| 790 | 790 | if(map.get("fgsdmTurn")!=null){ |
| 791 | 791 | fgs=map.get("fgsdmTurn").toString().trim(); |
| 792 | 792 | } |
| 793 | -// String nature="0"; | |
| 794 | -// if(map.get("nature")!=null){ | |
| 795 | -// nature=map.get("nature").toString(); | |
| 796 | -// } | |
| 797 | -// Map<String, Boolean> lineMap=lineService.lineNature(); | |
| 793 | + String nature="0"; | |
| 794 | + if(map.get("nature")!=null){ | |
| 795 | + nature=map.get("nature").toString(); | |
| 796 | + } | |
| 797 | + Map<String, Boolean> lineMap=lineService.lineNature(); | |
| 798 | 798 | |
| 799 | 799 | String startDate=map.get("startDate").toString(); |
| 800 | 800 | String endDate=map.get("endDate").toString(); |
| ... | ... | @@ -847,16 +847,82 @@ public class CalcSheetServiceImpl extends BaseServiceImpl<CalcSheet, Integer> im |
| 847 | 847 | return s; |
| 848 | 848 | } |
| 849 | 849 | }); |
| 850 | + | |
| 851 | + | |
| 852 | + List<Map<String, Object>> list=new ArrayList<Map<String,Object>>(); | |
| 853 | + int jhcc = 0, sjcc = 0; | |
| 854 | + int jhcczgf = 0, sjcczgf = 0; | |
| 855 | + int count=0; | |
| 856 | + Map<String, String> xlMap=new HashMap<String,String>(); | |
| 857 | + for(Map<String, Object> m : lists){ | |
| 858 | + if(nature.equals("0")){ | |
| 859 | + list.add(m); | |
| 860 | + jhcc += Integer.valueOf(m.get("jhcc").toString()); | |
| 861 | + sjcc += Integer.valueOf(m.get("sjcc").toString()); | |
| 862 | + jhcczgf += Integer.valueOf(m.get("jhcczgf").toString()); | |
| 863 | + sjcczgf +=Integer.valueOf(m.get("sjcczgf").toString()); | |
| 864 | + if(xlMap.get(m.get("xl").toString())==null){ | |
| 865 | + count++; | |
| 866 | + xlMap.put(m.get("xl").toString(), m.get("xl").toString()); | |
| 867 | + } | |
| 868 | + }else if(nature.equals("1")){ | |
| 869 | + if(lineMap.get(m.get("xl").toString())){ | |
| 870 | + list.add(m); | |
| 871 | + jhcc += Integer.valueOf(m.get("jhcc").toString()); | |
| 872 | + sjcc += Integer.valueOf(m.get("sjcc").toString()); | |
| 873 | + jhcczgf += Integer.valueOf(m.get("jhcczgf").toString()); | |
| 874 | + sjcczgf +=Integer.valueOf(m.get("sjcczgf").toString()); | |
| 875 | + if(xlMap.get(m.get("xl").toString())==null){ | |
| 876 | + count++; | |
| 877 | + xlMap.put(m.get("xl").toString(), m.get("xl").toString()); | |
| 878 | + } | |
| 879 | + } | |
| 880 | + }else{ | |
| 881 | + if(!lineMap.get(m.get("xl").toString())){ | |
| 882 | + list.add(m); | |
| 883 | + jhcc += Integer.valueOf(m.get("jhcc").toString()); | |
| 884 | + sjcc += Integer.valueOf(m.get("sjcc").toString()); | |
| 885 | + jhcczgf += Integer.valueOf(m.get("jhcczgf").toString()); | |
| 886 | + sjcczgf +=Integer.valueOf(m.get("sjcczgf").toString()); | |
| 887 | + if(xlMap.get(m.get("xl").toString())==null){ | |
| 888 | + count++; | |
| 889 | + xlMap.put(m.get("xl").toString(), m.get("xl").toString()); | |
| 890 | + } | |
| 891 | + } | |
| 892 | + } | |
| 893 | + | |
| 894 | + } | |
| 895 | + | |
| 896 | + Map<String, Object> tempMap=new HashMap<String,Object>(); | |
| 897 | + tempMap.put("rq", "分类汇总"); | |
| 898 | + tempMap.put("line_", "共" + list.size() + "条线路"); | |
| 899 | + tempMap.put("xlName", "共" +count + "条线路"); | |
| 900 | + tempMap.put("jhcc", jhcc); | |
| 901 | + tempMap.put("sjcc", sjcc); | |
| 902 | + tempMap.put("sjcczgf", sjcczgf); | |
| 903 | + tempMap.put("jhcczgf", jhcczgf); | |
| 904 | + tempMap.put("sm", ""); | |
| 905 | + list.add(tempMap); | |
| 906 | + if(jhcc != 0 && sjcc != 0){ | |
| 907 | + tempMap.put("ccl", df.format(((float)sjcc / jhcc)*100)+"%"); | |
| 908 | + }else{ | |
| 909 | + tempMap.put("ccl", "0.00%"); | |
| 910 | + } | |
| 911 | + if(jhcczgf != 0 && sjcczgf != 0){ | |
| 912 | + tempMap.put("cclzgf", df.format(((float)sjcczgf / jhcczgf)*100)+"%"); | |
| 913 | + }else{ | |
| 914 | + tempMap.put("cclzgf", "0.00%"); | |
| 915 | + } | |
| 850 | 916 | if (type.equals("export")) { |
| 851 | 917 | String lineName=map.get("lineName").toString(); |
| 852 | 918 | ReportUtils ee = new ReportUtils(); |
| 853 | 919 | List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); |
| 854 | - listI.add(lists.iterator()); | |
| 920 | + listI.add(list.iterator()); | |
| 855 | 921 | String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; |
| 856 | 922 | ee.excelReplace(listI, new Object[] { map }, path + "mould/calcTurnoutrateZgf.xls", path + "export/" |
| 857 | 923 | + dates + "-" + lineName + "-营运线路出车率统计表.xls"); |
| 858 | 924 | } |
| 859 | - return lists; | |
| 925 | + return list; | |
| 860 | 926 | } |
| 861 | 927 | |
| 862 | 928 | @Override | ... | ... |
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
| ... | ... | @@ -1647,22 +1647,47 @@ public class CulateMileageServiceImpl implements CulateMileageService{ |
| 1647 | 1647 | } |
| 1648 | 1648 | }else{ |
| 1649 | 1649 | Set<ChildTaskPlan> childTaskPlans = t.getcTasks(); |
| 1650 | - if(!childTaskPlans.isEmpty()){ | |
| 1651 | - Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 1652 | - while (it.hasNext()) { | |
| 1653 | - ChildTaskPlan childTaskPlan = it.next(); | |
| 1654 | - if(childTaskPlan.getCcId()==null){ | |
| 1655 | - if("empty".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){ | |
| 1656 | - if (!childTaskPlan.isDestroy()) { | |
| 1657 | - Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 1658 | - ljks=Arith.add(ljks,jhgl); | |
| 1659 | - } | |
| 1650 | + if(isInOut(t)){ | |
| 1651 | + if(childTaskPlans.isEmpty()){ | |
| 1652 | + double jhlc=t.getJhlc()==null?0:t.getJhlc(); | |
| 1653 | + double jhlcOrig=t.getJhlcOrig()==null?0:t.getJhlcOrig(); | |
| 1654 | + double zjlc=Arith.sub(jhlc, jhlcOrig); | |
| 1655 | + if(zjlc>0){ | |
| 1656 | + ljks=Arith.add(zjlc, ljks); | |
| 1657 | + } | |
| 1658 | + }else{ | |
| 1659 | + Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 1660 | + while (it.hasNext()) { | |
| 1661 | + ChildTaskPlan childTaskPlan = it.next(); | |
| 1662 | + if(childTaskPlan.getCcId()==null){ | |
| 1663 | + if("empty".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){ | |
| 1664 | + if (!childTaskPlan.isDestroy()) { | |
| 1665 | + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 1666 | + ljks=Arith.add(ljks,jhgl); | |
| 1667 | + } | |
| 1668 | + } | |
| 1660 | 1669 | } |
| 1661 | - } | |
| 1662 | - } | |
| 1670 | + } | |
| 1671 | + } | |
| 1672 | + | |
| 1673 | + }else{ | |
| 1674 | + if(!childTaskPlans.isEmpty()){ | |
| 1675 | + Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 1676 | + while (it.hasNext()) { | |
| 1677 | + ChildTaskPlan childTaskPlan = it.next(); | |
| 1678 | + if(childTaskPlan.getCcId()==null){ | |
| 1679 | + if("empty".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){ | |
| 1680 | + if (!childTaskPlan.isDestroy()) { | |
| 1681 | + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 1682 | + ljks=Arith.add(ljks,jhgl); | |
| 1683 | + } | |
| 1684 | + } | |
| 1685 | + } | |
| 1686 | + } | |
| 1687 | + } | |
| 1663 | 1688 | } |
| 1664 | - | |
| 1665 | 1689 | } |
| 1690 | + | |
| 1666 | 1691 | } |
| 1667 | 1692 | return ljks; |
| 1668 | 1693 | } | ... | ... |
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
| ... | ... | @@ -385,9 +385,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 385 | 385 | // zgfEnd = sdf.parse(date + "08:30").getTime(); |
| 386 | 386 | // wgfBegin = sdf.parse(date + "16:00").getTime(); |
| 387 | 387 | // wgfEnd = sdf.parse(date + "18:00").getTime(); |
| 388 | - zgfBegin = 6l * 60l + 30l; | |
| 388 | + zgfBegin = 6l * 60l + 31l; | |
| 389 | 389 | zgfEnd = 8l * 60l + 30l; |
| 390 | - wgfBegin = 16l * 60l + 0l; | |
| 390 | + wgfBegin = 16l * 60l + 1l; | |
| 391 | 391 | wgfEnd = 18l * 60l + 0l; |
| 392 | 392 | } catch (Exception e) { |
| 393 | 393 | // TODO Auto-generated catch block |
| ... | ... | @@ -414,15 +414,23 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 414 | 414 | subCompanyName = schedule.getFgsName(); |
| 415 | 415 | |
| 416 | 416 | //早晚高峰时段执行率 |
| 417 | - if(schedule.getFcsjT() >= zgfBegin && schedule.getFcsjT() <= zgfEnd){ | |
| 418 | - jhzgf++; | |
| 419 | - if(schedule.getFcsjActual() != null) | |
| 417 | + if(!schedule.getBcType().equals("in") && !schedule.getBcType().equals("out") && !schedule.getBcType().equals("ldks")){ | |
| 418 | + if(schedule.getFcsjT() >= zgfBegin && schedule.getFcsjT() <= zgfEnd){ | |
| 419 | + jhzgf++; | |
| 420 | + } | |
| 421 | + if(schedule.getFcsjActual() != null && !schedule.isDestroy() | |
| 422 | + && schedule.getFcsjActualTime() >= zgfBegin | |
| 423 | + && schedule.getFcsjActualTime() <= zgfEnd){ | |
| 420 | 424 | sjzgf++; |
| 421 | - } | |
| 422 | - if(schedule.getFcsjT() >= wgfBegin && schedule.getFcsjT() <= wgfEnd){ | |
| 423 | - jhwgf++; | |
| 424 | - if(schedule.getFcsjActual() != null) | |
| 425 | + } | |
| 426 | + if(schedule.getFcsjT() >= wgfBegin && schedule.getFcsjT() <= wgfEnd){ | |
| 427 | + jhwgf++; | |
| 428 | + } | |
| 429 | + if(schedule.getFcsjActual() != null && !schedule.isDestroy() | |
| 430 | + && schedule.getFcsjActualTime() >= wgfBegin | |
| 431 | + && schedule.getFcsjActualTime() <= wgfEnd){ | |
| 425 | 432 | sjwgf++; |
| 433 | + } | |
| 426 | 434 | } |
| 427 | 435 | |
| 428 | 436 | //班次数和出场数 | ... | ... |
src/main/java/com/bsth/service/schedule/impl/plan/kBase3/validate/rule/CalcuParam.java
| 1 | -package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | - | |
| 3 | -import org.joda.time.DateTime; | |
| 4 | - | |
| 5 | -/** | |
| 6 | - * 计算用参数。 | |
| 7 | - */ | |
| 8 | -public class CalcuParam { | |
| 9 | - /** 线路Id */ | |
| 10 | - private Integer xlId; | |
| 11 | - | |
| 12 | - /** 计划开始计算日期 */ | |
| 13 | - private DateTime fromDate; | |
| 14 | - /** 计划结束计算日期 */ | |
| 15 | - private DateTime toDate; | |
| 16 | - | |
| 17 | - public Integer getXlId() { | |
| 18 | - return xlId; | |
| 19 | - } | |
| 20 | - | |
| 21 | - public void setXlId(Integer xlId) { | |
| 22 | - this.xlId = xlId; | |
| 23 | - } | |
| 24 | - | |
| 25 | - public DateTime getFromDate() { | |
| 26 | - return fromDate; | |
| 27 | - } | |
| 28 | - | |
| 29 | - public void setFromDate(DateTime fromDate) { | |
| 30 | - this.fromDate = fromDate; | |
| 31 | - } | |
| 32 | - | |
| 33 | - public DateTime getToDate() { | |
| 34 | - return toDate; | |
| 35 | - } | |
| 36 | - | |
| 37 | - public void setToDate(DateTime toDate) { | |
| 38 | - this.toDate = toDate; | |
| 39 | - } | |
| 40 | -} | |
| 1 | +package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | + | |
| 3 | +import org.joda.time.DateTime; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 计算用参数。 | |
| 7 | + */ | |
| 8 | +public class CalcuParam { | |
| 9 | + /** 线路Id */ | |
| 10 | + private Integer xlId; | |
| 11 | + | |
| 12 | + /** 计划开始计算日期 */ | |
| 13 | + private DateTime fromDate; | |
| 14 | + /** 计划结束计算日期 */ | |
| 15 | + private DateTime toDate; | |
| 16 | + | |
| 17 | + public Integer getXlId() { | |
| 18 | + return xlId; | |
| 19 | + } | |
| 20 | + | |
| 21 | + public void setXlId(Integer xlId) { | |
| 22 | + this.xlId = xlId; | |
| 23 | + } | |
| 24 | + | |
| 25 | + public DateTime getFromDate() { | |
| 26 | + return fromDate; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public void setFromDate(DateTime fromDate) { | |
| 30 | + this.fromDate = fromDate; | |
| 31 | + } | |
| 32 | + | |
| 33 | + public DateTime getToDate() { | |
| 34 | + return toDate; | |
| 35 | + } | |
| 36 | + | |
| 37 | + public void setToDate(DateTime toDate) { | |
| 38 | + this.toDate = toDate; | |
| 39 | + } | |
| 40 | +} | ... | ... |
src/main/java/com/bsth/service/schedule/impl/plan/kBase3/validate/rule/ErrorInfoFunction.java
| 1 | -package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | - | |
| 3 | - | |
| 4 | -import com.bsth.entity.schedule.EmployeeConfigInfo; | |
| 5 | -import com.bsth.entity.schedule.GuideboardInfo; | |
| 6 | -import org.apache.commons.lang3.StringUtils; | |
| 7 | -import org.apache.commons.lang3.math.NumberUtils; | |
| 8 | -import org.kie.api.runtime.rule.AccumulateFunction; | |
| 9 | - | |
| 10 | -import java.io.*; | |
| 11 | -import java.util.HashMap; | |
| 12 | -import java.util.Map; | |
| 13 | - | |
| 14 | -/** | |
| 15 | - * 查找错误函数。 | |
| 16 | - */ | |
| 17 | -public class ErrorInfoFunction implements AccumulateFunction { | |
| 18 | - @Override | |
| 19 | - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | |
| 20 | - | |
| 21 | - } | |
| 22 | - | |
| 23 | - @Override | |
| 24 | - public void writeExternal(ObjectOutput out) throws IOException { | |
| 25 | - | |
| 26 | - } | |
| 27 | - | |
| 28 | - protected static class ErrorInfoContext implements Externalizable { | |
| 29 | - /** 错误数量 */ | |
| 30 | - public Integer errorCount = 0; | |
| 31 | - /** 错误Map,Map<规则id,errorInfo> */ | |
| 32 | - public Map<Long, ValidateRuleResult.ErrorInfo> errorInfoMap = new HashMap<>(); | |
| 33 | - | |
| 34 | - public ErrorInfoContext() { | |
| 35 | - | |
| 36 | - } | |
| 37 | - | |
| 38 | - @Override | |
| 39 | - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | |
| 40 | - errorCount = in.readInt(); | |
| 41 | - errorInfoMap = (Map<Long, ValidateRuleResult.ErrorInfo>) in.readObject(); | |
| 42 | - | |
| 43 | - } | |
| 44 | - | |
| 45 | - @Override | |
| 46 | - public void writeExternal(ObjectOutput out) throws IOException { | |
| 47 | - out.writeInt(errorCount); | |
| 48 | - out.writeObject(errorInfoMap); | |
| 49 | - } | |
| 50 | - | |
| 51 | - } | |
| 52 | - | |
| 53 | - @Override | |
| 54 | - public Serializable createContext() { | |
| 55 | - return new ErrorInfoContext(); | |
| 56 | - } | |
| 57 | - | |
| 58 | - @Override | |
| 59 | - public void init(Serializable serializable) throws Exception { | |
| 60 | - ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 61 | - errorInfoContext.errorCount = 0; | |
| 62 | - errorInfoContext.errorInfoMap = new HashMap<>(); | |
| 63 | - } | |
| 64 | - | |
| 65 | - @Override | |
| 66 | - public void accumulate(Serializable serializable, Object o) { | |
| 67 | - ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 68 | - WrapInput wrapInput = (WrapInput) o; | |
| 69 | - | |
| 70 | - ValidateRuleResult.ErrorInfo errorInfo = new ValidateRuleResult.ErrorInfo(); | |
| 71 | - errorInfo.setRuleId(wrapInput.getRuleId()); | |
| 72 | - errorInfo.setClZbh(wrapInput.getClZbh()); | |
| 73 | - errorInfo.setQyrq(wrapInput.getQyrq()); | |
| 74 | - | |
| 75 | - // 1、车辆配置验证 | |
| 76 | - if (StringUtils.isNotEmpty(wrapInput.getClZbh())) { // 自编号不能为空 | |
| 77 | - if (wrapInput.getCcInfos().get(wrapInput.getClZbh()) == null) { // 车辆配置不在当前线路上 | |
| 78 | - errorInfo.getErrorDescList().add("车辆配置不在当前线路,请重新编辑保存!"); | |
| 79 | - } | |
| 80 | - } else { | |
| 81 | - errorInfo.getErrorDescList().add("自编号不能为空,请重新编辑保存!"); | |
| 82 | - } | |
| 83 | - | |
| 84 | - // 2、路牌id,路牌名字,路牌起始索引验证 | |
| 85 | - if (StringUtils.isNotEmpty(wrapInput.getLpIds()) && | |
| 86 | - StringUtils.isNotEmpty(wrapInput.getLpNames())) { // 冗余的路牌id和路牌名字都不能为空 | |
| 87 | - String[] lpIds = wrapInput.getLpIds().split(","); | |
| 88 | - String[] lpNames = wrapInput.getLpNames().split(","); | |
| 89 | - if (lpIds.length == lpNames.length) { // 路牌id和路牌名字个数一致 | |
| 90 | - for (int i = 0; i < lpIds.length; i++) { | |
| 91 | - if (!NumberUtils.isDigits(lpIds[i])) { // 冗余路牌id必须是数字 | |
| 92 | - errorInfo.getErrorDescList().add("冗余路牌id必须是数字,请重新编辑保存!"); | |
| 93 | - break; | |
| 94 | - } | |
| 95 | - | |
| 96 | - GuideboardInfo lpInfo = wrapInput.getLpInfos().get(NumberUtils.toLong(lpIds[i])); | |
| 97 | - if (lpInfo == null) { // 路牌不在当前线路上 | |
| 98 | - errorInfo.getErrorDescList().add("路牌不在当前线路上,请重新编辑保存!"); | |
| 99 | - } else { | |
| 100 | - if (StringUtils.isEmpty(lpNames[i]) || | |
| 101 | - !(lpNames[i].equals(lpInfo.getLpName()))) { // 路牌id和路牌名字不对应 | |
| 102 | - errorInfo.getErrorDescList().add("路牌id和路牌名字不对应,请重新编辑保存!"); | |
| 103 | - break; | |
| 104 | - } | |
| 105 | - } | |
| 106 | - } | |
| 107 | - | |
| 108 | - if (wrapInput.getLpStartIndex() < 1 || | |
| 109 | - wrapInput.getLpStartIndex() > lpIds.length) { // 路牌起始索引溢出 | |
| 110 | - errorInfo.getErrorDescList().add("路牌起始索引溢出,请重新编辑保存!"); | |
| 111 | - } | |
| 112 | - } else { | |
| 113 | - errorInfo.getErrorDescList().add("路牌id和路牌名字个数不一致,请重新编辑保存!"); | |
| 114 | - } | |
| 115 | - } else { | |
| 116 | - errorInfo.getErrorDescList().add("冗余的路牌id和路牌名字都不能为空,请重新编辑保存!"); | |
| 117 | - } | |
| 118 | - | |
| 119 | - // 3、人员配置,搭班编码,人员起始索引验证 | |
| 120 | - if (StringUtils.isNotEmpty(wrapInput.getEcIds()) && | |
| 121 | - StringUtils.isNotEmpty(wrapInput.getEcDbbms())) { // 冗余的人员配置id和人员搭班编码都不能为空 | |
| 122 | - String[] ecIds = wrapInput.getEcIds().split(","); | |
| 123 | - String[] ecDbbms = wrapInput.getEcDbbms().split(","); | |
| 124 | - if (ecIds.length == ecDbbms.length) { // 人员配置id和搭班编码个数一致 | |
| 125 | - for (int i = 0; i < ecIds.length; i++) { | |
| 126 | - if (ecIds[i].contains("-")) { // 分班标识 | |
| 127 | - String[] fb_ecIds = ecIds[i].split("-"); | |
| 128 | - String[] fb_ecDbbms = ecDbbms[i].split("-"); | |
| 129 | - if (fb_ecIds.length != 2 || fb_ecDbbms.length != 2) { // 只能早晚分班 | |
| 130 | - errorInfo.getErrorDescList().add("只能早晚分班,请重新编辑保存!"); | |
| 131 | - break; | |
| 132 | - } else { | |
| 133 | - EmployeeConfigInfo fb_ecInfo1 = wrapInput.getEcInfos().get(NumberUtils.toLong(fb_ecIds[0])); | |
| 134 | - EmployeeConfigInfo fb_ecInfo2 = wrapInput.getEcInfos().get(NumberUtils.toLong(fb_ecIds[1])); | |
| 135 | - if (fb_ecInfo1 == null || fb_ecInfo2 == null) { // 分班的人员配置不在当前线路 | |
| 136 | - errorInfo.getErrorDescList().add("分班的人员配置不在当前线路,请重新编辑保存!"); | |
| 137 | - break; | |
| 138 | - } else { | |
| 139 | - if (StringUtils.isEmpty(fb_ecDbbms[0]) || | |
| 140 | - StringUtils.isEmpty(fb_ecDbbms[1]) || | |
| 141 | - !(fb_ecDbbms[0].equals(fb_ecInfo1.getDbbm())) || | |
| 142 | - !(fb_ecDbbms[1].equals(fb_ecInfo2.getDbbm()))) { // 分班人员配置id和搭班编码不对应 | |
| 143 | - errorInfo.getErrorDescList().add("分班人员配置id和搭班编码不对应,请重新编辑保存!"); | |
| 144 | - break; | |
| 145 | - } | |
| 146 | - } | |
| 147 | - } | |
| 148 | - | |
| 149 | - } else { | |
| 150 | - if (!NumberUtils.isDigits(ecIds[i])) { // 冗余的人员配置id必须是数字 | |
| 151 | - errorInfo.getErrorDescList().add("冗余的人员配置id必须是数字,请重新编辑保存!"); | |
| 152 | - break; | |
| 153 | - } | |
| 154 | - | |
| 155 | - EmployeeConfigInfo ecInfo = wrapInput.getEcInfos().get(NumberUtils.toLong(ecIds[i])); | |
| 156 | - if (ecInfo == null) { // 人员配置不在当前线路 | |
| 157 | - errorInfo.getErrorDescList().add("人员配置不在当前线路,请重新编辑保存!"); | |
| 158 | - break; | |
| 159 | - } else { | |
| 160 | - if (StringUtils.isEmpty(ecDbbms[i]) || | |
| 161 | - !(ecDbbms[i].equals(ecInfo.getDbbm()))) { // 人员配置id和搭班编码不对应 | |
| 162 | - errorInfo.getErrorDescList().add("人员配置id和搭班编码不对应,请重新编辑保存!"); | |
| 163 | - break; | |
| 164 | - } | |
| 165 | - } | |
| 166 | - } | |
| 167 | - } | |
| 168 | - | |
| 169 | - if (wrapInput.getEcStartIndex() < 1 || | |
| 170 | - wrapInput.getEcStartIndex() > ecIds.length) { // 人员起始索引溢出 | |
| 171 | - errorInfo.getErrorDescList().add("人员起始索引溢出,请重新编辑保存!"); | |
| 172 | - } | |
| 173 | - } else { | |
| 174 | - errorInfo.getErrorDescList().add("人员配置id和搭班编码个数不一致,请重新编辑保存!"); | |
| 175 | - } | |
| 176 | - } | |
| 177 | - | |
| 178 | - if (errorInfo.getErrorDescList().size() > 0) { | |
| 179 | - errorInfoContext.errorCount ++; | |
| 180 | - errorInfoContext.errorInfoMap.put(wrapInput.getRuleId(), errorInfo); | |
| 181 | - } | |
| 182 | - | |
| 183 | - } | |
| 184 | - | |
| 185 | - @Override | |
| 186 | - public void reverse(Serializable serializable, Object o) throws Exception { | |
| 187 | - ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 188 | - WrapInput wrapInput = (WrapInput) o; | |
| 189 | - | |
| 190 | - if (errorInfoContext.errorInfoMap.get(wrapInput.getRuleId()) != null) { | |
| 191 | - errorInfoContext.errorInfoMap.remove(wrapInput.getRuleId()); | |
| 192 | - errorInfoContext.errorCount --; | |
| 193 | - } | |
| 194 | - } | |
| 195 | - | |
| 196 | - @Override | |
| 197 | - public Object getResult(Serializable serializable) throws Exception { | |
| 198 | - ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 199 | - return errorInfoContext.errorInfoMap; | |
| 200 | - } | |
| 201 | - | |
| 202 | - @Override | |
| 203 | - public boolean supportsReverse() { | |
| 204 | - return true; | |
| 205 | - } | |
| 206 | - | |
| 207 | - @Override | |
| 208 | - public Class<?> getResultType() { | |
| 209 | - return Map.class; | |
| 210 | - } | |
| 211 | - | |
| 212 | -} | |
| 1 | +package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | + | |
| 3 | + | |
| 4 | +import com.bsth.entity.schedule.EmployeeConfigInfo; | |
| 5 | +import com.bsth.entity.schedule.GuideboardInfo; | |
| 6 | +import org.apache.commons.lang3.StringUtils; | |
| 7 | +import org.apache.commons.lang3.math.NumberUtils; | |
| 8 | +import org.kie.api.runtime.rule.AccumulateFunction; | |
| 9 | + | |
| 10 | +import java.io.*; | |
| 11 | +import java.util.HashMap; | |
| 12 | +import java.util.Map; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 查找错误函数。 | |
| 16 | + */ | |
| 17 | +public class ErrorInfoFunction implements AccumulateFunction { | |
| 18 | + @Override | |
| 19 | + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | |
| 20 | + | |
| 21 | + } | |
| 22 | + | |
| 23 | + @Override | |
| 24 | + public void writeExternal(ObjectOutput out) throws IOException { | |
| 25 | + | |
| 26 | + } | |
| 27 | + | |
| 28 | + protected static class ErrorInfoContext implements Externalizable { | |
| 29 | + /** 错误数量 */ | |
| 30 | + public Integer errorCount = 0; | |
| 31 | + /** 错误Map,Map<规则id,errorInfo> */ | |
| 32 | + public Map<Long, ValidateRuleResult.ErrorInfo> errorInfoMap = new HashMap<>(); | |
| 33 | + | |
| 34 | + public ErrorInfoContext() { | |
| 35 | + | |
| 36 | + } | |
| 37 | + | |
| 38 | + @Override | |
| 39 | + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { | |
| 40 | + errorCount = in.readInt(); | |
| 41 | + errorInfoMap = (Map<Long, ValidateRuleResult.ErrorInfo>) in.readObject(); | |
| 42 | + | |
| 43 | + } | |
| 44 | + | |
| 45 | + @Override | |
| 46 | + public void writeExternal(ObjectOutput out) throws IOException { | |
| 47 | + out.writeInt(errorCount); | |
| 48 | + out.writeObject(errorInfoMap); | |
| 49 | + } | |
| 50 | + | |
| 51 | + } | |
| 52 | + | |
| 53 | + @Override | |
| 54 | + public Serializable createContext() { | |
| 55 | + return new ErrorInfoContext(); | |
| 56 | + } | |
| 57 | + | |
| 58 | + @Override | |
| 59 | + public void init(Serializable serializable) throws Exception { | |
| 60 | + ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 61 | + errorInfoContext.errorCount = 0; | |
| 62 | + errorInfoContext.errorInfoMap = new HashMap<>(); | |
| 63 | + } | |
| 64 | + | |
| 65 | + @Override | |
| 66 | + public void accumulate(Serializable serializable, Object o) { | |
| 67 | + ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 68 | + WrapInput wrapInput = (WrapInput) o; | |
| 69 | + | |
| 70 | + ValidateRuleResult.ErrorInfo errorInfo = new ValidateRuleResult.ErrorInfo(); | |
| 71 | + errorInfo.setRuleId(wrapInput.getRuleId()); | |
| 72 | + errorInfo.setClZbh(wrapInput.getClZbh()); | |
| 73 | + errorInfo.setQyrq(wrapInput.getQyrq()); | |
| 74 | + | |
| 75 | + // 1、车辆配置验证 | |
| 76 | + if (StringUtils.isNotEmpty(wrapInput.getClZbh())) { // 自编号不能为空 | |
| 77 | + if (wrapInput.getCcInfos().get(wrapInput.getClZbh()) == null) { // 车辆配置不在当前线路上 | |
| 78 | + errorInfo.getErrorDescList().add("车辆配置不在当前线路,请重新编辑保存!"); | |
| 79 | + } | |
| 80 | + } else { | |
| 81 | + errorInfo.getErrorDescList().add("自编号不能为空,请重新编辑保存!"); | |
| 82 | + } | |
| 83 | + | |
| 84 | + // 2、路牌id,路牌名字,路牌起始索引验证 | |
| 85 | + if (StringUtils.isNotEmpty(wrapInput.getLpIds()) && | |
| 86 | + StringUtils.isNotEmpty(wrapInput.getLpNames())) { // 冗余的路牌id和路牌名字都不能为空 | |
| 87 | + String[] lpIds = wrapInput.getLpIds().split(","); | |
| 88 | + String[] lpNames = wrapInput.getLpNames().split(","); | |
| 89 | + if (lpIds.length == lpNames.length) { // 路牌id和路牌名字个数一致 | |
| 90 | + for (int i = 0; i < lpIds.length; i++) { | |
| 91 | + if (!NumberUtils.isDigits(lpIds[i])) { // 冗余路牌id必须是数字 | |
| 92 | + errorInfo.getErrorDescList().add("冗余路牌id必须是数字,请重新编辑保存!"); | |
| 93 | + break; | |
| 94 | + } | |
| 95 | + | |
| 96 | + GuideboardInfo lpInfo = wrapInput.getLpInfos().get(NumberUtils.toLong(lpIds[i])); | |
| 97 | + if (lpInfo == null) { // 路牌不在当前线路上 | |
| 98 | + errorInfo.getErrorDescList().add("路牌不在当前线路上,请重新编辑保存!"); | |
| 99 | + } else { | |
| 100 | + if (StringUtils.isEmpty(lpNames[i]) || | |
| 101 | + !(lpNames[i].equals(lpInfo.getLpName()))) { // 路牌id和路牌名字不对应 | |
| 102 | + errorInfo.getErrorDescList().add("路牌id和路牌名字不对应,请重新编辑保存!"); | |
| 103 | + break; | |
| 104 | + } | |
| 105 | + } | |
| 106 | + } | |
| 107 | + | |
| 108 | + if (wrapInput.getLpStartIndex() < 1 || | |
| 109 | + wrapInput.getLpStartIndex() > lpIds.length) { // 路牌起始索引溢出 | |
| 110 | + errorInfo.getErrorDescList().add("路牌起始索引溢出,请重新编辑保存!"); | |
| 111 | + } | |
| 112 | + } else { | |
| 113 | + errorInfo.getErrorDescList().add("路牌id和路牌名字个数不一致,请重新编辑保存!"); | |
| 114 | + } | |
| 115 | + } else { | |
| 116 | + errorInfo.getErrorDescList().add("冗余的路牌id和路牌名字都不能为空,请重新编辑保存!"); | |
| 117 | + } | |
| 118 | + | |
| 119 | + // 3、人员配置,搭班编码,人员起始索引验证 | |
| 120 | + if (StringUtils.isNotEmpty(wrapInput.getEcIds()) && | |
| 121 | + StringUtils.isNotEmpty(wrapInput.getEcDbbms())) { // 冗余的人员配置id和人员搭班编码都不能为空 | |
| 122 | + String[] ecIds = wrapInput.getEcIds().split(","); | |
| 123 | + String[] ecDbbms = wrapInput.getEcDbbms().split(","); | |
| 124 | + if (ecIds.length == ecDbbms.length) { // 人员配置id和搭班编码个数一致 | |
| 125 | + for (int i = 0; i < ecIds.length; i++) { | |
| 126 | + if (ecIds[i].contains("-")) { // 分班标识 | |
| 127 | + String[] fb_ecIds = ecIds[i].split("-"); | |
| 128 | + String[] fb_ecDbbms = ecDbbms[i].split("-"); | |
| 129 | + if (fb_ecIds.length != 2 || fb_ecDbbms.length != 2) { // 只能早晚分班 | |
| 130 | + errorInfo.getErrorDescList().add("只能早晚分班,请重新编辑保存!"); | |
| 131 | + break; | |
| 132 | + } else { | |
| 133 | + EmployeeConfigInfo fb_ecInfo1 = wrapInput.getEcInfos().get(NumberUtils.toLong(fb_ecIds[0])); | |
| 134 | + EmployeeConfigInfo fb_ecInfo2 = wrapInput.getEcInfos().get(NumberUtils.toLong(fb_ecIds[1])); | |
| 135 | + if (fb_ecInfo1 == null || fb_ecInfo2 == null) { // 分班的人员配置不在当前线路 | |
| 136 | + errorInfo.getErrorDescList().add("分班的人员配置不在当前线路,请重新编辑保存!"); | |
| 137 | + break; | |
| 138 | + } else { | |
| 139 | + if (StringUtils.isEmpty(fb_ecDbbms[0]) || | |
| 140 | + StringUtils.isEmpty(fb_ecDbbms[1]) || | |
| 141 | + !(fb_ecDbbms[0].equals(fb_ecInfo1.getDbbm())) || | |
| 142 | + !(fb_ecDbbms[1].equals(fb_ecInfo2.getDbbm()))) { // 分班人员配置id和搭班编码不对应 | |
| 143 | + errorInfo.getErrorDescList().add("分班人员配置id和搭班编码不对应,请重新编辑保存!"); | |
| 144 | + break; | |
| 145 | + } | |
| 146 | + } | |
| 147 | + } | |
| 148 | + | |
| 149 | + } else { | |
| 150 | + if (!NumberUtils.isDigits(ecIds[i])) { // 冗余的人员配置id必须是数字 | |
| 151 | + errorInfo.getErrorDescList().add("冗余的人员配置id必须是数字,请重新编辑保存!"); | |
| 152 | + break; | |
| 153 | + } | |
| 154 | + | |
| 155 | + EmployeeConfigInfo ecInfo = wrapInput.getEcInfos().get(NumberUtils.toLong(ecIds[i])); | |
| 156 | + if (ecInfo == null) { // 人员配置不在当前线路 | |
| 157 | + errorInfo.getErrorDescList().add("人员配置不在当前线路,请重新编辑保存!"); | |
| 158 | + break; | |
| 159 | + } else { | |
| 160 | + if (StringUtils.isEmpty(ecDbbms[i]) || | |
| 161 | + !(ecDbbms[i].equals(ecInfo.getDbbm()))) { // 人员配置id和搭班编码不对应 | |
| 162 | + errorInfo.getErrorDescList().add("人员配置id和搭班编码不对应,请重新编辑保存!"); | |
| 163 | + break; | |
| 164 | + } | |
| 165 | + } | |
| 166 | + } | |
| 167 | + } | |
| 168 | + | |
| 169 | + if (wrapInput.getEcStartIndex() < 1 || | |
| 170 | + wrapInput.getEcStartIndex() > ecIds.length) { // 人员起始索引溢出 | |
| 171 | + errorInfo.getErrorDescList().add("人员起始索引溢出,请重新编辑保存!"); | |
| 172 | + } | |
| 173 | + } else { | |
| 174 | + errorInfo.getErrorDescList().add("人员配置id和搭班编码个数不一致,请重新编辑保存!"); | |
| 175 | + } | |
| 176 | + } | |
| 177 | + | |
| 178 | + if (errorInfo.getErrorDescList().size() > 0) { | |
| 179 | + errorInfoContext.errorCount ++; | |
| 180 | + errorInfoContext.errorInfoMap.put(wrapInput.getRuleId(), errorInfo); | |
| 181 | + } | |
| 182 | + | |
| 183 | + } | |
| 184 | + | |
| 185 | + @Override | |
| 186 | + public void reverse(Serializable serializable, Object o) throws Exception { | |
| 187 | + ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 188 | + WrapInput wrapInput = (WrapInput) o; | |
| 189 | + | |
| 190 | + if (errorInfoContext.errorInfoMap.get(wrapInput.getRuleId()) != null) { | |
| 191 | + errorInfoContext.errorInfoMap.remove(wrapInput.getRuleId()); | |
| 192 | + errorInfoContext.errorCount --; | |
| 193 | + } | |
| 194 | + } | |
| 195 | + | |
| 196 | + @Override | |
| 197 | + public Object getResult(Serializable serializable) throws Exception { | |
| 198 | + ErrorInfoContext errorInfoContext = (ErrorInfoContext) serializable; | |
| 199 | + return errorInfoContext.errorInfoMap; | |
| 200 | + } | |
| 201 | + | |
| 202 | + @Override | |
| 203 | + public boolean supportsReverse() { | |
| 204 | + return true; | |
| 205 | + } | |
| 206 | + | |
| 207 | + @Override | |
| 208 | + public Class<?> getResultType() { | |
| 209 | + return Map.class; | |
| 210 | + } | |
| 211 | + | |
| 212 | +} | ... | ... |
src/main/java/com/bsth/service/schedule/impl/plan/kBase3/validate/rule/ValidateRuleResult.java
| 1 | -package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | - | |
| 3 | -import java.util.ArrayList; | |
| 4 | -import java.util.Date; | |
| 5 | -import java.util.List; | |
| 6 | - | |
| 7 | -/** | |
| 8 | - * 输出结果值。 | |
| 9 | - */ | |
| 10 | -public class ValidateRuleResult { | |
| 11 | - /** 线路id */ | |
| 12 | - private Integer xlId; | |
| 13 | - /** 规则总数量 */ | |
| 14 | - private Integer count; | |
| 15 | - /** 启用的规则数量 */ | |
| 16 | - private Integer qyCount; | |
| 17 | - /** 启用规则中的错误数量 */ | |
| 18 | - private Integer qyErrorCount; | |
| 19 | - /** 错误列表 */ | |
| 20 | - private List<ErrorInfo> errorInfos = new ArrayList<>(); | |
| 21 | - | |
| 22 | - public Integer getXlId() { | |
| 23 | - return xlId; | |
| 24 | - } | |
| 25 | - | |
| 26 | - public void setXlId(Integer xlId) { | |
| 27 | - this.xlId = xlId; | |
| 28 | - } | |
| 29 | - | |
| 30 | - public Integer getCount() { | |
| 31 | - return count; | |
| 32 | - } | |
| 33 | - | |
| 34 | - public void setCount(Integer count) { | |
| 35 | - this.count = count; | |
| 36 | - } | |
| 37 | - | |
| 38 | - public Integer getQyCount() { | |
| 39 | - return qyCount; | |
| 40 | - } | |
| 41 | - | |
| 42 | - public void setQyCount(Integer qyCount) { | |
| 43 | - this.qyCount = qyCount; | |
| 44 | - } | |
| 45 | - | |
| 46 | - public Integer getQyErrorCount() { | |
| 47 | - return qyErrorCount; | |
| 48 | - } | |
| 49 | - | |
| 50 | - public void setQyErrorCount(Integer qyErrorCount) { | |
| 51 | - this.qyErrorCount = qyErrorCount; | |
| 52 | - } | |
| 53 | - | |
| 54 | - public List<ErrorInfo> getErrorInfos() { | |
| 55 | - return errorInfos; | |
| 56 | - } | |
| 57 | - | |
| 58 | - public void setErrorInfos(List<ErrorInfo> errorInfos) { | |
| 59 | - this.errorInfos = errorInfos; | |
| 60 | - } | |
| 61 | - | |
| 62 | - public static class ErrorInfo { | |
| 63 | - /** 规则id */ | |
| 64 | - private Long ruleId; | |
| 65 | - /** 车辆自编号 */ | |
| 66 | - private String clZbh; | |
| 67 | - /** 启用日期 */ | |
| 68 | - private Date qyrq; | |
| 69 | - /** 错误描述 */ | |
| 70 | - private List<String> errorDescList = new ArrayList<>(); | |
| 71 | - | |
| 72 | - public Long getRuleId() { | |
| 73 | - return ruleId; | |
| 74 | - } | |
| 75 | - | |
| 76 | - public void setRuleId(Long ruleId) { | |
| 77 | - this.ruleId = ruleId; | |
| 78 | - } | |
| 79 | - | |
| 80 | - public String getClZbh() { | |
| 81 | - return clZbh; | |
| 82 | - } | |
| 83 | - | |
| 84 | - public void setClZbh(String clZbh) { | |
| 85 | - this.clZbh = clZbh; | |
| 86 | - } | |
| 87 | - | |
| 88 | - public Date getQyrq() { | |
| 89 | - return qyrq; | |
| 90 | - } | |
| 91 | - | |
| 92 | - public void setQyrq(Date qyrq) { | |
| 93 | - this.qyrq = qyrq; | |
| 94 | - } | |
| 95 | - | |
| 96 | - public List<String> getErrorDescList() { | |
| 97 | - return errorDescList; | |
| 98 | - } | |
| 99 | - | |
| 100 | - public void setErrorDescList(List<String> errorDescList) { | |
| 101 | - this.errorDescList = errorDescList; | |
| 102 | - } | |
| 103 | - } | |
| 104 | -} | |
| 1 | +package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | + | |
| 3 | +import java.util.ArrayList; | |
| 4 | +import java.util.Date; | |
| 5 | +import java.util.List; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * 输出结果值。 | |
| 9 | + */ | |
| 10 | +public class ValidateRuleResult { | |
| 11 | + /** 线路id */ | |
| 12 | + private Integer xlId; | |
| 13 | + /** 规则总数量 */ | |
| 14 | + private Integer count; | |
| 15 | + /** 启用的规则数量 */ | |
| 16 | + private Integer qyCount; | |
| 17 | + /** 启用规则中的错误数量 */ | |
| 18 | + private Integer qyErrorCount; | |
| 19 | + /** 错误列表 */ | |
| 20 | + private List<ErrorInfo> errorInfos = new ArrayList<>(); | |
| 21 | + | |
| 22 | + public Integer getXlId() { | |
| 23 | + return xlId; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public void setXlId(Integer xlId) { | |
| 27 | + this.xlId = xlId; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public Integer getCount() { | |
| 31 | + return count; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public void setCount(Integer count) { | |
| 35 | + this.count = count; | |
| 36 | + } | |
| 37 | + | |
| 38 | + public Integer getQyCount() { | |
| 39 | + return qyCount; | |
| 40 | + } | |
| 41 | + | |
| 42 | + public void setQyCount(Integer qyCount) { | |
| 43 | + this.qyCount = qyCount; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public Integer getQyErrorCount() { | |
| 47 | + return qyErrorCount; | |
| 48 | + } | |
| 49 | + | |
| 50 | + public void setQyErrorCount(Integer qyErrorCount) { | |
| 51 | + this.qyErrorCount = qyErrorCount; | |
| 52 | + } | |
| 53 | + | |
| 54 | + public List<ErrorInfo> getErrorInfos() { | |
| 55 | + return errorInfos; | |
| 56 | + } | |
| 57 | + | |
| 58 | + public void setErrorInfos(List<ErrorInfo> errorInfos) { | |
| 59 | + this.errorInfos = errorInfos; | |
| 60 | + } | |
| 61 | + | |
| 62 | + public static class ErrorInfo { | |
| 63 | + /** 规则id */ | |
| 64 | + private Long ruleId; | |
| 65 | + /** 车辆自编号 */ | |
| 66 | + private String clZbh; | |
| 67 | + /** 启用日期 */ | |
| 68 | + private Date qyrq; | |
| 69 | + /** 错误描述 */ | |
| 70 | + private List<String> errorDescList = new ArrayList<>(); | |
| 71 | + | |
| 72 | + public Long getRuleId() { | |
| 73 | + return ruleId; | |
| 74 | + } | |
| 75 | + | |
| 76 | + public void setRuleId(Long ruleId) { | |
| 77 | + this.ruleId = ruleId; | |
| 78 | + } | |
| 79 | + | |
| 80 | + public String getClZbh() { | |
| 81 | + return clZbh; | |
| 82 | + } | |
| 83 | + | |
| 84 | + public void setClZbh(String clZbh) { | |
| 85 | + this.clZbh = clZbh; | |
| 86 | + } | |
| 87 | + | |
| 88 | + public Date getQyrq() { | |
| 89 | + return qyrq; | |
| 90 | + } | |
| 91 | + | |
| 92 | + public void setQyrq(Date qyrq) { | |
| 93 | + this.qyrq = qyrq; | |
| 94 | + } | |
| 95 | + | |
| 96 | + public List<String> getErrorDescList() { | |
| 97 | + return errorDescList; | |
| 98 | + } | |
| 99 | + | |
| 100 | + public void setErrorDescList(List<String> errorDescList) { | |
| 101 | + this.errorDescList = errorDescList; | |
| 102 | + } | |
| 103 | + } | |
| 104 | +} | ... | ... |
src/main/java/com/bsth/service/schedule/impl/plan/kBase3/validate/rule/WrapInput.java
| 1 | -package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | - | |
| 3 | -import com.bsth.entity.schedule.CarConfigInfo; | |
| 4 | -import com.bsth.entity.schedule.EmployeeConfigInfo; | |
| 5 | -import com.bsth.entity.schedule.GuideboardInfo; | |
| 6 | -import com.bsth.entity.schedule.rule.ScheduleRule1Flat; | |
| 7 | -import org.springframework.util.CollectionUtils; | |
| 8 | - | |
| 9 | -import java.util.*; | |
| 10 | - | |
| 11 | -/** | |
| 12 | - * 聚合输入的待判定数据。 | |
| 13 | - */ | |
| 14 | -public class WrapInput { | |
| 15 | - /** 线路Id */ | |
| 16 | - private Integer xlId; | |
| 17 | - /** 车辆自编号 */ | |
| 18 | - private String clZbh; | |
| 19 | - /** 路牌id列表 */ | |
| 20 | - private String lpIds; | |
| 21 | - /** 路牌名字列表 */ | |
| 22 | - private String lpNames; | |
| 23 | - /** 人员配置列表 */ | |
| 24 | - private String ecIds; | |
| 25 | - /** 人员搭班编码列表 */ | |
| 26 | - private String ecDbbms; | |
| 27 | - /** 路牌循环起始索引 */ | |
| 28 | - private Integer lpStartIndex; | |
| 29 | - /** 人员循环起始索引 */ | |
| 30 | - private Integer ecStartIndex; | |
| 31 | - /** 规则id */ | |
| 32 | - private Long ruleId; | |
| 33 | - /** 启用日期 */ | |
| 34 | - private Date qyrq; | |
| 35 | - | |
| 36 | - private Map<String, CarConfigInfo> ccInfos = new HashMap<>(); | |
| 37 | - private Map<Long, GuideboardInfo> lpInfos = new HashMap<>(); | |
| 38 | - private Map<Long, EmployeeConfigInfo> ecInfos = new HashMap<>(); | |
| 39 | - | |
| 40 | - public WrapInput(ScheduleRule1Flat r, | |
| 41 | - Map<String, CarConfigInfo> cc, | |
| 42 | - Map<Long, GuideboardInfo> lp, | |
| 43 | - Map<Long, EmployeeConfigInfo> ec) { | |
| 44 | - this.xlId = r.getXl().getId(); | |
| 45 | - this.clZbh = r.getCarConfigInfo().getCl().getInsideCode(); | |
| 46 | - this.lpIds = r.getLpIds(); | |
| 47 | - this.lpNames = r.getLpNames(); | |
| 48 | - this.ecIds = r.getRyConfigIds(); | |
| 49 | - this.ecDbbms = r.getRyDbbms(); | |
| 50 | - this.lpStartIndex = r.getLpStart(); | |
| 51 | - this.ecStartIndex = r.getRyStart(); | |
| 52 | - this.ruleId = r.getId(); | |
| 53 | - this.qyrq = r.getQyrq(); | |
| 54 | - | |
| 55 | - if (!CollectionUtils.isEmpty(cc)) { | |
| 56 | - this.ccInfos.putAll(cc); | |
| 57 | - } | |
| 58 | - if (!CollectionUtils.isEmpty(lp)) { | |
| 59 | - this.lpInfos.putAll(lp); | |
| 60 | - } | |
| 61 | - if (!CollectionUtils.isEmpty(ec)) { | |
| 62 | - this.ecInfos.putAll(ec); | |
| 63 | - } | |
| 64 | - | |
| 65 | - } | |
| 66 | - | |
| 67 | - public Integer getXlId() { | |
| 68 | - return xlId; | |
| 69 | - } | |
| 70 | - | |
| 71 | - public void setXlId(Integer xlId) { | |
| 72 | - this.xlId = xlId; | |
| 73 | - } | |
| 74 | - | |
| 75 | - public String getClZbh() { | |
| 76 | - return clZbh; | |
| 77 | - } | |
| 78 | - | |
| 79 | - public void setClZbh(String clZbh) { | |
| 80 | - this.clZbh = clZbh; | |
| 81 | - } | |
| 82 | - | |
| 83 | - public String getLpIds() { | |
| 84 | - return lpIds; | |
| 85 | - } | |
| 86 | - | |
| 87 | - public void setLpIds(String lpIds) { | |
| 88 | - this.lpIds = lpIds; | |
| 89 | - } | |
| 90 | - | |
| 91 | - public String getLpNames() { | |
| 92 | - return lpNames; | |
| 93 | - } | |
| 94 | - | |
| 95 | - public void setLpNames(String lpNames) { | |
| 96 | - this.lpNames = lpNames; | |
| 97 | - } | |
| 98 | - | |
| 99 | - public String getEcIds() { | |
| 100 | - return ecIds; | |
| 101 | - } | |
| 102 | - | |
| 103 | - public void setEcIds(String ecIds) { | |
| 104 | - this.ecIds = ecIds; | |
| 105 | - } | |
| 106 | - | |
| 107 | - public String getEcDbbms() { | |
| 108 | - return ecDbbms; | |
| 109 | - } | |
| 110 | - | |
| 111 | - public void setEcDbbms(String ecDbbms) { | |
| 112 | - this.ecDbbms = ecDbbms; | |
| 113 | - } | |
| 114 | - | |
| 115 | - public Integer getLpStartIndex() { | |
| 116 | - return lpStartIndex; | |
| 117 | - } | |
| 118 | - | |
| 119 | - public void setLpStartIndex(Integer lpStartIndex) { | |
| 120 | - this.lpStartIndex = lpStartIndex; | |
| 121 | - } | |
| 122 | - | |
| 123 | - public Integer getEcStartIndex() { | |
| 124 | - return ecStartIndex; | |
| 125 | - } | |
| 126 | - | |
| 127 | - public void setEcStartIndex(Integer ecStartIndex) { | |
| 128 | - this.ecStartIndex = ecStartIndex; | |
| 129 | - } | |
| 130 | - | |
| 131 | - public Long getRuleId() { | |
| 132 | - return ruleId; | |
| 133 | - } | |
| 134 | - | |
| 135 | - public void setRuleId(Long ruleId) { | |
| 136 | - this.ruleId = ruleId; | |
| 137 | - } | |
| 138 | - | |
| 139 | - public Date getQyrq() { | |
| 140 | - return qyrq; | |
| 141 | - } | |
| 142 | - | |
| 143 | - public void setQyrq(Date qyrq) { | |
| 144 | - this.qyrq = qyrq; | |
| 145 | - } | |
| 146 | - | |
| 147 | - public Map<String, CarConfigInfo> getCcInfos() { | |
| 148 | - return ccInfos; | |
| 149 | - } | |
| 150 | - | |
| 151 | - public void setCcInfos(Map<String, CarConfigInfo> ccInfos) { | |
| 152 | - this.ccInfos = ccInfos; | |
| 153 | - } | |
| 154 | - | |
| 155 | - public Map<Long, GuideboardInfo> getLpInfos() { | |
| 156 | - return lpInfos; | |
| 157 | - } | |
| 158 | - | |
| 159 | - public void setLpInfos(Map<Long, GuideboardInfo> lpInfos) { | |
| 160 | - this.lpInfos = lpInfos; | |
| 161 | - } | |
| 162 | - | |
| 163 | - public Map<Long, EmployeeConfigInfo> getEcInfos() { | |
| 164 | - return ecInfos; | |
| 165 | - } | |
| 166 | - | |
| 167 | - public void setEcInfos(Map<Long, EmployeeConfigInfo> ecInfos) { | |
| 168 | - this.ecInfos = ecInfos; | |
| 169 | - } | |
| 170 | -} | |
| 1 | +package com.bsth.service.schedule.impl.plan.kBase3.validate.rule; | |
| 2 | + | |
| 3 | +import com.bsth.entity.schedule.CarConfigInfo; | |
| 4 | +import com.bsth.entity.schedule.EmployeeConfigInfo; | |
| 5 | +import com.bsth.entity.schedule.GuideboardInfo; | |
| 6 | +import com.bsth.entity.schedule.rule.ScheduleRule1Flat; | |
| 7 | +import org.springframework.util.CollectionUtils; | |
| 8 | + | |
| 9 | +import java.util.*; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * 聚合输入的待判定数据。 | |
| 13 | + */ | |
| 14 | +public class WrapInput { | |
| 15 | + /** 线路Id */ | |
| 16 | + private Integer xlId; | |
| 17 | + /** 车辆自编号 */ | |
| 18 | + private String clZbh; | |
| 19 | + /** 路牌id列表 */ | |
| 20 | + private String lpIds; | |
| 21 | + /** 路牌名字列表 */ | |
| 22 | + private String lpNames; | |
| 23 | + /** 人员配置列表 */ | |
| 24 | + private String ecIds; | |
| 25 | + /** 人员搭班编码列表 */ | |
| 26 | + private String ecDbbms; | |
| 27 | + /** 路牌循环起始索引 */ | |
| 28 | + private Integer lpStartIndex; | |
| 29 | + /** 人员循环起始索引 */ | |
| 30 | + private Integer ecStartIndex; | |
| 31 | + /** 规则id */ | |
| 32 | + private Long ruleId; | |
| 33 | + /** 启用日期 */ | |
| 34 | + private Date qyrq; | |
| 35 | + | |
| 36 | + private Map<String, CarConfigInfo> ccInfos = new HashMap<>(); | |
| 37 | + private Map<Long, GuideboardInfo> lpInfos = new HashMap<>(); | |
| 38 | + private Map<Long, EmployeeConfigInfo> ecInfos = new HashMap<>(); | |
| 39 | + | |
| 40 | + public WrapInput(ScheduleRule1Flat r, | |
| 41 | + Map<String, CarConfigInfo> cc, | |
| 42 | + Map<Long, GuideboardInfo> lp, | |
| 43 | + Map<Long, EmployeeConfigInfo> ec) { | |
| 44 | + this.xlId = r.getXl().getId(); | |
| 45 | + this.clZbh = r.getCarConfigInfo().getCl().getInsideCode(); | |
| 46 | + this.lpIds = r.getLpIds(); | |
| 47 | + this.lpNames = r.getLpNames(); | |
| 48 | + this.ecIds = r.getRyConfigIds(); | |
| 49 | + this.ecDbbms = r.getRyDbbms(); | |
| 50 | + this.lpStartIndex = r.getLpStart(); | |
| 51 | + this.ecStartIndex = r.getRyStart(); | |
| 52 | + this.ruleId = r.getId(); | |
| 53 | + this.qyrq = r.getQyrq(); | |
| 54 | + | |
| 55 | + if (!CollectionUtils.isEmpty(cc)) { | |
| 56 | + this.ccInfos.putAll(cc); | |
| 57 | + } | |
| 58 | + if (!CollectionUtils.isEmpty(lp)) { | |
| 59 | + this.lpInfos.putAll(lp); | |
| 60 | + } | |
| 61 | + if (!CollectionUtils.isEmpty(ec)) { | |
| 62 | + this.ecInfos.putAll(ec); | |
| 63 | + } | |
| 64 | + | |
| 65 | + } | |
| 66 | + | |
| 67 | + public Integer getXlId() { | |
| 68 | + return xlId; | |
| 69 | + } | |
| 70 | + | |
| 71 | + public void setXlId(Integer xlId) { | |
| 72 | + this.xlId = xlId; | |
| 73 | + } | |
| 74 | + | |
| 75 | + public String getClZbh() { | |
| 76 | + return clZbh; | |
| 77 | + } | |
| 78 | + | |
| 79 | + public void setClZbh(String clZbh) { | |
| 80 | + this.clZbh = clZbh; | |
| 81 | + } | |
| 82 | + | |
| 83 | + public String getLpIds() { | |
| 84 | + return lpIds; | |
| 85 | + } | |
| 86 | + | |
| 87 | + public void setLpIds(String lpIds) { | |
| 88 | + this.lpIds = lpIds; | |
| 89 | + } | |
| 90 | + | |
| 91 | + public String getLpNames() { | |
| 92 | + return lpNames; | |
| 93 | + } | |
| 94 | + | |
| 95 | + public void setLpNames(String lpNames) { | |
| 96 | + this.lpNames = lpNames; | |
| 97 | + } | |
| 98 | + | |
| 99 | + public String getEcIds() { | |
| 100 | + return ecIds; | |
| 101 | + } | |
| 102 | + | |
| 103 | + public void setEcIds(String ecIds) { | |
| 104 | + this.ecIds = ecIds; | |
| 105 | + } | |
| 106 | + | |
| 107 | + public String getEcDbbms() { | |
| 108 | + return ecDbbms; | |
| 109 | + } | |
| 110 | + | |
| 111 | + public void setEcDbbms(String ecDbbms) { | |
| 112 | + this.ecDbbms = ecDbbms; | |
| 113 | + } | |
| 114 | + | |
| 115 | + public Integer getLpStartIndex() { | |
| 116 | + return lpStartIndex; | |
| 117 | + } | |
| 118 | + | |
| 119 | + public void setLpStartIndex(Integer lpStartIndex) { | |
| 120 | + this.lpStartIndex = lpStartIndex; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public Integer getEcStartIndex() { | |
| 124 | + return ecStartIndex; | |
| 125 | + } | |
| 126 | + | |
| 127 | + public void setEcStartIndex(Integer ecStartIndex) { | |
| 128 | + this.ecStartIndex = ecStartIndex; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public Long getRuleId() { | |
| 132 | + return ruleId; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public void setRuleId(Long ruleId) { | |
| 136 | + this.ruleId = ruleId; | |
| 137 | + } | |
| 138 | + | |
| 139 | + public Date getQyrq() { | |
| 140 | + return qyrq; | |
| 141 | + } | |
| 142 | + | |
| 143 | + public void setQyrq(Date qyrq) { | |
| 144 | + this.qyrq = qyrq; | |
| 145 | + } | |
| 146 | + | |
| 147 | + public Map<String, CarConfigInfo> getCcInfos() { | |
| 148 | + return ccInfos; | |
| 149 | + } | |
| 150 | + | |
| 151 | + public void setCcInfos(Map<String, CarConfigInfo> ccInfos) { | |
| 152 | + this.ccInfos = ccInfos; | |
| 153 | + } | |
| 154 | + | |
| 155 | + public Map<Long, GuideboardInfo> getLpInfos() { | |
| 156 | + return lpInfos; | |
| 157 | + } | |
| 158 | + | |
| 159 | + public void setLpInfos(Map<Long, GuideboardInfo> lpInfos) { | |
| 160 | + this.lpInfos = lpInfos; | |
| 161 | + } | |
| 162 | + | |
| 163 | + public Map<Long, EmployeeConfigInfo> getEcInfos() { | |
| 164 | + return ecInfos; | |
| 165 | + } | |
| 166 | + | |
| 167 | + public void setEcInfos(Map<Long, EmployeeConfigInfo> ecInfos) { | |
| 168 | + this.ecInfos = ecInfos; | |
| 169 | + } | |
| 170 | +} | ... | ... |
src/main/java/com/bsth/service/sys/RoleService.java
| 1 | 1 | package com.bsth.service.sys; |
| 2 | 2 | |
| 3 | +import java.util.List; | |
| 3 | 4 | import java.util.Map; |
| 4 | 5 | |
| 5 | 6 | import com.bsth.entity.sys.Role; |
| ... | ... | @@ -10,4 +11,6 @@ public interface RoleService extends BaseService<Role, Integer>{ |
| 10 | 11 | Map<String, Object> settRoleModules(Integer roleId, String mIds); |
| 11 | 12 | |
| 12 | 13 | Map<String, Object> roleInfo(Integer id); |
| 14 | + | |
| 15 | + List<Role> findAllByIds(String ids); | |
| 13 | 16 | } | ... | ... |
src/main/java/com/bsth/service/sys/impl/RoleServiceImpl.java
| ... | ... | @@ -103,4 +103,9 @@ public class RoleServiceImpl extends BaseServiceImpl<Role, Integer> implements |
| 103 | 103 | map.put("userNames", userNames); |
| 104 | 104 | return map; |
| 105 | 105 | } |
| 106 | + | |
| 107 | + @Override | |
| 108 | + public List<Role> findAllByIds(String ids) { | |
| 109 | + return roleRepository.findAllById(ids); | |
| 110 | + } | |
| 106 | 111 | } | ... | ... |
src/main/resources/application-dev.properties
| ... | ... | @@ -31,4 +31,4 @@ http.gps.real.cache.url= http://10.10.150.24:12580/realGps/all |
| 31 | 31 | ## gateway real data |
| 32 | 32 | http.gps.real.url= http://114.80.178.12:18080/transport_server/rtgps/ |
| 33 | 33 | ## gateway send directive |
| 34 | -http.send.directive = http://192.168.168.201:9090/transport_server/message/ | |
| 34 | +http.send.directive = http://192.168.168.201:9090/transport_server/message/ | |
| 35 | 35 | \ No newline at end of file | ... | ... |
src/main/resources/application-prod.properties
| ... | ... | @@ -17,22 +17,15 @@ spring.datasource.max-idle=8 |
| 17 | 17 | spring.datasource.min-idle=8 |
| 18 | 18 | spring.datasource.initial-size=5 |
| 19 | 19 | |
| 20 | -spring.datasource.max-wait=10000 | |
| 21 | -spring.datasource.remove-abandoned=true | |
| 22 | -spring.datasource.remove-abandoned-timeout=120 | |
| 23 | - | |
| 24 | 20 | spring.datasource.test-on-borrow=true |
| 25 | 21 | spring.datasource.test-on-connect=true |
| 26 | 22 | spring.datasource.test-on-return=true |
| 27 | 23 | spring.datasource.test-while-idle=true |
| 28 | 24 | spring.datasource.validation-query=select 1 |
| 29 | -spring.datasource.time-between-eviction-runs-millis=1800000 | |
| 30 | 25 | |
| 31 | 26 | ## gps client data |
| 32 | 27 | http.gps.real.cache.url= http://10.10.150.24:12580/realGps/all |
| 33 | 28 | ## gateway real data |
| 34 | 29 | http.gps.real.url= http://10.10.200.79:8080/transport_server/rtgps/ |
| 35 | 30 | ## gateway send directive |
| 36 | -http.send.directive = http://10.10.200.79:8080/transport_server/message/ | |
| 37 | -## maintenance report | |
| 38 | -http.report.url = http://116.247.73.122:9098/jgjwsystem_j2ee/ | |
| 39 | 31 | \ No newline at end of file |
| 32 | +http.send.directive = http://10.10.200.79:8080/transport_server/message/ | |
| 40 | 33 | \ No newline at end of file | ... | ... |