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 21 public static final String LOGIN_FAILURE = "/user/loginFailure";
22 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 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 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 14 import org.springframework.web.bind.annotation.RestController;
5 15 import com.bsth.controller.BaseController;
6 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 21 @RestController
9 22 @RequestMapping("dlb")
10 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 50 * @return
51 51 */
52 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 61 System.out.println();
56 62 return list;
57 63 }
... ... @@ -73,8 +79,14 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
73 79 * @return
74 80 */
75 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 90 return list;
79 91 }
80 92  
... ... @@ -107,8 +119,15 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
107 119  
108 120 Direction d;
109 121 map.put("xlbm_like", map.get("xlbm_like").toString().trim());
110   -// try {
111 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 131 if(!(rq=="")){
113 132 //
114 133 // SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -143,6 +162,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
143 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 171 @RequestMapping(value = "/listExport",method = RequestMethod.POST)
148 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 1 package com.bsth.controller.realcontrol;
2 2  
  3 +import com.bsth.entity.sys.Role;
3 4 import com.bsth.entity.sys.SysUser;
4 5 import com.bsth.security.util.SecurityUtils;
  6 +import org.slf4j.Logger;
  7 +import org.slf4j.LoggerFactory;
5 8 import org.springframework.stereotype.Controller;
6 9 import org.springframework.web.bind.annotation.RequestMapping;
7 10 import org.springframework.web.servlet.ModelAndView;
8 11  
  12 +import javax.servlet.http.HttpServletResponse;
  13 +
9 14 /**
10 15 * 线调登入页面转发
11 16 * Created by panzhao on 2017/1/21.
... ... @@ -14,18 +19,36 @@ import org.springframework.web.servlet.ModelAndView;
14 19 @RequestMapping("real_control")
15 20 public class PageForwardingController {
16 21  
  22 + Logger logger = LoggerFactory.getLogger(this.getClass());
  23 +
17 24 @RequestMapping("/v2")
18   - public ModelAndView v2(){
  25 + public ModelAndView v2(HttpServletResponse response){
19 26 ModelAndView mv = new ModelAndView();
20 27 SysUser user = SecurityUtils.getCurrentUser();
21 28  
22 29 //班次管理员
23 30 if(user.getUserName().equals("bcgly")){
24 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 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 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 45 * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id
... ... @@ -279,13 +284,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
279 284 return scheduleRealInfoService.queryUserInfoPx(line, date,state,type);
280 285 }
281 286  
282   - @RequestMapping(value = "/exportWaybill")
  287 + @RequestMapping(value = "/exportWaybill",method = RequestMethod.GET)
283 288 public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName, @RequestParam String clZbh,
284 289 @RequestParam String lpName,@RequestParam String date,@RequestParam String line) {
285 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 294 public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh
290 295 ,@RequestParam String date,@RequestParam String line) {
291 296 return scheduleRealInfoService.exportWaybillQp( clZbh, date,line);
... ... @@ -308,13 +313,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
308 313 return scheduleRealInfoService.findLine(line);
309 314 }
310 315  
311   - @RequestMapping(value="/findKMBC")
  316 + @RequestMapping(value="/findKMBC",method = RequestMethod.GET)
312 317 public Map<String,Object> findKMBC(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName
313 318 ,@RequestParam String date,@RequestParam String line){
314 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 323 public Map<String,Object> findKMBCQp(@RequestParam String clZbh
319 324 ,@RequestParam String date,@RequestParam String line){
320 325 return scheduleRealInfoService.findKMBCQp(clZbh,date,line);
... ... @@ -344,13 +349,13 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
344 349 * @param lpName 路牌
345 350 * @return
346 351 */
347   - @RequestMapping(value="/queryListWaybill")
  352 + @RequestMapping(value="/queryListWaybill",method = RequestMethod.GET)
348 353 public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName
349 354 ,@RequestParam String date,@RequestParam String line){
350 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 359 public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh,
355 360 @RequestParam String date,@RequestParam String line){
356 361 return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line);
... ... @@ -362,6 +367,12 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
362 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 376 @RequestMapping(value="/MapById",method = RequestMethod.GET)
366 377 public Map<String, Object> MapById(@RequestParam("id") Long id){
367 378 return scheduleRealInfoService.MapById(id);
... ... @@ -457,7 +468,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
457 468 return scheduleRealInfoService.scheduleDailyExport(map);
458 469 }
459 470  
460   - @RequestMapping(value = "exportWaybillMore", method = RequestMethod.POST)
  471 + @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET)
