Commit 143d992a0dd60587e2b11563b98584e0df143e84

Authored by 潘钊
2 parents 16b49f3b c7913ee5

Merge branch 'minhang' into qingpu

# Conflicts:
#	src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
#	src/main/resources/ms-jdbc.properties
#	src/main/resources/static/real_control_v2/js/north/toolbar.js
Showing 52 changed files with 2784 additions and 759 deletions

Too many changes to show.

To preserve performance only 52 of 110 files are displayed.

src/main/java/com/bsth/common/Constants.java
@@ -21,6 +21,9 @@ public class Constants { @@ -21,6 +21,9 @@ public class Constants {
21 public static final String LOGIN_FAILURE = "/user/loginFailure"; 21 public static final String LOGIN_FAILURE = "/user/loginFailure";
22 public static final String CAPTCHA = "/captcha.jpg"; 22 public static final String CAPTCHA = "/captcha.jpg";
23 23
  24 + //对外的营运数据接口
  25 + public static final String SERVICE_INTERFACE = "/companyService/**";
  26 +
24 /** 27 /**
25 * 线调部分子页面不做拦截,便于浏览器缓存 28 * 线调部分子页面不做拦截,便于浏览器缓存
26 */ 29 */
src/main/java/com/bsth/controller/oil/CdlController.java 0 → 100644
  1 +package com.bsth.controller.oil;
  2 +
  3 +import java.util.Date;
  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.RestController;
  10 +
  11 +import com.bsth.controller.BaseController;
  12 +import com.bsth.entity.oil.Cdl;
  13 +import com.bsth.service.oil.CdlService;
  14 +
  15 +@RestController
  16 +@RequestMapping("cdl")
  17 +public class CdlController extends BaseController<Cdl, Integer>{
  18 + @Autowired
  19 + CdlService service;
  20 + @RequestMapping(value = "/save",method = RequestMethod.POST)
  21 + public Map<String, Object> saveCdl(Cdl t){
  22 +// SysUser user = SecurityUtils.getCurrentUser();
  23 + t.setUpdatetime(new Date());
  24 + /*SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  25 + try {
  26 + t.setUpdatetime(sdf.parse("2016-10-13"));
  27 + } catch (ParseException e) {
  28 + // TODO Auto-generated catch block
  29 + e.printStackTrace();
  30 + }*/
  31 + return service.save(t);
  32 + }
  33 +}
src/main/java/com/bsth/controller/oil/DlbController.java
1 package com.bsth.controller.oil; 1 package com.bsth.controller.oil;
2 2
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.data.domain.Page;
  8 +import org.springframework.data.domain.PageRequest;
  9 +import org.springframework.data.domain.Sort;
  10 +import org.springframework.data.domain.Sort.Direction;
3 import org.springframework.web.bind.annotation.RequestMapping; 11 import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RequestMethod;
  13 +import org.springframework.web.bind.annotation.RequestParam;
4 import org.springframework.web.bind.annotation.RestController; 14 import org.springframework.web.bind.annotation.RestController;
5 import com.bsth.controller.BaseController; 15 import com.bsth.controller.BaseController;
6 import com.bsth.entity.oil.Dlb; 16 import com.bsth.entity.oil.Dlb;
  17 +import com.bsth.entity.oil.Ylb;
  18 +import com.bsth.service.oil.DlbService;
  19 +import com.google.common.base.Splitter;
7 20
8 @RestController 21 @RestController
9 @RequestMapping("dlb") 22 @RequestMapping("dlb")
10 public class DlbController extends BaseController<Dlb, Integer>{ 23 public class DlbController extends BaseController<Dlb, Integer>{
  24 + @Autowired
  25 + DlbService service;
  26 + /**
  27 + *
  28 + * @Title: list
  29 + * @Description: TODO(多条件分页查询)
  30 + * @param @param map 查询条件
  31 + * @param @param page 页码
  32 + * @param @param size 每页显示数量
  33 + * @throws
  34 + */
  35 + @RequestMapping(method = RequestMethod.GET)
  36 + public Page<Dlb> list(@RequestParam Map<String, Object> map,
  37 + @RequestParam(defaultValue = "0") int page,
  38 + @RequestParam(defaultValue = "10") int size,
  39 + @RequestParam(defaultValue = "id") String order,
  40 + @RequestParam(defaultValue = "DESC") String direction){
  41 +
  42 + Direction d;
  43 +// map.put("xlbm_like", map.get("xlbm_like").toString().trim());
  44 +// try {
  45 + String rq=map.get("rq").toString();
  46 + if(!(rq=="")){
  47 +//
  48 +// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  49 +// Calendar calendar = new GregorianCalendar();
  50 +// calendar.setTime(sdf.parse(rq));
  51 +// calendar.add(calendar.DATE,1);
  52 +// Date date=calendar.getTime();
  53 + map.put("rq_eq", rq);
  54 +// map.put("rq_lt", sdf.format(date));
  55 +// System.out.println(rq);
  56 +// System.out.println(sdf.format(date));
  57 + }
  58 +// } catch (ParseException e) {
  59 +// // TODO Auto-generated catch block
  60 +// e.printStackTrace();
  61 +// }
  62 + if(null != direction && direction.equals("ASC"))
  63 + d = Direction.ASC;
  64 + else
  65 + d = Direction.DESC;
  66 +
  67 + // 允许多个字段排序,order可以写单个字段,也可以写多个字段
  68 + // 多个字段格式:{col1},{col2},{col3},....,{coln}
  69 + // 每个字段的排序方向都是一致,这个以后再看要不要改
  70 + List<String> list = Splitter.on(",").trimResults().splitToList(order);
  71 + return baseService.list(map, new PageRequest(page, size, new Sort(d, list)));
  72 + }
  73 +
  74 + @RequestMapping(value = "/obtain",method = RequestMethod.GET)
  75 + public Map<String, Object> obtain(@RequestParam Map<String, Object> map){
  76 + Map<String, Object> list=service.obtain(map);
  77 + System.out.println();
  78 + return list;
  79 + }
  80 +
  81 + /**
  82 + * 保存电量
  83 + * @param map
  84 + * @return
  85 + */
  86 + @RequestMapping(value = "/sort",method = RequestMethod.GET)
  87 + public Map<String, Object> sort(@RequestParam Map<String, Object> map){
  88 + Map<String, Object> list=service.sort(map);
  89 + return list;
  90 + }
11 91
  92 + /**
  93 + * 核对电量(有加电没里程)
  94 + * @param map
  95 + * @return
  96 + */
  97 + @RequestMapping(value = "/checkDl",method = RequestMethod.GET)
  98 + public Map<String, Object> checkDl(@RequestParam Map<String, Object> map){
  99 + Map<String, Object> list=service.checkDl(map);
  100 + return list;
  101 + }
12 } 102 }
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -50,8 +50,14 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -50,8 +50,14 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
50 * @return 50 * @return
51 */ 51 */
52 @RequestMapping(value = "/obtain",method = RequestMethod.GET) 52 @RequestMapping(value = "/obtain",method = RequestMethod.GET)
53 - public Map<String, Object> obtain(@RequestParam Map<String, Object> map){  
54 - Map<String, Object> list=yblService.obtain(map); 53 + public Map<String, Object> obtain(@RequestParam Map<String, Object> map) throws Exception{
  54 + Map<String, Object> list =new HashMap<String, Object>();
  55 + try {
  56 + list = yblService.obtain(map);
  57 + } catch (Exception e) {
  58 + // TODO Auto-generated catch block
  59 + throw e;
  60 + }
55 System.out.println(); 61 System.out.println();
56 return list; 62 return list;
57 } 63 }
@@ -73,8 +79,14 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -73,8 +79,14 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
73 * @return 79 * @return
74 */ 80 */
75 @RequestMapping(value = "/outAndIn",method = RequestMethod.GET) 81 @RequestMapping(value = "/outAndIn",method = RequestMethod.GET)
76 - public Map<String, Object> outAndIn(@RequestParam Map<String, Object> map){  
77 - Map<String, Object> list=yblService.outAndIn(map); 82 + public Map<String, Object> outAndIn(@RequestParam Map<String, Object> map) throws Exception{
  83 + Map<String, Object> list=new HashMap<String, Object>();
  84 + try {
  85 + list=yblService.outAndIn(map);
  86 + } catch (Exception e) {
  87 + // TODO: handle exception
  88 + }
  89 +
78 return list; 90 return list;
79 } 91 }
80 92
@@ -107,8 +119,15 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -107,8 +119,15 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
107 119
108 Direction d; 120 Direction d;
109 map.put("xlbm_like", map.get("xlbm_like").toString().trim()); 121 map.put("xlbm_like", map.get("xlbm_like").toString().trim());
110 -// try {  
111 String rq=map.get("rq").toString(); 122 String rq=map.get("rq").toString();
  123 + int lx=Integer.parseInt(map.get("sxtj").toString().trim());
  124 + if(lx>0){
  125 + map.put("nbbm_in", yblService.checkNbmmNum(rq, map.get("ssgsdm_like").toString(),
  126 + map.get("fgsdm_like").toString(), map.get("xlbm_like").toString(),
  127 + map.get("nbbm_eq").toString(),lx));
  128 + }
  129 +// try {
  130 +
112 if(!(rq=="")){ 131 if(!(rq=="")){
113 // 132 //
114 // SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 133 // SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
@@ -143,6 +162,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -143,6 +162,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
143 return yblService.oilListMonth(line, date); 162 return yblService.oilListMonth(line, date);
144 } 163 }
145 164
  165 + @RequestMapping(value = "/sumYlb",method = RequestMethod.GET)
  166 + public Map<String, Object> sumYlb(@RequestParam Map<String, Object> map){
  167 + Map<String, Object> list=yblService.sumYlb(map);
  168 + return list;
  169 + }
146 170
147 @RequestMapping(value = "/listExport",method = RequestMethod.POST) 171 @RequestMapping(value = "/listExport",method = RequestMethod.POST)
148 public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){ 172 public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){
src/main/java/com/bsth/controller/realcontrol/OilStationSocietyController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.realcontrol.OilStationSociety;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by panzhao on 2017/3/16.
  10 + */
  11 +@RestController
  12 +@RequestMapping("/oilStation")
  13 +public class OilStationSocietyController extends BaseController<OilStationSociety, String>{
  14 +}
src/main/java/com/bsth/controller/realcontrol/PageForwardingController.java
1 package com.bsth.controller.realcontrol; 1 package com.bsth.controller.realcontrol;
2 2
  3 +import com.bsth.entity.sys.Role;
3 import com.bsth.entity.sys.SysUser; 4 import com.bsth.entity.sys.SysUser;
4 import com.bsth.security.util.SecurityUtils; 5 import com.bsth.security.util.SecurityUtils;
  6 +import org.slf4j.Logger;
  7 +import org.slf4j.LoggerFactory;
5 import org.springframework.stereotype.Controller; 8 import org.springframework.stereotype.Controller;
6 import org.springframework.web.bind.annotation.RequestMapping; 9 import org.springframework.web.bind.annotation.RequestMapping;
7 import org.springframework.web.servlet.ModelAndView; 10 import org.springframework.web.servlet.ModelAndView;
8 11
  12 +import javax.servlet.http.HttpServletResponse;
  13 +
9 /** 14 /**
10 * 线调登入页面转发 15 * 线调登入页面转发
11 * Created by panzhao on 2017/1/21. 16 * Created by panzhao on 2017/1/21.
@@ -14,18 +19,36 @@ import org.springframework.web.servlet.ModelAndView; @@ -14,18 +19,36 @@ import org.springframework.web.servlet.ModelAndView;
14 @RequestMapping("real_control") 19 @RequestMapping("real_control")
15 public class PageForwardingController { 20 public class PageForwardingController {
16 21
  22 + Logger logger = LoggerFactory.getLogger(this.getClass());
  23 +
17 @RequestMapping("/v2") 24 @RequestMapping("/v2")
18 - public ModelAndView v2(){ 25 + public ModelAndView v2(HttpServletResponse response){
19 ModelAndView mv = new ModelAndView(); 26 ModelAndView mv = new ModelAndView();
20 SysUser user = SecurityUtils.getCurrentUser(); 27 SysUser user = SecurityUtils.getCurrentUser();
21 28
22 //班次管理员 29 //班次管理员
23 if(user.getUserName().equals("bcgly")){ 30 if(user.getUserName().equals("bcgly")){
24 mv.setViewName("/real_control_v2/sch_manage/sch_imitate.html"); 31 mv.setViewName("/real_control_v2/sch_manage/sch_imitate.html");
  32 + return mv;
25 } 33 }
  34 +
  35 + try{
  36 + //闵行运管所,直接打开地图页面
  37 + if(user.getRoles().size() == 1){
  38 + for(Role role : user.getRoles()){
  39 + if(role.getCodeName().equals("MH_YGS")){
  40 + // 直接重定向
  41 + response.sendRedirect("/pages/mapmonitor/alone/wrap.html");
  42 + return null;
  43 + }
  44 + }
  45 + }
  46 + }catch (Exception e){
  47 + logger.error("", e);
  48 + }
  49 +
26 //正常线调主页 50 //正常线调主页
27 - else  
28 - mv.setViewName("/real_control_v2/main.html"); 51 + mv.setViewName("/real_control_v2/main.html");
29 return mv; 52 return mv;
30 } 53 }
31 } 54 }
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -35,6 +35,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -35,6 +35,11 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
35 return scheduleRealInfoService.findByLines(lines); 35 return scheduleRealInfoService.findByLines(lines);
36 } 36 }
37 37
  38 + @RequestMapping(value = "/car")
  39 + public List<ScheduleRealInfo> findByCar(String nbbm){
  40 + return dayOfSchedule.findByNbbm(nbbm);
  41 + }
  42 +
38 /** 43 /**
39 * 44 *
40 * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id 45 * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id
@@ -279,13 +284,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -279,13 +284,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
279 return scheduleRealInfoService.queryUserInfoPx(line, date,state,type); 284 return scheduleRealInfoService.queryUserInfoPx(line, date,state,type);
280 } 285 }
281 286
282 - @RequestMapping(value = "/exportWaybill") 287 + @RequestMapping(value = "/exportWaybill",method = RequestMethod.GET)
283 public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName, @RequestParam String clZbh, 288 public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName, @RequestParam String clZbh,
284 @RequestParam String lpName,@RequestParam String date,@RequestParam String line) { 289 @RequestParam String lpName,@RequestParam String date,@RequestParam String line) {
285 return scheduleRealInfoService.exportWaybill(jName, clZbh, lpName,date,line); 290 return scheduleRealInfoService.exportWaybill(jName, clZbh, lpName,date,line);
286 } 291 }
287 292
288 - @RequestMapping(value = "/exportWaybillQp") 293 + @RequestMapping(value = "/exportWaybillQp",method = RequestMethod.GET)
289 public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh 294 public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh
290 ,@RequestParam String date,@RequestParam String line) { 295 ,@RequestParam String date,@RequestParam String line) {
291 return scheduleRealInfoService.exportWaybillQp( clZbh, date,line); 296 return scheduleRealInfoService.exportWaybillQp( clZbh, date,line);
@@ -308,13 +313,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -308,13 +313,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
308 return scheduleRealInfoService.findLine(line); 313 return scheduleRealInfoService.findLine(line);
309 } 314 }
310 315
311 - @RequestMapping(value="/findKMBC") 316 + @RequestMapping(value="/findKMBC",method = RequestMethod.GET)
312 public Map<String,Object> findKMBC(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName 317 public Map<String,Object> findKMBC(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName
313 ,@RequestParam String date,@RequestParam String line){ 318 ,@RequestParam String date,@RequestParam String line){
314 return scheduleRealInfoService.findKMBC(jName, clZbh,lpName,date,line); 319 return scheduleRealInfoService.findKMBC(jName, clZbh,lpName,date,line);
315 } 320 }
316 321
317 - @RequestMapping(value="/findKMBCQp") 322 + @RequestMapping(value="/findKMBCQp",method = RequestMethod.GET)
318 public Map<String,Object> findKMBCQp(@RequestParam String clZbh 323 public Map<String,Object> findKMBCQp(@RequestParam String clZbh
319 ,@RequestParam String date,@RequestParam String line){ 324 ,@RequestParam String date,@RequestParam String line){
320 return scheduleRealInfoService.findKMBCQp(clZbh,date,line); 325 return scheduleRealInfoService.findKMBCQp(clZbh,date,line);
@@ -344,13 +349,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -344,13 +349,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
344 * @param lpName 路牌 349 * @param lpName 路牌
345 * @return 350 * @return
346 */ 351 */
347 - @RequestMapping(value="/queryListWaybill") 352 + @RequestMapping(value="/queryListWaybill",method = RequestMethod.GET)
348 public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName 353 public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName
349 ,@RequestParam String date,@RequestParam String line){ 354 ,@RequestParam String date,@RequestParam String line){
350 return scheduleRealInfoService.queryListWaybill(jName, clZbh,lpName,date,line); 355 return scheduleRealInfoService.queryListWaybill(jName, clZbh,lpName,date,line);
351 } 356 }
352 357
353 - @RequestMapping(value="/queryListWaybillQp") 358 + @RequestMapping(value="/queryListWaybillQp",method = RequestMethod.GET)
354 public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh, 359 public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh,
355 @RequestParam String date,@RequestParam String line){ 360 @RequestParam String date,@RequestParam String line){
356 return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line); 361 return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line);
@@ -362,6 +367,12 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -362,6 +367,12 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
362 return scheduleRealInfoService.statisticsDaily(line, date, xlName, type); 367 return scheduleRealInfoService.statisticsDaily(line, date, xlName, type);
363 } 368 }
364 369
  370 + @RequestMapping(value="/statisticsDailyTj")
  371 + public List<Map<String,Object>> statisticsDailyTj(@RequestParam String line, @RequestParam String date,
  372 + @RequestParam String date2,@RequestParam String xlName, @RequestParam String type){
  373 + return scheduleRealInfoService.statisticsDailyTj(line, date,date2, xlName, type);
  374 + }
  375 +
365 @RequestMapping(value="/MapById",method = RequestMethod.GET) 376 @RequestMapping(value="/MapById",method = RequestMethod.GET)
366 public Map<String, Object> MapById(@RequestParam("id") Long id){ 377 public Map<String, Object> MapById(@RequestParam("id") Long id){
367 return scheduleRealInfoService.MapById(id); 378 return scheduleRealInfoService.MapById(id);
@@ -457,7 +468,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -457,7 +468,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
457 return scheduleRealInfoService.scheduleDailyExport(map); 468 return scheduleRealInfoService.scheduleDailyExport(map);
458 } 469 }
459 470
460 - @RequestMapping(value = "exportWaybillMore", method = RequestMethod.POST) 471 + @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET)
461 public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){ 472 public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){
462 return scheduleRealInfoService.exportWaybillMore(map); 473 return scheduleRealInfoService.exportWaybillMore(map);
463 } 474 }
src/main/java/com/bsth/controller/realcontrol/ServiceDataInterface.java 0 → 100644
  1 +package com.bsth.controller.realcontrol;
  2 +
  3 +import com.bsth.data.schedule.DayOfSchedule;
  4 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  5 +import org.apache.commons.lang3.StringUtils;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RequestParam;
  9 +import org.springframework.web.bind.annotation.RestController;
  10 +
  11 +import java.util.ArrayList;
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * 对外的营运数据接口,主要输出当日的数据
  16 + * Created by panzhao on 2017/3/15.
  17 + */
  18 +@RestController
  19 +@RequestMapping("/companyService")
  20 +public class ServiceDataInterface {
  21 +
  22 + private final static String SECRE_KEY = "dVPHJkWUt5FhMT7jrM2dLV7QvlHAmZFd42rs1P0usBx8A7HZki";
  23 +
  24 + @Autowired
  25 + DayOfSchedule dayOfSchedule;
  26 +
  27 + @RequestMapping("/getCurrentDayPlan")
  28 + public List<ScheduleRealInfo> getCurrentDayPlan(
  29 + @RequestParam String companyId,
  30 + @RequestParam String workId,
  31 + @RequestParam String secretKey) {
  32 +
  33 + if (StringUtils.isEmpty(secretKey) || !secretKey.equals(SECRE_KEY))
  34 + return null;
  35 +
  36 + List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()), rs = new ArrayList<>();
  37 + for (ScheduleRealInfo sch : all) {
  38 + if (sch.getGsBm() != null
  39 + && sch.getGsBm().equals(companyId)
  40 + && sch.getjGh().equals(workId)) {
  41 + rs.add(sch);
  42 + }
  43 + }
  44 + return rs;
  45 + }
  46 +
  47 + @RequestMapping("/returnCCInfo")
  48 + public List<ScheduleRealInfo> returnCCInfo(@RequestParam String companyId, @RequestParam String secretKey){
  49 + if (StringUtils.isEmpty(secretKey) || !secretKey.equals(SECRE_KEY))
  50 + return null;
  51 +
  52 +
  53 + List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()), rs = new ArrayList<>();
  54 + for (ScheduleRealInfo sch : all) {
  55 +
  56 + if (sch.getBcType().equals("out")
  57 + && sch.getGsBm() != null
  58 + && sch.getGsBm().equals(companyId)) {
  59 + rs.add(sch);
  60 + }
  61 + }
  62 + return rs;
  63 + }
  64 +
  65 + @RequestMapping("/returnJCInfo")
  66 + public List<ScheduleRealInfo> returnJCInfo(@RequestParam String companyId, @RequestParam String secretKey){
  67 + if (StringUtils.isEmpty(secretKey) || !secretKey.equals(SECRE_KEY))
  68 + return null;
  69 +
  70 +
  71 + List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()), rs = new ArrayList<>();
  72 + for (ScheduleRealInfo sch : all) {
  73 + if (sch.getBcType().equals("in")
  74 + && sch.getGsBm() != null
  75 + && sch.getGsBm().equals(companyId)) {
  76 + rs.add(sch);
  77 + }
  78 + }
  79 + return rs;
  80 + }
  81 +}
