Commit c12f35f28aee7f0e0477beb837f590398363a4ea

Authored by 娄高锋
2 parents 01692e22 c1569fe0

Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into minhang

Showing 53 changed files with 2735 additions and 1024 deletions

Too many changes to show.

To preserve performance only 53 of 112 files are displayed.

src/main/java/com/bsth/controller/forms/ExportController.java
... ... @@ -203,7 +203,7 @@ public class ExportController {
203 203 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
204 204 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
205 205 ReportUtils ee = new ReportUtils();
206   - List<Vehicleloading> vehicleloading = formsService.vehicleloading(map.get("line").toString(),
  206 + List<Vehicleloading> vehicleloading = formsService.vehicleloading(/*map.get("gsdmVehic").toString(),map.get("fgsdmVehic").toString(),*/map.get("line").toString(),
207 207 map.get("date").toString());
208 208 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
209 209 int i = 1;
... ...
src/main/java/com/bsth/controller/forms/MCY_FormsController.java
... ... @@ -26,93 +26,90 @@ import com.bsth.service.realcontrol.ScheduleRealInfoService;
26 26 @RestController
27 27 @RequestMapping("mcy_forms")
28 28 public class MCY_FormsController {
29   -
  29 +
30 30 @Autowired
31 31 FormsService formsService;
32   -
  32 +
33 33 @Autowired
34 34 ScheduleRealInfoService scheduleRealInfoService;
35   -
36   - //行车路单日报表
37   - @RequestMapping(value = "/waybillday",method = RequestMethod.POST)
38   - public List<Waybillday> waybillday(@RequestParam Map<String, Object> map){
39   -
40   -
41   -// scheduleRealInfoService.findKMBC(jName, clZbh, lpName, date)
  35 +
  36 + // 行车路单日报表
  37 +
  38 + @RequestMapping(value = "/waybillday", method = RequestMethod.POST)
  39 + public List<Waybillday> waybillday(@RequestParam Map<String, Object> map) {
  40 +
  41 + // scheduleRealInfoService.findKMBC(jName, clZbh, lpName, date)
42 42 return formsService.waybillday(map);
43 43 }
44   -
45   - //线路客流量报表
46   - @RequestMapping(value = "/linepasswengerflow",method = RequestMethod.POST)
47   - public List<Linepasswengerflow> linepasswengerflow(@RequestParam Map<String, Object> map){
48   -
  44 +
  45 + // 线路客流量报表
  46 +
  47 + @RequestMapping(value = "/linepasswengerflow", method = RequestMethod.POST)
  48 + public List<Linepasswengerflow> linepasswengerflow(@RequestParam Map<String, Object> map) {
  49 +
49 50 return formsService.linepasswengerflow(map);
50 51 }
51   -
52   -
53   -
54   - //班次车辆人员月报表
55   - @RequestMapping(value = "/shiftuehiclemanth",method = RequestMethod.POST)
56   - public List<Shiftuehiclemanth> shiftuehiclemanth(@RequestParam Map<String, Object> map){
57   -
  52 +
  53 + // 班次车辆人员月报表
  54 + @RequestMapping(value = "/shiftuehiclemanth", method = RequestMethod.POST)
  55 + public List<Shiftuehiclemanth> shiftuehiclemanth(@RequestParam Map<String, Object> map) {
  56 +
58 57 return formsService.shiftuehiclemanth(map);
59 58 }
60   -
61   -
62   - //班次车辆人员日统计
63   - @RequestMapping(value = "/shifday",method = RequestMethod.POST)
64   - public List<Shifday> shifday(@RequestParam Map<String, Object> map){
65   -
  59 +
  60 + // 班次车辆人员日统计
  61 + @RequestMapping(value = "/shifday", method = RequestMethod.POST)
  62 + public List<Shifday> shifday(@RequestParam Map<String, Object> map) {
  63 +
66 64 return formsService.shifday(map);
67 65 }
68   -
69   - //换人换车情况统计表
70   - @RequestMapping(value = "/changetochange",method = RequestMethod.POST)
71   - public List<Changetochange> changetochange(@RequestParam Map<String, Object> map){
72   -
  66 +
  67 + // 换人换车情况统计表
  68 + @RequestMapping(value = "/changetochange", method = RequestMethod.POST)
  69 + public List<Changetochange> changetochange(@RequestParam Map<String, Object> map) {
  70 +
73 71 return formsService.changetochange(map);
74 72 }
75   -
76   - //路单数据
77   - @RequestMapping(value = "/singledata",method = RequestMethod.POST)
78   - public List<Singledata> singledata(@RequestParam Map<String, Object> map){
79   -
  73 +
  74 + // 路单数据
  75 + @RequestMapping(value = "/singledata", method = RequestMethod.POST)
  76 + public List<Singledata> singledata(@RequestParam Map<String, Object> map) {
  77 +
80 78 return formsService.singledata(map);
81   - }
82   -
83   - //车辆加注
84   - @RequestMapping(value = "/vehicleloading",method = RequestMethod.POST)
85   - public List<Vehicleloading> vehicleloading(@RequestParam String line ,@RequestParam String data){
86   - return formsService.vehicleloading(line,data);
87 79 }
88   -
89   -
90   - //运营服务阶段报表
91   - @RequestMapping(value = "/operationservice",method = RequestMethod.POST)
92   - public List<Operationservice> operationservice(@RequestParam Map<String, Object> map){
93   -
  80 +
  81 + // 车辆加注
  82 + @RequestMapping(value = "/vehicleloading", method = RequestMethod.POST)
  83 + public List<Vehicleloading> vehicleloading(/*@RequestParam String gsdmVehic, @RequestParam String fgsdmVehic,*/
  84 + @RequestParam String line, @RequestParam String data) {
  85 + return formsService.vehicleloading(/*gsdmVehic, fgsdmVehic, */line, data);
  86 + }
  87 +
  88 + // 运营服务阶段报表
  89 + @RequestMapping(value = "/operationservice", method = RequestMethod.POST)
  90 + public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) {
  91 +
94 92 return formsService.operationservice(map);
95 93 }
96   -
97   - //营运线路出车率统计表
98   - @RequestMapping(value = "/turnoutrate",method = RequestMethod.POST)
99   - public List<Turnoutrate> turnoutrate(@RequestParam Map<String, Object> map){
100   -
101   - return formsService.turnoutrate(map);
102   - }
103   -
104   - //班次执行率统计表
105   - @RequestMapping(value = "/executionrate",method = RequestMethod.POST)
106   - public List<Executionrate> executionrate(@RequestParam Map<String, Object> map){
107   -
108   - return formsService.executionrate(map);
109   - }
110   -
111   -
112   - //营运线路名称统计表
113   - @RequestMapping(value = "/allline",method = RequestMethod.POST)
114   - public List<Allline> allline(@RequestParam Map<String, Object> map){
115   -
116   - return formsService.allline(map);
  94 +
  95 + // 营运线路出车率统计表
  96 + @RequestMapping(value = "/turnoutrate", method = RequestMethod.POST)
  97 + public List<Turnoutrate> turnoutrate(@RequestParam Map<String, Object> map) {
  98 +
  99 + return formsService.turnoutrate(map);
  100 + }
  101 +
  102 + // 班次执行率统计表
  103 + @RequestMapping(value = "/executionrate", method = RequestMethod.POST)
  104 + public List<Executionrate> executionrate(@RequestParam Map<String, Object> map) {
  105 +
  106 + return formsService.executionrate(map);
  107 + }
  108 +
  109 + // 营运线路名称统计表
  110 + @RequestMapping(value = "/allline", method = RequestMethod.POST)
  111 + public List<Allline> allline(@RequestParam Map<String, Object> map) {
  112 +
  113 + return formsService.allline(map);
117 114 }
118 115 }
... ...
src/main/java/com/bsth/controller/realcontrol/RealMapController.java
... ... @@ -23,16 +23,40 @@ public class RealMapController {
23 23 * 根据线路获取站点路由及空间数据
24 24 */
25 25 @RequestMapping(value = "/stationSpatialData")
26   - public Map<String, Object> stationSpatialData(@RequestParam String idx){
  26 + public Map<String, Object> stationSpatialData(@RequestParam String idx) {
27 27 return realMapService.stationSpatialData(idx);
28 28 }
29 29  
30 30 /**
31 31 * 停车场
  32 + *
32 33 * @return
33 34 */
34 35 @RequestMapping(value = "/carParkSpatialData")
35   - public Map<String, Object> carParkSpatialData(){
  36 + public Map<String, Object> carParkSpatialData() {
36 37 return realMapService.carParkSpatialData();
37 38 }
  39 +
  40 +
  41 + /**
  42 + * @param @param lineCode
  43 + * @throws
  44 + * @Title: findRouteByLine
  45 + * @Description: TODO(获取线路的站点,路段路由)
  46 + */
  47 + @RequestMapping(value = "/findRouteByLine")
  48 + public Map<String, Object> findRouteByLine(@RequestParam String lineCode) {
  49 + return realMapService.findRouteByLine(lineCode);
  50 + }
  51 +
  52 +
  53 + /**
  54 + * 获取线路的路段路由 和 站点路由信息 (为前端站间距计算提供数据源)
  55 + * @param lineCode
  56 + * @return
  57 + */
  58 + @RequestMapping(value = "/findRouteAndStationByLine")
  59 + public Map<String, Object> findRouteAndStationByLine(@RequestParam String lineCode){
  60 + return realMapService.findRouteAndStationByLine(lineCode);
  61 + }
38 62 }
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -74,8 +74,8 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
74 74 @RequestMapping(value = "/destroy", method = RequestMethod.POST)
75 75 public Map<String, Object> destroy(@RequestParam String idsStr
76 76 /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/,
77   - @RequestParam String remarks/*, @RequestParam String reason, @RequestParam(defaultValue = "0") int spaceNum*/) {
78   - return scheduleRealInfoService.destroy(idsStr/*, spaceAdjust*/, remarks/*, reason, spaceNum*/);
  77 + @RequestParam String remarks, @RequestParam String adjustExps/*, @RequestParam(defaultValue = "0") int spaceNum*/) {
  78 + return scheduleRealInfoService.destroy(idsStr/*, spaceAdjust*/, remarks, adjustExps/*, spaceNum*/);
79 79 }
80 80  
81 81 /**
... ...
src/main/java/com/bsth/controller/schedule/BController.java 0 → 100644
  1 +package com.bsth.controller.schedule;
  2 +
  3 +import com.bsth.common.ResponseCode;
  4 +import com.bsth.service.schedule.BService;
  5 +import com.bsth.service.schedule.ScheduleException;
  6 +import com.google.common.base.Splitter;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.data.domain.PageRequest;
  9 +import org.springframework.data.domain.Sort;
  10 +import org.springframework.web.bind.annotation.*;
  11 +
  12 +import java.io.Serializable;
  13 +import java.util.ArrayList;
  14 +import java.util.HashMap;
  15 +import java.util.List;
  16 +import java.util.Map;
  17 +
  18 +/**
  19 + * 基础控制器。
  20 + */
  21 +public class BController<T, ID extends Serializable> {
  22 + @Autowired
  23 + protected BService<T, ID> bService;
  24 +
  25 + // CRUD 操作
  26 + // Create操作
  27 + @RequestMapping(method = RequestMethod.POST)
  28 + public Map<String, Object> save(@RequestBody T t) {
  29 + T t_saved = bService.save(t);
  30 + Map<String, Object> rtn = new HashMap<>();
  31 + rtn.put("status", ResponseCode.SUCCESS);
  32 + rtn.put("data", t_saved);
  33 + return rtn;
  34 + }
  35 + // Update操作
  36 + @RequestMapping(value="/{id}", method = RequestMethod.POST)
  37 + public Map<String, Object> update(@RequestBody T t) {
  38 + return save(t);
  39 + }
  40 + // Research操作
  41 + @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  42 + public Map<String, Object> findById(@PathVariable("id") ID id) {
  43 + T t = bService.findById(id);
  44 + Map<String, Object> rtn = new HashMap<>();
  45 + rtn.put("status", ResponseCode.SUCCESS);
  46 + rtn.put("data", t);
  47 + return rtn;
  48 + }
  49 + @RequestMapping(value = "/all", method = RequestMethod.GET)
  50 + public Map<String, Object> list(@RequestParam Map<String, Object> param) {
  51 + List<T> tList = bService.list(param);
  52 + Map<String, Object> rtn = new HashMap<>();
  53 + rtn.put("status", ResponseCode.SUCCESS);
  54 + rtn.put("data", tList);
  55 + return rtn;
  56 + }
  57 + @RequestMapping(method = RequestMethod.GET)
  58 + public Map<String, Object> list(
  59 + @RequestParam Map<String, Object> map,
  60 + @RequestParam(defaultValue = "0") int page,
  61 + @RequestParam(defaultValue = "10") int size,
  62 + @RequestParam(defaultValue = "id") String order,
  63 + @RequestParam(defaultValue = "DESC") String direction) {
  64 + // 允许多个字段排序,order可以写单个字段,也可以写多个字段
  65 + // 多个字段格式:{col1},{col2},{col3},....,{coln}
  66 + List<String> order_columns = Splitter.on(",").trimResults().splitToList(order);
  67 + // 多字段排序:DESC,ASC...
  68 + List<String> order_dirs = Splitter.on(",").trimResults().splitToList(direction);
  69 +
  70 + Map<String, Object> rtn = new HashMap<>();
  71 +
  72 + if (order_dirs.size() == 1) { // 所有字段采用一种排序
  73 + rtn.put("status", ResponseCode.SUCCESS);
  74 + if (order_dirs.get(0).equals("ASC")) {
  75 + rtn.put("data", bService.list(map, new PageRequest(page, size, new Sort(Sort.Direction.ASC, order_columns))));
  76 + } else {
  77 + rtn.put("data", bService.list(map, new PageRequest(page, size, new Sort(Sort.Direction.DESC, order_columns))));
  78 + }
  79 + } else if (order_columns.size() == order_dirs.size()) {
  80 + List<Sort.Order> orderList = new ArrayList<>();
  81 + for (int i = 0; i < order_columns.size(); i++) {
  82 + if (null != order_dirs.get(i) && order_dirs.get(i).equals("ASC")) {
  83 + orderList.add(new Sort.Order(Sort.Direction.ASC, order_columns.get(i)));
  84 + } else {
  85 + orderList.add(new Sort.Order(Sort.Direction.DESC, order_columns.get(i)));
  86 + }
  87 + }
  88 + rtn.put("status", ResponseCode.SUCCESS);
  89 + rtn.put("data", bService.list(map, new PageRequest(page, size, new Sort(orderList))));
  90 + } else {
  91 + throw new RuntimeException("多字段排序参数格式问题,排序顺序和字段数不一致");
  92 + }
  93 +
  94 + return rtn;
  95 +
  96 + }
  97 +
  98 + // Delete操作
  99 + @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  100 + public Map<String, Object> delete(@PathVariable("id") ID id) {
  101 + Map<String, Object> rtn = new HashMap<>();
  102 + try {
  103 + bService.delete(id);
  104 + rtn.put("status", ResponseCode.SUCCESS);
  105 + } catch (ScheduleException exp) {
  106 + rtn.put("status", ResponseCode.ERROR);
  107 + rtn.put("msg", exp.getMessage());
  108 + }
  109 +
  110 + return rtn;
  111 + }
  112 +
  113 +}
... ...
src/main/java/com/bsth/controller/schedule/GuideboardInfoController.java deleted 100644 → 0
1   -package com.bsth.controller.schedule;
2   -
3   -import com.bsth.controller.BaseController;
4   -import com.bsth.entity.schedule.GuideboardInfo;
5   -import com.bsth.repository.schedule.GuideboardInfoRepository;
6   -import com.bsth.service.schedule.utils.DataToolsProperties;
7   -import org.springframework.beans.factory.annotation.Autowired;
8   -import org.springframework.boot.context.properties.EnableConfigurationProperties;
9   -import org.springframework.web.bind.annotation.PathVariable;
10   -import org.springframework.web.bind.annotation.RequestMapping;
11   -import org.springframework.web.bind.annotation.RequestMethod;
12   -import org.springframework.web.bind.annotation.RestController;
13   -
14   -import java.util.List;
15   -import java.util.Map;
16   -
17   -/**
18   - * Created by xu on 16/5/11.
19   - */
20   -@RestController
21   -@RequestMapping("gic")
22   -@EnableConfigurationProperties(DataToolsProperties.class)
23   -public class GuideboardInfoController extends BaseController<GuideboardInfo, Long> {
24   - @Autowired
25   - private DataToolsProperties dataToolsProperties;
26   - @Autowired
27   - private GuideboardInfoRepository guideboardInfoRepository;
28   -
29   - @Override
30   - protected String getDataImportKtrClasspath() {
31   - return dataToolsProperties.getGuideboardsDatainputktr();
32   - }
33   -
34   - @Override
35   - public GuideboardInfo findById(@PathVariable("id") Long aLong) {
36   - return guideboardInfoRepository.findOneExtend(aLong);
37   - }
38   -
39   -
40   - @RequestMapping(value = "/ttlpnames", method = RequestMethod.GET)
41   - public List<Map<String, Object>> findLpName(Long ttid) {
42   - return guideboardInfoRepository.findLpName(ttid);
43   - }
44   -}
src/main/java/com/bsth/controller/schedule/basicinfo/CarsController.java 0 → 100644
  1 +package com.bsth.controller.schedule.basicinfo;
  2 +
  3 +import com.bsth.common.ResponseCode;
  4 +import com.bsth.controller.schedule.BController;
  5 +import com.bsth.entity.Cars;
  6 +import com.bsth.service.schedule.CarsService;
  7 +import com.bsth.service.schedule.ScheduleException;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.web.bind.annotation.RequestMapping;
  10 +import org.springframework.web.bind.annotation.RequestMethod;
  11 +import org.springframework.web.bind.annotation.RequestParam;
  12 +import org.springframework.web.bind.annotation.RestController;
  13 +
  14 +import java.util.HashMap;
  15 +import java.util.Map;
  16 +
  17 +/**
  18 + * 车辆基础信息controller
  19 + */
  20 +@RestController(value = "carsController_sc")
  21 +@RequestMapping("cars_sc")
  22 +public class CarsController extends BController<Cars, Integer> {
  23 + @Autowired
  24 + private CarsService carsService;
  25 +
  26 + @RequestMapping(value = "/validate_zbh", method = RequestMethod.GET)
  27 + public Map<String, Object> validate_zbh(@RequestParam Map<String, Object> param) {
  28 + Map<String, Object> rtn = new HashMap<>();
  29 + try {
  30 + // 自编号验证
  31 + Cars cars = new Cars(
  32 + param.get("id_eq"),
  33 + param.get("insideCode_eq"),
  34 + null,
  35 + null,
  36 + null);
  37 + carsService.validate_nbbh(cars);
  38 + rtn.put("status", ResponseCode.SUCCESS);
  39 + } catch (ScheduleException exp) {
  40 + rtn.put("status", ResponseCode.ERROR);
  41 + rtn.put("msg", exp.getMessage());
  42 + }
  43 + return rtn;
  44 + }
  45 +
  46 + @RequestMapping(value = "/validate_clbh", method = RequestMethod.GET)
  47 + public Map<String, Object> validate_clbh(@RequestParam Map<String, Object> param) {
  48 + Map<String, Object> rtn = new HashMap<>();
  49 + try {
  50 + // 车辆编号验证
  51 + Cars cars = new Cars(
  52 + param.get("id_eq"),
  53 + null,
  54 + param.get("carCode_eq"),
  55 + null,
  56 + null);
  57 + carsService.validate_clbh(cars);
  58 + rtn.put("status", ResponseCode.SUCCESS);
  59 + } catch (ScheduleException exp) {
  60 + rtn.put("status", ResponseCode.ERROR);
  61 + rtn.put("msg", exp.getMessage());
  62 + }
  63 + return rtn;
  64 + }
  65 +
  66 + @RequestMapping(value = "/validate_cph", method = RequestMethod.GET)
  67 + public Map<String, Object> validate_cph(@RequestParam Map<String, Object> param) {
  68 + Map<String, Object> rtn = new HashMap<>();
  69 + try {
  70 + // 车牌号验证
  71 + Cars cars = new Cars(
  72 + param.get("id_eq"),
  73 + null,
  74 + null,
  75 + param.get("carPlate_eq"),
  76 + null);
  77 + carsService.validate_cph(cars);
  78 + rtn.put("status", ResponseCode.SUCCESS);
  79 + } catch (ScheduleException exp) {
  80 + rtn.put("status", ResponseCode.ERROR);
  81 + rtn.put("msg", exp.getMessage());
  82 + }
  83 + return rtn;
  84 + }
  85 +
  86 + @RequestMapping(value = "/validate_sbbh", method = RequestMethod.GET)
  87 + public Map<String, Object> validate_sbbh(@RequestParam Map<String, Object> param) {
  88 + Map<String, Object> rtn = new HashMap<>();
  89 + try {
  90 + // 设备编号验证
  91 + Cars cars = new Cars(
  92 + param.get("id_eq"),
  93 + null,
  94 + null,
  95 + null,
  96 + param.get("equipmentCode_eq")
  97 + );
  98 + carsService.validate_sbbh(cars);
  99 + rtn.put("status", ResponseCode.SUCCESS);
  100 + } catch (ScheduleException exp) {
  101 + rtn.put("status", ResponseCode.ERROR);
  102 + rtn.put("msg", exp.getMessage());
  103 + }
  104 + return rtn;
  105 + }
  106 +}
... ...
src/main/java/com/bsth/controller/schedule/core/GuideboardInfoController.java 0 → 100644
  1 +package com.bsth.controller.schedule.core;
  2 +
  3 +import com.bsth.common.ResponseCode;
  4 +import com.bsth.controller.schedule.BController;
  5 +import com.bsth.entity.schedule.GuideboardInfo;
  6 +import com.bsth.repository.schedule.GuideboardInfoRepository;
  7 +import com.bsth.service.schedule.GuideboardInfoService;
  8 +import com.bsth.service.schedule.ScheduleException;
  9 +import com.bsth.service.schedule.utils.DataToolsProperties;
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.boot.context.properties.EnableConfigurationProperties;
  12 +import org.springframework.web.bind.annotation.RequestMapping;
  13 +import org.springframework.web.bind.annotation.RequestMethod;
  14 +import org.springframework.web.bind.annotation.RequestParam;
  15 +import org.springframework.web.bind.annotation.RestController;
  16 +
  17 +import java.util.HashMap;
  18 +import java.util.List;
  19 +import java.util.Map;
  20 +
  21 +/**
  22 + * 路牌管理控制器。
  23 + */
  24 +@RestController
  25 +@RequestMapping("gic")
  26 +@EnableConfigurationProperties(DataToolsProperties.class)
  27 +public class GuideboardInfoController extends BController<GuideboardInfo, Long> {
  28 + @Autowired
  29 + private GuideboardInfoService guideboardInfoService;
  30 +// @Autowired
  31 +// private DataToolsProperties dataToolsProperties;
  32 + @Autowired
  33 + private GuideboardInfoRepository guideboardInfoRepository;
  34 +//
  35 +// @Override
  36 +// protected String getDataImportKtrClasspath() {
  37 +// return dataToolsProperties.getGuideboardsDatainputktr();
  38 +// }
  39 +//
  40 +// @Override
  41 +// public GuideboardInfo findById(@PathVariable("id") Long aLong) {
  42 +// return guideboardInfoRepository.findOneExtend(aLong);
  43 +// }
  44 +//
  45 +//
  46 + @RequestMapping(value = "/ttlpnames", method = RequestMethod.GET)
  47 + public List<Map<String, Object>> findLpName(Long ttid) {
  48 + return guideboardInfoRepository.findLpName(ttid);
  49 + }
  50 +
  51 + @RequestMapping(value = "/validate1", method = RequestMethod.GET)
  52 + public Map<String, Object> validate1(@RequestParam Map<String, Object> param) {
  53 + Map<String, Object> rtn = new HashMap<>();
  54 + try {
  55 + // 路牌编号验证
  56 + GuideboardInfo guideboardInfo = new GuideboardInfo(
  57 + param.get("xl.id_eq"),
  58 + param.get("lpNo_eq"),
  59 + null
  60 + );
  61 + guideboardInfoService.validate(guideboardInfo);
  62 + rtn.put("status", ResponseCode.SUCCESS);
  63 + } catch (ScheduleException exp) {
  64 + rtn.put("status", ResponseCode.ERROR);
  65 + rtn.put("msg", exp.getMessage());
  66 + }
  67 + return rtn;
  68 + }
  69 +
  70 + @RequestMapping(value = "/validate2", method = RequestMethod.GET)
  71 + public Map<String, Object> validate2(@RequestParam Map<String, Object> param) {
  72 + Map<String, Object> rtn = new HashMap<>();
  73 + try {
  74 + // 路牌名称验证
  75 + GuideboardInfo guideboardInfo = new GuideboardInfo(
  76 + param.get("xl.id_eq"),
  77 + null,
  78 + param.get("lpName_eq")
  79 + );
  80 + guideboardInfoService.validate(guideboardInfo);
  81 + rtn.put("status", ResponseCode.SUCCESS);
  82 + } catch (ScheduleException exp) {
  83 + rtn.put("status", ResponseCode.ERROR);
  84 + rtn.put("msg", exp.getMessage());
  85 + }
  86 + return rtn;
  87 + }
  88 +}
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -117,7 +117,7 @@ public class DayOfSchedule implements CommandLineRunner {
117 117 @Override
118 118 public void run(String... arg0) throws Exception {
119 119 //翻班线程
120   -// Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
  120 + Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
121 121 //入库
122 122 // Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 60, TimeUnit.SECONDS);
123 123 //首班出场指令补发器
... ...
src/main/java/com/bsth/entity/Cars.java
1 1 package com.bsth.entity;
2 2  
3 3 import com.bsth.entity.sys.SysUser;
  4 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 5  
5 6 import javax.persistence.*;
6 7 import java.io.Serializable;
... ... @@ -22,6 +23,7 @@ import java.util.Date;
22 23  
23 24 @Entity
24 25 @Table(name = "bsth_c_cars")
  26 +@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
25 27 public class Cars implements Serializable {
26 28  
27 29 /** 主键Id */
... ... @@ -30,7 +32,7 @@ public class Cars implements Serializable {
30 32 private Integer id;
31 33  
32 34 /** 自编号/内部编号 */
33   - @Column(nullable = false, length = 8, unique = true)
  35 + @Column(nullable = false, length = 20, unique = true)
34 36 private String insideCode;
35 37  
36 38 // 公司、分公司暂时不用关联实体
... ... @@ -150,6 +152,26 @@ public class Cars implements Serializable {
150 152 /** 修改日期 */
151 153 @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
152 154 private Date updateDate;
  155 +
  156 + public Cars() {}
  157 +
  158 + public Cars(Object id, Object nbbh, Object clbh, Object cph, Object sbbh) {
  159 + if (id != null) {
  160 + this.id = Integer.valueOf(id.toString());
  161 + }
  162 + if (nbbh != null) {
  163 + this.insideCode = nbbh.toString();
  164 + }
  165 + if (clbh != null) {
  166 + this.carCode = clbh.toString();
  167 + }
  168 + if (cph != null) {
  169 + this.carPlate = cph.toString();
  170 + }
  171 + if (sbbh != null) {
  172 + this.equipmentCode = sbbh.toString();
  173 + }
  174 + }
153 175  
154 176 public String getServiceNo() {
155 177 return serviceNo;
... ...
src/main/java/com/bsth/entity/Line.java
1 1 package com.bsth.entity;
2 2  
  3 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
3 4 import org.springframework.format.annotation.DateTimeFormat;
4 5  
5 6 import javax.persistence.*;
... ... @@ -23,6 +24,7 @@ import java.util.Date;
23 24  
24 25 @Entity
25 26 @Table(name = "bsth_c_line")
  27 +@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
26 28 public class Line implements Serializable {
27 29  
28 30 @Id
... ...
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
... ... @@ -128,6 +128,8 @@ public class ScheduleRealInfo {
128 128  
129 129 /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */
130 130 private int status;
  131 +
  132 + private String adjustExps;
131 133  
132 134 /** 是否是临加班次 */
133 135 private boolean sflj;
... ... @@ -817,4 +819,12 @@ public class ScheduleRealInfo {
817 819 public void setLate(boolean late) {
818 820 this.late = late;
819 821 }
  822 +
  823 + public String getAdjustExps() {
  824 + return adjustExps;
  825 + }
  826 +
  827 + public void setAdjustExps(String adjustExps) {
  828 + this.adjustExps = adjustExps;
  829 + }
820 830 }
... ...
src/main/java/com/bsth/entity/schedule/GuideboardInfo.java
... ... @@ -2,9 +2,9 @@ package com.bsth.entity.schedule;
2 2  
3 3 import com.bsth.entity.Line;
4 4 import com.bsth.entity.sys.SysUser;
  5 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 6  
6 7 import javax.persistence.*;
7   -import javax.persistence.Table;
8 8 import java.util.Date;
9 9  
10 10 /**
... ... @@ -17,6 +17,7 @@ import java.util.Date;
17 17 @NamedAttributeNode("xl")
18 18 })
19 19 })
  20 +@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
20 21 public class GuideboardInfo {
21 22  
22 23 /** 主键Id */
... ... @@ -38,6 +39,10 @@ public class GuideboardInfo {
38 39 @Column(nullable = false)
39 40 private String lpType;
40 41  
  42 + /** 是否删除(标记) */
  43 + @Column(nullable = false)
  44 + private Boolean isCancel = false;
  45 +
41 46 /** 创建人 */
42 47 @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
43 48 private SysUser createBy;
... ... @@ -53,6 +58,30 @@ public class GuideboardInfo {
53 58 private Date updateDate;
54 59  
55 60  
  61 + public GuideboardInfo() {}
  62 +
  63 + public GuideboardInfo(Object xlid, Object lpNo, Object lpName) {
  64 + Integer xlid_ = xlid == null ? null : Integer.valueOf(xlid.toString());
  65 + Integer lpNo_ = lpNo == null ? null : Integer.valueOf(lpNo.toString());
  66 + String lpName_ = lpName == null ? null : String.valueOf(lpName);
  67 +
  68 + if (xlid_ != null) {
  69 + Line line = new Line();
  70 + line.setId(xlid_);
  71 + this.xl = line;
  72 + }
  73 +
  74 + this.lpNo = lpNo_;
  75 + this.lpName = lpName_;
  76 + }
  77 +
  78 + public GuideboardInfo(Integer xlid, Integer lpNo) {
  79 + this(xlid, lpNo, null);
  80 + }
  81 + public GuideboardInfo(Integer xlid, String lpName) {
  82 + this(xlid, null, lpName);
  83 + }
  84 +
56 85 public Long getId() {
57 86 return id;
58 87 }
... ... @@ -124,4 +153,12 @@ public class GuideboardInfo {
124 153 public void setUpdateDate(Date updateDate) {
125 154 this.updateDate = updateDate;
126 155 }
  156 +
  157 + public Boolean getIsCancel() {
  158 + return isCancel;
  159 + }
  160 +
  161 + public void setIsCancel(Boolean isCancel) {
  162 + this.isCancel = isCancel;
  163 + }
127 164 }
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -85,6 +85,9 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
85 85 @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 bcs")
86 86 List<ScheduleRealInfo> queryListWaybill3(String jName,String clZbh,String date);
87 87  
  88 + @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")
  89 + List<ScheduleRealInfo> queryListWaybill4(String jName,String clZbh,String date,String enddate);
  90 +
88 91 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
89 92 List<ScheduleRealInfo> scheduleDaily(String line,String date);
90 93  
... ...
src/main/java/com/bsth/service/forms/FormsService.java
... ... @@ -30,7 +30,7 @@ public interface FormsService {
30 30  
31 31 public List<Singledata> singledata(Map<String, Object> map);
32 32  
33   - public List<Vehicleloading> vehicleloading(String line,String data);
  33 + public List<Vehicleloading> vehicleloading(/*String gsdmVehic,String fgsdmVehic,*/String line,String data);
34 34  
35 35 public List<Operationservice> operationservice(Map<String, Object> map);
36 36  
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
1 1 package com.bsth.service.forms.impl;
2 2  
3   -import java.math.BigDecimal;
4   -import java.math.MathContext;
5   -import java.math.RoundingMode;
6 3 import java.sql.ResultSet;
7 4 import java.sql.SQLException;
8 5 import java.text.NumberFormat;
9 6 import java.text.ParseException;
10 7 import java.text.SimpleDateFormat;
11   -import java.util.ArrayList;
12 8 import java.util.Date;
13 9 import java.util.HashMap;
14 10 import java.util.List;
... ... @@ -32,8 +28,6 @@ import com.bsth.entity.mcy_forms.Changetochange;
32 28 import com.bsth.entity.mcy_forms.Executionrate;
33 29 import com.bsth.service.forms.FormsService;
34 30 import com.bsth.service.realcontrol.ScheduleRealInfoService;
35   -import com.bsth.util.ReportRelatedUtils;
36   -import com.bsth.util.ReportUtils;
37 31  
38 32 @Service
39 33 public class FormsServiceImpl implements FormsService {
... ... @@ -47,14 +41,17 @@ public class FormsServiceImpl implements FormsService {
47 41 // 行车路单日报表
48 42 @Override
49 43 public List<Waybillday> waybillday(Map<String, Object> map) {
50   - List list1 = new ArrayList<>();//
51   - String sql ="select x.schedule_date,x.j_gh,x.cl_zbh,z.JZL,z.YH,z.personnel_name "
52   - + "from bsth_c_s_sp_info_real x INNER join "
53   - + "( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH,c.personnel_name from"
  44 + 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 "
  45 + + " from bsth_c_s_sp_info_real x INNER join "
  46 + + " ( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH,c.personnel_name from"
54 47 + " bsth_c_ylb y LEFT JOIN bsth_c_personnel c ON c.job_code=y.JSY "
55   - + "where to_days(y.RQ)=to_days('"+map.get("date").toString() + "') and y.XLBM= '"+ map.get("line").toString()+"' GROUP BY y.NBBM) "
56   - + "z on x.cl_zbh=z.nbbm where to_days( x.schedule_date)=to_days('"+map.get("date").toString()+"') "
57   - + "and x.xl_bm='"+map.get("line").toString()+"' GROUP BY x.cl_zbh,j_gh";
  48 + + " where to_days(y.RQ)=to_days('"+map.get("date").toString() + "') and y.XLBM= '"+ map.get("line").toString()+"' GROUP BY y.NBBM) "
  49 + + " z on x.cl_zbh=z.nbbm where to_days( x.schedule_date)=to_days('"+map.get("date").toString()+"') "
  50 + + " and x.xl_bm='"+map.get("line").toString()+"'"
  51 + /*+ " and x.gs_bm='"+map.get("gsdmWaybillday").toString()+"'"
  52 + + " and x.fgs_bm='"+map.get("fgsdmWaybillday").toString()+"'"*/
  53 + + " 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";
  54 + //x.cl_zbh,j_gh
58 55 List<Waybillday> list = jdbcTemplate.query(sql, new RowMapper<Waybillday>() {
59 56 @Override
60 57 public Waybillday mapRow(ResultSet arg0, int arg1) throws SQLException {
... ... @@ -83,12 +80,18 @@ public class FormsServiceImpl implements FormsService {
83 80 // 线路客流量报表
84 81 @Override
85 82 public List<Linepasswengerflow> linepasswengerflow(Map<String, Object> map) {
86   - String sql = " SELECT s.station_name,l.name,l.create_date from bsth_c_stationroute s "
87   - + " LEFT JOIN bsth_c_line l on s.line_code=l.line_code "
  83 + String sql = " SELECT s.station_name,l.name,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name"
  84 + + " from bsth_c_stationroute s "
  85 + + " LEFT JOIN bsth_c_line l on s.line_code=l.line_code "
  86 + + " LEFT JOIN bsth_c_s_sp_info_real r on r.xl_bm=l.line_code"
88 87 + " where to_days(l.create_date)=to_days('"+map.get("date").toString() + "') "
89   - + " and l.line_code=" + map.get("line").toString()
90   - + " GROUP BY s.station_name ";
  88 + + " and l.line_code=" + map.get("line").toString()
  89 + + " AND r.gs_bm is not null"
  90 + /*+ " and r.gs_bm='"+map.get("gsdmLine").toString()+"'"
  91 + + " and r.fgs_bm='"+map.get("fgsdmLine").toString()+"'"*/
  92 + + " GROUP BY s.station_name,l.name,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name ";
91 93  
  94 + //s.station_name
92 95 List<Linepasswengerflow> list = jdbcTemplate.query(sql, new RowMapper<Linepasswengerflow>() {
93 96  
94 97 @Override
... ... @@ -108,13 +111,17 @@ public class FormsServiceImpl implements FormsService {
108 111  
109 112 @Override
110 113 public List<Shiftuehiclemanth> shiftuehiclemanth(Map<String, Object> map) {
111   - List list1 = new ArrayList<>();//
112   - String sql = "select r.j_name,r.schedule_date_str,r.update_date,r.cl_zbh " + " from bsth_c_s_sp_info_real r "
113   - + " LEFT JOIN bsth_c_s_ttinfo_detail d on r.lp_name=d.lp "
114   - + " LEFT JOIN bsth_c_line_information l on l.line=r.lp_name "
  114 + String sql = "select r.j_name,r.cl_zbh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "
  115 + + " from bsth_c_s_sp_info_real r "
115 116 + " where to_days(r.schedule_date_str) BETWEEN to_days('" + map.get("startDate").toString() + "') "
116   - + " and to_days('" + map.get("endDate").toString() + "') " + " and r.xl_bm='"
117   - + map.get("line").toString() + "' " + " GROUP BY r.j_name" + " ORDER BY r.j_name";
  117 + + " and to_days('" + map.get("endDate").toString() + "') "
  118 + + " and r.xl_bm='"+ map.get("line").toString() + "'"
  119 + + " AND r.gs_bm is not null"
  120 + /* + " and r.gs_bm='"+map.get("gsdmManth").toString()+"'"
  121 + + " and r.fgs_bm='"+map.get("fgsdmManth").toString()+"'"*/
  122 + + " GROUP BY r.j_name,r.cl_zbh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name"
  123 + + " ORDER BY r.j_name";
  124 + //r.j_name
118 125 startDate = map.get("startDate").toString();
119 126 endDate = map.get("endDate").toString();
120 127 List<Shiftuehiclemanth> list = jdbcTemplate.query(sql, new RowMapper<Shiftuehiclemanth>() {
... ... @@ -123,11 +130,12 @@ public class FormsServiceImpl implements FormsService {
123 130 public Shiftuehiclemanth mapRow(ResultSet arg0, int arg1) throws SQLException {
124 131 Shiftuehiclemanth shif = new Shiftuehiclemanth();
125 132 shif.setjName(arg0.getString("j_name"));
126   -
  133 +
127 134 Map<String, Object> maps = new HashMap<>();
128 135  
129 136 maps = scheduleRealInfoService.findKMBC1(arg0.getString("j_name"), arg0.getString("cl_zbh"), startDate,
130 137 endDate);
  138 +
131 139 shif.setJhlc(maps.get("jhlc").toString());
132 140 shif.setEmptMileage(maps.get("ksgl").toString());
133 141 shif.setRemMileage(maps.get("remMileage").toString());
... ... @@ -148,9 +156,15 @@ public class FormsServiceImpl implements FormsService {
148 156 // 班次车辆人员日统计
149 157 @Override
150 158 public List<Shifday> shifday(Map<String, Object> map) {
151   - String sql = " select r.lp_name,r.xl_name,r.j_name,r.s_name, r.cl_zbh,r.xl_bm,r.schedule_date,r.cl_zbh,r.j_gh "
152   - + " FROM bsth_c_s_sp_info_real r " + " where to_days(r.schedule_date)=to_days('"
153   - + map.get("date").toString() + "') and r.xl_bm=" + map.get("line").toString() + " GROUP BY r.j_name ";
  159 + String sql = " select r.schedule_date,r.lp_name,r.xl_name,r.j_name,r.s_name, r.cl_zbh,r.xl_bm,"
  160 + + " r.cl_zbh,r.j_gh,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "
  161 + + " FROM bsth_c_s_sp_info_real r "
  162 + + " where to_days(r.schedule_date)=to_days('"
  163 + + map.get("date").toString() + "') and r.xl_bm=" + map.get("line").toString()
  164 + /*+ " and r.gs_bm='"+map.get("gsdmShif").toString()+"'"
  165 + + " and r.fgs_bm='"+map.get("fgsdmShif").toString()+"'"*/
  166 + + " 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 "
  167 + + " ORDER BY r.lp_name asc";
154 168  
155 169 List<Shifday> list = jdbcTemplate.query(sql, new RowMapper<Shifday>() {
156 170  
... ... @@ -166,14 +180,14 @@ public class FormsServiceImpl implements FormsService {
166 180 map = scheduleRealInfoService.findKMBC2(arg0.getString("j_gh"), arg0.getString("cl_zbh"),
167 181 arg0.getString("schedule_date"));
168 182 shifday.setJhlc(map.get("jhlc").toString());// 计划里程
169   - // shifday.setSjjhlc(map.get("remMileage").toString());//实际计划里程
  183 + //shifday.setSjjhlc(map.get("remMileage").toString());//实际计划里程
170 184 shifday.setYygl(map.get("yygl").toString());// 营运里程
171 185 shifday.setEmptMileage(map.get("ksgl").toString());// 空驶里程
172 186 shifday.setRemMileage(map.get("remMileage").toString());// 抽减里程
173 187 shifday.setAddMileage(map.get("addMileage").toString());// 增加里程
174 188 shifday.setTotalm(map.get("realMileage").toString());// 总里程
175 189 shifday.setJhbc(map.get("jhbc").toString());// 计划班次
176   - // shifday.setSjjhbc(map.get("sjjhbc").toString());//实际计划班次
  190 + //shifday.setSjjhbc(map.get("sjjhbc").toString());//实际计划班次
177 191 shifday.setCjbc(map.get("cjbc").toString());// 抽减班次
178 192 shifday.setLjbc(map.get("ljbc").toString());// 增加班次
179 193 shifday.setSjbc(map.get("sjbc").toString());// 实际班次
... ... @@ -249,30 +263,56 @@ public class FormsServiceImpl implements FormsService {
249 263 // 路单数据
250 264 @Override
251 265 public List<Singledata> singledata(Map<String, Object> map) {
  266 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  267 + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
  268 + Date d = null;
  269 + Date d1 = null;
  270 + try {
  271 + d = sdf.parse(map.get("startDate").toString());
  272 + d1 = sdf.parse(map.get("endDate").toString());
  273 + } catch (ParseException e) {
252 274  
253   - String sql = " SELECT y.RQ,y.SSGSDM,y.XLBM,y.NBBM,y.JSY,y.YH,y.JZL " + " FROM bsth_c_ylb y"
254   - + " where y.RQ BETWEEN '" + map.get("startDate").toString() + "'" + " and '"
255   - + map.get("endDate").toString() + "'" + " and y.XLBM='" + map.get("line").toString() + "'"
256   - + " GROUP BY y.NBBM ";
  275 + e.printStackTrace();
  276 + }
  277 + String rq2 = sdf1.format(d);
  278 + String rq3 = sdf1.format(d1);
257 279  
  280 + rq = rq2 + "-" + rq3;
  281 +
  282 + String sql = " SELECT 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 "
  283 + + " FROM bsth_c_s_sp_info_real r "
  284 + + " INNER join ( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH from bsth_c_ylb y "
  285 + + " where y.RQ BETWEEN '" + map.get("startDate").toString() + "' and '"+ map.get("endDate").toString() + "'"
  286 + + " and y.XLBM= '" + map.get("line").toString() + "' GROUP BY y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH) y on r.cl_zbh=y.nbbm "
  287 + + " where r.schedule_date_str BETWEEN '" + map.get("startDate").toString() + "'"
  288 + + " and '"+ map.get("endDate").toString() + "'"
  289 + + " and r.xl_bm='" + map.get("line").toString() + "'"
  290 + + " AND r.gs_bm is not null"
  291 + /* + " and r.gs_bm='"+map.get("gsdmSing").toString()+"'"
  292 + + " and r.fgs_bm='"+map.get("fgsdmSing").toString()+"'"*/
  293 + + " 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 ";
  294 +
  295 + startDate = map.get("startDate").toString();
  296 + endDate = map.get("endDate").toString();
258 297 List<Singledata> list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
259   - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
260   -
  298 + //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
261 299 @Override
262 300 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
263 301 Singledata sin = new Singledata();
264   - sin.setrQ(sdf.format(arg0.getDate("rq")));
265   - sin.setgS(arg0.getString("SSGSDM").toString());
266   - sin.setxL(arg0.getString("XLBM").toString());
267   - sin.setClzbh(arg0.getString("NBBM").toString());
268   - sin.setJsy(arg0.getString("JSY").toString());
  302 + sin.setrQ(rq);
  303 + sin.setgS(arg0.getString("gs_name").toString());
  304 + sin.setxL(arg0.getString("xl_bm").toString());
  305 + sin.setClzbh(arg0.getString("cl_zbh").toString());
  306 + sin.setJsy(arg0.getString("j_gh").toString());
  307 + sin.setjName(arg0.getString("j_name").toString());
269 308 sin.setHyl(arg0.getString("YH").toString());
270 309 sin.setJzl(arg0.getString("JZL").toString());
271 310 // sin.setJzl(arg0.getString(""));//非营业性用油
272 311 sin.setJhjl(arg0.getString("JZL"));
273 312 Map<String, Object> maps = new HashMap<>();
274   - maps = scheduleRealInfoService.findKMBC2(sin.getJsy(), sin.getClzbh(), sin.getrQ());
275   - sin.setjName(maps.get("j_name") == null ? "" : maps.get("j_name").toString());
  313 + maps = scheduleRealInfoService.findKMBC1(arg0.getString("j_name"), arg0.getString("cl_zbh"), startDate,
  314 + endDate);
  315 + //sin.setjName(maps.get("j_name") == null ? "" : maps.get("j_name").toString());
276 316 sin.setSgh(maps.get("s_gh") == null ? "" : maps.get("s_gh").toString());
277 317 sin.setsName(maps.get("s_name") == null ? "" : maps.get("s_name").toString());
278 318 sin.setJhlc(maps.get("yygl") == null ? "" : maps.get("yygl").toString());
... ... @@ -289,22 +329,34 @@ public class FormsServiceImpl implements FormsService {
289 329 @Override
290 330 public List<Operationservice> operationservice(Map<String, Object> map) {
291 331  
292   - String sql = " SELECT y.RQ,y.XLBM,y.NBBM,y.JSY,y.YH,y.JZL " + " FROM bsth_c_ylb y" + " where y.RQ BETWEEN '"
293   - + map.get("startDate").toString() + "'" + " and '" + map.get("endDate").toString() + "'"
294   - + " and y.XLBM='" + map.get("line").toString() + "'" + " GROUP BY y.NBBM ";
295   -
  332 + 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 "
  333 + + " FROM bsth_c_s_sp_info_real r "
  334 + // + "LEFT JOIN bsth_c_s_sp_info_real r on r.cl_zbh=y.NBBM"
  335 + + " INNER join ( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH from bsth_c_ylb y "
  336 + + " where y.RQ BETWEEN '" + map.get("startDate").toString() + "' and '"+ map.get("endDate").toString() + "'"
  337 + + " and y.XLBM= '" + map.get("line").toString() + "' GROUP BY y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH) y on r.cl_zbh=y.nbbm "
  338 + + " where r.schedule_date_str BETWEEN '"+ map.get("startDate").toString()
  339 + + "'" + " and '" + map.get("endDate").toString() + "'"
  340 + + " and r.xl_bm='" + map.get("line").toString() + "'"
  341 + /* + " and r.gs_bm='"+map.get("gsdmOperat").toString()+"'"
  342 + + " and r.fgs_bm='"+map.get("fgsdmOperat").toString()+"'"*/
  343 + + " AND r.gs_bm is not null"
  344 + + " GROUP BY 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";
  345 +
  346 + //r.j_name
  347 + startDate = map.get("startDate").toString();
  348 + endDate = map.get("endDate").toString();
296 349 List<Operationservice> list = jdbcTemplate.query(sql, new RowMapper<Operationservice>() {
297   - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
298 350  
299 351 @Override
300 352 public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException {
301   - Singledata sin = new Singledata();
302 353 Operationservice op = new Operationservice();
303   - op.setXlName(arg0.getString("XLBM").toString());
  354 + op.setXlName(arg0.getString("xl_name").toString());
304 355 op.setJzl(arg0.getString("JZL").toString());
305 356 op.setXhl(arg0.getString("YH").toString());
306 357 Map<String, Object> maps = new HashMap<>();
307   - maps = scheduleRealInfoService.findKMBC2(sin.getJsy(), sin.getClzbh(), sin.getrQ());
  358 + maps = scheduleRealInfoService.findKMBC1(arg0.getString("j_name"), arg0.getString("cl_zbh"), startDate,
  359 + endDate);
308 360 op.setXsgl(maps.get("yygl").toString() == null ? "" : maps.get("yygl").toString());
309 361 op.setEmptMileage(maps.get("ksgl").toString() == null ? "" : maps.get("ksgl").toString());
310 362 op.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString());
... ... @@ -316,26 +368,36 @@ public class FormsServiceImpl implements FormsService {
316 368  
317 369 // 车辆加注
318 370 @Override
319   - public List<Vehicleloading> vehicleloading(String line, String data) {
320   -
321   - String sql = " SELECT y.RQ,y.SSGSDM,y.XLBM,y.NBBM,y.JSY,y.YH,y.JZL " + " FROM bsth_c_ylb y "
322   - + " where to_days(y.RQ)=to_days('" + data + "')" + " and y.XLBM='" + line + "' "
323   - + " GROUP BY y.NBBM ";
324   -
  371 + public List<Vehicleloading> vehicleloading(/*String gsdmVehic,String fgsdmVehic,*/String line, String date) {
  372 +
  373 + String sql = " SELECT r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_name,y.YH,y.JZL,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name "
  374 + + " FROM bsth_c_s_sp_info_real r "
  375 + + " INNER join ( select y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH from bsth_c_ylb y "
  376 + + " where to_days(y.RQ)=to_days('" + date + "') and y.XLBM= '" + line + "' GROUP BY y.RQ,y.XLBM,y.NBBM,y.JSY,y.JZL,y.YH) y "
  377 + + " on r.cl_zbh=y.nbbm "
  378 + + " where to_days(r.schedule_date_str)=to_days('" + date + "')"
  379 + + " and r.xl_bm='" + line + "' "
  380 + + " AND r.gs_bm is not null"
  381 + /* + " and r.gs_bm='"+gsdmVehic +"'"
  382 + + " and r.fgs_bm='"+fgsdmVehic +"'"*/
  383 + + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_name,y.YH,y.JZL,r.j_gh,r.gs_bm,r.gs_name,r.fgs_bm,r.fgs_name ";
  384 +
  385 +
  386 + //r.cl_zbh
325 387 List<Vehicleloading> list = jdbcTemplate.query(sql, new RowMapper<Vehicleloading>() {
326 388 @Override
327 389 public Vehicleloading mapRow(ResultSet arg0, int arg1) throws SQLException {
328 390 Vehicleloading ve = new Vehicleloading();
329   - ve.setrQ(arg0.getString("RQ").toString());
330   - ve.setgS(arg0.getString("SSDM").toString());
331   - ve.setxL(arg0.getString("XLBM").toString());
332   - ve.setClzbh(arg0.getString("NBBM").toString());
  391 + ve.setrQ(arg0.getString("schedule_date_str").toString());
  392 + ve.setgS(arg0.getString("gs_name").toString());
  393 + ve.setxL(arg0.getString("xl_name").toString());
  394 + ve.setClzbh(arg0.getString("cl_zbh").toString());
333 395 ve.setHyl(arg0.getString("YH").toString());
334 396 ve.setJzl(arg0.getString("JZL").toString());
335 397 // ve.setLs(arg0.getString("").toString());//尿素
336 398 Map<String, Object> maps = new HashMap<>();
337   - maps = scheduleRealInfoService.findKMBC2(arg0.getString("JSY"), arg0.getString("NBBM"),
338   - arg0.getString("RQ"));
  399 + maps = scheduleRealInfoService.findKMBC2(arg0.getString("j_gh"), arg0.getString("cl_zbh"),
  400 + arg0.getString("schedule_date_str"));
339 401 ve.setJhlc(maps.get("yygl") == null ? "" : maps.get("yygl").toString());
340 402 ve.setJhbc(maps.get("jhbc").toString() == null ? "" : maps.get("jhbc").toString());// 计划班次
341 403 ve.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString());// 实际班次
... ... @@ -367,13 +429,15 @@ public class FormsServiceImpl implements FormsService {
367 429  
368 430 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,b.warrant_car from "
369 431 + " (select count(DISTINCT gs_bm) gslsbm, gs_bm, count(DISTINCT fgs_bm) fgsbm,fgs_bm,gs_name,fgs_name ,xl_bm, count(*) as jbc,COUNT(DISTINCT xl_bm) as jxl ,COUNT(DISTINCT cl_zbh) as jcl"
370   - + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
371   - + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
372   - + map.get("line").toString() + "' AND gs_bm is not null"
  432 + + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"+ map.get("startDate").toString() + "' "
  433 + + " and '" + map.get("endDate").toString() + "' and xl_bm='"+ map.get("line").toString() + "' "
  434 + + " AND gs_bm is not null "
  435 + /*+ " and gs_bm='"+ map.get("gsdmTurn").toString() + "'"
  436 + + " and fgs_bm='"+ map.get("fgsdmTurn").toString() + "'"*/
373 437 + " GROUP BY gs_bm,fgs_bm,xl_bm,gs_name,fgs_name ) a left JOIN ("
374   - + "SELECT COUNT(*) as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl,t.warrant_car "
375   - + "from bsth_c_line t RIGHT JOIN (select gs_bm,fgs_bm,xl_bm,gs_name,fgs_name, count(*) as sbc,COUNT(DISTINCT xl_bm) as sxl ,COUNT(DISTINCT cl_zbh) as scl from bsth_c_s_sp_info_real "
376   - + "where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '" + map.get("startDate").toString() + "' and '"
  438 + + " SELECT COUNT(*) as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl,t.warrant_car "
  439 + + " from bsth_c_line t RIGHT JOIN (select gs_bm,fgs_bm,xl_bm,gs_name,fgs_name, count(*) as sbc,COUNT(DISTINCT xl_bm) as sxl ,COUNT(DISTINCT cl_zbh) as scl from bsth_c_s_sp_info_real "
  440 + + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '" + map.get("startDate").toString() + "' and '"
377 441 + map.get("endDate").toString() + "' and xl_bm='" + map.get("line").toString()
378 442 + "' AND gs_bm is not null "
379 443 + "GROUP BY gs_bm,fgs_bm,xl_bm,gs_name,fgs_name) b ON t.company=b.gs_bm) b on "
... ... @@ -412,6 +476,8 @@ public class FormsServiceImpl implements FormsService {
412 476 return list;
413 477 }
414 478  
  479 +
  480 + //班次执行率统计表
415 481 @Override
416 482 public List<Executionrate> executionrate(Map<String, Object> map) {
417 483 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -435,6 +501,8 @@ public class FormsServiceImpl implements FormsService {
435 501 + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
436 502 + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
437 503 + map.get("line").toString() + "' AND gs_bm is not null"
  504 + /*+ " and gs_bm='"+ map.get("gsdmEcecut").toString() + "'"
  505 + + " and fgs_bm='"+ map.get("fgsdmEcecut").toString() + "'"*/
438 506 + " GROUP BY gs_bm,fgs_bm,xl_bm,gs_name,fgs_name ) a left JOIN ("
439 507 + "SELECT COUNT(*) as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b.xl_name,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl "
440 508 + "from bsth_c_line t RIGHT JOIN (select gs_bm,fgs_bm,xl_bm,xl_name,gs_name,fgs_name, count(*) as sbc,COUNT(DISTINCT xl_bm) as sxl ,COUNT(DISTINCT cl_zbh) as scl from bsth_c_s_sp_info_real "
... ... @@ -501,6 +569,8 @@ public class FormsServiceImpl implements FormsService {
501 569 + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
502 570 + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
503 571 + map.get("line").toString() + "' AND gs_bm is not null"
  572 + /*+ " and gs_bm='"+ map.get("gsdmAllline").toString() + "'"
  573 + + " and fgs_bm='"+ map.get("fgsdmAllline").toString() + "'"*/
504 574 + " GROUP BY gs_bm,fgs_bm,xl_bm,gs_name,fgs_name ) a left JOIN ("
505 575 + "SELECT COUNT(*) as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b.xl_name,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl "
506 576 + "from bsth_c_line t RIGHT JOIN (select gs_bm,fgs_bm,xl_bm,xl_name,gs_name,fgs_name, count(*) as sbc,COUNT(DISTINCT xl_bm) as sxl ,COUNT(DISTINCT cl_zbh) as scl from bsth_c_s_sp_info_real "
... ...
src/main/java/com/bsth/service/realcontrol/RealMapService.java
... ... @@ -9,4 +9,8 @@ public interface RealMapService {
9 9 Map<String, Object> stationSpatialData(String idx);
10 10  
11 11 Map<String,Object> carParkSpatialData();
  12 +
  13 + Map<String,Object> findRouteByLine(String lineCode);
  14 +
  15 + Map<String,Object> findRouteAndStationByLine(String lineCode);
12 16 }
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
1 1 package com.bsth.service.realcontrol;
2 2  
3   -import java.util.Collection;
4   -import java.util.List;
5   -import java.util.Map;
6   -
7   -import org.springframework.stereotype.Service;
8   -
9 3 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
10 4 import com.bsth.controller.realcontrol.dto.DfsjChange;
11 5 import com.bsth.entity.realcontrol.ScheduleRealInfo;
12 6 import com.bsth.service.BaseService;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import java.util.Collection;
  10 +import java.util.List;
  11 +import java.util.Map;
13 12  
14 13 @Service
15 14 public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, Long>{
... ... @@ -18,7 +17,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
18 17  
19 18 Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj/*,String nbbm,String jsy,String spy*/);
20 19  
21   - Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks/*, String reason, int spaceNum*/);
  20 + Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks, String reason/*, int spaceNum*/);
22 21  
23 22 List<Map<String, String>> findDriverByLine(String lineCode);
24 23  
... ...
src/main/java/com/bsth/service/realcontrol/dto/SectionRouteCoords.java 0 → 100644
  1 +package com.bsth.service.realcontrol.dto;
  2 +
  3 +/**
  4 + * 线调地图 路段路由DTO
  5 + * Created by panzhao on 2016/12/1.
  6 + */
  7 +public class SectionRouteCoords {
  8 +
  9 + private int id;
  10 +
  11 + private String lineCode;
  12 +
  13 + private String sectionCode;
  14 +
  15 + private String sectionrouteCode;
  16 +
  17 + private int directions;
  18 +
  19 + private String sectionName;
  20 +
  21 + private String gsectionVector;
  22 +
  23 + private Float sectionDistance;
  24 +
  25 + private Float sectionTime;
  26 +
  27 + public int getId() {
  28 + return id;
  29 + }
  30 +
  31 + public void setId(int id) {
  32 + this.id = id;
  33 + }
  34 +
  35 + public String getLineCode() {
  36 + return lineCode;
  37 + }
  38 +
  39 + public void setLineCode(String lineCode) {
  40 + this.lineCode = lineCode;
  41 + }
  42 +
  43 + public String getSectionCode() {
  44 + return sectionCode;
  45 + }
  46 +
  47 + public void setSectionCode(String sectionCode) {
  48 + this.sectionCode = sectionCode;
  49 + }
  50 +
  51 + public String getSectionrouteCode() {
  52 + return sectionrouteCode;
  53 + }
  54 +
  55 + public void setSectionrouteCode(String sectionrouteCode) {
  56 + this.sectionrouteCode = sectionrouteCode;
  57 + }
  58 +
  59 + public int getDirections() {
  60 + return directions;
  61 + }
  62 +
  63 + public void setDirections(int directions) {
  64 + this.directions = directions;
  65 + }
  66 +
  67 + public String getSectionName() {
  68 + return sectionName;
  69 + }
  70 +
  71 + public void setSectionName(String sectionName) {
  72 + this.sectionName = sectionName;
  73 + }
  74 +
  75 + public String getGsectionVector() {
  76 + return gsectionVector;
  77 + }
  78 +
  79 + public void setGsectionVector(String gsectionVector) {
  80 + this.gsectionVector = gsectionVector;
  81 + }
  82 +
  83 + public Float getSectionDistance() {
  84 + return sectionDistance;
  85 + }
  86 +
  87 + public void setSectionDistance(Float sectionDistance) {
  88 + this.sectionDistance = sectionDistance;
  89 + }
  90 +
  91 + public Float getSectionTime() {
  92 + return sectionTime;
  93 + }
  94 +
  95 + public void setSectionTime(Float sectionTime) {
  96 + this.sectionTime = sectionTime;
  97 + }
  98 +}
... ...
src/main/java/com/bsth/service/realcontrol/impl/RealChartsServiceImpl.java
... ... @@ -218,7 +218,7 @@ public class RealChartsServiceImpl implements RealChartsService {
218 218 }
219 219 inStr = " (" + inStr.substring(1) + ")";
220 220  
221   - String sql = "select min(DFSJ) as STARTDATE,max(DFSJ) as ENDDATE,SCHEDULE_DATE_STR,XL_BM,XL_DIR,REAL_EXEC_DATE from (SELECT SCHEDULE_DATE_STR,concat_ws('_',concat_ws('/', dfsj, fcsj_actual),fcno) AS DFSJ,XL_BM,XL_DIR,REAL_EXEC_DATE FROM bsth_c_s_sp_info_real WHERE schedule_date_str LIKE :month AND bc_type = 'normal' AND dfsj IS NOT NULL AND xl_bm IN "+inStr+") t group by SCHEDULE_DATE_STR,XL_BM,XL_DIR,REAL_EXEC_DATE";
  221 + String sql = "select min(DFSJ) as STARTDATE,max(DFSJ) as ENDDATE,SCHEDULE_DATE_STR,XL_BM,XL_DIR,REAL_EXEC_DATE from (SELECT SCHEDULE_DATE_STR,concat_ws('_',concat_ws('/', dfsj, fcsj_actual),fcno) AS DFSJ,XL_BM,XL_DIR,REAL_EXEC_DATE FROM bsth_c_s_sp_info_real WHERE schedule_date_str LIKE :month AND bc_type = 'normal' AND dfsj IS NOT NULL AND xl_bm IN "+inStr+" AND status !=-1) t group by SCHEDULE_DATE_STR,XL_BM,XL_DIR,REAL_EXEC_DATE";
222 222 MapSqlParameterSource parameters = new MapSqlParameterSource();
223 223 parameters.addValue("month", month+"-%");
224 224  
... ...
src/main/java/com/bsth/service/realcontrol/impl/RealMapServiceImpl.java
... ... @@ -4,17 +4,18 @@ import com.bsth.common.ResponseCode;
4 4 import com.bsth.controller.realcontrol.dto.StationSpatialData;
5 5 import com.bsth.entity.CarPark;
6 6 import com.bsth.service.realcontrol.RealMapService;
  7 +import com.bsth.service.realcontrol.dto.SectionRouteCoords;
  8 +import com.bsth.util.TransGPS;
7 9 import com.google.common.base.Splitter;
8 10 import org.slf4j.Logger;
9 11 import org.slf4j.LoggerFactory;
10 12 import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.dao.DataAccessException;
11 14 import org.springframework.jdbc.core.BeanPropertyRowMapper;
12 15 import org.springframework.jdbc.core.JdbcTemplate;
13 16 import org.springframework.stereotype.Service;
14 17  
15   -import java.util.HashMap;
16   -import java.util.List;
17   -import java.util.Map;
  18 +import java.util.*;
18 19  
19 20 /**
20 21 * Created by panzhao on 2016/11/23.
... ... @@ -36,13 +37,13 @@ public class RealMapServiceImpl implements RealMapService {
36 37 //拼接in语句
37 38 String inStr = "";
38 39 for (String code : idArray) {
39   - inStr += (",'" + code+"'");
  40 + inStr += (",'" + code + "'");
40 41 }
41 42 inStr = " (" + inStr.substring(1) + ")";
42 43  
43   - String sql = "select r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,s.G_LONX,s.G_LATY,s.RADIUS,s.SHAPES_TYPE,ST_AsText(s.G_POLYGON_GRID) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in "+inStr+" and r.destroy=0";
  44 + String sql = "select r.LINE_CODE,r.STATION_NAME,r.STATION_CODE,r.STATION_MARK,r.DIRECTIONS,r.DISTANCES,r.TO_TIME, r.VERSIONS,s.G_LONX,s.G_LATY,s.RADIUS,s.SHAPES_TYPE,ST_AsText(s.G_POLYGON_GRID) as G_POLYGON_GRID, r.STATION_ROUTE_CODE from bsth_c_stationroute r inner join bsth_c_station s on r.station=s.id where r.line_code in " + inStr + " and r.destroy=0";
44 45  
45   - List<StationSpatialData> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(StationSpatialData.class));
  46 + List<StationSpatialData> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(StationSpatialData.class));
46 47 rs.put("status", ResponseCode.SUCCESS);
47 48 rs.put("list", list);
48 49 } catch (Exception e) {
... ... @@ -61,7 +62,7 @@ public class RealMapServiceImpl implements RealMapService {
61 62 try {
62 63 String sql = "select ID, AREA,PARK_CODE,PARK_NAME,ST_AsText(G_PARK_POINT) as G_PARK_POINT,G_CENTER_POINT,RADIUS,SHAPES_TYPE from bsth_c_car_park WHERE destroy=0 and shapes_type='d'";
63 64  
64   - List<CarPark> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(CarPark.class));
  65 + List<CarPark> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CarPark.class));
65 66 rs.put("status", ResponseCode.SUCCESS);
66 67 rs.put("list", list);
67 68 } catch (Exception e) {
... ... @@ -71,4 +72,123 @@ public class RealMapServiceImpl implements RealMapService {
71 72 }
72 73 return rs;
73 74 }
  75 +
  76 + @Override
  77 + public Map<String, Object> findRouteByLine(String lineCode) {
  78 + Map<String, Object> rs = new HashMap<>();
  79 + String sql = "SELECT r.ID,r.LINE_CODE,r.SECTION_CODE,r.SECTIONROUTE_CODE,r.DIRECTIONS,s.SECTION_NAME,ST_AsText(s.GSECTION_VECTOR) GSECTION_VECTOR,s.SECTION_DISTANCE,s.SECTION_TIME FROM bsth_c_sectionroute r INNER JOIN bsth_c_section s on r.section_code=s.section_code WHERE r.line_code=? and r.destroy=0 order by sectionroute_code";
  80 + List<SectionRouteCoords> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SectionRouteCoords.class), lineCode);
  81 +
  82 + //排序
  83 + Collections.sort(list, new Comparator<SectionRouteCoords>() {
  84 + @Override
  85 + public int compare(SectionRouteCoords o1, SectionRouteCoords o2) {
  86 + return Integer.parseInt(o1.getSectionrouteCode()) - Integer.parseInt(o2.getSectionrouteCode());
  87 + }
  88 + });
  89 +
  90 + List<String> upList = new ArrayList<>(),
  91 + downList = new ArrayList<>();
  92 +
  93 + String vectorStr = "";
  94 + for (SectionRouteCoords sr : list) {
  95 + vectorStr = sr.getGsectionVector();
  96 + vectorStr = vectorStr.substring(11, vectorStr.length() - 2);
  97 +
  98 + if (sr.getDirections() == 0)
  99 + upList.add(vectorStr);
  100 + else
  101 + downList.add(vectorStr);
  102 + }
  103 +
  104 + rs.put("up", upList);
  105 + rs.put("down", downList);
  106 + rs.put("up_bd", multiWgsToBd(upList));
  107 + rs.put("down_bd", multiWgsToBd(downList));
  108 + rs.put("up_gcj", multiWgsToGcj(upList));
  109 + rs.put("down_gcj", multiWgsToGcj(downList));
  110 +
  111 + rs.put("lineId", lineCode);
  112 + return rs;
  113 + }
  114 +
  115 + @Override
  116 + public Map<String, Object> findRouteAndStationByLine(String lineCode) {
  117 + Map<String, Object> rs = new HashMap<>();
  118 + try {
  119 + //查询路段信息
  120 + String sql = "select r.LINE_CODE,r.SECTION_CODE,r.SECTIONROUTE_CODE,s.SECTION_NAME,ST_AsText(s.GSECTION_VECTOR) as GSECTION_VECTOR, r.DIRECTIONS from bsth_c_sectionroute r INNER JOIN bsth_c_section s on r.section=s.id where r.line_code=? and r.destroy=0";
  121 + List<Map<String, Object>> secList = jdbcTemplate.queryForList(sql, lineCode);
  122 + rs.put("section", secList);
  123 +
  124 + //查询站点信息
  125 + sql="select r.STATION_NAME,r.STATION_ROUTE_CODE,r.LINE_CODE,r.STATION_CODE,r.STATION_MARK,s.G_LONX,s.G_LATY, r.DIRECTIONS from bsth_c_stationroute r INNER JOIN bsth_c_station s on r.station=s.id and r.line_code=? and r.destroy=0";
  126 + List<Map<String, Object>> stationList = jdbcTemplate.queryForList(sql, lineCode);
  127 + rs.put("station", stationList);
  128 +
  129 + rs.put("status", ResponseCode.SUCCESS);
  130 + } catch (DataAccessException e) {
  131 + logger.error("", e);
  132 + rs.put("status", ResponseCode.ERROR);
  133 + }
  134 + return rs;
  135 + }
  136 +
  137 + /**
  138 + * wgs 坐标数组转 百度
  139 + *
  140 + * @param list
  141 + * @return
  142 + */
  143 + private List<String> multiWgsToBd(List<String> list) {
  144 + List<String> bdList = new ArrayList<>();
  145 +
  146 + StringBuilder itemStr;
  147 + String[] subArr, cds;
  148 + TransGPS.Location location;
  149 + for (String item : list) {
  150 + subArr = item.split(",");
  151 +
  152 + itemStr = new StringBuilder();
  153 + for (String coord : subArr) {
  154 + cds = coord.split(" ");
  155 + //城建转经纬度
  156 + //Map<String, Double> map = JWDUtil.ConvertSHToJW(Double.parseDouble(cds[0]), Double.parseDouble(cds[1]));
  157 +
  158 +
  159 + location = TransGPS.bd_encrypt(TransGPS.transformFromWGSToGCJ(TransGPS.LocationMake(Double.parseDouble(cds[0]), Double.parseDouble(cds[1]))));
  160 + itemStr.append(location.getLng() + " " + location.getLat() + ",");
  161 + }
  162 +
  163 + bdList.add(itemStr.substring(0, itemStr.length() - 1));
  164 + }
  165 + return bdList;
  166 + }
  167 +
  168 + /**
  169 + * wgs 坐标数组转 Gcj
  170 + *
  171 + * @param list
  172 + * @return
  173 + */
  174 + private List<String> multiWgsToGcj(List<String> list) {
  175 + List<String> gcjList = new ArrayList<>();
  176 +
  177 + StringBuilder itemStr;
  178 + String[] subArr, cds;
  179 + TransGPS.Location location;
  180 + for (String item : list) {
  181 + subArr = item.split(",");
  182 +
  183 + itemStr = new StringBuilder();
  184 + for (String coord : subArr) {
  185 + cds = coord.split(" ");
  186 + location = TransGPS.transformFromWGSToGCJ(TransGPS.LocationMake(Double.parseDouble(cds[0]), Double.parseDouble(cds[1])));
  187 + itemStr.append(location.getLng() + " " + location.getLat() + ",");
  188 + }
  189 +
  190 + gcjList.add(itemStr.substring(0, itemStr.length() - 1));
  191 + }
  192 + return gcjList;
  193 + }
74 194 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -33,7 +33,6 @@ import com.bsth.service.SectionRouteService;
33 33 import com.bsth.service.impl.BaseServiceImpl;
34 34 import com.bsth.service.realcontrol.ScheduleRealInfoService;
35 35 import com.bsth.util.*;
36   -import com.bsth.util.TransGPS.Location;
37 36 import com.bsth.websocket.handler.SendUtils;
38 37 import com.google.common.base.Splitter;
39 38 import com.google.common.collect.ArrayListMultimap;
... ... @@ -155,7 +154,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
155 154 }
156 155  
157 156 @Override
158   - public Map<String, Object> destroy(String idsStr, /*int spaceAdjust, */String remarks/*, String reason, int spaceNum*/) {
  157 + public Map<String, Object> destroy(String idsStr, /*int spaceAdjust, */String remarks, String reason/*, int spaceNum*/) {
159 158  
160 159 Map<String, Object> map = new HashMap<>();
161 160 List<ScheduleRealInfo> rsList = new ArrayList<>();
... ... @@ -171,7 +170,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
171 170 map.put("msg", "不必要的重复烂班!");
172 171 return map;
173 172 }
174   -
  173 +
  174 + schedule.setAdjustExps(reason);
175 175 schedule.destroy();
176 176 schedule.addRemarks(remarks);
177 177  
... ... @@ -991,7 +991,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
991 991 return "";
992 992  
993 993 String gcjStr = "";
994   - Location location;
  994 + TransGPS.Location location;
995 995 for(String crd : array){
996 996 subArray = crd.split(" ");
997 997 if(subArray.length != 2)
... ... @@ -1680,7 +1680,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1680 1680 @Override
1681 1681 public Map<String, Object> findKMBC1(String jName, String clZbh,
1682 1682 String date, String enddate) {
1683   - List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill2(jName, clZbh, date, enddate);
  1683 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.queryListWaybill4(jName, clZbh, date, enddate);
1684 1684 DecimalFormat format = new DecimalFormat("0.00");
1685 1685 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
1686 1686 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName);
... ...
src/main/java/com/bsth/service/schedule/BService.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +import org.springframework.data.domain.Page;
  4 +import org.springframework.data.domain.Pageable;
  5 +
  6 +import java.io.Serializable;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +/**
  11 + * 基础service接口。
  12 + */
  13 +public interface BService<T, ID extends Serializable> {
  14 + // CRUD 操作
  15 + // Create,Update操作
  16 + T save(T t);
  17 + <S extends T> List<S> bulkSave(List<S> entities); // 批量保存(TODO:待测试)
  18 + // Research操作
  19 + T findById(ID id);
  20 + List<T> findAll();
  21 + Page<T> list(Map<String, Object> param, Pageable pageable);
  22 + List<T> list(Map<String, Object> param);
  23 + // Delete操作
  24 + void delete(ID id) throws ScheduleException;
  25 +}
... ...
src/main/java/com/bsth/service/schedule/CarsService.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +
  5 +/**
  6 + * Created by xu on 16/12/8.
  7 + */
  8 +public interface CarsService extends BService<Cars, Integer> {
  9 + public void validate_nbbh(Cars cars) throws ScheduleException;
  10 + public void validate_clbh(Cars cars) throws ScheduleException;
  11 + public void validate_cph(Cars cars) throws ScheduleException;
  12 + public void validate_sbbh(Cars cars) throws ScheduleException;
  13 +}
... ...
src/main/java/com/bsth/service/schedule/GuideboardInfoService.java
1 1 package com.bsth.service.schedule;
2 2  
3 3 import com.bsth.entity.schedule.GuideboardInfo;
4   -import com.bsth.service.BaseService;
5 4  
6 5 /**
7 6 * Created by xu on 16/5/11.
8 7 */
9   -public interface GuideboardInfoService extends BaseService<GuideboardInfo, Long> {
  8 +public interface GuideboardInfoService extends BService<GuideboardInfo, Long> {
  9 + public void validate(GuideboardInfo guideboardInfo) throws ScheduleException;
  10 + public void toggleCancel(Long id) throws ScheduleException;
10 11 }
... ...
src/main/java/com/bsth/service/schedule/GuideboardInfoServiceImpl.java deleted 100644 → 0
1   -package com.bsth.service.schedule;
2   -
3   -import com.bsth.entity.schedule.GuideboardInfo;
4   -import com.bsth.service.impl.BaseServiceImpl;
5   -import org.springframework.stereotype.Service;
6   -
7   -/**
8   - * Created by xu on 16/5/11.
9   - */
10   -@Service
11   -public class GuideboardInfoServiceImpl extends BaseServiceImpl<GuideboardInfo, Long> implements GuideboardInfoService {
12   -}
src/main/java/com/bsth/service/schedule/ScheduleException.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +/**
  4 + * Created by xu on 16/12/5.
  5 + */
  6 +public class ScheduleException extends Exception {
  7 + public ScheduleException(String message) {
  8 + super("计划调度业务错误==>>" + message);
  9 + }
  10 +}
... ...
src/main/java/com/bsth/service/schedule/impl/BServiceImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.impl;
  2 +
  3 +import com.bsth.entity.search.CustomerSpecs;
  4 +import com.bsth.repository.BaseRepository;
  5 +import com.bsth.service.schedule.BService;
  6 +import com.bsth.service.schedule.ScheduleException;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.beans.factory.annotation.Value;
  11 +import org.springframework.data.domain.Page;
  12 +import org.springframework.data.domain.Pageable;
  13 +import org.springframework.data.jpa.domain.Specification;
  14 +
  15 +import javax.persistence.EntityManager;
  16 +import java.io.Serializable;
  17 +import java.util.ArrayList;
  18 +import java.util.List;
  19 +import java.util.Map;
  20 +
  21 +/**
  22 + * 基础BService实现。
  23 + */
  24 +public class BServiceImpl<T, ID extends Serializable> implements BService<T, ID> {
  25 + @Autowired
  26 + private BaseRepository<T, ID> baseRepository;
  27 + @Autowired
  28 + private EntityManager entityManager;
  29 + @Value("${hibernate.jdbc.batch_size}")
  30 + private int batchSize;
  31 +
  32 + /** 日志记录器 */
  33 + protected Logger logger = LoggerFactory.getLogger(this.getClass());
  34 +
  35 + // CRUD 操作
  36 + // Create,Update操作
  37 + @Override
  38 + public T save(T t) {
  39 + if (logger.isDebugEnabled()) {
  40 + logger.debug("save...");
  41 + }
  42 + return baseRepository.save(t);
  43 + }
  44 + @Override
  45 + public <S extends T> List<S> bulkSave(List<S> entities) {
  46 + if (logger.isDebugEnabled()) {
  47 + logger.debug("bulkSave...");
  48 + }
  49 +
  50 + // 不使用内部批量保存,自己实现批量保存
  51 + final List<S> savedEntities = new ArrayList<>(entities.size());
  52 + int i = 0;
  53 + for (S t : entities) {
  54 + entityManager.persist(t);
  55 + savedEntities.add(t);
  56 + i++;
  57 + if (i % batchSize == 0) {
  58 + entityManager.flush();
  59 + entityManager.clear();
  60 + }
  61 + }
  62 + return savedEntities;
  63 + }
  64 +
  65 + // Research操作
  66 + @Override
  67 + public T findById(ID id) {
  68 + if (logger.isDebugEnabled()) {
  69 + logger.debug("findById...");
  70 + }
  71 +
  72 + return baseRepository.findOne(id);
  73 + }
  74 + @Override
  75 + public List<T> findAll() {
  76 + if (logger.isDebugEnabled()) {
  77 + logger.debug("findAll...");
  78 + }
  79 +
  80 + return (List<T>) baseRepository.findAll();
  81 + }
  82 + @Override
  83 + public Page<T> list(Map<String, Object> param, Pageable pageable) {
  84 + if (logger.isDebugEnabled()) {
  85 + logger.debug("list(...,pageable)...");
  86 + }
  87 +
  88 + // 自定义查询参数
  89 + Specification<T> specification = new CustomerSpecs<>(param);
  90 + return baseRepository.findAll(specification, pageable);
  91 + }
  92 + @Override
  93 + public List<T> list(Map<String, Object> param) {
  94 + if (logger.isDebugEnabled()) {
  95 + logger.debug("list...");
  96 + }
  97 +
  98 + // 自定义查询参数
  99 + Specification<T> specification = new CustomerSpecs<>(param);
  100 + return baseRepository.findAll(specification);
  101 + }
  102 + // Delete操作
  103 + @Override
  104 + public void delete(ID id) throws ScheduleException {
  105 + if (logger.isDebugEnabled()) {
  106 + logger.debug("delete...");
  107 + }
  108 +
  109 + baseRepository.delete(id);
  110 + }
  111 +}
... ...
src/main/java/com/bsth/service/schedule/impl/CarsServiceImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.impl;
  2 +
  3 +import com.bsth.entity.Cars;
  4 +import com.bsth.service.schedule.CarsService;
  5 +import com.bsth.service.schedule.ScheduleException;
  6 +import org.springframework.stereotype.Service;
  7 +import org.springframework.transaction.annotation.Transactional;
  8 +import org.springframework.util.CollectionUtils;
  9 +
  10 +import java.util.HashMap;
  11 +import java.util.Map;
  12 +
  13 +/**
  14 + * Created by xu on 16/12/8.
  15 + */
  16 +@Service(value = "carsServiceImpl_sc")
  17 +public class CarsServiceImpl extends BServiceImpl<Cars, Integer> implements CarsService {
  18 +
  19 + @Override
  20 + @Transactional
  21 + public void validate_nbbh(Cars cars) throws ScheduleException {
  22 + // 查询条件
  23 + Map<String, Object> param = new HashMap<>();
  24 + if (cars.getId() != null) {
  25 + param.put("id_ne", cars.getId());
  26 + }
  27 + param.put("insideCode_eq", cars.getInsideCode());
  28 + if (!CollectionUtils.isEmpty(list(param))) {
  29 + throw new ScheduleException("车辆内部编号/自编号重复");
  30 + }
  31 + }
  32 +
  33 + @Override
  34 + @Transactional
  35 + public void validate_clbh(Cars cars) throws ScheduleException {
  36 + // 查询条件
  37 + Map<String, Object> param = new HashMap<>();
  38 + if (cars.getId() != null) {
  39 + param.put("id_ne", cars.getId());
  40 + }
  41 + param.put("carCode_eq", cars.getCarCode());
  42 + if (!CollectionUtils.isEmpty(list(param))) {
  43 + throw new ScheduleException("车辆编号重复");
  44 + }
  45 + }
  46 +
  47 + @Override
  48 + @Transactional
  49 + public void validate_cph(Cars cars) throws ScheduleException {
  50 + // 查询条件
  51 + Map<String, Object> param = new HashMap<>();
  52 + if (cars.getId() != null) {
  53 + param.put("id_ne", cars.getId());
  54 + }
  55 + param.put("carPlate_eq", cars.getCarPlate());
  56 + if (!CollectionUtils.isEmpty(list(param))) {
  57 + throw new ScheduleException("车牌号重复");
  58 + }
  59 + }
  60 +
  61 + @Override
  62 + @Transactional
  63 + public void validate_sbbh(Cars cars) throws ScheduleException {
  64 + // 查询条件
  65 + Map<String, Object> param = new HashMap<>();
  66 + if (cars.getId() != null) {
  67 + param.put("id_ne", cars.getId());
  68 + }
  69 + param.put("equipmentCode_eq", cars.getEquipmentCode());
  70 + if (!CollectionUtils.isEmpty(list(param))) {
  71 + throw new ScheduleException("设备编号重复");
  72 + }
  73 + }
  74 +}
... ...
src/main/java/com/bsth/service/schedule/impl/GuideboardInfoServiceImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.impl;
  2 +
  3 +import com.bsth.entity.schedule.GuideboardInfo;
  4 +import com.bsth.entity.schedule.TTInfoDetail;
  5 +import com.bsth.service.schedule.GuideboardInfoService;
  6 +import com.bsth.service.schedule.ScheduleException;
  7 +import com.bsth.service.schedule.TTInfoDetailService;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Service;
  10 +import org.springframework.util.CollectionUtils;
  11 +
  12 +import javax.transaction.Transactional;
  13 +import java.util.HashMap;
  14 +import java.util.List;
  15 +import java.util.Map;
  16 +
  17 +/**
  18 + * 路牌信息服务。
  19 + */
  20 +@Service
  21 +public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long> implements GuideboardInfoService {
  22 + @Autowired
  23 + private TTInfoDetailService ttInfoDetailService;
  24 +
  25 + // 验证方法
  26 + @Transactional
  27 + public void validate(GuideboardInfo guideboardInfo) throws ScheduleException {
  28 + // 查询条件
  29 + Map<String, Object> param = new HashMap<>();
  30 + if (guideboardInfo.getId() != null)
  31 + param.put("id_ne", guideboardInfo.getId());
  32 +
  33 + if (guideboardInfo.getXl() == null || guideboardInfo.getXl().getId() == null) {
  34 + throw new ScheduleException("线路未选择");
  35 + } else {
  36 + param.put("xl.id_eq", guideboardInfo.getXl().getId());
  37 +
  38 +// param.put("isCancel_eq", false); // 作废的也算入判定区
  39 + if (guideboardInfo.getLpNo() != null) {
  40 + if (guideboardInfo.getLpName() != null) {
  41 + // 如果两个都写了,分开查询
  42 + param.put("lpNo_eq", guideboardInfo.getLpNo());
  43 + if (!CollectionUtils.isEmpty(list(param))) {
  44 + throw new ScheduleException("路牌编号重复");
  45 + }
  46 + param.remove("lpNo_eq");
  47 + param.put("lpName_eq", guideboardInfo.getLpName());
  48 + if (!CollectionUtils.isEmpty(list(param))) {
  49 + throw new ScheduleException("路牌名称重复");
  50 + }
  51 +
  52 + } else {
  53 + param.put("lpNo_eq", guideboardInfo.getLpNo());
  54 + if (!CollectionUtils.isEmpty(list(param))) {
  55 + throw new ScheduleException("路牌编号重复");
  56 + }
  57 + }
  58 + } else {
  59 + if (guideboardInfo.getLpName() != null) {
  60 + param.put("lpName_eq", guideboardInfo.getLpName());
  61 + if (!CollectionUtils.isEmpty(list(param))) {
  62 + throw new ScheduleException("路牌名字重复");
  63 + }
  64 + } else {
  65 + // 都为空
  66 + throw new ScheduleException("路牌编号名字都为空");
  67 + }
  68 + }
  69 + }
  70 +
  71 + }
  72 +
  73 + @Transactional
  74 + @Override
  75 + public void delete(Long aLong) throws ScheduleException {
  76 + // 删除操作就是作废操作
  77 + toggleCancel(aLong);
  78 + }
  79 +
  80 + // 作废方法
  81 + @Transactional
  82 + public void toggleCancel(Long id) throws ScheduleException {
  83 + GuideboardInfo guideboardInfo = findById(id);
  84 + Map<String, Object> param = new HashMap<>();
  85 + if (guideboardInfo.getIsCancel()) {
  86 + validate(guideboardInfo);
  87 + guideboardInfo.setIsCancel(false);
  88 + } else {
  89 + param.clear();
  90 + param.put("xl.id_eq", guideboardInfo.getXl().getId());
  91 + param.put("ttinfo.isCancel_eq", false);
  92 + param.put("lp.id_eq", guideboardInfo.getId());
  93 + List<TTInfoDetail> ttInfoDetailList = (List<TTInfoDetail>) ttInfoDetailService.list(param);
  94 + if (CollectionUtils.isEmpty(ttInfoDetailList)) {
  95 + guideboardInfo.setIsCancel(true);
  96 + } else {
  97 + throw new ScheduleException("在时刻表" +
  98 + ttInfoDetailList.get(0).getTtinfo().getName() +
  99 + "已使用,无法删除!");
  100 + }
  101 + }
  102 + }
  103 +
  104 +}
... ...
src/main/resources/static/pages/control/lineallot/allot.html
... ... @@ -403,8 +403,9 @@ $(function(){
403 403 }
404 404 var f = arguments.callee
405 405 ,item = lsData[i];
406   -
407   - $.get('/realSchedule/findRouteByLine', {lineCode: item.lineCode}, function(rs){
  406 +
  407 + //$.get('/realMap/findRouteByLine', {lineCode: item.lineCode}, function(rs){
  408 + $.get('/realSchedule/findRouteByLine', {lineCode: item.lineCode}, function(rs){
408 409 if(rs && rs.lineId){
409 410 cacheData[item.lineCode] = rs;
410 411 i ++;
... ...
src/main/resources/static/pages/forms/statement/allline.html
1 1 <style type="text/css">
2   - .table-bordered {
3   - border: 1px solid; }
4   - .table-bordered > thead > tr > th,
5   - .table-bordered > thead > tr > td,
6   - .table-bordered > tbody > tr > th,
7   - .table-bordered > tbody > tr > td,
8   - .table-bordered > tfoot > tr > th,
9   - .table-bordered > tfoot > tr > td {
10   - border: 1px solid; }
11   - .table-bordered > thead > tr > th,
12   - .table-bordered > thead > tr > td {
13   - border-bottom-width: 2px;
14   - text-align: center;}
15   -
16   - .table > tbody + tbody {
17   - border-top: 1px solid; }
18   - .table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{ text-align: center; }
19   -.table-checkable tr > th:first-child, .table-checkable tr > td:first-child {
20   - text-align: center;
21   - max-width: initial;
22   - min-width: 40px;
23   - padding-left: 0;
24   - padding-right: 0;
  2 +.table-bordered {
  3 + border: 1px solid;
25 4 }
26 5  
  6 +.table-bordered>thead>tr>th, .table-bordered>thead>tr>td,
  7 + .table-bordered>tbody>tr>th, .table-bordered>tbody>tr>td,
  8 + .table-bordered>tfoot>tr>th, .table-bordered>tfoot>tr>td {
  9 + border: 1px solid;
  10 +}
  11 +
  12 +.table-bordered>thead>tr>th, .table-bordered>thead>tr>td {
  13 + border-bottom-width: 2px;
  14 + text-align: center;
  15 +}
  16 +
  17 +.table>tbody+tbody {
  18 + border-top: 1px solid;
  19 +}
  20 +
  21 +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th,
  22 + .table>thead>tr>td, .table>thead>tr>th {
  23 + text-align: center;
  24 +}
  25 +
  26 +.table-checkable tr>th:first-child, .table-checkable tr>td:first-child {
  27 + text-align: center;
  28 + max-width: initial;
  29 + min-width: 40px;
  30 + padding-left: 0;
  31 + padding-right: 0;
  32 +}
27 33 </style>
28 34  
29 35 <div class="page-head">
... ... @@ -37,51 +43,64 @@
37 43 <div class="portlet light porttlet-fit bordered">
38 44 <div class="portlet-title">
39 45 <form class="form-inline" action="" method="post">
40   - <div style="display: inline-block;">
41   - <span class="item-label" style="width: 80px;">线路: </span>
42   - <select class="form-control" name="line" id="line" style="width: 120px;"></select>
43   - </div>
44   - <div style="display: inline-block;margin-left: 15px;">
45   - <span class="item-label" style="width: 80px;">开始时间: </span>
46   - <input class="form-control" type="text" id="startDate" style="width: 120px;"/>
47   - </div>
48   - <div style="display: inline-block;margin-left: 15px;">
49   - <span class="item-label" style="width: 80px;">结束时间: </span>
50   - <input class="form-control" type="text" id="endDate" style="width: 120px;"/>
51   - </div>
52   - <div class="form-group">
53   - <input class="btn btn-default" type="button" id="query" value="筛选"/>
54   - <input class="btn btn-default" type="button" id="export" value="导出"/>
55   - </div>
  46 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_allline">
  47 + <span class="item-label" style="width: 80px;">公司: </span>
  48 + <select class="form-control" name="company" id="gsdmAllline" style="width: 140px;"></select>
  49 + </div>
  50 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_allline">
  51 + <span class="item-label" style="width: 80px;">分公司: </span>
  52 + <select class="form-control" name="subCompany" id="fgsdmAllline" style="width: 140px;"></select>
  53 + </div> -->
  54 + <div style="display: inline-block;">
  55 + <span class="item-label" style="width: 80px;">线路: </span> <select
  56 + class="form-control" name="line" id="line" style="width: 120px;"></select>
  57 + </div>
  58 + <div style="display: inline-block; margin-left: 15px;">
  59 + <span class="item-label" style="width: 80px;">开始时间: </span> <input
  60 + class="form-control" type="text" id="startDate"
  61 + style="width: 120px;" />
  62 + </div>
  63 + <div style="display: inline-block; margin-left: 15px;">
  64 + <span class="item-label" style="width: 80px;">结束时间: </span> <input
  65 + class="form-control" type="text" id="endDate"
  66 + style="width: 120px;" />
  67 + </div>
  68 + <div class="form-group">
  69 + <input class="btn btn-default" type="button" id="query" value="筛选" />
  70 + <input class="btn btn-default" type="button" id="export"
  71 + value="导出" />
  72 + </div>
56 73 </form>
57 74 </div>
58 75 <div class="portlet-body">
59   - <div class="table-container" style="margin-top: 20px;overflow:auto;min-width: 1000px">
60   - <table class="table table-bordered table-hover table-checkable" id="forms1">
  76 + <div class="table-container"
  77 + style="margin-top: 20px; overflow: auto; min-width: 1000px">
  78 + <table class="table table-bordered table-hover table-checkable"
  79 + id="forms1">
61 80 <thead>
62 81 <tr>
63 82 <th colspan="15">营运线路名称统计表</th>
64 83 </tr>
65 84 <tr>
66   - <td rowspan="2" style=" padding-top: 20px;">日期</td>
67   - <td rowspan="2" style=" padding-top: 20px;">公司</td>
68   - <td rowspan="2" style=" padding-top: 20px;">直属公司</td>
69   - <td rowspan="2" style=" padding-top: 20px;">线路名称</td>
  85 + <td rowspan="2" style="padding-top: 20px;">日期</td>
  86 + <td rowspan="2" style="padding-top: 20px;">公司</td>
  87 + <td rowspan="2" style="padding-top: 20px;">直属公司</td>
  88 + <td rowspan="2" style="padding-top: 20px;">线路名称</td>
70 89 <td colspan="2">出车数</td>
71   - <td rowspan="2" >出车率</td>
72   - <td colspan="2" >班次数</td>
73   - <td rowspan="2" style=" padding-top: 20px;">班次执行率</td>
74   - <td rowspan="2" style=" padding-top: 20px;">说明</td>
  90 + <td rowspan="2">出车率</td>
  91 + <td colspan="2">班次数</td>
  92 + <td rowspan="2" style="padding-top: 20px;">班次执行率</td>
  93 + <td rowspan="2" style="padding-top: 20px;">说明</td>
75 94 </tr>
76 95 <tr>
77 96 <td>计划</td>
78 97 <td>实际</td>
79   - <td>计划</td>
  98 + <td>计划</td>
80 99 <td>实际</td>
81 100 </tr>
82 101 </thead>
83 102 <tbody id="tbody">
84   -
  103 +
85 104 </tbody>
86 105 <tr>
87 106 <td colspan="1">分类汇总</td>
... ... @@ -104,96 +123,178 @@
104 123 </div>
105 124  
106 125 <script>
107   - $(function(){
  126 + $(function() {
108 127 // 关闭左侧栏
109 128 if (!$('body').hasClass('page-sidebar-closed'))
110 129 $('.menu-toggler.sidebar-toggler').click();
111   -
  130 +
112 131 $("#startDate,#endDate").datetimepicker({
113 132 format : 'YYYY-MM-DD',
114 133 locale : 'zh-cn'
115 134 });
116   -
117   - $.get('/basic/lineCode2Name',function(result){
118   - var data=[];
119   -
120   - for(var code in result){
121   - data.push({id: code, text: result[code]});
  135 +
  136 + var obj = [];
  137 + $.get('/user/companyData', function(result) {
  138 + obj = result;
  139 + var options = '';
  140 + for (var i = 0; i < obj.length; i++) {
  141 + options += '<option value="'+obj[i].companyCode+'">'
  142 + + obj[i].companyName + '</option>';
122 143 }
123   - initPinYinSelect2('#line',data,'');
124   -
125   - })
126 144  
127   - var line;
128   - var startDate;
129   - var endDate;
130   - $("#query").on("click",function(){
131   -
132   - line = $("#line").val();
133   - startDate1=$("#startDate").val();
134   - endDate1=$("#endDate").val();
135   -
136   - if(startDate1!=''&&endDate1!=''){
137   - $post('/mcy_forms/allline',{line:line,startDate:$("#startDate").val(),endDate:$("#endDate").val(),type:'query'},function(result){
138   - // 把数据填充到模版中
139   - var tbodyHtml = template('allline',{list:result});
140   - // 把渲染好的模版html文本追加到表格中
141   - $('#tbody').html(tbodyHtml);
142   - line = $("#line").val();
143   - startDate = $("#startDate").val();
144   - endDate = $("#endDate").val();
145   - $("#sDate").text(startDate);
146   - $("#eDate").text(endDate);
147   -
148   - var total_jh = 0;
149   - var total_sj = 0,total_ccl = 0,total_bcjh = 0;
150   - var total_bcjh = 0,total_bcsj = 0,total_bczxl = 0;
151   - var total_gs=0;
152   - var total_zhgs=0;
153   - $.each(result, function(i, obj) {
154   - total_gs +=Number(obj.gsgs);
155   - total_zhgs +=Number(obj.fgsgs);
156   - total_jh = Number(obj.cchjh)+Number(total_jh);
157   - total_sj = Number(obj.cchsj)+Number(total_sj);
158   -
159   - total_ccl =(Number(total_sj)/Number(total_jh))*100;
160   - total_bcjh = Number(obj.bcjh)+Number(total_bcjh);
161   - total_bcsj = Number(obj.bcsj)+Number(total_bcsj);
162   - total_bczxl = (Number(total_bcsj)/Number(total_bcjh))*100;
163   -
164   - });
165   - $("#total_gs").text(total_gs);
166   - $("#total_zhgs").text(total_zhgs);
167   - $("#total_jh").text(total_jh);
168   - $("#total_sj").text(total_sj);
169   - $("#total_ccl").text(total_ccl.toFixed(2)+'%');
170   - $("#total_bcjh").text(total_bcjh);
171   - $("#total_bcsj").text(total_bcsj);
172   - $("#total_bczxl").text(total_bczxl.toFixed(2)+'%');
173   -
174   - var temp = {};
175   - var today_account = 0;
176   -
177   - temp["line"] = $("#line").text();
178   - $.each(result, function(i, obj) {
179   - if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){
180   - today_account++;
181   - }
182   - obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");
183   - });
184   -
185   - })
186   -
187   - }else{
188   - alert("请选择时间范围!");
189   - }
190   - });
191   -
192   - $("#export").on("click",function(){
193   - $post('/mcy_export/alllineExport',{line:line,startDate:startDate,endDate:endDate,type:'export'},function(result){
194   - window.open("/downloadFile/download?fileName=营运线路名称统计表"+moment(startDate).format("YYYYMMDD"));
  145 + if (obj.length == 0) {
  146 + $("#gsdmDiv_allline").css('display', 'none');
  147 + $('#fgsdmDiv_allline').css('display', 'none');
  148 + } else if (obj.length == 1) {
  149 + $("#gsdmDiv_allline").css('display', 'none');
  150 + if (obj[0].children.length == 1 || obj[0].children.length == 0)
  151 + $('#fgsdmDiv_allline').css('display', 'none');
  152 + }
  153 + $('#gsdmAllline').html(options);
  154 + updateCompany();
195 155 });
196   - });
  156 +
  157 + $("#gsdmAllline").on("change", updateCompany);
  158 + function updateCompany() {
  159 + var company = $('#gsdmAllline').val();
  160 + var options = '';
  161 + for (var i = 0; i < obj.length; i++) {
  162 + if (obj[i].companyCode == company) {
  163 + var children = obj[i].children;
  164 + for (var j = 0; j < children.length; j++) {
  165 + options += '<option value="'+children[j].code+'">'
  166 + + children[j].name + '</option>';
  167 + }
  168 + }
  169 + }
  170 + $('#fgsdmAllline').html(options);
  171 + }
  172 +
  173 + $.get('/basic/lineCode2Name', function(result) {
  174 + var data = [];
  175 +
  176 + for ( var code in result) {
  177 + data.push({
  178 + id : code,
  179 + text : result[code]
  180 + });
  181 + }
  182 + initPinYinSelect2('#line', data, '');
  183 +
  184 + })
  185 +
  186 + var line;
  187 + var startDate;
  188 + var endDate;
  189 + var gsdmAllline;
  190 + var fgsdmAllline;
  191 + $("#query").on("click",function() {
  192 + line = $("#line").val();
  193 + startDate1 = $("#startDate").val();
  194 + endDate1 = $("#endDate").val();
  195 + gsdmAllline = $("#gsdmAllline").val();
  196 + fgsdmAllline = $("#fgsdmAllline").val();
  197 + if (startDate1 != '' && endDate1 != '') {
  198 + $post('/mcy_forms/allline',{
  199 + /* gsdmAllline:gsdmAllline,fgsdmAllline:fgsdmAllline, */
  200 + line : line,
  201 + startDate : $("#startDate").val(),
  202 + endDate : $("#endDate").val(),
  203 + type : 'query'
  204 + },
  205 + function(result) {
  206 + // 把数据填充到模版中
  207 + var tbodyHtml = template('allline',
  208 + {
  209 + list : result
  210 + });
  211 + // 把渲染好的模版html文本追加到表格中
  212 + $('#tbody').html(tbodyHtml);
  213 + line = $("#line").val();
  214 + startDate = $("#startDate").val();
  215 + endDate = $("#endDate").val();
  216 + $("#sDate").text(startDate);
  217 + $("#eDate").text(endDate);
  218 +
  219 + var total_jh = 0;
  220 + var total_sj = 0, total_ccl = 0, total_bcjh = 0;
  221 + var total_bcjh = 0, total_bcsj = 0, total_bczxl = 0;
  222 + var total_gs = 0;
  223 + var total_zhgs = 0;
  224 + $
  225 + .each(
  226 + result,
  227 + function(i, obj) {
  228 + total_gs += Number(obj.gsgs);
  229 + total_zhgs += Number(obj.fgsgs);
  230 + total_jh = Number(obj.cchjh)
  231 + + Number(total_jh);
  232 + total_sj = Number(obj.cchsj)
  233 + + Number(total_sj);
  234 +
  235 + total_ccl = (Number(total_sj) / Number(total_jh)) * 100;
  236 + total_bcjh = Number(obj.bcjh)
  237 + + Number(total_bcjh);
  238 + total_bcsj = Number(obj.bcsj)
  239 + + Number(total_bcsj);
  240 + total_bczxl = (Number(total_bcsj) / Number(total_bcjh)) * 100;
  241 +
  242 + });
  243 + $("#total_gs").text(total_gs);
  244 + $("#total_zhgs").text(total_zhgs);
  245 + $("#total_jh").text(total_jh);
  246 + $("#total_sj").text(total_sj);
  247 + $("#total_ccl").text(
  248 + total_ccl.toFixed(2) + '%');
  249 + $("#total_bcjh").text(total_bcjh);
  250 + $("#total_bcsj").text(total_bcsj);
  251 + $("#total_bczxl").text(
  252 + total_bczxl.toFixed(2)
  253 + + '%');
  254 +
  255 + var temp = {};
  256 + var today_account = 0;
  257 +
  258 + temp["line"] = $("#line").text();
  259 + $
  260 + .each(
  261 + result,
  262 + function(i, obj) {
  263 + if (moment(
  264 + obj.schedule_date_str)
  265 + .format(
  266 + "YYYY-MM-DD") == moment(
  267 + obj.startDate)
  268 + .format(
  269 + "YYYY-MM-DD")) {
  270 + today_account++;
  271 + }
  272 + obj.updateDate = moment(
  273 + obj.startDate)
  274 + .format(
  275 + "YYYY-MM-DD HH:mm:ss");
  276 + });
  277 +
  278 + })
  279 +
  280 + } else {
  281 + alert("请选择时间范围!");
  282 + }
  283 + });
  284 +
  285 + $("#export").on(
  286 + "click",
  287 + function() {
  288 + $post('/mcy_export/alllineExport', {
  289 + line : line,
  290 + startDate : startDate,
  291 + endDate : endDate,
  292 + type : 'export'
  293 + }, function(result) {
  294 + window.open("/downloadFile/download?fileName=营运线路名称统计表"
  295 + + moment(startDate).format("YYYYMMDD"));
  296 + });
  297 + });
197 298 });
198 299 </script>
199 300 <script type="text/html" id="allline">
... ...
src/main/resources/static/pages/forms/statement/changetochange.html
1 1 <style type="text/css">
2   - .table-bordered {
3   - border: 1px solid; }
4   - .table-bordered > thead > tr > th,
5   - .table-bordered > thead > tr > td,
6   - .table-bordered > tbody > tr > th,
7   - .table-bordered > tbody > tr > td,
8   - .table-bordered > tfoot > tr > th,
9   - .table-bordered > tfoot > tr > td {
10   - border: 1px solid; }
11   - .table-bordered > thead > tr > th,
12   - .table-bordered > thead > tr > td {
13   - border-bottom-width: 2px;
14   - text-align: center;}
15   -
16   - .table > tbody + tbody {
17   - border-top: 1px solid; }
18   - .table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{ text-align: center; }
19   -.table-checkable tr > th:first-child, .table-checkable tr > td:first-child {
20   - text-align: center;
21   - max-width: initial;
22   - min-width: 40px;
23   - padding-left: 0;
24   - padding-right: 0;
  2 +.table-bordered {
  3 + border: 1px solid;
25 4 }
26 5  
  6 +.table-bordered>thead>tr>th, .table-bordered>thead>tr>td,
  7 + .table-bordered>tbody>tr>th, .table-bordered>tbody>tr>td,
  8 + .table-bordered>tfoot>tr>th, .table-bordered>tfoot>tr>td {
  9 + border: 1px solid;
  10 +}
  11 +
  12 +.table-bordered>thead>tr>th, .table-bordered>thead>tr>td {
  13 + border-bottom-width: 2px;
  14 + text-align: center;
  15 +}
  16 +
  17 +.table>tbody+tbody {
  18 + border-top: 1px solid;
  19 +}
  20 +
  21 +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th,
  22 + .table>thead>tr>td, .table>thead>tr>th {
  23 + text-align: center;
  24 +}
  25 +
  26 +.table-checkable tr>th:first-child, .table-checkable tr>td:first-child {
  27 + text-align: center;
  28 + max-width: initial;
  29 + min-width: 40px;
  30 + padding-left: 0;
  31 + padding-right: 0;
  32 +}
27 33 </style>
28 34  
29 35 <div class="page-head">
... ... @@ -37,58 +43,71 @@
37 43 <div class="portlet light porttlet-fit bordered">
38 44 <div class="portlet-title">
39 45 <form class="form-inline" action="" method="post">
40   - <div style="display: inline-block;">
  46 + <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_change">
  47 + <span class="item-label" style="width: 80px;">公司: </span>
  48 + <select class="form-control" name="company" id="gsdmChange" style="width: 140px;"></select>
  49 + </div>
  50 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_change">
  51 + <span class="item-label" style="width: 80px;">分公司: </span>
  52 + <select class="form-control" name="subCompany" id="fgsdmChange" style="width: 140px;"></select>
  53 + </div>
  54 + <div style="display: inline-block;">
41 55 <span class="item-label" style="width: 80px;">线路: </span>
42   - <select class="form-control" name="line" id="line" style="width: 120px;"></select>
43   - </div>
44   - <div style="display: inline-block;margin-left: 15px;">
45   - <span class="item-label" style="width: 80px;">开始时间: </span>
46   - <input class="form-control" type="text" id="startDate" style="width: 120px;"/>
  56 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
47 57 </div>
48   - <div style="display: inline-block;margin-left: 15px;">
49   - <span class="item-label" style="width: 80px;">结束时间: </span>
50   - <input class="form-control" type="text" id="endDate" style="width: 120px;"/>
51   - </div>
52   - <div style="display: inline-block;">
53   - <span class="item-label" style="width: 120px;">类型: </span>
54   - <select class="form-control" id="sel">
55   - <option value="">请选择</option>
56   - <option value="1">换人</option>
57   - <option value="2">换车</option>
  58 + <div style="display: inline-block; margin-left: 15px;">
  59 + <span class="item-label" style="width: 80px;">开始时间: </span> <input
  60 + class="form-control" type="text" id="startDate"
  61 + style="width: 120px;" />
  62 + </div>
  63 + <div style="display: inline-block; margin-left: 15px;">
  64 + <span class="item-label" style="width: 80px;">结束时间: </span> <input
  65 + class="form-control" type="text" id="endDate"
  66 + style="width: 120px;" />
  67 + </div>
  68 + <div style="display: inline-block;">
  69 + <span class="item-label" style="width: 120px;">类型: </span> <select
  70 + class="form-control" id="sel">
  71 + <option value="">请选择</option>
  72 + <option value="1">换人</option>
  73 + <option value="2">换车</option>
58 74 </select>
59 75 </div>
60   - <div class="form-group">
61   - <input class="btn btn-default" type="button" id="query" value="筛选"/>
62   - <input class="btn btn-default" type="button" id="export" value="导出"/>
63   - </div>
  76 + <div class="form-group">
  77 + <input class="btn btn-default" type="button" id="query" value="筛选" />
  78 + <input class="btn btn-default" type="button" id="export"
  79 + value="导出" />
  80 + </div>
64 81 </form>
65 82 </div>
66 83 <div class="portlet-body">
67   - <div class="table-container" style="margin-top: 20px;overflow:auto;min-width: 1000px">
68   - <table class="table table-bordered table-hover table-checkable" id="forms">
  84 + <div class="table-container"
  85 + style="margin-top: 20px; overflow: auto; min-width: 1000px">
  86 + <table class="table table-bordered table-hover table-checkable"
  87 + id="forms">
69 88 <thead>
70 89 <tr>
71 90 <th colspan="15">换人换车情况统计表</th>
72 91 </tr>
73 92 <tr>
74   - <td rowspan="3" style=" padding-top: 50px;">日期</td>
75   - <td rowspan="3" style=" padding-top: 50px;">公司</td>
76   - <td rowspan="3" style=" padding-top: 50px;">分公司</td>
77   - <td rowspan="3" style=" padding-top: 50px;">线路</td>
78   - <td rowspan="3" style=" padding-top: 50px;">路牌</td>
79   - <td rowspan="3" style=" padding-top: 50px;">发生时间</td>
80   - <td rowspan="3" style=" padding-top: 50px;">修改时间</td>
  93 + <td rowspan="3" style="padding-top: 50px;">日期</td>
  94 + <td rowspan="3" style="padding-top: 50px;">公司</td>
  95 + <td rowspan="3" style="padding-top: 50px;">分公司</td>
  96 + <td rowspan="3" style="padding-top: 50px;">线路</td>
  97 + <td rowspan="3" style="padding-top: 50px;">路牌</td>
  98 + <td rowspan="3" style="padding-top: 50px;">发生时间</td>
  99 + <td rowspan="3" style="padding-top: 50px;">修改时间</td>
81 100 <td colspan="2">配车</td>
82 101 <td colspan="4">人员</td>
83   - <td rowspan="3" style=" padding-top: 50px;">原因</td>
84   - <td rowspan="3" style=" padding-top: 50px;">修改人</td>
  102 + <td rowspan="3" style="padding-top: 50px;">原因</td>
  103 + <td rowspan="3" style="padding-top: 50px;">修改人</td>
85 104 </tr>
86 105 <tr>
87 106 <td>计划</td>
88 107 <td>实际</td>
89 108 <td colspan="2">计划</td>
90 109 <td colspan="2">实际</td>
91   -
  110 +
92 111 </tr>
93 112 <tr>
94 113 <td>车号</td>
... ... @@ -100,7 +119,7 @@
100 119 </tr>
101 120 </thead>
102 121 <tbody>
103   -
  122 +
104 123 </tbody>
105 124 </table>
106 125 </div>
... ... @@ -110,94 +129,121 @@
110 129 </div>
111 130  
112 131 <script>
113   - $(function(){
  132 + $(function() {
114 133 // 关闭左侧栏
115 134 if (!$('body').hasClass('page-sidebar-closed'))
116 135 $('.menu-toggler.sidebar-toggler').click();
117   -
  136 +
118 137 $("#startDate,#endDate").datetimepicker({
119 138 format : 'YYYY-MM-DD',
120 139 locale : 'zh-cn'
121 140 });
  141 +
122 142  
123   - $('#line').select2({
124   - ajax: {
125   - url: '/realSchedule/findLine',
126   - type: 'post',
127   - dataType: 'json',
128   - delay: 150,
129   - data: function(params){
130   - return{line: params.term};
131   - },
132   - processResults: function (data) {
133   - return {
134   - results: data
135   - };
136   - },
137   - cache: true
138   - },
139   - templateResult: function(repo){
140   - if (repo.loading) return repo.text;
141   - var h = '<span>'+repo.text+'</span>';
142   - return h;
143   - },
144   - escapeMarkup: function (markup) { return markup; },
145   - minimumInputLength: 1,
146   - templateSelection: function(repo){
147   - return repo.text;
148   - },
149   - language: {
150   - noResults: function(){
151   - return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>';
152   - },
153   - inputTooShort : function(e) {
154   - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>';
155   - },
156   - searching : function() {
157   - return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>';
158   - }
159   - }
160   - });
161   - var line;
162   - var startDate;
163   - var endDate;
164   - $("#query").on("click",function(){
165   - line = $("#line").val();
166   - sel = $("#sel").val();
167   - var startDate1=$("#startDate").val();
168   - var endDate1=$("#endDate").val();
  143 + var obj = [];
  144 + $.get('/user/companyData', function(result){
  145 + obj = result;
  146 + var options = '';
  147 + for(var i = 0; i < obj.length; i++){
  148 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  149 + }
  150 + if(obj.length ==0){
  151 + $("#gsdmDiv_change").css('display','none');
  152 + $('#fgsdmDiv_change').css('display','none');
  153 + }else if(obj.length ==1){
  154 + $("#gsdmDiv_change").css('display','none');
  155 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  156 + $('#fgsdmDiv_change').css('display','none');
  157 + }
  158 + $('#gsdmChange').html(options);
  159 + updateCompany();
  160 + });
  161 +
  162 + $("#gsdmChange").on("change",updateCompany);
  163 + function updateCompany(){
  164 + var company = $('#gsdmChange').val();
  165 + var options = '';
  166 + for(var i = 0; i < obj.length; i++){
  167 + if(obj[i].companyCode == company){
  168 + var children = obj[i].children;
  169 + for(var j = 0; j < children.length; j++){
  170 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  171 + }
  172 + }
  173 + }
  174 + $('#fgsdmChange').html(options);
  175 + }
  176 +
  177 + $.get('/basic/lineCode2Name',function(result){
  178 + var data=[];
169 179  
170   - if(startDate1!=''&&endDate1!=''){
171   - $post('/mcy_forms/changetochange',{sel:sel,line:line,startDate:$("#startDate").val(),endDate:$("#endDate").val(),type:'query'},function(result){
172   - startDate = $("#startDate").val();
173   - endDate = $("#endDate").val();
174   - $("#sDate").text(startDate);
175   - $("#eDate").text(endDate);
176   - var temp = {};
177   - var today_account = 0;
178   - temp["line"] = $("#line").text();
179   - $.each(result, function(i, obj) {
180   - if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){
181   - today_account++;
182   - }
183   - obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");
184   - });
185   - // 把数据填充到模版中
186   - var tbodyHtml = template('changetochange',{list:result});
187   - // 把渲染好的模版html文本追加到表格中
188   - $('#forms tbody').html(tbodyHtml);
189   - })
  180 + for(var code in result){
  181 + data.push({id: code, text: result[code]});
  182 + }
  183 + initPinYinSelect2('#line',data,'');
  184 +
  185 + })
190 186  
191   - }else{
192   - alert("请选择时间范围!");
193   - }
194   - });
195   -
196   - $("#export").on("click",function(){
197   - $post('/mcy_export/changetochangeExport',{startDate:startDate,endDate:endDate,type:'export'},function(result){
198   - window.open("/downloadFile/download?fileName=换人换车情况日统计"+moment(startDate).format("YYYYMMDD"));
199   - });
200   - });
  187 + var line;
  188 + var startDate;
  189 + var endDate;
  190 + $("#query").on(
  191 + "click",
  192 + function() {
  193 + line = $("#line").val();
  194 + sel = $("#sel").val();
  195 + var startDate1 = $("#startDate").val();
  196 + var endDate1 = $("#endDate").val();
  197 +
  198 + if (startDate1 != '' && endDate1 != '') {
  199 + $post('/mcy_forms/changetochange', {
  200 + sel : sel,
  201 + line : line,
  202 + startDate : $("#startDate").val(),
  203 + endDate : $("#endDate").val(),
  204 + type : 'query'
  205 + }, function(result) {
  206 + startDate = $("#startDate").val();
  207 + endDate = $("#endDate").val();
  208 + $("#sDate").text(startDate);
  209 + $("#eDate").text(endDate);
  210 + var temp = {};
  211 + var today_account = 0;
  212 + temp["line"] = $("#line").text();
  213 + $.each(result, function(i, obj) {
  214 + if (moment(obj.schedule_date_str).format(
  215 + "YYYY-MM-DD") == moment(obj.startDate)
  216 + .format("YYYY-MM-DD")) {
  217 + today_account++;
  218 + }
  219 + obj.updateDate = moment(obj.startDate).format(
  220 + "YYYY-MM-DD HH:mm:ss");
  221 + });
  222 + // 把数据填充到模版中
  223 + var tbodyHtml = template('changetochange', {
  224 + list : result
  225 + });
  226 + // 把渲染好的模版html文本追加到表格中
  227 + $('#forms tbody').html(tbodyHtml);
  228 + })
  229 +
  230 + } else {
  231 + alert("请选择时间范围!");
  232 + }
  233 + });
  234 +
  235 + $("#export").on(
  236 + "click",
  237 + function() {
  238 + $post('/mcy_export/changetochangeExport', {
  239 + startDate : startDate,
  240 + endDate : endDate,
  241 + type : 'export'
  242 + }, function(result) {
  243 + window.open("/downloadFile/download?fileName=换人换车情况日统计"
  244 + + moment(startDate).format("YYYYMMDD"));
  245 + });
  246 + });
201 247 });
202 248 </script>
203 249 <script type="text/html" id="changetochange">
... ...
src/main/resources/static/pages/forms/statement/executionrate.html
... ... @@ -37,6 +37,14 @@
37 37 <div class="portlet light porttlet-fit bordered">
38 38 <div class="portlet-title">
39 39 <form class="form-inline" action="" method="post">
  40 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_ececut">
  41 + <span class="item-label" style="width: 80px;">公司: </span>
  42 + <select class="form-control" name="company" id="gsdmEcecut" style="width: 140px;"></select>
  43 + </div>
  44 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_ececut">
  45 + <span class="item-label" style="width: 80px;">分公司: </span>
  46 + <select class="form-control" name="subCompany" id="fgsdmEcecut" style="width: 140px;"></select>
  47 + </div> -->
40 48 <div style="display: inline-block;">
41 49 <span class="item-label" style="width: 80px;">线路: </span>
42 50 <select class="form-control" name="line" id="line" style="width: 120px;"></select>
... ... @@ -114,6 +122,42 @@
114 122 locale : 'zh-cn'
115 123 });
116 124  
  125 +
  126 + var obj = [];
  127 + $.get('/user/companyData', function(result){
  128 + obj = result;
  129 + var options = '';
  130 + for(var i = 0; i < obj.length; i++){
  131 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  132 + }
  133 +
  134 + if(obj.length ==0){
  135 + $("#gsdmDiv_ececut").css('display','none');
  136 + $('#fgsdmDiv_ececut').css('display','none');
  137 + }else if(obj.length ==1){
  138 + $("#gsdmDiv_ececut").css('display','none');
  139 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  140 + $('#fgsdmDiv_ececut').css('display','none');
  141 + }
  142 + $('#gsdmEcecut').html(options);
  143 + updateCompany();
  144 + });
  145 +
  146 + $("#gsdmEcecut").on("change",updateCompany);
  147 + function updateCompany(){
  148 + var company = $('#gsdmEcecut').val();
  149 + var options = '';
  150 + for(var i = 0; i < obj.length; i++){
  151 + if(obj[i].companyCode == company){
  152 + var children = obj[i].children;
  153 + for(var j = 0; j < children.length; j++){
  154 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  155 + }
  156 + }
  157 + }
  158 + $('#fgsdmEcecut').html(options);
  159 + }
  160 +
117 161 $.get('/basic/lineCode2Name',function(result){
118 162 var data=[];
119 163  
... ... @@ -127,19 +171,23 @@
127 171 var line;
128 172 var startDate;
129 173 var endDate;
  174 + var gsdmEcecut;
  175 + var fgsdmEcecut;
130 176 $("#query").on("click",function(){
131 177  
132 178 line = $("#line").val();
133 179 startDate1=$("#startDate").val();
134 180 endDate1=$("#endDate").val();
135   -
  181 + gsdmEcecut=$("#gsdmEcecut").val();
  182 + fgsdmEcecut=$("#fgsdmEcecut").val();
136 183 if(startDate1!=''&&endDate1!=''){
137   - $post('/mcy_forms/executionrate',{line:line,startDate:$("#startDate").val(),endDate:$("#endDate").val(),type:'query'},function(result){
  184 + $post('/mcy_forms/executionrate',{/* gsdmEcecut:gsdmEcecut,fgsdmEcecut:fgsdmEcecut, */line:line,startDate:$("#startDate").val(),endDate:$("#endDate").val(),type:'query'},function(result){
138 185 // 把数据填充到模版中
139 186 var tbodyHtml = template('executionrate',{list:result});
140 187 // 把渲染好的模版html文本追加到表格中
141 188 $('#tbody').html(tbodyHtml);
142 189 line = $("#line").val();
  190 +
143 191 startDate = $("#startDate").val();
144 192 endDate = $("#endDate").val();
145 193 $("#sDate").text(startDate);
... ...
src/main/resources/static/pages/forms/statement/linepassengerflow.html
... ... @@ -27,6 +27,14 @@
27 27 <div class="portlet light porttlet-fit bordered">
28 28 <div class="portlet-title">
29 29 <form class="form-inline" action="">
  30 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_line">
  31 + <span class="item-label" style="width: 80px;">公司: </span>
  32 + <select class="form-control" name="company" id="gsdmLine" style="width: 140px;"></select>
  33 + </div>
  34 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_line">
  35 + <span class="item-label" style="width: 80px;">分公司: </span>
  36 + <select class="form-control" name="subCompany" id="fgsdmLine" style="width: 140px;"></select>
  37 + </div> -->
30 38 <div style="display: inline-block;">
31 39 <span class="item-label" style="width: 80px;">线路: </span>
32 40 <select class="form-control" name="line" id="line" style="width: 180px;"></select>
... ... @@ -74,6 +82,43 @@
74 82 locale : 'zh-cn'
75 83 });
76 84  
  85 + var obj = [];
  86 + $.get('/user/companyData', function(result){
  87 + obj = result;
  88 + var options = '';
  89 + for(var i = 0; i < obj.length; i++){
  90 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  91 + }
  92 +
  93 + if(obj.length ==0){
  94 + $("#gsdmDiv_line").css('display','none');
  95 + $('#fgsdmDiv_line').css('display','none');
  96 + }else if(obj.length ==1){
  97 + $("#gsdmDiv_line").css('display','none');
  98 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  99 + $('#fgsdmDiv_line').css('display','none');
  100 + }
  101 + $('#gsdmLine').html(options);
  102 + updateCompany();
  103 + });
  104 +
  105 + $("#gsdmLine").on("change",updateCompany);
  106 + function updateCompany(){
  107 + var company = $('#gsdmLine').val();
  108 + var options = '';
  109 + for(var i = 0; i < obj.length; i++){
  110 + if(obj[i].companyCode == company){
  111 + var children = obj[i].children;
  112 + for(var j = 0; j < children.length; j++){
  113 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  114 + }
  115 + }
  116 + }
  117 + $('#fgsdmLine').html(options);
  118 + }
  119 +
  120 +
  121 +
77 122 $.get('/basic/lineCode2Name',function(result){
78 123 var data=[];
79 124  
... ... @@ -85,10 +130,17 @@
85 130  
86 131 })
87 132  
  133 +
  134 + var line;
  135 + var date;
  136 + var gsdmLine;
  137 + var fgsdmLine;
88 138 $("#query").on("click",function(){
89 139 var line = $("#line").val();
90 140 var date = $("#date").val();
91   - $post('/mcy_forms/linepasswengerflow',{line:line,date:date},function(result){
  141 + var gsdmLine = $("#gsdmLine").val();
  142 + var fgsdmLine = $("#fgsdmLine").val();
  143 + $post('/mcy_forms/linepasswengerflow',{/* gsdmLine:gsdmLine,fgsdmLine:fgsdmLine, */line:line,date:date,type:'query'},function(result){
92 144 $.each(result, function(i, obj) {
93 145 obj.requestType = reqCodeMap[obj.requestType];
94 146 });
... ...
src/main/resources/static/pages/forms/statement/operationservice.html
1 1 <style type="text/css">
2   - .table-bordered {
3   - border: 1px solid; }
4   - .table-bordered > thead > tr > th,
5   - .table-bordered > thead > tr > td,
6   - .table-bordered > tbody > tr > th,
7   - .table-bordered > tbody > tr > td,
8   - .table-bordered > tfoot > tr > th,
9   - .table-bordered > tfoot > tr > td {
10   - border: 1px solid; }
11   - .table-bordered > thead > tr > th,
12   - .table-bordered > thead > tr > td {
13   - border-bottom-width: 2px;
14   - text-align: center; }
15   -
16   - .table > tbody + tbody {
17   - border-top: 1px solid; }
  2 +.table-bordered {
  3 + border: 1px solid;
  4 +}
  5 +
  6 +.table-bordered>thead>tr>th, .table-bordered>thead>tr>td,
  7 + .table-bordered>tbody>tr>th, .table-bordered>tbody>tr>td,
  8 + .table-bordered>tfoot>tr>th, .table-bordered>tfoot>tr>td {
  9 + border: 1px solid;
  10 +}
  11 +
  12 +.table-bordered>thead>tr>th, .table-bordered>thead>tr>td {
  13 + border-bottom-width: 2px;
  14 + text-align: center;
  15 +}
  16 +
  17 +.table>tbody+tbody {
  18 + border-top: 1px solid;
  19 +}
18 20 </style>
19 21  
20 22 <div class="page-head">
... ... @@ -22,54 +24,53 @@
22 24 <h1>运营服务阶段报表</h1>
23 25 </div>
24 26 </div>
25   -
26   -<div class="row">
27   - <div class="col-md-12">
28   - <div class="portlet light porttlet-fit bordered">
29   - <div class="portlet-title">
30   - <form class="form-inline" action="">
31   - <!-- <div style="display: inline-block;">
32   - <span class="item-label" style="width: 120px;">公司: </span>
33   - <select class="form-control">
34   - <option value="normal">请选择</option>
35   - <option value="22">金高公司</option>
36   - <option value="05">杨高公司</option>
37   - <option value="26">南汇公司</option>
38   - <option value="55">上南公司</option>
39   - <option value="77">闵行公司</option>
40   - </select>
41   - <select class="form-control">
42   - <option value="22">金高公司</option>
43   - <option value="05">杨高公司</option>
44   - <option value="26">南汇公司</option>
45   - <option value="55">上南公司</option>
46   - <option value="77">闵行公司</option>
47   - </select>
48   - </div> -->
49   - <div style="display: inline-block;">
50   - <span class="item-label" style="width: 80px;">线路: </span>
51   - <select class="form-control" name="line" id="line" style="width: 136px;"></select>
52   - </div>
53   - <div style="display: inline-block;margin-left: 15px;">
54   - <span class="item-label" style="width: 80px;">开始时间: </span>
55   - <input class="form-control" type="text" id="startDate" style="width: 120px;"/>
56   - </div>
57   - <div style="display: inline-block;margin-left: 15px;">
58   - <span class="item-label" style="width: 80px;">结束时间: </span>
59   - <input class="form-control" type="text" id="endDate" style="width: 120px;"/>
60   - </div>
61   - <div style="display: inline-block;margin-left: 15px">
62   - <span class="item-label" style="width: 150px;">统计: </span>
63   - </div>
64   - <div class="form-group">
65   - <input class="btn btn-default" type="button" id="query" value="筛选"/>
66   - <input class="btn btn-default" type="button" id="export" value="导出"/>
67   - </div>
68   - </form>
69   - </div>
70   - <div class="portlet-body">
71   - <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
72   - <table class="table table-bordered table-hover table-checkable" id="forms">
  27 +
  28 +<div class="row">
  29 + <div class="col-md-12">
  30 + <div class="portlet light porttlet-fit bordered">
  31 + <div class="portlet-title">
  32 + <form class="form-inline" action="" method="post">
  33 + <!--<div style="display: inline-block; margin-left: 33px;"
  34 + id="gsdmDiv_operat">
  35 + <span class="item-label" style="width: 80px;">公司: </span> <select
  36 + class="form-control" name="company" id="gsdmOperat"
  37 + style="width: 140px;"></select>
  38 + </div>
  39 + <div style="display: inline-block; margin-left: 24px;"
  40 + id="fgsdmDiv_operat">
  41 + <span class="item-label" style="width: 80px;">分公司: </span> <select
  42 + class="form-control" name="subCompany" id="fgsdmOperat"
  43 + style="width: 140px;"></select>
  44 + </div> -->
  45 + <div style="display: inline-block;">
  46 + <span class="item-label" style="width: 80px;">线路: </span> <select
  47 + class="form-control" name="line" id="line" style="width: 180px;"></select>
  48 + </div>
  49 + <div style="display: inline-block; margin-left: 15px;">
  50 + <span class="item-label" style="width: 80px;">开始时间: </span> <input
  51 + class="form-control" type="text" id="startDate"
  52 + style="width: 120px;" />
  53 + </div>
  54 + <div style="display: inline-block; margin-left: 15px;">
  55 + <span class="item-label" style="width: 80px;">结束时间: </span> <input
  56 + class="form-control" type="text" id="endDate"
  57 + style="width: 120px;" />
  58 + </div>
  59 + <div style="display: inline-block; margin-left: 15px">
  60 + <span class="item-label" style="width: 150px;">统计: </span>
  61 + </div>
  62 + <div class="form-group">
  63 + <input class="btn btn-default" type="button" id="query" value="筛选" />
  64 + <input class="btn btn-default" type="button" id="export"
  65 + value="导出" />
  66 + </div>
  67 + </form>
  68 + </div>
  69 + <div class="portlet-body">
  70 + <div class="table-container"
  71 + style="margin-top: 10px; overflow: auto; min-width: 906px">
  72 + <table class="table table-bordered table-hover table-checkable"
  73 + id="forms">
73 74 <thead>
74 75 <tr>
75 76 <th>序号</th>
... ... @@ -82,102 +83,133 @@
82 83 </tr>
83 84 </thead>
84 85 <tbody>
85   -
  86 +
86 87 </tbody>
87 88 </table>
88   - </div>
89   - </div>
90   - </div>
91   - </div>
92   -</div>
93   -
94   -<script>
95   - $(function(){
96   - // 关闭左侧栏
97   - if (!$('body').hasClass('page-sidebar-closed'))
  89 + </div>
  90 + </div>
  91 + </div>
  92 + </div>
  93 +</div>
  94 +
  95 +<script>
  96 + $(function() {
  97 + // 关闭左侧栏
  98 + if (!$('body').hasClass('page-sidebar-closed'))
98 99 $('.menu-toggler.sidebar-toggler').click();
99   -
100   - $("#startDate,#endDate").datetimepicker({
101   - format : 'YYYY-MM-DD',
102   - locale : 'zh-cn'
  100 +
  101 + $("#startDate,#endDate").datetimepicker({
  102 + format : 'YYYY-MM-DD',
  103 + locale : 'zh-cn'
103 104 });
104   -
105   -
106   - $.get('/basic/lineCode2Name',function(result){
107   - var data=[];
108   -
109   - for(var code in result){
110   - data.push({id: code, text: result[code]});
  105 +
  106 + $.get('/basic/lineCode2Name', function(result) {
  107 + var data = [];
  108 +
  109 + for ( var code in result) {
  110 + data.push({
  111 + id : code,
  112 + text : result[code]
  113 + });
111 114 }
112 115 console.log(data);
113   - initPinYinSelect2('#line',data,'');
114   -
  116 + initPinYinSelect2('#line', data, '');
  117 +
115 118 })
116   -
117   - $('#lpName').select2({
118   - ajax: {
119   - url: '/realSchedule/findLpName',
120   - type: 'post',
121   - dataType: 'json',
122   - delay: 150,
123   - data: function(params){
124   - return{lpName: params.term};
125   - },
126   - processResults: function (data) {
127   - return {
128   - results: data
129   - };
130   - },
131   - cache: true
132   - },
133   - templateResult: function(repo){
134   - if (repo.loading) return repo.text;
135   - var h = '<span>'+repo.text+'</span>';
136   - return h;
137   - },
138   - escapeMarkup: function (markup) { return markup; },
139   - minimumInputLength: 1,
140   - templateSelection: function(repo){
141   - return repo.text;
142   - },
143   - language: {
144   - noResults: function(){
145   - return '<span style="color:red;font-size: 12px;">没有搜索到路牌!</span>';
146   - },
147   - inputTooShort : function(e) {
148   - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入路牌搜索路牌</span>';
149   - },
150   - searching : function() {
151   - return '<span style="color:gray;font-size: 12px;"> 正在搜索路牌...</span>';
152   - }
153   - }
154   - });
155   - $("#query").on("click",function(){
156   - var line = $("#line").val();
157   - var startDate = $("#startDate").val();
158   - var endDate = $("#endDate").val();
159   - var lpName = $("#lpName").val();
160   - $post("/mcy_forms/operationservice",{line:line,startDate:startDate,endDate:endDate ,lpName:lpName},function(result){
161   - $("#sDate").text(startDate);
162   - $("#eDate").text(endDate);
163   - var temp = {};
164   - var today_account = 0;
165   - temp["line"] = $("#line").text();
166   - $.each(result, function(i, obj) {
167   - if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){
168   - today_account++;
169   - }
170   - obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");
171   - });
172   - console.log(result);
173   - var operationservice = template('operationservice',{list:result});
174   - // 把渲染好的模版html文本追加到表格中
175   - $('#forms tbody').html(operationservice);
176   -
177   - });
178   - });
179   - });
180   -</script>
  119 +
  120 + var obj = [];
  121 + $.get('/user/companyData', function(result) {
  122 + obj = result;
  123 + var options = '';
  124 + for (var i = 0; i < obj.length; i++) {
  125 + options += '<option value="'+obj[i].companyCode+'">'
  126 + + obj[i].companyName + '</option>';
  127 + }
  128 +
  129 + if (obj.length == 0) {
  130 + $("#gsdmDiv_operat").css('display', 'none');
  131 + $('#fgsdmDiv_operat').css('display', 'none');
  132 + } else if (obj.length == 1) {
  133 + $("#gsdmDiv_operat").css('display', 'none');
  134 + if (obj[0].children.length == 1 || obj[0].children.length == 0)
  135 + $('#fgsdmDiv_operat').css('display', 'none');
  136 + }
  137 + $('#gsdmOperat').html(options);
  138 + updateCompany();
  139 + });
  140 +
  141 + $("#gsdmOperat").on("change", updateCompany);
  142 + function updateCompany() {
  143 + var company = $('#gsdmOperat').val();
  144 + var options = '';
  145 + for (var i = 0; i < obj.length; i++) {
  146 + if (obj[i].companyCode == company) {
  147 + var children = obj[i].children;
  148 + for (var j = 0; j < children.length; j++) {
  149 + options += '<option value="'+children[j].code+'">'
  150 + + children[j].name + '</option>';
  151 + }
  152 + }
  153 + }
  154 + $('#fgsdmOperat').html(options);
  155 + }
  156 +
  157 + $.get('/basic/lineCode2Name', function(result) {
  158 + var data = [];
  159 +
  160 + for ( var code in result) {
  161 + data.push({
  162 + id : code,
  163 + text : result[code]
  164 + });
  165 + }
  166 + initPinYinSelect2('#line', data, '');
  167 +
  168 + })
  169 +
  170 + $("#query").on(
  171 + "click",
  172 + function() {
  173 + var line = $("#line").val();
  174 + var startDate = $("#startDate").val();
  175 + var endDate = $("#endDate").val();
  176 + var lpName = $("#lpName").val();
  177 + /* var gsdmOperat = $("#gsdmOperat").val();
  178 + var fgsdmOperat = $("#fgsdmOperat").val(); */
  179 + $post("/mcy_forms/operationservice", {
  180 + /* gsdmOperat : gsdmOperat,
  181 + fgsdmOperat : fgsdmOperat, */
  182 + line : line,
  183 + startDate : startDate,
  184 + endDate : endDate,
  185 + lpName : lpName,
  186 + type:'query'
  187 + }, function(result) {
  188 + $("#sDate").text(startDate);
  189 + $("#eDate").text(endDate);
  190 + var temp = {};
  191 + var today_account = 0;
  192 + temp["line"] = $("#line").text();
  193 + $.each(result, function(i, obj) {
  194 + if (moment(obj.schedule_date_str).format(
  195 + "YYYY-MM-DD") == moment(obj.startDate)
  196 + .format("YYYY-MM-DD")) {
  197 + today_account++;
  198 + }
  199 + obj.updateDate = moment(obj.startDate).format(
  200 + "YYYY-MM-DD HH:mm:ss");
  201 + });
  202 + console.log(result);
  203 + var operationservice = template('operationservice', {
  204 + list : result
  205 + });
  206 + // 把渲染好的模版html文本追加到表格中
  207 + $('#forms tbody').html(operationservice);
  208 +
  209 + });
  210 + });
  211 + });
  212 +</script>
181 213 <script type="text/html" id="operationservice">
182 214 {{each list as obj i}}
183 215 <tr>
... ... @@ -192,7 +224,7 @@
192 224 {{/each}}
193 225 {{if list.length == 0}}
194 226 <tr>
195   - <td colspan="6"><h6 class="muted">没有找到相关数据</h6></td>
  227 + <td colspan="7"><h6 class="muted">没有找到相关数据</h6></td>
196 228 </tr>
197 229 {{/if}}
198 230 </script>
... ...
src/main/resources/static/pages/forms/statement/shifday.html
... ... @@ -28,6 +28,14 @@
28 28 <div class="portlet light porttlet-fit bordered">
29 29 <div class="portlet-title">
30 30 <form class="form-inline" action="" method="post">
  31 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_shif">
  32 + <span class="item-label" style="width: 80px;">公司: </span>
  33 + <select class="form-control" name="company" id="gsdmShif" style="width: 140px;"></select>
  34 + </div>
  35 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_shif">
  36 + <span class="item-label" style="width: 80px;">分公司: </span>
  37 + <select class="form-control" name="subCompany" id="fgsdmShif" style="width: 140px;"></select>
  38 + </div> -->
31 39 <div style="display: inline-block;">
32 40 <span class="item-label" style="width: 80px;">线路: </span>
33 41 <select class="form-control" name="line" id="line" style="width: 180px;"></select>
... ... @@ -97,6 +105,41 @@ $(function(){
97 105 locale : 'zh-cn'
98 106 });
99 107  
  108 + var obj = [];
  109 + $.get('/user/companyData', function(result){
  110 + obj = result;
  111 + var options = '';
  112 + for(var i = 0; i < obj.length; i++){
  113 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  114 + }
  115 +
  116 + if(obj.length ==0){
  117 + $("#gsdmDiv_shif").css('display','none');
  118 + $('#fgsdmDiv_shif').css('display','none');
  119 + }else if(obj.length ==1){
  120 + $("#gsdmDiv_shif").css('display','none');
  121 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  122 + $('#fgsdmDiv_shif').css('display','none');
  123 + }
  124 + $('#gsdmShif').html(options);
  125 + updateCompany();
  126 + });
  127 +
  128 + $("#gsdmShif").on("change",updateCompany);
  129 + function updateCompany(){
  130 + var company = $('#gsdmShif').val();
  131 + var options = '';
  132 + for(var i = 0; i < obj.length; i++){
  133 + if(obj[i].companyCode == company){
  134 + var children = obj[i].children;
  135 + for(var j = 0; j < children.length; j++){
  136 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  137 + }
  138 + }
  139 + }
  140 + $('#fgsdmShif').html(options);
  141 + }
  142 +
100 143  
101 144 $.get('/basic/lineCode2Name',function(result){
102 145 var data=[];
... ... @@ -112,7 +155,9 @@ $(function(){
112 155 $("#query").on("click",function(){
113 156 var line = $("#line").val();
114 157 var date = $("#date").val();
115   - $post('/mcy_forms/shifday',{line:line,date:date},function(result){
  158 + /* var gsdmShif = $("#gsdmShif").val();
  159 + var fgsdmShif = $("#fgsdmShif").val(); */
  160 + $post('/mcy_forms/shifday',{/* gsdmShif:gsdmShif,fgsdmShif:fgsdmShif, */line:line,date:date},function(result){
116 161 $.each(result, function(i, obj) {
117 162 obj.requestType = reqCodeMap[obj.requestType];
118 163 });
... ...
src/main/resources/static/pages/forms/statement/shiftuehiclemanth.html
... ... @@ -27,7 +27,15 @@
27 27 <div class="col-md-12">
28 28 <div class="portlet light porttlet-fit bordered">
29 29 <div class="portlet-title">
30   - <form class="form-inline" action="">
  30 + <form class="form-inline" action="">
  31 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_manth">
  32 + <span class="item-label" style="width: 80px;">公司: </span>
  33 + <select class="form-control" name="company" id="gsdmManth" style="width: 140px;"></select>
  34 + </div>
  35 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_manth">
  36 + <span class="item-label" style="width: 80px;">分公司: </span>
  37 + <select class="form-control" name="subCompany" id="fgsdmManth" style="width: 140px;"></select>
  38 + </div> -->
31 39 <div style="display: inline-block;">
32 40 <span class="item-label" style="width: 80px;">线路: </span>
33 41 <select class="form-control" name="line" id="line" style="width: 136px;"></select>
... ... @@ -87,6 +95,41 @@
87 95 locale : 'zh-cn'
88 96 });
89 97  
  98 + var obj = [];
  99 + $.get('/user/companyData', function(result){
  100 + obj = result;
  101 + var options = '';
  102 + for(var i = 0; i < obj.length; i++){
  103 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  104 + }
  105 +
  106 + if(obj.length ==0){
  107 + $("#gsdmDiv_manth").css('display','none');
  108 + $('#fgsdmDiv_manth').css('display','none');
  109 + }else if(obj.length ==1){
  110 + $("#gsdmDiv_manth").css('display','none');
  111 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  112 + $('#fgsdmDiv_manth').css('display','none');
  113 + }
  114 + $('#gsdmManth').html(options);
  115 + updateCompany();
  116 + });
  117 +
  118 + $("#gsdmManth").on("change",updateCompany);
  119 + function updateCompany(){
  120 + var company = $('#gsdmManth').val();
  121 + var options = '';
  122 + for(var i = 0; i < obj.length; i++){
  123 + if(obj[i].companyCode == company){
  124 + var children = obj[i].children;
  125 + for(var j = 0; j < children.length; j++){
  126 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  127 + }
  128 + }
  129 + }
  130 + $('#fgsdmManth').html(options);
  131 + }
  132 +
90 133  
91 134 $.get('/basic/lineCode2Name',function(result){
92 135 var data=[];
... ... @@ -141,7 +184,9 @@
141 184 var startDate = $("#startDate").val();
142 185 var endDate = $("#endDate").val();
143 186 var lpName = $("#lpName").val();
144   - $post("/mcy_forms/shiftuehiclemanth",{line:line,startDate:startDate,endDate:endDate ,lpName:lpName},function(result){
  187 + /* var gsdmManth= $("#gsdmManth").val();
  188 + var fgsdmManth= $("#fgsdmManth").val(); */
  189 + $post("/mcy_forms/shiftuehiclemanth",{/* gsdmManth:gsdmManth,fgsdmManth:fgsdmManth, */line:line,startDate:startDate,endDate:endDate ,lpName:lpName},function(result){
145 190 $("#sDate").text(startDate);
146 191 $("#eDate").text(endDate);
147 192 var temp = {};
... ... @@ -153,7 +198,7 @@
153 198 }
154 199 obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");
155 200 });
156   - console.log(result);
  201 +
157 202 var list_shiftuehiclemanth = template('list_shiftuehiclemanth',{list:result});
158 203 // 把渲染好的模版html文本追加到表格中
159 204 $('#forms tbody').html(list_shiftuehiclemanth);
... ...
src/main/resources/static/pages/forms/statement/singledata.html
... ... @@ -28,6 +28,14 @@
28 28 <div class="portlet light porttlet-fit bordered">
29 29 <div class="portlet-title">
30 30 <form class="form-inline" action="">
  31 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_sing">
  32 + <span class="item-label" style="width: 80px;">公司: </span>
  33 + <select class="form-control" name="company" id="gsdmSing" style="width: 140px;"></select>
  34 + </div>
  35 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_sing">
  36 + <span class="item-label" style="width: 80px;">分公司: </span>
  37 + <select class="form-control" name="subCompany" id="fgsdmSing" style="width: 140px;"></select>
  38 + </div> -->
31 39 <div style="display: inline-block;">
32 40 <span class="item-label" style="width: 80px;">线路: </span>
33 41 <select class="form-control" name="line" id="line" style="width: 136px;"></select>
... ... @@ -92,6 +100,41 @@
92 100 locale : 'zh-cn'
93 101 });
94 102  
  103 + var obj = [];
  104 + $.get('/user/companyData', function(result){
  105 + obj = result;
  106 + var options = '';
  107 + for(var i = 0; i < obj.length; i++){
  108 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  109 + }
  110 +
  111 + if(obj.length ==0){
  112 + $("#gsdmDiv_sing").css('display','none');
  113 + $('#fgsdmDiv_sing').css('display','none');
  114 + }else if(obj.length ==1){
  115 + $("#gsdmDiv_sing").css('display','none');
  116 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  117 + $('#fgsdmDiv_sing').css('display','none');
  118 + }
  119 + $('#gsdmSing').html(options);
  120 + updateCompany();
  121 + });
  122 +
  123 + $("#gsdmSing").on("change",updateCompany);
  124 + function updateCompany(){
  125 + var company = $('#gsdmSing').val();
  126 + var options = '';
  127 + for(var i = 0; i < obj.length; i++){
  128 + if(obj[i].companyCode == company){
  129 + var children = obj[i].children;
  130 + for(var j = 0; j < children.length; j++){
  131 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  132 + }
  133 + }
  134 + }
  135 + $('#fgsdmSing').html(options);
  136 + }
  137 +
95 138  
96 139 $.get('/basic/lineCode2Name',function(result){
97 140 var data=[];
... ... @@ -104,50 +147,15 @@
104 147  
105 148 })
106 149  
107   - $('#lpName').select2({
108   - ajax: {
109   - url: '/realSchedule/findLpName',
110   - type: 'post',
111   - dataType: 'json',
112   - delay: 150,
113   - data: function(params){
114   - return{lpName: params.term};
115   - },
116   - processResults: function (data) {
117   - return {
118   - results: data
119   - };
120   - },
121   - cache: true
122   - },
123   - templateResult: function(repo){
124   - if (repo.loading) return repo.text;
125   - var h = '<span>'+repo.text+'</span>';
126   - return h;
127   - },
128   - escapeMarkup: function (markup) { return markup; },
129   - minimumInputLength: 1,
130   - templateSelection: function(repo){
131   - return repo.text;
132   - },
133   - language: {
134   - noResults: function(){
135   - return '<span style="color:red;font-size: 12px;">没有搜索到路牌!</span>';
136   - },
137   - inputTooShort : function(e) {
138   - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入路牌搜索路牌</span>';
139   - },
140   - searching : function() {
141   - return '<span style="color:gray;font-size: 12px;"> 正在搜索路牌...</span>';
142   - }
143   - }
144   - });
  150 +
145 151 $("#query").on("click",function(){
146 152 var line = $("#line").val();
147 153 var startDate = $("#startDate").val();
148 154 var endDate = $("#endDate").val();
149 155 var lpName = $("#lpName").val();
150   - $post("/mcy_forms/singledata",{line:line,startDate:startDate,endDate:endDate ,lpName:lpName},function(result){
  156 + /* var gsdmSing = $("#gsdmSing").val();
  157 + var fgsdmSing = $("#fgsdmSing").val(); */
  158 + $post("/mcy_forms/singledata",{/* gsdmSing:gsdmSing,fgsdmSing:fgsdmSing, */line:line,startDate:startDate,endDate:endDate ,lpName:lpName},function(result){
151 159 $("#sDate").text(startDate);
152 160 $("#eDate").text(endDate);
153 161 var temp = {};
... ...
src/main/resources/static/pages/forms/statement/turnoutrate.html
... ... @@ -37,6 +37,14 @@
37 37 <div class="portlet light porttlet-fit bordered">
38 38 <div class="portlet-title">
39 39 <form class="form-inline" action="" method="post">
  40 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_turn">
  41 + <span class="item-label" style="width: 80px;">公司: </span>
  42 + <select class="form-control" name="company" id="gsdmTurn" style="width: 140px;"></select>
  43 + </div>
  44 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_turn">
  45 + <span class="item-label" style="width: 80px;">分公司: </span>
  46 + <select class="form-control" name="subCompany" id="fgsdmTurn" style="width: 140px;"></select>
  47 + </div> -->
40 48 <div style="display: inline-block;">
41 49 <span class="item-label" style="width: 80px;">线路: </span>
42 50 <select class="form-control" name="line" id="line" style="width: 120px;"></select>
... ... @@ -116,6 +124,42 @@
116 124 locale : 'zh-cn'
117 125 });
118 126  
  127 + var obj = [];
  128 + $.get('/user/companyData', function(result){
  129 + obj = result;
  130 + var options = '';
  131 + for(var i = 0; i < obj.length; i++){
  132 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  133 + }
  134 +
  135 + if(obj.length ==0){
  136 + $("#gsdmDiv_turn").css('display','none');
  137 + $('#fgsdmDiv_turn').css('display','none');
  138 + }else if(obj.length ==1){
  139 + $("#gsdmDiv_turn").css('display','none');
  140 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  141 + $('#fgsdmDiv_turn').css('display','none');
  142 + }
  143 + $('#gsdmTurn').html(options);
  144 + updateCompany();
  145 + });
  146 +
  147 + $("#gsdmTurn").on("change",updateCompany);
  148 + function updateCompany(){
  149 + var company = $('#gsdmTurn').val();
  150 + var options = '';
  151 + for(var i = 0; i < obj.length; i++){
  152 + if(obj[i].companyCode == company){
  153 + var children = obj[i].children;
  154 + for(var j = 0; j < children.length; j++){
  155 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  156 + }
  157 + }
  158 + }
  159 + $('#fgsdmTurn').html(options);
  160 + }
  161 +
  162 +
119 163 $.get('/basic/lineCode2Name',function(result){
120 164 var data=[];
121 165  
... ... @@ -129,14 +173,17 @@
129 173 var line;
130 174 var startDate;
131 175 var endDate;
  176 + var gsdmTurn;
  177 + var fgsdmTurn;
132 178 $("#query").on("click",function(){
133 179  
134 180 line = $("#line").val();
135 181 startDate1=$("#startDate").val();
136 182 endDate1=$("#endDate").val();
137   -
  183 + gsdmTurn=$("#gsdmTurn").val();
  184 + fgsdmTurn=$("#fgsdmTurn").val();
138 185 if(startDate1!=''&&endDate1!=''){
139   - $post('/mcy_forms/turnoutrate',{line:line,startDate:$("#startDate").val(),endDate:$("#endDate").val(),type:'query'},function(result){
  186 + $post('/mcy_forms/turnoutrate',{/* gsdmTurn:gsdmTurn,fgsdmTurn:fgsdmTurn, */line:line,startDate:$("#startDate").val(),endDate:$("#endDate").val(),type:'query'},function(result){
140 187 // 把数据填充到模版中
141 188 var tbodyHtml = template('turnoutrate',{list:result});
142 189 // 把渲染好的模版html文本追加到表格中
... ...
src/main/resources/static/pages/forms/statement/vehicleloading.html
... ... @@ -19,7 +19,7 @@
19 19  
20 20 <div class="page-head">
21 21 <div class="page-title">
22   - <h1>车辆加注</h1>
  22 + <h1>车辆加注/消耗量</h1>
23 23 </div>
24 24 </div>
25 25  
... ... @@ -28,6 +28,14 @@
28 28 <div class="portlet light porttlet-fit bordered">
29 29 <div class="portlet-title">
30 30 <form class="form-inline" action="" method="post">
  31 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_vehic">
  32 + <span class="item-label" style="width: 80px;">公司: </span>
  33 + <select class="form-control" name="company" id="gsdmVehic" style="width: 140px;"></select>
  34 + </div>
  35 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_vehic">
  36 + <span class="item-label" style="width: 80px;">分公司: </span>
  37 + <select class="form-control" name="subCompany" id="fgsdmVehic" style="width: 140px;"></select>
  38 + </div> -->
31 39 <div style="display: inline-block;">
32 40 <span class="item-label" style="width: 80px;">线路: </span>
33 41 <select class="form-control" name="line" id="line" style="width: 180px;"></select>
... ... @@ -82,7 +90,40 @@
82 90 locale : 'zh-cn'
83 91 });
84 92  
85   -
  93 + $.get('/user/companyData', function(result){
  94 + obj = result;
  95 + var options = '';
  96 + for(var i = 0; i < obj.length; i++){
  97 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  98 + }
  99 +
  100 + if(obj.length ==0){
  101 + $("#gsdmDiv_vehic").css('display','none');
  102 + $('#fgsdmDiv_vehic').css('display','none');
  103 + }else if(obj.length ==1){
  104 + $("#gsdmDiv_vehic").css('display','none');
  105 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  106 + $('#fgsdmDiv_vehic').css('display','none');
  107 + }
  108 + $('#gsdmVehic').html(options);
  109 + updateCompany();
  110 + });
  111 +
  112 + $("#gsdmVehic").on("change",updateCompany);
  113 + function updateCompany(){
  114 + var company = $('#gsdmVehic').val();
  115 + var options = '';
  116 + for(var i = 0; i < obj.length; i++){
  117 + if(obj[i].companyCode == company){
  118 + var children = obj[i].children;
  119 + for(var j = 0; j < children.length; j++){
  120 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  121 + }
  122 + }
  123 + }
  124 + $('#fgsdmVehic').html(options);
  125 + }
  126 +
86 127 $.get('/basic/lineCode2Name',function(result){
87 128 var data=[];
88 129  
... ... @@ -94,50 +135,13 @@
94 135  
95 136 })
96 137  
97   -
98   - $('#lpName').select2({
99   - ajax: {
100   - url: '/realSchedule/findLpName',
101   - type: 'post',
102   - dataType: 'json',
103   - delay: 150,
104   - data: function(params){
105   - return{lpName: params.term};
106   - },
107   - processResults: function (data) {
108   - return {
109   - results: data
110   - };
111   - },
112   - cache: true
113   - },
114   - templateResult: function(repo){
115   - if (repo.loading) return repo.text;
116   - var h = '<span>'+repo.text+'</span>';
117   - return h;
118   - },
119   - escapeMarkup: function (markup) { return markup; },
120   - minimumInputLength: 1,
121   - templateSelection: function(repo){
122   - return repo.text;
123   - },
124   - language: {
125   - noResults: function(){
126   - return '<span style="color:red;font-size: 12px;">没有搜索到路牌!</span>';
127   - },
128   - inputTooShort : function(e) {
129   - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入路牌搜索路牌</span>';
130   - },
131   - searching : function() {
132   - return '<span style="color:gray;font-size: 12px;"> 正在搜索路牌...</span>';
133   - }
134   - }
135   - });
  138 +
136 139 $("#query").on("click",function(){
137 140 var line = $("#line").val();
138 141 var date = $("#date").val();
139   - $(".hidden").removeClass("hidden");
140   - $post("/mcy_forms/vehicleloading",{line:line,data:date},function(result){
  142 + /* var gsdmVehic = $("#gsdmVehic").val();
  143 + var fgsdmVehic = $("#fgsdmVehic").val(); */
  144 + $post('/mcy_forms/vehicleloading',{line:line,data:date},function(result){
141 145 // 把数据填充到模版中
142 146 var tbodyHtml = template('vehicleloading',{list:result});
143 147 // 把渲染好的模版html文本追加到表格中
... ...
src/main/resources/static/pages/forms/statement/waybillday.html
... ... @@ -28,6 +28,14 @@
28 28 <div class="portlet light porttlet-fit bordered">
29 29 <div class="portlet-title">
30 30 <form class="form-inline" action="" method="post">
  31 + <!-- <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_waybillday">
  32 + <span class="item-label" style="width: 80px;">公司: </span>
  33 + <select class="form-control" name="company" id="gsdmWaybillday" style="width: 140px;"></select>
  34 + </div>
  35 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_waybillday">
  36 + <span class="item-label" style="width: 80px;">分公司: </span>
  37 + <select class="form-control" name="subCompany" id="fgsdmWaybillday" style="width: 140px;"></select>
  38 + </div> -->
31 39 <div style="display: inline-block;">
32 40 <span class="item-label" style="width: 80px;">线路: </span>
33 41 <select class="form-control" name="line" id="line" style="width: 180px;"></select>
... ... @@ -79,6 +87,42 @@
79 87 locale : 'zh-cn'
80 88 });
81 89  
  90 + var obj = [];
  91 + $.get('/user/companyData', function(result){
  92 + obj = result;
  93 + var options = '';
  94 + for(var i = 0; i < obj.length; i++){
  95 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  96 + }
  97 +
  98 + if(obj.length ==0){
  99 + $("#gsdmDiv_waybillday").css('display','none');
  100 + $('#fgsdmDiv_waybillday').css('display','none');
  101 + }else if(obj.length ==1){
  102 + $("#gsdmDiv_waybillday").css('display','none');
  103 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  104 + $('#fgsdmDiv_waybillday').css('display','none');
  105 + }
  106 + $('#gsdmWaybillday').html(options);
  107 + updateCompany();
  108 + });
  109 +
  110 + $("#gsdmWaybillday").on("change",updateCompany);
  111 + function updateCompany(){
  112 + var company = $('#gsdmWaybillday').val();
  113 + var options = '';
  114 + for(var i = 0; i < obj.length; i++){
  115 + if(obj[i].companyCode == company){
  116 + var children = obj[i].children;
  117 + for(var j = 0; j < children.length; j++){
  118 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  119 + }
  120 + }
  121 + }
  122 + $('#fgsdmWaybillday').html(options);
  123 + }
  124 +
  125 +
82 126 $.get('/basic/lineCode2Name',function(result){
83 127 var data=[];
84 128  
... ... @@ -91,10 +135,15 @@
91 135 })
92 136 var line;
93 137 var date;
  138 + var gsdmWaybillday;
  139 + var fgsdmWaybillday;
94 140 $("#query").on("click",function(){
95 141 line = $("#line").val();
96 142 date = $("#date").val();
97   - $post('/mcy_forms/waybillday',{line:line,date:$("#date").val(),type:'query'},function(result){
  143 + gsdmWaybillday=$("#gsdmWaybillday").val();
  144 + fgsdmWaybillday = $("#fgsdmWaybillday").val();
  145 +
  146 + $post('/mcy_forms/waybillday',{/* gsdmWaybillday:gsdmWaybillday,fgsdmWaybillday:fgsdmWaybillday, */line:line,date:$("#date").val(),type:'query'},function(result){
98 147 $.each(result, function(i, obj) {
99 148 obj.requestType = reqCodeMap[obj.requestType];
100 149 });
... ...
src/main/resources/static/pages/report/timetable/timetable.html
... ... @@ -245,6 +245,7 @@
245 245 initPinYinSelect2('#line',data,'');
246 246  
247 247 })
  248 +
248 249 //查询
249 250 $("#query").on('click',function(){
250 251 console.log($("#gsdmTime").val());
... ...
src/main/resources/static/pages/scheduleApp/Gruntfile.js
... ... @@ -14,6 +14,9 @@ module.exports = function (grunt) {
14 14 },
15 15 concat_route: { // 所有模块的route配置合并的js文件
16 16 src: ['module/common/prj-common-ui-route-state.js']
  17 + },
  18 + concat_service: { // 所有模块的servie服务合并的js文件
  19 + src: ['module/common/prj-common-globalservice.js']
17 20 }
18 21  
19 22 //,
... ... @@ -69,11 +72,13 @@ module.exports = function (grunt) {
69 72 'module/common/dts1/load/loadingWidget.js', // loading界面指令
70 73 'module/common/dts1/validation/remoteValidation.js',// 服务端验证指令
71 74 'module/common/dts1/validation/remoteValidationt2.js',// 服务端验证指令(时刻表专用)
  75 + 'module/common/dts1/validation/remoteValidation3.js',// 服务端验证指令
72 76 'module/common/dts1/select/saSelect.js', // select整合指令1
73 77 'module/common/dts1/select/saSelect2.js', // select整合指令2
74 78 'module/common/dts1/select/saSelect3.js', // select整合指令3
75 79 'module/common/dts1/select/saSelect4.js', // select整合指令4
76 80 'module/common/dts1/select/saSelect5.js', // select整合指令5
  81 + 'module/common/dts2/ttinfotable/mySelect.js', // select整合指令
77 82 'module/common/dts1/radioButton/saRadiogroup.js', // 单选框组整合指令
78 83 'module/common/dts1/checkbox/saCheckboxgroup.js', // 多选框组整合指令
79 84 'module/common/dts2/dateGroup/saDategroup.js', // 特殊日期选择指令
... ... @@ -104,6 +109,26 @@ module.exports = function (grunt) {
104 109 'module/core/ttInfoManage/detailedit/route.js' // 时刻表明细管理模块
105 110 ],
106 111 dest: 'module/common/prj-common-ui-route-state.js'
  112 + },
  113 + service: {
  114 + options: {
  115 + banner: '//所有模块service配置\n'
  116 + },
  117 + src: [
  118 + 'module/basicInfo/busInfoManage/service.js', // 车辆基础信息管理service
  119 + 'module/basicInfo/deviceInfoManage/service.js', // 设备信息管理service
  120 + 'module/basicInfo/employeeInfoManage/service.js', // 人员基础信息管理service
  121 + 'module/core/busConfig/service.js', // 车辆配置service
  122 + 'module/core/busLineInfoStat/service.js', // 线路运营概览service
  123 + 'module/core/employeeConfig/service.js', // 人员配置service
  124 + 'module/core/guideboardManage/service.js', // 路牌管理service
  125 + 'module/core/rerunManage/service.js', // 套跑管理service
  126 + 'module/core/schedulePlanManage/service.js', // 排班计划管理service
  127 + 'module/core/scheduleRuleManage/service.js', // 排班规则管理service
  128 + 'module/core/ttInfoManage/service.js', // 时刻表管理service
  129 + 'module/common/prj-common-globalservice-legacy.js' // 其他用service
  130 + ],
  131 + dest: 'module/common/prj-common-globalservice.js'
107 132 }
108 133 },
109 134  
... ... @@ -440,4 +465,14 @@ module.exports = function (grunt) {
440 465 'clean:concat_route', 'concat:route'
441 466 ]);
442 467  
  468 + /*
  469 + 定义了一个service的grunt任务
  470 + 任务组有顺序,如下说明:
  471 + 1、clean:concat_route,清除合并生成的prj-common-globalservice.js文件
  472 + 2、concat:route,重新合并prj-common-globalservice.js文件
  473 + */
  474 + grunt.registerTask('service', [
  475 + 'clean:concat_service', 'concat:service'
  476 + ]);
  477 +
443 478 };
444 479 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/edit.html
... ... @@ -33,8 +33,8 @@
33 33 <div class="portlet-body form">
34 34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm">
35 35 <!--<div class="alert alert-danger display-hide">-->
36   - <!--<button class="close" data-close="alert"></button>-->
37   - <!--您的输入有误,请检查下面的输入项-->
  36 + <!--<button class="close" data-close="alert"></button>-->
  37 + <!--您的输入有误,请检查下面的输入项-->
38 38 <!--</div>-->
39 39  
40 40  
... ... @@ -45,9 +45,9 @@
45 45 <div class="col-md-3">
46 46 <input type="text" class="form-control"
47 47 name="insideCode" ng-model="ctrl.busInfoForSave.insideCode"
48   - required ng-maxlength="8"
  48 + required ng-maxlength="20"
49 49 remote-Validation
50   - remotevtype="cl1"
  50 + remotevtype="cars_zbh"
51 51 remotevparam="{{ {'insideCode_eq': ctrl.busInfoForSave.insideCode} | json}}"
52 52 placeholder="请输入车辆内部编码"/>
53 53 </div>
... ... @@ -56,10 +56,10 @@
56 56 内部编号必须填写
57 57 </div>
58 58 <div class="alert alert-danger well-sm" ng-show="myForm.insideCode.$error.maxlength">
59   - 内部编号长度不能超过8
  59 + 内部编号长度不能超过20
60 60 </div>
61 61 <div class="alert alert-danger well-sm" ng-show="myForm.insideCode.$error.remote">
62   - 内部编号不能重复
  62 + {{$remote_msg}}
63 63 </div>
64 64 </div>
65 65  
... ... @@ -78,6 +78,7 @@
78 78 datatype="gsType"
79 79 required >
80 80 </sa-Select3>
  81 +
81 82 </div>
82 83 <!-- 隐藏块,显示验证信息 -->
83 84 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required">
... ... @@ -103,26 +104,40 @@
103 104 <label class="col-md-2 control-label">车辆编码*:</label>
104 105 <div class="col-md-3">
105 106 <input type="text" class="form-control"
106   - name="carCode" ng-model="ctrl.busInfoForSave.carCode"
107   - required placeholder="请输入车辆编码"/>
  107 + name="carCode" ng-model="ctrl.busInfoForSave.carCode"
  108 + required placeholder="请输入车辆编码"
  109 + remote-Validation
  110 + remotevtype="cars_clbh"
  111 + remotevparam="{{ {'carCode_eq': ctrl.busInfoForSave.carCode} | json}}"
  112 + />
108 113 </div>
109 114 <!-- 隐藏块,显示验证信息 -->
110 115 <div class="alert alert-danger well-sm" ng-show="myForm.carCode.$error.required">
111 116 车辆编码必须填写
112 117 </div>
  118 + <div class="alert alert-danger well-sm" ng-show="myForm.carCode.$error.remote">
  119 + {{$remote_msg}}
  120 + </div>
113 121 </div>
114 122  
115 123 <div class="form-group has-success has-feedback">
116 124 <label class="col-md-2 control-label">车牌号*:</label>
117 125 <div class="col-md-3">
118 126 <input type="text" class="form-control"
119   - name="carPlate" ng-model="ctrl.busInfoForSave.carPlate"
120   - required placeholder="请输入车牌号"/>
  127 + name="carPlate" ng-model="ctrl.busInfoForSave.carPlate"
  128 + required placeholder="请输入车牌号"
  129 + remote-Validation
  130 + remotevtype="cars_cph"
  131 + remotevparam="{{ {'carPlate_eq': ctrl.busInfoForSave.carPlate} | json}}"
  132 + />
121 133 </div>
122 134 <!-- 隐藏快,显示验证信息 -->
123 135 <div class="alert alert-danger well-sm" ng-show="myForm.carPlate.$error.required">
124 136 车牌号必须填写
125 137 </div>
  138 + <div class="alert alert-danger well-sm" ng-show="myForm.carPlate.$error.remote">
  139 + {{$remote_msg}}
  140 + </div>
126 141 </div>
127 142  
128 143 <div class="form-group has-success has-feedback">
... ... @@ -149,62 +164,69 @@
149 164 <label class="col-md-2 control-label">终端号*:</label>
150 165 <div class="col-md-3">
151 166 <input type="text" class="form-control"
152   - name="equipmentCode" ng-model="ctrl.busInfoForSave.equipmentCode"
153   - required placeholder="请输入设备终端号"/>
  167 + name="equipmentCode" ng-model="ctrl.busInfoForSave.equipmentCode"
  168 + required placeholder="请输入设备终端号"
  169 + remote-Validation
  170 + remotevtype="cars_sbbh"
  171 + remotevparam="{{ {'equipmentCode_eq': ctrl.busInfoForSave.equipmentCode} | json}}"
  172 + />
154 173 </div>
155 174 <!-- 隐藏块,显示验证信息 -->
156 175 <div class="alert alert-danger well-sm" ng-show="myForm.equipmentCode.$error.required">
157 176 设备终端号必须填写
158 177 </div>
  178 + <div class="alert alert-danger well-sm" ng-show="myForm.equipmentCode.$error.remote">
  179 + {{$remote_msg}}
  180 + </div>
159 181 </div>
160 182  
161 183 <div class="form-group">
162 184 <label class="col-md-2 control-label">车型类别:</label>
163 185 <div class="col-md-4">
164 186 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.carClass"
165   - placeholder="请输入车型类别"/>
  187 + placeholder="请输入车型类别"/>
166 188 </div>
167 189 </div>
168 190 <div class="form-group">
169 191 <label class="col-md-2 control-label">技术速度:</label>
170 192 <div class="col-md-4">
171 193 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.speed"
172   - placeholder="请输入技术速度"/>
  194 + placeholder="请输入技术速度"/>
173 195 </div>
174 196 </div>
175 197 <div class="form-group">
176 198 <label class="col-md-2 control-label">座位数:</label>
177 199 <div class="col-md-4">
178 200 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.carSeatnNumber"
179   - placeholder="请输入座位数"/>
  201 + placeholder="请输入座位数"/>
180 202 </div>
181 203 </div>
182 204 <div class="form-group">
183 205 <label class="col-md-2 control-label">载客标准:</label>
184 206 <div class="col-md-4">
185 207 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.carStandard"
186   - placeholder="请输入载客标准"/>
  208 + placeholder="请输入载客标准"/>
187 209 </div>
188 210 </div>
189 211 <div class="form-group">
190 212 <label class="col-md-2 control-label">标准油耗/开空调:</label>
191 213 <div class="col-md-4">
192 214 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.kburnStandard"
193   - placeholder="请输入标准油耗/开空调"/>
  215 + placeholder="请输入标准油耗/开空调"/>
194 216 </div>
195 217 </div>
196 218 <div class="form-group">
197 219 <label class="col-md-2 control-label">标准油耗/关空调:</label>
198 220 <div class="col-md-4">
199 221 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.gburnStandard"
200   - placeholder="请输入标准油耗/关空调"/>
  222 + placeholder="请输入标准油耗/关空调"/>
201 223 </div>
202 224 </div>
203 225 <div class="form-group">
204 226 <label class="col-md-2 control-label">报废号:</label>
205 227 <div class="col-md-4">
206 228 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.scrapCode"
207   - placeholder="请输入报废号"/>
  229 + placeholder="请输入报废号"/>
208 230 </div>
209 231 </div>
210 232  
... ... @@ -229,56 +251,56 @@
229 251 <label class="col-md-2 control-label">厂牌型号1:</label>
230 252 <div class="col-md-4">
231 253 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.makeCodeOne"
232   - placeholder="请输入厂牌型号1"/>
  254 + placeholder="请输入厂牌型号1"/>
233 255 </div>
234 256 </div>
235 257 <div class="form-group">
236 258 <label class="col-md-2 control-label">厂牌型号2:</label>
237 259 <div class="col-md-4">
238 260 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.makeCodeTwo"
239   - placeholder="请输入厂牌型号2"/>
  261 + placeholder="请输入厂牌型号2"/>
240 262 </div>
241 263 </div>
242 264 <div class="form-group">
243 265 <label class="col-md-2 control-label">车辆等级标准:</label>
244 266 <div class="col-md-4">
245 267 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.carGride"
246   - placeholder="请输入车辆等级标准"/>
  268 + placeholder="请输入车辆等级标准"/>
247 269 </div>
248 270 </div>
249 271 <div class="form-group">
250 272 <label class="col-md-2 control-label">出厂排放标准:</label>
251 273 <div class="col-md-4">
252 274 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.emissionsStandard"
253   - placeholder="请输入出场排放标准"/>
  275 + placeholder="请输入出场排放标准"/>
254 276 </div>
255 277 </div>
256 278 <div class="form-group">
257 279 <label class="col-md-2 control-label">发动机号码1:</label>
258 280 <div class="col-md-4">
259 281 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.engineCodeOne"
260   - placeholder="请输入发动机号码1"/>
  282 + placeholder="请输入发动机号码1"/>
261 283 </div>
262 284 </div>
263 285 <div class="form-group">
264 286 <label class="col-md-2 control-label">发动机号码2:</label>
265 287 <div class="col-md-4">
266 288 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.engineCodeTwo"
267   - placeholder="请输入发动机号码2"/>
  289 + placeholder="请输入发动机号码2"/>
268 290 </div>
269 291 </div>
270 292 <div class="form-group">
271 293 <label class="col-md-2 control-label">车架号码1:</label>
272 294 <div class="col-md-4">
273 295 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.carNumberOne"
274   - placeholder="请输入车架号码1"/>
  296 + placeholder="请输入车架号码1"/>
275 297 </div>
276 298 </div>
277 299 <div class="form-group">
278 300 <label class="col-md-2 control-label">车架号码2:</label>
279 301 <div class="col-md-4">
280 302 <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.carNumberTwo"
281   - placeholder="请输入车架号码2"/>
  303 + placeholder="请输入车架号码2"/>
282 304 </div>
283 305 </div>
284 306 <div class="form-group">
... ... @@ -422,5 +444,4 @@
422 444  
423 445 </div>
424 446  
425   -
426 447 </div>
427 448 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/form.html
... ... @@ -45,9 +45,9 @@
45 45 <div class="col-md-3">
46 46 <input type="text" class="form-control"
47 47 name="insideCode" ng-model="ctrl.busInfoForSave.insideCode"
48   - required ng-maxlength="8"
  48 + required ng-maxlength="20"
49 49 remote-Validation
50   - remotevtype="cl1"
  50 + remotevtype="cars_zbh"
51 51 remotevparam="{{ {'insideCode_eq': ctrl.busInfoForSave.insideCode} | json}}"
52 52 placeholder="请输入车辆内部编码"/>
53 53 </div>
... ... @@ -56,10 +56,10 @@
56 56 内部编号必须填写
57 57 </div>
58 58 <div class="alert alert-danger well-sm" ng-show="myForm.insideCode.$error.maxlength">
59   - 内部编号长度不能超过8
  59 + 内部编号长度不能超过20
60 60 </div>
61 61 <div class="alert alert-danger well-sm" ng-show="myForm.insideCode.$error.remote">
62   - 内部编号不能重复
  62 + {{$remote_msg}}
63 63 </div>
64 64 </div>
65 65  
... ... @@ -105,12 +105,19 @@
105 105 <div class="col-md-3">
106 106 <input type="text" class="form-control"
107 107 name="carCode" ng-model="ctrl.busInfoForSave.carCode"
108   - required placeholder="请输入车辆编码"/>
  108 + required placeholder="请输入车辆编码"
  109 + remote-Validation
  110 + remotevtype="cars_clbh"
  111 + remotevparam="{{ {'carCode_eq': ctrl.busInfoForSave.carCode} | json}}"
  112 + />
109 113 </div>
110 114 <!-- 隐藏块,显示验证信息 -->
111 115 <div class="alert alert-danger well-sm" ng-show="myForm.carCode.$error.required">
112 116 车辆编码必须填写
113 117 </div>
  118 + <div class="alert alert-danger well-sm" ng-show="myForm.carCode.$error.remote">
  119 + {{$remote_msg}}
  120 + </div>
114 121 </div>
115 122  
116 123 <div class="form-group has-success has-feedback">
... ... @@ -118,12 +125,19 @@
118 125 <div class="col-md-3">
119 126 <input type="text" class="form-control"
120 127 name="carPlate" ng-model="ctrl.busInfoForSave.carPlate"
121   - required placeholder="请输入车牌号"/>
  128 + required placeholder="请输入车牌号"
  129 + remote-Validation
  130 + remotevtype="cars_cph"
  131 + remotevparam="{{ {'carPlate_eq': ctrl.busInfoForSave.carPlate} | json}}"
  132 + />
122 133 </div>
123 134 <!-- 隐藏快,显示验证信息 -->
124 135 <div class="alert alert-danger well-sm" ng-show="myForm.carPlate.$error.required">
125 136 车牌号必须填写
126 137 </div>
  138 + <div class="alert alert-danger well-sm" ng-show="myForm.carPlate.$error.remote">
  139 + {{$remote_msg}}
  140 + </div>
127 141 </div>
128 142  
129 143 <div class="form-group has-success has-feedback">
... ... @@ -151,12 +165,19 @@
151 165 <div class="col-md-3">
152 166 <input type="text" class="form-control"
153 167 name="equipmentCode" ng-model="ctrl.busInfoForSave.equipmentCode"
154   - required placeholder="请输入设备终端号"/>
  168 + required placeholder="请输入设备终端号"
  169 + remote-Validation
  170 + remotevtype="cars_sbbh"
  171 + remotevparam="{{ {'equipmentCode_eq': ctrl.busInfoForSave.equipmentCode} | json}}"
  172 + />
155 173 </div>
156 174 <!-- 隐藏块,显示验证信息 -->
157 175 <div class="alert alert-danger well-sm" ng-show="myForm.equipmentCode.$error.required">
158 176 设备终端号必须填写
159 177 </div>
  178 + <div class="alert alert-danger well-sm" ng-show="myForm.equipmentCode.$error.remote">
  179 + {{$remote_msg}}
  180 + </div>
160 181 </div>
161 182  
162 183 <div class="form-group">
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/list.html
... ... @@ -7,12 +7,12 @@
7 7 <th style="width: 50px;">序号</th>
8 8 <th style="width: 130px;">车辆编号</th>
9 9 <th style="width: 130px;">内部编号</th>
10   - <th >设备编号</th>
11   - <th >车牌号</th>
12   - <th style="width: 15%;">所在公司</th>
13   - <th >所在分公司</th>
14   - <th style="width: 10%">是否电车</th>
15   - <th style="width: 21%">操作</th>
  10 + <th style="width: 130px;">设备编号</th>
  11 + <th style="width: 130px;">车牌号</th>
  12 + <th style="width: 150px;">所在公司</th>
  13 + <th style="width: 100px;">所在分公司</th>
  14 + <th style="width: 80px">是否电车</th>
  15 + <th style="width: 100%">操作</th>
16 16 </tr>
17 17 <tr role="row" class="filter">
18 18 <td></td>
... ... @@ -23,8 +23,10 @@
23 23 <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().insideCode_like" placeholder="输入内部编号..."/>
24 24 </td>
25 25 <td>
  26 + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().equipmentCode_like" placeholder="输入设备编号..."/>
26 27 </td>
27 28 <td>
  29 + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().carCode_like" placeholder="输入车牌号..."/>
28 30 </td>
29 31 <td>
30 32 <div>
... ... @@ -47,18 +49,18 @@
47 49 </td>
48 50 <td>
49 51 <button class="btn btn-sm green btn-outline filter-submit margin-bottom"
50   - ng-click="ctrl.pageChanaged()">
  52 + ng-click="ctrl.doPage()">
51 53 <i class="fa fa-search"></i> 搜索</button>
52 54  
53 55 <button class="btn btn-sm red btn-outline filter-cancel"
54   - ng-click="ctrl.resetSearchCondition()">
  56 + ng-click="ctrl.reset()">
55 57 <i class="fa fa-times"></i> 重置</button>
56 58 </td>
57 59  
58 60 </tr>
59 61 </thead>
60 62 <tbody>
61   - <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">
  63 + <tr ng-repeat="info in ctrl.page()['content']" class="odd gradeX">
62 64 <td>
63 65 <span ng-bind="$index + 1"></span>
64 66 </td>
... ... @@ -96,9 +98,9 @@
96 98 </div>
97 99  
98 100 <div style="text-align: right;">
99   - <uib-pagination total-items="ctrl.pageInfo.totalItems"
100   - ng-model="ctrl.pageInfo.currentPage"
101   - ng-change="ctrl.pageChanaged()"
  101 + <uib-pagination total-items="ctrl.page()['totalElements']"
  102 + ng-model="ctrl.page()['uiNumber']"
  103 + ng-change="ctrl.doPage()"
102 104 rotate="false"
103 105 max-size="10"
104 106 boundary-links="true"
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/module.js
1 1 // 车辆基础信息维护 service controller等写在一起
2 2  
3   -angular.module('ScheduleApp').factory('BusInfoManageService', ['BusInfoManageService_g', function(service) {
  3 +angular.module('ScheduleApp').factory(
  4 + 'BusInfoManageService',
  5 + [
  6 + 'BusInfoManageService_g',
  7 + function(service) {
4 8  
5   - /** 当前的查询条件信息 */
6   - var currentSearchCondition = {
7   - "carCode_like" : "",
8   - "insideCode_like" : "",
9   - "equipmentCode_like" : "",
10   - "carPlate_like" : ""
11   - };
12   -
13   - /** 当前第几页 */
14   - var currentPageNo = 1;
15   - return {
16   - /**
17   - * 获取查询条件信息,
18   - * 用于给controller用来和页面数据绑定。
19   - */
20   - getSearchCondition: function() {
21   - return currentSearchCondition;
22   - },
23   - /**
24   - * 重置查询条件信息。
25   - */
26   - resetSearchCondition: function() {
27   - var key;
28   - for (key in currentSearchCondition) {
29   - currentSearchCondition[key] = undefined;
30   - }
31   - currentPageNo = 1;
32   - },
33   - /**
34   - * 设置当前页码。
35   - * @param cpn 从1开始,后台是从0开始的
36   - */
37   - setCurrentPageNo: function(cpn) {
38   - currentPageNo = cpn;
39   - },
40   - /**
41   - * 组装查询参数,返回一个promise查询结果。
42   - * @param params 查询参数
43   - * @return 返回一个 promise
44   - */
45   - getPage: function() {
46   - var params = currentSearchCondition; // 查询条件
47   - params.page = currentPageNo - 1; // 服务端页码从0开始
48   - return service.rest.list(params).$promise;
49   - },
50   - /**
51   - * 获取明细信息。
52   - * @param id 车辆id
53   - * @return 返回一个 promise
54   - */
55   - getDetail: function(id) {
56   - var params = {id: id};
57   - return service.rest.get(params).$promise;
58   - },
59   - /**
60   - * 保存信息。
61   - * @param obj 车辆详细信息
62   - * @return 返回一个 promise
63   - */
64   - saveDetail: function(obj) {
65   - return service.rest.save(obj).$promise;
66   - },
67   - /**
68   - * 数据导出。
69   - * @returns {*|Function|promise|n}
70   - */
71   - dataExport: function() {
72   - return service.dataTools.dataExport().$promise;
73   - }
74   - };
75   -}]);
  9 + /** 当前的查询条件信息 */
  10 + var currentSearchCondition = {
  11 + page: 0,
  12 + "carCode_like" : "",
  13 + "insideCode_like" : "",
  14 + "equipmentCode_like" : "",
  15 + "carPlate_like" : ""
  16 + };
  17 + // 当前查询返回的信息
  18 + var currentPage = { // 后台spring data返回的格式
  19 + totalElements: 0,
  20 + number: 0, // 后台返回的页码,spring返回从0开始
  21 + content: [],
76 22  
77   -angular.module('ScheduleApp').controller('BusInfoManageCtrl', [
78   - 'BusInfoManageService','$state', '$uibModal', 'FileDownload_g',
79   - function(busInfoManageService, $state, $uibModal, fileDownload) {
80   - var self = this;
  23 + uiNumber: 1 // 页面绑定的页码
  24 + };
81 25  
82   - // 切换到form状态
83   - self.goForm = function() {
84   - //alert("切换");
85   - $state.go("busInfoManage_form");
86   - };
  26 + // 查询对象
  27 + var queryClass = service.rest;
87 28  
88   - // 导入excel
89   - self.importData = function() {
90   - // large方式弹出模态对话框
91   - var modalInstance = $uibModal.open({
92   - templateUrl: '/pages/scheduleApp/module/basicInfo/busInfoManage/dataImport.html',
93   - size: "lg",
94   - animation: true,
95   - backdrop: 'static',
96   - resolve: {
97   - // 可以传值给controller
  29 + return {
  30 + getQueryClass: function() {
  31 + return queryClass;
98 32 },
99   - windowClass: 'center-modal',
100   - controller: "BusInfoManageToolsCtrl",
101   - controllerAs: "ctrl",
102   - bindToController: true
103   - });
104   - modalInstance.result.then(
105   - function() {
106   - console.log("dataImport.html打开");
  33 + /**
  34 + * 获取查询条件信息,
  35 + * 用于给controller用来和页面数据绑定。
  36 + */
  37 + getSearchCondition: function() {
  38 + currentSearchCondition.page = currentPage.uiNumber - 1;
  39 + return currentSearchCondition;
107 40 },
108   - function() {
109   - console.log("dataImport.html消失");
110   - }
111   - );
112   - };
113   -
114   - // 导出excel
115   - self.exportData = function() {
116   - busInfoManageService.dataExport().then(
117   - function(result) {
118   - fileDownload.downloadFile(result.data, "application/octet-stream", "车辆基础信息.xls");
  41 + /**
  42 + * 组装查询参数,返回一个promise查询结果。
  43 + * @param params 查询参数
  44 + * @return 返回一个 promise
  45 + */
  46 + getPage: function(page) {
  47 + if (page) {
  48 + currentPage.totalElements = page.totalElements;
  49 + currentPage.number = page.number;
  50 + currentPage.content = page.content;
  51 + }
  52 + return currentPage;
119 53 },
120   - function(result) {
121   - console.log("exportData failed:" + result);
  54 + resetStatus: function() {
  55 + currentSearchCondition = {page: 0};
  56 + currentPage = {
  57 + totalElements: 0,
  58 + number: 0,
  59 + content: [],
  60 + uiNumber: 1
  61 + };
  62 + },
  63 +
  64 + /**
  65 + * 数据导出。
  66 + * @returns {*|Function|promise|n}
  67 + */
  68 + dataExport: function() {
  69 + return service.dataTools.dataExport().$promise;
122 70 }
123   - );
124   - };
125   - }]);
  71 + };
  72 +
  73 + }
  74 + ]
  75 +);
  76 +
  77 +// index.html控制器
  78 +angular.module('ScheduleApp').controller(
  79 + 'BusInfoManageCtrl',
  80 + [
  81 + 'BusInfoManageService',
  82 + '$state',
  83 + '$uibModal',
  84 + 'FileDownload_g',
  85 + function(busInfoManageService, $state, $uibModal, fileDownload) {
  86 + var self = this;
  87 +
  88 + // 切换到form状态
  89 + self.goForm = function() {
  90 + //alert("切换");
  91 + $state.go("busInfoManage_form");
  92 + };
  93 +
  94 + // 导入excel
  95 + self.importData = function() {
  96 + // large方式弹出模态对话框
  97 + var modalInstance = $uibModal.open({
  98 + templateUrl: '/pages/scheduleApp/module/basicInfo/busInfoManage/dataImport.html',
  99 + size: "lg",
  100 + animation: true,
  101 + backdrop: 'static',
  102 + resolve: {
  103 + // 可以传值给controller
  104 + },
  105 + windowClass: 'center-modal',
  106 + controller: "BusInfoManageToolsCtrl",
  107 + controllerAs: "ctrl",
  108 + bindToController: true
  109 + });
  110 + modalInstance.result.then(
  111 + function() {
  112 + console.log("dataImport.html打开");
  113 + },
  114 + function() {
  115 + console.log("dataImport.html消失");
  116 + }
  117 + );
  118 + };
  119 +
  120 + // 导出excel
  121 + self.exportData = function() {
  122 + busInfoManageService.dataExport().then(
  123 + function(result) {
  124 + fileDownload.downloadFile(result.data, "application/octet-stream", "车辆基础信息.xls");
  125 + },
  126 + function(result) {
  127 + console.log("exportData failed:" + result);
  128 + }
  129 + );
  130 + };
  131 + }
  132 + ]
  133 +);
126 134  
127 135 angular.module('ScheduleApp').controller('BusInfoManageToolsCtrl', ['$modalInstance', 'FileUploader', function($modalInstance, FileUploader) {
128 136 var self = this;
... ... @@ -160,143 +168,114 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;BusInfoManageToolsCtrl&#39;, [&#39;$modalInsta
160 168  
161 169 }]);
162 170  
  171 +// list.html控制器
  172 +angular.module('ScheduleApp').controller(
  173 + 'BusInfoManageListCtrl',
  174 + [
  175 + 'BusInfoManageService',
  176 + '$scope',
  177 + function(service, $scope) {
  178 + var self = this;
  179 + var Cars = service.getQueryClass();
163 180  
164   -angular.module('ScheduleApp').controller('BusInfoManageListCtrl', ['BusInfoManageService','$scope', function(busInfoManageService, $scope) {
165   - var self = this;
166   - self.pageInfo = {
167   - totalItems : 0,
168   - currentPage : 1,
169   - infos: []
170   - };
  181 + self.page = function() {
  182 + return service.getPage();
  183 + };
171 184  
172   - // 初始创建的时候,获取一次列表数据
173   - busInfoManageService.getPage().then(
174   - function(result) {
175   - self.pageInfo.totalItems = result.totalElements;
176   - self.pageInfo.currentPage = result.number + 1;
177   - self.pageInfo.infos = result.content;
178   - busInfoManageService.setCurrentPageNo(result.number + 1);
179   - },
180   - function(result) {
181   - alert("出错啦!");
182   - }
183   - );
  185 + self.searchCondition = function() {
  186 + return service.getSearchCondition();
  187 + };
184 188  
185   - //$scope.$watch("ctrl.pageInfo.currentPage", function() {
186   - // alert("dfdfdf");
187   - //});
  189 + self.doPage = function() {
  190 + var result = Cars.list(self.searchCondition(), function() {
  191 + if (!result.status) {
  192 + service.getPage(result);
  193 + }
  194 + });
  195 + };
  196 + self.reset = function() {
  197 + service.resetStatus();
  198 + var result = Cars.list(self.searchCondition(), function() {
  199 + if (!result.status) {
  200 + service.getPage(result);
  201 + }
  202 + });
  203 + };
188 204  
189   - // 翻页的时候调用
190   - self.pageChanaged = function() {
191   - busInfoManageService.setCurrentPageNo(self.pageInfo.currentPage);
192   - busInfoManageService.getPage().then(
193   - function(result) {
194   - self.pageInfo.totalItems = result.totalElements;
195   - self.pageInfo.currentPage = result.number + 1;
196   - self.pageInfo.infos = result.content;
197   - busInfoManageService.setCurrentPageNo(result.number + 1);
198   - },
199   - function(result) {
200   - alert("出错啦!");
201   - }
202   - );
203   - };
204   - // 获取查询条件数据
205   - self.searchCondition = function() {
206   - return busInfoManageService.getSearchCondition();
207   - };
208   - // 重置查询条件
209   - self.resetSearchCondition = function() {
210   - busInfoManageService.resetSearchCondition();
211   - self.pageInfo.currentPage = 1;
212   - self.pageChanaged();
213   - };
214   -}]);
  205 + self.doPage();
  206 + }
  207 + ]
  208 +);
215 209  
216   -angular.module('ScheduleApp').controller('BusInfoManageFormCtrl', ['BusInfoManageService', '$stateParams', '$state', function(busInfoManageService, $stateParams, $state) {
217   - var self = this;
  210 +// form.html控制器
  211 +angular.module('ScheduleApp').controller(
  212 + 'BusInfoManageFormCtrl',
  213 + [
  214 + 'BusInfoManageService',
  215 + '$stateParams',
  216 + '$state',
  217 + function(service, $stateParams, $state) {
  218 + var self = this;
  219 + var Cars = service.getQueryClass();
218 220  
219   - // 报废日期 日期控件开关
220   - self.scrapDateOpen = false;
221   - self.scrapDate_open = function() {
222   - self.scrapDateOpen = true;
223   - };
  221 + // 报废日期 日期控件开关
  222 + self.scrapDateOpen = false;
  223 + self.scrapDate_open = function() {
  224 + self.scrapDateOpen = true;
  225 + };
224 226  
225   - // 启用日期 日期控件开关
226   - self.openDateOpen = false;
227   - self.openDate_open = function() {
228   - self.openDateOpen = true;
229   - };
230   - // 取消日期 日期控件开关
231   - self.closeDateOpen = false;
232   - self.closeDate_open = function() {
233   - self.closeDateOpen = true;
234   - };
  227 + // 启用日期 日期控件开关
  228 + self.openDateOpen = false;
  229 + self.openDate_open = function() {
  230 + self.openDateOpen = true;
  231 + };
  232 + // 取消日期 日期控件开关
  233 + self.closeDateOpen = false;
  234 + self.closeDate_open = function() {
  235 + self.closeDateOpen = true;
  236 + };
235 237  
236   - // 欲保存的busInfo信息,绑定
237   - self.busInfoForSave = {};
  238 + // 欲保存的busInfo信息,绑定
  239 + self.busInfoForSave = new Cars;
238 240  
239   - // 获取传过来的id,有的话就是修改,获取一遍数据
240   - var id = $stateParams.id;
241   - if (id) {
242   - self.busInfoForSave.id = id;
243   - busInfoManageService.getDetail(id).then(
244   - function(result) {
245   - var key;
246   - for (key in result) {
247   - self.busInfoForSave[key] = result[key];
248   - }
249   - },
250   - function(result) {
251   - alert("出错啦!");
  241 + // 获取传过来的id,有的话就是修改,获取一遍数据
  242 + var id = $stateParams.id;
  243 + if (id) {
  244 + self.busInfoForSave = Cars.get({id: id}, function() {});
252 245 }
253   - );
254   - }
255 246  
256   - // 提交方法
257   - self.submit = function() {
258   - console.log(self.busInfoForSave);
259   - //if (self.busInfoForSave) {
260   - // delete $stateParams.id;
261   - //}
262   - busInfoManageService.saveDetail(self.busInfoForSave).then(
263   - function(result) {
264   - // TODO:弹出框方式以后改
265   - if (result.status == 'SUCCESS') {
266   - alert("保存成功!");
  247 + // 提交方法
  248 + self.submit = function() {
  249 + console.log(self.busInfoForSave);
  250 + //if (self.busInfoForSave) {
  251 + // delete $stateParams.id;
  252 + //}
  253 + self.busInfoForSave.$save(function() {
267 254 $state.go("busInfoManage");
268   - } else {
269   - alert("保存异常!");
270   - }
271   - },
272   - function(result) {
273   - // TODO:弹出框方式以后改
274   - alert("出错啦!");
275   - }
276   - );
277   - };
278   -
279   -}]);
  255 + });
  256 + };
  257 + }
  258 + ]
  259 +);
280 260  
281   -angular.module('ScheduleApp').controller('BusInfoManageDetailCtrl', ['BusInfoManageService', '$stateParams', function(busInfoManageService, $stateParams) {
282   - var self = this;
283   - self.title = "";
284   - self.busInfoForDetail = {};
285   - self.busInfoForDetail.id = $stateParams.id;
  261 +// detail.html控制器
  262 +angular.module('ScheduleApp').controller(
  263 + 'BusInfoManageDetailCtrl',
  264 + [
  265 + 'BusInfoManageService',
  266 + '$stateParams',
  267 + function(service, $stateParams) {
  268 + var self = this;
  269 + var Cars = service.getQueryClass();
  270 + var id = $stateParams.id;
286 271  
287   - // 当转向到此页面时,就获取明细信息并绑定
288   - busInfoManageService.getDetail($stateParams.id).then(
289   - function(result) {
290   - var key;
291   - for (key in result) {
292   - self.busInfoForDetail[key] = result[key];
293   - }
  272 + self.title = "";
  273 + self.busInfoForDetail = {};
294 274  
295   - self.title = "车辆 " + self.busInfoForDetail.insideCode + " 详细信息";
296   - },
297   - function(result) {
298   - // TODO:弹出框方式以后改
299   - alert("出错啦!");
  275 + // 当转向到此页面时,就获取明细信息并绑定
  276 + self.busInfoForDetail = Cars.get({id: id}, function() {
  277 + self.title = "车辆 " + self.busInfoForDetail.insideCode + " 详细信息";
  278 + });
300 279 }
301   - );
302   -}]);
303 280 \ No newline at end of file
  281 + ]
  282 +);
304 283 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/service.js 0 → 100644
  1 +// 车辆信息service
  2 +angular.module('ScheduleApp').factory('BusInfoManageService_g', ['$resource', function($resource) {
  3 + return {
  4 + rest: $resource(
  5 + '/cars_sc/:id',
  6 + {order: 'carCode', direction: 'ASC', id: '@id_route'},
  7 + {
  8 + list: {
  9 + method: 'GET',
  10 + params: {
  11 + page: 0
  12 + },
  13 + transformResponse: function(rs) {
  14 + var dst = angular.fromJson(rs);
  15 + if (dst.status == 'SUCCESS') {
  16 + return dst.data;
  17 + } else {
  18 + return dst; // 业务错误留给控制器处理
  19 + }
  20 + }
  21 + },
  22 + get: {
  23 + method: 'GET',
  24 + transformResponse: function(rs) {
  25 + var dst = angular.fromJson(rs);
  26 + if (dst.status == 'SUCCESS') {
  27 + return dst.data;
  28 + } else {
  29 + return dst;
  30 + }
  31 + }
  32 + },
  33 + save: {
  34 + method: 'POST'
  35 + }
  36 + }
  37 + ),
  38 + import: $resource(
  39 + '/cars/importfile',
  40 + {},
  41 + {
  42 + do: {
  43 + method: 'POST',
  44 + headers: {
  45 + 'Content-Type': 'application/x-www-form-urlencoded'
  46 + },
  47 + transformRequest: function(obj) {
  48 + var str = [];
  49 + for (var p in obj) {
  50 + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
  51 + }
  52 + return str.join("&");
  53 + }
  54 + }
  55 + }
  56 + ),
  57 + validate: $resource(
  58 + '/cars/validate/:type',
  59 + {},
  60 + {
  61 + insideCode: {
  62 + method: 'GET'
  63 + }
  64 + }
  65 + ),
  66 + dataTools: $resource(
  67 + '/cars/:type',
  68 + {},
  69 + {
  70 + dataExport: {
  71 + method: 'GET',
  72 + responseType: "arraybuffer",
  73 + params: {
  74 + type: "dataExport"
  75 + },
  76 + transformResponse: function(data, headers){
  77 + return {data : data};
  78 + }
  79 + }
  80 + }
  81 + )
  82 + };
  83 +}]);
0 84 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/service.js 0 → 100644
  1 +// 车辆设备信息service
  2 +angular.module('ScheduleApp').factory('DeviceInfoManageService_g', ['$resource', function($resource) {
  3 + return $resource(
  4 + '/cde/:id',
  5 + {order: 'xl,isCancel,cl,qyrq', direction: 'ASC,ASC,ASC,DESC', id: '@id_route'},
  6 + {
  7 + list: {
  8 + method: 'GET',
  9 + params: {
  10 + page: 0
  11 + }
  12 + },
  13 + get: {
  14 + method: 'GET'
  15 + },
  16 + save: {
  17 + method: 'POST'
  18 + },
  19 + delete: {
  20 + method: 'DELETE'
  21 + }
  22 + }
  23 + );
  24 +}]);
0 25 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/service.js 0 → 100644
  1 +// 人员信息service
  2 +angular.module('ScheduleApp').factory('EmployeeInfoManageService_g', ['$resource', function($resource) {
  3 + return {
  4 + rest : $resource(
  5 + '/personnel/:id',
  6 + {order: 'jobCode', direction: 'ASC', id: '@id_route'},
  7 + {
  8 + list: {
  9 + method: 'GET',
  10 + params: {
  11 + page: 0
  12 + }
  13 + },
  14 + get: {
  15 + method: 'GET'
  16 + },
  17 + save: {
  18 + method: 'POST'
  19 + }
  20 + }
  21 + ),
  22 + validate: $resource(
  23 + '/personnel/validate/:type',
  24 + {},
  25 + {
  26 + jobCode: {
  27 + method: 'GET'
  28 + }
  29 + }
  30 + ),
  31 + dataTools: $resource(
  32 + '/personnel/:type',
  33 + {},
  34 + {
  35 + dataExport: {
  36 + method: 'GET',
  37 + responseType: "arraybuffer",
  38 + params: {
  39 + type: "dataExport"
  40 + },
  41 + transformResponse: function(data, headers){
  42 + return {data : data};
  43 + }
  44 + }
  45 + }
  46 + )
  47 + };
  48 +}]);
... ...
src/main/resources/static/pages/scheduleApp/module/common/directives/.gitkeep.txt 0 → 100644
src/main/resources/static/pages/scheduleApp/module/common/directives/select/mySelect.js 0 → 100644
  1 +/**
  2 + * mySelect指令,封装uiselect指令,封装内部数据获取,只支持单选
  3 + * cm(必须):绑定外部对象,因为关联的字段不只一个,单独使用ngModel不够
  4 + * cmoptions(必须):描述绑定的逻辑配置对象,格式如下:
  5 + *
  6 + * // TODO:
  7 + */
  8 +angular.module('ScheduleApp').directive('mySelect', [
  9 + function() {
  10 + return {
  11 + restrict: 'E',
  12 + template: '<div>bioxuxuan</div>',
  13 + require: 'ngModel',
  14 + compile: function(tElem, tAttrs) {
  15 + return {
  16 + pre: function(scope, element, attr) {
  17 +
  18 + },
  19 + post: function(scope, element, attr, ngModelCtr) {
  20 + // model -> view
  21 + ngModelCtr.$formatters.push(function(modelValue) {
  22 + // 监控model的变化
  23 + if (typeof modelValue != "undefined") {
  24 + console.log(modelValue);
  25 +
  26 + return modelValue;
  27 + }
  28 + });
  29 +
  30 + ngModelCtr.$render = function() {
  31 + if (typeof scope.ctrl.say != "undefined") {
  32 + element.find('div').css('color', 'red');
  33 + }
  34 + };
  35 +
  36 + ngModelCtr.$setViewValue("init value");
  37 +
  38 +
  39 + }
  40 + }
  41 + }
  42 + }
  43 + }
  44 +]);
0 45 \ No newline at end of file
... ...