461 472 public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){
462 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 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 27 if (type == 0) {
28 28 //只换人
... ... @@ -33,11 +33,11 @@ public class LpData {
33 33 } else if (type == 1) {
34 34 //只换车
35 35 sch.setClZbh(this.nbbm);
36   -
37   - //换实际时间
  36 + changeRealTime(sch);
  37 + /*//换实际时间
38 38 if(changeRealTime){
39 39 changeRealTime(sch);
40   - }
  40 + }*/
41 41  
42 42 } else if (type == 2) {
43 43 //换人并换车
... ... @@ -48,9 +48,9 @@ public class LpData {
48 48 sch.setClZbh(this.nbbm);
49 49  
50 50 //换实际时间
51   - if(changeRealTime){
  51 + //if(changeRealTime){
52 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 46  
47 47 Logger logger = LoggerFactory.getLogger(this.getClass());
48 48  
49   - //按线路分组的 “计划” 排班数据
  49 + //按线路分组的 “原始计划” 排班数据
50 50 public static Map<String, List<SchedulePlanInfo>> schedulePlanMap;
51 51  
52 52 // 按车辆分组的班次数据
... ... @@ -378,9 +378,11 @@ public class DayOfSchedule implements CommandLineRunner {
378 378 sch.setZdsj(fmtHHmm.print(fmtHHmm.parseMillis(sch.getFcsj()) + (sch.getBcsj() * 60 * 1000)));
379 379 sch.setLate(false);
380 380 }
  381 +
  382 + sch.setJhlcOrig(sch.getJhlc());
381 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 387 } catch (Exception e) {
386 388 logger.error("", e);
... ... @@ -492,6 +494,9 @@ public class DayOfSchedule implements CommandLineRunner {
492 494 if (config != null)
493 495 outConfig = config.getOutConfig();
494 496  
  497 + //限定出站既出场的停车场
  498 + String park = config.getTwinsPark();
  499 + boolean limitPark = StringUtils.isNotEmpty(park);
495 500 boolean flag = false;
496 501 ScheduleRealInfo next = null;
497 502 for (ScheduleRealInfo temp : list) {
... ... @@ -504,7 +509,8 @@ public class DayOfSchedule implements CommandLineRunner {
504 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 514 continue;
509 515  
510 516 if (flag) {
... ... @@ -527,6 +533,9 @@ public class DayOfSchedule implements CommandLineRunner {
527 533 if (config != null)
528 534 outConfig = config.getOutConfig();
529 535  
  536 + //限定出站既出场的停车场
  537 + String park = config.getTwinsPark();
  538 + boolean limitPark = StringUtils.isNotEmpty(park);
530 539 boolean flag = false;
531 540 ScheduleRealInfo next = null;
532 541 for (ScheduleRealInfo temp : list) {
... ... @@ -539,7 +548,8 @@ public class DayOfSchedule implements CommandLineRunner {
539 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 553 continue;
544 554  
545 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 30 private Double jzlc=0.0;
31 31 private Double czyl=0.0;
32 32 private Double jzyl=0.0;
33   - private Double jzl;
  33 + private Double jzl=0.0;
34 34 private int sfkt;
35 35 private String jhsj;
36 36 private Double yh=0.0;
... ...
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
... ... @@ -47,6 +47,9 @@ public class LineConfig {
47 47 /** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 2:出站即出场 */
48 48 private int outConfig;
49 49  
  50 + /** 出站既出场 对应的停车场 */
  51 + private String twinsPark;
  52 +
50 53 /** 短语模板 , 号分隔多个 */
51 54 private String phraseTemps;
52 55  
... ... @@ -208,4 +211,12 @@ public class LineConfig {
208 211 public void setDownOutDiff(int downOutDiff) {
209 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 88 /** 计划里程 */
89 89 private Double jhlc;
90 90  
91   - /** 实际里程 */
  91 + /** 原始计划里程 (原计调的数据) */
  92 + private Double jhlcOrig;
  93 +
  94 + /** 实际里程 这个字段被废弃*/
92 95 private Double realMileage;
93 96  
94 97 /** 实际里程 */
... ... @@ -460,6 +463,9 @@ public class ScheduleRealInfo {
460 463  
461 464 public void setJhlc(Double jhlc) {
462 465 this.jhlc = jhlc;
  466 + //临加班次 计划公里 和 实际计划公里一样
  467 + if(this.isSflj())
  468 + this.setJhlcOrig(this.getJhlc());
463 469 }
464 470  
465 471 public String getSjlc() {
... ... @@ -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 637 public String getQdzArrDateJH() {
627 638 return qdzArrDatejh;
628 639 }
... ... @@ -757,6 +768,7 @@ public class ScheduleRealInfo {
757 768 }
758 769  
759 770 public void destroy(){
  771 + this.jhlc = 0.0;
760 772 this.status = -1;
761 773 }
762 774  
... ... @@ -845,4 +857,22 @@ public class ScheduleRealInfo {
845 857 public void setRealMileage(Double realMileage) {
846 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 1 package com.bsth.entity.schedule;
2 2  
  3 +import com.bsth.entity.CarPark;
3 4 import com.bsth.entity.Cars;
4 5 import com.bsth.entity.Line;
5 6 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
... ... @@ -47,9 +48,16 @@ public class CarConfigInfo extends BEntity implements Serializable {
47 48 private Date qyrq;
48 49 /** 终止日期 */
49 50 private Date zzrq;
  51 +
  52 +
50 53 @Column(nullable = false)
51 54 /** 停车点(TODO:这个不知道是否要关联)*/
52 55 private String tcd;
  56 +
  57 + /** 停车场关联(出场,进场班次会关联停车场) */
  58 + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
  59 + private CarPark tcc;
  60 +
53 61 /** 受否切换 0或者1(TODO:不懂,貌似喝历史配车有关) */
54 62 @Column(nullable = false)
55 63 private int isSwitch;
... ... @@ -248,4 +256,12 @@ public class CarConfigInfo extends BEntity implements Serializable {
248 256 public void setDownInSj(Double downInSj) {
249 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 160 Boolean isFb,
161 161 CarConfigInfo carConfigInfo,
162 162 List<EmployeeConfigInfo> employeeConfigInfoList,
163   - SchedulePlan schedulePlan) {
  163 + SchedulePlan schedulePlan,
  164 + boolean isFirstBc, // 是否第一个班次
  165 + boolean isLastBc // 是否最后一个班次
  166 + ) {
164 167  
165 168 // TODO:关联的公司名称
166 169 // TODO:关联的公司编码
... ... @@ -266,6 +269,47 @@ public class SchedulePlanInfo {
266 269 // 使用的时刻表名字
267 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 71 @NotNull
72 72 private Integer ryStart;
73 73  
74   - /** 翻班格式(TODO:这个用在车子上的,暂时不管)*/
  74 + /** 翻班格式(类似格式:1110011)*/
75 75 private String fbgs;
76 76  
77 77 public Long getId() {
... ...
src/main/java/com/bsth/entity/search/PredicatesBuilder.java
... ... @@ -69,6 +69,11 @@ public class PredicatesBuilder {
69 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 77 public static Predicate gt(CriteriaBuilder cb,Path<Number> expression, Object object){
73 78 try {
74 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 27 isf, //假 isFalse,boolean
28 28 ist, //真 isTrue,boolean
29 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 16 /**
17 17 * 可调度的线路 , 分隔多个
18 18 */
  19 + @Column(length = 4000)
19 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 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 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 22 @Override
... ...
src/main/java/com/bsth/filter/ResourceFilter.java
... ... @@ -42,7 +42,6 @@ public class ResourceFilter extends BaseFilter {
42 42  
43 43 if (f.exists() && f.isFile()) {
44 44 request.getRequestDispatcher("/?initFragment=" + joinParam(request)).forward(request, response);
45   - ;
46 45 } else
47 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 12  
13 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 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 15 public interface CylRepository extends BaseRepository<Cyl, Integer>{
16 16 @Transactional
17 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 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 7 import org.springframework.stereotype.Repository;
  8 +import org.springframework.transaction.annotation.Transactional;
  9 +
4 10 import com.bsth.entity.oil.Dlb;
  11 +import com.bsth.entity.oil.Ylb;
5 12 import com.bsth.repository.BaseRepository;
6 13  
7 14 @Repository
8 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 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 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 36 @Transactional
31 37 @Modifying
32 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 23 @Modifying
24 24 @Query(value="SELECT a.* FROM bsth_c_ylb a where to_days(?1)-to_days(a.rq)=1"
25 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 31 * 当天YLB信息
... ... @@ -33,8 +34,10 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
33 34 */
34 35 @Transactional
35 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 43 @Transactional
... ... @@ -48,6 +51,41 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
48 51 */
49 52 @Transactional
50 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 19 */
20 20 @Transactional
21 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 25 @Transactional
26 26 @Modifying
... ...
src/main/java/com/bsth/repository/realcontrol/ChildTaskPlanRepository.java
1 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 5 import org.springframework.data.jpa.domain.Specification;
6 6 import org.springframework.data.jpa.repository.EntityGraph;
7 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 11 @Repository
13 12 public interface ChildTaskPlanRepository extends BaseRepository<ChildTaskPlan, Long>{
... ... @@ -15,4 +14,8 @@ public interface ChildTaskPlanRepository extends BaseRepository&lt;ChildTaskPlan, L
15 14 @EntityGraph(value = "childTaskPlan_schedule", type = EntityGraph.EntityGraphType.FETCH)
16 15 @Override
17 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 65 int countByDate(String date);
66 66  
67 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 69 List<ScheduleRealInfo> findByDate(String dateStr);
70 70  
71 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 73 List<ScheduleRealInfo> findByDate2(String line,String date,String clzbh);
74 74  
75 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 86 + " and clZbh like %?5% order by s.fcsj")
87 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 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 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 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 107 List<ScheduleRealInfo> scheduleDaily(String line,String date);
103 108  
104 109 @Query(value = "select count(*) from ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2")
105 110 int countByLineCodeAndDate(String xlBm, String schDate);
106 111  
107 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 114 List<ScheduleRealInfo> findByLineCodeAndDate(String xlBm, String schDate);
110 115  
111 116 @Modifying
... ... @@ -127,8 +132,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
127 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 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 142 @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir")
134 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 49 "where info.xl = ?1 and " +
50 50 "info.schedule_date = ?2 " +
51 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 53 List<Object[]> findGroupInfo(Integer xlid, Date scheduleDate);
54 54  
55 55 @Modifying
... ...
src/main/java/com/bsth/repository/sys/DutyEmployeeRepository.java
... ... @@ -13,6 +13,7 @@ import java.util.List;
13 13 @Repository
14 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 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 36 public void configure(WebSecurity web) throws Exception {
37 37 // 白名单
38 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 42 @Override
... ...
src/main/java/com/bsth/service/forms/impl/CommonServiceImpl.java
... ... @@ -101,7 +101,7 @@ public class CommonServiceImpl implements CommonService{
101 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 106 DecimalFormat format = new DecimalFormat("0.00");
107 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 2  
3 3 import java.sql.ResultSet;
4 4 import java.sql.SQLException;
  5 +import java.text.DecimalFormat;
5 6 import java.text.NumberFormat;
6 7 import java.text.ParseException;
7 8 import java.text.SimpleDateFormat;
... ... @@ -23,6 +24,7 @@ import com.bsth.entity.mcy_forms.Singledata;
23 24 import com.bsth.entity.mcy_forms.Turnoutrate;
24 25 import com.bsth.entity.mcy_forms.Vehicleloading;
25 26 import com.bsth.entity.mcy_forms.Waybillday;
  27 +import com.bsth.data.BasicData;
26 28 import com.bsth.entity.mcy_forms.Allline;
27 29 import com.bsth.entity.mcy_forms.Changetochange;
28 30 import com.bsth.entity.mcy_forms.Daily;
... ... @@ -47,33 +49,33 @@ public class FormsServiceImpl implements FormsService {
47 49 @Override
48 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 71 List<Waybillday> list = jdbcTemplate.query(sql, new RowMapper<Waybillday>() {
70 72 @Override
71 73 public Waybillday mapRow(ResultSet arg0, int arg1) throws SQLException {
72 74 Waybillday wbd = new Waybillday();
73 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 79 wbd.setRq(arg0.getString("schedule_date"));
78 80 wbd.setJgh(arg0.getString("j_gh"));
79 81 return wbd;
... ... @@ -193,7 +195,15 @@ public class FormsServiceImpl implements FormsService {
193 195 // 班次车辆人员日统计
194 196 @Override
195 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 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 208 + " FROM bsth_c_s_sp_info_real r "
199 209 + " where 1=1 ";
... ... @@ -211,20 +221,18 @@ public class FormsServiceImpl implements FormsService {
211 221 sql+=" and r.fgs_bm='"+map.get("fgsdmShif").toString()+"'";
212 222 }
213 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 226 List<Shifday> list = jdbcTemplate.query(sql, new RowMapper<Shifday>() {
217 227  
218 228 @Override
219 229 public Shifday mapRow(ResultSet arg0, int arg1) throws SQLException {
220 230 Shifday shifday = new Shifday();
  231 + shifday.setRq(arg0.getString("schedule_date"));
221 232 shifday.setjName(arg0.getString("j_name").toString());
222 233 shifday.setsName(arg0.getString("s_name") == null ? "" : arg0.getString("s_name").toString());
223   - shifday.setLpName(arg0.getString("r.lp_name").toString());
224 234 shifday.setCarPlate(arg0.getString("cl_zbh").toString());
225 235 shifday.setJgh(arg0.getString("j_gh"));
226   - shifday.setZbh(arg0.getString("cl_zbh"));
227   - shifday.setRq(arg0.getString("schedule_date"));
228 236 return shifday;
229 237 }
230 238  
... ... @@ -335,33 +343,28 @@ public class FormsServiceImpl implements FormsService {
335 343 String rq3 = sdf1.format(d1);
336 344  
337 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 346 startDate = map.get("startDate").toString();
357 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 361 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
359 362 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
360 363 @Override
361 364 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
362 365 Singledata sin = new Singledata();
363 366 sin.setrQ(rq);
364   - sin.setgS(arg0.getString("gs_name"));
  367 + sin.setgS(arg0.getString("gs_bm"));
365 368 sin.setxL(arg0.getString("xl_name"));
366 369 sin.setClzbh(arg0.getString("cl_zbh"));
367 370 sin.setJsy(arg0.getString("j_gh"));
... ... @@ -374,8 +377,13 @@ public class FormsServiceImpl implements FormsService {
374 377 return sin;
375 378 }
376 379 });
  380 + DecimalFormat df = new DecimalFormat("0.00");
377 381 for(int i=0;i<list.size();i++){
  382 +
378 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 387 Map<String, Object> maps = new HashMap<>();
380 388 maps = commonService.findKMBC1(si.getjName(),si.getClzbh(), startDate,
381 389 endDate);
... ... @@ -712,22 +720,20 @@ public class FormsServiceImpl implements FormsService {
712 720  
713 721 @Override
714 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 737 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() {
732 738 @Override
733 739 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException {
... ... @@ -736,7 +742,7 @@ public class FormsServiceImpl implements FormsService {
736 742 daily.setZbh(arg0.getString("cl_zbh"));
737 743 daily.setJgh(arg0.getString("j_gh"));
738 744 daily.setjName(arg0.getString("j_name"));
739   - daily.setYh(arg0.getString("YH"));
  745 + daily.setYh(arg0.getString("yh"));
740 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 1345 Collections.sort(keyMap1.get(key), new Comparator<Map<String, Object>>() {
1346 1346  
1347 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 1350 String lp1 = o1.get("lp").toString();
1351 1351 String lp2 = o2.get("lp").toString();
1352 1352 String str1 = "";
... ... @@ -1358,8 +1358,8 @@ public class BusIntervalServiceImpl implements BusIntervalService {
1358 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 1365 return a.compareTo(b);
... ...
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
... ... @@ -15,6 +15,7 @@ import com.bsth.service.TrafficManageService;
15 15 import com.bsth.util.TimeUtils;
16 16 import com.bsth.util.db.DBUtils_MS;
17 17 import com.bsth.webService.trafficManage.geotool.services.InternalPortType;
  18 +import com.bsth.webService.trafficManage.geotool.services.Internal;
18 19 import com.bsth.webService.trafficManage.org.tempuri.WebServiceLocator;
19 20 import com.bsth.webService.trafficManage.org.tempuri.WebServiceSoap;
20 21 import org.apache.commons.lang.time.DateUtils;
... ... @@ -25,10 +26,7 @@ import org.springframework.data.domain.Sort;
25 26 import org.springframework.data.domain.Sort.Direction;
26 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 30 import java.sql.Connection;
33 31 import java.sql.PreparedStatement;
34 32 import java.sql.ResultSet;
... ... @@ -188,6 +186,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
188 186 sBuffer.append("</XLs>");
189 187 System.out.println(sBuffer.toString());
190 188 if(sBuffer.indexOf("<XL>") != -1){
  189 + portType = new Internal().getInternalHttpSoap11Endpoint();
191 190 String portResult = portType.setXL(userNameXl, passwordXl, sBuffer.toString());
192 191 String portArray[] = portResult.split("\n");
193 192 if(portArray.length >= 4){
... ... @@ -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 407 * @return 上传成功标识
391 408 */
... ... @@ -890,7 +907,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
890 907 int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
891 908  
892 909 System.out.println("zzz:"+nFreeMemory + "M/" + nTotalMemory +"M(free/total)");
893   -
  910 + portType = new Internal().getInternalHttpSoap11Endpoint();
894 911 byte[] res = portType.downloadAllDataFile("down_pdgj", "down_pdgj123");
895 912 String filePath = "E:\\ygc";
896 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 1 package com.bsth.service.oil;
2 2  
  3 +import java.util.Map;
  4 +
3 5 import com.bsth.entity.oil.Dlb;
4 6 import com.bsth.service.BaseService;
5 7  
6 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 7 import com.bsth.service.BaseService;
8 8  
9 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 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 16 Map<String, Object> checkYl(Map<String, Object> map);
17 17  
  18 + Map<String, Object> sumYlb(Map<String, Object> map);
  19 +
18 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 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 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 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 41 import com.bsth.service.impl.BaseServiceImpl;
9 42 import com.bsth.service.oil.DlbService;
  43 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
10 44  
11 45 @Service
12 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 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 27 import com.bsth.common.ResponseCode;
  28 +import com.bsth.data.BasicData;
  29 +import com.bsth.entity.Cars;
4 30 import com.bsth.entity.oil.Cyl;
5 31 import com.bsth.entity.oil.Ylb;
6 32 import com.bsth.entity.oil.Ylxxb;
7 33 import com.bsth.entity.search.CustomerSpecs;
  34 +import com.bsth.repository.CarsRepository;
8 35 import com.bsth.repository.oil.CylRepository;
9 36 import com.bsth.repository.oil.YlbRepository;
10 37 import com.bsth.repository.oil.YlxxbRepository;
11 38 import com.bsth.service.impl.BaseServiceImpl;
12 39 import com.bsth.service.oil.YlbService;
13 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 45 @Service
32 46 public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbService{
33 47 @Autowired
34 48 YlbRepository repository;
35   -
  49 +
36 50 @Autowired
37 51 YlxxbRepository ylxxbRepository;
38   -
  52 +
39 53 @Autowired
40 54 CylRepository cylRepository;
41   -
  55 +
  56 + @Autowired
  57 + CarsRepository carsRepository;
  58 +
42 59 @Autowired
43 60 ScheduleRealInfoService scheduleRealInfoService;
44   -
  61 +
45 62 @Autowired
46 63 JdbcTemplate jdbcTemplate;
47   -
  64 +
48 65 Logger logger = LoggerFactory.getLogger(this.getClass());
49   -
50   -
51   -
  66 +
  67 +
  68 +
52 69 /**
53 70 * 获取进存油信息
54 71 * @Transactional 回滚事物
55 72 */
56   - @Transactional
  73 + @Transactional
57 74 @Override
58   - public String obtainDsq() {
  75 + public String obtainDsq() throws Exception{
59 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 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 189 return result;
147 190 }
148   -
  191 +
149 192 /**
150 193 * 获取进存油信息
151 194 * @Transactional 回滚事物
152 195 */
153   - @Transactional
  196 + @Transactional
154 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 269 t.setCzyl(ylb.getJzyl());
  270 + fage = false;
207 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 339 if(addList.size()>0){
248 340 new BatchSaveUtils<Ylb>().saveList(addList, Ylb.class);
249 341 }
250   -
  342 +
251 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 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 351 newMap.put("status", ResponseCode.ERROR);
259   - }*/
  352 + throw e;
  353 + }
  354 +
260 355 return newMap;
261 356 }
262   -
263   -
  357 +
  358 +
264 359 /**
265 360 * 进场等于出场
266 361 */
267   - @Transactional
  362 + @Transactional
268 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 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 384 Map<String, Object> newMap=new HashMap<String,Object>();
272 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 386 try {
  387 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  388 +
277 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 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 424 map.remove("nbbm_eq");
308 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 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 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 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 464 cyl.setCyl(t.getJzyl());
350   - cyl.setGsdm(t.getSsgsdm());
351 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 489 return map2;
368 490 }
369   -
  491 +
370 492 /**
371 493 * 拆分
372 494 */
373   - @Transactional
  495 + @Transactional
374 496 @Override
375 497 public Map<String, Object> sort(Map<String, Object> map) {
376 498 // TODO Auto-generated method stub
377 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 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 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 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 594 cyl.setCyl(t.getJzyl());
433 595 cyl.setUpdatetime(t.getRq());
434   - fage=true;
  596 + fage = true;
435 597 break;
436 598 }
437 599 }
438   - if(fage){
  600 + if (fage) {
439 601 cylRepository.save(cyl);
440   - }else{
441   - cyl=new Cyl();
  602 + } else {
  603 + cyl = new Cyl();
442 604 cyl.setNbbm(t.getNbbm());
443 605 cyl.setCyl(t.getJzyl());
444 606 cyl.setGsdm(t.getSsgsdm());
445 607 cyl.setUpdatetime(t.getRq());
446 608 cylRepository.save(cyl);
447 609 }
448   -
  610 +
449 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 617 return newMap;
456 618 }
... ... @@ -464,14 +626,33 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
464 626 @Override
465 627 public Map<String, Object> checkYl(Map<String, Object> map) {
466 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 633 // TODO Auto-generated method stub
469 634 try{
470 635 //获取车辆存油信息
471 636 List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
472 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 656 for (int i = 0; i < ylxxbList.size(); i++) {
476 657 Boolean fage=true;
477 658 Ylxxb y1=ylxxbList.get(i);
... ... @@ -482,7 +663,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
482 663 break;
483 664 }
484 665 }
485   -
  666 +
486 667 if(fage){
487 668 Ylb t=new Ylb();
488 669 t.setNbbm(y1.getNbbm());
... ... @@ -492,14 +673,15 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
492 673 t.setSsgsdm(y1.getGsdm());
493 674 t.setXlbm(xlbm);
494 675 repository.save(t);
495   -
  676 +
496 677 //设置存油量
497 678 Cyl cyl=null;
498 679 boolean status=false;
499 680 for(int z=0;z<cylList.size();z++){
500 681 cyl=cylList.get(z);
501 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 685 cyl.setUpdatetime(t.getRq());
504 686 status=true;
505 687 break;
... ... @@ -515,16 +697,17 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
515 697 cyl.setUpdatetime(t.getRq());
516 698 cylRepository.save(cyl);
517 699 }
518   -
519   -
  700 +
  701 +
520 702 }
521 703 }
522 704 newMap.put("status", ResponseCode.SUCCESS);
523 705 }catch(Exception e){
524 706 newMap.put("status", ResponseCode.ERROR);
525 707 logger.error("save erro.", e);
  708 + throw e;
526 709 }
527   -
  710 +
528 711 return newMap;
529 712 }
530 713  
... ... @@ -540,28 +723,128 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
540 723 " select x.nbbm,max(x.rq) as rq,max(x.jcsx) as jcsx from "
541 724 + "(select nbbm,rq,max(jcsx) as jcsx from bsth_c_ylb where rq between '"
542 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 727 + " left join (select nbbm,rq,jzyl,jcsx FROM bsth_c_ylb "
545 728 + " where rq between '"
546 729 + date2 +"' and '" + date+"' "+lineStr
547 730 + ") a "
548 731 + " on a.nbbm =b.nbbm and a.jcsx=b.jcsx and a.rq=b.rq "
549 732 + " where a.nbbm is not null order by a.nbbm";
550   -
  733 +
551 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 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 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 112  
113 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 117 //List<Object> scheduleDaily(String line,String date);
116 118  
117 119 int countByLineCodeAndDate(String xlBm, String schDate);
... ... @@ -126,7 +128,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
126 128 List<ScheduleRealInfo> realScheduleList(String line,String date);
127 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 133 List<Map<String,Object>> yesterdayDataList(String line);
132 134  
... ... @@ -156,7 +158,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
156 158  
157 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 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 9 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
10 10 import com.bsth.service.impl.BaseServiceImpl;
11 11 import com.bsth.service.realcontrol.ChildTaskPlanService;
  12 +import org.apache.commons.lang3.StringUtils;
12 13 import org.springframework.beans.factory.annotation.Autowired;
13 14 import org.springframework.jdbc.core.JdbcTemplate;
14 15 import org.springframework.stereotype.Service;
... ... @@ -45,8 +46,11 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
45 46 //保存起终点名称
46 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 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 179 schedule.setBcType(bcType);
180 180 }
181 181  
  182 + //重新计算是否误点
  183 + schedule.reCalcLate();
  184 +
182 185 // 持久化到数据库
183 186 dayOfSchedule.save(schedule);
184 187  
... ... @@ -338,7 +341,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
338 341 t.setLate(false);
339 342 t.setDfsj(t.getFcsj());
340 343 t.setZdsjT(sdfyyyyMMddHHmm.parse(schDate + t.getZdsj()).getTime());
341   -
  344 + t.setJhlcOrig(t.getJhlc());
342 345  
343 346 //班次历时
344 347 t.setBcsj(DateUtils.calcHHmmDiff(t.getFcsj(), t.getZdsj()) / 1000 / 60);
... ... @@ -391,14 +394,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
391 394 return rs;
392 395 }
393 396  
394   - dayOfSchedule.delete(sch);
395   - //ScheduleRealInfo sch = dayOfSchedule.delete(id);
396 397 //数据库删除
397 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 407 return rs;
404 408 }
... ... @@ -853,6 +857,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
853 857 rs.put("msg", "未烂班,无法撤销!");
854 858 } else {
855 859 sch.setStatus(0);
  860 + sch.setRemarks("");//清空备注
  861 + sch.setJhlc(sch.getJhlcOrig());
856 862 rs.put("status", ResponseCode.SUCCESS);
857 863 rs.put("t", sch);
858 864  
... ... @@ -1057,9 +1063,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1057 1063  
1058 1064 //修改班次里程
1059 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 1106 schedule = dayOfSchedule.get(jsonObj.getLong("id"));
1098 1107 //设置待发时间
1099 1108 schedule.setDfsjAll(dfsj);
  1109 + //重新计算是否误点
  1110 + schedule.reCalcLate();
1100 1111  
1101 1112 dayOfSchedule.save(schedule);
1102 1113 }
... ... @@ -1215,7 +1226,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1215 1226  
1216 1227 @Override
1217 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 1231 DecimalFormat format = new DecimalFormat("0.00");
1221 1232 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
... ... @@ -1290,7 +1301,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1290 1301 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName);
1291 1302 int jhbc = 0, cjbc = 0, ljbc = 0;
1292 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 1305 Map<String, Object> map = new HashMap<String, Object>();
1295 1306 for (ScheduleRealInfo scheduleRealInfo : list) {
1296 1307 if (scheduleRealInfo != null) {
... ... @@ -1301,18 +1312,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1301 1312 tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
1302 1313 if (scheduleRealInfo.isSflj()) {
1303 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 1323 } else {
1306 1324 if (!(scheduleRealInfo.getBcType().equals("in")
1307 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 1335 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
1318 1336 //计算营运里程,空驶里程
... ... @@ -1358,15 +1376,17 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1358 1376 map.put("jhlc", format.format(jhlc));
1359 1377 map.put("remMileage", format.format(remMileage));
1360 1378 map.put("addMileage", format.format(addMileage));
1361   - map.put("yygl", format.format(yygl));
  1379 + map.put("yygl", format.format(yygl+addMileageYy));
1362 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 1383 map.put("jhbc", jhbc);
1365 1384 map.put("cjbc", cjbc);
1366 1385 map.put("ljbc", ljbc);
1367 1386 map.put("sjbc", jhbc - cjbc + ljbc);
1368 1387 map.put("jcclc", jcclc);
1369 1388 map.put("zkslc", format.format(ksgl + jcclc));
  1389 +// map.put("zkslc", format.format(ksgl + jcclc+addMileageJc));
1370 1390 return map;
1371 1391 }
1372 1392  
... ... @@ -1436,140 +1456,681 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1436 1456 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
1437 1457 Map<String, Object> m = new HashMap<String, Object>();
1438 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 2115 try {
1470   - listI.add(tempList.iterator());
  2116 + listI.add(lMap.iterator());
1471 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 2120 } catch (Exception e) {
1475 2121 // TODO: handle exception
1476 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 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 2131 String xlName, String type) {
1568 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 2135 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
1575 2136 DecimalFormat format = new DecimalFormat("0.00");
... ... @@ -2331,117 +2892,113 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2331 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 2898 // String date = sdfMonth.format(org.apache.commons.lang.time.DateUtils.addDays(new Date(), -1));
2337 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 2906 for (int x = 0; x < yesterdayDataList.size(); x++) {
2341 2907 String jName = yesterdayDataList.get(x).get("jGh").toString();
2342 2908 String clZbh = yesterdayDataList.get(x).get("clZbh").toString();
2343   - List<ScheduleRealInfo> lists = scheduleRealInfoRepository.queryListWaybill3(jName, clZbh, date);
  2909 +
2344 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 2912 Map<String, Object> map = new HashMap<String, Object>();
2347 2913 boolean fage = true;
  2914 + String company="";
  2915 + String bCompany="";
2348 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 3003 for (int i = 0; i < yesterdayDataList.size(); i++) {
2447 3004 if (i == 0) {
... ... @@ -3116,7 +3673,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3116 3673 }
3117 3674  
3118 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 3702 ScheduleRealInfo s = scheduleRealInfoRepository.findOne(id);
3144 3703 String xlbm = s.getXlBm();
3145 3704 String fcrq = s.getScheduleDateStr();
3146   -
  3705 + //保留两位小数
  3706 + DecimalFormat df = new DecimalFormat("#.00");
3147 3707 List<Ylxxb> listYlxxb = ylxxbRepository.queryListYlxxb(s.getClZbh(), fcrq);
3148 3708 Double jzl = 0.0;
3149 3709 for (int t = 0; t < listYlxxb.size(); t++) {
... ... @@ -3162,7 +3722,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3162 3722 yh += y.getYh();
3163 3723  
3164 3724 }
3165   - map.put("jzl", jzl);
  3725 + map.put("jzl", df.format(jzl));
3166 3726 map.put("yh", yh);
3167 3727 map.put("ccyl", ccyl);
3168 3728 map.put("jcyl", jcyl);
... ... @@ -3590,17 +4150,21 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3590 4150 }
3591 4151  
3592 4152 ScheduleRealInfo leftSch, rightSch = null;
3593   - boolean changeRealTime = true;
3594 4153 for (int i = 0; i < largeList.size(); i++) {
3595 4154 leftSch = largeList.get(i);
3596 4155 if (i < smallList.size()) {
3597 4156 rightSch = smallList.get(i);
3598 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 4168 ts.add(leftSch);
3605 4169  
3606 4170 cars.add(leftSch.getClZbh());
... ... @@ -3636,19 +4200,38 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3636 4200 }
3637 4201  
3638 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 4204 LpData leftData = new LpData(leftSch);
3641 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 4237 @Override
... ...
src/main/java/com/bsth/service/schedule/PeopleCarPlanServiceImpl.java
... ... @@ -229,22 +229,22 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
229 229 temp.get(key).add(m);
230 230 }
231 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 234 for(Map<String, Object> m : temp.get(key)){
235 235 String lp = m.get("lp").toString();
236 236 String str = "";
237 237 for(int i = 0; i < lp.length(); i++){
238 238 str += (int)lp.charAt(i);
239 239 }
240   - int i = Integer.valueOf(str);
  240 + Long i = Long.valueOf(str);
241 241 if(!tempList.containsKey(i))
242 242 tempList.put(i, new ArrayList<Map<String, Object>>());
243 243 tempList.get(i).add(m);
244 244 keyList.add(i);
245 245 }
246 246 Collections.sort(keyList);
247   - for(Integer i : keyList){
  247 + for(Long i : keyList){
248 248 for(Map<String, Object> m : tempList.get(i)){
249 249 resList.add(m);
250 250 }
... ...