src/main/java/com/bsth/controller/realcontrol/dto/LpData.java
@@ -22,7 +22,7 @@ public class LpData { @@ -22,7 +22,7 @@ public class LpData {
22 this.zdzName = sch.getZdzName(); 22 this.zdzName = sch.getZdzName();
23 } 23 }
24 24
25 - public void appendTo(ScheduleRealInfo sch, int type, boolean changeRealTime) { 25 + public void appendTo(ScheduleRealInfo sch, int type) {
26 26
27 if (type == 0) { 27 if (type == 0) {
28 //只换人 28 //只换人
@@ -33,11 +33,11 @@ public class LpData { @@ -33,11 +33,11 @@ public class LpData {
33 } else if (type == 1) { 33 } else if (type == 1) {
34 //只换车 34 //只换车
35 sch.setClZbh(this.nbbm); 35 sch.setClZbh(this.nbbm);
36 -  
37 - //换实际时间 36 + changeRealTime(sch);
  37 + /*//换实际时间
38 if(changeRealTime){ 38 if(changeRealTime){
39 changeRealTime(sch); 39 changeRealTime(sch);
40 - } 40 + }*/
41 41
42 } else if (type == 2) { 42 } else if (type == 2) {
43 //换人并换车 43 //换人并换车
@@ -48,9 +48,9 @@ public class LpData { @@ -48,9 +48,9 @@ public class LpData {
48 sch.setClZbh(this.nbbm); 48 sch.setClZbh(this.nbbm);
49 49
50 //换实际时间 50 //换实际时间
51 - if(changeRealTime){ 51 + //if(changeRealTime){
52 changeRealTime(sch); 52 changeRealTime(sch);
53 - } 53 + //}
54 } 54 }
55 } 55 }
56 56
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -46,7 +46,7 @@ public class DayOfSchedule implements CommandLineRunner { @@ -46,7 +46,7 @@ public class DayOfSchedule implements CommandLineRunner {
46 46
47 Logger logger = LoggerFactory.getLogger(this.getClass()); 47 Logger logger = LoggerFactory.getLogger(this.getClass());
48 48
49 - //按线路分组的 “计划” 排班数据 49 + //按线路分组的 “原始计划” 排班数据
50 public static Map<String, List<SchedulePlanInfo>> schedulePlanMap; 50 public static Map<String, List<SchedulePlanInfo>> schedulePlanMap;
51 51
52 // 按车辆分组的班次数据 52 // 按车辆分组的班次数据
@@ -378,9 +378,11 @@ public class DayOfSchedule implements CommandLineRunner { @@ -378,9 +378,11 @@ public class DayOfSchedule implements CommandLineRunner {
378 sch.setZdsj(fmtHHmm.print(fmtHHmm.parseMillis(sch.getFcsj()) + (sch.getBcsj() * 60 * 1000))); 378 sch.setZdsj(fmtHHmm.print(fmtHHmm.parseMillis(sch.getFcsj()) + (sch.getBcsj() * 60 * 1000)));
379 sch.setLate(false); 379 sch.setLate(false);
380 } 380 }
  381 +
  382 + sch.setJhlcOrig(sch.getJhlc());
381 //计划里程为0,设置NULL 383 //计划里程为0,设置NULL
382 - if (sch.getJhlc() != null && sch.getJhlc() == 0)  
383 - sch.setJhlc(null); 384 + //if (sch.getJhlc() != null && sch.getJhlc() == 0)
  385 + // sch.setJhlc(null);
384 } 386 }
385 } catch (Exception e) { 387 } catch (Exception e) {
386 logger.error("", e); 388 logger.error("", e);
@@ -492,6 +494,9 @@ public class DayOfSchedule implements CommandLineRunner { @@ -492,6 +494,9 @@ public class DayOfSchedule implements CommandLineRunner {
492 if (config != null) 494 if (config != null)
493 outConfig = config.getOutConfig(); 495 outConfig = config.getOutConfig();
494 496
  497 + //限定出站既出场的停车场
  498 + String park = config.getTwinsPark();
  499 + boolean limitPark = StringUtils.isNotEmpty(park);
495 boolean flag = false; 500 boolean flag = false;
496 ScheduleRealInfo next = null; 501 ScheduleRealInfo next = null;
497 for (ScheduleRealInfo temp : list) { 502 for (ScheduleRealInfo temp : list) {
@@ -504,7 +509,8 @@ public class DayOfSchedule implements CommandLineRunner { @@ -504,7 +509,8 @@ public class DayOfSchedule implements CommandLineRunner {
504 continue; 509 continue;
505 510
506 //出站既出场,忽略出场班次 511 //出站既出场,忽略出场班次
507 - if (outConfig == 2 && temp.getBcType().equals("out")) 512 + if (outConfig == 2 && temp.getBcType().equals("out")
  513 + && (!limitPark || park.equals(temp.getQdzCode())))
508 continue; 514 continue;
509 515
510 if (flag) { 516 if (flag) {
@@ -527,6 +533,9 @@ public class DayOfSchedule implements CommandLineRunner { @@ -527,6 +533,9 @@ public class DayOfSchedule implements CommandLineRunner {
527 if (config != null) 533 if (config != null)
528 outConfig = config.getOutConfig(); 534 outConfig = config.getOutConfig();
529 535
  536 + //限定出站既出场的停车场
  537 + String park = config.getTwinsPark();
  538 + boolean limitPark = StringUtils.isNotEmpty(park);
530 boolean flag = false; 539 boolean flag = false;
531 ScheduleRealInfo next = null; 540 ScheduleRealInfo next = null;
532 for (ScheduleRealInfo temp : list) { 541 for (ScheduleRealInfo temp : list) {
@@ -539,7 +548,8 @@ public class DayOfSchedule implements CommandLineRunner { @@ -539,7 +548,8 @@ public class DayOfSchedule implements CommandLineRunner {
539 continue; 548 continue;
540 549
541 //出站既出场,忽略出场班次 550 //出站既出场,忽略出场班次
542 - if (outConfig == 2 && temp.getBcType().equals("out")) 551 + if (outConfig == 2 && temp.getBcType().equals("out")
  552 + && (!limitPark || park.equals(temp.getQdzCode())))
543 continue; 553 continue;
544 554
545 if (flag && temp.getXlDir().equals(sch.getXlDir())) { 555 if (flag && temp.getXlDir().equals(sch.getXlDir())) {
src/main/java/com/bsth/entity/oil/Cdl.java 0 → 100644
  1 +package com.bsth.entity.oil;
  2 +
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.Table;
  9 +import javax.persistence.Transient;
  10 +
  11 +import com.bsth.data.BasicData;
  12 +
  13 +@Entity
  14 +@Table(name = "bsth_c_cdl")
  15 +public class Cdl {
  16 + @Id
  17 + @GeneratedValue
  18 + private Integer id;
  19 +
  20 + private String nbbm;
  21 +
  22 + //存电量
  23 + private Double cdl;
  24 +
  25 + private Date updatetime;
  26 +
  27 + //恒定存电
  28 + private Double clcd;
  29 + //公司代码
  30 + private String gsdm;
  31 +
  32 + @Transient
  33 + private String gsname;
  34 +
  35 + @Transient
  36 + private String fgsname;
  37 +
  38 + //分公司代码
  39 + private String fgsdm;
  40 +
  41 + public Integer getId() {
  42 + return id;
  43 + }
  44 +
  45 + public void setId(Integer id) {
  46 + this.id = id;
  47 + }
  48 +
  49 + public String getNbbm() {
  50 + return nbbm;
  51 + }
  52 +
  53 + public void setNbbm(String nbbm) {
  54 + this.nbbm = nbbm;
  55 + }
  56 +
  57 +
  58 + public Double getCdl() {
  59 + return cdl;
  60 + }
  61 +
  62 + public void setCdl(Double cdl) {
  63 + this.cdl = cdl;
  64 + }
  65 +
  66 + public Double getClcd() {
  67 + return clcd;
  68 + }
  69 +
  70 + public void setClcd(Double clcd) {
  71 + this.clcd = clcd;
  72 + }
  73 +
  74 + public Date getUpdatetime() {
  75 + return updatetime;
  76 + }
  77 +
  78 + public void setUpdatetime(Date updatetime) {
  79 + this.updatetime = updatetime;
  80 + }
  81 +
  82 +
  83 + public String getGsdm(){
  84 + return gsdm;
  85 + }
  86 +
  87 + public void setGsdm(String gsdm){
  88 + this.gsdm=gsdm;
  89 + }
  90 +
  91 + public String getFgsdm() {
  92 + return fgsdm;
  93 + }
  94 +
  95 + public void setFgsdm(String fgsdm) {
  96 + this.fgsdm = fgsdm;
  97 + }
  98 +
  99 + public String getGsname() {
  100 + return BasicData.businessCodeNameMap.get(this.gsdm);
  101 + }
  102 +
  103 + public void setGsname(String gsname) {
  104 + this.gsname = gsname;
  105 + }
  106 +
  107 + public String getFgsname() {
  108 + return BasicData.businessFgsCodeNameMap.get(this.fgsdm+"_"+this.gsdm);
  109 + }
  110 +
  111 + public void setFgsname(String fgsname) {
  112 + this.fgsname = fgsname;
  113 + }
  114 +
  115 +
  116 +}
src/main/java/com/bsth/entity/oil/Ylb.java
@@ -30,7 +30,7 @@ public class Ylb { @@ -30,7 +30,7 @@ public class Ylb {
30 private Double jzlc=0.0; 30 private Double jzlc=0.0;
31 private Double czyl=0.0; 31 private Double czyl=0.0;
32 private Double jzyl=0.0; 32 private Double jzyl=0.0;
33 - private Double jzl; 33 + private Double jzl=0.0;
34 private int sfkt; 34 private int sfkt;
35 private String jhsj; 35 private String jhsj;
36 private Double yh=0.0; 36 private Double yh=0.0;
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
@@ -47,6 +47,9 @@ public class LineConfig { @@ -47,6 +47,9 @@ public class LineConfig {
47 /** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 2:出站即出场 */ 47 /** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 2:出站即出场 */
48 private int outConfig; 48 private int outConfig;
49 49
  50 + /** 出站既出场 对应的停车场 */
  51 + private String twinsPark;
  52 +
50 /** 短语模板 , 号分隔多个 */ 53 /** 短语模板 , 号分隔多个 */
51 private String phraseTemps; 54 private String phraseTemps;
52 55
@@ -208,4 +211,12 @@ public class LineConfig { @@ -208,4 +211,12 @@ public class LineConfig {
208 public void setDownOutDiff(int downOutDiff) { 211 public void setDownOutDiff(int downOutDiff) {
209 this.downOutDiff = downOutDiff; 212 this.downOutDiff = downOutDiff;
210 } 213 }
  214 +
  215 + public String getTwinsPark() {
  216 + return twinsPark;
  217 + }
  218 +
  219 + public void setTwinsPark(String twinsPark) {
  220 + this.twinsPark = twinsPark;
  221 + }
211 } 222 }
src/main/java/com/bsth/entity/realcontrol/OilStationSociety.java 0 → 100644
  1 +package com.bsth.entity.realcontrol;
  2 +
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.Id;
  5 +import javax.persistence.Table;
  6 +
  7 +/**
  8 + * 社会加油站
  9 + * Created by panzhao on 2017/3/16.
  10 + */
  11 +@Entity
  12 +@Table(name = "bsth_c_oil_station")
  13 +public class OilStationSociety {
  14 +
  15 + @Id
  16 + private String lineCode;
  17 +
  18 + /**
  19 + * 加油站名称
  20 + */
  21 + private String stationName;
  22 +
  23 + /**
  24 + * 上行进场距离
  25 + */
  26 + private Double upInMile;
  27 + /**
  28 + * 上行出场距离
  29 + */
  30 + private Double upOutMile;
  31 +
  32 + /**
  33 + * 下行进场距离
  34 + */
  35 + private Double downInMile;
  36 + /**
  37 + * 下行出场距离
  38 + */
  39 + private Double downOutMile;
  40 +
  41 +
  42 + /**
  43 + * 上行进场时间 分钟
  44 + */
  45 + private int upInTime;
  46 + /**
  47 + * 上行出场时间 分钟
  48 + */
  49 + private int upOutTime;
  50 +
  51 + /**
  52 + * 下行进场时间 分钟
  53 + */
  54 + private int downInTime;
  55 + /**
  56 + * 下行出场时间 分钟
  57 + */
  58 + private int downOutTime;
  59 +
  60 +
  61 + public String getLineCode() {
  62 + return lineCode;
  63 + }
  64 +
  65 + public void setLineCode(String lineCode) {
  66 + this.lineCode = lineCode;
  67 + }
  68 +
  69 + public String getStationName() {
  70 + return stationName;
  71 + }
  72 +
  73 + public void setStationName(String stationName) {
  74 + this.stationName = stationName;
  75 + }
  76 +
  77 + public Double getUpInMile() {
  78 + return upInMile;
  79 + }
  80 +
  81 + public void setUpInMile(Double upInMile) {
  82 + this.upInMile = upInMile;
  83 + }
  84 +
  85 + public Double getUpOutMile() {
  86 + return upOutMile;
  87 + }
  88 +
  89 + public void setUpOutMile(Double upOutMile) {
  90 + this.upOutMile = upOutMile;
  91 + }
  92 +
  93 + public Double getDownInMile() {
  94 + return downInMile;
  95 + }
  96 +
  97 + public void setDownInMile(Double downInMile) {
  98 + this.downInMile = downInMile;
  99 + }
  100 +
  101 + public Double getDownOutMile() {
  102 + return downOutMile;
  103 + }
  104 +
  105 + public void setDownOutMile(Double downOutMile) {
  106 + this.downOutMile = downOutMile;
  107 + }
  108 +
  109 + public int getUpInTime() {
  110 + return upInTime;
  111 + }
  112 +
  113 + public void setUpInTime(int upInTime) {
  114 + this.upInTime = upInTime;
  115 + }
  116 +
  117 + public int getUpOutTime() {
  118 + return upOutTime;
  119 + }
  120 +
  121 + public void setUpOutTime(int upOutTime) {
  122 + this.upOutTime = upOutTime;
  123 + }
  124 +
  125 + public int getDownInTime() {
  126 + return downInTime;
  127 + }
  128 +
  129 + public void setDownInTime(int downInTime) {
  130 + this.downInTime = downInTime;
  131 + }
  132 +
  133 + public int getDownOutTime() {
  134 + return downOutTime;
  135 + }
  136 +
  137 + public void setDownOutTime(int downOutTime) {
  138 + this.downOutTime = downOutTime;
  139 + }
  140 +}
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -88,7 +88,10 @@ public class ScheduleRealInfo { @@ -88,7 +88,10 @@ public class ScheduleRealInfo {
88 /** 计划里程 */ 88 /** 计划里程 */
89 private Double jhlc; 89 private Double jhlc;
90 90
91 - /** 实际里程 */ 91 + /** 原始计划里程 (原计调的数据) */
  92 + private Double jhlcOrig;
  93 +
  94 + /** 实际里程 这个字段被废弃*/
92 private Double realMileage; 95 private Double realMileage;
93 96
94 /** 实际里程 */ 97 /** 实际里程 */
@@ -460,6 +463,9 @@ public class ScheduleRealInfo { @@ -460,6 +463,9 @@ public class ScheduleRealInfo {
460 463
461 public void setJhlc(Double jhlc) { 464 public void setJhlc(Double jhlc) {
462 this.jhlc = jhlc; 465 this.jhlc = jhlc;
  466 + //临加班次 计划公里 和 实际计划公里一样
  467 + if(this.isSflj())
  468 + this.setJhlcOrig(this.getJhlc());
463 } 469 }
464 470
465 public String getSjlc() { 471 public String getSjlc() {
@@ -623,6 +629,11 @@ public class ScheduleRealInfo { @@ -623,6 +629,11 @@ public class ScheduleRealInfo {
623 } 629 }
624 } 630 }
625 631
  632 + @Override
  633 + public int hashCode() {
  634 + return ("schedule_" + this.id).hashCode();
  635 + }
  636 +
626 public String getQdzArrDateJH() { 637 public String getQdzArrDateJH() {
627 return qdzArrDatejh; 638 return qdzArrDatejh;
628 } 639 }
@@ -757,6 +768,7 @@ public class ScheduleRealInfo { @@ -757,6 +768,7 @@ public class ScheduleRealInfo {
757 } 768 }
758 769
759 public void destroy(){ 770 public void destroy(){
  771 + this.jhlc = 0.0;
760 this.status = -1; 772 this.status = -1;
761 } 773 }
762 774
@@ -845,4 +857,22 @@ public class ScheduleRealInfo { @@ -845,4 +857,22 @@ public class ScheduleRealInfo {
845 public void setRealMileage(Double realMileage) { 857 public void setRealMileage(Double realMileage) {
846 this.realMileage = realMileage; 858 this.realMileage = realMileage;
847 } 859 }
  860 +
  861 + public Double getJhlcOrig() {
  862 + return jhlcOrig;
  863 + }
  864 +
  865 + public void setJhlcOrig(Double jhlcOrig) {
  866 + this.jhlcOrig = jhlcOrig;
  867 + }
  868 +
  869 + public void reCalcLate() {
  870 + if(this.getStatus() == 0
  871 + && this.getFcsjActual() == null
  872 + && this.dfsjT < System.currentTimeMillis()){
  873 + this.setLate(true);
  874 + }
  875 + else
  876 + this.setLate(false);
  877 + }
848 } 878 }
src/main/java/com/bsth/entity/schedule/CarConfigInfo.java
1 package com.bsth.entity.schedule; 1 package com.bsth.entity.schedule;
2 2
  3 +import com.bsth.entity.CarPark;
3 import com.bsth.entity.Cars; 4 import com.bsth.entity.Cars;
4 import com.bsth.entity.Line; 5 import com.bsth.entity.Line;
5 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 6 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@@ -47,9 +48,16 @@ public class CarConfigInfo extends BEntity implements Serializable { @@ -47,9 +48,16 @@ public class CarConfigInfo extends BEntity implements Serializable {
47 private Date qyrq; 48 private Date qyrq;
48 /** 终止日期 */ 49 /** 终止日期 */
49 private Date zzrq; 50 private Date zzrq;
  51 +
  52 +
50 @Column(nullable = false) 53 @Column(nullable = false)
51 /** 停车点(TODO:这个不知道是否要关联)*/ 54 /** 停车点(TODO:这个不知道是否要关联)*/
52 private String tcd; 55 private String tcd;
  56 +
  57 + /** 停车场关联(出场,进场班次会关联停车场) */
  58 + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
  59 + private CarPark tcc;
  60 +
53 /** 受否切换 0或者1(TODO:不懂,貌似喝历史配车有关) */ 61 /** 受否切换 0或者1(TODO:不懂,貌似喝历史配车有关) */
54 @Column(nullable = false) 62 @Column(nullable = false)
55 private int isSwitch; 63 private int isSwitch;
@@ -248,4 +256,12 @@ public class CarConfigInfo extends BEntity implements Serializable { @@ -248,4 +256,12 @@ public class CarConfigInfo extends BEntity implements Serializable {
248 public void setDownInSj(Double downInSj) { 256 public void setDownInSj(Double downInSj) {
249 this.downInSj = downInSj; 257 this.downInSj = downInSj;
250 } 258 }
  259 +
  260 + public CarPark getTcc() {
  261 + return tcc;
  262 + }
  263 +
  264 + public void setTcc(CarPark tcc) {
  265 + this.tcc = tcc;
  266 + }
251 } 267 }
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
@@ -160,7 +160,10 @@ public class SchedulePlanInfo { @@ -160,7 +160,10 @@ public class SchedulePlanInfo {
160 Boolean isFb, 160 Boolean isFb,
161 CarConfigInfo carConfigInfo, 161 CarConfigInfo carConfigInfo,
162 List<EmployeeConfigInfo> employeeConfigInfoList, 162 List<EmployeeConfigInfo> employeeConfigInfoList,
163 - SchedulePlan schedulePlan) { 163 + SchedulePlan schedulePlan,
  164 + boolean isFirstBc, // 是否第一个班次
  165 + boolean isLastBc // 是否最后一个班次
  166 + ) {
164 167
165 // TODO:关联的公司名称 168 // TODO:关联的公司名称
166 // TODO:关联的公司编码 169 // TODO:关联的公司编码
@@ -266,6 +269,47 @@ public class SchedulePlanInfo { @@ -266,6 +269,47 @@ public class SchedulePlanInfo {
266 // 使用的时刻表名字 269 // 使用的时刻表名字
267 this.ttInfoName = ttInfoDetail.getTtinfo().getName(); 270 this.ttInfoName = ttInfoDetail.getTtinfo().getName();
268 271
  272 + // 使用车辆配置的停车场信息
  273 + String pzType = carConfigInfo.getPzType(); // 配置类型
  274 + if (pzType != null && !pzType.equals("BSY")) {
  275 + if ("ZW".equals(pzType)) { // 只看早晚进出场
  276 + if (isFirstBc) { // 第一个班次是出场
  277 + this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
  278 + this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code
  279 + this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name
  280 +
  281 + this.jhlc = "0".equals(this.xlDir) ? carConfigInfo.getUpOutLc() : carConfigInfo.getDownOutLc();
  282 + this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue();
  283 +
  284 + } else if (isLastBc) { // 最后一个班次是进场
  285 + this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
  286 + this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code
  287 + this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name
  288 +
  289 + this.jhlc = "0".equals(this.xlDir) ? carConfigInfo.getUpInLc() : carConfigInfo.getDownInLc();
  290 + this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpInSj().intValue() : carConfigInfo.getDownInSj().intValue();
  291 + }
  292 +
  293 + } else if ("FS".equals(pzType)) { // 所有进出场
  294 + if ("out".equals(this.bcType)) { // 出场班次
  295 + this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
  296 + this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code
  297 + this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name
  298 +
  299 + this.jhlc = "0".equals(this.xlDir) ? carConfigInfo.getUpOutLc() : carConfigInfo.getDownOutLc();
  300 + this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue();
  301 +
  302 + } else if ("in".equals(this.bcType)) {
  303 + this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
  304 + this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code
  305 + this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name
  306 +
  307 + this.jhlc = "0".equals(this.xlDir) ? carConfigInfo.getUpInLc() : carConfigInfo.getDownInLc();
  308 + this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpInSj().intValue() : carConfigInfo.getDownInSj().intValue();
  309 + }
  310 + }
  311 + }
  312 +
269 } 313 }
270 314
271 315
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1Flat.java
@@ -71,7 +71,7 @@ public class ScheduleRule1Flat extends BEntity { @@ -71,7 +71,7 @@ public class ScheduleRule1Flat extends BEntity {
71 @NotNull 71 @NotNull
72 private Integer ryStart; 72 private Integer ryStart;
73 73
74 - /** 翻班格式(TODO:这个用在车子上的,暂时不管)*/ 74 + /** 翻班格式(类似格式:1110011)*/
75 private String fbgs; 75 private String fbgs;
76 76
77 public Long getId() { 77 public Long getId() {
src/main/java/com/bsth/entity/search/PredicatesBuilder.java
@@ -69,6 +69,11 @@ public class PredicatesBuilder { @@ -69,6 +69,11 @@ public class PredicatesBuilder {
69 return cb.in(expression).value(list); 69 return cb.in(expression).value(list);
70 } 70 }
71 71
  72 +
  73 + public static Predicate ins(CriteriaBuilder cb,Path<?> expression, List<String> list){
  74 + return cb.in(expression).value(list);
  75 + }
  76 +
72 public static Predicate gt(CriteriaBuilder cb,Path<Number> expression, Object object){ 77 public static Predicate gt(CriteriaBuilder cb,Path<Number> expression, Object object){
73 try { 78 try {
74 return cb.gt(expression, nf.parse(object.toString())); 79 return cb.gt(expression, nf.parse(object.toString()));
src/main/java/com/bsth/entity/search/SearchOperator.java
@@ -27,5 +27,6 @@ public enum SearchOperator { @@ -27,5 +27,6 @@ public enum SearchOperator {
27 isf, //假 isFalse,boolean 27 isf, //假 isFalse,boolean
28 ist, //真 isTrue,boolean 28 ist, //真 isTrue,boolean
29 date, //时间 29 date, //时间
30 - in //数组 30 + in, //数组
  31 + ins //传参 List<String>
31 } 32 }
src/main/java/com/bsth/entity/sys/RealControAuthority.java
@@ -16,6 +16,7 @@ public class RealControAuthority { @@ -16,6 +16,7 @@ public class RealControAuthority {
16 /** 16 /**
17 * 可调度的线路 , 分隔多个 17 * 可调度的线路 , 分隔多个
18 */ 18 */
  19 + @Column(length = 4000)
19 private String lineCodeStr; 20 private String lineCodeStr;
20 21
21 /** 22 /**
src/main/java/com/bsth/filter/BaseFilter.java
@@ -16,7 +16,7 @@ public abstract class BaseFilter implements Filter { @@ -16,7 +16,7 @@ public abstract class BaseFilter implements Filter {
16 /** 16 /**
17 * 白名单 17 * 白名单
18 */ 18 */
19 - private String[] whiteListURLs = { Constants.LOGIN_PAGE,Constants.CAPTCHA, 19 + private String[] whiteListURLs = { Constants.LOGIN_PAGE,Constants.CAPTCHA, Constants.SERVICE_INTERFACE,
20 Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS }; 20 Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS };
21 21
22 @Override 22 @Override
src/main/java/com/bsth/filter/ResourceFilter.java
@@ -42,7 +42,6 @@ public class ResourceFilter extends BaseFilter { @@ -42,7 +42,6 @@ public class ResourceFilter extends BaseFilter {
42 42
43 if (f.exists() && f.isFile()) { 43 if (f.exists() && f.isFile()) {
44 request.getRequestDispatcher("/?initFragment=" + joinParam(request)).forward(request, response); 44 request.getRequestDispatcher("/?initFragment=" + joinParam(request)).forward(request, response);
45 - ;  
46 } else 45 } else
47 response.sendRedirect("/"); 46 response.sendRedirect("/");
48 } 47 }
src/main/java/com/bsth/repository/CarsRepository.java
@@ -12,4 +12,7 @@ public interface CarsRepository extends BaseRepository&lt;Cars, Integer&gt;{ @@ -12,4 +12,7 @@ public interface CarsRepository extends BaseRepository&lt;Cars, Integer&gt;{
12 12
13 @Query(value="select s from Cars s where s.id in(select e.cl.id from CarConfigInfo e where e.xl.id = ?1) ") 13 @Query(value="select s from Cars s where s.id in(select e.cl.id from CarConfigInfo e where e.xl.id = ?1) ")
14 List<Cars> findCarsByLineId(Integer lineId); 14 List<Cars> findCarsByLineId(Integer lineId);
  15 +
  16 + @Query(value="select s from Cars s")
  17 + List<Cars> findCars();
15 } 18 }
src/main/java/com/bsth/repository/oil/CdlRepository.java 0 → 100644
  1 +package com.bsth.repository.oil;
  2 +
  3 +
  4 +
  5 +import java.util.List;
  6 +
  7 +import org.springframework.data.jpa.repository.Modifying;
  8 +import org.springframework.data.jpa.repository.Query;
  9 +import org.springframework.stereotype.Repository;
  10 +import org.springframework.transaction.annotation.Transactional;
  11 +
  12 +import com.bsth.entity.oil.Cdl;
  13 +import com.bsth.entity.oil.Cyl;
  14 +import com.bsth.repository.BaseRepository;
  15 +
  16 +@Repository
  17 +public interface CdlRepository extends BaseRepository<Cdl, Integer>{
  18 + @Transactional
  19 + @Modifying
  20 + @Query(value="SELECT * FROM bsth_c_cdl ",nativeQuery=true)
  21 + List<Cdl> obtainCdl();
  22 +}
src/main/java/com/bsth/repository/oil/CylRepository.java
@@ -15,6 +15,6 @@ import com.bsth.repository.BaseRepository; @@ -15,6 +15,6 @@ import com.bsth.repository.BaseRepository;
15 public interface CylRepository extends BaseRepository<Cyl, Integer>{ 15 public interface CylRepository extends BaseRepository<Cyl, Integer>{
16 @Transactional 16 @Transactional
17 @Modifying 17 @Modifying
18 - @Query(value="SELECT * FROM bsth_c_cyl ",nativeQuery=true)  
19 - List<Cyl> obtainCyl(); 18 + @Query(value="SELECT * FROM bsth_c_cyl where nbbm like %?1% and gsdm like %?2%",nativeQuery=true)
  19 + List<Cyl> obtainCyl(String nbbm,String gsdm);
20 } 20 }
src/main/java/com/bsth/repository/oil/DlbRepository.java
1 package com.bsth.repository.oil; 1 package com.bsth.repository.oil;
2 2
  3 +import java.util.List;
  4 +
  5 +import org.springframework.data.jpa.repository.Modifying;
  6 +import org.springframework.data.jpa.repository.Query;
3 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
  8 +import org.springframework.transaction.annotation.Transactional;
  9 +
4 import com.bsth.entity.oil.Dlb; 10 import com.bsth.entity.oil.Dlb;
  11 +import com.bsth.entity.oil.Ylb;
5 import com.bsth.repository.BaseRepository; 12 import com.bsth.repository.BaseRepository;
6 13
7 @Repository 14 @Repository
8 public interface DlbRepository extends BaseRepository<Dlb, Integer>{ 15 public interface DlbRepository extends BaseRepository<Dlb, Integer>{
  16 + /**
  17 + * 前一天DLB信息
  18 + * @param rq
  19 + * @return
  20 + */
  21 + @Transactional
  22 + @Modifying
  23 + @Query(value="SELECT a.* FROM bsth_c_dlb a where to_days(?1)-to_days(a.rq)=1"
  24 + + " and jcsx=(select max(b.jcsx) from bsth_c_dlb b where a.nbbm=b.nbbm and "
  25 + + " to_days(?1)-to_days(b.rq)=1 )",nativeQuery=true)
  26 + List<Dlb> obtainYlbefore(String rq);
  27 + /**
  28 + * 当天DLB信息
  29 + * @param rq
  30 + * @return
  31 + */
  32 + @Transactional
  33 + @Modifying
  34 + @Query(value="SELECT * FROM bsth_c_dlb where to_days(?)=to_days(rq)",nativeQuery=true)
  35 + List<Dlb> obtainDl(String rq);
9 36
10 } 37 }
src/main/java/com/bsth/repository/oil/JdlRepository.java
@@ -27,6 +27,12 @@ public interface JdlRepository extends BaseRepository&lt;Jdl, Integer&gt;{ @@ -27,6 +27,12 @@ public interface JdlRepository extends BaseRepository&lt;Jdl, Integer&gt;{
27 @Query(value="SELECT * FROM bsth_c_jdl where gs_bm = ?1 and fgs_bm = ?2 and rq = ?3 and nbbm like %?4%",nativeQuery=true) 27 @Query(value="SELECT * FROM bsth_c_jdl where gs_bm = ?1 and fgs_bm = ?2 and rq = ?3 and nbbm like %?4%",nativeQuery=true)
28 List<Jdl> query(String gsbm, String fgsbm, String rq, String nbbm); 28 List<Jdl> query(String gsbm, String fgsbm, String rq, String nbbm);
29 29
  30 +
  31 + @Transactional
  32 + @Modifying
  33 + @Query(value="SELECT * FROM bsth_c_jdl where rq = ?",nativeQuery=true)
  34 + List<Jdl> JdlList( String rq);
  35 +
30 @Transactional 36 @Transactional
31 @Modifying 37 @Modifying
32 @Query(value="SELECT jdl FROM bsth_c_jdl where gs_bm = ?1 and fgs_bm = ?2 and rq = ?3 and nbbm = ?4 and jdz = ?5",nativeQuery=true) 38 @Query(value="SELECT jdl FROM bsth_c_jdl where gs_bm = ?1 and fgs_bm = ?2 and rq = ?3 and nbbm = ?4 and jdz = ?5",nativeQuery=true)
src/main/java/com/bsth/repository/oil/YlbRepository.java
@@ -23,8 +23,9 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{ @@ -23,8 +23,9 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
23 @Modifying 23 @Modifying
24 @Query(value="SELECT a.* FROM bsth_c_ylb a where to_days(?1)-to_days(a.rq)=1" 24 @Query(value="SELECT a.* FROM bsth_c_ylb a where to_days(?1)-to_days(a.rq)=1"
25 + " and jcsx=(select max(b.jcsx) from bsth_c_ylb b where a.nbbm=b.nbbm and " 25 + " and jcsx=(select max(b.jcsx) from bsth_c_ylb b where a.nbbm=b.nbbm and "
26 - + " to_days(?1)-to_days(b.rq)=1 )",nativeQuery=true)  
27 - List<Ylb> obtainYlbefore(String rq); 26 + + " to_days(?1)-to_days(b.rq)=1 ) and ssgsdm like %?2% and fgsdm like %?3% and "
  27 + + " xlbm like %?4% and nbbm like %?5% ",nativeQuery=true)
  28 + List<Ylb> obtainYlbefore(String rq,String gsbm,String fgsbm,String xlbm,String nbbm);
28 29
29 /** 30 /**
30 * 当天YLB信息 31 * 当天YLB信息
@@ -33,8 +34,10 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{ @@ -33,8 +34,10 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
33 */ 34 */
34 @Transactional 35 @Transactional
35 @Modifying 36 @Modifying
36 - @Query(value="SELECT * FROM bsth_c_ylb where to_days(?)=to_days(rq)",nativeQuery=true)  
37 - List<Ylb> obtainYl(String rq); 37 + @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and ssgsdm like %?2% "
  38 + + " and fgsdm like %?3%"
  39 + + " and xlbm like %?4% and nbbm like %?5% order by ?6 asc ",nativeQuery=true)
  40 + List<Ylb> obtainYl(String rq,String gsdm,String fgsdm,String xlbm,String nbbm,String px);
38 41
39 42
40 @Transactional 43 @Transactional
@@ -48,6 +51,41 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{ @@ -48,6 +51,41 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
48 */ 51 */
49 @Transactional 52 @Transactional
50 @Modifying 53 @Modifying
51 - @Query(value="select sum(jzl) as jzl,sum(zlc) as zlc from bsth_c_ylb where nbbm=?1 and rq=?2",nativeQuery=true)  
52 - List<Object[]> sumLcYl(String nbbm,Date rq); 54 + @Query(value="select ifnull(jzl,0),ifnull(zlc,0),ifnull(sh,0) from bsth_c_ylb where nbbm=?1 and rq=?2 and xlbm like %?3%",nativeQuery=true)
  55 + List<Object[]> sumLcYl(String nbbm,Date rq,String xlbm);
  56 +
  57 + /**
  58 + *
  59 + * @param nbbm
  60 + * @param rq
  61 + * @param xlbm
  62 + * @return
  63 + */
  64 + @Transactional
  65 + @Modifying
  66 + @Query(value="select nbbm,count(nbbm) from bsth_c_ylb where to_days(?1)=to_days(rq) and "
  67 + + " ssgsdm like %?2% "
  68 + + " and fgsdm like %?3%"
  69 + + " and xlbm like %?4% and nbbm like %?5% "
  70 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  71 + List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
  72 +
  73 +
  74 + @Query(value="select jzl,yh,sh from Ylb s "
  75 + + " where to_days(?1)=to_days(s.rq) "
  76 + + " and s.ssgsdm like %?2% "
  77 + + " and s.fgsdm like %?3%"
  78 + + " and s.xlbm like %?4% "
  79 + + " and s.nbbm in ?5 ")
  80 + List<Object[]> sumYlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm);
  81 +
  82 + @Transactional
  83 + @Modifying
  84 + @Query(value="select ifnull(jzl,0),ifnull(yh,0),ifnull(sh,0) from bsth_c_ylb "
  85 + + " where to_days(?1)=to_days(rq) "
  86 + + " and ssgsdm like %?2% "
  87 + + " and fgsdm like %?3%"
  88 + + " and xlbm like %?4% "
  89 + + " and nbbm like %?5%",nativeQuery=true)
  90 + List<Object[]> sumYlb2(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
53 } 91 }
src/main/java/com/bsth/repository/oil/YlxxbRepository.java
@@ -19,8 +19,8 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{ @@ -19,8 +19,8 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{
19 */ 19 */
20 @Transactional 20 @Transactional
21 @Modifying 21 @Modifying
22 - @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?)=to_days(yyrq)",nativeQuery=true)  
23 - List<Ylxxb> obtainYlxx(String rq); 22 + @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nylx=?2 and gsdm like %?3%",nativeQuery=true)
  23 + List<Ylxxb> obtainYlxx(String rq,int nylx,String gsdm);
24 24
25 @Transactional 25 @Transactional
26 @Modifying 26 @Modifying
src/main/java/com/bsth/repository/realcontrol/ChildTaskPlanRepository.java
1 package com.bsth.repository.realcontrol; 1 package com.bsth.repository.realcontrol;
2 2
3 -import java.util.List;  
4 - 3 +import com.bsth.entity.realcontrol.ChildTaskPlan;
  4 +import com.bsth.repository.BaseRepository;
5 import org.springframework.data.jpa.domain.Specification; 5 import org.springframework.data.jpa.domain.Specification;
6 import org.springframework.data.jpa.repository.EntityGraph; 6 import org.springframework.data.jpa.repository.EntityGraph;
7 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
8 8
9 -import com.bsth.entity.realcontrol.ChildTaskPlan;  
10 -import com.bsth.repository.BaseRepository; 9 +import java.util.List;
11 10
12 @Repository 11 @Repository
13 public interface ChildTaskPlanRepository extends BaseRepository<ChildTaskPlan, Long>{ 12 public interface ChildTaskPlanRepository extends BaseRepository<ChildTaskPlan, Long>{
@@ -15,4 +14,8 @@ public interface ChildTaskPlanRepository extends BaseRepository&lt;ChildTaskPlan, L @@ -15,4 +14,8 @@ public interface ChildTaskPlanRepository extends BaseRepository&lt;ChildTaskPlan, L
15 @EntityGraph(value = "childTaskPlan_schedule", type = EntityGraph.EntityGraphType.FETCH) 14 @EntityGraph(value = "childTaskPlan_schedule", type = EntityGraph.EntityGraphType.FETCH)
16 @Override 15 @Override
17 List<ChildTaskPlan> findAll(Specification<ChildTaskPlan> spec); 16 List<ChildTaskPlan> findAll(Specification<ChildTaskPlan> spec);
  17 +
  18 + @EntityGraph(value = "childTaskPlan_schedule", type = EntityGraph.EntityGraphType.FETCH)
  19 + @Override
  20 + ChildTaskPlan findOne(Long id);
18 } 21 }
src/main/java/com/bsth/repository/realcontrol/OilStationSocietyRepository.java 0 → 100644
  1 +package com.bsth.repository.realcontrol;
  2 +
  3 +import com.bsth.entity.realcontrol.OilStationSociety;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by panzhao on 2017/3/16.
  9 + */
  10 +@Repository
  11 +public interface OilStationSocietyRepository extends BaseRepository<OilStationSociety, String>{
  12 +}
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -65,11 +65,11 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -65,11 +65,11 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
65 int countByDate(String date); 65 int countByDate(String date);
66 66
67 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) 67 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
68 - @Query(value = "select s from ScheduleRealInfo s where s.scheduleDateStr = ?1") 68 + @Query(value = "select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr = ?1")
69 List<ScheduleRealInfo> findByDate(String dateStr); 69 List<ScheduleRealInfo> findByDate(String dateStr);
70 70
71 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) 71 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
72 - @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and cl_zbh=?3 order by bcs") 72 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and cl_zbh=?3 order by bcs")
73 List<ScheduleRealInfo> findByDate2(String line,String date,String clzbh); 73 List<ScheduleRealInfo> findByDate2(String line,String date,String clzbh);
74 74
75 @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and s.status = -1") 75 @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and s.status = -1")
@@ -86,26 +86,31 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -86,26 +86,31 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
86 + " and clZbh like %?5% order by s.fcsj") 86 + " and clZbh like %?5% order by s.fcsj")
87 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code); 87 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code);
88 88
89 - @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and s.scheduleDate = str_to_date(?4,'%Y-%m-%d') and s.xlBm=?5 order by realExecDate,fcsj") 89 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  90 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and s.scheduleDate = str_to_date(?4,'%Y-%m-%d') and s.xlBm=?5 order by realExecDate,fcsj")
90 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName,String date,String line); 91 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName,String date,String line);
91 92
92 - @Query(value="select s from ScheduleRealInfo s where s.clZbh = ?1 and s.scheduleDate = str_to_date(?2,'%Y-%m-%d') and xlBm =?3 order by realExecDate,fcsj") 93 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  94 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.clZbh = ?1 and s.scheduleDate = str_to_date(?2,'%Y-%m-%d') and xlBm =?3 order by realExecDate,fcsj")
93 List<ScheduleRealInfo> queryListWaybill2(String clZbh,String date,String line); 95 List<ScheduleRealInfo> queryListWaybill2(String clZbh,String date,String line);
94 96
95 - @Query(value="select s from ScheduleRealInfo s where s.jGh = ?1 and s.clZbh = ?2 and s.scheduleDate = str_to_date(?3,'%Y-%m-%d') order by realExecDate,fcsj")  
96 - List<ScheduleRealInfo> queryListWaybill3(String jName,String clZbh,String date); 97 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  98 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.jGh like %?1% and s.clZbh like %?2% and s.scheduleDate = str_to_date(?3,'%Y-%m-%d') and s.gsBm like %?4% and s.fgsBm like %?5% order by realExecDate,fcsj")
  99 + List<ScheduleRealInfo> queryListWaybill3(String jName,String clZbh,String date,String gsbm,String fgsbm);
97 100
98 - @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between str_to_date(?3,'%Y-%m-%d') and str_to_date(?4,'%Y-%m-%d') order by bcs") 101 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  102 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between str_to_date(?3,'%Y-%m-%d') and str_to_date(?4,'%Y-%m-%d') order by bcs")
99 List<ScheduleRealInfo> queryListWaybill4(String jName,String clZbh,String date,String enddate); 103 List<ScheduleRealInfo> queryListWaybill4(String jName,String clZbh,String date,String enddate);
100 104
101 - @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2") 105 + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
  106 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
102 List<ScheduleRealInfo> scheduleDaily(String line,String date); 107 List<ScheduleRealInfo> scheduleDaily(String line,String date);
103 108
104 @Query(value = "select count(*) from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2") 109 @Query(value = "select count(*) from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2")
105 int countByLineCodeAndDate(String xlBm, String schDate); 110 int countByLineCodeAndDate(String xlBm, String schDate);
106 111
107 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) 112 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
108 - @Query(value = "select s from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2") 113 + @Query(value = "select DISTINCT s from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2")
109 List<ScheduleRealInfo> findByLineCodeAndDate(String xlBm, String schDate); 114 List<ScheduleRealInfo> findByLineCodeAndDate(String xlBm, String schDate);
110 115
111 @Modifying 116 @Modifying
@@ -127,8 +132,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -127,8 +132,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
127 @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m') = ?2 and s.bcType not in ('in','out') order by s.xlBm") 132 @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m') = ?2 and s.bcType not in ('in','out') order by s.xlBm")
128 List<ScheduleRealInfo> scheduleByDateAndLine3(String line,String date); 133 List<ScheduleRealInfo> scheduleByDateAndLine3(String line,String date);
129 134
130 - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY xlBm,clZbh")  
131 - List<Map<String,Object>> yesterdayDataList(String line,String date); 135 + //按照时间段统计
  136 + @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') order by s.xlBm")
  137 + List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2);
  138 +
  139 + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY xlBm,clZbh")
  140 + List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm);
132 141
133 @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir") 142 @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir")
134 List<ScheduleRealInfo> setLD(String date); 143 List<ScheduleRealInfo> setLD(String date);
src/main/java/com/bsth/repository/schedule/SchedulePlanInfoRepository.java
@@ -49,7 +49,7 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI @@ -49,7 +49,7 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
49 "where info.xl = ?1 and " + 49 "where info.xl = ?1 and " +
50 "info.schedule_date = ?2 " + 50 "info.schedule_date = ?2 " +
51 "group by info.xl_name, info.schedule_date, info.lp, info.lp_name, info.cl, info.cl_zbh " + 51 "group by info.xl_name, info.schedule_date, info.lp, info.lp_name, info.cl, info.cl_zbh " +
52 - "order by info.xl_name, info.schedule_date, info.lp ", nativeQuery = true) 52 + "order by info.xl_name, info.schedule_date, info.lp, info.fcno ", nativeQuery = true)
53 List<Object[]> findGroupInfo(Integer xlid, Date scheduleDate); 53 List<Object[]> findGroupInfo(Integer xlid, Date scheduleDate);
54 54
55 @Modifying 55 @Modifying
src/main/java/com/bsth/repository/sys/DutyEmployeeRepository.java
@@ -13,6 +13,7 @@ import java.util.List; @@ -13,6 +13,7 @@ import java.util.List;
13 @Repository 13 @Repository
14 public interface DutyEmployeeRepository extends BaseRepository<DutyEmployee, Long>{ 14 public interface DutyEmployeeRepository extends BaseRepository<DutyEmployee, Long>{
15 15
16 - @Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts > ?2 and t.ts < ?3") 16 + //@Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts > ?2 and t.ts < ?3")
  17 + @Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts < ?3")
17 List<DutyEmployee> findByLineAndTime(String lineCode, long st, long et); 18 List<DutyEmployee> findByLineAndTime(String lineCode, long st, long et);
18 } 19 }
src/main/java/com/bsth/security/WebSecurityConfig.java
@@ -36,7 +36,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @@ -36,7 +36,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
36 public void configure(WebSecurity web) throws Exception { 36 public void configure(WebSecurity web) throws Exception {
37 // 白名单 37 // 白名单
38 web.ignoring().antMatchers(Constants.LOGIN_PAGE, Constants.LOGIN, Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.CAPTCHA, 38 web.ignoring().antMatchers(Constants.LOGIN_PAGE, Constants.LOGIN, Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.CAPTCHA,
39 - Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS); 39 + Constants.SERVICE_INTERFACE, Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS);
40 } 40 }
41 41
42 @Override 42 @Override
src/main/java/com/bsth/service/forms/impl/CommonServiceImpl.java
@@ -101,7 +101,7 @@ public class CommonServiceImpl implements CommonService{ @@ -101,7 +101,7 @@ public class CommonServiceImpl implements CommonService{
101 + " order by bcs"; 101 + " order by bcs";
102 102
103 103
104 - List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill3(jName, clZbh , date); 104 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill3(jName, clZbh , date,"","");
105 105
106 DecimalFormat format = new DecimalFormat("0.00"); 106 DecimalFormat format = new DecimalFormat("0.00");
107 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName); 107 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -2,6 +2,7 @@ package com.bsth.service.forms.impl; @@ -2,6 +2,7 @@ package com.bsth.service.forms.impl;
2 2
3 import java.sql.ResultSet; 3 import java.sql.ResultSet;
4 import java.sql.SQLException; 4 import java.sql.SQLException;
  5 +import java.text.DecimalFormat;
5 import java.text.NumberFormat; 6 import java.text.NumberFormat;
6 import java.text.ParseException; 7 import java.text.ParseException;
7 import java.text.SimpleDateFormat; 8 import java.text.SimpleDateFormat;
@@ -23,6 +24,7 @@ import com.bsth.entity.mcy_forms.Singledata; @@ -23,6 +24,7 @@ import com.bsth.entity.mcy_forms.Singledata;
23 import com.bsth.entity.mcy_forms.Turnoutrate; 24 import com.bsth.entity.mcy_forms.Turnoutrate;
24 import com.bsth.entity.mcy_forms.Vehicleloading; 25 import com.bsth.entity.mcy_forms.Vehicleloading;
25 import com.bsth.entity.mcy_forms.Waybillday; 26 import com.bsth.entity.mcy_forms.Waybillday;
  27 +import com.bsth.data.BasicData;
26 import com.bsth.entity.mcy_forms.Allline; 28 import com.bsth.entity.mcy_forms.Allline;
27 import com.bsth.entity.mcy_forms.Changetochange; 29 import com.bsth.entity.mcy_forms.Changetochange;
28 import com.bsth.entity.mcy_forms.Daily; 30 import com.bsth.entity.mcy_forms.Daily;
@@ -47,33 +49,33 @@ public class FormsServiceImpl implements FormsService { @@ -47,33 +49,33 @@ public class FormsServiceImpl implements FormsService {
47 @Override 49 @Override
48 public List<Waybillday> waybillday(Map<String, Object> map) { 50 public List<Waybillday> waybillday(Map<String, Object> map) {
49 51
50 - String sql ="select x.j_gh,x.cl_zbh,z.JZL,z.YH,z.personnel_name,x.schedule_date,x.gs_bm,x.gs_name,x.fgs_bm,x.fgs_name "  
51 - + " from bsth_c_s_sp_info_real x INNER join "  
52 - + " ( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH,c.personnel_name from"  
53 - + " bsth_c_ylb y LEFT JOIN bsth_c_personnel c ON c.job_code=y.JSY "  
54 - + " where 1=1 ";  
55 - if(map.get("date").toString()!=""){  
56 - sql+=" and to_days(y.RQ)=to_days('"+map.get("date").toString() + "') ";  
57 - }  
58 - if( map.get("line").toString()!=""){  
59 - sql+=" and y.XLBM= '"+ map.get("line").toString()+"' GROUP BY y.NBBM) ";  
60 - }  
61 - sql+= " z on x.cl_zbh=z.nbbm where to_days( x.schedule_date)=to_days('"+map.get("date").toString()+"') ";  
62 - if(map.get("gsdmWaybillday").toString()!=""){  
63 - sql+=" and x.gs_bm='"+map.get("gsdmWaybillday").toString()+"'";  
64 - }  
65 - if(map.get("fgsdmWaybillday").toString()!=""){  
66 - sql+=" and x.fgs_bm='"+map.get("fgsdmWaybillday").toString()+"'";  
67 - }  
68 - sql += " GROUP BY x.j_gh,x.cl_zbh,z.JZL,z.YH,z.personnel_name,x.schedule_date,x.gs_bm,x.gs_name,x.fgs_bm,x.fgs_name "; 52 +
  53 +
  54 + String sql=" select t.*,z.jzl,z.yh from ("
  55 + + " select x.j_gh,x.cl_zbh,x.j_name,x.schedule_date,"
  56 + + " x.gs_bm,x.gs_name,x.fgs_bm,x.fgs_name from bsth_c_s_sp_info_real x "
  57 + + " where to_days( x.schedule_date)=to_days('"+map.get("date").toString() + "') "
  58 + + " and x.gs_bm='"+map.get("gsdmWaybillday").toString()+"' "
  59 + + " and x.fgs_bm='"+map.get("fgsdmWaybillday").toString()+"' "
  60 + + " and xl_bm like '%"+ map.get("line").toString().trim()+"%'"
  61 + + " GROUP BY x.j_gh,x.cl_zbh,x.j_name,"
  62 + + " x.schedule_date,x.gs_bm,x.gs_name,x.fgs_bm,x.fgs_name ) t"
  63 + + " LEFT join (select y.rq,y.xlbm,y.nbbm,y.jsy,y.jzl,y.yh from"
  64 + + " bsth_c_ylb y where 1=1 "
  65 + + " and to_days(y.RQ)=to_days('"+map.get("date").toString() + "') "
  66 + + " and y.XLBM like '%"+ map.get("line").toString().trim()+"%'"
  67 + + " and y.ssgsdm='"+map.get("gsdmWaybillday").toString()+"'"
  68 + + " and y.fgsdm='"+map.get("gsdmWaybillday").toString()+"') z "
  69 + + " on t.cl_zbh=z.nbbm ";
  70 +
69 List<Waybillday> list = jdbcTemplate.query(sql, new RowMapper<Waybillday>() { 71 List<Waybillday> list = jdbcTemplate.query(sql, new RowMapper<Waybillday>() {
70 @Override 72 @Override
71 public Waybillday mapRow(ResultSet arg0, int arg1) throws SQLException { 73 public Waybillday mapRow(ResultSet arg0, int arg1) throws SQLException {
72 Waybillday wbd = new Waybillday(); 74 Waybillday wbd = new Waybillday();
73 wbd.setCarPlate(arg0.getString("cl_zbh")); 75 wbd.setCarPlate(arg0.getString("cl_zbh"));
74 - wbd.setJzl(arg0.getString("JZL"));  
75 - wbd.setYh(arg0.getString("YH"));  
76 - wbd.setjName(arg0.getString("personnel_name")); 76 + wbd.setJzl(arg0.getString("jzl"));
  77 + wbd.setYh(arg0.getString("yh"));
  78 + wbd.setjName(arg0.getString("j_name"));
77 wbd.setRq(arg0.getString("schedule_date")); 79 wbd.setRq(arg0.getString("schedule_date"));
78 wbd.setJgh(arg0.getString("j_gh")); 80 wbd.setJgh(arg0.getString("j_gh"));
79 return wbd; 81 return wbd;
@@ -193,7 +195,15 @@ public class FormsServiceImpl implements FormsService { @@ -193,7 +195,15 @@ public class FormsServiceImpl implements FormsService {
193 // 班次车辆人员日统计 195 // 班次车辆人员日统计
194 @Override 196 @Override
195 public List<Shifday> shifday(Map<String, Object> map) { 197 public List<Shifday> shifday(Map<String, Object> map) {
196 - String sql = " select r.schedule_date,r.lp_name,r.xl_name,r.j_name,r.s_name, r.cl_zbh,r.xl_bm," 198 +
  199 + String sql ="select t.* from (select r.schedule_date,r.j_name,IFNULL(r.s_name,'')as s_name,"
  200 + + " r.cl_zbh,r.xl_bm, r.j_gh,r.gs_bm,r.fgs_bm FROM bsth_c_s_sp_info_real r where 1=1 "
  201 + + " and to_days(r.schedule_date)=to_days('"+ map.get("date").toString() + "') "
  202 + + " and r.xl_bm like '%"+map.get("line").toString()+"%' "
  203 + + " and r.gs_bm='"+map.get("gsdmShif").toString()+"' "
  204 + + " and r.fgs_bm='"+map.get("fgsdmShif").toString()+"' ) t"
  205 + + " GROUP BY t.schedule_date,t.j_name,t.s_name, t.cl_zbh,t.xl_bm,t.j_gh,t.gs_bm,t.fgs_bm ";
  206 + /*String sql = " select r.schedule_date,r.lp_name,r.xl_name,r.j_name,r.s_name, r.cl_zbh,r.xl_bm,"
197 + " r.cl_zbh,r.j_gh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name,r.bc_type " 207 + " r.cl_zbh,r.j_gh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name,r.bc_type "
198 + " FROM bsth_c_s_sp_info_real r " 208 + " FROM bsth_c_s_sp_info_real r "
199 + " where 1=1 "; 209 + " where 1=1 ";
@@ -211,20 +221,18 @@ public class FormsServiceImpl implements FormsService { @@ -211,20 +221,18 @@ public class FormsServiceImpl implements FormsService {
211 sql+=" and r.fgs_bm='"+map.get("fgsdmShif").toString()+"'"; 221 sql+=" and r.fgs_bm='"+map.get("fgsdmShif").toString()+"'";
212 } 222 }
213 sql += " GROUP BY r.schedule_date,r.lp_name,r.xl_name,r.j_name,r.s_name, r.cl_zbh,r.xl_bm,r.cl_zbh,r.j_gh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name " 223 sql += " GROUP BY r.schedule_date,r.lp_name,r.xl_name,r.j_name,r.s_name, r.cl_zbh,r.xl_bm,r.cl_zbh,r.j_gh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "
214 - + " ORDER BY r.lp_name asc"; 224 + + " ORDER BY r.lp_name asc";*/
215 225
216 List<Shifday> list = jdbcTemplate.query(sql, new RowMapper<Shifday>() { 226 List<Shifday> list = jdbcTemplate.query(sql, new RowMapper<Shifday>() {
217 227
218 @Override 228 @Override
219 public Shifday mapRow(ResultSet arg0, int arg1) throws SQLException { 229 public Shifday mapRow(ResultSet arg0, int arg1) throws SQLException {
220 Shifday shifday = new Shifday(); 230 Shifday shifday = new Shifday();
  231 + shifday.setRq(arg0.getString("schedule_date"));
221 shifday.setjName(arg0.getString("j_name").toString()); 232 shifday.setjName(arg0.getString("j_name").toString());
222 shifday.setsName(arg0.getString("s_name") == null ? "" : arg0.getString("s_name").toString()); 233 shifday.setsName(arg0.getString("s_name") == null ? "" : arg0.getString("s_name").toString());
223 - shifday.setLpName(arg0.getString("r.lp_name").toString());  
224 shifday.setCarPlate(arg0.getString("cl_zbh").toString()); 234 shifday.setCarPlate(arg0.getString("cl_zbh").toString());
225 shifday.setJgh(arg0.getString("j_gh")); 235 shifday.setJgh(arg0.getString("j_gh"));
226 - shifday.setZbh(arg0.getString("cl_zbh"));  
227 - shifday.setRq(arg0.getString("schedule_date"));  
228 return shifday; 236 return shifday;
229 } 237 }
230 238
@@ -335,33 +343,28 @@ public class FormsServiceImpl implements FormsService { @@ -335,33 +343,28 @@ public class FormsServiceImpl implements FormsService {
335 String rq3 = sdf1.format(d1); 343 String rq3 = sdf1.format(d1);
336 344
337 rq = rq2 + "-" + rq3; 345 rq = rq2 + "-" + rq3;
338 -  
339 - String sql = " SELECT r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,y.JZL,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "  
340 - + " FROM bsth_c_s_sp_info_real r "  
341 - + " left join bsth_c_ylb y"  
342 - + " ON r.cl_zbh = y.nbbm "  
343 - + " where r.schedule_date_str BETWEEN '" + map.get("startDate").toString() + "'"  
344 - + " and '"+ map.get("endDate").toString() + "'"  
345 - + " and r.xl_bm='" + map.get("line").toString() + "'"  
346 - + " AND r.gs_bm is not null";  
347 -  
348 - if(map.get("gsdmSing").toString()!=""){  
349 - sql+=" and r.gs_bm='"+map.get("gsdmSing").toString()+"'";  
350 - }  
351 - if(map.get("fgsdmSing").toString()!=""){  
352 - sql+=" and r.fgs_bm='"+map.get("fgsdmSing").toString()+"'";  
353 - }  
354 - sql += " GROUP BY r.xl_bm,r.cl_zbh,r.j_gh,r.j_name,y.YH,y.JZL,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name ";  
355 -  
356 startDate = map.get("startDate").toString(); 346 startDate = map.get("startDate").toString();
357 endDate = map.get("endDate").toString(); 347 endDate = map.get("endDate").toString();
  348 + String sql = "select t.*,y.yh,y.jzl from ("
  349 + + " select r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm"
  350 + + " from bsth_c_s_sp_info_real r where r.schedule_date_str "
  351 + + " BETWEEN '"+startDate+"' and '"+endDate+"' and r.xl_bm='"+map.get("line").toString()+"' "
  352 + + " AND r.gs_bm is not null and r.gs_bm='"+map.get("gsdmSing").toString()+"' "
  353 + + " and r.fgs_bm='"+map.get("fgsdmSing").toString()+"' "
  354 + + " group by r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,r.gs_bm,r.fgs_bm) t "
  355 + + " LEFT JOIN (select a.nbbm,a.jsy,SUM(a.yh) as yh,SUM(a.jzl) as jzl "
  356 + + " from bsth_c_ylb a where a.rq BETWEEN '"+startDate+"' and '"+endDate+"'and "
  357 + + " a.ssgsdm='"+map.get("gsdmSing").toString()+"' and a.fgsdm='"+map.get("fgsdmSing").toString()+"' "
  358 + + "group by a.nbbm,a.jsy) y"
  359 + + " on y.nbbm=t.cl_zbh and y.jsy= t.j_gh";
  360 +
358 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() { 361 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
359 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 362 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
360 @Override 363 @Override
361 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException { 364 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
362 Singledata sin = new Singledata(); 365 Singledata sin = new Singledata();
363 sin.setrQ(rq); 366 sin.setrQ(rq);
364 - sin.setgS(arg0.getString("gs_name")); 367 + sin.setgS(arg0.getString("gs_bm"));
365 sin.setxL(arg0.getString("xl_name")); 368 sin.setxL(arg0.getString("xl_name"));
366 sin.setClzbh(arg0.getString("cl_zbh")); 369 sin.setClzbh(arg0.getString("cl_zbh"));
367 sin.setJsy(arg0.getString("j_gh")); 370 sin.setJsy(arg0.getString("j_gh"));
@@ -374,8 +377,13 @@ public class FormsServiceImpl implements FormsService { @@ -374,8 +377,13 @@ public class FormsServiceImpl implements FormsService {
374 return sin; 377 return sin;
375 } 378 }
376 }); 379 });
  380 + DecimalFormat df = new DecimalFormat("0.00");
377 for(int i=0;i<list.size();i++){ 381 for(int i=0;i<list.size();i++){
  382 +
378 Singledata si=list.get(i); 383 Singledata si=list.get(i);
  384 + si.setgS(BasicData.businessCodeNameMap.get(si.getgS()));
  385 + si.setJzl(df.format(Double.parseDouble(si.getJzl())));
  386 + si.setHyl(df.format(Double.parseDouble(si.getHyl())));
379 Map<String, Object> maps = new HashMap<>(); 387 Map<String, Object> maps = new HashMap<>();
380 maps = commonService.findKMBC1(si.getjName(),si.getClzbh(), startDate, 388 maps = commonService.findKMBC1(si.getjName(),si.getClzbh(), startDate,
381 endDate); 389 endDate);
@@ -712,22 +720,20 @@ public class FormsServiceImpl implements FormsService { @@ -712,22 +720,20 @@ public class FormsServiceImpl implements FormsService {
712 720
713 @Override 721 @Override
714 public List<Daily> daily(Map<String, Object> map) { 722 public List<Daily> daily(Map<String, Object> map) {
715 -  
716 - String sql ="select r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "  
717 - + " from bsth_c_s_sp_info_real r LEFT JOIN bsth_c_ylb y ON r.cl_zbh = y.nbbm "  
718 - + " WHERE 1 = 1"  
719 - + " and r.xl_bm='" + map.get("line").toString() + "'"  
720 - + " and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"')"  
721 - + " AND r.gs_bm is not null";  
722 -  
723 - if(map.get("gsdmDaily").toString()!=""){  
724 - sql+=" and r.gs_bm='"+map.get("gsdmDaily").toString()+"'";  
725 - }  
726 - if(map.get("fgsdmDaily").toString()!=""){  
727 - sql+=" and r.fgs_bm='"+map.get("fgsdmDaily").toString()+"'";  
728 - }  
729 - sql += " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name,y.YH,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name ";  
730 - 723 + String sql="select t.schedule_date_str,"
  724 + + " t.cl_zbh,t.j_gh,t.j_name,x.yh from (select r.schedule_date_str,r.xl_bm,r.xl_name,"
  725 + + " r.cl_zbh,r.j_gh,r.j_name from bsth_c_s_sp_info_real r WHERE "
  726 + + " r.xl_bm='" + map.get("line").toString() + "' and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "
  727 + + " and r.gs_bm like '%"+map.get("gsdmDaily").toString()+"%' "
  728 + + " and r.fgs_bm like '%"+map.get("fgsdmDaily").toString()+"%' "
  729 + + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name) t"
  730 + + " left join (select * from bsth_c_ylb y where "
  731 + + " to_days(y.rq)=to_days('"+map.get("date").toString()+"') "
  732 + + " and y.xlbm= '" + map.get("line").toString() + "'"
  733 + + " and y.ssgsdm like '%"+map.get("gsdmDaily").toString()+"%' "
  734 + + " and y.fgsdm like '%"+map.get("fgsdmDaily").toString()+"%'"
  735 + + " ) x"
  736 + + " on t.cl_zbh = x.nbbm ";
731 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() { 737 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() {
732 @Override 738 @Override
733 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException { 739 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException {
@@ -736,7 +742,7 @@ public class FormsServiceImpl implements FormsService { @@ -736,7 +742,7 @@ public class FormsServiceImpl implements FormsService {
736 daily.setZbh(arg0.getString("cl_zbh")); 742 daily.setZbh(arg0.getString("cl_zbh"));
737 daily.setJgh(arg0.getString("j_gh")); 743 daily.setJgh(arg0.getString("j_gh"));
738 daily.setjName(arg0.getString("j_name")); 744 daily.setjName(arg0.getString("j_name"));
739 - daily.setYh(arg0.getString("YH")); 745 + daily.setYh(arg0.getString("yh"));
740 return daily; 746 return daily;
741 } 747 }
742 }); 748 });
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
@@ -1345,8 +1345,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { @@ -1345,8 +1345,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1345 Collections.sort(keyMap1.get(key), new Comparator<Map<String, Object>>() { 1345 Collections.sort(keyMap1.get(key), new Comparator<Map<String, Object>>() {
1346 1346
1347 public int compare(Map<String, Object> o1, Map<String, Object> o2) { 1347 public int compare(Map<String, Object> o1, Map<String, Object> o2) {
1348 - Integer a;  
1349 - Integer b; 1348 + Long a;
  1349 + Long b;
1350 String lp1 = o1.get("lp").toString(); 1350 String lp1 = o1.get("lp").toString();
1351 String lp2 = o2.get("lp").toString(); 1351 String lp2 = o2.get("lp").toString();
1352 String str1 = ""; 1352 String str1 = "";
@@ -1358,8 +1358,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { @@ -1358,8 +1358,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1358 str2 += (int)lp2.charAt(i); 1358 str2 += (int)lp2.charAt(i);
1359 } 1359 }
1360 1360
1361 - a = Integer.valueOf(str1);  
1362 - b = Integer.valueOf(str2); 1361 + a = Long.valueOf(str1);
  1362 + b = Long.valueOf(str2);
1363 1363
1364 // 升序 1364 // 升序
1365 return a.compareTo(b); 1365 return a.compareTo(b);
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
@@ -15,6 +15,7 @@ import com.bsth.service.TrafficManageService; @@ -15,6 +15,7 @@ import com.bsth.service.TrafficManageService;
15 import com.bsth.util.TimeUtils; 15 import com.bsth.util.TimeUtils;
16 import com.bsth.util.db.DBUtils_MS; 16 import com.bsth.util.db.DBUtils_MS;
17 import com.bsth.webService.trafficManage.geotool.services.InternalPortType; 17 import com.bsth.webService.trafficManage.geotool.services.InternalPortType;
  18 +import com.bsth.webService.trafficManage.geotool.services.Internal;
18 import com.bsth.webService.trafficManage.org.tempuri.WebServiceLocator; 19 import com.bsth.webService.trafficManage.org.tempuri.WebServiceLocator;
19 import com.bsth.webService.trafficManage.org.tempuri.WebServiceSoap; 20 import com.bsth.webService.trafficManage.org.tempuri.WebServiceSoap;
20 import org.apache.commons.lang.time.DateUtils; 21 import org.apache.commons.lang.time.DateUtils;
@@ -25,10 +26,7 @@ import org.springframework.data.domain.Sort; @@ -25,10 +26,7 @@ import org.springframework.data.domain.Sort;
25 import org.springframework.data.domain.Sort.Direction; 26 import org.springframework.data.domain.Sort.Direction;
26 import org.springframework.stereotype.Service; 27 import org.springframework.stereotype.Service;
27 28
28 -import java.io.BufferedOutputStream;  
29 -import java.io.File;  
30 -import java.io.FileOutputStream;  
31 -import java.io.IOException; 29 +import java.io.*;
32 import java.sql.Connection; 30 import java.sql.Connection;
33 import java.sql.PreparedStatement; 31 import java.sql.PreparedStatement;
34 import java.sql.ResultSet; 32 import java.sql.ResultSet;
@@ -188,6 +186,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -188,6 +186,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
188 sBuffer.append("</XLs>"); 186 sBuffer.append("</XLs>");
189 System.out.println(sBuffer.toString()); 187 System.out.println(sBuffer.toString());
190 if(sBuffer.indexOf("<XL>") != -1){ 188 if(sBuffer.indexOf("<XL>") != -1){
  189 + portType = new Internal().getInternalHttpSoap11Endpoint();
191 String portResult = portType.setXL(userNameXl, passwordXl, sBuffer.toString()); 190 String portResult = portType.setXL(userNameXl, passwordXl, sBuffer.toString());
192 String portArray[] = portResult.split("\n"); 191 String portArray[] = portResult.split("\n");
193 if(portArray.length >= 4){ 192 if(portArray.length >= 4){
@@ -386,6 +385,24 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -386,6 +385,24 @@ public class TrafficManageServiceImpl implements TrafficManageService{
386 } 385 }
387 386
388 /** 387 /**
  388 + * 从文件中读取xml
  389 + * @param fileName 例:D:/test.txt
  390 + * @return
  391 + * @throws Exception
  392 + */
  393 + private String readXmlFromFile(String fileName) throws Exception {
  394 + StringBuffer sf = new StringBuffer("");
  395 + File file = new File(fileName);
  396 + InputStreamReader reader = new InputStreamReader(new FileInputStream(file),"utf-8");
  397 + BufferedReader bufferedReader = new BufferedReader(reader);
  398 + String lineTxt = "";
  399 + while((lineTxt = bufferedReader.readLine()) != null){
  400 + sf.append(lineTxt);
  401 + }
  402 + reader.close();
  403 + return sf.toString().replaceAll("\t","");
  404 + }
  405 + /**
389 * 上传里程油耗 406 * 上传里程油耗
390 * @return 上传成功标识 407 * @return 上传成功标识
391 */ 408 */
@@ -890,7 +907,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -890,7 +907,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
890 int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024); 907 int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
891 908
892 System.out.println("zzz:"+nFreeMemory + "M/" + nTotalMemory +"M(free/total)"); 909 System.out.println("zzz:"+nFreeMemory + "M/" + nTotalMemory +"M(free/total)");
893 - 910 + portType = new Internal().getInternalHttpSoap11Endpoint();
894 byte[] res = portType.downloadAllDataFile("down_pdgj", "down_pdgj123"); 911 byte[] res = portType.downloadAllDataFile("down_pdgj", "down_pdgj123");
895 String filePath = "E:\\ygc"; 912 String filePath = "E:\\ygc";
896 BufferedOutputStream bos = null; 913 BufferedOutputStream bos = null;
src/main/java/com/bsth/service/oil/CdlService.java 0 → 100644
  1 +package com.bsth.service.oil;
  2 +
  3 +
  4 +import com.bsth.entity.oil.Cdl;
  5 +import com.bsth.service.BaseService;
  6 +
  7 +public interface CdlService extends BaseService<Cdl, Integer>{
  8 +}
src/main/java/com/bsth/service/oil/DlbService.java
1 package com.bsth.service.oil; 1 package com.bsth.service.oil;
2 2
  3 +import java.util.Map;
  4 +
3 import com.bsth.entity.oil.Dlb; 5 import com.bsth.entity.oil.Dlb;
4 import com.bsth.service.BaseService; 6 import com.bsth.service.BaseService;
5 7
6 public interface DlbService extends BaseService<Dlb, Integer>{ 8 public interface DlbService extends BaseService<Dlb, Integer>{
  9 + Map<String, Object> obtain(Map<String, Object> map);
  10 +
  11 + Map<String, Object> sort(Map<String, Object> map);
  12 +
  13 + Map<String, Object> checkDl(Map<String, Object> map);
7 } 14 }
src/main/java/com/bsth/service/oil/YlbService.java
@@ -7,13 +7,17 @@ import com.bsth.entity.oil.Ylb; @@ -7,13 +7,17 @@ import com.bsth.entity.oil.Ylb;
7 import com.bsth.service.BaseService; 7 import com.bsth.service.BaseService;
8 8
9 public interface YlbService extends BaseService<Ylb, Integer>{ 9 public interface YlbService extends BaseService<Ylb, Integer>{
10 - Map<String, Object> obtain(Map<String, Object> map);  
11 - String obtainDsq(); 10 + Map<String, Object> obtain(Map<String, Object> map) throws Exception;
  11 + String obtainDsq() throws Exception;
12 Map<String, Object> sort(Map<String, Object> map); 12 Map<String, Object> sort(Map<String, Object> map);
13 13
14 - Map<String, Object> outAndIn(Map<String, Object> map); 14 + Map<String, Object> outAndIn(Map<String, Object> map) throws Exception;
15 15
16 Map<String, Object> checkYl(Map<String, Object> map); 16 Map<String, Object> checkYl(Map<String, Object> map);
17 17
  18 + Map<String, Object> sumYlb(Map<String, Object> map);
  19 +
18 List<Ylb> oilListMonth(String line,String date); 20 List<Ylb> oilListMonth(String line,String date);
  21 +
  22 + StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx);
19 } 23 }
src/main/java/com/bsth/service/oil/impl/CdlServiceImpl.java 0 → 100644
  1 +package com.bsth.service.oil.impl;
  2 +
  3 +import org.springframework.stereotype.Service;
  4 +
  5 +import com.bsth.entity.oil.Cdl;
  6 +import com.bsth.service.impl.BaseServiceImpl;
  7 +import com.bsth.service.oil.CdlService;
  8 +
  9 +@Service
  10 +public class CdlServiceImpl extends BaseServiceImpl<Cdl,Integer> implements CdlService
  11 +{
  12 +
  13 +}
src/main/java/com/bsth/service/oil/impl/DlbServiceImpl.java
@@ -2,14 +2,316 @@ package com.bsth.service.oil.impl; @@ -2,14 +2,316 @@ package com.bsth.service.oil.impl;
2 2
3 3
4 4
  5 +import java.text.DecimalFormat;
  6 +import java.text.ParseException;
  7 +import java.text.SimpleDateFormat;
  8 +import java.util.ArrayList;
  9 +import java.util.Date;
  10 +import java.util.HashMap;
  11 +import java.util.Iterator;
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
  15 +import javax.transaction.Transactional;
  16 +
  17 +import org.slf4j.Logger;
  18 +import org.slf4j.LoggerFactory;
  19 +import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.data.domain.Sort;
  21 +import org.springframework.data.domain.Sort.Direction;
  22 +import org.springframework.jdbc.core.JdbcTemplate;
5 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
6 24
  25 +import com.bsth.common.ResponseCode;
  26 +import com.bsth.entity.Cars;
  27 +import com.bsth.entity.oil.Cdl;
  28 +import com.bsth.entity.oil.Cyl;
7 import com.bsth.entity.oil.Dlb; 29 import com.bsth.entity.oil.Dlb;
  30 +import com.bsth.entity.oil.Jdl;
  31 +import com.bsth.entity.oil.Ylb;
  32 +import com.bsth.entity.oil.Ylxxb;
  33 +import com.bsth.entity.search.CustomerSpecs;
  34 +import com.bsth.repository.CarsRepository;
  35 +import com.bsth.repository.oil.CdlRepository;
  36 +import com.bsth.repository.oil.CylRepository;
  37 +import com.bsth.repository.oil.DlbRepository;
  38 +import com.bsth.repository.oil.JdlRepository;
  39 +import com.bsth.repository.oil.YlbRepository;
  40 +import com.bsth.repository.oil.YlxxbRepository;
8 import com.bsth.service.impl.BaseServiceImpl; 41 import com.bsth.service.impl.BaseServiceImpl;
9 import com.bsth.service.oil.DlbService; 42 import com.bsth.service.oil.DlbService;
  43 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
10 44
11 @Service 45 @Service
12 public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbService{ 46 public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbService{
  47 + @Autowired
  48 + DlbRepository repository;
  49 +
  50 + @Autowired
  51 + YlxxbRepository ylxxbRepository;
  52 +
  53 + @Autowired
  54 + CdlRepository cdlRepository;
  55 + @Autowired
  56 + JdlRepository jdlRepository;
  57 + @Autowired
  58 + CarsRepository carsRepository;
13 59
  60 + @Autowired
  61 + ScheduleRealInfoService scheduleRealInfoService;
  62 +
  63 + @Autowired
  64 + JdbcTemplate jdbcTemplate;
  65 +
  66 + Logger logger = LoggerFactory.getLogger(this.getClass());
  67 + /**
  68 + * 获取进存油信息
  69 + * @Transactional 回滚事物
  70 + */
  71 + @Transactional
  72 + @Override
  73 + public Map<String, Object> obtain(Map<String, Object> map2) {
  74 + List<Cars> carsList=carsRepository.findCars();
  75 + Map<String, Boolean> carsMap=new HashMap<String, Boolean>();
  76 + for (int i = 0; i < carsList.size(); i++) {
  77 + Cars c=carsList.get(i);
  78 + carsMap.put(c.getInsideCode(), c.getSfdc());
  79 + }
  80 + String gsbm="";
  81 + if(map2.get("ssgsdm_like")!=null){
  82 + gsbm=map2.get("ssgsdm_like").toString();
  83 + }
  84 + String rq=map2.get("rq").toString();
  85 + String line="";
  86 + if(map2.get("xlbm_eq")!=null){
  87 + line=map2.get("xlbm_eq").toString();
  88 + }
  89 +
  90 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  91 + //保留两位小数
  92 + DecimalFormat df = new DecimalFormat("#.00");
  93 + // TODO Auto-generated method stub
  94 + Map<String, Object> newMap=new HashMap<String,Object>();
  95 + //当天DLB信息
  96 + List<Dlb> dlList=repository.obtainDl(rq);
  97 + //当天YLXXB信息
  98 + List<Ylxxb> ylxxList=ylxxbRepository.obtainYlxx(rq,1,gsbm);
  99 + //当天加电信息表
  100 + List<Jdl> jdlList=jdlRepository.JdlList(rq);
  101 + //前一天所有车辆最后进场班次信息
  102 + List<Dlb> dlListBe=repository.obtainYlbefore(rq);
  103 + List<Cdl> cdyList=cdlRepository.obtainCdl();
  104 + //从排班表中计算出行驶的总里程
  105 + List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq,"","","","");
  106 + List<Ylb> addList=new ArrayList<Ylb>();
  107 + List<Ylb> updateList=new ArrayList<Ylb>();
  108 + for(int x=0;x<listpb.size();x++){
  109 + String type="add";
  110 + boolean sfdc=false;
  111 + Map<String, Object> map=listpb.get(x);
  112 + if (carsMap.get(map.get("clZbh").toString())!=null) {
  113 + sfdc= carsMap.get(map.get("clZbh").toString());
  114 + }else{
  115 + sfdc=false;
  116 + }
  117 + if(sfdc){
  118 + //判断驾驶员驾驶的该车辆是否已经存入了(查出的结果集中日期是相同的,根据驾驶员、内部编号、线路编码判断)
  119 + Dlb t=new Dlb();
  120 + for(int k=0;k<dlList.size();k++){
  121 + Dlb t1=dlList.get(k);
  122 + if(t1.getNbbm().equals(map.get("clZbh").toString())
  123 + &&t1.getJsy().equals(map.get("jGh").toString())
  124 + &&t1.getXlbm().equals(map.get("xlBm").toString()))
  125 + {
  126 + t=t1;
  127 + type="update";
  128 + }
  129 + }
  130 + try {
  131 + //当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量
  132 + if(map.get("seqNumber").toString().equals("1")){
  133 + boolean fage=true;
  134 + for (int i = 0; i < dlListBe.size(); i++) {
  135 + Dlb dlb=dlListBe.get(i);
  136 + if(map.get("clZbh").toString().equals(dlb.getNbbm())){
  137 + t.setCzcd(dlb.getJzcd());
  138 + fage=false;
  139 + break;
  140 + }
  141 + }
  142 + if(fage){
  143 + for (int y = 0; y < cdyList.size(); y++) {
  144 + Cdl cdl=cdyList.get(y);
  145 + if(map.get("clZbh").toString().equals(cdl.getNbbm())){
  146 + t.setCzcd(cdl.getClcd());
  147 + fage=false;
  148 + break;
  149 + }
  150 + }
  151 + }
  152 + if(fage){
  153 + t.setCzcd(0.0);
  154 + }
  155 + }
  156 +
  157 + Double jzl=0.0;
  158 + //把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
  159 + for(int j=0;j<ylxxList.size();j++){
  160 + Ylxxb ylxxb= ylxxList.get(j);
  161 + if(map.get("clZbh").toString().equals(ylxxb.getNbbm()) &&map.get("jGh").toString().equals(ylxxb.getJsy())){
  162 + jzl+=ylxxb.getJzl();
  163 + }
  164 + }
  165 +
  166 + //手动导入没有驾驶员工号
  167 + for (int i = 0; i < jdlList.size(); i++) {
  168 + Jdl jdl=jdlList.get(i);
  169 + if(map.get("clZbh").toString().equals(jdl.getNbbm()) ){
  170 + jzl+=jdl.getJdl();
  171 + }
  172 + }
  173 + t.setCdl(jzl);
  174 + t.setJzcd(t.getCzcd());
  175 + t.setNbbm(map.get("clZbh").toString());
  176 + t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());
  177 + t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));
  178 + t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());
  179 + t.setHd(jzl);
  180 + t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
  181 + t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());
  182 + t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
  183 + t.setRq(sdf.parse(rq));
  184 + /*if(type.equals("add")){
  185 + addList.add(t);
  186 + }else{
  187 + updateList.add(t);
  188 + }*/
  189 + repository.save(t);
  190 + newMap.put("status", ResponseCode.SUCCESS);
  191 + } catch (ParseException e) {
  192 + // TODO Auto-generated catch block
  193 + newMap.put("status", ResponseCode.ERROR);
  194 + e.printStackTrace();
  195 + }
  196 + }
  197 + }
  198 + /* try {
  199 + if(addList.size()>0){
  200 + new BatchSaveUtils<Ylb>().saveList(addList, Ylb.class);
  201 + }
  202 +
  203 + if(updateList.size()>0){
  204 +
  205 + }
  206 + newMap.put("status", ResponseCode.SUCCESS);
  207 + }
  208 + catch (Exception e) {
  209 + // TODO: handle exception
  210 + newMap.put("status", ResponseCode.ERROR);
  211 + }*/
  212 + return newMap;
  213 + }
  214 +
  215 + /**
  216 + * 拆分
  217 + */
  218 + @Transactional
  219 + @Override
  220 + public Map<String, Object> sort(Map<String, Object> map) {
  221 + // TODO Auto-generated method stub
  222 + Map<String, Object> newMap = new HashMap<String, Object>();
  223 + try{
  224 + int id=Integer.parseInt(map.get("id").toString());
  225 + //最后存油量
  226 + Double jzdl=Double.parseDouble(map.get("jzdl").toString());
  227 + Double hdl=Double.parseDouble(map.get("hdl").toString());
  228 + Dlb dlb=repository.findOne(id);
  229 + dlb.setJzcd(jzdl);
  230 + dlb.setHd(hdl);
  231 + repository.save(dlb);
  232 + newMap.put("status", ResponseCode.SUCCESS);
  233 + }catch(Exception e){
  234 + newMap.put("status", ResponseCode.ERROR);
  235 + logger.error("save erro.", e);
  236 + }
  237 + return newMap;
  238 + }
14 239
  240 +
  241 + /**
  242 + * 核对,有加注没里程
  243 + * @param map
  244 + * @return
  245 + */
  246 + @Transactional
  247 + @Override
  248 + public Map<String, Object> checkDl(Map<String, Object> map) {
  249 + Map<String, Object> newMap=new HashMap<String,Object>();
  250 + String xlbm=map.get("xlbm_eq").toString();
  251 + String gsbm="";
  252 + if(map.get("ssgsdm_like")!=null){
  253 + gsbm=map.get("ssgsdm_like").toString();
  254 + }
  255 + // TODO Auto-generated method stub
  256 + try{
  257 + //获取车辆存油信息
  258 +// List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
  259 + String rq=map.get("rq").toString();
  260 + List<Dlb> dlbList=repository.obtainDl(rq);
  261 + List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,1,gsbm);
  262 + //当天加电信息表
  263 + List<Jdl> jdlList=jdlRepository.JdlList(rq);
  264 + for (int i = 0; i < ylxxbList.size(); i++) {
  265 + Boolean fage=true;
  266 + Ylxxb y1=ylxxbList.get(i);
  267 + for(int y=0;y<dlbList.size();y++){
  268 + Dlb y2=dlbList.get(y);
  269 + if(y1.getNbbm().equals(y2.getNbbm())){
  270 + fage=false;
  271 + break;
  272 + }
  273 + }
  274 +
  275 + if(fage){
  276 + Dlb t=new Dlb();
  277 + t.setNbbm(y1.getNbbm());
  278 + t.setRq(y1.getYyrq());
  279 + t.setJsy(y1.getJsy());
  280 + t.setCdl(y1.getJzl());
  281 + t.setSsgsdm(y1.getGsdm());
  282 + t.setXlbm(xlbm);
  283 + repository.save(t);
  284 + }
  285 + }
  286 +
  287 + for (int i = 0; i < jdlList.size(); i++) {
  288 + Boolean fage=true;
  289 + Jdl y1=jdlList.get(i);
  290 + for(int y=0;y<dlbList.size();y++){
  291 + Dlb y2=dlbList.get(y);
  292 + if(y1.getNbbm().equals(y2.getNbbm())){
  293 + fage=false;
  294 + break;
  295 + }
  296 + }
  297 +
  298 + if(fage){
  299 + Dlb t=new Dlb();
  300 + t.setNbbm(y1.getNbbm());
  301 + t.setRq(y1.getRq());
  302 +// t.setJsy(y1.getJsy());
  303 + t.setCdl(y1.getJdl());
  304 + t.setSsgsdm(y1.getGsBm());
  305 + t.setXlbm(xlbm);
  306 + repository.save(t);
  307 + }
  308 + }
  309 + newMap.put("status", ResponseCode.SUCCESS);
  310 + }catch(Exception e){
  311 + newMap.put("status", ResponseCode.ERROR);
  312 + logger.error("save erro.", e);
  313 + }
  314 +
  315 + return newMap;
  316 + }
15 } 317 }
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
1 package com.bsth.service.oil.impl; 1 package com.bsth.service.oil.impl;
2 2
  3 +import java.sql.ResultSet;
  4 +import java.sql.SQLException;
  5 +import java.text.DecimalFormat;
  6 +import java.text.ParseException;
  7 +import java.text.SimpleDateFormat;
  8 +import java.util.ArrayList;
  9 +import java.util.Calendar;
  10 +import java.util.Date;
  11 +import java.util.HashMap;
  12 +import java.util.Iterator;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +import javax.transaction.Transactional;
  17 +
  18 +import org.slf4j.Logger;
  19 +import org.slf4j.LoggerFactory;
  20 +import org.springframework.beans.factory.annotation.Autowired;
  21 +import org.springframework.data.domain.Sort;
  22 +import org.springframework.data.domain.Sort.Direction;
  23 +import org.springframework.jdbc.core.JdbcTemplate;
  24 +import org.springframework.jdbc.core.RowMapper;
  25 +import org.springframework.stereotype.Service;
  26 +
3 import com.bsth.common.ResponseCode; 27 import com.bsth.common.ResponseCode;
  28 +import com.bsth.data.BasicData;
  29 +import com.bsth.entity.Cars;
4 import com.bsth.entity.oil.Cyl; 30 import com.bsth.entity.oil.Cyl;
5 import com.bsth.entity.oil.Ylb; 31 import com.bsth.entity.oil.Ylb;
6 import com.bsth.entity.oil.Ylxxb; 32 import com.bsth.entity.oil.Ylxxb;
7 import com.bsth.entity.search.CustomerSpecs; 33 import com.bsth.entity.search.CustomerSpecs;
  34 +import com.bsth.repository.CarsRepository;
8 import com.bsth.repository.oil.CylRepository; 35 import com.bsth.repository.oil.CylRepository;
9 import com.bsth.repository.oil.YlbRepository; 36 import com.bsth.repository.oil.YlbRepository;
10 import com.bsth.repository.oil.YlxxbRepository; 37 import com.bsth.repository.oil.YlxxbRepository;
11 import com.bsth.service.impl.BaseServiceImpl; 38 import com.bsth.service.impl.BaseServiceImpl;
12 import com.bsth.service.oil.YlbService; 39 import com.bsth.service.oil.YlbService;
13 import com.bsth.service.realcontrol.ScheduleRealInfoService; 40 import com.bsth.service.realcontrol.ScheduleRealInfoService;
14 -import org.slf4j.Logger;  
15 -import org.slf4j.LoggerFactory;  
16 -import org.springframework.beans.factory.annotation.Autowired;  
17 -import org.springframework.data.domain.Sort;  
18 -import org.springframework.data.domain.Sort.Direction;  
19 -import org.springframework.jdbc.core.JdbcTemplate;  
20 -import org.springframework.jdbc.core.RowMapper;  
21 -import org.springframework.stereotype.Service;  
22 -  
23 -import javax.transaction.Transactional;  
24 -import java.sql.ResultSet;  
25 -import java.sql.SQLException;  
26 -import java.text.DecimalFormat;  
27 -import java.text.ParseException;  
28 -import java.text.SimpleDateFormat;  
29 -import java.util.*; 41 +import com.bsth.util.Arith;
  42 +import com.bsth.util.BatchSaveUtils;
  43 +import com.github.abel533.echarts.code.Y;
30 44
31 @Service 45 @Service
32 public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbService{ 46 public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbService{
33 @Autowired 47 @Autowired
34 YlbRepository repository; 48 YlbRepository repository;
35 - 49 +
36 @Autowired 50 @Autowired
37 YlxxbRepository ylxxbRepository; 51 YlxxbRepository ylxxbRepository;
38 - 52 +
39 @Autowired 53 @Autowired
40 CylRepository cylRepository; 54 CylRepository cylRepository;
41 - 55 +
  56 + @Autowired
  57 + CarsRepository carsRepository;
  58 +
42 @Autowired 59 @Autowired
43 ScheduleRealInfoService scheduleRealInfoService; 60 ScheduleRealInfoService scheduleRealInfoService;
44 - 61 +
45 @Autowired 62 @Autowired
46 JdbcTemplate jdbcTemplate; 63 JdbcTemplate jdbcTemplate;
47 - 64 +
48 Logger logger = LoggerFactory.getLogger(this.getClass()); 65 Logger logger = LoggerFactory.getLogger(this.getClass());
49 -  
50 -  
51 - 66 +
  67 +
  68 +
52 /** 69 /**
53 * 获取进存油信息 70 * 获取进存油信息
54 * @Transactional 回滚事物 71 * @Transactional 回滚事物
55 */ 72 */
56 - @Transactional 73 + @Transactional
57 @Override 74 @Override
58 - public String obtainDsq() { 75 + public String obtainDsq() throws Exception{
59 String result = "failure"; 76 String result = "failure";
60 - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
61 - Date dNow = new Date(); //当前时间  
62 - Date dBefore = new Date();  
63 - Calendar calendar = Calendar.getInstance(); //得到日历  
64 - calendar.setTime(dNow);//把当前时间赋给日历  
65 - calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天  
66 - dBefore = calendar.getTime(); //得到前一天的时间  
67 - String rq=sdf.format(dBefore);  
68 - //保留两位小数  
69 - DecimalFormat df = new DecimalFormat("#.00");  
70 - // TODO Auto-generated method stub  
71 - Map<String, Object> newMap=new HashMap<String,Object>();  
72 - //当天YLB信息  
73 - List<Ylb> ylList=repository.obtainYl(rq);  
74 - //当天YLXXB信息  
75 -// List<Ylxxb> ylxxList=ylxxbRepository.obtainYlxx(rq);  
76 - //前一天所有车辆最后进场班次信息  
77 - List<Ylb> ylListBe=repository.obtainYlbefore(rq);  
78 - List<Cyl> clyList=cylRepository.obtainCyl();  
79 - //从排班表中计算出行驶的总里程  
80 - List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList("",rq);  
81 -  
82 - for(int x=0;x<listpb.size();x++){  
83 -  
84 - Map<String, Object> map=listpb.get(x);  
85 -  
86 - //判断驾驶员驾驶的该车辆是否已经存入了(查出的结果集中日期是相同的,根据驾驶员、内部编号、线路编码判断)  
87 - Ylb t=new Ylb();  
88 - for(int k=0;k<ylList.size();k++){  
89 - Ylb t1=ylList.get(k);  
90 - if(t1.getNbbm().equals(map.get("clZbh").toString())  
91 - &&t1.getJsy().equals(map.get("jGh").toString())  
92 - &&t1.getXlbm().equals(map.get("xlBm").toString()))  
93 - {  
94 - t=t1;  
95 - } 77 + try {
  78 + List<Cars> carsList=carsRepository.findCars();
  79 + Map<String, Boolean> carsMap=new HashMap<String, Boolean>();
  80 + for (int i = 0; i < carsList.size(); i++) {
  81 + Cars c=carsList.get(i);
  82 + carsMap.put(c.getInsideCode(), c.getSfdc());
96 } 83 }
97 - try {  
98 - //当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量  
99 - if(map.get("seqNumber").toString().equals("1")){  
100 - for (int y = 0; y < clyList.size(); y++) {  
101 - Cyl cyl=clyList.get(y);  
102 - if(map.get("clZbh").toString().equals(cyl.getNbbm())){  
103 - t.setCzyl(cyl.getCyl());  
104 - break;  
105 - }else{  
106 - for (int i = 0; i < ylListBe.size(); i++) {  
107 - Ylb ylb=ylListBe.get(i);  
108 - if(map.get("clZbh").toString().equals(ylb.getNbbm())){  
109 - t.setCzyl(ylb.getJzyl());  
110 - break;  
111 - }else{  
112 - t.setCzyl(0.0); 84 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  85 + Date dNow = new Date(); //当前时间
  86 + Date dBefore = new Date();
  87 + Calendar calendar = Calendar.getInstance(); //得到日历
  88 + calendar.setTime(dNow);//把当前时间赋给日历
  89 + calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
  90 + dBefore = calendar.getTime(); //得到前一天的时间
  91 + String rq=sdf.format(dBefore);
  92 + //保留两位小数
  93 + DecimalFormat df = new DecimalFormat("#.00");
  94 + // TODO Auto-generated method stub
  95 + Map<String, Object> newMap=new HashMap<String,Object>();
  96 + //当天YLB信息
  97 + List<Ylb> ylList=repository.obtainYl(rq,"","","","","nbbm");
  98 + //当天YLXXB信息
  99 + // List<Ylxxb> ylxxList=ylxxbRepository.obtainYlxx(rq);
  100 + //前一天所有车辆最后进场班次信息
  101 + List<Ylb> ylListBe=repository.obtainYlbefore(rq,"","","","");
  102 + List<Cyl> clyList=cylRepository.obtainCyl("","");
  103 + //从排班表中计算出行驶的总里程
  104 + List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList("", rq, "", "", "", "");
  105 +
  106 + for(int x=0;x<listpb.size();x++){
  107 + boolean sfdc=true;
  108 + Map<String, Object> map=listpb.get(x);
  109 + if (carsMap.get(map.get("clZbh").toString())!=null) {
  110 + sfdc= carsMap.get(map.get("clZbh").toString());
  111 + }else{
  112 + sfdc=true;
  113 + }
  114 + if(!sfdc){
  115 + //判断驾驶员驾驶的该车辆是否已经存入了(查出的结果集中日期是相同的,根据驾驶员、内部编号、线路编码判断)
  116 + Ylb t=new Ylb();
  117 + for(int k=0;k<ylList.size();k++){
  118 + Ylb t1=ylList.get(k);
  119 + if(t1.getNbbm().equals(map.get("clZbh").toString())
  120 + &&t1.getJsy().equals(map.get("jGh").toString())
  121 + &&t1.getXlbm().equals(map.get("xlBm").toString()))
  122 + {
  123 + t=t1;
  124 + }
  125 + }
  126 +
  127 + //当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量
  128 + if(map.get("seqNumber").toString().equals("1")){
  129 + boolean fage=true;
  130 + for (int i = 0; i < ylListBe.size(); i++) {
  131 + Ylb ylb=ylListBe.get(i);
  132 + if(map.get("clZbh").toString().equals(ylb.getNbbm())){
  133 + if(ylb.getJzyl()!=null){
  134 + if(ylb.getJzyl()>0){
  135 + t.setCzyl(ylb.getJzyl());
  136 + fage=false;
  137 + break;
  138 + }
113 } 139 }
  140 +
114 } 141 }
115 } 142 }
  143 + if(fage){
  144 + for (int y = 0; y < clyList.size(); y++) {
  145 + Cyl cyl=clyList.get(y);
  146 + if(map.get("clZbh").toString().equals(cyl.getNbbm())){
  147 + if(cyl.getCyl()!=null){
  148 + t.setCzyl(cyl.getCyl());
  149 + fage=false;
  150 + break;
  151 + }
  152 + }
  153 + }
  154 + }
  155 + if(fage){
  156 + t.setCzyl(0.0);
  157 + }
116 } 158 }
  159 +
  160 + /*Double jzl=0.0;
  161 + //把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
  162 + for(int j=0;j<ylxxList.size();j++){
  163 + Ylxxb ylxxb= ylxxList.get(j);
  164 + if(map.get("clZbh").toString().equals(ylxxb.getNbbm()) &&map.get("jGh").toString().equals(ylxxb.getJsy())){
  165 + jzl+=ylxxb.getJzl();
  166 + }
  167 + }
  168 + t.setJzl(jzl);*/
  169 + t.setNbbm(map.get("clZbh").toString());
  170 + t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());
  171 + t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));
  172 + t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());
  173 + t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
  174 + t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());
  175 + t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
  176 + t.setRq(sdf.parse(rq));
  177 + repository.save(t);
  178 +
117 } 179 }
118 -  
119 - /*Double jzl=0.0;  
120 - //把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)  
121 - for(int j=0;j<ylxxList.size();j++){  
122 - Ylxxb ylxxb= ylxxList.get(j);  
123 - if(map.get("clZbh").toString().equals(ylxxb.getNbbm()) &&map.get("jGh").toString().equals(ylxxb.getJsy())){  
124 - jzl+=ylxxb.getJzl();  
125 - }  
126 - }  
127 - t.setJzl(jzl);*/  
128 - t.setNbbm(map.get("clZbh").toString());  
129 - t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());  
130 - t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));  
131 - t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());  
132 - t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));  
133 - t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());  
134 - t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());  
135 - t.setRq(sdf.parse(rq));  
136 - repository.save(t);  
137 result = "success"; 180 result = "success";
138 - } catch (Exception e) {  
139 - // TODO Auto-generated catch block  
140 - e.printStackTrace();  
141 - }finally{  
142 - logger.info("setDDRB:"+result);  
143 } 181 }
  182 + }catch (Exception e) {
  183 + // TODO Auto-generated catch block
  184 + throw e;
  185 + }finally{
  186 + logger.info("setDDRB:"+result);
144 } 187 }
145 - 188 +
146 return result; 189 return result;
147 } 190 }
148 - 191 +
149 /** 192 /**
150 * 获取进存油信息 193 * 获取进存油信息
151 * @Transactional 回滚事物 194 * @Transactional 回滚事物
152 */ 195 */
153 - @Transactional 196 + @Transactional
154 @Override 197 @Override
155 - public Map<String, Object> obtain(Map<String, Object> map2) {  
156 - String rq=map2.get("rq").toString();  
157 - String line="";  
158 - if(map2.get("xlbm_eq")!=null){  
159 - line=map2.get("xlbm_eq").toString();  
160 - }  
161 -  
162 - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
163 - //保留两位小数  
164 - DecimalFormat df = new DecimalFormat("#.00");  
165 - // TODO Auto-generated method stub  
166 - Map<String, Object> newMap=new HashMap<String,Object>();  
167 - //当天YLB信息  
168 - List<Ylb> ylList=repository.obtainYl(rq);  
169 - //当天YLXXB信息  
170 - List<Ylxxb> ylxxList=ylxxbRepository.obtainYlxx(rq);  
171 - //前一天所有车辆最后进场班次信息  
172 - List<Ylb> ylListBe=repository.obtainYlbefore(rq);  
173 - List<Cyl> clyList=cylRepository.obtainCyl();  
174 - //从排班表中计算出行驶的总里程  
175 - List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq);  
176 - List<Ylb> addList=new ArrayList<Ylb>();  
177 - List<Ylb> updateList=new ArrayList<Ylb>();  
178 - for(int x=0;x<listpb.size();x++){  
179 - String type="add";  
180 - Map<String, Object> map=listpb.get(x);  
181 -  
182 - //判断驾驶员驾驶的该车辆是否已经存入了(查出的结果集中日期是相同的,根据驾驶员、内部编号、线路编码判断)  
183 - Ylb t=new Ylb();  
184 - for(int k=0;k<ylList.size();k++){  
185 - Ylb t1=ylList.get(k);  
186 - if(t1.getNbbm().equals(map.get("clZbh").toString())  
187 - &&t1.getJsy().equals(map.get("jGh").toString())  
188 - &&t1.getXlbm().equals(map.get("xlBm").toString()))  
189 - {  
190 - t=t1;  
191 - type="update";  
192 - } 198 + public Map<String, Object> obtain(Map<String, Object> map2) throws Exception{
  199 + Map<String, Object> newMap = new HashMap<String, Object>();
  200 + try {
  201 + List<Cars> carsList = carsRepository.findCars();
  202 + Map<String, Boolean> carsMap = new HashMap<String, Boolean>();
  203 + for (int i = 0; i < carsList.size(); i++) {
  204 + Cars c = carsList.get(i);
  205 + carsMap.put(c.getInsideCode(), c.getSfdc());
193 } 206 }
194 - try {  
195 - //当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量  
196 - if(map.get("seqNumber").toString().equals("1")){  
197 - for (int y = 0; y < clyList.size(); y++) {  
198 - Cyl cyl=clyList.get(y);  
199 - if(map.get("clZbh").toString().equals(cyl.getNbbm())){  
200 - t.setCzyl(cyl.getCyl());  
201 - break;  
202 - }else{  
203 - for (int i = 0; i < ylListBe.size(); i++) {  
204 - Ylb ylb=ylListBe.get(i);  
205 - if(map.get("clZbh").toString().equals(ylb.getNbbm())){ 207 + String rq = map2.get("rq").toString();
  208 + String line = "";
  209 + if (map2.get("xlbm_like") != null) {
  210 + line = map2.get("xlbm_like").toString().trim();
  211 + }
  212 + String gsbm="";
  213 + if(map2.get("ssgsdm_like")!=null){
  214 + gsbm=map2.get("ssgsdm_like").toString();
  215 + }
  216 + String fgsbm="";
  217 + if(map2.get("fgsdm_like")!=null){
  218 + fgsbm=map2.get("fgsdm_like").toString();
  219 + }
  220 + String nbbm="";
  221 + if(map2.get("nbbm_eq")!=null){
  222 + nbbm=map2.get("nbbm_eq").toString();
  223 + }
  224 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  225 + // 保留两位小数
  226 + DecimalFormat df = new DecimalFormat("#.00");
  227 + // TODO Auto-generated method stub
  228 + // 当天YLB信息
  229 + List<Ylb> ylList = repository.obtainYl(rq,gsbm,fgsbm,line,nbbm,"nbbm");
  230 + // 当天YLXXB信息
  231 + List<Ylxxb> ylxxList = ylxxbRepository.obtainYlxx(rq, 0,gsbm);
  232 + // 前一天所有车辆最后进场班次信息
  233 + List<Ylb> ylListBe = repository.obtainYlbefore(rq, gsbm, fgsbm, line, nbbm);
  234 + List<Cyl> clyList = cylRepository.obtainCyl(nbbm,gsbm);
  235 + // 从排班表中计算出行驶的总里程
  236 + List<Map<String, Object>> listpb = scheduleRealInfoService.yesterdayDataList(line, rq, gsbm, fgsbm, "", nbbm);
  237 + List<Ylb> addList = new ArrayList<Ylb>();
  238 + List<Ylb> updateList = new ArrayList<Ylb>();
  239 + String ins="";
  240 + for (int x = 0; x < listpb.size(); x++) {
  241 + String type = "add";
  242 + boolean sfdc = true;
  243 + Map<String, Object> map = listpb.get(x);
  244 + if (carsMap.get(map.get("clZbh").toString()) != null) {
  245 + sfdc = carsMap.get(map.get("clZbh").toString());
  246 + } else {
  247 + sfdc = true;
  248 + }
  249 + if (!sfdc) {
  250 + // 判断驾驶员驾驶的该车辆是否已经存入了(查出的结果集中日期是相同的,根据驾驶员、内部编号、线路编码判断)
  251 + Ylb t = new Ylb();
  252 + for (int k = 0; k < ylList.size(); k++) {
  253 + Ylb t1 = ylList.get(k);
  254 + if (t1.getNbbm().equals(map.get("clZbh").toString())
  255 + && t1.getJsy().equals(map.get("jGh").toString())
  256 + && t1.getXlbm().equals(map.get("xlBm").toString())) {
  257 + t = t1;
  258 + type = "update";
  259 + }
  260 + }
  261 +
  262 + // 当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量
  263 + if (map.get("seqNumber").toString().equals("1")) {
  264 + boolean fage = true;
  265 + for (int i = 0; i < ylListBe.size(); i++) {
  266 + Ylb ylb = ylListBe.get(i);
  267 + if (map.get("clZbh").toString().equals(ylb.getNbbm())) {
  268 + if(ylb.getJzyl()>0){
206 t.setCzyl(ylb.getJzyl()); 269 t.setCzyl(ylb.getJzyl());
  270 + fage = false;
207 break; 271 break;
208 - }else{  
209 - t.setCzyl(0.0); 272 + }
  273 +
  274 + }
  275 + }
  276 + if (fage) {
  277 + for (int y = 0; y < clyList.size(); y++) {
  278 + Cyl cyl = clyList.get(y);
  279 + if (map.get("clZbh").toString().equals(cyl.getNbbm())) {
  280 + if(cyl.getCyl()>0){
  281 + t.setCzyl(cyl.getCyl());
  282 + fage = false;
  283 + break;
  284 + }else {
  285 + if(cyl.getCxrl()!=null){
  286 + if(cyl.getCxrl()>0){
  287 + t.setCzyl(cyl.getCxrl());
  288 + fage = false;
  289 + break;
  290 + }
  291 + }
  292 + }
210 } 293 }
211 } 294 }
212 } 295 }
  296 + if (fage) {
  297 + t.setCzyl(0.0);
  298 + }
213 } 299 }
214 - }  
215 -  
216 - Double jzl=0.0;  
217 - //把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)  
218 - for(int j=0;j<ylxxList.size();j++){  
219 - Ylxxb ylxxb= ylxxList.get(j);  
220 - if(map.get("clZbh").toString().equals(ylxxb.getNbbm()) &&map.get("jGh").toString().equals(ylxxb.getJsy())){  
221 - jzl+=ylxxb.getJzl(); 300 +
  301 + Double jzl = 0.0;
  302 + // 把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
  303 + for (int j = 0; j < ylxxList.size(); j++) {
  304 + Ylxxb ylxxb = ylxxList.get(j);
  305 + if (map.get("clZbh").toString().equals(ylxxb.getNbbm())
  306 + && map.get("jGh").toString().equals(ylxxb.getJsy())) {
  307 +// jzl += ylxxb.getJzl();
  308 + jzl =Arith.add(jzl, ylxxb.getJzl());
  309 + }
  310 + }
  311 + if(map.get("clZbh").toString().equals("W0A-212")){
  312 + System.out.println();
  313 + }
  314 + if(map.get("clZbh").toString().equals("W0A-211")){
  315 + System.out.println();
222 } 316 }
  317 + t.setJzl(jzl);
  318 + t.setNbbm(map.get("clZbh").toString());
  319 + t.setJsy(map.get("jGh") == null ? "" : map.get("jGh").toString());
  320 + t.setZlc(map.get("totalKilometers") == null ? 0.0
  321 + : Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));
  322 + t.setXlbm(map.get("xlBm") == null ? "" : map.get("xlBm").toString());
  323 + t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
  324 + t.setSsgsdm(map.get("company") == null ? "" : map.get("company").toString());
  325 + t.setFgsdm(map.get("bCompany") == null ? "" : map.get("bCompany").toString());
  326 + t.setRq(sdf.parse(rq));
  327 +
  328 + if(type.equals("add")){
  329 + addList.add(t);
  330 + }else{
  331 + updateList.add(t);
  332 + ins += t.getId().toString()+",";
  333 + }
  334 +// repository.save(t);
  335 + newMap.put("status", ResponseCode.SUCCESS);
  336 +
223 } 337 }
224 - t.setJzl(jzl);  
225 - t.setNbbm(map.get("clZbh").toString());  
226 - t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());  
227 - t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));  
228 - t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());  
229 - t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));  
230 - t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());  
231 - t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());  
232 - t.setRq(sdf.parse(rq));  
233 - /*if(type.equals("add")){  
234 - addList.add(t);  
235 - }else{  
236 - updateList.add(t);  
237 - }*/  
238 - repository.save(t);  
239 - newMap.put("status", ResponseCode.SUCCESS);  
240 - } catch (ParseException e) {  
241 - // TODO Auto-generated catch block  
242 - newMap.put("status", ResponseCode.ERROR);  
243 - e.printStackTrace();  
244 } 338 }
245 - }  
246 - /* try {  
247 if(addList.size()>0){ 339 if(addList.size()>0){
248 new BatchSaveUtils<Ylb>().saveList(addList, Ylb.class); 340 new BatchSaveUtils<Ylb>().saveList(addList, Ylb.class);
249 } 341 }
250 - 342 +
251 if(updateList.size()>0){ 343 if(updateList.size()>0){
252 - 344 + for (int i = 0; i < updateList.size(); i++) {
  345 + repository.save(updateList.get(i));
  346 + }
253 } 347 }
254 newMap.put("status", ResponseCode.SUCCESS); 348 newMap.put("status", ResponseCode.SUCCESS);
255 - }  
256 - catch (Exception e) {  
257 - // TODO: handle exception 349 + } catch (ParseException e) {
  350 + // TODO Auto-generated catch block
258 newMap.put("status", ResponseCode.ERROR); 351 newMap.put("status", ResponseCode.ERROR);
259 - }*/ 352 + throw e;
  353 + }
  354 +
260 return newMap; 355 return newMap;
261 } 356 }
262 -  
263 - 357 +
  358 +
264 /** 359 /**
265 * 进场等于出场 360 * 进场等于出场
266 */ 361 */
267 - @Transactional 362 + @Transactional
268 @Override 363 @Override
269 - public Map<String, Object> outAndIn(Map<String, Object> map){ 364 + public Map<String, Object> outAndIn(Map<String, Object> map) throws Exception{
270 // TODO Auto-generated method stub 365 // TODO Auto-generated method stub
  366 + String xlbm="";
  367 + if(map.get("xlbm_like")!=null){
  368 + xlbm= map.get("xlbm_like").toString().trim();
  369 + }
  370 + String gsbm="";
  371 + if(map.get("ssgsdm_like")!=null){
  372 + gsbm=map.get("ssgsdm_like").toString();
  373 + }
  374 + String fgsbm="";
  375 + if(map.get("fgsdm_like")!=null){
  376 + fgsbm=map.get("fgsdm_like").toString();
  377 + }
  378 + String rq = map.get("rq").toString();
  379 + String nbbm="";
  380 + if(map.get("nbbm_eq")!=null){
  381 + nbbm=map.get("nbbm_eq").toString();
  382 + }
  383 +
271 Map<String, Object> newMap=new HashMap<String,Object>(); 384 Map<String, Object> newMap=new HashMap<String,Object>();
272 Map<String, Object> map2=new HashMap<String,Object>(); 385 Map<String, Object> map2=new HashMap<String,Object>();
273 - String rq=map.get("rq").toString();  
274 - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
275 -  
276 try { 386 try {
  387 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  388 +
277 map.put("rq_eq", sdf.parse(rq)); 389 map.put("rq_eq", sdf.parse(rq));
278 - } catch (ParseException e1) {  
279 - // TODO Auto-generated catch block  
280 - e1.printStackTrace();  
281 - }  
282 - //获取车辆存油信息  
283 - List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));  
284 - //指定日期YLB信息  
285 - Iterator<Ylb> iterator= repository.findAll(new CustomerSpecs<Ylb>(map)).iterator();  
286 - while(iterator.hasNext()){  
287 - Ylb ylb=iterator.next();  
288 - //判断是否已经计算过  
289 - if(newMap.get("nbbm"+ylb.getNbbm())==null){  
290 - String nbbm_eq=ylb.getNbbm();  
291 - Date rq_eq=ylb.getRq();  
292 - //得到一天总的加油和里程(根据车,时间)  
293 - List<Object[]> sumList=repository.sumLcYl(nbbm_eq, rq_eq);  
294 - //保存总的加油量  
295 - Double jzl=Double.valueOf(sumList.get(0)[0].toString());  
296 - //保存总的里程  
297 - Double zlc=Double.valueOf(sumList.get(0)[1].toString());  
298 - //保留两位小数 390 +// List<Cyl> clyList = cylRepository.obtainCyl();
  391 + // 获取车辆存油信息
  392 + List<Cyl> cylList = cylRepository.obtainCyl(nbbm,gsbm);
  393 + // 指定日期YLB信息
  394 + List<Ylb> ylbList =repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
  395 + List<Ylb> iterator2=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
  396 + for (int i=0;i<ylbList.size();i++) {
  397 + Ylb ylb = ylbList.get(i);
  398 + // 判断是否已经计算过
  399 + if (newMap.get("nbbm" + ylb.getNbbm()) == null) {
  400 + String nbbm_eq = ylb.getNbbm();
  401 + Date rq_eq = ylb.getRq();
  402 + // 得到一天总的加油和里程(根据车,时间)
  403 + List<Object[]> sumList = repository.sumLcYl(nbbm_eq, rq_eq,ylb.getXlbm());
  404 + // 保存总的加油量
  405 + Double jzl = 0.0;
  406 + // 保存总的里程
  407 + Double zlc = 0.0;
  408 + //保存总的损耗
  409 + Double zsh = 0.0;
  410 + for (int j = 0; j < sumList.size(); j++) {
  411 + jzl = Arith.add(jzl, Double.valueOf(sumList.get(j)[0].toString()));
  412 + zlc = Arith.add(zlc, Double.valueOf(sumList.get(j)[1].toString()));
  413 + zsh = Arith.add(zsh, Double.valueOf(sumList.get(j)[2].toString()));
  414 + }
  415 + jzl = Arith.sub(jzl, zsh);
  416 + // 保留两位小数
299 DecimalFormat df = new DecimalFormat("#.00"); 417 DecimalFormat df = new DecimalFormat("#.00");
300 - Double zyl=0.0;  
301 - Double nextJzyl=0.0;  
302 -  
303 - //保存已经计算过的车辆,相同车辆编号的车不在计算  
304 - newMap.put("nbbm"+ylb.getNbbm(), ylb.getNbbm());  
305 -  
306 - //查询指定车辆,设置进、存、耗油量 418 + Double zyl = 0.0;
  419 + Double nextJzyl = 0.0;
  420 + // 保存已经计算过的车辆,相同车辆编号的车不在计算
  421 + newMap.put("nbbm" + ylb.getNbbm(), ylb.getNbbm());
  422 +
  423 + // 查询指定车辆,设置进、存、耗油量
307 map.remove("nbbm_eq"); 424 map.remove("nbbm_eq");
308 map.put("nbbm_eq", ylb.getNbbm()); 425 map.put("nbbm_eq", ylb.getNbbm());
309 - Iterator<Ylb> iterator2= repository.findAll(new CustomerSpecs<Ylb>(map),new Sort(Direction.ASC, "jcsx")).iterator();  
310 - while(iterator2.hasNext()){  
311 - try{  
312 - Ylb t = iterator2.next();  
313 - if(t.getJcsx()==1){  
314 - //进场等于出场的操作 既 最后进场存油量等于第一次的出场存油量  
315 - Double yl=t.getCzyl();  
316 - Double jcyl=t.getCzyl();  
317 - zyl=jcyl+jzl-yl;  
318 - Double yh=Double.parseDouble(df.format(zyl*(t.getZlc()/zlc))); 426 + map.put("xlbm_like", ylb.getXlbm());
  427 +// Iterator<Ylb> iterator2 = repository
  428 +// .findAll(new CustomerSpecs<Ylb>(map), new Sort(Direction.ASC, "jcsx")).iterator();
  429 + for (int j = 0; j < iterator2.size(); j++) {
  430 +
  431 + Ylb t = iterator2.get(j);
  432 + if(t.getNbbm().equals(ylb.getNbbm())){
  433 + if (t.getJcsx() == 1) {
  434 + // 进场等于出场的操作 既 最后进场存油量等于第一次的出场存油量
  435 + Double yl = t.getCzyl();
  436 + Double jcyl = t.getCzyl();
  437 +// zyl = jcyl + jzl - yl;
  438 + zyl =Arith.sub( Arith.add(jcyl, jzl),yl);
  439 + Double yh = Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
319 t.setYh(yh); 440 t.setYh(yh);
320 - nextJzyl=t.getJzl()+t.getCzyl()-yh;  
321 - t.setJzyl(Double.parseDouble(df.format(nextJzyl)));  
322 - }else{  
323 - t.setCzyl(Double.parseDouble(df.format(nextJzyl)));  
324 - Double yh=Double.parseDouble(df.format(zyl*(t.getZlc()/zlc))); 441 +// nextJzyl = t.getJzl() + t.getCzyl() - yh;
  442 + nextJzyl =Arith.sub( Arith.add(t.getJzl(), t.getCzyl()),yh);
  443 +// t.setJzyl(Double.parseDouble(df.format(nextJzyl)));
  444 + t.setJzyl(nextJzyl);
  445 + } else {
  446 +// t.setCzyl(Double.parseDouble(df.format(nextJzyl)));
  447 + t.setCzyl(nextJzyl);
  448 + Double yh = Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
325 t.setYh(yh); 449 t.setYh(yh);
326 - nextJzyl=t.getJzl()+nextJzyl-yh;  
327 - t.setJzyl(Double.parseDouble(df.format(nextJzyl))); 450 +// nextJzyl = t.getJzl() + nextJzyl - yh;
  451 + nextJzyl =Arith.sub( Arith.add(t.getJzl(),nextJzyl),yh);
  452 +// t.setJzyl(Double.parseDouble(df.format(nextJzyl)));
  453 + t.setJzyl(nextJzyl);
328 } 454 }
329 -  
330 repository.save(t); 455 repository.save(t);
331 - //设置存油量  
332 - Cyl cyl=null;  
333 - boolean fage=false;  
334 - for(int z=0;z<cylList.size();z++){  
335 - cyl=cylList.get(z);  
336 - if(t.getNbbm().equals(cyl.getNbbm())){  
337 - cyl.setCyl(t.getJzyl());  
338 - cyl.setUpdatetime(t.getRq());  
339 - fage=true;  
340 - break;  
341 - }  
342 - }  
343 -  
344 - if(fage){  
345 - cylRepository.save(cyl);  
346 - }else{  
347 - cyl=new Cyl();  
348 - cyl.setNbbm(t.getNbbm()); 456 + }
  457 +
  458 + // 设置存油量
  459 + Cyl cyl = null;
  460 + boolean fage = false;
  461 + for (int z = 0; z < cylList.size(); z++) {
  462 + cyl = cylList.get(z);
  463 + if (t.getNbbm().equals(cyl.getNbbm())) {
349 cyl.setCyl(t.getJzyl()); 464 cyl.setCyl(t.getJzyl());
350 - cyl.setGsdm(t.getSsgsdm());  
351 cyl.setUpdatetime(t.getRq()); 465 cyl.setUpdatetime(t.getRq());
352 - cylRepository.save(cyl); 466 + fage = true;
  467 + break;
353 } 468 }
354 -  
355 -  
356 - map2.put("status", ResponseCode.SUCCESS);  
357 - }catch(Exception e){  
358 - map2.put("status", ResponseCode.ERROR);  
359 - logger.error("save erro.", e);  
360 } 469 }
  470 + if (fage) {
  471 + cylRepository.save(cyl);
  472 + } else {
  473 + cyl = new Cyl();
  474 + cyl.setNbbm(t.getNbbm());
  475 + cyl.setCyl(t.getJzyl());
  476 + cyl.setGsdm(t.getSsgsdm());
  477 + cyl.setUpdatetime(t.getRq());
  478 + cylRepository.save(cyl);
  479 + }
  480 + map2.put("status", ResponseCode.SUCCESS);
361 } 481 }
362 -  
363 -  
364 } 482 }
  483 + }
  484 + } catch (Exception e) {
  485 + map2.put("status", ResponseCode.ERROR);
  486 + logger.error("save erro.", e);
  487 + throw e;
365 } 488 }
366 -  
367 return map2; 489 return map2;
368 } 490 }
369 - 491 +
370 /** 492 /**
371 * 拆分 493 * 拆分
372 */ 494 */
373 - @Transactional 495 + @Transactional
374 @Override 496 @Override
375 public Map<String, Object> sort(Map<String, Object> map) { 497 public Map<String, Object> sort(Map<String, Object> map) {
376 // TODO Auto-generated method stub 498 // TODO Auto-generated method stub
377 Map<String, Object> newMap = new HashMap<String, Object>(); 499 Map<String, Object> newMap = new HashMap<String, Object>();
378 - //获取车辆存油信息  
379 - List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));  
380 - int id=Integer.parseInt(map.get("id").toString());  
381 - //最后存油量  
382 - Double yl=Double.parseDouble(map.get("jzyl").toString());  
383 - Ylb ylb=repository.findOne(id);  
384 - String nbbm_eq=ylb.getNbbm();  
385 - Date rq_eq=ylb.getRq();  
386 - //得到一天总的加油和里程(根据车,时间)  
387 - List<Object[]> sumList=repository.sumLcYl(nbbm_eq, rq_eq);  
388 - //保存总的加油量  
389 - Double jzl=Double.valueOf(sumList.get(0)[0].toString());  
390 - //保存总的里程  
391 - Double zlc=Double.valueOf(sumList.get(0)[1].toString());  
392 - map.put("nbbm_eq", nbbm_eq);  
393 - map.put("rq_eq",rq_eq);  
394 - Iterator<Ylb> iterator= repository.findAll(new CustomerSpecs<Ylb>(map),new Sort(Direction.ASC, "jcsx")).iterator();  
395 - //根据jcyl排序1为该车当日第一个出场,出场油量为前一天的存油  
396 - //保留两位小数  
397 - DecimalFormat df = new DecimalFormat("#.00");  
398 - Double zyl=0.0;  
399 - Double nextJzyl=0.0;  
400 - //车的,进,出油量及耗油  
401 - while(iterator.hasNext()){  
402 - try{  
403 - Ylb t = iterator.next();  
404 - if(t.getJcsx()==1){  
405 - Double jcyl=t.getCzyl();  
406 - zyl=jcyl+jzl-yl;  
407 - Double yh=0.0;  
408 - if(zlc>0&&t.getZlc()>0){  
409 - yh=Double.parseDouble(df.format(zyl*(t.getZlc()/zlc))); 500 + SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
  501 + try {
  502 + // 获取车辆存油信息
  503 + List<Cyl> cylList = cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
  504 + int id = Integer.parseInt(map.get("id").toString());
  505 + // 最后存油量
  506 + Double yl = Double.parseDouble(map.get("jzyl").toString());
  507 + Double sh= Double.parseDouble(map.get("sh").toString());
  508 + String shyy=map.get("shyy").toString();
  509 + Ylb ylb = repository.findOne(id);
  510 +
  511 + String nbbm_eq = ylb.getNbbm();
  512 + Date rq_eq = ylb.getRq();
  513 + // 得到一天总的加油和里程(根据车,时间)
  514 + List<Object[]> sumList = repository.sumLcYl(nbbm_eq, rq_eq,ylb.getXlbm());
  515 + // 保存总的加油量
  516 + Double jzl = 0.0;
  517 + // 保存总的里程
  518 + Double zlc = 0.0;
  519 + //保存总的损耗
  520 + Double zsh = 0.0;
  521 + for (int j = 0; j < sumList.size(); j++) {
  522 + jzl = Arith.add(jzl, Double.valueOf(sumList.get(j)[0].toString()));
  523 + zlc = Arith.add(zlc, Double.valueOf(sumList.get(j)[1].toString()));
  524 + zsh = Arith.add(zsh, Double.valueOf(sumList.get(j)[2].toString()));
  525 + }
  526 + jzl = Arith.sub(jzl, zsh);
  527 +
  528 + //新的 损耗不等于 旧的损耗 总损耗从新算
  529 + if(Arith.sub(ylb.getSh(),sh )!=0){
  530 +// zsh =zsh-ylb.getSh()+sh;
  531 + zsh =Arith.add(Arith.sub(zsh, ylb.getSh()), sh);
  532 +// jzl =jzl-zsh;
  533 + jzl =Arith.sub(jzl, zsh);
  534 + }else{
  535 +// jzl=jzl-zsh;
  536 + jzl =Arith.sub(jzl, zsh);
  537 + }
  538 + map.put("nbbm_eq", nbbm_eq);
  539 + map.put("rq_eq", rq_eq);
  540 + List<Ylb> iterator2=repository.obtainYl(sdf.format(rq_eq),ylb.getSsgsdm(),ylb.getFgsdm(),ylb.getXlbm(),
  541 + ylb.getNbbm(),"jcsx");
  542 +// Iterator<Ylb> iterator = repository.findAll(new CustomerSpecs<Ylb>(map), new Sort(Direction.ASC, "jcsx"))
  543 +// .iterator();
  544 + // 根据jcyl排序1为该车当日第一个出场,出场油量为前一天的存油
  545 + // 保留两位小数
  546 + DecimalFormat df = new DecimalFormat("#.00");
  547 + Double zyl = 0.0;
  548 + Double nextJzyl = 0.0;
  549 + // 车的,进,出油量及耗油
  550 + for (int i = 0; i < iterator2.size(); i++) {
  551 + Ylb t = iterator2.get(i);
  552 + if (t.getJcsx() == 1) {
  553 + if(t.getId()==id){
  554 + t.setSh(sh);
  555 + t.setShyy(shyy);
  556 + }
  557 + Double jcyl = t.getCzyl();
  558 +// zyl = jcyl + jzl - yl;
  559 + zyl = Arith.sub(Arith.add(jcyl, jzl), yl);
  560 + Double yh = 0.0;
  561 + if (zlc > 0 && t.getZlc() > 0) {
  562 + yh = Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
410 } 563 }
411 t.setYh(yh); 564 t.setYh(yh);
412 - nextJzyl=t.getJzl()+t.getCzyl()-yh;  
413 - t.setJzyl(Double.parseDouble(df.format(nextJzyl)));  
414 - }else{  
415 - if(t.getZlc()!=0){  
416 - t.setCzyl(Double.parseDouble(df.format(nextJzyl)));  
417 - Double yh=Double.parseDouble(df.format(zyl*(t.getZlc()/zlc))); 565 +// nextJzyl = t.getJzl() + t.getCzyl() - yh-t.getSh();
  566 + nextJzyl =Arith.sub(Arith.add(t.getJzl(), t.getCzyl()), Arith.add(yh, t.getSh()));
  567 +// t.setJzyl(Double.parseDouble(df.format(nextJzyl)));
  568 + t.setJzyl(nextJzyl);
  569 + } else {
  570 + if(t.getId()==id){
  571 + t.setSh(sh);
  572 + t.setShyy(shyy);
  573 + }
  574 + if (t.getZlc() != 0) {
  575 +// t.setCzyl(Double.parseDouble(df.format(nextJzyl)));
  576 + t.setCzyl(nextJzyl);
  577 + Double yh = Double.parseDouble(df.format(zyl * (t.getZlc() / zlc)));
418 t.setYh(yh); 578 t.setYh(yh);
419 - nextJzyl=t.getJzl()+nextJzyl-yh;  
420 - t.setJzyl(Double.parseDouble(df.format(nextJzyl))); 579 +// nextJzyl = t.getJzl() + nextJzyl - yh-t.getSh();
  580 + nextJzyl = Arith.sub(Arith.add(t.getJzl(), nextJzyl), Arith.add(yh, t.getSh()));
  581 +// t.setJzyl(Double.parseDouble(df.format(nextJzyl)));
  582 + t.setJzyl(nextJzyl);
421 } 583 }
422 - 584 +
423 } 585 }
424 repository.save(t); 586 repository.save(t);
425 -  
426 - //设置存油量  
427 - Cyl cyl=null;  
428 - boolean fage=false;  
429 - for(int z=0;z<cylList.size();z++){  
430 - cyl=cylList.get(z);  
431 - if(t.getNbbm().equals(cyl.getNbbm())){ 587 +
  588 + // 设置存油量
  589 + Cyl cyl = null;
  590 + boolean fage = false;
  591 + for (int z = 0; z < cylList.size(); z++) {
  592 + cyl = cylList.get(z);
  593 + if (t.getNbbm().equals(cyl.getNbbm())) {
432 cyl.setCyl(t.getJzyl()); 594 cyl.setCyl(t.getJzyl());
433 cyl.setUpdatetime(t.getRq()); 595 cyl.setUpdatetime(t.getRq());
434 - fage=true; 596 + fage = true;
435 break; 597 break;
436 } 598 }
437 } 599 }
438 - if(fage){ 600 + if (fage) {
439 cylRepository.save(cyl); 601 cylRepository.save(cyl);
440 - }else{  
441 - cyl=new Cyl(); 602 + } else {
  603 + cyl = new Cyl();
442 cyl.setNbbm(t.getNbbm()); 604 cyl.setNbbm(t.getNbbm());
443 cyl.setCyl(t.getJzyl()); 605 cyl.setCyl(t.getJzyl());
444 cyl.setGsdm(t.getSsgsdm()); 606 cyl.setGsdm(t.getSsgsdm());
445 cyl.setUpdatetime(t.getRq()); 607 cyl.setUpdatetime(t.getRq());
446 cylRepository.save(cyl); 608 cylRepository.save(cyl);
447 } 609 }
448 - 610 +
449 newMap.put("status", ResponseCode.SUCCESS); 611 newMap.put("status", ResponseCode.SUCCESS);
450 - }catch(Exception e){  
451 - newMap.put("status", ResponseCode.ERROR);  
452 - logger.error("save erro.", e);  
453 } 612 }
  613 + } catch (Exception e) {
  614 + newMap.put("status", ResponseCode.ERROR);
  615 + logger.error("save erro.", e);
454 } 616 }
455 return newMap; 617 return newMap;
456 } 618 }
@@ -464,14 +626,33 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -464,14 +626,33 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
464 @Override 626 @Override
465 public Map<String, Object> checkYl(Map<String, Object> map) { 627 public Map<String, Object> checkYl(Map<String, Object> map) {
466 Map<String, Object> newMap=new HashMap<String,Object>(); 628 Map<String, Object> newMap=new HashMap<String,Object>();
467 - String xlbm=map.get("xlbm_eq").toString(); 629 +// String xlbm="";
  630 +// if(map.get("xlbm_like")!=null){
  631 +// xlbm=map.get("xlbm_like").toString();
  632 +// }
468 // TODO Auto-generated method stub 633 // TODO Auto-generated method stub
469 try{ 634 try{
470 //获取车辆存油信息 635 //获取车辆存油信息
471 List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap)); 636 List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
472 String rq=map.get("rq").toString(); 637 String rq=map.get("rq").toString();
473 - List<Ylb> ylbList=repository.obtainYl(rq);  
474 - List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq); 638 + String xlbm="";
  639 + if(map.get("xlbm_like")!=null){
  640 + xlbm= map.get("xlbm_like").toString().trim();
  641 + }
  642 + String gsbm="";
  643 + if(map.get("ssgsdm_like")!=null){
  644 + gsbm=map.get("ssgsdm_like").toString();
  645 + }
  646 + String fgsbm="";
  647 + if(map.get("fgsdm_like")!=null){
  648 + fgsbm=map.get("fgsdm_like").toString();
  649 + }
  650 + String nbbm="";
  651 + if(map.get("nbbm_eq")!=null){
  652 + nbbm=map.get("nbbm_eq").toString();
  653 + }
  654 + List<Ylb> ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
  655 + List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm);
475 for (int i = 0; i < ylxxbList.size(); i++) { 656 for (int i = 0; i < ylxxbList.size(); i++) {
476 Boolean fage=true; 657 Boolean fage=true;
477 Ylxxb y1=ylxxbList.get(i); 658 Ylxxb y1=ylxxbList.get(i);
@@ -482,7 +663,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -482,7 +663,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
482 break; 663 break;
483 } 664 }
484 } 665 }
485 - 666 +
486 if(fage){ 667 if(fage){
487 Ylb t=new Ylb(); 668 Ylb t=new Ylb();
488 t.setNbbm(y1.getNbbm()); 669 t.setNbbm(y1.getNbbm());
@@ -492,14 +673,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -492,14 +673,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
492 t.setSsgsdm(y1.getGsdm()); 673 t.setSsgsdm(y1.getGsdm());
493 t.setXlbm(xlbm); 674 t.setXlbm(xlbm);
494 repository.save(t); 675 repository.save(t);
495 - 676 +
496 //设置存油量 677 //设置存油量
497 Cyl cyl=null; 678 Cyl cyl=null;
498 boolean status=false; 679 boolean status=false;
499 for(int z=0;z<cylList.size();z++){ 680 for(int z=0;z<cylList.size();z++){
500 cyl=cylList.get(z); 681 cyl=cylList.get(z);
501 if(t.getNbbm().equals(cyl.getNbbm())){ 682 if(t.getNbbm().equals(cyl.getNbbm())){
502 - cyl.setCyl(cyl.getCyl()+t.getJzl()); 683 +// cyl.setCyl(cyl.getCyl()+t.getJzl());
  684 + cyl.setCyl(Arith.add(cyl.getCyl(),t.getJzl()));
503 cyl.setUpdatetime(t.getRq()); 685 cyl.setUpdatetime(t.getRq());
504 status=true; 686 status=true;
505 break; 687 break;
@@ -515,16 +697,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -515,16 +697,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
515 cyl.setUpdatetime(t.getRq()); 697 cyl.setUpdatetime(t.getRq());
516 cylRepository.save(cyl); 698 cylRepository.save(cyl);
517 } 699 }
518 -  
519 - 700 +
  701 +
520 } 702 }
521 } 703 }
522 newMap.put("status", ResponseCode.SUCCESS); 704 newMap.put("status", ResponseCode.SUCCESS);
523 }catch(Exception e){ 705 }catch(Exception e){
524 newMap.put("status", ResponseCode.ERROR); 706 newMap.put("status", ResponseCode.ERROR);
525 logger.error("save erro.", e); 707 logger.error("save erro.", e);
  708 + throw e;
526 } 709 }
527 - 710 +
528 return newMap; 711 return newMap;
529 } 712 }
530 713
@@ -540,28 +723,128 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -540,28 +723,128 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
540 " select x.nbbm,max(x.rq) as rq,max(x.jcsx) as jcsx from " 723 " select x.nbbm,max(x.rq) as rq,max(x.jcsx) as jcsx from "
541 + "(select nbbm,rq,max(jcsx) as jcsx from bsth_c_ylb where rq between '" 724 + "(select nbbm,rq,max(jcsx) as jcsx from bsth_c_ylb where rq between '"
542 + date2 +"' and '" + date+"' "+lineStr 725 + date2 +"' and '" + date+"' "+lineStr
543 - + "group by nbbm,rq) x group by x.nbbm ) b" 726 + + "group by nbbm,rq) x group by x.nbbm ) b"
544 + " left join (select nbbm,rq,jzyl,jcsx FROM bsth_c_ylb " 727 + " left join (select nbbm,rq,jzyl,jcsx FROM bsth_c_ylb "
545 + " where rq between '" 728 + " where rq between '"
546 + date2 +"' and '" + date+"' "+lineStr 729 + date2 +"' and '" + date+"' "+lineStr
547 + ") a " 730 + ") a "
548 + " on a.nbbm =b.nbbm and a.jcsx=b.jcsx and a.rq=b.rq " 731 + " on a.nbbm =b.nbbm and a.jcsx=b.jcsx and a.rq=b.rq "
549 + " where a.nbbm is not null order by a.nbbm"; 732 + " where a.nbbm is not null order by a.nbbm";
550 - 733 +
551 // TODO Auto-generated method stub 734 // TODO Auto-generated method stub
552 - List<Ylb> list =jdbcTemplate.query(sql,  
553 - new RowMapper<Ylb>(){  
554 - @Override  
555 - public Ylb mapRow(ResultSet rs, int rowNum) throws SQLException {  
556 - Ylb s = new Ylb();  
557 - s.setNbbm(rs.getString("nbbm"));  
558 - s.setRq(rs.getDate("rq"));  
559 - s.setJzyl(rs.getDouble("jzyl"));  
560 - return s;  
561 - }  
562 - }); 735 + List<Ylb> list =jdbcTemplate.query(sql,
  736 + new RowMapper<Ylb>(){
  737 + @Override
  738 + public Ylb mapRow(ResultSet rs, int rowNum) throws SQLException {
  739 + Ylb s = new Ylb();
  740 + s.setNbbm(rs.getString("nbbm"));
  741 + s.setRq(rs.getDate("rq"));
  742 + s.setJzyl(rs.getDouble("jzyl"));
  743 + return s;
  744 + }
  745 + });
563 return list; 746 return list;
564 } 747 }
565 -  
566 748
567 -} 749 + @Override
  750 + public StringBuffer checkNbmmNum(String rq, String gsbm, String fgsbm, String xlbm,String nbbm,int lx) {
  751 + StringBuffer stringList =new StringBuffer();
  752 + List<Object[]> objectList=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  753 + for (int i = 0; i < objectList.size(); i++) {
  754 + String clbm=objectList.get(i)[0].toString()+",";
  755 + int cs=Integer.parseInt(objectList.get(i)[1].toString());
  756 + //一车一单
  757 + if(lx==1){
  758 + if(cs==1){
  759 + stringList.append(clbm);
  760 + }
  761 + }
  762 + //一车多单
  763 + if(lx==2){
  764 + if(cs>1){
  765 + stringList.append(clbm);
  766 + }
  767 +
  768 + }
  769 + }
  770 + return stringList;
  771 + }
  772 +
  773 +
  774 +
  775 + @Override
  776 + public Map<String, Object> sumYlb(Map<String, Object> map) {
  777 + // TODO Auto-generated method stub
  778 + List<String> stringList=new ArrayList<String>();
  779 + String rq=map.get("rq").toString();
  780 + String gsbm=map.get("ssgsdm_like").toString();
  781 + String fgsbm=map.get("fgsdm_like").toString();
  782 + String xlbm=map.get("xlbm_like").toString().trim();
  783 + String nbbm=map.get("nbbm_eq").toString();
  784 + String sxtj=map.get("sxtj").toString();
  785 + if(nbbm.trim()!=""){
  786 + stringList.add(nbbm);
  787 + }else{
  788 + if(!sxtj.equals("0")){
  789 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  790 + for (int i = 0; i < objectLists.size(); i++) {
  791 + String clbm=objectLists.get(i)[0].toString();
  792 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  793 + //一车一单
  794 +
  795 + if(sxtj.equals("1")){
  796 + if(cs==1){
  797 + stringList.add(clbm);
  798 + }
  799 + }
  800 + //一车多单
  801 + if(sxtj.equals("2")){
  802 + if(cs>1){
  803 + stringList.add(clbm);
  804 + }
  805 + }
  806 + }
  807 + }
  808 + }
  809 + List<Object[]> sumYlbList=new ArrayList<Object[]>();
  810 + if(sxtj.equals("0")){
  811 + sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm,nbbm);
  812 + }else{
  813 + if(stringList.size()>0){
  814 +
  815 +// String strings[]=new String[stringList.size()];
  816 +// for(int i=0;i<stringList.size();i++){
  817 +// strings[i]=stringList.get(i);
  818 +// }
  819 + sumYlbList=repository.sumYlb(rq, gsbm, fgsbm, xlbm, stringList);
  820 + }else{
  821 + sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm, nbbm);
  822 + }
  823 +
  824 + }
  825 +
  826 + Double jzl=0.0,yh=0.0,sh=0.0;
  827 + for (int i = 0; i < sumYlbList.size(); i++) {
  828 + jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString()));
  829 + yh = Arith.add(yh, Double.valueOf(sumYlbList.get(i)[1].toString()));
  830 + sh = Arith.add(sh, Double.valueOf(sumYlbList.get(i)[2].toString()));
  831 + }
  832 +
  833 + Map<String, Object> sumMap=new HashMap<String,Object>();
  834 + sumMap.put("jzl", jzl);
  835 + sumMap.put("yh", yh);
  836 + sumMap.put("sh", sh);
  837 +// String sql="select sum(jzl),sum(yh),sum(sh) from bsth_c_ylb "
  838 +// + " where to_days('"+map.get("rq").toString()+"')=to_days(rq) "
  839 +// + " and ssgsdm like '%"+map.get("ssgsdm_like").toString()+"%' "
  840 +// + " and fgsdm like '%"+map.get("fgsdm_like").toString()+"%' "
  841 +// + " and xlbm like '%"+map.get("xlbm_like").toString()+ "%'"
  842 +// + " and nbbm like '%"+map.get("nbbm_eq").toString()+"% '";
  843 +// if(map.get("nbbm_in")!=null){
  844 +//// sql +=" and nbbm in ("
  845 +// }
  846 + return sumMap;
  847 + }
  848 +
  849 +
  850 +}
568 \ No newline at end of file 851 \ No newline at end of file
src/main/java/com/bsth/service/realcontrol/OilStationSocietyService.java 0 → 100644
  1 +package com.bsth.service.realcontrol;
  2 +
  3 +import com.bsth.entity.realcontrol.OilStationSociety;
  4 +import com.bsth.service.BaseService;
  5 +
  6 +/**
  7 + * Created by panzhao on 2017/3/16.
  8 + */
  9 +public interface OilStationSocietyService extends BaseService<OilStationSociety, String> {
  10 +}
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -112,6 +112,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -112,6 +112,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
112 112
113 List<Map<String,Object>> statisticsDaily(String line, String date, String xlName, String type); 113 List<Map<String,Object>> statisticsDaily(String line, String date, String xlName, String type);
114 114
  115 + List<Map<String,Object>> statisticsDailyTj(String line, String date,String date2, String xlName, String type);
  116 +
115 //List<Object> scheduleDaily(String line,String date); 117 //List<Object> scheduleDaily(String line,String date);
116 118
117 int countByLineCodeAndDate(String xlBm, String schDate); 119 int countByLineCodeAndDate(String xlBm, String schDate);
@@ -126,7 +128,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -126,7 +128,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
126 List<ScheduleRealInfo> realScheduleList(String line,String date); 128 List<ScheduleRealInfo> realScheduleList(String line,String date);
127 List<ScheduleRealInfo> realScheduleListQp(String line,String date); 129 List<ScheduleRealInfo> realScheduleListQp(String line,String date);
128 130
129 - List<Map<String,Object>> yesterdayDataList(String line,String date); 131 + List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm,String jGh,String nbbm);
130 132
131 List<Map<String,Object>> yesterdayDataList(String line); 133 List<Map<String,Object>> yesterdayDataList(String line);
132 134
@@ -156,7 +158,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -156,7 +158,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
156 158
157 Map<String,Object> lpChangeMulti(String leftIdx, String rightIdx, int type); 159 Map<String,Object> lpChangeMulti(String leftIdx, String rightIdx, int type);
158 160
159 - void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type, boolean changeRealTime); 161 + void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type);
160 162
161 Map<String,Object> revokeRealArrive(Long id); 163 Map<String,Object> revokeRealArrive(Long id);
162 } 164 }
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
@@ -9,6 +9,7 @@ import com.bsth.repository.realcontrol.ChildTaskPlanRepository; @@ -9,6 +9,7 @@ import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
9 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 9 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
10 import com.bsth.service.impl.BaseServiceImpl; 10 import com.bsth.service.impl.BaseServiceImpl;
11 import com.bsth.service.realcontrol.ChildTaskPlanService; 11 import com.bsth.service.realcontrol.ChildTaskPlanService;
  12 +import org.apache.commons.lang3.StringUtils;
12 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.jdbc.core.JdbcTemplate; 14 import org.springframework.jdbc.core.JdbcTemplate;
14 import org.springframework.stereotype.Service; 15 import org.springframework.stereotype.Service;
@@ -45,8 +46,11 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon @@ -45,8 +46,11 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
45 //保存起终点名称 46 //保存起终点名称
46 String prefix = sch.getXlBm() + "_" + sch.getXlDir() + "_"; 47 String prefix = sch.getXlBm() + "_" + sch.getXlDir() + "_";
47 48
48 - t.setStartStationName(BasicData.getStationNameByCode(t.getStartStation(), prefix));  
49 - t.setEndStationName(BasicData.getStationNameByCode(t.getEndStation(), prefix)); 49 + if(StringUtils.isEmpty(t.getStartStationName()))
  50 + t.setStartStationName(BasicData.getStationNameByCode(t.getStartStation(), prefix));
  51 +
  52 + if(StringUtils.isEmpty(t.getEndStationName()))
  53 + t.setEndStationName(BasicData.getStationNameByCode(t.getEndStation(), prefix));
50 //先持久化子任务 54 //先持久化子任务
51 rs = super.save(t); 55 rs = super.save(t);
52 //再关联主任务 56 //再关联主任务
src/main/java/com/bsth/service/realcontrol/impl/OilStationSocietyServiceImpl.java 0 → 100644
  1 +package com.bsth.service.realcontrol.impl;
  2 +
  3 +import com.bsth.entity.realcontrol.OilStationSociety;
  4 +import com.bsth.service.impl.BaseServiceImpl;
  5 +import com.bsth.service.realcontrol.OilStationSocietyService;
  6 +import org.springframework.stereotype.Service;
  7 +
  8 +/**
  9 + * Created by panzhao on 2017/3/16.
  10 + */
  11 +@Service
  12 +public class OilStationSocietyServiceImpl extends BaseServiceImpl<OilStationSociety, String> implements OilStationSocietyService {
  13 +}
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -179,6 +179,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -179,6 +179,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
179 schedule.setBcType(bcType); 179 schedule.setBcType(bcType);
180 } 180 }
181 181
  182 + //重新计算是否误点
  183 + schedule.reCalcLate();
  184 +
182 // 持久化到数据库 185 // 持久化到数据库
183 dayOfSchedule.save(schedule); 186 dayOfSchedule.save(schedule);
184 187
@@ -338,7 +341,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -338,7 +341,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
338 t.setLate(false); 341 t.setLate(false);
339 t.setDfsj(t.getFcsj()); 342 t.setDfsj(t.getFcsj());
340 t.setZdsjT(sdfyyyyMMddHHmm.parse(schDate + t.getZdsj()).getTime()); 343 t.setZdsjT(sdfyyyyMMddHHmm.parse(schDate + t.getZdsj()).getTime());
341 - 344 + t.setJhlcOrig(t.getJhlc());
342 345
343 //班次历时 346 //班次历时
344 t.setBcsj(DateUtils.calcHHmmDiff(t.getFcsj(), t.getZdsj()) / 1000 / 60); 347 t.setBcsj(DateUtils.calcHHmmDiff(t.getFcsj(), t.getZdsj()) / 1000 / 60);
@@ -391,14 +394,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -391,14 +394,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
391 return rs; 394 return rs;
392 } 395 }
393 396
394 - dayOfSchedule.delete(sch);  
395 - //ScheduleRealInfo sch = dayOfSchedule.delete(id);  
396 //数据库删除 397 //数据库删除
397 rs = super.delete(id); 398 rs = super.delete(id);
398 - //更新起点应到时间  
399 - List<ScheduleRealInfo> ts = dayOfSchedule.updateQdzTimePlan(sch.getClZbh());  
400 - rs.put("ts", ts);  
401 - rs.put("delete", sch); 399 + if(rs.get("status").equals(ResponseCode.SUCCESS)){
  400 + dayOfSchedule.delete(sch);
  401 + //更新起点应到时间
  402 + List<ScheduleRealInfo> ts = dayOfSchedule.updateQdzTimePlan(sch.getClZbh());
  403 + rs.put("ts", ts);
  404 + rs.put("delete", sch);
  405 + }
402 406
403 return rs; 407 return rs;
404 } 408 }
@@ -853,6 +857,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -853,6 +857,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
853 rs.put("msg", "未烂班,无法撤销!"); 857 rs.put("msg", "未烂班,无法撤销!");
854 } else { 858 } else {
855 sch.setStatus(0); 859 sch.setStatus(0);
  860 + sch.setRemarks("");//清空备注
  861 + sch.setJhlc(sch.getJhlcOrig());
856 rs.put("status", ResponseCode.SUCCESS); 862 rs.put("status", ResponseCode.SUCCESS);
857 rs.put("t", sch); 863 rs.put("t", sch);
858 864
@@ -1057,9 +1063,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1057,9 +1063,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1057 1063
1058 //修改班次里程 1064 //修改班次里程
1059 String jhlc = map.get("jhlc"); 1065 String jhlc = map.get("jhlc");
1060 - if (StringUtils.isNotEmpty(jhlc)  
1061 - && Double.parseDouble(jhlc) != sch.getJhlc()) {  
1062 - sch.setJhlc(Double.parseDouble(jhlc)); 1066 + if (StringUtils.isNotEmpty(jhlc)) {
  1067 + if(Double.parseDouble(jhlc) == 0 && sch.getJhlcOrig() != 0)
  1068 + destroy(sch.getId() + "", "", map.get("adjustExps").toString());
  1069 + else{
  1070 + sch.setJhlc(Double.parseDouble(jhlc));
  1071 + }
1063 } 1072 }
1064 } 1073 }
1065 1074
@@ -1097,6 +1106,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1097,6 +1106,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1097 schedule = dayOfSchedule.get(jsonObj.getLong("id")); 1106 schedule = dayOfSchedule.get(jsonObj.getLong("id"));
1098 //设置待发时间 1107 //设置待发时间
1099 schedule.setDfsjAll(dfsj); 1108 schedule.setDfsjAll(dfsj);
  1109 + //重新计算是否误点
  1110 + schedule.reCalcLate();
1100 1111
1101 dayOfSchedule.save(schedule); 1112 dayOfSchedule.save(schedule);
1102 } 1113 }
@@ -1215,7 +1226,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1215,7 +1226,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1215 1226
1216 @Override 1227 @Override
1217 public Map<String, Object> findKMBC2(String jName, String clZbh, String date) { 1228 public Map<String, Object> findKMBC2(String jName, String clZbh, String date) {
1218 - List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill3(jName, clZbh, date); 1229 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill3(jName, clZbh, date,"","");
1219 1230
1220 DecimalFormat format = new DecimalFormat("0.00"); 1231 DecimalFormat format = new DecimalFormat("0.00");
1221 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName); 1232 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
@@ -1290,7 +1301,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1290,7 +1301,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1290 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName); 1301 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName);
1291 int jhbc = 0, cjbc = 0, ljbc = 0; 1302 int jhbc = 0, cjbc = 0, ljbc = 0;
1292 double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0; 1303 double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0;
1293 - float addMileage = 0l, remMileage = 0l; 1304 + float addMileage = 0l, remMileage = 0l,addMileageYy = 0l,addMileageJc =0l;
1294 Map<String, Object> map = new HashMap<String, Object>(); 1305 Map<String, Object> map = new HashMap<String, Object>();
1295 for (ScheduleRealInfo scheduleRealInfo : list) { 1306 for (ScheduleRealInfo scheduleRealInfo : list) {
1296 if (scheduleRealInfo != null) { 1307 if (scheduleRealInfo != null) {
@@ -1301,18 +1312,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1301,18 +1312,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1301 tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc(); 1312 tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
1302 if (scheduleRealInfo.isSflj()) { 1313 if (scheduleRealInfo.isSflj()) {
1303 addMileage += tempJhlc; 1314 addMileage += tempJhlc;
1304 - ljbc++; 1315 + if (scheduleRealInfo.getBcType().equals("in")
  1316 + || scheduleRealInfo.getBcType().equals("out")) {
  1317 + addMileageJc +=tempJhlc;
  1318 + }else{
  1319 + ljbc++;
  1320 + addMileageYy +=tempJhlc;
  1321 + }
  1322 +
1305 } else { 1323 } else {
1306 if (!(scheduleRealInfo.getBcType().equals("in") 1324 if (!(scheduleRealInfo.getBcType().equals("in")
1307 || scheduleRealInfo.getBcType().equals("out"))) { 1325 || scheduleRealInfo.getBcType().equals("out"))) {
1308 - jhbc++;  
1309 - jhlc += tempJhlc; 1326 + jhbc++;
  1327 + jhlc += tempJhlc;
  1328 + if (scheduleRealInfo.getStatus() == -1) {
  1329 + remMileage += tempJhlc;
  1330 + cjbc++;
  1331 + }
1310 } 1332 }
1311 1333
1312 - if (scheduleRealInfo.getStatus() == -1) {  
1313 - remMileage += tempJhlc;  
1314 - cjbc++;  
1315 - }  
1316 } 1334 }
1317 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); 1335 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
1318 //计算营运里程,空驶里程 1336 //计算营运里程,空驶里程
@@ -1358,15 +1376,17 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1358,15 +1376,17 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1358 map.put("jhlc", format.format(jhlc)); 1376 map.put("jhlc", format.format(jhlc));
1359 map.put("remMileage", format.format(remMileage)); 1377 map.put("remMileage", format.format(remMileage));
1360 map.put("addMileage", format.format(addMileage)); 1378 map.put("addMileage", format.format(addMileage));
1361 - map.put("yygl", format.format(yygl)); 1379 + map.put("yygl", format.format(yygl+addMileageYy));
1362 map.put("ksgl", format.format(ksgl)); 1380 map.put("ksgl", format.format(ksgl));
1363 - map.put("realMileage", format.format(yygl + ksgl + jcclc)); 1381 + map.put("realMileage", format.format(yygl + ksgl + jcclc+addMileageYy));
  1382 +// map.put("realMileage", format.format(yygl + ksgl + jcclc+addMileage));
1364 map.put("jhbc", jhbc); 1383 map.put("jhbc", jhbc);
1365 map.put("cjbc", cjbc); 1384 map.put("cjbc", cjbc);
1366 map.put("ljbc", ljbc); 1385 map.put("ljbc", ljbc);
1367 map.put("sjbc", jhbc - cjbc + ljbc); 1386 map.put("sjbc", jhbc - cjbc + ljbc);
1368 map.put("jcclc", jcclc); 1387 map.put("jcclc", jcclc);
1369 map.put("zkslc", format.format(ksgl + jcclc)); 1388 map.put("zkslc", format.format(ksgl + jcclc));
  1389 +// map.put("zkslc", format.format(ksgl + jcclc+addMileageJc));
1370 return map; 1390 return map;
1371 } 1391 }
1372 1392
@@ -1436,140 +1456,681 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1436,140 +1456,681 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1436 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 1456 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
1437 Map<String, Object> m = new HashMap<String, Object>(); 1457 Map<String, Object> m = new HashMap<String, Object>();
1438 ReportUtils ee = new ReportUtils(); 1458 ReportUtils ee = new ReportUtils();
1439 - m.put("dates", startDate + " 至 " + endDate);  
1440 - List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();  
1441 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
1442 - for (ScheduleRealInfo schedule : list) {  
1443 - Map<String, Object> tempMap = new HashMap<String, Object>();  
1444 - tempMap.put("xlName", schedule.getXlName() != null ? schedule.getXlName() : "");  
1445 - tempMap.put("lpName", schedule.getLpName() != null ? schedule.getLpName() : "");  
1446 - tempMap.put("clZbh", schedule.getClZbh() != null ? schedule.getClZbh() : "");  
1447 - tempMap.put("jName", schedule.getjName() != null ? schedule.getjName() : "");  
1448 - tempMap.put("sName", schedule.getsName() != null ? schedule.getsName() : "");  
1449 - tempMap.put("fcsj", schedule.getFcsj() != null ? schedule.getFcsj() : "");  
1450 - tempMap.put("fcsjActual", schedule.getFcsjActual() != null ? schedule.getFcsjActual() : "");  
1451 - tempMap.put("zdsj", schedule.getZdsj() != null ? schedule.getZdsj() : "");  
1452 - tempMap.put("zdsjActual", schedule.getZdsjActual() != null ? schedule.getZdsjActual() : "");  
1453 - if (schedule.getUpdateBy() != null) {  
1454 - if (schedule.getUpdateBy().getName() != null)  
1455 - tempMap.put("userName", schedule.getUpdateBy().getName());  
1456 - else  
1457 - tempMap.put("userName", "");  
1458 - } else {  
1459 - tempMap.put("userName", "");  
1460 - }  
1461 - if (schedule.getUpdateDate() != null) {  
1462 - tempMap.put("updateDate", sdf.format(schedule.getUpdateDate()));  
1463 - } else {  
1464 - tempMap.put("updateDate", "");  
1465 - }  
1466 - tempMap.put("remarks", schedule.getRemarks() != null ? schedule.getRemarks() : "");  
1467 - tempList.add(tempMap);  
1468 - } 1459 + m.put("dates", startDate + " 至 " + endDate);
  1460 + List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
  1461 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1462 + for (ScheduleRealInfo schedule : list) {
  1463 + Map<String, Object> tempMap = new HashMap<String, Object>();
  1464 + tempMap.put("xlName", schedule.getXlName() != null ? schedule.getXlName() : "");
  1465 + tempMap.put("lpName", schedule.getLpName() != null ? schedule.getLpName() : "");
  1466 + tempMap.put("clZbh", schedule.getClZbh() != null ? schedule.getClZbh() : "");
  1467 + tempMap.put("jName", schedule.getjName() != null ? schedule.getjName() : "");
  1468 + tempMap.put("sName", schedule.getsName() != null ? schedule.getsName() : "");
  1469 + tempMap.put("fcsj", schedule.getFcsj() != null ? schedule.getFcsj() : "");
  1470 + tempMap.put("fcsjActual", schedule.getFcsjActual() != null ? schedule.getFcsjActual() : "");
  1471 + tempMap.put("zdsj", schedule.getZdsj() != null ? schedule.getZdsj() : "");
  1472 + tempMap.put("zdsjActual", schedule.getZdsjActual() != null ? schedule.getZdsjActual() : "");
  1473 + if (schedule.getUpdateBy() != null) {
  1474 + if (schedule.getUpdateBy().getName() != null)
  1475 + tempMap.put("userName", schedule.getUpdateBy().getName());
  1476 + else
  1477 + tempMap.put("userName", "");
  1478 + } else {
  1479 + tempMap.put("userName", "");
  1480 + }
  1481 + if (schedule.getUpdateDate() != null) {
  1482 + tempMap.put("updateDate", sdf.format(schedule.getUpdateDate()));
  1483 + } else {
  1484 + tempMap.put("updateDate", "");
  1485 + }
  1486 + tempMap.put("remarks", schedule.getRemarks() != null ? schedule.getRemarks() : "");
  1487 + tempList.add(tempMap);
  1488 + }
  1489 + try {
  1490 + listI.add(tempList.iterator());
  1491 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  1492 + ee.excelReplace(listI, new Object[]{m}, path + "mould/correctForm.xls",
  1493 + path + "export/修正报表" + sdfSimple.format(sdfMonth.parse(startDate)) + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls");
  1494 + } catch (Exception e) {
  1495 + // TODO: handle exception
  1496 + e.printStackTrace();
  1497 + }
  1498 + Map<String, Object> map = tempList.get(tempList.size() - 1);
  1499 + System.out.println("tempMap:" + map);
  1500 + }
  1501 +
  1502 + return list;
  1503 + }
  1504 +
  1505 + @Override
  1506 + public List<ScheduleRealInfo> queryListWaybill(String jName, String clZbh,
  1507 + String lpName, String date, String line) {
  1508 + List<ScheduleRealInfo> listSchedule = new ArrayList<ScheduleRealInfo>();
  1509 + List<ScheduleRealInfo> list = null;
  1510 + list = scheduleRealInfoRepository.queryListWaybill(jName, clZbh, lpName, date, line);
  1511 + for (int i = 0; i < list.size(); i++) {
  1512 + ScheduleRealInfo s = list.get(i);
  1513 + s.setAdjustExps(i + 1 + "");
  1514 + String remarks = "";
  1515 + if (s.getRemarks() != null) {
  1516 + remarks += s.getRemarks();
  1517 + }
  1518 +
  1519 + Set<ChildTaskPlan> childTaskPlans = s.getcTasks();
  1520 + if (!childTaskPlans.isEmpty()) {
  1521 + s.setFcsjActual("");
  1522 + s.setZdsjActual("");
  1523 + s.setJhlc(0.0);
  1524 + }
  1525 +
  1526 + if (s.isDestroy()) {
  1527 + s.setFcsjActual("");
  1528 + s.setZdsjActual("");
  1529 + s.setJhlc(0.0);
  1530 + remarks += "(烂班)";
  1531 + s.setRemarks(remarks);
  1532 + }
  1533 + listSchedule.add(s);
  1534 + //计算营运里程,空驶里程
  1535 + if (!childTaskPlans.isEmpty()) {
  1536 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1537 + while (it.hasNext()) {
  1538 + ScheduleRealInfo t = new ScheduleRealInfo();
  1539 + ChildTaskPlan childTaskPlan = it.next();
  1540 + if (childTaskPlan.isDestroy()) {
  1541 + t.setFcsjActual("");
  1542 + t.setZdsjActual("");
  1543 + t.setJhlc(0.0);
  1544 + } else {
  1545 + t.setFcsjActual(childTaskPlan.getStartDate());
  1546 + t.setZdsjActual(childTaskPlan.getEndDate());
  1547 + t.setJhlc(Double.parseDouble(String.valueOf(childTaskPlan.getMileage())));
  1548 + }
  1549 + t.setQdzName(childTaskPlan.getStartStationName());
  1550 + t.setZdzName(childTaskPlan.getEndStationName());
  1551 + t.setRemarks(childTaskPlan.getRemarks());
  1552 + t.setAdjustExps("子");
  1553 + listSchedule.add(t);
  1554 + }
  1555 + /* String sqlPc = "select * from bsth_c_s_child_task where schedule=" + s.getId() + " order by start_date ";
  1556 + List<ScheduleRealInfo> lists = jdbcTemplate.query(sqlPc,
  1557 + new RowMapper<ScheduleRealInfo>() {
  1558 + @Override
  1559 + public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
  1560 + ScheduleRealInfo t = new ScheduleRealInfo();
  1561 + if (rs.getInt("destroy") == 0) {
  1562 + t.setFcsjActual(rs.getString("start_date"));
  1563 + t.setZdsjActual(rs.getString("end_date"));
  1564 + t.setJhlc(rs.getDouble("mileage"));
  1565 + } else {
  1566 + t.setFcsjActual("");
  1567 + t.setZdsjActual("");
  1568 + t.setJhlc(0.0);
  1569 + }
  1570 + t.setQdzName(rs.getString("start_station_name"));
  1571 + t.setZdzName(rs.getString("end_station_name"));
  1572 + t.setRemarks(rs.getString("remarks"));
  1573 + t.setAdjustExps("子");
  1574 + return t;
  1575 + }
  1576 + });
  1577 + for (int j = 0; j < lists.size(); j++) {
  1578 + ScheduleRealInfo t = lists.get(j);
  1579 + listSchedule.add(t);
  1580 + }*/
  1581 + }
  1582 + }
  1583 +
  1584 + return listSchedule;
  1585 + }
  1586 +
  1587 + @Override
  1588 + public Map<String, Object> removeChildTask(Long taskId) {
  1589 + Map<String, Object> rs = new HashMap<>();
  1590 + ChildTaskPlan chTask = cTaskPlanRepository.findOne(taskId);
  1591 +
  1592 + ScheduleRealInfo sch = dayOfSchedule.get(chTask.getSchedule().getId());
  1593 + try {
  1594 +
  1595 + sch.getcTasks().remove(chTask);
  1596 + scheduleRealInfoRepository.save(sch);
  1597 + rs.put("status", ResponseCode.SUCCESS);
  1598 + } catch (Exception e) {
  1599 + logger.error("", e);
  1600 + rs.put("status", ResponseCode.ERROR);
  1601 + }
  1602 + return rs;
  1603 + }
  1604 +
  1605 + @Override
  1606 + public List<Map<String, Object>> statisticsDaily(String line, String date,
  1607 + String xlName, String type) {
  1608 + List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
  1609 + if (date.length() == 10)
  1610 + list = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
  1611 + else if (date.length() == 7)
  1612 + list = scheduleRealInfoRepository.scheduleByDateAndLine3(line, date);
  1613 +
  1614 + List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
  1615 + DecimalFormat format = new DecimalFormat("0.00");
  1616 + double jhlc = 0, tempJhlc = 0, childMileage = 0;
  1617 + float sjgl = 0f, ssgl = 0f, ssgl_lz = 0f, ssgl_dm = 0f, ssgl_gz = 0f, ssgl_jf = 0f, ssgl_zs = 0f, ssgl_qr = 0f, ssgl_qc = 0f, ssgl_kx = 0f, ssgl_qh = 0f, ssgl_yw = 0f, ssgl_other = 0f, ljgl = 0f;
  1618 + //班次
  1619 + int ssbc = 0, ssbc_lz = 0, ssbc_dm = 0, ssbc_gz = 0, ssbc_jf = 0, ssbc_zs = 0, ssbc_qr = 0, ssbc_qc = 0, ssbc_kx = 0, ssbc_qh = 0, ssbc_yw = 0, ssbc_other = 0;
  1620 + int sj_0 = 6 * 60 + 31, sj_1 = 8 * 60 + 30, sj_2 = 16 * 60 + 1, sj_3 = 18 * 60;
  1621 + int jhbc = 0, jhbc_m = 0, jhbc_a = 0;
  1622 + int sjbc = 0, sjbc_m = 0, sjbc_a = 0;
  1623 + int ljbc = 0, ljbc_m = 0, ljbc_a = 0;
  1624 + int fzbc = 0, fzbc_m = 0, fzbc_a = 0;
  1625 + int dtbc = 0, dtbc_m = 0, dtbc_a = 0;
  1626 + int djg = 0, djg_m = 0, djg_a = 0, djg_time = 0;
  1627 +
  1628 + double jhlcZ = 0, tempJhlcZ = 0, childMileageZ = 0;
  1629 + float sjglZ = 0f, ssglZ = 0f, ssgl_lzZ = 0f, ssgl_dmZ = 0f,
  1630 + ssgl_gzZ = 0f, ssgl_jfZ = 0f, ssgl_zsZ = 0f, ssgl_qrZ = 0f, ssgl_qcZ = 0f,
  1631 + ssgl_kxZ = 0f, ssgl_qhZ = 0f, ssgl_ywZ = 0f, ssgl_otherZ = 0f, ljglZ = 0f;
  1632 + //班次
  1633 + int ssbcZ = 0, ssbc_lzZ = 0, ssbc_dmZ = 0, ssbc_gzZ = 0, ssbc_jfZ = 0, ssbc_zsZ = 0, ssbc_qrZ = 0, ssbc_qcZ = 0, ssbc_kxZ = 0, ssbc_qhZ = 0, ssbc_ywZ = 0, ssbc_otherZ = 0;
  1634 + int jhbcZ = 0, jhbc_mZ = 0, jhbc_aZ = 0;
  1635 + int sjbcZ = 0, sjbc_mZ = 0, sjbc_aZ = 0;
  1636 + int ljbcZ = 0, ljbc_mZ = 0, ljbc_aZ = 0;
  1637 + int fzbcZ = 0, fzbc_mZ = 0, fzbc_aZ = 0;
  1638 + int dtbcZ = 0, dtbc_mZ = 0, dtbc_aZ = 0;
  1639 + int djgZ = 0, djg_mZ = 0, djg_aZ = 0, djg_timeZ = 0;
  1640 + Map<String, Object> map = null;
  1641 + for (int i = 0; i < list.size(); i++) {
  1642 + ScheduleRealInfo scheduleRealInfo = list.get(i);
  1643 + if (scheduleRealInfo != null) {
  1644 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1645 + //计算实际里程,少驶里程,计划里程=实际里程+少驶里程
  1646 + if (childTaskPlans.isEmpty()) {
  1647 + tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  1648 + //临加公里
  1649 + if (scheduleRealInfo.isSflj()) {
  1650 + ljgl += tempJhlc;
  1651 + ljglZ += tempJhlc;
  1652 + } else {
  1653 + jhlc += tempJhlc;
  1654 + jhlcZ += tempJhlc;
  1655 + }
  1656 + if (scheduleRealInfo.getStatus() == -1) {
  1657 + ssgl += tempJhlc;
  1658 + ssglZ += tempJhlc;
  1659 + ssbc++;
  1660 + ssbcZ++;
  1661 + if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("路阻") != -1) {
  1662 + ssgl_lz += tempJhlc;
  1663 + ssgl_lzZ += tempJhlc;
  1664 + ssbc_lz++;
  1665 + ssbc_lzZ++;
  1666 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("吊慢") != -1) {
  1667 + ssgl_dm += tempJhlc;
  1668 + ssgl_dmZ += tempJhlc;
  1669 + ssbc_dm++;
  1670 + ssbc_dmZ++;
  1671 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("故障") != -1) {
  1672 + ssgl_gz += tempJhlc;
  1673 + ssgl_gzZ += tempJhlc;
  1674 + ssbc_gz++;
  1675 + ssbc_gzZ++;
  1676 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("纠纷") != -1) {
  1677 + ssgl_jf += tempJhlc;
  1678 + ssgl_jfZ += tempJhlc;
  1679 + ssbc_jf++;
  1680 + ssbc_jfZ++;
  1681 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("肇事") != -1) {
  1682 + ssgl_zs += tempJhlc;
  1683 + ssgl_zsZ += tempJhlc;
  1684 + ssbc_zs++;
  1685 + ssbc_zsZ++;
  1686 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("缺人") != -1) {
  1687 + ssgl_qr += tempJhlc;
  1688 + ssgl_qrZ += tempJhlc;
  1689 + ssbc_qr++;
  1690 + ssbc_qrZ++;
  1691 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("缺车") != -1) {
  1692 + ssgl_qc += tempJhlc;
  1693 + ssgl_qcZ += tempJhlc;
  1694 + ssbc_qc++;
  1695 + ssbc_qcZ++;
  1696 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("客稀") != -1) {
  1697 + ssgl_kx += tempJhlc;
  1698 + ssgl_kxZ += tempJhlc;
  1699 + ssbc_kx++;
  1700 + ssbc_kxZ++;
  1701 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("气候") != -1) {
  1702 + ssgl_qh += tempJhlc;
  1703 + ssgl_qhZ += tempJhlc;
  1704 + ssbc_qh++;
  1705 + ssbc_qhZ++;
  1706 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("援外") != -1) {
  1707 + ssgl_yw += tempJhlc;
  1708 + ssgl_ywZ += tempJhlc;
  1709 + ssbc_yw++;
  1710 + ssbc_ywZ++;
  1711 + } else {
  1712 + ssgl_other += tempJhlc;
  1713 + ssgl_otherZ += tempJhlc;
  1714 + ssbc_other++;
  1715 + ssbc_otherZ++;
  1716 + }
  1717 + } else {
  1718 + sjgl += tempJhlc;
  1719 + sjglZ += tempJhlc;
  1720 + }
  1721 + } else {
  1722 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1723 + while (it.hasNext()) {
  1724 + ChildTaskPlan childTaskPlan = it.next();
  1725 + childMileage = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  1726 + jhlc += childMileage;
  1727 + jhlcZ += childMileage;
  1728 + if (childTaskPlan.isDestroy()) {
  1729 + ssgl += childMileage;
  1730 + ssglZ += childMileage;
  1731 + ssbc++;
  1732 + ssbcZ++;
  1733 + if (childTaskPlan.getDestroyReason().equals("路阻")) {
  1734 + ssgl_lz += childTaskPlan.getMileage();
  1735 + ssgl_lzZ += childTaskPlan.getMileage();
  1736 + ssbc_lzZ++;
  1737 + ssbc_lzZ++;
  1738 + } else if (childTaskPlan.getDestroyReason().equals("吊慢")) {
  1739 + ssgl_dm += childTaskPlan.getMileage();
  1740 + ssgl_dmZ += childTaskPlan.getMileage();
  1741 + ssbc_dm++;
  1742 + ssbc_dmZ++;
  1743 + } else if (childTaskPlan.getDestroyReason().equals("故障")) {
  1744 + ssgl_gz += childTaskPlan.getMileage();
  1745 + ssgl_gzZ += childTaskPlan.getMileage();
  1746 + ssbc_gz++;
  1747 + ssbc_gzZ++;
  1748 + } else if (childTaskPlan.getDestroyReason().equals("纠纷")) {
  1749 + ssgl_jf += childTaskPlan.getMileage();
  1750 + ssgl_jfZ += childTaskPlan.getMileage();
  1751 + ssbc_jf++;
  1752 + ssbc_jfZ++;
  1753 + } else if (childTaskPlan.getDestroyReason().equals("肇事")) {
  1754 + ssgl_zs += childTaskPlan.getMileage();
  1755 + ssgl_zsZ += childTaskPlan.getMileage();
  1756 + ssbc_zs++;
  1757 + ssbc_zsZ++;
  1758 + } else if (childTaskPlan.getDestroyReason().equals("缺人")) {
  1759 + ssgl_qr += childTaskPlan.getMileage();
  1760 + ssgl_qrZ += childTaskPlan.getMileage();
  1761 + ssbc_qr++;
  1762 + ssbc_qrZ++;
  1763 + } else if (childTaskPlan.getDestroyReason().equals("缺车")) {
  1764 + ssgl_qc += childTaskPlan.getMileage();
  1765 + ssgl_qcZ += childTaskPlan.getMileage();
  1766 + ssbc_qc++;
  1767 + ssbc_qcZ++;
  1768 + } else if (childTaskPlan.getDestroyReason().equals("客稀")) {
  1769 + ssgl_kx += childTaskPlan.getMileage();
  1770 + ssgl_kxZ += childTaskPlan.getMileage();
  1771 + ssbc_kx++;
  1772 + ssbc_kxZ++;
  1773 + } else if (childTaskPlan.getDestroyReason().equals("气候")) {
  1774 + ssgl_qh += childTaskPlan.getMileage();
  1775 + ssgl_qhZ += childTaskPlan.getMileage();
  1776 + ssbc_qh++;
  1777 + ssbc_qhZ++;
  1778 + } else if (childTaskPlan.getDestroyReason().equals("援外")) {
  1779 + ssgl_yw += childTaskPlan.getMileage();
  1780 + ssgl_ywZ += childTaskPlan.getMileage();
  1781 + ssbc_yw++;
  1782 + ssbc_ywZ++;
  1783 + } else {
  1784 + ssgl_other += childTaskPlan.getMileage();
  1785 + ssgl_otherZ += childTaskPlan.getMileage();
  1786 + ssbc_other++;
  1787 + ssbc_otherZ++;
  1788 + }
  1789 + } else {
  1790 + sjgl += childMileage;
  1791 + sjglZ += childMileage;
  1792 + }
  1793 + }
  1794 + }
  1795 +
  1796 + //班次
  1797 + jhbc++;
  1798 + jhbcZ++;
  1799 + String[] fcsj = scheduleRealInfo.getFcsj().split(":");
  1800 + String[] fcsjActual = (scheduleRealInfo.getFcsjActual() == null ? "0:00" : scheduleRealInfo.getFcsjActual()).split(":");
  1801 + if ((Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) > sj_0 && (Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) < sj_1) {
  1802 + jhbc_m++;
  1803 + jhbc_mZ++;
  1804 + } else if ((Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) > sj_2 && (Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) < sj_3) {
  1805 + jhbc_a++;
  1806 + jhbc_aZ++;
  1807 + }
  1808 + if (scheduleRealInfo.getStatus() != -1) {
  1809 + sjbc++;
  1810 + sjbcZ++;
  1811 + if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
  1812 + sjbc_m++;
  1813 + sjbc_mZ++;
  1814 + } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {
  1815 + sjbc_a++;
  1816 + sjbc_aZ++;
  1817 + }
  1818 + }
  1819 + if (scheduleRealInfo.isSflj()) {
  1820 + ljbc++;
  1821 + ljbcZ++;
  1822 + if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
  1823 + ljbc_m++;
  1824 + ljbc_mZ++;
  1825 + } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {
  1826 + ljbc_a++;
  1827 + ljbc_aZ++;
  1828 + }
  1829 + }
  1830 + if (scheduleRealInfo.getBcType().equals("venting")) {
  1831 + fzbc++;
  1832 + fzbcZ++;
  1833 + if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
  1834 + fzbc_m++;
  1835 + fzbc_mZ++;
  1836 + } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {
  1837 + fzbc_a++;
  1838 + fzbc_aZ++;
  1839 + }
  1840 + }
  1841 +
  1842 + if (i < list.size() - 1) {
  1843 + if (!scheduleRealInfo.getXlBm().equals(list.get(i + 1).getXlBm())) {
  1844 + map = new HashMap<String, Object>();
  1845 + map.put("xlName", scheduleRealInfo.getXlName());
  1846 + map.put("jhlc", format.format(jhlc));
  1847 + map.put("sjgl", format.format(sjgl));
  1848 + map.put("ssgl", format.format(ssgl));
  1849 + map.put("ssgl_lz", ssgl_lz == 0 ? 0 : format.format(ssgl_lz));
  1850 + map.put("ssgl_dm", ssgl_dm == 0 ? 0 : format.format(ssgl_dm));
  1851 + map.put("ssgl_gz", ssgl_gz == 0 ? 0 : format.format(ssgl_gz));
  1852 + map.put("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));
  1853 + map.put("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));
  1854 + map.put("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));
  1855 + map.put("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));
  1856 + map.put("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));
  1857 + map.put("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));
  1858 + map.put("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));
  1859 + map.put("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));
  1860 + map.put("ssbc", ssbc);
  1861 + map.put("ssbc_lz", ssbc_lz);
  1862 + map.put("ssbc_dm", ssbc_dm);
  1863 + map.put("ssbc_gz", ssbc_gz);
  1864 + map.put("ssbc_jf", ssbc_jf);
  1865 + map.put("ssbc_zs", ssbc_zs);
  1866 + map.put("ssbc_qr", ssbc_qr);
  1867 + map.put("ssbc_qc", ssbc_qc);
  1868 + map.put("ssbc_kx", ssbc_kx);
  1869 + map.put("ssbc_qh", ssbc_qh);
  1870 + map.put("ssbc_yw", ssbc_yw);
  1871 + map.put("ssbc_other", ssbc_other);
  1872 + map.put("ljgl", ljgl == 0 ? 0 : format.format(ljgl));
  1873 + map.put("jhbc", jhbc);
  1874 + map.put("jhbc_m", jhbc_m);
  1875 + map.put("jhbc_a", jhbc_a);
  1876 + map.put("sjbc", sjbc);
  1877 + map.put("sjbc_m", sjbc_m);
  1878 + map.put("sjbc_a", sjbc_a);
  1879 + map.put("ljbc", ljbc);
  1880 + map.put("ljbc_m", ljbc_m);
  1881 + map.put("ljbc_a", ljbc_a);
  1882 + map.put("fzbc", fzbc);
  1883 + map.put("fzbc_m", fzbc_m);
  1884 + map.put("fzbc_a", fzbc_a);
  1885 + map.put("dtbc", dtbc);
  1886 + map.put("dtbc_m", dtbc_m);
  1887 + map.put("dtbc_a", dtbc_a);
  1888 + map.put("djg", djg);
  1889 + map.put("djg_m", djg_m);
  1890 + map.put("djg_a", djg_a);
  1891 + map.put("djg_time", djg_time);
  1892 + lMap.add(map);
  1893 + jhlc = 0;
  1894 + tempJhlc = 0;
  1895 + childMileage = 0;
  1896 + sjgl = 0f;
  1897 + ssgl = 0f;
  1898 + ssgl_lz = 0f;
  1899 + ssgl_dm = 0f;
  1900 + ssgl_gz = 0f;
  1901 + ssgl_jf = 0f;
  1902 + ssgl_zs = 0f;
  1903 + ssgl_qr = 0f;
  1904 + ssgl_qc = 0f;
  1905 + ssgl_kx = 0f;
  1906 + ssgl_qh = 0f;
  1907 + ssgl_yw = 0f;
  1908 + ssgl_other = 0f;
  1909 + ljgl = 0f;
  1910 + //班次
  1911 + jhbc = 0;
  1912 + jhbc_m = 0;
  1913 + jhbc_a = 0;
  1914 + sjbc = 0;
  1915 + sjbc_m = 0;
  1916 + sjbc_a = 0;
  1917 + ljbc = 0;
  1918 + ljbc_m = 0;
  1919 + ljbc_a = 0;
  1920 + fzbc = 0;
  1921 + fzbc_m = 0;
  1922 + fzbc_a = 0;
  1923 + dtbc = 0;
  1924 + dtbc_m = 0;
  1925 + dtbc_a = 0;
  1926 + djg = 0;
  1927 + djg_m = 0;
  1928 + djg_a = 0;
  1929 + djg_time = 0;
  1930 + }
  1931 + } else {
  1932 + map = new HashMap<String, Object>();
  1933 + map.put("xlName", scheduleRealInfo.getXlName());
  1934 + map.put("jhlc", format.format(jhlc));
  1935 + map.put("sjgl", format.format(sjgl));
  1936 + map.put("ssgl", format.format(ssgl));
  1937 + map.put("ssgl_lz", ssgl_lz == 0 ? 0 : format.format(ssgl_lz));
  1938 + map.put("ssgl_dm", ssgl_dm == 0 ? 0 : format.format(ssgl_dm));
  1939 + map.put("ssgl_gz", ssgl_gz == 0 ? 0 : format.format(ssgl_gz));
  1940 + map.put("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));
  1941 + map.put("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));
  1942 + map.put("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));
  1943 + map.put("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));
  1944 + map.put("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));
  1945 + map.put("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));
  1946 + map.put("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));
  1947 + map.put("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));
  1948 + map.put("ssbc", ssbc);
  1949 + map.put("ssbc_lz", ssbc_lz);
  1950 + map.put("ssbc_dm", ssbc_dm);
  1951 + map.put("ssbc_gz", ssbc_gz);
  1952 + map.put("ssbc_jf", ssbc_jf);
  1953 + map.put("ssbc_zs", ssbc_zs);
  1954 + map.put("ssbc_qr", ssbc_qr);
  1955 + map.put("ssbc_qc", ssbc_qc);
  1956 + map.put("ssbc_kx", ssbc_kx);
  1957 + map.put("ssbc_qh", ssbc_qh);
  1958 + map.put("ssbc_yw", ssbc_yw);
  1959 + map.put("ssbc_other", ssbc_other);
  1960 + map.put("ljgl", ljgl == 0 ? 0 : format.format(ljgl));
  1961 + map.put("jhbc", jhbc);
  1962 + map.put("jhbc_m", jhbc_m);
  1963 + map.put("jhbc_a", jhbc_a);
  1964 + map.put("sjbc", sjbc);
  1965 + map.put("sjbc_m", sjbc_m);
  1966 + map.put("sjbc_a", sjbc_a);
  1967 + map.put("ljbc", ljbc);
  1968 + map.put("ljbc_m", ljbc_m);
  1969 + map.put("ljbc_a", ljbc_a);
  1970 + map.put("fzbc", fzbc);
  1971 + map.put("fzbc_m", fzbc_m);
  1972 + map.put("fzbc_a", fzbc_a);
  1973 + map.put("dtbc", dtbc);
  1974 + map.put("dtbc_m", dtbc_m);
  1975 + map.put("dtbc_a", dtbc_a);
  1976 + map.put("djg", djg);
  1977 + map.put("djg_m", djg_m);
  1978 + map.put("djg_a", djg_a);
  1979 + map.put("djg_time", djg_time);
  1980 + lMap.add(map);
  1981 + jhlc = 0;
  1982 + tempJhlc = 0;
  1983 + childMileage = 0;
  1984 + sjgl = 0f;
  1985 + ssgl = 0f;
  1986 + ssgl_lz = 0f;
  1987 + ssgl_dm = 0f;
  1988 + ssgl_gz = 0f;
  1989 + ssgl_jf = 0f;
  1990 + ssgl_zs = 0f;
  1991 + ssgl_qr = 0f;
  1992 + ssgl_qc = 0f;
  1993 + ssgl_kx = 0f;
  1994 + ssgl_qh = 0f;
  1995 + ssgl_yw = 0f;
  1996 + ssgl_other = 0f;
  1997 + ljgl = 0f;
  1998 + //班次
  1999 + jhbc = 0;
  2000 + jhbc_m = 0;
  2001 + jhbc_a = 0;
  2002 + sjbc = 0;
  2003 + sjbc_m = 0;
  2004 + sjbc_a = 0;
  2005 + ljbc = 0;
  2006 + ljbc_m = 0;
  2007 + ljbc_a = 0;
  2008 + fzbc = 0;
  2009 + fzbc_m = 0;
  2010 + fzbc_a = 0;
  2011 + dtbc = 0;
  2012 + dtbc_m = 0;
  2013 + dtbc_a = 0;
  2014 + djg = 0;
  2015 + djg_m = 0;
  2016 + djg_a = 0;
  2017 + djg_time = 0;
  2018 + }
  2019 + }
  2020 + }
  2021 + map = new HashMap<String, Object>();
  2022 + map.put("xlName", "合计");
  2023 + map.put("jhlc", format.format(jhlcZ));
  2024 + map.put("sjgl", format.format(sjglZ));
  2025 + map.put("ssgl", format.format(ssglZ));
  2026 + map.put("ssgl_lz", ssgl_lzZ == 0 ? 0 : format.format(ssgl_lzZ));
  2027 + map.put("ssgl_dm", ssgl_dmZ == 0 ? 0 : format.format(ssgl_dmZ));
  2028 + map.put("ssgl_gz", ssgl_gzZ == 0 ? 0 : format.format(ssgl_gzZ));
  2029 + map.put("ssgl_jf", ssgl_jfZ == 0 ? 0 : format.format(ssgl_jfZ));
  2030 + map.put("ssgl_zs", ssgl_zsZ == 0 ? 0 : format.format(ssgl_zsZ));
  2031 + map.put("ssgl_qr", ssgl_qrZ == 0 ? 0 : format.format(ssgl_qrZ));
  2032 + map.put("ssgl_qc", ssgl_qcZ == 0 ? 0 : format.format(ssgl_qcZ));
  2033 + map.put("ssgl_kx", ssgl_kxZ == 0 ? 0 : format.format(ssgl_kxZ));
  2034 + map.put("ssgl_qh", ssgl_qhZ == 0 ? 0 : format.format(ssgl_qhZ));
  2035 + map.put("ssgl_yw", ssgl_ywZ == 0 ? 0 : format.format(ssgl_ywZ));
  2036 + map.put("ssgl_other", ssgl_otherZ == 0 ? 0 : format.format(ssgl_otherZ));
  2037 + map.put("ssbc", ssbcZ);
  2038 + map.put("ssbc_lz", ssbc_lzZ);
  2039 + map.put("ssbc_dm", ssbc_lzZ);
  2040 + map.put("ssbc_gz", ssbc_gzZ);
  2041 + map.put("ssbc_jf", ssbc_jfZ);
  2042 + map.put("ssbc_zs", ssbc_zsZ);
  2043 + map.put("ssbc_qr", ssbc_qrZ);
  2044 + map.put("ssbc_qc", ssbc_qcZ);
  2045 + map.put("ssbc_kx", ssbc_qcZ);
  2046 + map.put("ssbc_qh", ssbc_qhZ);
  2047 + map.put("ssbc_yw", ssbc_ywZ);
  2048 + map.put("ssbc_other", ssbc_otherZ);
  2049 + map.put("ljgl", ljglZ == 0 ? 0 : format.format(ljglZ));
  2050 + map.put("jhbc", jhbcZ);
  2051 + map.put("jhbc_m", jhbc_mZ);
  2052 + map.put("jhbc_a", jhbc_aZ);
  2053 + map.put("sjbc", sjbcZ);
  2054 + map.put("sjbc_m", sjbc_mZ);
  2055 + map.put("sjbc_a", sjbc_aZ);
  2056 + map.put("ljbc", ljbcZ);
  2057 + map.put("ljbc_m", ljbc_mZ);
  2058 + map.put("ljbc_a", ljbc_aZ);
  2059 + map.put("fzbc", fzbcZ);
  2060 + map.put("fzbc_m", fzbc_mZ);
  2061 + map.put("fzbc_a", fzbc_aZ);
  2062 + map.put("dtbc", dtbcZ);
  2063 + map.put("dtbc_m", dtbc_mZ);
  2064 + map.put("dtbc_a", dtbc_aZ);
  2065 + map.put("djg", djgZ);
  2066 + map.put("djg_m", djg_mZ);
  2067 + map.put("djg_a", djg_aZ);
  2068 + map.put("djg_time", djg_timeZ);
  2069 + lMap.add(map);
  2070 + /* for (int i = 0; i < lMap.size(); i++) {
  2071 + Map<String, Object> m=lMap.get(i);
  2072 +// m.get(""))
  2073 + jhlc += Double.parseDouble(m.get("jhlc").toString());
  2074 + sjgl += Double.parseDouble(m.get("sjgl").toString());
  2075 + ssgl += Double.parseDouble( m.get("ssgl").toString());
  2076 + ssgl_lz += Double.parseDouble( m.get("ssgl_lz").toString());
  2077 + ssgl_dm += Double.parseDouble(m.get("ssgl_dm").toString());
  2078 + ssgl_gz += Double.parseDouble( m.get("ssgl_gz").toString());
  2079 + ssgl_jf += m.get("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));
  2080 + m.get("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));
  2081 + m.get("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));
  2082 + m.get("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));
  2083 + m.get("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));
  2084 + m.get("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));
  2085 + m.get("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));
  2086 + m.get("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));
  2087 + m.get("ljgl", ljgl == 0 ? 0 : format.format(ljgl));
  2088 + m.get("jhbc", jhbc);
  2089 + m.get("jhbc_m", jhbc_m);
  2090 + m.get("jhbc_a", jhbc_a);
  2091 + m.get("sjbc", sjbc);
  2092 + m.get("sjbc_m", sjbc_m);
  2093 + m.get("sjbc_a", sjbc_a);
  2094 + m.get("ljbc", ljbc);
  2095 + m.get("ljbc_m", ljbc_m);
  2096 + m.get("ljbc_a", ljbc_a);
  2097 + m.get("fzbc", fzbc);
  2098 + m.get("fzbc_m", fzbc_m);
  2099 + m.get("fzbc_a", fzbc_a);
  2100 + m.get("dtbc", dtbc);
  2101 + m.get("dtbc_m", dtbc_m);
  2102 + m.get("dtbc_a", dtbc_a);
  2103 + m.get("djg", djg);
  2104 + m.get("djg_m", djg_m);
  2105 + m.get("djg_a", djg_a);
  2106 + m.get("djg_time", djg_time);
  2107 + }*/
  2108 +
  2109 + if (type != null && type.length() != 0 && type.equals("export")) {
  2110 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  2111 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  2112 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  2113 + Map<String, Object> m = new HashMap<String, Object>();
  2114 + ReportUtils ee = new ReportUtils();
1469 try { 2115 try {
1470 - listI.add(tempList.iterator()); 2116 + listI.add(lMap.iterator());
1471 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; 2117 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
1472 - ee.excelReplace(listI, new Object[]{m}, path + "mould/correctForm.xls",  
1473 - path + "export/修正报表" + sdfSimple.format(sdfMonth.parse(startDate)) + "-" + sdfSimple.format(sdfMonth.parse(endDate)) + ".xls"); 2118 + ee.excelReplace(listI, new Object[]{m}, path + "mould/statisticsDaily_.xls",
  2119 + path + "export/统计日报" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
1474 } catch (Exception e) { 2120 } catch (Exception e) {
1475 // TODO: handle exception 2121 // TODO: handle exception
1476 e.printStackTrace(); 2122 e.printStackTrace();
1477 } 2123 }
1478 - Map<String, Object> map = tempList.get(tempList.size() - 1);  
1479 - System.out.println("tempMap:" + map);  
1480 - }  
1481 -  
1482 - return list;  
1483 - }  
1484 -  
1485 - @Override  
1486 - public List<ScheduleRealInfo> queryListWaybill(String jName, String clZbh,  
1487 - String lpName, String date, String line) {  
1488 - List<ScheduleRealInfo> listSchedule = new ArrayList<ScheduleRealInfo>();  
1489 - List<ScheduleRealInfo> list = null;  
1490 - list = scheduleRealInfoRepository.queryListWaybill(jName, clZbh, lpName, date, line);  
1491 - for (int i = 0; i < list.size(); i++) {  
1492 - ScheduleRealInfo s = list.get(i);  
1493 - s.setAdjustExps(i + 1 + "");  
1494 - String remarks = "";  
1495 - if (s.getRemarks() != null) {  
1496 - remarks += s.getRemarks();  
1497 - }  
1498 -  
1499 - Set<ChildTaskPlan> childTaskPlans = s.getcTasks();  
1500 - if (!childTaskPlans.isEmpty()) {  
1501 - s.setFcsjActual("");  
1502 - s.setZdsjActual("");  
1503 - }  
1504 -  
1505 - if (s.isDestroy()) {  
1506 - s.setFcsjActual("");  
1507 - s.setZdsjActual("");  
1508 - s.setJhlc(0.0);  
1509 - remarks += "(烂班)";  
1510 - s.setRemarks(remarks);  
1511 - }  
1512 - listSchedule.add(s);  
1513 - //计算营运里程,空驶里程  
1514 - if (!childTaskPlans.isEmpty()) {  
1515 - String sqlPc = "select * from bsth_c_s_child_task where schedule=" + s.getId() + " order by start_date ";  
1516 - List<ScheduleRealInfo> lists = jdbcTemplate.query(sqlPc,  
1517 - new RowMapper<ScheduleRealInfo>() {  
1518 - @Override  
1519 - public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {  
1520 - ScheduleRealInfo t = new ScheduleRealInfo();  
1521 - if (rs.getInt("destroy") == 0) {  
1522 - t.setFcsjActual(rs.getString("start_date"));  
1523 - t.setZdsjActual(rs.getString("end_date"));  
1524 - t.setJhlc(rs.getDouble("mileage"));  
1525 - } else {  
1526 - t.setFcsjActual("");  
1527 - t.setZdsjActual("");  
1528 - t.setJhlc(0.0);  
1529 - }  
1530 - t.setQdzName(rs.getString("start_station_name"));  
1531 - t.setZdzName(rs.getString("end_station_name"));  
1532 - t.setRemarks(rs.getString("remarks"));  
1533 - t.setAdjustExps("子");  
1534 - return t;  
1535 - }  
1536 - });  
1537 - for (int j = 0; j < lists.size(); j++) {  
1538 - ScheduleRealInfo t = lists.get(j);  
1539 - listSchedule.add(t);  
1540 - }  
1541 - }  
1542 } 2124 }
1543 2125
1544 - return listSchedule;  
1545 - }  
1546 -  
1547 - @Override  
1548 - public Map<String, Object> removeChildTask(Long taskId) {  
1549 - Map<String, Object> rs = new HashMap<>();  
1550 - ChildTaskPlan chTask = cTaskPlanRepository.findOne(taskId);  
1551 -  
1552 - ScheduleRealInfo sch = dayOfSchedule.get(chTask.getSchedule().getId());  
1553 - try {  
1554 -  
1555 - sch.getcTasks().remove(chTask);  
1556 - scheduleRealInfoRepository.save(sch);  
1557 - rs.put("status", ResponseCode.SUCCESS);  
1558 - } catch (Exception e) {  
1559 - logger.error("", e);  
1560 - rs.put("status", ResponseCode.ERROR);  
1561 - }  
1562 - return rs; 2126 + return lMap;
1563 } 2127 }
1564 - 2128 +
1565 @Override 2129 @Override
1566 - public List<Map<String, Object>> statisticsDaily(String line, String date, 2130 + public List<Map<String, Object>> statisticsDailyTj(String line, String date,String date2,
1567 String xlName, String type) { 2131 String xlName, String type) {
1568 List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); 2132 List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
1569 - if (date.length() == 10)  
1570 - list = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);  
1571 - else if (date.length() == 7)  
1572 - list = scheduleRealInfoRepository.scheduleByDateAndLine3(line, date); 2133 + list = scheduleRealInfoRepository.scheduleByDateAndLineTj(line, date,date2);
1573 2134
1574 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>(); 2135 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
1575 DecimalFormat format = new DecimalFormat("0.00"); 2136 DecimalFormat format = new DecimalFormat("0.00");
@@ -2331,117 +2892,113 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2331,117 +2892,113 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2331 return list; 2892 return list;
2332 } 2893 }
2333 2894
2334 - public List<Map<String, Object>> yesterdayDataList(String line, String date) { 2895 + public List<Map<String, Object>> yesterdayDataList(String line, String date,String gsbm,String fgsbm,String jGh,String nbbm) {
  2896 +// Arith arith=new Arith();
2335 //前一天日期 2897 //前一天日期
2336 // String date = sdfMonth.format(org.apache.commons.lang.time.DateUtils.addDays(new Date(), -1)); 2898 // String date = sdfMonth.format(org.apache.commons.lang.time.DateUtils.addDays(new Date(), -1));
2337 // String date = "2016-09-20"; 2899 // String date = "2016-09-20";
2338 - List<Map<String, Object>> yesterdayDataList = scheduleRealInfoRepository.yesterdayDataList(line, date);  
2339 -// List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date); 2900 + System.out.println("shijian1:"+new Date());
  2901 + List<Map<String, Object>> yesterdayDataList = scheduleRealInfoRepository.yesterdayDataList(line, date,gsbm,fgsbm);
  2902 + System.out.println("shijian2:"+new Date());
  2903 + // List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
  2904 + List<ScheduleRealInfo> lists = scheduleRealInfoRepository.queryListWaybill3(jGh, nbbm, date,gsbm,fgsbm);
  2905 + System.out.println("shijian3:"+new Date());
2340 for (int x = 0; x < yesterdayDataList.size(); x++) { 2906 for (int x = 0; x < yesterdayDataList.size(); x++) {
2341 String jName = yesterdayDataList.get(x).get("jGh").toString(); 2907 String jName = yesterdayDataList.get(x).get("jGh").toString();
2342 String clZbh = yesterdayDataList.get(x).get("clZbh").toString(); 2908 String clZbh = yesterdayDataList.get(x).get("clZbh").toString();
2343 - List<ScheduleRealInfo> lists = scheduleRealInfoRepository.queryListWaybill3(jName, clZbh, date); 2909 +
2344 double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0; 2910 double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0;
2345 - float addMileage = 0l, remMileage = 0l; 2911 + double addMileage = 0, remMileage = 0;
2346 Map<String, Object> map = new HashMap<String, Object>(); 2912 Map<String, Object> map = new HashMap<String, Object>();
2347 boolean fage = true; 2913 boolean fage = true;
  2914 + String company="";
  2915 + String bCompany="";
2348 for (ScheduleRealInfo scheduleRealInfo : lists) { 2916 for (ScheduleRealInfo scheduleRealInfo : lists) {
2349 - if (fage) {  
2350 - //根据线路代码获取公司  
2351 - Line li = lineRepository.findByLineCode(scheduleRealInfo.getXlBm());  
2352 - yesterdayDataList.get(x).put("company", li.getCompany());  
2353 - yesterdayDataList.get(x).put("bCompany", li.getBrancheCompany());  
2354 - fage = false;  
2355 - }  
2356 - if (scheduleRealInfo != null) {  
2357 - //计划里程(主任务过滤掉临加班次),  
2358 - //烂班里程(主任务烂班),  
2359 - //临加里程(主任务临加),  
2360 - //计划班次,烂班班次,增加班次  
2361 - tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();  
2362 - if (scheduleRealInfo.isSflj()) {  
2363 - addMileage += tempJhlc;  
2364 - } else {  
2365 - if (!(scheduleRealInfo.getBcType().equals("in")  
2366 - || scheduleRealInfo.getBcType().equals("out"))) {  
2367 - jhlc += tempJhlc;  
2368 - }  
2369 -  
2370 - if (scheduleRealInfo.getStatus() == -1) {  
2371 - remMileage += tempJhlc;  
2372 - }  
2373 - }  
2374 - Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();  
2375 - //计算营运里程,空驶里程  
2376 - if (childTaskPlans.isEmpty()) {  
2377 - if (scheduleRealInfo.getBcType().equals("in") ||  
2378 - scheduleRealInfo.getBcType().equals("out")) {  
2379 - jcclc += tempJhlc;  
2380 - }  
2381 - //主任务 放空班次属于营运  
2382 -// else if(scheduleRealInfo.getBcType().equals("venting")){  
2383 -// ksgl += tempJhlc;  
2384 -// }  
2385 - else {  
2386 - if (scheduleRealInfo.getStatus() != -1) {  
2387 - yygl += tempJhlc;  
2388 - }  
2389 - }  
2390 - } else {  
2391 - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();  
2392 - while (it.hasNext()) {  
2393 - ChildTaskPlan childTaskPlan = it.next();  
2394 - if (childTaskPlan.getMileageType().equals("empty")) {  
2395 - if (childTaskPlan.isDestroy()) {  
2396 - remMileage += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
2397 - } else {  
2398 - ksgl += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
2399 - }  
2400 - } else {  
2401 - if (childTaskPlan.isDestroy()) {  
2402 - remMileage += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
2403 - } else {  
2404 - yygl += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
2405 - }  
2406 - }  
2407 - }  
2408 - }  
2409 - } 2917 + if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)){
  2918 + if (fage) {
  2919 + //根据线路代码获取公司
  2920 + company=scheduleRealInfo.getGsBm();
  2921 + bCompany=scheduleRealInfo.getFgsBm();
  2922 + fage = false;
  2923 + }
  2924 + if (scheduleRealInfo != null) {
  2925 + //计划里程(主任务过滤掉临加班次),
  2926 + //烂班里程(主任务烂班),
  2927 + //临加里程(主任务临加),
  2928 + //计划班次,烂班班次,增加班次
  2929 + tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  2930 + if (scheduleRealInfo.isSflj()) {
  2931 + if(scheduleRealInfo.getStatus() == -1){
  2932 +// addMileage += tempJhlc;
  2933 + addMileage =Arith.add(addMileage, tempJhlc);
  2934 + }
  2935 + } else {
  2936 + if (!(scheduleRealInfo.getBcType().equals("in")
  2937 + || scheduleRealInfo.getBcType().equals("out"))) {
  2938 +// jhlc += tempJhlc;
  2939 + jhlc =Arith.add(jhlc,tempJhlc);
  2940 + }
  2941 +
  2942 + if (scheduleRealInfo.getStatus() == -1) {
  2943 +// remMileage += tempJhlc;
  2944 + remMileage =Arith.add(remMileage,tempJhlc);
  2945 + }
  2946 + }
  2947 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  2948 + //计算营运里程,空驶里程
  2949 + if (childTaskPlans.isEmpty()) {
  2950 + if (scheduleRealInfo.getBcType().equals("in") ||
  2951 + scheduleRealInfo.getBcType().equals("out")) {
  2952 + if (scheduleRealInfo.getStatus() != -1) {
  2953 +// jcclc += tempJhlc;
  2954 + jcclc=Arith.add(jcclc,tempJhlc);
  2955 + }
  2956 + }
  2957 + //主任务 放空班次属于营运
  2958 + // else if(scheduleRealInfo.getBcType().equals("venting")){
  2959 + // ksgl += tempJhlc;
  2960 + // }
  2961 + else {
  2962 + if (scheduleRealInfo.getStatus() != -1) {
  2963 +// yygl += tempJhlc;
  2964 + yygl=Arith.add(yygl,tempJhlc);
  2965 + }
  2966 + }
  2967 + } else {
  2968 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  2969 + while (it.hasNext()) {
  2970 + ChildTaskPlan childTaskPlan = it.next();
  2971 + if (childTaskPlan.getMileageType().equals("empty")) {
  2972 + if (childTaskPlan.isDestroy()) {
  2973 +// remMileage += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  2974 + remMileage=Arith.add(remMileage,childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage());
  2975 + } else {
  2976 +// ksgl += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  2977 + ksgl += Arith.add(ksgl,childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage());
  2978 + }
  2979 + } else {
  2980 + if (childTaskPlan.isDestroy()) {
  2981 +// remMileage += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  2982 + remMileage=Arith.add(remMileage,childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage());
  2983 +
  2984 + } else {
  2985 +// yygl += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  2986 + yygl=Arith.add(yygl,childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage());
  2987 +
  2988 + }
  2989 + }
  2990 + }
  2991 + }
  2992 + }
  2993 + }
2410 } 2994 }
  2995 + yesterdayDataList.get(x).put("company", company);
  2996 + yesterdayDataList.get(x).put("bCompany", bCompany);
  2997 + Double zgl=Arith.add(yygl,ksgl);
  2998 + yesterdayDataList.get(x).put("totalKilometers", Arith.add(zgl, jcclc));
2411 2999
2412 - yesterdayDataList.get(x).put("totalKilometers", yygl + ksgl + jcclc);  
2413 -  
2414 - }  
2415 -  
2416 - /* for(ScheduleRealInfo scheduleRealInfo:list){  
2417 - if(scheduleRealInfo != null){  
2418 - for(int i=0;i<yesterdayDataList.size();i++){  
2419 - if(scheduleRealInfo.getXlBm().equals(yesterdayDataList.get(i).get("xlBm")) && scheduleRealInfo.getClZbh().equals(yesterdayDataList.get(i).get("clZbh"))  
2420 - && scheduleRealInfo.getjGh().equals(yesterdayDataList.get(i).get("jGh"))){  
2421 - //根据线路代码获取公司  
2422 - Line li = lineRepository.findByLineCode(scheduleRealInfo.getXlBm());  
2423 - yesterdayDataList.get(i).put("company", li.getCompany());  
2424 - yesterdayDataList.get(i).put("bCompany", li.getBrancheCompany());  
2425 - //计算总公里  
2426 - Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();  
2427 - //如果没有子任务,里程就是已执行(Status=2);有子任务的,忽略主任务,子任务的烂班  
2428 - if(childTaskPlans.isEmpty()){  
2429 - if(scheduleRealInfo.getStatus() == 2){  
2430 - yesterdayDataList.get(i).put("totalKilometers", scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc()+(double)(yesterdayDataList.get(i).get("totalKilometers")==null?0.0:yesterdayDataList.get(i).get("totalKilometers")));  
2431 - }  
2432 - }else{  
2433 - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();  
2434 - while(it.hasNext()){  
2435 - ChildTaskPlan childTaskPlan = it.next();  
2436 - if(!childTaskPlan.isDestroy()){  
2437 - yesterdayDataList.get(i).put("totalKilometers", childTaskPlan.getMileage()==null?0.0:childTaskPlan.getMileage()+(double)(yesterdayDataList.get(i).get("totalKilometers")==null?0.0:yesterdayDataList.get(i).get("totalKilometers")));  
2438 - }  
2439 - }  
2440 - }  
2441 - }  
2442 - }  
2443 - }  
2444 - }*/ 3000 + }
  3001 + System.out.println();
2445 //增加顺序号 3002 //增加顺序号
2446 for (int i = 0; i < yesterdayDataList.size(); i++) { 3003 for (int i = 0; i < yesterdayDataList.size(); i++) {
2447 if (i == 0) { 3004 if (i == 0) {
@@ -3116,7 +3673,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3116,7 +3673,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3116 } 3673 }
3117 3674
3118 if (!c.isDestroy()) { 3675 if (!c.isDestroy()) {
3119 - sjlc += c.getMileage() == null ? 0 : c.getMileage(); 3676 + if(c.getMileageType().equals("service")){
  3677 + sjlc += c.getMileage() == null ? 0 : c.getMileage();
  3678 + }
3120 } 3679 }
3121 3680
3122 } 3681 }
@@ -3143,7 +3702,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3143,7 +3702,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3143 ScheduleRealInfo s = scheduleRealInfoRepository.findOne(id); 3702 ScheduleRealInfo s = scheduleRealInfoRepository.findOne(id);
3144 String xlbm = s.getXlBm(); 3703 String xlbm = s.getXlBm();
3145 String fcrq = s.getScheduleDateStr(); 3704 String fcrq = s.getScheduleDateStr();
3146 - 3705 + //保留两位小数
  3706 + DecimalFormat df = new DecimalFormat("#.00");
3147 List<Ylxxb> listYlxxb = ylxxbRepository.queryListYlxxb(s.getClZbh(), fcrq); 3707 List<Ylxxb> listYlxxb = ylxxbRepository.queryListYlxxb(s.getClZbh(), fcrq);
3148 Double jzl = 0.0; 3708 Double jzl = 0.0;
3149 for (int t = 0; t < listYlxxb.size(); t++) { 3709 for (int t = 0; t < listYlxxb.size(); t++) {
@@ -3162,7 +3722,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3162,7 +3722,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3162 yh += y.getYh(); 3722 yh += y.getYh();
3163 3723
3164 } 3724 }
3165 - map.put("jzl", jzl); 3725 + map.put("jzl", df.format(jzl));
3166 map.put("yh", yh); 3726 map.put("yh", yh);
3167 map.put("ccyl", ccyl); 3727 map.put("ccyl", ccyl);
3168 map.put("jcyl", jcyl); 3728 map.put("jcyl", jcyl);
@@ -3590,17 +4150,21 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3590,17 +4150,21 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3590 } 4150 }
3591 4151
3592 ScheduleRealInfo leftSch, rightSch = null; 4152 ScheduleRealInfo leftSch, rightSch = null;
3593 - boolean changeRealTime = true;  
3594 for (int i = 0; i < largeList.size(); i++) { 4153 for (int i = 0; i < largeList.size(); i++) {
3595 leftSch = largeList.get(i); 4154 leftSch = largeList.get(i);
3596 if (i < smallList.size()) { 4155 if (i < smallList.size()) {
3597 rightSch = smallList.get(i); 4156 rightSch = smallList.get(i);
3598 ts.add(rightSch); 4157 ts.add(rightSch);
3599 - } else  
3600 - changeRealTime = false; 4158 + } else{
  4159 + //不对称时多出来的
  4160 + lpChangeByLeft(leftSch, largeList.get(i - 1), type);
  4161 + ts.add(leftSch);
  4162 + cars.add(leftSch.getClZbh());
  4163 + continue;
  4164 + }
3601 4165
3602 //调换路牌 4166 //调换路牌
3603 - lpChange(leftSch, rightSch, type, changeRealTime); 4167 + lpChange(leftSch, rightSch, type);
3604 ts.add(leftSch); 4168 ts.add(leftSch);
3605 4169
3606 cars.add(leftSch.getClZbh()); 4170 cars.add(leftSch.getClZbh());
@@ -3636,19 +4200,38 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3636,19 +4200,38 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3636 } 4200 }
3637 4201
3638 @Override 4202 @Override
3639 - public void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type, boolean changeRealTime) { 4203 + public void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type) {
3640 LpData leftData = new LpData(leftSch); 4204 LpData leftData = new LpData(leftSch);
3641 LpData rightData = new LpData(rightSch); 4205 LpData rightData = new LpData(rightSch);
3642 4206
3643 - leftData.appendTo(rightSch, type, changeRealTime);  
3644 - rightData.appendTo(leftSch, type, changeRealTime); 4207 + leftData.appendTo(rightSch, type);
  4208 + rightData.appendTo(leftSch, type);
  4209 +
  4210 + if(type > 0){
  4211 + //更新车辆和班次映射信息
  4212 + dayOfSchedule.removeNbbm2SchMapp(leftSch, leftData.getNbbm());
  4213 + dayOfSchedule.removeNbbm2SchMapp(rightSch, rightData.getNbbm());
3645 4214
3646 - //更新车辆和班次映射信息  
3647 - dayOfSchedule.removeNbbm2SchMapp(leftSch, leftData.getNbbm());  
3648 - dayOfSchedule.removeNbbm2SchMapp(rightSch, rightData.getNbbm()); 4215 + dayOfSchedule.addNbbm2SchMapp(leftSch, rightData.getNbbm());
  4216 + dayOfSchedule.addNbbm2SchMapp(rightSch, leftData.getNbbm());
  4217 + }
  4218 + }
  4219 +
  4220 + /**
  4221 + * 更换左边班次的路牌,右边不变
  4222 + * @param leftSch
  4223 + * @param rightSch
  4224 + * @param type
  4225 + */
  4226 + public void lpChangeByLeft(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type) {
  4227 + LpData rightData = new LpData(rightSch);
3649 4228
3650 - dayOfSchedule.addNbbm2SchMapp(leftSch, rightData.getNbbm());  
3651 - dayOfSchedule.addNbbm2SchMapp(rightSch, leftData.getNbbm()); 4229 + rightData.appendTo(leftSch, type);
  4230 +
  4231 + if(type > 0){
  4232 + //更新车辆和班次映射信息
  4233 + dayOfSchedule.addNbbm2SchMapp(leftSch, rightData.getNbbm());
  4234 + }
3652 } 4235 }
3653 4236
3654 @Override 4237 @Override
src/main/java/com/bsth/service/schedule/PeopleCarPlanServiceImpl.java
@@ -229,22 +229,22 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -229,22 +229,22 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
229 temp.get(key).add(m); 229 temp.get(key).add(m);
230 } 230 }
231 for(String key : temp.keySet()){ 231 for(String key : temp.keySet()){
232 - Map<Integer, List<Map<String, Object>>> tempList = new HashMap<Integer, List<Map<String,Object>>>();  
233 - List<Integer> keyList = new ArrayList<Integer>(); 232 + Map<Long, List<Map<String, Object>>> tempList = new HashMap<Long, List<Map<String,Object>>>();
  233 + List<Long> keyList = new ArrayList<Long>();
234 for(Map<String, Object> m : temp.get(key)){ 234 for(Map<String, Object> m : temp.get(key)){
235 String lp = m.get("lp").toString(); 235 String lp = m.get("lp").toString();
236 String str = ""; 236 String str = "";
237 for(int i = 0; i < lp.length(); i++){ 237 for(int i = 0; i < lp.length(); i++){
238 str += (int)lp.charAt(i); 238 str += (int)lp.charAt(i);
239 } 239 }
240 - int i = Integer.valueOf(str); 240 + Long i = Long.valueOf(str);
241 if(!tempList.containsKey(i)) 241 if(!tempList.containsKey(i))
242 tempList.put(i, new ArrayList<Map<String, Object>>()); 242 tempList.put(i, new ArrayList<Map<String, Object>>());
243 tempList.get(i).add(m); 243 tempList.get(i).add(m);
244 keyList.add(i); 244 keyList.add(i);
245 } 245 }
246 Collections.sort(keyList); 246 Collections.sort(keyList);
247 - for(Integer i : keyList){ 247 + for(Long i : keyList){
248 for(Map<String, Object> m : tempList.get(i)){ 248 for(Map<String, Object> m : tempList.get(i)){
249 resList.add(m); 249 resList.add(m);
250 } 250 }