Commit e82b03424df717ca5c6b5a3fc5cfbea42d2c1e4e

Authored by panzhaov5
2 parents 151ce8c8 844aeb48

Merge branch 'pudong' of http://222.66.0.204:8090/panzhaov5/bsth_control into pudong

Too many changes to show.

To preserve performance only 19 of 49 files are displayed.

src/main/java/com/bsth/controller/oil/LsylbController.java 0 → 100644
  1 +package com.bsth.controller.oil;
  2 +
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
  5 +import java.util.HashMap;
  6 +import java.util.Iterator;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RequestMethod;
  13 +import org.springframework.web.bind.annotation.RequestParam;
  14 +import org.springframework.web.bind.annotation.RestController;
  15 +
  16 +import com.bsth.controller.BaseController;
  17 +import com.bsth.entity.oil.Lsylb;
  18 +import com.bsth.entity.oil.Ylb;
  19 +import com.bsth.service.oil.LsylbService;
  20 +import com.bsth.util.Arith;
  21 +import com.bsth.util.ReportUtils;
  22 +
  23 +@RestController
  24 +@RequestMapping("lsylb")
  25 +public class LsylbController extends BaseController<Ylb, Integer>{
  26 + @Autowired
  27 + LsylbService lsylbService;
  28 +
  29 + @RequestMapping(value = "/lsylbList",method = RequestMethod.GET)
  30 + public List<Lsylb> lsylbList(@RequestParam Map<String, Object> map){
  31 + List<Lsylb> ylbList=lsylbService.listYlb(map);
  32 + return ylbList;
  33 + }
  34 +
  35 + @RequestMapping(value = "/sumLsylb",method = RequestMethod.GET)
  36 + public Map<String, Object> sumLsylb(@RequestParam Map<String, Object> map){
  37 + Map<String, Object> list=lsylbService.sumYlb(map);
  38 + return list;
  39 + }
  40 +
  41 + @RequestMapping(value = "/listExport",method = RequestMethod.POST)
  42 + public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){
  43 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  44 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  45 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  46 + ReportUtils ee = new ReportUtils();
  47 + List<Lsylb> lsylb= lsylbService.listYlb(map);
  48 + String nylx=map.get("nylx").toString();
  49 +// (new CustomerSpecs<Ylb>(map)).iterator();
  50 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  51 + for (Lsylb y : lsylb) {
  52 + Map<String, Object> m = new HashMap<String, Object>();
  53 + m.put("rq", sdfMonth.format(y.getRq()));
  54 + m.put("gsname",y.getGsname() );
  55 + m.put("fgsname", y.getFgsname());
  56 + m.put("xlname", y.getXlname()==null?"":y.getXlname());
  57 + m.put("nbbm", y.getNbbm());
  58 + m.put("jsy", y.getJsy());
  59 + m.put("name", y.getName());
  60 + m.put("czlc", "0");
  61 + m.put("jzlc", "0");
  62 + m.put("sh", y.getSh()==null?"0":y.getSh());
  63 +
  64 + String shyy ="无";
  65 +
  66 + if(nylx.equals("0")){
  67 + m.put("jzl", y.getJzl()==null?"0":y.getJzl());
  68 + m.put("czyl", y.getCzyl()==null?"0":y.getCzyl());
  69 + m.put("jzyl", y.getJzyl()==null?"0":y.getJzyl());
  70 + m.put("yh", y.getYh()==null?"0":y.getYh());
  71 +
  72 + if(y.getShyy()!=null){
  73 + shyy=y.getShyy();
  74 + if(shyy.equals("1")){shyy="票务用油";}
  75 + else if(shyy.equals("2")){shyy="保养用油";}
  76 + else if(shyy.equals("3")){shyy="报废车用油";}
  77 + else if(shyy.equals("4")){shyy="其它用油";}
  78 + else if(shyy.equals("5")){shyy="人保部";}
  79 + else if(shyy.equals("6")){shyy="车队";}
  80 + else if(shyy.equals("7")){shyy="车间(高保)";}
  81 + else if(shyy.equals("8")){shyy="车间(小修)";}
  82 + else{shyy ="无";}
  83 + }
  84 + m.put("zyh", Arith.add(m.get("sh"), m.get("yh")));
  85 +
  86 + String rylx="";
  87 + if(y.getRylx()!=null){
  88 + if(y.getRylx().equals("0")){rylx="0号柴油";}
  89 + if(y.getRylx().equals("1")){rylx="负10号柴油";}
  90 + }
  91 + m.put("rylx", rylx);
  92 + }else{
  93 + m.put("cdl", y.getJzl()==null?"0":y.getJzl());
  94 + m.put("czcd", y.getCzyl()==null?"0":y.getCzyl());
  95 + m.put("jzcd", y.getJzyl()==null?"0":y.getJzyl());
  96 + m.put("hd", y.getYh()==null?"0":y.getYh());
  97 + if(y.getShyy()!=null){
  98 + shyy=y.getShyy();
  99 + if(shyy.equals("1")){shyy="票务用电";}
  100 + else if(shyy.equals("2")){shyy="保养用电";}
  101 + else if(shyy.equals("3")){shyy="报废车用电";}
  102 + else if(shyy.equals("4")){shyy="其它用电";}
  103 + else if(shyy.equals("5")){shyy="人保部";}
  104 + else if(shyy.equals("6")){shyy="车队";}
  105 + else if(shyy.equals("7")){shyy="车间(高保)";}
  106 + else if(shyy.equals("8")){shyy="车间(小修)";}
  107 + else{shyy ="无";}
  108 + }
  109 + m.put("zyh", Arith.add(m.get("sh"), m.get("hd")));
  110 + m.put("rdlx", "");
  111 +
  112 + }
  113 + m.put("shyy", shyy);
  114 + m.put("ns", y.getNs()==null?"0":y.getNs());
  115 + m.put("zlc", y.getZlc()==null?"0":y.getZlc());
  116 + m.put("bglyh", y.getBglyh());
  117 + resList.add(m);
  118 + }
  119 + try {
  120 + map.put("sheetName", map.get("rq"));
  121 + listI.add(resList.iterator());
  122 + String xls="";
  123 + String name="";
  124 +
  125 + if(nylx.equals("0")){
  126 + xls="list.xls";
  127 + name="进出场存油量.xls";
  128 + }else{
  129 + xls="listDl.xls";
  130 + name="进出场存电量.xls";
  131 + }
  132 + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
  133 + ee.excelReplace(listI, new Object[] { map }, path+"mould/"+xls,
  134 + path+"export/"+map.get("rq").toString()+ name);
  135 + } catch (Exception e) {
  136 + e.printStackTrace();
  137 + }
  138 +
  139 + return resList;
  140 +
  141 + }
  142 +}
src/main/java/com/bsth/data/schedule/e_state_check/ScheduleStationCodeChecker.java
1 -package com.bsth.data.schedule.e_state_check;  
2 -  
3 -import com.alibaba.fastjson.JSON;  
4 -import com.bsth.data.schedule.DayOfSchedule;  
5 -import com.bsth.data.schedule.e_state_check.entity.SCodeInfo;  
6 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
7 -import com.google.common.collect.ArrayListMultimap;  
8 -import org.slf4j.Logger;  
9 -import org.slf4j.LoggerFactory;  
10 -import org.springframework.beans.factory.annotation.Autowired;  
11 -import org.springframework.jdbc.core.BeanPropertyRowMapper;  
12 -import org.springframework.jdbc.core.JdbcTemplate;  
13 -import org.springframework.stereotype.Component;  
14 -  
15 -import java.util.*;  
16 -  
17 -/**  
18 - * 检查班次站点编码和路由编码是否相符合  
19 - * Created by panzhao on 2018/4/2.  
20 - */  
21 -@Component  
22 -public class ScheduleStationCodeChecker {  
23 -  
24 - @Autowired  
25 - DayOfSchedule dayOfSchedule;  
26 -  
27 - private static ArrayListMultimap<String, SCodeInfo> multimap;  
28 -  
29 - static {  
30 - multimap = ArrayListMultimap.create();  
31 - }  
32 -  
33 - @Autowired  
34 - JdbcTemplate jdbcTemplate;  
35 -  
36 - static Logger logger = LoggerFactory.getLogger(ScheduleStationCodeChecker.class);  
37 -  
38 - public static List<SCodeInfo> findByLineIdx(List<String> lineArray){  
39 - List<SCodeInfo> rs = new ArrayList<>();  
40 -  
41 - try{  
42 - for(String coed : lineArray){  
43 - rs.addAll(multimap.get(coed));  
44 - }  
45 - }catch (Exception e){  
46 - logger.error("", e);  
47 - }  
48 - return rs;  
49 - }  
50 -  
51 - public void checkAll() {  
52 - try {  
53 - logger.info("start....");  
54 - List<ScheduleRealInfo> all = new ArrayList(dayOfSchedule.findAll());  
55 -  
56 - //按线路站点分组数据(上行)  
57 - Map<String, ScheduleRealInfo> ups = new HashMap<>();  
58 - //按线路站点分组数据(下行)  
59 - Map<String, ScheduleRealInfo> downs = new HashMap();  
60 -  
61 - String key;  
62 - for (ScheduleRealInfo sch : all) {  
63 - if (sch.getBcType().equals("out")  
64 - || sch.getBcType().equals("in"))  
65 - continue;  
66 -  
67 - key = sch.getXlBm() + "_" + sch.getXlDir() + "_";  
68 -  
69 - ups.put(key + sch.getQdzCode(), sch);  
70 - downs.put(key + sch.getZdzCode(), sch);  
71 - }  
72 -  
73 - //获取全部实际的站点编码  
74 - Map<String, SCodeInfo> realMap = allRealCodeInfo();  
75 -  
76 - List<SCodeInfo> rs = new ArrayList<>();  
77 - rs.addAll(checkCode(ups.values(), realMap, "qd"));  
78 - rs.addAll(checkCode(downs.values(), realMap, "zd"));  
79 -  
80 - //按线路分组  
81 - ArrayListMultimap<String, SCodeInfo> mList = ArrayListMultimap.create();  
82 - for (SCodeInfo sci : rs) {  
83 - mList.put(sci.getLineCode(), sci);  
84 - }  
85 -  
86 - multimap = mList;  
87 - logger.info("站点检查 end.... idx: " + (multimap.keySet().size() > 0 ? JSON.toJSONString(multimap.keySet()):"无"));  
88 - } catch (Exception e) {  
89 - logger.error("", e);  
90 - }  
91 - }  
92 -  
93 - private List<SCodeInfo> checkCode(Collection<ScheduleRealInfo> list, Map<String, SCodeInfo> realMap, String qdOrZd) {  
94 - List<SCodeInfo> rs = new ArrayList<>();  
95 - String k;  
96 - SCodeInfo sci;  
97 - for(ScheduleRealInfo sch : list){  
98 - k = sch.getXlBm() + "_" + sch.getXlDir() + "_";  
99 -  
100 - sci = realMap.get(k + getName(sch, qdOrZd));//名称和编码都不存在  
101 - if(null == sci && !realMap.containsKey(k + getCode(sch, qdOrZd))){  
102 - sci = SCodeInfo.getInstance(sch, qdOrZd);  
103 - rs.add(sci);  
104 - continue;  
105 - }  
106 - else if(null != sci && !codeEq(sci, getCode(sch, qdOrZd))){//名称一致的站点,编码不一致  
107 - sci.setStationCode(getCode(sch, qdOrZd));  
108 - rs.add(sci);  
109 - continue;  
110 - }  
111 - }  
112 - return rs;  
113 - }  
114 -  
115 - private boolean codeEq(SCodeInfo sci, String code){  
116 - return sci.getRealStationCode().equals(code) || sci.getRealStationCode().indexOf(code + "^") != -1;  
117 - }  
118 -  
119 - private String getName(ScheduleRealInfo sch, String qdOrZd) {  
120 - return qdOrZd.equals("qd")?sch.getQdzName():sch.getZdzName();  
121 - }  
122 -  
123 - private String getCode(ScheduleRealInfo sch, String qdOrZd) {  
124 - return qdOrZd.equals("qd")?sch.getQdzCode():sch.getZdzCode();  
125 - }  
126 -  
127 -  
128 - private Map<String, SCodeInfo> allRealCodeInfo() {  
129 - String sql = "select line_code,directions as up_down,station_code as real_station_code,station_name from bsth_c_stationroute where line in (select id from bsth_c_line where destroy=0) and destroy=0";  
130 - List<SCodeInfo> realList = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(SCodeInfo.class));  
131 - Map<String, SCodeInfo> realMap = new HashMap<>();  
132 -  
133 - String kName;  
134 - SCodeInfo old;  
135 - for (SCodeInfo sci : realList) {  
136 - kName = sci.getLineCode() + "_" + sci.getUpDown() + "_" + sci.getStationName();  
137 -  
138 - if(realMap.containsKey(kName)){  
139 - //环线可能存在同名的站点  
140 - old = realMap.get(kName);  
141 - old.setRealStationCode(old.getRealStationCode() + "^" + sci.getRealStationCode() + "^");  
142 - continue;  
143 - }  
144 -  
145 - realMap.put(kName, sci);  
146 - realMap.put(sci.getLineCode() + "_" + sci.getUpDown() + "_" + sci.getRealStationCode(), sci);  
147 - }  
148 -  
149 - return realMap;  
150 - } 1 +package com.bsth.data.schedule.e_state_check;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.bsth.data.schedule.DayOfSchedule;
  5 +import com.bsth.data.schedule.e_state_check.entity.SCodeInfo;
  6 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  7 +import com.google.common.collect.ArrayListMultimap;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.jdbc.core.BeanPropertyRowMapper;
  12 +import org.springframework.jdbc.core.JdbcTemplate;
  13 +import org.springframework.stereotype.Component;
  14 +
  15 +import java.util.*;
  16 +
  17 +/**
  18 + * 检查班次站点编码和路由编码是否相符合
  19 + * Created by panzhao on 2018/4/2.
  20 + */
  21 +@Component
  22 +public class ScheduleStationCodeChecker {
  23 +
  24 + @Autowired
  25 + DayOfSchedule dayOfSchedule;
  26 +
  27 + private static ArrayListMultimap<String, SCodeInfo> multimap;
  28 +
  29 + static {
  30 + multimap = ArrayListMultimap.create();
  31 + }
  32 +
  33 + @Autowired
  34 + JdbcTemplate jdbcTemplate;
  35 +
  36 + static Logger logger = LoggerFactory.getLogger(ScheduleStationCodeChecker.class);
  37 +
  38 + public static List<SCodeInfo> findByLineIdx(List<String> lineArray){
  39 + List<SCodeInfo> rs = new ArrayList<>();
  40 +
  41 + try{
  42 + for(String coed : lineArray){
  43 + rs.addAll(multimap.get(coed));
  44 + }
  45 + }catch (Exception e){
  46 + logger.error("", e);
  47 + }
  48 + return rs;
  49 + }
  50 +
  51 + public void checkAll() {
  52 + try {
  53 + logger.info("start....");
  54 + List<ScheduleRealInfo> all = new ArrayList(dayOfSchedule.findAll());
  55 +
  56 + //按线路站点分组数据(上行)
  57 + Map<String, ScheduleRealInfo> ups = new HashMap<>();
  58 + //按线路站点分组数据(下行)
  59 + Map<String, ScheduleRealInfo> downs = new HashMap();
  60 +
  61 + String key;
  62 + for (ScheduleRealInfo sch : all) {
  63 + if (sch.getBcType().equals("out")
  64 + || sch.getBcType().equals("in"))
  65 + continue;
  66 +
  67 + key = sch.getXlBm() + "_" + sch.getXlDir() + "_";
  68 +
  69 + ups.put(key + sch.getQdzCode(), sch);
  70 + downs.put(key + sch.getZdzCode(), sch);
  71 + }
  72 +
  73 + //获取全部实际的站点编码
  74 + Map<String, SCodeInfo> realMap = allRealCodeInfo();
  75 +
  76 + List<SCodeInfo> rs = new ArrayList<>();
  77 + rs.addAll(checkCode(ups.values(), realMap, "qd"));
  78 + rs.addAll(checkCode(downs.values(), realMap, "zd"));
  79 +
  80 + //按线路分组
  81 + ArrayListMultimap<String, SCodeInfo> mList = ArrayListMultimap.create();
  82 + for (SCodeInfo sci : rs) {
  83 + mList.put(sci.getLineCode(), sci);
  84 + }
  85 +
  86 + multimap = mList;
  87 + logger.info("站点检查 end.... idx: " + (multimap.keySet().size() > 0 ? JSON.toJSONString(multimap.keySet()):"无"));
  88 + } catch (Exception e) {
  89 + logger.error("", e);
  90 + }
  91 + }
  92 +
  93 + private List<SCodeInfo> checkCode(Collection<ScheduleRealInfo> list, Map<String, SCodeInfo> realMap, String qdOrZd) {
  94 + List<SCodeInfo> rs = new ArrayList<>();
  95 + String k;
  96 + SCodeInfo sci;
  97 + for(ScheduleRealInfo sch : list){
  98 + k = sch.getXlBm() + "_" + sch.getXlDir() + "_";
  99 +
  100 + sci = realMap.get(k + getName(sch, qdOrZd));//名称和编码都不存在
  101 + if(null == sci && !realMap.containsKey(k + getCode(sch, qdOrZd))){
  102 + sci = SCodeInfo.getInstance(sch, qdOrZd);
  103 + rs.add(sci);
  104 + continue;
  105 + }
  106 + else if(null != sci && !codeEq(sci, getCode(sch, qdOrZd))){//名称一致的站点,编码不一致
  107 + sci.setStationCode(getCode(sch, qdOrZd));
  108 + rs.add(sci);
  109 + continue;
  110 + }
  111 + }
  112 + return rs;
  113 + }
  114 +
  115 + private boolean codeEq(SCodeInfo sci, String code){
  116 + return sci.getRealStationCode().equals(code) || sci.getRealStationCode().indexOf(code + "^") != -1;
  117 + }
  118 +
  119 + private String getName(ScheduleRealInfo sch, String qdOrZd) {
  120 + return qdOrZd.equals("qd")?sch.getQdzName():sch.getZdzName();
  121 + }
  122 +
  123 + private String getCode(ScheduleRealInfo sch, String qdOrZd) {
  124 + return qdOrZd.equals("qd")?sch.getQdzCode():sch.getZdzCode();
  125 + }
  126 +
  127 +
  128 + private Map<String, SCodeInfo> allRealCodeInfo() {
  129 + String sql = "select line_code,directions as up_down,station_code as real_station_code,station_name from bsth_c_stationroute where line in (select id from bsth_c_line where destroy=0) and destroy=0";
  130 + List<SCodeInfo> realList = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(SCodeInfo.class));
  131 + Map<String, SCodeInfo> realMap = new HashMap<>();
  132 +
  133 + String kName;
  134 + SCodeInfo old;
  135 + for (SCodeInfo sci : realList) {
  136 + kName = sci.getLineCode() + "_" + sci.getUpDown() + "_" + sci.getStationName();
  137 +
  138 + if(realMap.containsKey(kName)){
  139 + //环线可能存在同名的站点
  140 + old = realMap.get(kName);
  141 + old.setRealStationCode(old.getRealStationCode() + "^" + sci.getRealStationCode() + "^");
  142 + continue;
  143 + }
  144 +
  145 + realMap.put(kName, sci);
  146 + realMap.put(sci.getLineCode() + "_" + sci.getUpDown() + "_" + sci.getRealStationCode(), sci);
  147 + }
  148 +
  149 + return realMap;
  150 + }
151 } 151 }
152 \ No newline at end of file 152 \ No newline at end of file
src/main/java/com/bsth/data/schedule/taopao/TaoPaoDataBuffer.java
1 -package com.bsth.data.schedule.taopao;  
2 -  
3 -import com.bsth.data.schedule.DayOfSchedule;  
4 -import com.bsth.data.schedule.taopao.entity.CLTaoPaoInfo;  
5 -import com.google.common.collect.ArrayListMultimap;  
6 -import org.springframework.beans.factory.annotation.Autowired;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -/**  
10 - * 实际班次套跑信息  
11 - */  
12 -@Component  
13 -public class TaoPaoDataBuffer {  
14 -  
15 - /**  
16 - * 线路编码 ——> 套跑信息  
17 - */  
18 - private static ArrayListMultimap<String, CLTaoPaoInfo> multimap;  
19 -  
20 - static {  
21 - multimap = ArrayListMultimap.create();  
22 - }  
23 -  
24 - @Autowired  
25 - DayOfSchedule dayOfSchedule;  
26 -} 1 +package com.bsth.data.schedule.taopao;
  2 +
  3 +import com.bsth.data.schedule.DayOfSchedule;
  4 +import com.bsth.data.schedule.taopao.entity.CLTaoPaoInfo;
  5 +import com.google.common.collect.ArrayListMultimap;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +/**
  10 + * 实际班次套跑信息
  11 + */
  12 +@Component
  13 +public class TaoPaoDataBuffer {
  14 +
  15 + /**
  16 + * 线路编码 ——> 套跑信息
  17 + */
  18 + private static ArrayListMultimap<String, CLTaoPaoInfo> multimap;
  19 +
  20 + static {
  21 + multimap = ArrayListMultimap.create();
  22 + }
  23 +
  24 + @Autowired
  25 + DayOfSchedule dayOfSchedule;
  26 +}
src/main/java/com/bsth/data/schedule/taopao/entity/CLTaoPaoInfo.java
1 -package com.bsth.data.schedule.taopao.entity;  
2 -  
3 -/**  
4 - * 车辆套跑 信息  
5 - */  
6 -public class CLTaoPaoInfo {  
7 -  
8 - private String lineCode;  
9 -  
10 - private String nbbm;  
11 -  
12 - /**  
13 - * 班次ID , 号分割多个  
14 - */  
15 - private String schIdx;  
16 -  
17 - public String getLineCode() {  
18 - return lineCode;  
19 - }  
20 -  
21 - public void setLineCode(String lineCode) {  
22 - this.lineCode = lineCode;  
23 - }  
24 -  
25 - public String getNbbm() {  
26 - return nbbm;  
27 - }  
28 -  
29 - public void setNbbm(String nbbm) {  
30 - this.nbbm = nbbm;  
31 - }  
32 -  
33 - public String getSchIdx() {  
34 - return schIdx;  
35 - }  
36 -  
37 - public void setSchIdx(String schIdx) {  
38 - this.schIdx = schIdx;  
39 - }  
40 -} 1 +package com.bsth.data.schedule.taopao.entity;
  2 +
  3 +/**
  4 + * 车辆套跑 信息
  5 + */
  6 +public class CLTaoPaoInfo {
  7 +
  8 + private String lineCode;
  9 +
  10 + private String nbbm;
  11 +
  12 + /**
  13 + * 班次ID , 号分割多个
  14 + */
  15 + private String schIdx;
  16 +
  17 + public String getLineCode() {
  18 + return lineCode;
  19 + }
  20 +
  21 + public void setLineCode(String lineCode) {
  22 + this.lineCode = lineCode;
  23 + }
  24 +
  25 + public String getNbbm() {
  26 + return nbbm;
  27 + }
  28 +
  29 + public void setNbbm(String nbbm) {
  30 + this.nbbm = nbbm;
  31 + }
  32 +
  33 + public String getSchIdx() {
  34 + return schIdx;
  35 + }
  36 +
  37 + public void setSchIdx(String schIdx) {
  38 + this.schIdx = schIdx;
  39 + }
  40 +}
src/main/java/com/bsth/data/schedule/taopao/entity/TPCutRealSchedule.java
1 -package com.bsth.data.schedule.taopao.entity;  
2 -  
3 -import javax.persistence.Transient;  
4 -  
5 -/**  
6 - * 精简的班次信息(展示套跑信息用)  
7 - */  
8 -public class TPCutRealSchedule {  
9 -  
10 - /** 主键Id */  
11 - private Long id;  
12 -  
13 - /** 排班日期字符串 YYYY-MM-DD */  
14 - private String scheduleDateStr;  
15 -  
16 - /** 路牌名称 */  
17 - private String lpName;  
18 -  
19 - /** 车辆自编号 */  
20 - private String clZbh;  
21 -  
22 - /** 驾驶员工号 */  
23 - private String jGh;  
24 - /** 驾驶员名字 */  
25 - private String jName;  
26 - /** 售票员工号 */  
27 - private String sGh;  
28 - /** 售票员名字 */  
29 - private String sName;  
30 -  
31 - /** 线路方向 */  
32 - private String xlDir;  
33 - /** 起点站名字 */  
34 - private String qdzName;  
35 -  
36 - /** 终点站名字 */  
37 - private String zdzName;  
38 -  
39 - /** 计划发车时间(格式 HH:mm) */  
40 - private String fcsj;  
41 - /** 计划发车时间戳*/  
42 - @Transient  
43 - private Long fcsjT;  
44 -  
45 - /** 计划终点时间(格式 HH:mm) */  
46 - private String zdsj;  
47 - /** 计划终点时间戳*/  
48 - @Transient  
49 - private Long zdsjT;  
50 -  
51 - /** 计划里程 */  
52 - private Double jhlc;  
53 -  
54 - /** 班次历时 */  
55 - private Integer bcsj;  
56 -  
57 - /**  
58 - * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶  
59 - */  
60 - private String bcType;  
61 -  
62 - //放站班次 站点名称  
63 - private String majorStationName;  
64 -  
65 - /** 实际发车时间*/  
66 - private String fcsjActual;  
67 - /**实际终点时间 */  
68 - private String zdsjActual;  
69 -  
70 - /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */  
71 - private int status;  
72 -  
73 - private String adjustExps;  
74 -  
75 - /** 是否是临加班次 */  
76 - private boolean sflj;  
77 -  
78 - /** 备注*/  
79 - private String remarks;  
80 -  
81 - /**待发时间(格式 HH:mm) */  
82 - private String dfsj;  
83 -  
84 - /**待发时间戳 */  
85 - @Transient  
86 - private Long dfsjT;  
87 -  
88 - /** 指令下发状态 60: 已发送, 100: 设备确认收到, 200:驾驶员确认 0:失败 */  
89 - private Integer directiveState = -1;  
90 -  
91 - /** 起点站计划到达时间 */  
92 - @Transient  
93 - private String qdzArrDatejh;  
94 -  
95 - /** 起点站实际到达时间 */  
96 - @Transient  
97 - private String qdzArrDatesj;  
98 -  
99 - public Long getId() {  
100 - return id;  
101 - }  
102 -  
103 - public void setId(Long id) {  
104 - this.id = id;  
105 - }  
106 -  
107 - public String getScheduleDateStr() {  
108 - return scheduleDateStr;  
109 - }  
110 -  
111 - public void setScheduleDateStr(String scheduleDateStr) {  
112 - this.scheduleDateStr = scheduleDateStr;  
113 - }  
114 -  
115 - public String getLpName() {  
116 - return lpName;  
117 - }  
118 -  
119 - public void setLpName(String lpName) {  
120 - this.lpName = lpName;  
121 - }  
122 -  
123 - public String getClZbh() {  
124 - return clZbh;  
125 - }  
126 -  
127 - public void setClZbh(String clZbh) {  
128 - this.clZbh = clZbh;  
129 - }  
130 -  
131 - public String getjGh() {  
132 - return jGh;  
133 - }  
134 -  
135 - public void setjGh(String jGh) {  
136 - this.jGh = jGh;  
137 - }  
138 -  
139 - public String getjName() {  
140 - return jName;  
141 - }  
142 -  
143 - public void setjName(String jName) {  
144 - this.jName = jName;  
145 - }  
146 -  
147 - public String getsGh() {  
148 - return sGh;  
149 - }  
150 -  
151 - public void setsGh(String sGh) {  
152 - this.sGh = sGh;  
153 - }  
154 -  
155 - public String getsName() {  
156 - return sName;  
157 - }  
158 -  
159 - public void setsName(String sName) {  
160 - this.sName = sName;  
161 - }  
162 -  
163 - public String getXlDir() {  
164 - return xlDir;  
165 - }  
166 -  
167 - public void setXlDir(String xlDir) {  
168 - this.xlDir = xlDir;  
169 - }  
170 -  
171 - public String getQdzName() {  
172 - return qdzName;  
173 - }  
174 -  
175 - public void setQdzName(String qdzName) {  
176 - this.qdzName = qdzName;  
177 - }  
178 -  
179 - public String getZdzName() {  
180 - return zdzName;  
181 - }  
182 -  
183 - public void setZdzName(String zdzName) {  
184 - this.zdzName = zdzName;  
185 - }  
186 -  
187 - public String getFcsj() {  
188 - return fcsj;  
189 - }  
190 -  
191 - public void setFcsj(String fcsj) {  
192 - this.fcsj = fcsj;  
193 - }  
194 -  
195 - public Long getFcsjT() {  
196 - return fcsjT;  
197 - }  
198 -  
199 - public void setFcsjT(Long fcsjT) {  
200 - this.fcsjT = fcsjT;  
201 - }  
202 -  
203 - public String getZdsj() {  
204 - return zdsj;  
205 - }  
206 -  
207 - public void setZdsj(String zdsj) {  
208 - this.zdsj = zdsj;  
209 - }  
210 -  
211 - public Long getZdsjT() {  
212 - return zdsjT;  
213 - }  
214 -  
215 - public void setZdsjT(Long zdsjT) {  
216 - this.zdsjT = zdsjT;  
217 - }  
218 -  
219 - public Double getJhlc() {  
220 - return jhlc;  
221 - }  
222 -  
223 - public void setJhlc(Double jhlc) {  
224 - this.jhlc = jhlc;  
225 - }  
226 -  
227 - public Integer getBcsj() {  
228 - return bcsj;  
229 - }  
230 -  
231 - public void setBcsj(Integer bcsj) {  
232 - this.bcsj = bcsj;  
233 - }  
234 -  
235 - public String getBcType() {  
236 - return bcType;  
237 - }  
238 -  
239 - public void setBcType(String bcType) {  
240 - this.bcType = bcType;  
241 - }  
242 -  
243 - public String getMajorStationName() {  
244 - return majorStationName;  
245 - }  
246 -  
247 - public void setMajorStationName(String majorStationName) {  
248 - this.majorStationName = majorStationName;  
249 - }  
250 -  
251 - public String getFcsjActual() {  
252 - return fcsjActual;  
253 - }  
254 -  
255 - public void setFcsjActual(String fcsjActual) {  
256 - this.fcsjActual = fcsjActual;  
257 - }  
258 -  
259 - public String getZdsjActual() {  
260 - return zdsjActual;  
261 - }  
262 -  
263 - public void setZdsjActual(String zdsjActual) {  
264 - this.zdsjActual = zdsjActual;  
265 - }  
266 -  
267 - public int getStatus() {  
268 - return status;  
269 - }  
270 -  
271 - public void setStatus(int status) {  
272 - this.status = status;  
273 - }  
274 -  
275 - public String getAdjustExps() {  
276 - return adjustExps;  
277 - }  
278 -  
279 - public void setAdjustExps(String adjustExps) {  
280 - this.adjustExps = adjustExps;  
281 - }  
282 -  
283 - public boolean isSflj() {  
284 - return sflj;  
285 - }  
286 -  
287 - public void setSflj(boolean sflj) {  
288 - this.sflj = sflj;  
289 - }  
290 -  
291 - public String getRemarks() {  
292 - return remarks;  
293 - }  
294 -  
295 - public void setRemarks(String remarks) {  
296 - this.remarks = remarks;  
297 - }  
298 -  
299 - public String getDfsj() {  
300 - return dfsj;  
301 - }  
302 -  
303 - public void setDfsj(String dfsj) {  
304 - this.dfsj = dfsj;  
305 - }  
306 -  
307 - public Long getDfsjT() {  
308 - return dfsjT;  
309 - }  
310 -  
311 - public void setDfsjT(Long dfsjT) {  
312 - this.dfsjT = dfsjT;  
313 - }  
314 -  
315 - public Integer getDirectiveState() {  
316 - return directiveState;  
317 - }  
318 -  
319 - public void setDirectiveState(Integer directiveState) {  
320 - this.directiveState = directiveState;  
321 - }  
322 -  
323 - public String getQdzArrDatejh() {  
324 - return qdzArrDatejh;  
325 - }  
326 -  
327 - public void setQdzArrDatejh(String qdzArrDatejh) {  
328 - this.qdzArrDatejh = qdzArrDatejh;  
329 - }  
330 -  
331 - public String getQdzArrDatesj() {  
332 - return qdzArrDatesj;  
333 - }  
334 -  
335 - public void setQdzArrDatesj(String qdzArrDatesj) {  
336 - this.qdzArrDatesj = qdzArrDatesj;  
337 - }  
338 -} 1 +package com.bsth.data.schedule.taopao.entity;
  2 +
  3 +import javax.persistence.Transient;
  4 +
  5 +/**
  6 + * 精简的班次信息(展示套跑信息用)
  7 + */
  8 +public class TPCutRealSchedule {
  9 +
  10 + /** 主键Id */
  11 + private Long id;
  12 +
  13 + /** 排班日期字符串 YYYY-MM-DD */
  14 + private String scheduleDateStr;
  15 +
  16 + /** 路牌名称 */
  17 + private String lpName;
  18 +
  19 + /** 车辆自编号 */
  20 + private String clZbh;
  21 +
  22 + /** 驾驶员工号 */
  23 + private String jGh;
  24 + /** 驾驶员名字 */
  25 + private String jName;
  26 + /** 售票员工号 */
  27 + private String sGh;
  28 + /** 售票员名字 */
  29 + private String sName;
  30 +
  31 + /** 线路方向 */
  32 + private String xlDir;
  33 + /** 起点站名字 */
  34 + private String qdzName;
  35 +
  36 + /** 终点站名字 */
  37 + private String zdzName;
  38 +
  39 + /** 计划发车时间(格式 HH:mm) */
  40 + private String fcsj;
  41 + /** 计划发车时间戳*/
  42 + @Transient
  43 + private Long fcsjT;
  44 +
  45 + /** 计划终点时间(格式 HH:mm) */
  46 + private String zdsj;
  47 + /** 计划终点时间戳*/
  48 + @Transient
  49 + private Long zdsjT;
  50 +
  51 + /** 计划里程 */
  52 + private Double jhlc;
  53 +
  54 + /** 班次历时 */
  55 + private Integer bcsj;
  56 +
  57 + /**
  58 + * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶
  59 + */
  60 + private String bcType;
  61 +
  62 + //放站班次 站点名称
  63 + private String majorStationName;
  64 +
  65 + /** 实际发车时间*/
  66 + private String fcsjActual;
  67 + /**实际终点时间 */
  68 + private String zdsjActual;
  69 +
  70 + /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */
  71 + private int status;
  72 +
  73 + private String adjustExps;
  74 +
  75 + /** 是否是临加班次 */
  76 + private boolean sflj;
  77 +
  78 + /** 备注*/
  79 + private String remarks;
  80 +
  81 + /**待发时间(格式 HH:mm) */
  82 + private String dfsj;
  83 +
  84 + /**待发时间戳 */
  85 + @Transient
  86 + private Long dfsjT;
  87 +
  88 + /** 指令下发状态 60: 已发送, 100: 设备确认收到, 200:驾驶员确认 0:失败 */
  89 + private Integer directiveState = -1;
  90 +
  91 + /** 起点站计划到达时间 */
  92 + @Transient
  93 + private String qdzArrDatejh;
  94 +
  95 + /** 起点站实际到达时间 */
  96 + @Transient
  97 + private String qdzArrDatesj;
  98 +
  99 + public Long getId() {
  100 + return id;
  101 + }
  102 +
  103 + public void setId(Long id) {
  104 + this.id = id;
  105 + }
  106 +
  107 + public String getScheduleDateStr() {
  108 + return scheduleDateStr;
  109 + }
  110 +
  111 + public void setScheduleDateStr(String scheduleDateStr) {
  112 + this.scheduleDateStr = scheduleDateStr;
  113 + }
  114 +
  115 + public String getLpName() {
  116 + return lpName;
  117 + }
  118 +
  119 + public void setLpName(String lpName) {
  120 + this.lpName = lpName;
  121 + }
  122 +
  123 + public String getClZbh() {
  124 + return clZbh;
  125 + }
  126 +
  127 + public void setClZbh(String clZbh) {
  128 + this.clZbh = clZbh;
  129 + }
  130 +
  131 + public String getjGh() {
  132 + return jGh;
  133 + }
  134 +
  135 + public void setjGh(String jGh) {
  136 + this.jGh = jGh;
  137 + }
  138 +
  139 + public String getjName() {
  140 + return jName;
  141 + }
  142 +
  143 + public void setjName(String jName) {
  144 + this.jName = jName;
  145 + }
  146 +
  147 + public String getsGh() {
  148 + return sGh;
  149 + }
  150 +
  151 + public void setsGh(String sGh) {
  152 + this.sGh = sGh;
  153 + }
  154 +
  155 + public String getsName() {
  156 + return sName;
  157 + }
  158 +
  159 + public void setsName(String sName) {
  160 + this.sName = sName;
  161 + }
  162 +
  163 + public String getXlDir() {
  164 + return xlDir;
  165 + }
  166 +
  167 + public void setXlDir(String xlDir) {
  168 + this.xlDir = xlDir;
  169 + }
  170 +
  171 + public String getQdzName() {
  172 + return qdzName;
  173 + }
  174 +
  175 + public void setQdzName(String qdzName) {
  176 + this.qdzName = qdzName;
  177 + }
  178 +
  179 + public String getZdzName() {
  180 + return zdzName;
  181 + }
  182 +
  183 + public void setZdzName(String zdzName) {
  184 + this.zdzName = zdzName;
  185 + }
  186 +
  187 + public String getFcsj() {
  188 + return fcsj;
  189 + }
  190 +
  191 + public void setFcsj(String fcsj) {
  192 + this.fcsj = fcsj;
  193 + }
  194 +
  195 + public Long getFcsjT() {
  196 + return fcsjT;
  197 + }
  198 +
  199 + public void setFcsjT(Long fcsjT) {
  200 + this.fcsjT = fcsjT;
  201 + }
  202 +
  203 + public String getZdsj() {
  204 + return zdsj;
  205 + }
  206 +
  207 + public void setZdsj(String zdsj) {
  208 + this.zdsj = zdsj;
  209 + }
  210 +
  211 + public Long getZdsjT() {
  212 + return zdsjT;
  213 + }
  214 +
  215 + public void setZdsjT(Long zdsjT) {
  216 + this.zdsjT = zdsjT;
  217 + }
  218 +
  219 + public Double getJhlc() {
  220 + return jhlc;
  221 + }
  222 +
  223 + public void setJhlc(Double jhlc) {
  224 + this.jhlc = jhlc;
  225 + }
  226 +
  227 + public Integer getBcsj() {
  228 + return bcsj;
  229 + }
  230 +
  231 + public void setBcsj(Integer bcsj) {
  232 + this.bcsj = bcsj;
  233 + }
  234 +
  235 + public String getBcType() {
  236 + return bcType;
  237 + }
  238 +
  239 + public void setBcType(String bcType) {
  240 + this.bcType = bcType;
  241 + }
  242 +
  243 + public String getMajorStationName() {
  244 + return majorStationName;
  245 + }
  246 +
  247 + public void setMajorStationName(String majorStationName) {
  248 + this.majorStationName = majorStationName;
  249 + }
  250 +
  251 + public String getFcsjActual() {
  252 + return fcsjActual;
  253 + }
  254 +
  255 + public void setFcsjActual(String fcsjActual) {
  256 + this.fcsjActual = fcsjActual;
  257 + }
  258 +
  259 + public String getZdsjActual() {
  260 + return zdsjActual;
  261 + }
  262 +
  263 + public void setZdsjActual(String zdsjActual) {
  264 + this.zdsjActual = zdsjActual;
  265 + }
  266 +
  267 + public int getStatus() {
  268 + return status;
  269 + }
  270 +
  271 + public void setStatus(int status) {
  272 + this.status = status;
  273 + }
  274 +
  275 + public String getAdjustExps() {
  276 + return adjustExps;
  277 + }
  278 +
  279 + public void setAdjustExps(String adjustExps) {
  280 + this.adjustExps = adjustExps;
  281 + }
  282 +
  283 + public boolean isSflj() {
  284 + return sflj;
  285 + }
  286 +
  287 + public void setSflj(boolean sflj) {
  288 + this.sflj = sflj;
  289 + }
  290 +
  291 + public String getRemarks() {
  292 + return remarks;
  293 + }
  294 +
  295 + public void setRemarks(String remarks) {
  296 + this.remarks = remarks;
  297 + }
  298 +
  299 + public String getDfsj() {
  300 + return dfsj;
  301 + }
  302 +
  303 + public void setDfsj(String dfsj) {
  304 + this.dfsj = dfsj;
  305 + }
  306 +
  307 + public Long getDfsjT() {
  308 + return dfsjT;
  309 + }
  310 +
  311 + public void setDfsjT(Long dfsjT) {
  312 + this.dfsjT = dfsjT;
  313 + }
  314 +
  315 + public Integer getDirectiveState() {
  316 + return directiveState;
  317 + }
  318 +
  319 + public void setDirectiveState(Integer directiveState) {
  320 + this.directiveState = directiveState;
  321 + }
  322 +
  323 + public String getQdzArrDatejh() {
  324 + return qdzArrDatejh;
  325 + }
  326 +
  327 + public void setQdzArrDatejh(String qdzArrDatejh) {
  328 + this.qdzArrDatejh = qdzArrDatejh;
  329 + }
  330 +
  331 + public String getQdzArrDatesj() {
  332 + return qdzArrDatesj;
  333 + }
  334 +
  335 + public void setQdzArrDatesj(String qdzArrDatesj) {
  336 + this.qdzArrDatesj = qdzArrDatesj;
  337 + }
  338 +}
src/main/java/com/bsth/entity/Line.java
@@ -98,6 +98,9 @@ public class Line implements Serializable { @@ -98,6 +98,9 @@ public class Line implements Serializable {
98 /** 是否营运 <1:是;0:否> bit length(50)*/ 98 /** 是否营运 <1:是;0:否> bit length(50)*/
99 private Integer sfyy; 99 private Integer sfyy;
100 100
  101 + /** 线路区域 <0:区内,1:区外> bit length(1)*/
  102 + private Integer region;
  103 +
101 /** 起始调度电话 varchar length(50) */ 104 /** 起始调度电话 varchar length(50) */
102 private String startPhone; 105 private String startPhone;
103 106
@@ -498,6 +501,13 @@ public class Line implements Serializable { @@ -498,6 +501,13 @@ public class Line implements Serializable {
498 this.sfyy = sfyy; 501 this.sfyy = sfyy;
499 } 502 }
500 503
  504 + public Integer getRegion() {
  505 + return region;
  506 + }
  507 +
  508 + public void setRegion(Integer region) {
  509 + this.region = region;
  510 + }
501 511
502 public Integer getRemove() { 512 public Integer getRemove() {
503 return remove; 513 return remove;
src/main/java/com/bsth/entity/oil/Lsylb.java 0 → 100644
  1 +package com.bsth.entity.oil;
  2 +
  3 +import java.text.DecimalFormat;
  4 +import java.util.Date;
  5 +
  6 +import javax.persistence.Entity;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.Id;
  9 +import javax.persistence.Table;
  10 +import javax.persistence.Transient;
  11 +
  12 +import org.springframework.format.annotation.DateTimeFormat;
  13 +
  14 +import com.bsth.data.BasicData;
  15 +
  16 +@Entity
  17 +@Table(name = "bsth_ls_ylb")
  18 +public class Lsylb {
  19 + @Id
  20 + @GeneratedValue
  21 + private Integer id;
  22 + @DateTimeFormat(pattern="yyyy-MM-dd")
  23 + private Date rq;
  24 + private String xlbm;
  25 + private String ssgsdm;
  26 + private String fgsdm;
  27 + private String nbbm;
  28 + private String jsy;
  29 + private Double czlc=0.0;
  30 + private Double jzlc=0.0;
  31 + private Double czyl=0.0;
  32 + private Double jzyl=0.0;
  33 + private Double jzl=0.0;
  34 + private int sfkt;
  35 + private String jhsj;
  36 + private Double yh=0.0;
  37 + private Double sh=0.0;
  38 + private String shyy;
  39 + private Double zlc=0.0;
  40 + private int yhlx;
  41 + private String rylx="0";
  42 + private Double ns=0.0;
  43 + private Double fyylc=0.0;
  44 + private Double jhzlc=0.0;
  45 + private Double jhfyylc=0.0;
  46 + private int jhzbc;
  47 + private int jhbc;
  48 + private int sjzbc;
  49 + private int sjbc;
  50 + private String edituser;
  51 + private Date edittime;
  52 + private Date createtime;
  53 +
  54 + private int nylx;
  55 +
  56 + @Transient
  57 + private String bglyh;
  58 +
  59 + @Transient
  60 + private String xlname;
  61 +
  62 + @Transient
  63 + private String gsname;
  64 +
  65 + @Transient
  66 + private String fgsname;
  67 +
  68 + @Transient
  69 + private String name;
  70 +
  71 + public Integer getId() {
  72 + return id;
  73 + }
  74 +
  75 + public void setId(Integer id) {
  76 + this.id = id;
  77 + }
  78 + public Date getRq() {
  79 + return rq;
  80 + }
  81 +
  82 + public void setRq(Date rq) {
  83 + this.rq = rq;
  84 + }
  85 +
  86 + public String getXlbm() {
  87 + return xlbm;
  88 + }
  89 +
  90 + public void setXlbm(String xlbm) {
  91 + this.xlbm = xlbm;
  92 + }
  93 + public String getSsgsdm() {
  94 + return ssgsdm;
  95 + }
  96 + public void setSsgsdm(String ssgsdm) {
  97 + this.ssgsdm = ssgsdm;
  98 + }
  99 + public String getFgsdm() {
  100 + return fgsdm;
  101 + }
  102 + public void setFgsdm(String fgsdm) {
  103 + this.fgsdm = fgsdm;
  104 + }
  105 + public String getNbbm() {
  106 + return nbbm;
  107 + }
  108 + public void setNbbm(String nbbm) {
  109 + this.nbbm = nbbm;
  110 + }
  111 + public String getJsy() {
  112 + return jsy;
  113 + }
  114 + public void setJsy(String jsy) {
  115 + this.jsy = jsy;
  116 + }
  117 + public Double getCzlc() {
  118 + return czlc;
  119 + }
  120 + public void setCzlc(Double czlc) {
  121 + this.czlc = czlc;
  122 + }
  123 + public Double getJzlc() {
  124 + return jzlc;
  125 + }
  126 + public void setJzlc(Double jzlc) {
  127 + this.jzlc = jzlc;
  128 + }
  129 + public Double getCzyl() {
  130 + return czyl;
  131 + }
  132 + public void setCzyl(Double czyl) {
  133 + this.czyl = czyl;
  134 + }
  135 + public Double getJzyl() {
  136 + return jzyl;
  137 + }
  138 + public void setJzyl(Double jzyl) {
  139 + this.jzyl = jzyl;
  140 + }
  141 + public Double getJzl() {
  142 + return jzl;
  143 + }
  144 + public void setJzl(Double jzl) {
  145 + this.jzl = jzl;
  146 + }
  147 + public int getSfkt() {
  148 + return sfkt;
  149 + }
  150 + public void setSfkt(int sfkt) {
  151 + this.sfkt = sfkt;
  152 + }
  153 + public String getJhsj() {
  154 + return jhsj;
  155 + }
  156 + public void setJhsj(String jhsj) {
  157 + this.jhsj = jhsj;
  158 + }
  159 + public Double getYh() {
  160 + return yh;
  161 + }
  162 + public void setYh(Double yh) {
  163 + this.yh = yh;
  164 + }
  165 + public Double getSh() {
  166 + return sh;
  167 + }
  168 + public void setSh(Double sh) {
  169 + this.sh = sh;
  170 + }
  171 + public String getShyy() {
  172 + return shyy;
  173 + }
  174 + public void setShyy(String shyy) {
  175 + this.shyy = shyy;
  176 + }
  177 + public Double getZlc() {
  178 + return zlc;
  179 + }
  180 + public void setZlc(Double zlc) {
  181 + this.zlc = zlc;
  182 + }
  183 + public int getYhlx() {
  184 + return yhlx;
  185 + }
  186 + public void setYhlx(int yhlx) {
  187 + this.yhlx = yhlx;
  188 + }
  189 + public String getRylx() {
  190 + return rylx;
  191 + }
  192 + public void setRylx(String rylx) {
  193 + this.rylx = rylx;
  194 + }
  195 + public Double getNs() {
  196 + return ns;
  197 + }
  198 + public void setNs(Double ns) {
  199 + this.ns = ns;
  200 + }
  201 + public Double getFyylc() {
  202 + return fyylc;
  203 + }
  204 + public void setFyylc(Double fyylc) {
  205 + this.fyylc = fyylc;
  206 + }
  207 + public Double getJhzlc() {
  208 + return jhzlc;
  209 + }
  210 + public void setJhzlc(Double jhzlc) {
  211 + this.jhzlc = jhzlc;
  212 + }
  213 + public Double getJhfyylc() {
  214 + return jhfyylc;
  215 + }
  216 + public void setJhfyylc(Double jhfyylc) {
  217 + this.jhfyylc = jhfyylc;
  218 + }
  219 + public int getJhzbc() {
  220 + return jhzbc;
  221 + }
  222 + public void setJhzbc(int jhzbc) {
  223 + this.jhzbc = jhzbc;
  224 + }
  225 + public int getJhbc() {
  226 + return jhbc;
  227 + }
  228 + public void setJhbc(int jhbc) {
  229 + this.jhbc = jhbc;
  230 + }
  231 + public int getSjzbc() {
  232 + return sjzbc;
  233 + }
  234 + public void setSjzbc(int sjzbc) {
  235 + this.sjzbc = sjzbc;
  236 + }
  237 + public int getSjbc() {
  238 + return sjbc;
  239 + }
  240 + public void setSjbc(int sjbc) {
  241 + this.sjbc = sjbc;
  242 + }
  243 + public String getEdituser() {
  244 + return edituser;
  245 + }
  246 + public void setEdituser(String edituser) {
  247 + this.edituser = edituser;
  248 + }
  249 + public Date getEdittime() {
  250 + return edittime;
  251 + }
  252 + public void setEdittime(Date edittime) {
  253 + this.edittime = edittime;
  254 + }
  255 + public Date getCreatetime() {
  256 + return createtime;
  257 + }
  258 + public void setCreatetime(Date createtime) {
  259 + this.createtime = createtime;
  260 + }
  261 + public int getNylx() {
  262 + return nylx;
  263 + }
  264 + public void setNylx(int nylx) {
  265 + this.nylx = nylx;
  266 + }
  267 +
  268 + public String getBglyh() {
  269 + if(this.getZlc()==0){
  270 + return "0";
  271 + }else{
  272 + DecimalFormat df = new DecimalFormat("0.00");
  273 + return df.format(this.getYh()/this.getZlc()*100);
  274 + }
  275 + }
  276 +
  277 + public void setBglyh(String bglyh) {
  278 + this.bglyh = bglyh;
  279 + }
  280 +
  281 + public String getXlname() {
  282 + return BasicData.lineCode2NameMap.get(this.xlbm);
  283 + }
  284 +
  285 + public void setXlname(String xlname) {
  286 + this.xlname = xlname;
  287 + }
  288 +
  289 + public String getGsname() {
  290 + return BasicData.businessCodeNameMap.get(this.ssgsdm);
  291 + }
  292 +
  293 + public void setGsname(String gsname) {
  294 + this.gsname = gsname;
  295 + }
  296 +
  297 +
  298 + public String getFgsname() {
  299 + return BasicData.businessFgsCodeNameMap.get(this.fgsdm+"_"+this.ssgsdm);
  300 + }
  301 +
  302 + public void setFgsname(String fgsname) {
  303 + this.fgsname = fgsname;
  304 + }
  305 +
  306 + public String getName() {
  307 + return BasicData.allPerson.get(this.ssgsdm+"-"+this.jsy);
  308 + }
  309 +
  310 + public void setName(String name) {
  311 + this.name = name;
  312 + }
  313 +
  314 +
  315 +}
src/main/java/com/bsth/repository/LineRepository.java
@@ -58,12 +58,12 @@ public interface LineRepository extends BaseRepository&lt;Line, Integer&gt; { @@ -58,12 +58,12 @@ public interface LineRepository extends BaseRepository&lt;Line, Integer&gt; {
58 + "l.startStationEndTime=?9, l.endStationFirstTime=?10, l.endStationEndTime=?11, l.linePlayType=?12, " 58 + "l.startStationEndTime=?9, l.endStationFirstTime=?10, l.endStationEndTime=?11, l.linePlayType=?12, "
59 + "l.openDate=?13, l.es=?14, l.shortName=?15, l.shanghaiLinecode=?16, l.eqLinecode=?17, l.startPhone=?18, " 59 + "l.openDate=?13, l.es=?14, l.shortName=?15, l.shanghaiLinecode=?16, l.eqLinecode=?17, l.startPhone=?18, "
60 + "l.endPhone=?19, l.carSumNumber=?20, l.hvacCarNumber=?21, l.ordCarNumber=?22, l.history=?23, " 60 + "l.endPhone=?19, l.carSumNumber=?20, l.hvacCarNumber=?21, l.ordCarNumber=?22, l.history=?23, "
61 - + "l.descriptions=?24, l.destroy=?25, l.supperLine=?26, l.spacGrade=?27, l.warrantCar=?28 where "  
62 - + "l.lineCode=?29 ") 61 + + "l.descriptions=?24, l.destroy=?25, l.supperLine=?26, l.spacGrade=?27, l.warrantCar=?28, l.region=?30 where "
  62 + + "l.lineCode=?29")
63 public int update(String name, String company, String brancheCompany, String level, String nature, 63 public int update(String name, String company, String brancheCompany, String level, String nature,
64 String startStationName, String endStationName, String startStationFirstTime, String startStationEndTime, 64 String startStationName, String endStationName, String startStationFirstTime, String startStationEndTime,
65 String endStationFirstTime, String endStationEndTime, Integer linePlayType, Date openDate, String es, 65 String endStationFirstTime, String endStationEndTime, Integer linePlayType, Date openDate, String es,
66 String shortName, String shanghaiLinecode, String eqLinecode, String startPhone, String endPhone, 66 String shortName, String shanghaiLinecode, String eqLinecode, String startPhone, String endPhone,
67 Integer carSumNumber, Integer hvacCarNumber, Integer ordCarNumber, String history, String descriptions, 67 Integer carSumNumber, Integer hvacCarNumber, Integer ordCarNumber, String history, String descriptions,
68 - Integer destroy, Integer supperLine, Integer spacGrade, Integer warrantCar, String lineCode); 68 + Integer destroy, Integer supperLine, Integer spacGrade, Integer warrantCar, String lineCode, Integer region);
69 } 69 }
src/main/java/com/bsth/repository/oil/LsylbRepository.java 0 → 100644
  1 +package com.bsth.repository.oil;
  2 +
  3 +import java.util.Date;
  4 +import java.util.List;
  5 +import java.util.Map;
  6 +
  7 +import org.springframework.data.jpa.repository.Modifying;
  8 +import org.springframework.data.jpa.repository.Query;
  9 +import org.springframework.stereotype.Repository;
  10 +import org.springframework.transaction.annotation.Transactional;
  11 +
  12 +import com.bsth.entity.oil.Lsylb;
  13 +import com.bsth.entity.oil.Ylb;
  14 +import com.bsth.repository.BaseRepository;
  15 +
  16 +@Repository
  17 +public interface LsylbRepository extends BaseRepository<Lsylb, Integer>{
  18 + /**
  19 + *
  20 + * @param nbbm
  21 + * @param rq
  22 + * @param xlbm
  23 + * @return
  24 + */
  25 + @Query(value="select nbbm,count(nbbm) from bsth_ls_ylb where to_days(?1)=to_days(rq) and "
  26 + + " ssgsdm like %?2% "
  27 + + " and fgsdm like %?3%"
  28 + + " and xlbm like %?4% and nbbm like %?5% and nylx= ?6 "
  29 + + " group by nbbm,rq,ssgsdm,fgsdm",nativeQuery=true)
  30 + List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int nylx);
  31 +
  32 + @Query(value="select s from Lsylb s "
  33 + + " where to_days(?1)=to_days(s.rq) "
  34 + + " and s.ssgsdm =?2 "
  35 + + " and s.fgsdm =?3 "
  36 + + " and s.xlbm like %?4% "
  37 + + " and s.nylx =?5 "
  38 + + " and s.nbbm in ?6 order by nbbm,jhsj")
  39 + List<Lsylb> listYlb(String rq, String gsbm,String fgsbm,String xlbm,int nylx,List<String> listNbbm);
  40 +
  41 + @Query(value="select nbbm,sum(jzl*100) as jzl ,sum(zlc*100) as zlc from bsth_ls_ylb where to_days(?1)=to_days(rq) and "
  42 + + " ssgsdm like %?2% "
  43 + + " and fgsdm like %?3%"
  44 + + " and xlbm like %?4% and nbbm like %?5% and nylx =?6 "
  45 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  46 + List<Object[]> checkNbmmYl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int nylx);
  47 +
  48 +
  49 + @Query(value="select ifnull(jzl,0),ifnull(yh,0),ifnull(sh,0) from bsth_ls_ylb "
  50 + + " where to_days(?1)=to_days(rq) "
  51 + + " and ssgsdm like %?2% "
  52 + + " and fgsdm like %?3%"
  53 + + " and xlbm like %?4% "
  54 + + " and nbbm like %?5% "
  55 + + " and nylx =?6",nativeQuery=true)
  56 + List<Object[]> sumYlb2(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int nylx);
  57 +
  58 +
  59 + @Query(value="select jzl,yh,sh from Lsylb s "
  60 + + " where to_days(?1)=to_days(s.rq) "
  61 + + " and s.ssgsdm like %?2% "
  62 + + " and s.fgsdm like %?3%"
  63 + + " and s.xlbm like %?4% "
  64 + + " and s.nbbm in ?5 and s.nylx=?6")
  65 + List<Object[]> sumYlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm,int nylx);
  66 +
  67 +}
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
@@ -14,6 +14,7 @@ import java.util.HashSet; @@ -14,6 +14,7 @@ import java.util.HashSet;
14 import java.util.Iterator; 14 import java.util.Iterator;
15 import java.util.List; 15 import java.util.List;
16 import java.util.Map; 16 import java.util.Map;
  17 +import java.util.Map.Entry;
17 import java.util.Set; 18 import java.util.Set;
18 19
19 import javax.transaction.Transactional; 20 import javax.transaction.Transactional;
@@ -945,6 +946,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -945,6 +946,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
945 } 946 }
946 resList.add(temp); 947 resList.add(temp);
947 } 948 }
  949 + //统计数据
948 List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); 950 List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
949 for(CalcStatistics c : resList){ 951 for(CalcStatistics c : resList){
950 Map<String, Object> m = new HashMap<String, Object>(); 952 Map<String, Object> m = new HashMap<String, Object>();
@@ -998,188 +1000,103 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -998,188 +1000,103 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
998 mapList.add(m); 1000 mapList.add(m);
999 } 1001 }
1000 1002
  1003 + //实时数据
1001 List<Map<String, Object>> tjlist=new ArrayList<Map<String, Object>>(); 1004 List<Map<String, Object>> tjlist=new ArrayList<Map<String, Object>>();
1002 if(!d4.equals("")){ 1005 if(!d4.equals("")){
1003 tjlist= scheduleRealInfoService.statisticsDailyTjHb(gsdm, fgsdm, line, d3, d4, xlName, type); 1006 tjlist= scheduleRealInfoService.statisticsDailyTjHb(gsdm, fgsdm, line, d3, d4, xlName, type);
1004 } 1007 }
1005 List<Map<String, Object>> mapListHj = new ArrayList<Map<String, Object>>(); 1008 List<Map<String, Object>> mapListHj = new ArrayList<Map<String, Object>>();
  1009 +// List<String> lineList=new ArrayList<String>();
  1010 + Map<String, Object> kMap=new HashMap<String,Object>();
  1011 + mapList.addAll(tjlist);
  1012 + for (int i = 0; i < mapList.size(); i++) {
  1013 + Map<String, Object> m =mapList.get(i);
  1014 + if(kMap.get(m.get("xlBm").toString())==null){
  1015 + kMap.put(m.get("xlBm").toString(), m.get("xlBm").toString());
  1016 + }
  1017 + }
  1018 + for (Object xlbm : kMap.keySet()) {
  1019 + Map<String, Object> hjMap = new HashMap<String, Object>();
  1020 + for (int i = 0; i < mapList.size(); i++) {
  1021 + Map<String, Object> lsMap=mapList.get(i);
  1022 + if (lsMap.get("xlBm").toString().equals(xlbm)) {
  1023 + if(hjMap.get("xlBm")==null){
  1024 + hjMap.put("xlBm", lsMap.get("xlBm"));
  1025 + hjMap.put("xlName", lsMap.get("xlName"));
  1026 + try {
  1027 + if(lsMap.get("xlBm").toString().equals("hj")){
  1028 + hjMap.put("xlNamePy", "zzzzz");
1006 1029
1007 - if(mapList.size()>0){  
1008 - if(tjlist.size()>0){  
1009 - for ( int i=0;i<tjlist.size();i++) {  
1010 - Map<String, Object> tjMap =tjlist.get(i);  
1011 - boolean fage=true;  
1012 - for(int j=0;j<mapList.size();j++){  
1013 - Map<String, Object> lsMap=mapList.get(j);  
1014 - if(lsMap.get("xlBm").toString().equals(tjMap.get("xlBm").toString())){  
1015 - Map<String, Object> hjMap=new HashMap<String,Object>();  
1016 - hjMap.put("xlBm", tjMap.get("xlBm"));  
1017 - hjMap.put("xlName", tjMap.get("xlName"));  
1018 - hjMap.put("jhzlc", Arith.add(lsMap.get("jhzlc"), tjMap.get("jhzlc")));  
1019 - hjMap.put("jhlc", Arith.add(lsMap.get("jhlc"), tjMap.get("jhlc")));  
1020 - hjMap.put("jcclc",Arith.add(lsMap.get("jcclc"), tjMap.get("jcclc")));  
1021 - hjMap.put("sjzgl",Arith.add(lsMap.get("sjzgl"), tjMap.get("sjzgl")));  
1022 - hjMap.put("sjgl", Arith.add(lsMap.get("sjgl"), tjMap.get("sjgl")));  
1023 - hjMap.put("sjksgl", Arith.add(lsMap.get("sjksgl"), tjMap.get("sjksgl")));  
1024 - hjMap.put("ssgl", Arith.add(lsMap.get("ssgl"), tjMap.get("ssgl")));  
1025 - hjMap.put("ssbc", Integer.parseInt(lsMap.get("ssbc").toString())+Integer.parseInt(tjMap.get("ssbc").toString()));  
1026 - hjMap.put("ssgl_lz", Arith.add(lsMap.get("ssgl_lz"), tjMap.get("ssgl_lz")));  
1027 - hjMap.put("ssgl_dm", Arith.add(lsMap.get("ssgl_dm"), tjMap.get("ssgl_dm")));  
1028 - hjMap.put("ssgl_gz", Arith.add(lsMap.get("ssgl_gz"), tjMap.get("ssgl_gz")));  
1029 - hjMap.put("ssgl_jf", Arith.add(lsMap.get("ssgl_jf"), tjMap.get("ssgl_jf")));  
1030 - hjMap.put("ssgl_zs", Arith.add(lsMap.get("ssgl_zs"), tjMap.get("ssgl_zs")));  
1031 - hjMap.put("ssgl_qr", Arith.add(lsMap.get("ssgl_qr"), tjMap.get("ssgl_qr")));  
1032 - hjMap.put("ssgl_qc", Arith.add(lsMap.get("ssgl_qc"), tjMap.get("ssgl_qc")));  
1033 - hjMap.put("ssgl_kx", Arith.add(lsMap.get("ssgl_kx"), tjMap.get("ssgl_kx")));  
1034 - hjMap.put("ssgl_qh", Arith.add(lsMap.get("ssgl_qh"), tjMap.get("ssgl_qh")));  
1035 - hjMap.put("ssgl_yw", Arith.add(lsMap.get("ssgl_yw"), tjMap.get("ssgl_yw")));  
1036 - hjMap.put("ssgl_other", Arith.add(lsMap.get("ssgl_other"), tjMap.get("ssgl_other")));  
1037 - hjMap.put("ljgl", Arith.add(lsMap.get("ljgl"), tjMap.get("ljgl")));  
1038 - hjMap.put("jhbc", Integer.parseInt(lsMap.get("jhbc").toString())+ Integer.parseInt(tjMap.get("jhbc").toString()));  
1039 - hjMap.put("jhbc_m", Integer.parseInt(lsMap.get("jhbc_m").toString())+Integer.parseInt(tjMap.get("jhbc_m").toString()));  
1040 - hjMap.put("jhbc_a", Integer.parseInt(lsMap.get("jhbc_a").toString())+ Integer.parseInt(tjMap.get("jhbc_a").toString()));  
1041 - hjMap.put("sjbc", Integer.parseInt(lsMap.get("sjbc").toString())+ Integer.parseInt(tjMap.get("sjbc").toString()));  
1042 - hjMap.put("sjbc_m",Integer.parseInt(lsMap.get("sjbc_m").toString())+ Integer.parseInt(tjMap.get("sjbc_m").toString()));  
1043 - hjMap.put("sjbc_a", Integer.parseInt(lsMap.get("sjbc_a").toString())+ Integer.parseInt(tjMap.get("sjbc_a").toString()));  
1044 - hjMap.put("ljbc", Integer.parseInt(lsMap.get("ljbc").toString())+ Integer.parseInt(tjMap.get("ljbc").toString()));  
1045 - hjMap.put("ljbc_m", Integer.parseInt(lsMap.get("ljbc_m").toString())+ Integer.parseInt(tjMap.get("ljbc_m").toString()));  
1046 - hjMap.put("ljbc_a", Integer.parseInt(lsMap.get("ljbc_a").toString())+Integer.parseInt( tjMap.get("ljbc_a").toString()));  
1047 - hjMap.put("fzbc", Integer.parseInt(lsMap.get("fzbc").toString())+ Integer.parseInt(tjMap.get("fzbc").toString()));  
1048 - hjMap.put("fzbc_m",Integer.parseInt(lsMap.get("fzbc_m").toString())+ Integer.parseInt(tjMap.get("fzbc_m").toString()));  
1049 - hjMap.put("fzbc_a",Integer.parseInt(lsMap.get("fzbc_a").toString())+ Integer.parseInt(tjMap.get("fzbc_a").toString()));  
1050 - hjMap.put("dtbc", Integer.parseInt(lsMap.get("dtbc").toString())+ Integer.parseInt(tjMap.get("dtbc").toString()));  
1051 - hjMap.put("dtbc_m", Integer.parseInt(lsMap.get("dtbc_m").toString())+ Integer.parseInt(tjMap.get("dtbc_m").toString()));  
1052 - hjMap.put("dtbc_a", Integer.parseInt(lsMap.get("dtbc_a").toString())+ Integer.parseInt(tjMap.get("dtbc_a").toString()));  
1053 - hjMap.put("djg", Integer.parseInt(lsMap.get("djg").toString())+ Integer.parseInt(tjMap.get("djg").toString()));  
1054 - hjMap.put("djg_m", Integer.parseInt(lsMap.get("djg_m").toString())+ Integer.parseInt(tjMap.get("djg_m").toString()));  
1055 - hjMap.put("djg_a", Integer.parseInt(lsMap.get("djg_a").toString())+ Integer.parseInt(tjMap.get("djg_a").toString()));  
1056 - if(Arith.add(lsMap.get("djg_time"),0)>Arith.add(tjMap.get("djg_time"), 0)){ 1030 + }else{
  1031 + hjMap.put("xlNamePy", PinyinHelper.convertToPinyinString(lsMap.get("xlName").toString(), "", PinyinFormat.WITHOUT_TONE));
  1032 + }
  1033 + } catch (PinyinException e) {
  1034 + // TODO Auto-generated catch block
  1035 + e.printStackTrace();
  1036 + }
  1037 + }
  1038 + hjMap.put("jhzlc", Arith.add(lsMap.get("jhzlc"), hjMap.get("jhzlc")==null?"0":hjMap.get("jhzlc")));
  1039 + hjMap.put("jhlc", Arith.add(lsMap.get("jhlc"), hjMap.get("jhlc")==null?"0":hjMap.get("jhlc")));
  1040 + hjMap.put("jcclc",Arith.add(lsMap.get("jcclc"), hjMap.get("jcclc")==null?"0":hjMap.get("jcclc")));
  1041 + hjMap.put("sjzgl",Arith.add(lsMap.get("sjzgl"), hjMap.get("sjzgl")==null?"0": hjMap.get("sjzgl")));
  1042 + hjMap.put("sjgl", Arith.add(lsMap.get("sjgl"), hjMap.get("sjgl")==null?"0":hjMap.get("sjgl")));
  1043 + hjMap.put("sjksgl", Arith.add(lsMap.get("sjksgl"), hjMap.get("sjksgl")==null?"0":hjMap.get("sjksgl")));
  1044 + hjMap.put("ssgl", Arith.add(lsMap.get("ssgl"), hjMap.get("ssgl")==null?"0":hjMap.get("ssgl")));
  1045 + hjMap.put("ssbc", Integer.parseInt(lsMap.get("ssbc").toString())+Integer.parseInt(hjMap.get("ssbc")==null?"0":hjMap.get("ssbc").toString()));
  1046 + hjMap.put("ssgl_lz", Arith.add(lsMap.get("ssgl_lz"), hjMap.get("ssgl_lz")==null?"0":hjMap.get("ssgl_lz")));
  1047 + hjMap.put("ssgl_dm", Arith.add(lsMap.get("ssgl_dm"), hjMap.get("ssgl_dm")==null?"0":hjMap.get("ssgl_dm")));
  1048 + hjMap.put("ssgl_gz", Arith.add(lsMap.get("ssgl_gz"), hjMap.get("ssgl_gz")==null?"0":hjMap.get("ssgl_gz")));
  1049 + hjMap.put("ssgl_jf", Arith.add(lsMap.get("ssgl_jf"), hjMap.get("ssgl_jf")==null?"0":hjMap.get("ssgl_jf")));
  1050 + hjMap.put("ssgl_zs", Arith.add(lsMap.get("ssgl_zs"), hjMap.get("ssgl_zs")==null?"0":hjMap.get("ssgl_zs")));
  1051 + hjMap.put("ssgl_qr", Arith.add(lsMap.get("ssgl_qr"), hjMap.get("ssgl_qr")==null?"0":hjMap.get("ssgl_qr")));
  1052 + hjMap.put("ssgl_qc", Arith.add(lsMap.get("ssgl_qc"), hjMap.get("ssgl_qc")==null?"0":hjMap.get("ssgl_qc")));
  1053 + hjMap.put("ssgl_kx", Arith.add(lsMap.get("ssgl_kx"), hjMap.get("ssgl_kx")==null?"0":hjMap.get("ssgl_kx")));
  1054 + hjMap.put("ssgl_qh", Arith.add(lsMap.get("ssgl_qh"), hjMap.get("ssgl_qh")==null?"0":hjMap.get("ssgl_qh")));
  1055 + hjMap.put("ssgl_yw", Arith.add(lsMap.get("ssgl_yw"), hjMap.get("ssgl_yw")==null?"0":hjMap.get("ssgl_yw")));
  1056 + hjMap.put("ssgl_other", Arith.add(lsMap.get("ssgl_other"), hjMap.get("ssgl_other")==null?"0":hjMap.get("ssgl_other")));
  1057 + hjMap.put("ljgl", Arith.add(lsMap.get("ljgl"), hjMap.get("ljgl")==null?"0":hjMap.get("ljgl")));
  1058 + hjMap.put("jhbc", Integer.parseInt(lsMap.get("jhbc").toString())+ Integer.parseInt(hjMap.get("jhbc")==null?"0":hjMap.get("jhbc").toString()));
  1059 + hjMap.put("jhbc_m", Integer.parseInt(lsMap.get("jhbc_m").toString())+Integer.parseInt(hjMap.get("jhbc_m")==null?"0":hjMap.get("jhbc_m").toString()));
  1060 + hjMap.put("jhbc_a", Integer.parseInt(lsMap.get("jhbc_a").toString())+ Integer.parseInt(hjMap.get("jhbc_a")==null?"0":hjMap.get("jhbc_a").toString()));
  1061 + hjMap.put("sjbc", Integer.parseInt(lsMap.get("sjbc").toString())+ Integer.parseInt(hjMap.get("sjbc")==null?"0":hjMap.get("sjbc").toString()));
  1062 + hjMap.put("sjbc_m",Integer.parseInt(lsMap.get("sjbc_m").toString())+ Integer.parseInt(hjMap.get("sjbc_m")==null?"0":hjMap.get("sjbc_m").toString()));
  1063 + hjMap.put("sjbc_a", Integer.parseInt(lsMap.get("sjbc_a").toString())+ Integer.parseInt(hjMap.get("sjbc_a")==null?"0":hjMap.get("sjbc_a").toString()));
  1064 + hjMap.put("ljbc", Integer.parseInt(lsMap.get("ljbc").toString())+ Integer.parseInt(hjMap.get("ljbc")==null?"0":hjMap.get("ljbc").toString()));
  1065 + hjMap.put("ljbc_m", Integer.parseInt(lsMap.get("ljbc_m").toString())+ Integer.parseInt(hjMap.get("ljbc_m")==null?"0":hjMap.get("ljbc_m").toString()));
  1066 + hjMap.put("ljbc_a", Integer.parseInt(lsMap.get("ljbc_a").toString())+Integer.parseInt(hjMap.get("ljbc_a")==null?"0":hjMap.get("ljbc_a").toString()));
  1067 + hjMap.put("fzbc", Integer.parseInt(lsMap.get("fzbc").toString())+ Integer.parseInt(hjMap.get("fzbc")==null?"0":hjMap.get("fzbc").toString()));
  1068 + hjMap.put("fzbc_m",Integer.parseInt(lsMap.get("fzbc_m").toString())+ Integer.parseInt(hjMap.get("fzbc_m")==null?"0":hjMap.get("fzbc_m").toString()));
  1069 + hjMap.put("fzbc_a",Integer.parseInt(lsMap.get("fzbc_a").toString())+ Integer.parseInt(hjMap.get("fzbc_a")==null?"0":hjMap.get("fzbc_a").toString()));
  1070 + hjMap.put("dtbc", Integer.parseInt(lsMap.get("dtbc").toString())+ Integer.parseInt(hjMap.get("dtbc")==null?"0":hjMap.get("dtbc").toString()));
  1071 + hjMap.put("dtbc_m", Integer.parseInt(lsMap.get("dtbc_m").toString())+ Integer.parseInt(hjMap.get("dtbc_m")==null?"0":hjMap.get("dtbc_m").toString()));
  1072 + hjMap.put("dtbc_a", Integer.parseInt(lsMap.get("dtbc_a").toString())+ Integer.parseInt(hjMap.get("dtbc_a")==null?"0":hjMap.get("dtbc_a").toString()));
  1073 + hjMap.put("djg", Integer.parseInt(lsMap.get("djg").toString())+ Integer.parseInt(hjMap.get("djg")==null?"0":hjMap.get("djg").toString()));
  1074 + hjMap.put("djg_m", Integer.parseInt(lsMap.get("djg_m").toString())+ Integer.parseInt(hjMap.get("djg_m")==null?"0":hjMap.get("djg_m").toString()));
  1075 + hjMap.put("djg_a", Integer.parseInt(lsMap.get("djg_a").toString())+ Integer.parseInt(hjMap.get("djg_a")==null?"0":hjMap.get("djg_a").toString()));
  1076 + if(hjMap.get("djg_time")==null){
  1077 + hjMap.put("djg_time", lsMap.get("djg_time"));
  1078 + }else{
  1079 + if(Arith.add(lsMap.get("djg_time"),0)>Arith.add(hjMap.get("djg_time"), 0)){
1057 hjMap.put("djg_time", lsMap.get("djg_time")); 1080 hjMap.put("djg_time", lsMap.get("djg_time"));
1058 }else{ 1081 }else{
1059 - hjMap.put("djg_time",tjMap.get("djg_time")); 1082 + hjMap.put("djg_time",hjMap.get("djg_time"));
1060 } 1083 }
1061 -  
1062 - double jl = Arith.sub(Arith.add(hjMap.get("jhlc"), hjMap.get("ljgl")), hjMap.get("ssgl"));  
1063 - if (jl == Double.parseDouble(hjMap.get("sjgl").toString())) {  
1064 - hjMap.put("zt", 0);  
1065 - } else {  
1066 - hjMap.put("zt", 1);  
1067 - }  
1068 - mapListHj.add(hjMap);  
1069 - fage=false;  
1070 } 1084 }
1071 - }  
1072 -  
1073 - if(fage){  
1074 - Map<String, Object> m = new HashMap<String, Object>();  
1075 - m.put("xlBm", tjMap.get("xlBm"));  
1076 - m.put("xlName", tjMap.get("xlName"));  
1077 - m.put("jhzlc", tjMap.get("jhzlc"));  
1078 - m.put("jhlc", tjMap.get("jhlc"));  
1079 - m.put("jcclc", tjMap.get("jcclc"));  
1080 - m.put("sjzgl",tjMap.get("sjzgl"));  
1081 - m.put("sjgl", tjMap.get("sjgl"));  
1082 - m.put("sjksgl", tjMap.get("sjksgl"));  
1083 - m.put("ssgl", tjMap.get("ssgl"));  
1084 - m.put("ssbc", tjMap.get("ssbc"));  
1085 - m.put("ssgl_lz", tjMap.get("ssgl_lz"));  
1086 - m.put("ssgl_dm", tjMap.get("ssgl_dm"));  
1087 - m.put("ssgl_gz", tjMap.get("ssgl_gz"));  
1088 - m.put("ssgl_jf", tjMap.get("ssgl_jf"));  
1089 - m.put("ssgl_zs", tjMap.get("ssgl_zs"));  
1090 - m.put("ssgl_qr", tjMap.get("ssgl_qr"));  
1091 - m.put("ssgl_qc", tjMap.get("ssgl_qc"));  
1092 - m.put("ssgl_kx", tjMap.get("ssgl_kx"));  
1093 - m.put("ssgl_qh", tjMap.get("ssgl_qh"));  
1094 - m.put("ssgl_yw", tjMap.get("ssgl_yw"));  
1095 - m.put("ssgl_other", tjMap.get("ssgl_other"));  
1096 - m.put("ljgl", tjMap.get("ljgl"));  
1097 - m.put("jhbc", tjMap.get("jhbc"));  
1098 - m.put("jhbc_m", tjMap.get("jhbc_m"));  
1099 - m.put("jhbc_a", tjMap.get("jhbc_a"));  
1100 - m.put("sjbc", tjMap.get("sjbc"));  
1101 - m.put("sjbc_m",tjMap.get("sjbc_m"));  
1102 - m.put("sjbc_a", tjMap.get("sjbc_a"));  
1103 - m.put("ljbc", tjMap.get("ljbc"));  
1104 - m.put("ljbc_m", tjMap.get("ljbc_m"));  
1105 - m.put("ljbc_a",tjMap.get("ljbc_a"));  
1106 - m.put("fzbc", tjMap.get("fzbc"));  
1107 - m.put("fzbc_m", tjMap.get("fzbc_m"));  
1108 - m.put("fzbc_a",tjMap.get("fzbc_a"));  
1109 - m.put("dtbc", tjMap.get("dtbc"));  
1110 - m.put("dtbc_m", tjMap.get("dtbc_m"));  
1111 - m.put("dtbc_a", tjMap.get("dtbc_a"));  
1112 - m.put("djg", tjMap.get("djg"));  
1113 - m.put("djg_m", tjMap.get("djg_m"));  
1114 - m.put("djg_a", tjMap.get("djg_a"));  
1115 - m.put("djg_time", tjMap.get("djg_time"));  
1116 - double jl = Arith.sub(Arith.add(m.get("jhlc"), m.get("ljgl")), m.get("ssgl"));  
1117 - if (jl == Double.parseDouble(m.get("sjgl").toString())) {  
1118 - m.put("zt", 0); 1085 +
  1086 +
  1087 + double jl = Arith.sub(Arith.add(hjMap.get("jhlc"), hjMap.get("ljgl")), hjMap.get("ssgl"));
  1088 + if (jl == Double.parseDouble(hjMap.get("sjgl").toString())) {
  1089 + hjMap.put("zt", 0);
1119 } else { 1090 } else {
1120 - m.put("zt", 1); 1091 + hjMap.put("zt", 1);
1121 } 1092 }
1122 - mapListHj.add(m);  
1123 } 1093 }
1124 } 1094 }
1125 - }else{  
1126 - mapListHj.addAll(mapList);  
1127 - }  
1128 - }else{  
1129 - for (int i=0;i<tjlist.size();i++) {  
1130 - Map<String, Object> tjMap =tjlist.get(i);  
1131 - Map<String, Object> m = new HashMap<String, Object>();  
1132 - m.put("xlBm", tjMap.get("xlBm"));  
1133 - m.put("xlName", tjMap.get("xlName"));  
1134 - m.put("jhzlc", tjMap.get("jhzlc"));  
1135 - m.put("jhlc", tjMap.get("jhlc"));  
1136 - m.put("jcclc", tjMap.get("jcclc"));  
1137 - m.put("sjzgl",tjMap.get("sjzgl"));  
1138 - m.put("sjgl", tjMap.get("sjgl"));  
1139 - m.put("sjksgl", tjMap.get("sjksgl"));  
1140 - m.put("ssgl", tjMap.get("ssgl"));  
1141 - m.put("ssbc", tjMap.get("ssbc"));  
1142 - m.put("ssgl_lz", tjMap.get("ssgl_lz"));  
1143 - m.put("ssgl_dm", tjMap.get("ssgl_dm"));  
1144 - m.put("ssgl_gz", tjMap.get("ssgl_gz"));  
1145 - m.put("ssgl_jf", tjMap.get("ssgl_jf"));  
1146 - m.put("ssgl_zs", tjMap.get("ssgl_zs"));  
1147 - m.put("ssgl_qr", tjMap.get("ssgl_qr"));  
1148 - m.put("ssgl_qc", tjMap.get("ssgl_qc"));  
1149 - m.put("ssgl_kx", tjMap.get("ssgl_kx"));  
1150 - m.put("ssgl_qh", tjMap.get("ssgl_qh"));  
1151 - m.put("ssgl_yw", tjMap.get("ssgl_yw"));  
1152 - m.put("ssgl_other", tjMap.get("ssgl_other"));  
1153 - m.put("ljgl", tjMap.get("ljgl"));  
1154 - m.put("jhbc", tjMap.get("jhbc"));  
1155 - m.put("jhbc_m", tjMap.get("jhbc_m"));  
1156 - m.put("jhbc_a", tjMap.get("jhbc_a"));  
1157 - m.put("sjbc", tjMap.get("sjbc"));  
1158 - m.put("sjbc_m",tjMap.get("sjbc_m"));  
1159 - m.put("sjbc_a", tjMap.get("sjbc_a"));  
1160 - m.put("ljbc", tjMap.get("ljbc"));  
1161 - m.put("ljbc_m", tjMap.get("ljbc_m"));  
1162 - m.put("ljbc_a",tjMap.get("ljbc_a"));  
1163 - m.put("fzbc", tjMap.get("fzbc"));  
1164 - m.put("fzbc_m", tjMap.get("fzbc_m"));  
1165 - m.put("fzbc_a",tjMap.get("fzbc_a"));  
1166 - m.put("dtbc", tjMap.get("dtbc"));  
1167 - m.put("dtbc_m", tjMap.get("dtbc_m"));  
1168 - m.put("dtbc_a", tjMap.get("dtbc_a"));  
1169 - m.put("djg", tjMap.get("djg"));  
1170 - m.put("djg_m", tjMap.get("djg_m"));  
1171 - m.put("djg_a", tjMap.get("djg_a"));  
1172 - m.put("djg_time", tjMap.get("djg_time"));  
1173 - double jl = Arith.sub(Arith.add(m.get("jhlc"), m.get("ljgl")), m.get("ssgl"));  
1174 - if (jl == Double.parseDouble(m.get("sjgl").toString())) {  
1175 - m.put("zt", 0);  
1176 - } else {  
1177 - m.put("zt", 1);  
1178 - }  
1179 - mapListHj.add(m);  
1180 -  
1181 - }  
1182 - } 1095 + mapListHj.add(hjMap);
  1096 + }
  1097 +
  1098 + Collections.sort(mapListHj, new AccountXlbmByping());
  1099 +
1183 1100
1184 if (type != null && type.length() != 0 && type.equals("export")) { 1101 if (type != null && type.length() != 0 && type.equals("export")) {
1185 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 1102 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
@@ -1821,3 +1738,14 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -1821,3 +1738,14 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
1821 } 1738 }
1822 1739
1823 } 1740 }
  1741 +
  1742 +class AccountXlbmByping implements Comparator<Map<String, Object>> {
  1743 + @Override
  1744 + public int compare(Map<String, Object> o1, Map<String, Object> o2) {
  1745 + // TODO Auto-generated method stub
  1746 +// PinyinHelper.convertToPinyinString(ppy.getName(),
  1747 +// "" , PinyinFormat.WITHOUT_TONE)
  1748 + return o1.get("xlNamePy").toString().compareTo(
  1749 + o2.get("xlNamePy").toString());
  1750 + }
  1751 +}
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -2560,8 +2560,8 @@ public class FormsServiceImpl implements FormsService { @@ -2560,8 +2560,8 @@ public class FormsServiceImpl implements FormsService {
2560 2560
2561 String sql = "select gs_name, fgs_name, cl_zbh, fcsj, bc_type, xl_bm, xl_name, schedule_date" 2561 String sql = "select gs_name, fgs_name, cl_zbh, fcsj, bc_type, xl_bm, xl_name, schedule_date"
2562 + " from bsth_c_s_sp_info where gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"' " 2562 + " from bsth_c_s_sp_info where gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"' "
2563 - + "and DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' "  
2564 - + "and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"' "; 2563 + + "and schedule_date >= '"+startDate+"' "
  2564 + + "and schedule_date <= '"+endDate+"' ";
2565 if(line.trim().length() != 0){ 2565 if(line.trim().length() != 0){
2566 sql += "and xl_bm = '"+line+"' "; 2566 sql += "and xl_bm = '"+line+"' ";
2567 } 2567 }
@@ -2718,8 +2718,8 @@ public class FormsServiceImpl implements FormsService { @@ -2718,8 +2718,8 @@ public class FormsServiceImpl implements FormsService {
2718 2718
2719 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from " 2719 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from "
2720 + " (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,bc_type" 2720 + " (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,bc_type"
2721 - + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"  
2722 - + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='" 2721 + + " from bsth_c_s_sp_info" + " where schedule_date >= '"
  2722 + + map.get("startDate").toString() + "' and schedule_date <= '" + map.get("endDate").toString() + "' and xl_bm='"
2723 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')" 2723 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')"
2724 + " and gs_bm='"+ map.get("gsdmEcecut").toString() + "'" 2724 + " and gs_bm='"+ map.get("gsdmEcecut").toString() + "'"
2725 + " and fgs_bm='"+ map.get("fgsdmEcecut").toString() + "'" 2725 + " and fgs_bm='"+ map.get("fgsdmEcecut").toString() + "'"
@@ -2802,8 +2802,8 @@ public class FormsServiceImpl implements FormsService { @@ -2802,8 +2802,8 @@ public class FormsServiceImpl implements FormsService {
2802 2802
2803 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from " 2803 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from "
2804 + " (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,bc_type" 2804 + " (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,bc_type"
2805 - + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"  
2806 - + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='" 2805 + + " from bsth_c_s_sp_info" + " where schedule_date >= '"
  2806 + + map.get("startDate").toString() + "' and schedule_date <='" + map.get("endDate").toString() + "' and xl_bm='"
2807 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out') " 2807 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out') "
2808 + " and gs_bm='"+ map.get("gsdmAllline").toString() + "'" 2808 + " and gs_bm='"+ map.get("gsdmAllline").toString() + "'"
2809 + " and fgs_bm='"+ map.get("fgsdmAllline").toString() + "'" 2809 + " and fgs_bm='"+ map.get("fgsdmAllline").toString() + "'"
@@ -2813,7 +2813,7 @@ public class FormsServiceImpl implements FormsService { @@ -2813,7 +2813,7 @@ public class FormsServiceImpl implements FormsService {
2813 + ") as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b." 2813 + ") as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b."
2814 + "xl_name,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl " 2814 + "xl_name,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl "
2815 + "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,bc_type from bsth_c_s_sp_info_real " 2815 + "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,bc_type from bsth_c_s_sp_info_real "
2816 - + "where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '" + map.get("startDate").toString() + "' and '" 2816 + + "where schedule_date_str >= '" + map.get("startDate").toString() + "' and schedule_date_str <= '"
2817 + map.get("endDate").toString() + "' and xl_bm='" + map.get 2817 + map.get("endDate").toString() + "' and xl_bm='" + map.get
2818 ("line").toString() 2818 ("line").toString()
2819 + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')" 2819 + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')"
src/main/java/com/bsth/service/impl/LineServiceImpl.java
@@ -79,7 +79,7 @@ public class LineServiceImpl extends BaseServiceImpl&lt;Line, Integer&gt; implements L @@ -79,7 +79,7 @@ public class LineServiceImpl extends BaseServiceImpl&lt;Line, Integer&gt; implements L
79 l.getOpenDate(), l.getEs(), l.getShortName(), l.getShanghaiLinecode(), l.getEqLinecode(), 79 l.getOpenDate(), l.getEs(), l.getShortName(), l.getShanghaiLinecode(), l.getEqLinecode(),
80 l.getStartPhone(), l.getEndPhone(), l.getCarSumNumber(), l.getHvacCarNumber(), l.getOrdCarNumber(), 80 l.getStartPhone(), l.getEndPhone(), l.getCarSumNumber(), l.getHvacCarNumber(), l.getOrdCarNumber(),
81 l.getHistory(), l.getDescriptions(), l.getDestroy(), l.getSupperLine(), l.getSpacGrade(), 81 l.getHistory(), l.getDescriptions(), l.getDestroy(), l.getSupperLine(), l.getSpacGrade(),
82 - l.getWarrantCar(), l.getLineCode()); 82 + l.getWarrantCar(), l.getLineCode(), l.getRegion());
83 if (status==1) { 83 if (status==1) {
84 map.put("status", ResponseCode.SUCCESS); 84 map.put("status", ResponseCode.SUCCESS);
85 } else { 85 } else {
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
@@ -530,7 +530,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -530,7 +530,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
530 try { 530 try {
531 //发送邮件 531 //发送邮件
532 EmailBean mail = new EmailBean(); 532 EmailBean mail = new EmailBean();
533 - mail.setSubject("路单日志数据"+date); 533 + mail.setSubject("浦东路单日志数据"+date);
534 mail.setContent(logSuccess+"<br/>成功数:"+countSuccess+"<br/>" +logFailure+"<br/>失败数:"+countFailure); 534 mail.setContent(logSuccess+"<br/>成功数:"+countSuccess+"<br/>" +logFailure+"<br/>失败数:"+countFailure);
535 sendEmailController.sendMail(emailSendToAddress, mail); 535 sendEmailController.sendMail(emailSendToAddress, mail);
536 logger.info("setLD-sendMail:邮件发送成功!"); 536 logger.info("setLD-sendMail:邮件发送成功!");
@@ -942,32 +942,44 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -942,32 +942,44 @@ public class TrafficManageServiceImpl implements TrafficManageService{
942 public String setSKB(String ids) { 942 public String setSKB(String ids) {
943 String result = "failure"; 943 String result = "failure";
944 StringBuffer sBuffer = new StringBuffer(); 944 StringBuffer sBuffer = new StringBuffer();
  945 + DecimalFormat df = new DecimalFormat("######0.000");
945 try { 946 try {
946 String[] idArray = ids.split(","); 947 String[] idArray = ids.split(",");
947 - StringBuffer sBufferA;  
948 - StringBuffer sBufferB; 948 + StringBuffer sBufferA ,sBufferB ,sBufferC ;
  949 + double zlc,yylc,singleLc,emptyLc;// 总里程、营运里程、单程、空放里程
  950 + String bcType,sxx;// 班次类型、上下行
949 // 上传的时刻表集合 951 // 上传的时刻表集合
950 List<TTInfo> ttinfoList = new ArrayList<>(); 952 List<TTInfo> ttinfoList = new ArrayList<>();
951 TTInfo ttInfo; 953 TTInfo ttInfo;
952 TTInfoDetail ttInfoDetail; 954 TTInfoDetail ttInfoDetail;
  955 + LineInformation lineInformation;
953 Iterator<TTInfoDetail> ttInfoDetailIterator; 956 Iterator<TTInfoDetail> ttInfoDetailIterator;
954 - HashMap<String,Object> param = new HashMap<String, Object>(); 957 + HashMap<String,Object> param ;
955 sBuffer.append("<SKBs>"); 958 sBuffer.append("<SKBs>");
956 HashMap<String,String> paramMap; 959 HashMap<String,String> paramMap;
957 - HashMap<String,String> otherMap = new HashMap<String, String>(); 960 + HashMap<String,String> otherMap = new HashMap<>();
958 for (int i = 0; i < idArray.length; i++) { 961 for (int i = 0; i < idArray.length; i++) {
959 ttInfo = ttInfoRepository.findOne(Long.valueOf(idArray[i])); 962 ttInfo = ttInfoRepository.findOne(Long.valueOf(idArray[i]));
960 if(ttInfo == null) 963 if(ttInfo == null)
961 continue; 964 continue;
962 ttinfoList.add(ttInfo); // 保存时刻表 965 ttinfoList.add(ttInfo); // 保存时刻表
  966 + zlc = 0.0f;
  967 + yylc = 0.0f;
  968 + // 获得时刻表
  969 + param = new HashMap();
963 param.put("ttinfo.id_eq", ttInfo.getId()); 970 param.put("ttinfo.id_eq", ttInfo.getId());
964 ttInfoDetailIterator = ttInfoDetailRepository.findAll(new CustomerSpecs<TTInfoDetail>(param), 971 ttInfoDetailIterator = ttInfoDetailRepository.findAll(new CustomerSpecs<TTInfoDetail>(param),
965 new Sort(Direction.ASC, "xlDir")).iterator(); 972 new Sort(Direction.ASC, "xlDir")).iterator();
  973 + // 获得lineInformation
  974 + param = new HashMap();
  975 + param.put("line.id_eq", ttInfo.getXl().getId());
  976 + lineInformation = lineInformationRepository.findOne(new CustomerSpecs<LineInformation>(param));
966 if(ttInfoDetailIterator.hasNext()){ 977 if(ttInfoDetailIterator.hasNext()){
967 sBuffer.append("<SKB>"); 978 sBuffer.append("<SKB>");
968 sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(ttInfo.getXl().getId())) 979 sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(ttInfo.getXl().getId()))
969 .append("</XLBM>"); 980 .append("</XLBM>");
970 sBufferB = new StringBuffer(); 981 sBufferB = new StringBuffer();
  982 + sBufferC = new StringBuffer();
971 sBufferB.append("<KSRQ>").append(sdfnyr.format(ttInfo.getQyrq())).append("</KSRQ>"); 983 sBufferB.append("<KSRQ>").append(sdfnyr.format(ttInfo.getQyrq())).append("</KSRQ>");
972 // 结束日期暂时不要,节假日的班次表才需要,如春节的班次表 984 // 结束日期暂时不要,节假日的班次表才需要,如春节的班次表
973 sBufferB.append("<JSRQ>").append("").append("</JSRQ>"); 985 sBufferB.append("<JSRQ>").append("").append("</JSRQ>");
@@ -975,43 +987,55 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -975,43 +987,55 @@ public class TrafficManageServiceImpl implements TrafficManageService{
975 sBufferB.append("<TBYY>").append("").append("</TBYY>"); 987 sBufferB.append("<TBYY>").append("").append("</TBYY>");
976 sBufferB.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>"); 988 sBufferB.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>");
977 sBufferB.append("<BCList>"); 989 sBufferB.append("<BCList>");
978 - int num = 1;  
979 while (ttInfoDetailIterator.hasNext()) { 990 while (ttInfoDetailIterator.hasNext()) {
980 ttInfoDetail = ttInfoDetailIterator.next(); 991 ttInfoDetail = ttInfoDetailIterator.next();
981 - if(ttInfoDetail.getBcType().equals("in") || ttInfoDetail.getBcType().equals("out")){ 992 + bcType = ttInfoDetail.getBcType();
  993 + sxx = ttInfoDetail.getXlDir();
  994 + // 进出场班次
  995 + if(bcType.equals("in") || bcType.equals("out")){
  996 + // 进出班次的计划里程,算空驶里程
  997 + emptyLc = ttInfoDetail.getJhlc();
  998 + // 总里程需要加上空驶里程
  999 + zlc += emptyLc;
982 continue; 1000 continue;
983 } 1001 }
984 - if(num++ == 1){  
985 - sBufferA = new StringBuffer();  
986 - sBufferA.append("<JHZLC>").append(ttInfoDetail.getJhlc()).append("</JHZLC>");  
987 - sBufferA.append("<JHYYLC>").append(ttInfoDetail.getJhlc()).append("</JHYYLC>");  
988 - sBuffer.append(sBufferA).append(sBufferB);  
989 - }  
990 // 如果发车时间格式错误,忽略此条 1002 // 如果发车时间格式错误,忽略此条
991 if(changeTimeFormat(ttInfoDetail) == null){ 1003 if(changeTimeFormat(ttInfoDetail) == null){
992 continue; 1004 continue;
993 } 1005 }
994 - sBuffer.append("<BC>");  
995 - sBuffer.append("<LPBH>").append(ttInfoDetail.getLp().getLpNo()).append("</LPBH>");  
996 - sBuffer.append("<SXX>").append(ttInfoDetail.getXlDir()).append("</SXX>");  
997 - sBuffer.append("<FCZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir() 1006 + sBufferC.append("<BC>");
  1007 + sBufferC.append("<LPBH>").append(ttInfoDetail.getLp().getLpNo()).append("</LPBH>");
  1008 + sBufferC.append("<SXX>").append(sxx).append("</SXX>");
  1009 + sBufferC.append("<FCZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir()
998 +"_"+ttInfoDetail.getQdzCode())).append("</FCZDMC>"); 1010 +"_"+ttInfoDetail.getQdzCode())).append("</FCZDMC>");
999 // 起点站的参数 1011 // 起点站的参数
1000 otherMap.put("stationMark","B"); 1012 otherMap.put("stationMark","B");
1001 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap); 1013 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap);
1002 - sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</ZDXH>");  
1003 - sBuffer.append("<JHFCSJ>").append(changeTimeFormat(ttInfoDetail)).append("</JHFCSJ>");  
1004 - sBuffer.append("<DDZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir() 1014 + sBufferC.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</ZDXH>");
  1015 + sBufferC.append("<JHFCSJ>").append(changeTimeFormat(ttInfoDetail)).append("</JHFCSJ>");
  1016 + sBufferC.append("<DDZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir()
1005 +"_"+ttInfoDetail.getZdzCode())).append("</DDZDMC>"); 1017 +"_"+ttInfoDetail.getZdzCode())).append("</DDZDMC>");
1006 // 起点站的参数 1018 // 起点站的参数
1007 otherMap.put("stationMark","E"); 1019 otherMap.put("stationMark","E");
1008 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap); 1020 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap);
1009 - sBuffer.append("<DDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</DDXH>");  
1010 - sBuffer.append("<JHDDSJ>").append(calcDdsj(ttInfoDetail.getFcsj(),ttInfoDetail.getBcsj())).append("</JHDDSJ>");  
1011 - sBuffer.append("</BC>"); 1021 + sBufferC.append("<DDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</DDXH>");
  1022 + sBufferC.append("<JHDDSJ>").append(calcDdsj(ttInfoDetail.getFcsj(),ttInfoDetail.getBcsj())).append("</JHDDSJ>");
  1023 + sBufferC.append("</BC>");
  1024 + // 0:上行;1:下行
  1025 + if("0".equals(sxx)){
  1026 + singleLc = lineInformation.getUpMileage();
  1027 + }else{
  1028 + singleLc = lineInformation.getDownMileage();
  1029 + }
  1030 + zlc += singleLc ;
  1031 + yylc += singleLc;
1012 } 1032 }
1013 - sBuffer.append("</BCList>");  
1014 - sBuffer.append("</SKB>"); 1033 + sBufferC.append("</BCList>");
  1034 + sBufferC.append("</SKB>");
  1035 + sBufferA = new StringBuffer();
  1036 + sBufferA.append("<JHZLC>").append(df.format(zlc)).append("</JHZLC>");
  1037 + sBufferA.append("<JHYYLC>").append(df.format(yylc)).append("</JHYYLC>");
  1038 + sBuffer.append(sBufferA).append(sBufferB).append(sBufferC);
1015 } 1039 }
1016 } 1040 }
1017 sBuffer.append("</SKBs>"); 1041 sBuffer.append("</SKBs>");
src/main/java/com/bsth/service/oil/LsylbService.java 0 → 100644
  1 +package com.bsth.service.oil;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +import com.bsth.entity.oil.Lsylb;
  7 +import com.bsth.entity.oil.Ylb;
  8 +import com.bsth.service.BaseService;
  9 +
  10 +public interface LsylbService extends BaseService<Lsylb, Integer>{
  11 + List<Lsylb> listYlb(Map<String, Object> map);
  12 + Map<String, Object> sumYlb(Map<String, Object> map);
  13 +}
src/main/java/com/bsth/service/oil/impl/LsylbServiceImpl.java 0 → 100644
  1 +package com.bsth.service.oil.impl;
  2 +
  3 +import java.sql.ResultSet;
  4 +import java.sql.SQLException;
  5 +import java.text.DecimalFormat;
  6 +import java.text.ParseException;
  7 +import java.text.SimpleDateFormat;
  8 +import java.util.ArrayList;
  9 +import java.util.Calendar;
  10 +import java.util.Date;
  11 +import java.util.HashMap;
  12 +import java.util.Iterator;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +import javax.transaction.Transactional;
  17 +
  18 +import org.apache.commons.lang3.StringEscapeUtils;
  19 +import org.apache.commons.lang3.StringUtils;
  20 +import org.slf4j.Logger;
  21 +import org.slf4j.LoggerFactory;
  22 +import org.springframework.beans.factory.annotation.Autowired;
  23 +import org.springframework.data.domain.Sort;
  24 +import org.springframework.data.domain.Sort.Direction;
  25 +import org.springframework.jdbc.core.JdbcTemplate;
  26 +import org.springframework.jdbc.core.RowMapper;
  27 +import org.springframework.stereotype.Service;
  28 +
  29 +import com.alibaba.fastjson.JSONArray;
  30 +import com.alibaba.fastjson.JSONObject;
  31 +import com.bsth.common.ResponseCode;
  32 +import com.bsth.data.BasicData;
  33 +import com.bsth.entity.Cars;
  34 +import com.bsth.entity.Line;
  35 +import com.bsth.entity.mcy_forms.Daily;
  36 +import com.bsth.entity.oil.Cyl;
  37 +import com.bsth.entity.oil.Dlb;
  38 +import com.bsth.entity.oil.Lsylb;
  39 +import com.bsth.entity.oil.Nylog;
  40 +import com.bsth.entity.oil.Ylb;
  41 +import com.bsth.entity.oil.Ylxxb;
  42 +import com.bsth.entity.search.CustomerSpecs;
  43 +import com.bsth.entity.sys.SysUser;
  44 +import com.bsth.repository.CarsRepository;
  45 +import com.bsth.repository.LineRepository;
  46 +import com.bsth.repository.oil.CylRepository;
  47 +import com.bsth.repository.oil.DlbRepository;
  48 +import com.bsth.repository.oil.LsylbRepository;
  49 +import com.bsth.repository.oil.NylogRepository;
  50 +import com.bsth.repository.oil.YlbRepository;
  51 +import com.bsth.repository.oil.YlxxbRepository;
  52 +import com.bsth.security.util.SecurityUtils;
  53 +import com.bsth.service.impl.BaseServiceImpl;
  54 +import com.bsth.service.oil.DlbService;
  55 +import com.bsth.service.oil.LsylbService;
  56 +import com.bsth.service.oil.YlbService;
  57 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
  58 +import com.bsth.util.Arith;
  59 +import com.bsth.util.BatchSaveUtils;
  60 +import com.bsth.util.ReportUtils;
  61 +import com.github.abel533.echarts.code.Y;
  62 +
  63 +import javassist.bytecode.stackmap.BasicBlock.Catch;
  64 +
  65 +@Service
  66 +public class LsylbServiceImpl extends BaseServiceImpl<Lsylb,Integer> implements LsylbService{
  67 + @Autowired
  68 + LsylbRepository repository;
  69 + @Override
  70 + public List<Lsylb> listYlb(Map<String, Object> map) {
  71 + // TODO Auto-generated method stub
  72 + List<Lsylb> listYlb=new ArrayList<Lsylb>();
  73 + List<String> stringList=new ArrayList<String>();
  74 + String rq=map.get("rq").toString();
  75 + String gsbm=map.get("ssgsdm_like").toString();
  76 + String fgsbm=map.get("fgsdm_like").toString();
  77 + String xlbm=map.get("xlbm_like").toString().trim();
  78 + String nbbm=map.get("nbbm_eq").toString();
  79 + String sxtj=map.get("sxtj").toString();
  80 + int nylx=Integer.parseInt(map.get("nylx").toString());
  81 + if(nbbm.trim()!=""){
  82 + stringList.add(nbbm);
  83 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  84 + if(objectLists.size()>0){
  85 + int cs=Integer.parseInt(objectLists.get(0)[1].toString());
  86 + if(sxtj.equals("1")){
  87 + if(cs==1){
  88 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  89 + }
  90 + }else if(sxtj.equals("2")){
  91 + if(cs>1){
  92 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  93 + }
  94 + }else{
  95 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  96 + }
  97 + }
  98 +
  99 + }else{
  100 + //全部
  101 + if(sxtj.equals("0")){
  102 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  103 + for (int i = 0; i < objectLists.size(); i++) {
  104 + String clbm=objectLists.get(i)[0].toString();
  105 + stringList.add(clbm);
  106 + }
  107 + if(stringList.size()>0){
  108 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  109 + }
  110 + }else{
  111 + List<Object[]> objectLists;
  112 + if(sxtj.equals("3")){
  113 + //有加油没里程
  114 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  115 + for (int i = 0; i < objectLists.size(); i++) {
  116 + String clbm=objectLists.get(i)[0].toString();
  117 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  118 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  119 + if(jzl>0 && zlc<=0){
  120 + stringList.add(clbm);
  121 + }
  122 +
  123 + }
  124 +
  125 + }else if(sxtj.equals("4")){
  126 + //有里程没加油
  127 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  128 + for (int i = 0; i < objectLists.size(); i++) {
  129 + String clbm=objectLists.get(i)[0].toString();
  130 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  131 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  132 + if(zlc>0 && jzl<=0){
  133 + stringList.add(clbm);
  134 + }
  135 +
  136 + }
  137 + }else{
  138 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  139 + for (int i = 0; i < objectLists.size(); i++) {
  140 + String clbm=objectLists.get(i)[0].toString();
  141 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  142 + //一车一单
  143 + if(sxtj.equals("1")){
  144 + if(cs==1){
  145 + stringList.add(clbm);
  146 + }
  147 + }
  148 + //一车多单
  149 + if(sxtj.equals("2")){
  150 + if(cs>1){
  151 + stringList.add(clbm);
  152 + }
  153 + }
  154 + }
  155 + }
  156 +
  157 + if(stringList.size()>0){
  158 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  159 + }
  160 + }
  161 + }
  162 +
  163 + return listYlb;
  164 + }
  165 +
  166 +
  167 + @Override
  168 + public Map<String, Object> sumYlb(Map<String, Object> map) {
  169 + // TODO Auto-generated method stub
  170 + List<String> stringList=new ArrayList<String>();
  171 + String rq=map.get("rq").toString();
  172 + String gsbm=map.get("ssgsdm_like").toString();
  173 + String fgsbm=map.get("fgsdm_like").toString();
  174 + String xlbm=map.get("xlbm_like").toString().trim();
  175 + String nbbm=map.get("nbbm_eq").toString();
  176 + String sxtj=map.get("sxtj").toString();
  177 + int nylx=Integer.parseInt(map.get("nylx").toString());
  178 + if(nbbm.trim()!=""){
  179 + stringList.add(nbbm);
  180 + }else{
  181 + if(!sxtj.equals("0")){
  182 + List<Object[]> objectLists;
  183 + if(sxtj.equals("3")){
  184 + //有加油没里程
  185 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  186 + for (int i = 0; i < objectLists.size(); i++) {
  187 + String clbm=objectLists.get(i)[0].toString();
  188 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  189 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  190 + if(jzl>0 && zlc<=0){
  191 + stringList.add(clbm);
  192 + }
  193 +
  194 + }
  195 +
  196 + }else if(sxtj.equals("4")){
  197 + //有里程没加油
  198 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  199 + for (int i = 0; i < objectLists.size(); i++) {
  200 + String clbm=objectLists.get(i)[0].toString();
  201 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  202 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  203 + if(zlc>0 && jzl<=0){
  204 + stringList.add(clbm);
  205 + }
  206 +
  207 + }
  208 + }else{
  209 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  210 + for (int i = 0; i < objectLists.size(); i++) {
  211 + String clbm=objectLists.get(i)[0].toString();
  212 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  213 + //一车一单
  214 +
  215 + if(sxtj.equals("1")){
  216 + if(cs==1){
  217 + stringList.add(clbm);
  218 + }
  219 + }
  220 + //一车多单
  221 + if(sxtj.equals("2")){
  222 + if(cs>1){
  223 + stringList.add(clbm);
  224 + }
  225 + }
  226 + }
  227 + }
  228 + }
  229 + }
  230 + List<Object[]> sumYlbList=new ArrayList<Object[]>();
  231 + if(sxtj.equals("0")){
  232 + sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  233 + }else{
  234 + if(stringList.size()>0){
  235 +
  236 + sumYlbList=repository.sumYlb(rq, gsbm, fgsbm, xlbm, stringList,nylx);
  237 + }
  238 +
  239 + }
  240 +
  241 + Double jzl=0.0,yh=0.0,sh=0.0;
  242 + for (int i = 0; i < sumYlbList.size(); i++) {
  243 + jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString()));
  244 + yh = Arith.add(yh, Double.valueOf(sumYlbList.get(i)[1].toString()));
  245 + sh = Arith.add(sh, Double.valueOf(sumYlbList.get(i)[2].toString()));
  246 + }
  247 +
  248 + Map<String, Object> sumMap=new HashMap<String,Object>();
  249 + sumMap.put("jzl", jzl);
  250 + sumMap.put("yh", yh);
  251 + sumMap.put("sh", sh);
  252 + return sumMap;
  253 + }
  254 +}
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -811,7 +811,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -811,7 +811,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
811 String sql="select * from bsth_c_ylxxb where yyrq='"+rq+"' " 811 String sql="select * from bsth_c_ylxxb where yyrq='"+rq+"' "
812 + " and gsdm ='"+gsbm+"' and nylx ='0' and nbbm " 812 + " and gsdm ='"+gsbm+"' and nylx ='0' and nbbm "
813 + " not in ( select nbbm from bsth_c_ylb " 813 + " not in ( select nbbm from bsth_c_ylb "
814 - + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' " 814 + + " where rq='"+rq+"' "
815 + " and ssgsdm='"+gsbm+"' and fgsdm ='"+fgsbm+"')" 815 + " and ssgsdm='"+gsbm+"' and fgsdm ='"+fgsbm+"')"
816 + " and nbbm in (select inside_code from " 816 + " and nbbm in (select inside_code from "
817 + " bsth_c_cars where business_code ='"+gsbm+"' " 817 + " bsth_c_cars where business_code ='"+gsbm+"' "
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
@@ -691,6 +691,44 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -691,6 +691,44 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
691 sheet.autoSizeColumn(groupCount * 2 + 10); 691 sheet.autoSizeColumn(groupCount * 2 + 10);
692 } 692 }
693 693
  694 + private void createParameterInfoSheet(
  695 + org.apache.poi.ss.usermodel.Workbook wb,
  696 + DTInfos dtInfos, ExcelPoiOperator excelPoiOperator) {
  697 + org.apache.poi.ss.usermodel.Sheet sheet = excelPoiOperator.createWorkBookSheet(wb, "时刻表信息_参数");
  698 +
  699 + //---------------------- 参数对象信息 -----------------------//
  700 + List<ParameterInfo> parameterInfoList = dtInfos.getParameterInfoList();
  701 +
  702 + int _s = parameterInfoList.size() / 2;
  703 + int _y = parameterInfoList.size() % 2;
  704 + // 1行2个参数对象值,1个参数对象对应2列,1列描述,1列值
  705 + int rowCount = _s + (_y == 0 ? 0 : 1);
  706 +
  707 + for (int i = 0; i < rowCount; i++) {
  708 + Row row = excelPoiOperator.createSheetRow(sheet, i);
  709 + for (int j = 0; j < 4; j++) {
  710 + excelPoiOperator.createStringCell(wb, row, (short) j, "");
  711 + }
  712 + }
  713 +
  714 + for (int i = 0; i < parameterInfoList.size(); i++) {
  715 + int row = i / 2;
  716 + int col1 = (i % 2) == 0 ? 0 : 2;
  717 + int col2 = (i % 2) == 0 ? 1 : 3;
  718 +
  719 + ParameterInfo parameterInfo = parameterInfoList.get(i);
  720 +
  721 + sheet.getRow(row).getCell(col1).setCellValue(parameterInfo.getParamItem());
  722 + sheet.getRow(row).getCell(col2).setCellValue(parameterInfo.getParamValue());
  723 + }
  724 +
  725 + sheet.autoSizeColumn(0);
  726 + sheet.autoSizeColumn(1);
  727 + sheet.autoSizeColumn(2);
  728 + sheet.autoSizeColumn(3);
  729 +
  730 + }
  731 +
694 @Override 732 @Override
695 public DataToolsFile exportDynamicTTinfo(DTInfos dtInfos, DataToolsFileType type) throws ScheduleException { 733 public DataToolsFile exportDynamicTTinfo(DTInfos dtInfos, DataToolsFileType type) throws ScheduleException {
696 try { 734 try {
@@ -707,6 +745,7 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -707,6 +745,7 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
707 org.apache.poi.ss.usermodel.Workbook wb = excelPoiOperator.createWorkBook(); 745 org.apache.poi.ss.usermodel.Workbook wb = excelPoiOperator.createWorkBook();
708 this.createDynamicTTinfoSheet(wb, dtInfos, excelPoiOperator); 746 this.createDynamicTTinfoSheet(wb, dtInfos, excelPoiOperator);
709 this.createDynamicTTinfoStatSheet(wb, dtInfos, excelPoiOperator); 747 this.createDynamicTTinfoStatSheet(wb, dtInfos, excelPoiOperator);
  748 + this.createParameterInfoSheet(wb, dtInfos, excelPoiOperator);
710 749
711 // wb内存写入文件 750 // wb内存写入文件
712 String filepath = dataToolsProperties.getFileoutputDir() + 751 String filepath = dataToolsProperties.getFileoutputDir() +
src/main/java/com/bsth/service/schedule/datatools/TTinfoDetailDynamicData.java
1 -package com.bsth.service.schedule.datatools;  
2 -  
3 -import com.bsth.service.schedule.exception.ScheduleException;  
4 -import com.bsth.service.schedule.utils.DataToolsFile;  
5 -import com.bsth.service.schedule.utils.DataToolsFileType;  
6 -import com.fasterxml.jackson.annotation.JsonCreator;  
7 -import com.fasterxml.jackson.annotation.JsonValue;  
8 -  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * 动态时刻表数据。  
13 - */  
14 -public interface TTinfoDetailDynamicData {  
15 -  
16 - //---------------------- 生成时刻表用对象(以下) ---------------------//  
17 - public static enum BcType { // 班次类型枚举  
18 - IN("in"), // 进场  
19 - OUT("out"), // 出场  
20 - BD("bd"), // 早例保  
21 - LC("lc"), // 晚例保  
22 - NORMAL("normal"); // 正常  
23 - private String flag;  
24 -  
25 - @JsonCreator  
26 - private BcType(String flag) {  
27 - this.flag = flag;  
28 - }  
29 -  
30 - @JsonValue  
31 - public String getFlag() {  
32 - return flag;  
33 - }  
34 -  
35 - public void setFlag(String flag) {  
36 - this.flag = flag;  
37 - }  
38 - }  
39 -  
40 - public static class BcObj { // 班次对象  
41 - /** 班次时间 */  
42 - private Integer bcsj;  
43 - /** 停站时间 */  
44 - private Integer ssj;  
45 - /** 吃饭时间 */  
46 - private Integer eatsj;  
47 -  
48 - /** 停车场id */  
49 - private Integer tccid;  
50 - /** 起点站id */  
51 - private Integer qdzid;  
52 - /** 终点站id */  
53 - private Integer zdzid;  
54 -  
55 - /** 是否上行 */  
56 - private Boolean isUp;  
57 -  
58 - /** 是否分班 */  
59 - private Boolean isFb;  
60 -  
61 - /** 班次类型 */  
62 - private BcType bcType;  
63 - /** 发车时刻 */  
64 - private String fcsj;  
65 - /** 用于统计的发车时间描述(把进出场,保养,吃饭时间写在一起) */  
66 - private String fcsjDesc;  
67 -  
68 - /** 第几圈(从1开始) */  
69 - private Integer groupNo;  
70 - /** 圈里第几个班次(1或者2) */  
71 - private Integer groupBcNo;  
72 -  
73 - public Integer getBcsj() {  
74 - return bcsj;  
75 - }  
76 -  
77 - public void setBcsj(Integer bcsj) {  
78 - this.bcsj = bcsj;  
79 - }  
80 -  
81 - public Integer getSsj() {  
82 - return ssj;  
83 - }  
84 -  
85 - public void setSsj(Integer ssj) {  
86 - this.ssj = ssj;  
87 - }  
88 -  
89 - public Integer getEatsj() {  
90 - return eatsj;  
91 - }  
92 -  
93 - public void setEatsj(Integer eatsj) {  
94 - this.eatsj = eatsj;  
95 - }  
96 -  
97 - public Integer getTccid() {  
98 - return tccid;  
99 - }  
100 -  
101 - public void setTccid(Integer tccid) {  
102 - this.tccid = tccid;  
103 - }  
104 -  
105 - public Integer getQdzid() {  
106 - return qdzid;  
107 - }  
108 -  
109 - public void setQdzid(Integer qdzid) {  
110 - this.qdzid = qdzid;  
111 - }  
112 -  
113 - public Integer getZdzid() {  
114 - return zdzid;  
115 - }  
116 -  
117 - public void setZdzid(Integer zdzid) {  
118 - this.zdzid = zdzid;  
119 - }  
120 -  
121 - public BcType getBcType() {  
122 - return bcType;  
123 - }  
124 -  
125 - public void setBcType(BcType bcType) {  
126 - this.bcType = bcType;  
127 - }  
128 -  
129 - public String getFcsj() {  
130 - return fcsj;  
131 - }  
132 -  
133 - public void setFcsj(String fcsj) {  
134 - this.fcsj = fcsj;  
135 - }  
136 -  
137 - public Boolean getIsUp() {  
138 - return isUp;  
139 - }  
140 -  
141 - public void setIsUp(Boolean isUp) {  
142 - this.isUp = isUp;  
143 - }  
144 -  
145 - public Integer getGroupNo() {  
146 - return groupNo;  
147 - }  
148 -  
149 - public void setGroupNo(Integer groupNo) {  
150 - this.groupNo = groupNo;  
151 - }  
152 -  
153 - public Integer getGroupBcNo() {  
154 - return groupBcNo;  
155 - }  
156 -  
157 - public void setGroupBcNo(Integer groupBcNo) {  
158 - this.groupBcNo = groupBcNo;  
159 - }  
160 -  
161 - public String getFcsjDesc() {  
162 - return fcsjDesc;  
163 - }  
164 -  
165 - public void setFcsjDesc(String fcsjDesc) {  
166 - this.fcsjDesc = fcsjDesc;  
167 - }  
168 -  
169 - public Boolean getIsFb() {  
170 - return isFb;  
171 - }  
172 -  
173 - public void setIsFb(Boolean fb) {  
174 - isFb = fb;  
175 - }  
176 - }  
177 -  
178 - public static class LpObj { // 路牌对象  
179 - /** 路牌名字 */  
180 - private String lpname;  
181 - /** 每圈的第一个班次是否上行 */  
182 - private Boolean isUp;  
183 -  
184 - /** 第一个班次起点站路由id */  
185 - private Integer stationRouteId1;  
186 - /** 第二个班次起点站路由id */  
187 - private Integer stationRouteId2;  
188 -  
189 - /** 班次列表 */  
190 - private List<BcObj> bcObjList;  
191 - /** 总圈数 */  
192 - private Integer groupCount;  
193 -  
194 - //---------------- 路牌统计 ---------------//  
195 - /** 总里程 */  
196 - private Double zlc;  
197 - /** 营运里程 */  
198 - private Double yylc;  
199 - /** 空驶里程 */  
200 - private Double kslc;  
201 - /** 总工时 */  
202 - private Double zgs;  
203 - /** 总班次 */  
204 - private Integer zbc;  
205 - /** 营运工时 */  
206 - private Double yygs;  
207 - /** 营运班次 */  
208 - private Integer yybc;  
209 -  
210 - public String getLpname() {  
211 - return lpname;  
212 - }  
213 -  
214 - public void setLpname(String lpname) {  
215 - this.lpname = lpname;  
216 - }  
217 -  
218 - public Boolean getIsUp() {  
219 - return isUp;  
220 - }  
221 -  
222 - public void setIsUp(Boolean isUp) {  
223 - this.isUp = isUp;  
224 - }  
225 -  
226 - public List<BcObj> getBcObjList() {  
227 - return bcObjList;  
228 - }  
229 -  
230 - public void setBcObjList(List<BcObj> bcObjList) {  
231 - this.bcObjList = bcObjList;  
232 - }  
233 -  
234 - public Integer getGroupCount() {  
235 - return groupCount;  
236 - }  
237 -  
238 - public void setGroupCount(Integer groupCount) {  
239 - this.groupCount = groupCount;  
240 - }  
241 -  
242 - public Integer getStationRouteId1() {  
243 - return stationRouteId1;  
244 - }  
245 -  
246 - public void setStationRouteId1(Integer stationRouteId1) {  
247 - this.stationRouteId1 = stationRouteId1;  
248 - }  
249 -  
250 - public Integer getStationRouteId2() {  
251 - return stationRouteId2;  
252 - }  
253 -  
254 - public void setStationRouteId2(Integer stationRouteId2) {  
255 - this.stationRouteId2 = stationRouteId2;  
256 - }  
257 -  
258 - public Boolean getUp() {  
259 - return isUp;  
260 - }  
261 -  
262 - public void setUp(Boolean up) {  
263 - isUp = up;  
264 - }  
265 -  
266 - public Double getZlc() {  
267 - return zlc;  
268 - }  
269 -  
270 - public void setZlc(Double zlc) {  
271 - this.zlc = zlc;  
272 - }  
273 -  
274 - public Double getYylc() {  
275 - return yylc;  
276 - }  
277 -  
278 - public void setYylc(Double yylc) {  
279 - this.yylc = yylc;  
280 - }  
281 -  
282 - public Double getKslc() {  
283 - return kslc;  
284 - }  
285 -  
286 - public void setKslc(Double kslc) {  
287 - this.kslc = kslc;  
288 - }  
289 -  
290 - public Double getZgs() {  
291 - return zgs;  
292 - }  
293 -  
294 - public void setZgs(Double zgs) {  
295 - this.zgs = zgs;  
296 - }  
297 -  
298 - public Integer getZbc() {  
299 - return zbc;  
300 - }  
301 -  
302 - public void setZbc(Integer zbc) {  
303 - this.zbc = zbc;  
304 - }  
305 -  
306 - public Double getYygs() {  
307 - return yygs;  
308 - }  
309 -  
310 - public void setYygs(Double yygs) {  
311 - this.yygs = yygs;  
312 - }  
313 -  
314 - public Integer getYybc() {  
315 - return yybc;  
316 - }  
317 -  
318 - public void setYybc(Integer yybc) {  
319 - this.yybc = yybc;  
320 - }  
321 -  
322 - }  
323 -  
324 - public static class StatInfo { // 统计数据对象  
325 - /** 统计项目 */  
326 - private String statItem;  
327 - /** 统计值 */  
328 - private Double statValue;  
329 -  
330 - public String getStatItem() {  
331 - return statItem;  
332 - }  
333 -  
334 - public void setStatItem(String statItem) {  
335 - this.statItem = statItem;  
336 - }  
337 -  
338 - public Double getStatValue() {  
339 - return statValue;  
340 - }  
341 -  
342 - public void setStatValue(Double statValue) {  
343 - this.statValue = statValue;  
344 - }  
345 - }  
346 -  
347 - public static class DTInfos { // 所有数据信息  
348 - /** 路牌班次数据列表 */  
349 - private List<LpObj> lpObjList;  
350 - /** 统计数据列表 */  
351 - private List<StatInfo> statInfoList;  
352 -  
353 - public List<LpObj> getLpObjList() {  
354 - return lpObjList;  
355 - }  
356 -  
357 - public void setLpObjList(List<LpObj> lpObjList) {  
358 - this.lpObjList = lpObjList;  
359 - }  
360 -  
361 - public List<StatInfo> getStatInfoList() {  
362 - return statInfoList;  
363 - }  
364 -  
365 - public void setStatInfoList(List<StatInfo> statInfoList) {  
366 - this.statInfoList = statInfoList;  
367 - }  
368 - }  
369 -  
370 - //---------------------- 生成时刻表用对象(以上) ---------------------//  
371 -  
372 - /**  
373 - * 导出动态时刻表数据。  
374 - * @param dtInfos  
375 - * @return  
376 - * @throws ScheduleException  
377 - */  
378 - public DataToolsFile exportDynamicTTinfo(DTInfos dtInfos, DataToolsFileType type) throws ScheduleException;  
379 -} 1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +import com.bsth.service.schedule.exception.ScheduleException;
  4 +import com.bsth.service.schedule.utils.DataToolsFile;
  5 +import com.bsth.service.schedule.utils.DataToolsFileType;
  6 +import com.fasterxml.jackson.annotation.JsonCreator;
  7 +import com.fasterxml.jackson.annotation.JsonValue;
  8 +
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * 动态时刻表数据。
  13 + */
  14 +public interface TTinfoDetailDynamicData {
  15 +
  16 + //---------------------- 生成时刻表用对象(以下) ---------------------//
  17 + enum BcType { // 班次类型枚举
  18 + IN("in"), // 进场
  19 + OUT("out"), // 出场
  20 + BD("bd"), // 早例保
  21 + LC("lc"), // 晚例保
  22 + NORMAL("normal"); // 正常
  23 + private String flag;
  24 +
  25 + @JsonCreator
  26 + private BcType(String flag) {
  27 + this.flag = flag;
  28 + }
  29 +
  30 + @JsonValue
  31 + public String getFlag() {
  32 + return flag;
  33 + }
  34 +
  35 + public void setFlag(String flag) {
  36 + this.flag = flag;
  37 + }
  38 + }
  39 +
  40 + class BcObj { // 班次对象
  41 + /** 班次时间 */
  42 + private Integer bcsj;
  43 + /** 停站时间 */
  44 + private Integer ssj;
  45 + /** 吃饭时间 */
  46 + private Integer eatsj;
  47 +
  48 + /** 停车场id */
  49 + private Integer tccid;
  50 + /** 起点站id */
  51 + private Integer qdzid;
  52 + /** 终点站id */
  53 + private Integer zdzid;
  54 +
  55 + /** 是否上行 */
  56 + private Boolean isUp;
  57 +
  58 + /** 是否分班 */
  59 + private Boolean isFb;
  60 +
  61 + /** 班次类型 */
  62 + private BcType bcType;
  63 + /** 发车时刻 */
  64 + private String fcsj;
  65 + /** 用于统计的发车时间描述(把进出场,保养,吃饭时间写在一起) */
  66 + private String fcsjDesc;
  67 +
  68 + /** 第几圈(从1开始) */
  69 + private Integer groupNo;
  70 + /** 圈里第几个班次(1或者2) */
  71 + private Integer groupBcNo;
  72 +
  73 + public Integer getBcsj() {
  74 + return bcsj;
  75 + }
  76 +
  77 + public void setBcsj(Integer bcsj) {
  78 + this.bcsj = bcsj;
  79 + }
  80 +
  81 + public Integer getSsj() {
  82 + return ssj;
  83 + }
  84 +
  85 + public void setSsj(Integer ssj) {
  86 + this.ssj = ssj;
  87 + }
  88 +
  89 + public Integer getEatsj() {
  90 + return eatsj;
  91 + }
  92 +
  93 + public void setEatsj(Integer eatsj) {
  94 + this.eatsj = eatsj;
  95 + }
  96 +
  97 + public Integer getTccid() {
  98 + return tccid;
  99 + }
  100 +
  101 + public void setTccid(Integer tccid) {
  102 + this.tccid = tccid;
  103 + }
  104 +
  105 + public Integer getQdzid() {
  106 + return qdzid;
  107 + }
  108 +
  109 + public void setQdzid(Integer qdzid) {
  110 + this.qdzid = qdzid;
  111 + }
  112 +
  113 + public Integer getZdzid() {
  114 + return zdzid;
  115 + }
  116 +
  117 + public void setZdzid(Integer zdzid) {
  118 + this.zdzid = zdzid;
  119 + }
  120 +
  121 + public BcType getBcType() {
  122 + return bcType;
  123 + }
  124 +
  125 + public void setBcType(BcType bcType) {
  126 + this.bcType = bcType;
  127 + }
  128 +
  129 + public String getFcsj() {
  130 + return fcsj;
  131 + }
  132 +
  133 + public void setFcsj(String fcsj) {
  134 + this.fcsj = fcsj;
  135 + }
  136 +
  137 + public Boolean getIsUp() {
  138 + return isUp;
  139 + }
  140 +
  141 + public void setIsUp(Boolean isUp) {
  142 + this.isUp = isUp;
  143 + }
  144 +
  145 + public Integer getGroupNo() {
  146 + return groupNo;
  147 + }
  148 +
  149 + public void setGroupNo(Integer groupNo) {
  150 + this.groupNo = groupNo;
  151 + }
  152 +
  153 + public Integer getGroupBcNo() {
  154 + return groupBcNo;
  155 + }
  156 +
  157 + public void setGroupBcNo(Integer groupBcNo) {
  158 + this.groupBcNo = groupBcNo;
  159 + }
  160 +
  161 + public String getFcsjDesc() {
  162 + return fcsjDesc;
  163 + }
  164 +
  165 + public void setFcsjDesc(String fcsjDesc) {
  166 + this.fcsjDesc = fcsjDesc;
  167 + }
  168 +
  169 + public Boolean getIsFb() {
  170 + return isFb;
  171 + }
  172 +
  173 + public void setIsFb(Boolean fb) {
  174 + isFb = fb;
  175 + }
  176 + }
  177 +
  178 + class LpObj { // 路牌对象
  179 + /** 路牌名字 */
  180 + private String lpname;
  181 + /** 每圈的第一个班次是否上行 */
  182 + private Boolean isUp;
  183 +
  184 + /** 第一个班次起点站路由id */
  185 + private Integer stationRouteId1;
  186 + /** 第二个班次起点站路由id */
  187 + private Integer stationRouteId2;
  188 +
  189 + /** 班次列表 */
  190 + private List<BcObj> bcObjList;
  191 + /** 总圈数 */
  192 + private Integer groupCount;
  193 +
  194 + //---------------- 路牌统计 ---------------//
  195 + /** 总里程 */
  196 + private Double zlc;
  197 + /** 营运里程 */
  198 + private Double yylc;
  199 + /** 空驶里程 */
  200 + private Double kslc;
  201 + /** 总工时 */
  202 + private Double zgs;
  203 + /** 总班次 */
  204 + private Integer zbc;
  205 + /** 营运工时 */
  206 + private Double yygs;
  207 + /** 营运班次 */
  208 + private Integer yybc;
  209 +
  210 + public String getLpname() {
  211 + return lpname;
  212 + }
  213 +
  214 + public void setLpname(String lpname) {
  215 + this.lpname = lpname;
  216 + }
  217 +
  218 + public Boolean getIsUp() {
  219 + return isUp;
  220 + }
  221 +
  222 + public void setIsUp(Boolean isUp) {
  223 + this.isUp = isUp;
  224 + }
  225 +
  226 + public List<BcObj> getBcObjList() {
  227 + return bcObjList;
  228 + }
  229 +
  230 + public void setBcObjList(List<BcObj> bcObjList) {
  231 + this.bcObjList = bcObjList;
  232 + }
  233 +
  234 + public Integer getGroupCount() {
  235 + return groupCount;
  236 + }
  237 +
  238 + public void setGroupCount(Integer groupCount) {
  239 + this.groupCount = groupCount;
  240 + }
  241 +
  242 + public Integer getStationRouteId1() {
  243 + return stationRouteId1;
  244 + }
  245 +
  246 + public void setStationRouteId1(Integer stationRouteId1) {
  247 + this.stationRouteId1 = stationRouteId1;
  248 + }
  249 +
  250 + public Integer getStationRouteId2() {
  251 + return stationRouteId2;
  252 + }
  253 +
  254 + public void setStationRouteId2(Integer stationRouteId2) {
  255 + this.stationRouteId2 = stationRouteId2;
  256 + }
  257 +
  258 + public Boolean getUp() {
  259 + return isUp;
  260 + }
  261 +
  262 + public void setUp(Boolean up) {
  263 + isUp = up;
  264 + }
  265 +
  266 + public Double getZlc() {
  267 + return zlc;
  268 + }
  269 +
  270 + public void setZlc(Double zlc) {
  271 + this.zlc = zlc;
  272 + }
  273 +
  274 + public Double getYylc() {
  275 + return yylc;
  276 + }
  277 +
  278 + public void setYylc(Double yylc) {
  279 + this.yylc = yylc;
  280 + }
  281 +
  282 + public Double getKslc() {
  283 + return kslc;
  284 + }
  285 +
  286 + public void setKslc(Double kslc) {
  287 + this.kslc = kslc;
  288 + }
  289 +
  290 + public Double getZgs() {
  291 + return zgs;
  292 + }
  293 +
  294 + public void setZgs(Double zgs) {
  295 + this.zgs = zgs;
  296 + }
  297 +
  298 + public Integer getZbc() {
  299 + return zbc;
  300 + }
  301 +
  302 + public void setZbc(Integer zbc) {
  303 + this.zbc = zbc;
  304 + }
  305 +
  306 + public Double getYygs() {
  307 + return yygs;
  308 + }
  309 +
  310 + public void setYygs(Double yygs) {
  311 + this.yygs = yygs;
  312 + }
  313 +
  314 + public Integer getYybc() {
  315 + return yybc;
  316 + }
  317 +
  318 + public void setYybc(Integer yybc) {
  319 + this.yybc = yybc;
  320 + }
  321 +
  322 + }
  323 +
  324 + class StatInfo { // 统计数据对象
  325 + /** 统计项目 */
  326 + private String statItem;
  327 + /** 统计值 */
  328 + private Double statValue;
  329 +
  330 + public String getStatItem() {
  331 + return statItem;
  332 + }
  333 +
  334 + public void setStatItem(String statItem) {
  335 + this.statItem = statItem;
  336 + }
  337 +
  338 + public Double getStatValue() {
  339 + return statValue;
  340 + }
  341 +
  342 + public void setStatValue(Double statValue) {
  343 + this.statValue = statValue;
  344 + }
  345 + }
  346 +
  347 + class ParameterInfo { // 生成参数对象
  348 + /** 参数项目名称 */
  349 + private String paramItem;
  350 + /** 参数项目值 */
  351 + private String paramValue;
  352 +
  353 + public String getParamItem() {
  354 + return paramItem;
  355 + }
  356 +
  357 + public void setParamItem(String paramItem) {
  358 + this.paramItem = paramItem;
  359 + }
  360 +
  361 + public String getParamValue() {
  362 + return paramValue;
  363 + }
  364 +
  365 + public void setParamValue(String paramValue) {
  366 + this.paramValue = paramValue;
  367 + }
  368 + }
  369 +
  370 + class DTInfos { // 所有数据信息
  371 + /** 路牌班次数据列表 */
  372 + private List<LpObj> lpObjList;
  373 + /** 统计数据列表 */
  374 + private List<StatInfo> statInfoList;
  375 + /** 参数对象信息 */
  376 + private List<ParameterInfo> parameterInfoList;
  377 +
  378 + public List<LpObj> getLpObjList() {
  379 + return lpObjList;
  380 + }
  381 +
  382 + public void setLpObjList(List<LpObj> lpObjList) {
  383 + this.lpObjList = lpObjList;
  384 + }
  385 +
  386 + public List<StatInfo> getStatInfoList() {
  387 + return statInfoList;
  388 + }
  389 +
  390 + public void setStatInfoList(List<StatInfo> statInfoList) {
  391 + this.statInfoList = statInfoList;
  392 + }
  393 +
  394 + public List<ParameterInfo> getParameterInfoList() {
  395 + return parameterInfoList;
  396 + }
  397 +
  398 + public void setParameterInfoList(List<ParameterInfo> parameterInfoList) {
  399 + this.parameterInfoList = parameterInfoList;
  400 + }
  401 + }
  402 +
  403 + //---------------------- 生成时刻表用对象(以上) ---------------------//
  404 +
  405 + /**
  406 + * 导出动态时刻表数据。
  407 + * @param dtInfos
  408 + * @return
  409 + * @throws ScheduleException
  410 + */
  411 + DataToolsFile exportDynamicTTinfo(DTInfos dtInfos, DataToolsFileType type) throws ScheduleException;
  412 +}
src/main/resources/static/pages/base/line/add.html
1 <!-- 片段标题 START --> 1 <!-- 片段标题 START -->
2 <div class="page-head"> 2 <div class="page-head">
3 - <div class="page-title">  
4 - <h1>添加线路</h1>  
5 - </div> 3 + <div class="page-title">
  4 + <h1>添加线路</h1>
  5 + </div>
6 </div> 6 </div>
7 <!-- 片段标题 END --> 7 <!-- 片段标题 END -->
8 8
9 <!-- 线路信息导航栏组件 START --> 9 <!-- 线路信息导航栏组件 START -->
10 <ul class="page-breadcrumb breadcrumb"> 10 <ul class="page-breadcrumb breadcrumb">
11 - <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li>  
12 - <li><span class="active">基础信息</span> <i class="fa fa-circle"></i></li>  
13 - <li><a href="/pages/base/line/list.html" data-pjax>线路信息</a> <i class="fa fa-circle"></i></li>  
14 - <li><span class="active">添加线路</span></li> 11 + <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li>
  12 + <li><span class="active">基础信息</span> <i class="fa fa-circle"></i></li>
  13 + <li><a href="/pages/base/line/list.html" data-pjax>线路信息</a> <i class="fa fa-circle"></i></li>
  14 + <li><span class="active">添加线路</span></li>
15 </ul> 15 </ul>
16 <!-- 线路信息导航栏组件 END --> 16 <!-- 线路信息导航栏组件 END -->
17 17
18 <!-- 信息容器组件 START --> 18 <!-- 信息容器组件 START -->
19 <div class="portlet light bordered"> 19 <div class="portlet light bordered">
20 -  
21 - <!-- 信息容器组件标题 START -->  
22 - <div class="portlet-title">  
23 - <div class="caption">  
24 - <i class="icon-equalizer font-red-sunglo"></i>  
25 - <span class="caption-subject font-red-sunglo bold uppercase">添加线路</span>  
26 - </div>  
27 - </div>  
28 - <!-- 信息容器组件标题 END -->  
29 -  
30 - <!-- 表单容器组件 START -->  
31 - <div class="portlet-body form">  
32 -  
33 - <!-- line_add_form FORM START -->  
34 - <form action="/line" class="form-horizontal" id="line_add_form" >  
35 -  
36 - <!-- 表单验证错误提示组件 START -->  
37 - <div class="alert alert-danger display-hide">  
38 - <button class="close" data-close="alert"></button>  
39 - 您的输入有误,请检查下面的输入项  
40 - </div>  
41 - <!-- 表单验证错误提示组件 END -->  
42 -  
43 - <!-- 表单字段内容 START -->  
44 - <div class="form-body">  
45 -  
46 - <!-- 表单分组组件 form-group START -->  
47 - <div class="form-group">  
48 - <!-- 线路编码 (* 必填项) START -->  
49 - <div class="col-md-6">  
50 - <label class="control-label col-md-5">  
51 - <span class="required"> * </span>线路编码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
52 - </label>  
53 - <div class="col-md-4">  
54 - <input type="text" class="form-control" name="lineCode" id="lineCodeInput" placeholder="线路编码">  
55 - </div>  
56 - </div>  
57 - <!-- 线路编码 (* 必填项) END -->  
58 -  
59 - <!-- 线路名称 (* 必填项) START -->  
60 - <div class="col-md-6">  
61 - <label class="control-label col-md-5">  
62 - <span class="required"> * </span>线路名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
63 - </label>  
64 - <div class="col-md-4">  
65 - <input type="text" class="form-control" name="name" id="nameInput" placeholder="线路名称" />  
66 - <span class="help-block"> 例如 :浦东88路 </span>  
67 - </div>  
68 - </div>  
69 - <!-- 线路名称 (* 必填项) END -->  
70 - </div>  
71 - <!-- 表单分组组件 form-group END -->  
72 -  
73 - <!-- 表单分组组件 form-group START -->  
74 - <div class="form-group">  
75 - <!-- 所属公司 START 在片段线路添加JS模块里初始化select(options值查询的公司表) -->  
76 - <div class="col-md-6">  
77 - <label class="control-label col-md-5">  
78 - <span class="required"> * </span>所属公司&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
79 - </label>  
80 - <div class="col-md-4">  
81 - <select name="company" class="form-control" id="companySelect"></select>  
82 - </div>  
83 - </div>  
84 - <!-- 所属公司 END -->  
85 -  
86 - <!-- 所属分公司 START 在片段线路添加JS模块里初始化select(options值查询的公司表) -->  
87 - <div class="col-md-6">  
88 - <label class="control-label col-md-5">  
89 - <span class="required"> * </span>所属分公司&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
90 - </label>  
91 - <div class="col-md-4">  
92 - <select name="brancheCompany" class="form-control" id="brancheCompanySelect"></select>  
93 - </div>  
94 - </div>  
95 - <!-- 所属分公司 END -->  
96 - </div>  
97 - <!-- 表单分组组件 form-group END -->  
98 -  
99 - <!-- 表单分组组件 form-group START -->  
100 - <div class="form-group">  
101 - <!-- 线路等级 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->  
102 - <div class="col-md-6">  
103 - <label class="control-label col-md-5">  
104 - <span class="required"> * </span>线路等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
105 - </label>  
106 - <div class="col-md-4">  
107 - <select name="level" class="form-control" id="levelSelect">  
108 - <option value="">-- 请选择线路等级 --</option>  
109 - <option value="1">一级线路</option>  
110 - <option value="2">二级线路</option>  
111 - <option value="0">未知等级</option>  
112 - </select>  
113 - </div>  
114 - </div>  
115 - <!-- 线路等级 END -->  
116 -  
117 - <!-- 线路性质 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->  
118 - <div class="col-md-6">  
119 - <label class="control-label col-md-5">  
120 - <span class="required"> * </span>线路性质&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
121 - </label>  
122 - <div class="col-md-4">  
123 - <select name="nature" class="form-control" id="natureSelect">  
124 - <option value="">-- 请选择线路性质 --</option>  
125 - <option value="lj">路救</option>  
126 - <option value="bc">备车</option>  
127 - <option value="dbc">定班车</option>  
128 - <option value="yxl">夜宵路</option>  
129 - <option value="cgxl">常规线路</option>  
130 - <option value="gjxl">过江线路</option>  
131 - <option value="csbs">穿梭巴士</option>  
132 - <option value="tyxl">特约线路</option>  
133 - <option value="cctxl">村村通线路</option>  
134 - <option value="qt">其他</option>  
135 - </select>  
136 - </div>  
137 - </div>  
138 - <!-- 线路性质 END -->  
139 - </div>  
140 - <!-- 表单分组组件 form-group END -->  
141 -  
142 - <!-- 表单分组组件 form-group START -->  
143 - <div class="form-group">  
144 - <!-- 是否宵夜 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->  
145 - <div class="col-md-6">  
146 - <label class="control-label col-md-5">  
147 - <span class="required"> * </span>是否宵夜&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
148 - </label>  
149 - <div class="col-md-4">  
150 - <div class="md-radio-inline">  
151 - <div class="md-radio">  
152 - <input type="radio" id="radio16" name="supperLine" class="md-radiobtn" value="1" data-title="是" >  
153 - <label for="radio16">  
154 - <span></span>  
155 - <span class="check"></span>  
156 - <span class="box"></span> 是  
157 - </label>  
158 - </div>  
159 - <div class="md-radio has-error">  
160 - <input type="radio" id="radio17" name="supperLine" class="md-radiobtn" value="0" data-title="否" checked="checked">  
161 - <label for="radio17" style="color:#FFC0CB">  
162 - <span></span>  
163 - <span class="check"></span>  
164 - <span class="box"></span> 否  
165 - </label>  
166 - </div>  
167 - </div>  
168 - </div>  
169 - </div>  
170 - <!-- 是否宵夜 END -->  
171 -  
172 - <!-- 是否撤销 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->  
173 - <div class="col-md-6">  
174 - <label class="control-label col-md-5">  
175 - <span class="required"> * </span>是否撤销&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
176 - </label>  
177 - <div class="col-md-4">  
178 - <div class="md-radio-inline">  
179 - <div class="md-radio">  
180 - <input type="radio" id="radio14" name="destroy" data-title="是" class="md-radiobtn" value="1" >  
181 - <label for="radio14">  
182 - <span></span>  
183 - <span class="check"></span>  
184 - <span class="box"></span> 是  
185 - </label>  
186 - </div>  
187 - <div class="md-radio has-error">  
188 - <input type="radio" id="radio15" name="destroy" class="md-radiobtn" data-title="否" value="0" checked="checked">  
189 - <label for="radio15" style="color:#FFC0CB">  
190 - <span></span>  
191 - <span class="check"></span>  
192 - <span class="box"></span> 否  
193 - </label>  
194 - </div>  
195 - </div>  
196 - </div>  
197 - </div>  
198 - <!-- 是否撤销 START -->  
199 - </div>  
200 - <!-- 表单分组组件 form-group END -->  
201 -  
202 - <!-- 表单分组组件 form-group START -->  
203 - <div class="form-group">  
204 - <!-- 是否营运START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->  
205 - <div class="col-md-6">  
206 - <label class="control-label col-md-5">  
207 - <span class="required"> * </span>是否营运线路&nbsp;&nbsp;&nbsp;&nbsp;:  
208 - </label>  
209 - <div class="col-md-4">  
210 - <div class="md-radio-inline">  
211 - <div class="md-radio">  
212 - <input type="radio" id="radio18" name="sfyy" class="md-radiobtn" value="1" data-title="是" checked="checked" >  
213 - <label for="radio18">  
214 - <span></span>  
215 - <span class="check"></span>  
216 - <span class="box"></span> 是  
217 - </label>  
218 - </div>  
219 - <div class="md-radio has-error">  
220 - <input type="radio" id="radio19" name="sfyy" class="md-radiobtn" value="0" data-title="否" >  
221 - <label for="radio19" style="color:#FFC0CB">  
222 - <span></span>  
223 - <span class="check"></span>  
224 - <span class="box"></span> 否  
225 - </label>  
226 - </div>  
227 - </div>  
228 - </div>  
229 - </div>  
230 - <!-- 是否营运 END -->  
231 - <!-- 权证车辆数 START -->  
232 - <div class="col-md-6">  
233 - <label class="control-label col-md-5"> 权证车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
234 - <div class="col-md-4">  
235 - <input type="text" class="form-control" name="warrantCar" id="warrantCarInput" placeholder="权证车辆数">  
236 - </div>  
237 - </div>  
238 - <!-- 权证车辆数 END -->  
239 -  
240 - </div>  
241 - <!-- 表单分组组件 form-group END -->  
242 -  
243 - <!-- 表单分组组件 form-group START -->  
244 - <div class="form-group">  
245 - <!-- 起始站名称 START (该字段值会在规划线路站点操作时会去验证是否有值。如果为空,则用线路规划站点的起点站。默认使用该字段填写值) -->  
246 - <div class="col-md-6">  
247 - <label class="control-label col-md-5"><span class="required"> * </span>  
248 - 起始站名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:  
249 - </label>  
250 - <div class="col-md-4">  
251 - <input type="text" class="form-control" name="startStationName" id="startStationNameInput" placeholder="起始站名称">  
252 - <span class="help-block"> 说明 :上行起始站名称 </span>  
253 - </div>  
254 - </div>  
255 - <!-- 起始站名称 END -->  
256 -  
257 - <!-- 终点站名称 START (该字段值会在规划线路站点操作时会去验证是否有值。如果为空,则用线路规划站点的终点站。默认使用该字段填写值) -->  
258 - <div class="col-md-6">  
259 - <label class="control-label col-md-5"><span class="required"> * </span> 终点站名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
260 - <div class="col-md-4">  
261 - <input type="text" class="form-control" name="endStationName" id="endStationNameInput" placeholder="终点站名称">  
262 - <span class="help-block"> 说明 :上行终点站名称 </span>  
263 - </div>  
264 - </div>  
265 - <!-- 终点站名称 END -->  
266 - </div>  
267 - <!-- 表单分组组件 form-group END -->  
268 -  
269 - <!-- 表单分组组件 form-group START -->  
270 - <div class="form-group">  
271 - <!-- 起始站首班车时间 (* 必填项) START -->  
272 - <div class="col-md-6">  
273 - <label class="control-label col-md-5"><span class="required"> * </span> 起始站首班时间: </label>  
274 - <div class="col-md-4">  
275 - <input type="text" class="form-control" name="startStationFirstTime" id="startStationFirstTimeInput" placeholder="起始站首班车时间">  
276 - <span class="help-block"> 例如 :06:00 </span>  
277 - </div>  
278 - </div>  
279 - <!-- 起始站首班车时间 END -->  
280 -  
281 - <!-- 起始站末班车时间 (* 必填项) START -->  
282 - <div class="col-md-6">  
283 - <label class="control-label col-md-5"><span class="required"> * </span> 起始站末班时间: </label>  
284 - <div class="col-md-4">  
285 - <!-- <input type="text" class="form-control" name="StartStationEndTime" id="StartStationEndTimeInput" placeholder="起始站末班车时间 "> -->  
286 - <input type="text" class="form-control" name="startStationEndTime" id="endTimeInput" placeholder="起始站末班车时间">  
287 - <span class="help-block"> 例如 :17:00 </span>  
288 - </div>  
289 - </div>  
290 - <!-- 起始站末班车时间 END -->  
291 - </div>  
292 - <!-- 表单分组组件 form-group END -->  
293 -  
294 - <!-- 表单分组组件 form-group START -->  
295 - <div class="form-group">  
296 - <!-- 终点站首班车时间 (* 必填项) START -->  
297 - <div class="col-md-6">  
298 - <label class="control-label col-md-5"><span class="required"> * </span> 终点站首班时间: </label>  
299 - <div class="col-md-4">  
300 - <input type="text" class="form-control" name="endStationFirstTime" id="endStationFirstTimeInput" placeholder="终点站首班车时间">  
301 - <span class="help-block"> 例如 :05:00 </span>  
302 - </div>  
303 - </div>  
304 - <!-- 终点站首班车时间 END -->  
305 -  
306 - <!-- 终点站末班车时间 (* 必填项) START -->  
307 - <div class="col-md-6">  
308 - <label class="control-label col-md-5"><span class="required"> * </span> 终点站末班时间: </label>  
309 - <div class="col-md-4">  
310 - <input type="text" class="form-control" name="endStationEndTime" id="endStationEndTimeInput" placeholder="终点站末班车时间 ">  
311 - <span class="help-block"> 例如 :18:00 </span>  
312 - </div>  
313 - </div>  
314 - <!-- 终点站末班车时间 END -->  
315 - </div>  
316 - <!-- 表单分组组件 form-group END -->  
317 -  
318 - <!-- 表单分组组件 form-group START -->  
319 - <div class="form-group">  
320 - <!-- 线路规划类型 (* 必填项) START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->  
321 - <div class="col-md-6">  
322 - <label class="control-label col-md-5"><span class="required"> * </span> 线路规划类型&nbsp;&nbsp;&nbsp;:</label>  
323 - <div class="col-md-4">  
324 - <select name="linePlayType" class="form-control" id="linePlayTypeSelect">  
325 - <option value="">-- 请选择线路类型 --</option>  
326 - <option value="0">双向</option>  
327 - <option value="1">环线</option>  
328 - </select>  
329 - </div>  
330 - </div>  
331 - <!-- 线路规划类型 (* 必填项) END -->  
332 -  
333 - <!--大间隔等级 START -->  
334 - <div class="col-md-6">  
335 - <label class="control-label col-md-5"> 大间隔等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
336 - <div class="col-md-4">  
337 - <select name="spacGrade" class="form-control" id="spacGradeSelect">  
338 - <option value="">-- 请选择大间隔等级 --</option>  
339 - <option value="1">一级</option>  
340 - <option value="2">二级</option>  
341 - <option value="3">三级</option>  
342 - <option value="4">四级</option>  
343 - <option value="5">五级</option>  
344 - </select>  
345 - </div>  
346 - </div>  
347 - <!-- 大间隔等级END -->  
348 - </div>  
349 - <!-- 表单分组组件 form-group START -->  
350 -  
351 - <!-- 表单分组组件 form-group START -->  
352 - <div class="form-group">  
353 - <!-- 线路简称 START -->  
354 - <div class="col-md-6">  
355 - <label class="control-label col-md-5"> 线路简称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>  
356 - <div class="col-md-4">  
357 - <input type="text" class="form-control" name="shortName" id="shortNameInput" placeholder="线路简称">  
358 - </div>  
359 - </div>  
360 - <!-- 线路简称 END -->  
361 -  
362 - <!-- 英文名称 START -->  
363 - <div class="col-md-6">  
364 - <label class="control-label col-md-5"> 英文名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
365 - <div class="col-md-4">  
366 - <input type="text" class="form-control" name="es" id="esInput" placeholder="英文名称">  
367 - </div>  
368 - </div>  
369 - <!-- 英文名称 END -->  
370 - </div>  
371 - <!-- 表单分组组件 form-group END -->  
372 -  
373 - <!-- 表单分组组件 form-group START -->  
374 - <div class="form-group">  
375 - <!-- 上海市线路编码 START -->  
376 - <div class="col-md-6">  
377 - <label class="control-label col-md-5"> 上海市线路编码: </label>  
378 - <div class="col-md-4">  
379 - <input type="text" class="form-control" name="shanghaiLinecode" id="shanghaiLinecodeInput" placeholder="上海市线路编码">  
380 - </div>  
381 - </div>  
382 - <!-- 上海市线路编码 END -->  
383 -  
384 - <!--设备线路编码 START -->  
385 - <div class="col-md-6">  
386 - <label class="control-label col-md-5"> 设备线路编码&nbsp;&nbsp;&nbsp;: </label>  
387 - <div class="col-md-4">  
388 - <input type="text" class="form-control" name="eqLinecode" id="eqLinecodeInput" placeholder="设备线路编码">  
389 - </div>  
390 - </div>  
391 - <!--设备线路编码 END -->  
392 - </div>  
393 - <!-- 表单分组组件 form-group END -->  
394 -  
395 - <!-- 表单分组组件 form-group START -->  
396 - <div class="form-group">  
397 - <!-- 起始站调度电话 START -->  
398 - <div class="col-md-6">  
399 - <label class="control-label col-md-5"> 起始站调度电话: </label>  
400 - <div class="col-md-4">  
401 - <input type="text" class="form-control" name="startPhone" id="startPhoneInput" placeholder="起始站调度电话">  
402 - </div>  
403 - </div>  
404 - <!-- 起始站调度电话 END -->  
405 -  
406 - <!-- 终点站调度电话 START -->  
407 - <div class="col-md-6">  
408 - <label class="control-label col-md-5"> 终点站调度电话: </label>  
409 - <div class="col-md-4">  
410 - <input type="text" class="form-control" name="endPhone" id="startPhoneInput" placeholder="终点站调度电话">  
411 - </div>  
412 - </div>  
413 - <!-- 终点站调度电话 START -->  
414 - </div>  
415 - <!-- 表单分组组件 form-group END -->  
416 -  
417 - <!-- 表单分组组件 form-group START -->  
418 - <div class="form-group">  
419 - <!-- 车辆总数 START -->  
420 - <div class="col-md-6">  
421 - <label class="control-label col-md-5"> 车辆总数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
422 - <div class="col-md-4">  
423 - <input type="text" class="form-control" name="carSumNumber" id="carSumNumberInput" placeholder="车辆总数">  
424 - </div>  
425 - </div>  
426 - <!-- 车辆总数 END -->  
427 -  
428 - <!-- 普通车辆数 START -->  
429 - <div class="col-md-6">  
430 - <label class="control-label col-md-5"> 普通车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
431 - <div class="col-md-4">  
432 - <input type="text" class="form-control" name="ordCarNumber" id="ordCarNumberInput" placeholder="普通车辆数">  
433 - </div>  
434 - </div>  
435 - <!-- 普通车辆数 END -->  
436 - </div>  
437 - <!-- 表单分组组件 form-group END -->  
438 -  
439 - <!-- 表单分组组件 form-group START -->  
440 - <div class="form-group">  
441 - <!-- 空调车辆数 START -->  
442 - <div class="col-md-6">  
443 - <label class="control-label col-md-5"> 空调车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
444 - <div class="col-md-4">  
445 - <input type="text" class="form-control" name="hvacCarNumber" id="hvacCarNumberInput" placeholder="空调车辆数">  
446 - </div>  
447 - </div>  
448 - <!-- 空调车辆数 END -->  
449 -  
450 - <!-- 开辟日期 START -->  
451 - <div class="col-md-6">  
452 - <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
453 - <div class="col-md-4">  
454 - <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">  
455 - </div>  
456 - </div>  
457 - <!-- 开辟日期 END -->  
458 - </div>  
459 - <!-- 表单分组组件 form-group END -->  
460 -  
461 - <!-- 表单分组组件 form-group START -->  
462 - <div class="form-group">  
463 - <!-- 线路沿革 START -->  
464 - <div class="col-md-6">  
465 - <label class="control-label col-md-5"> 线路沿革&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
466 - <div class="col-md-4">  
467 - <textarea class="form-control" rows="3" name="history" id="historyTextarea" placeholder="线路沿革"></textarea>  
468 - <span class="help-block">日期及内容:如2014-1-1,开辟;2014-5-1,延线;</span>  
469 - </div>  
470 - </div>  
471 - <!-- 线路沿革 END -->  
472 -  
473 - <!-- 描述/说明 START -->  
474 - <div class="col-md-6">  
475 - <label class="control-label col-md-5"> 描述/说明&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>  
476 - <div class="col-md-4">  
477 - <textarea class="form-control" rows="3" name="descriptions" id="descriptionsTextarea" placeholder="描述/说明"></textarea>  
478 - </div>  
479 - </div>  
480 - <!-- 描述/说明 END -->  
481 - </div>  
482 - <!-- 表单分组组件 form-group END -->  
483 - </div>  
484 - <!-- 表单字段内容 END -->  
485 -  
486 - <!-- 表单按钮组件 START -->  
487 - <div class="form-actions">  
488 - <div class="row">  
489 - <div class="col-md-offset-5 col-md-7">  
490 - <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>  
491 - <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>  
492 - </div>  
493 - </div>  
494 - </div>  
495 - <!-- 表单按钮组件 END -->  
496 -  
497 - </form>  
498 - <!-- line_add_form FORM END -->  
499 -  
500 - </div>  
501 - <!-- 表单组件 END -->  
502 - 20 +
  21 + <!-- 信息容器组件标题 START -->
  22 + <div class="portlet-title">
  23 + <div class="caption">
  24 + <i class="icon-equalizer font-red-sunglo"></i>
  25 + <span class="caption-subject font-red-sunglo bold uppercase">添加线路</span>
  26 + </div>
  27 + </div>
  28 + <!-- 信息容器组件标题 END -->
  29 +
  30 + <!-- 表单容器组件 START -->
  31 + <div class="portlet-body form">
  32 +
  33 + <!-- line_add_form FORM START -->
  34 + <form action="/line" class="form-horizontal" id="line_add_form">
  35 +
  36 + <!-- 表单验证错误提示组件 START -->
  37 + <div class="alert alert-danger display-hide">
  38 + <button class="close" data-close="alert"></button>
  39 + 您的输入有误,请检查下面的输入项
  40 + </div>
  41 + <!-- 表单验证错误提示组件 END -->
  42 +
  43 + <!-- 表单字段内容 START -->
  44 + <div class="form-body">
  45 +
  46 + <!-- 表单分组组件 form-group START -->
  47 + <div class="form-group">
  48 + <!-- 线路编码 (* 必填项) START -->
  49 + <div class="col-md-6">
  50 + <label class="control-label col-md-5">
  51 + <span class="required"> * </span>线路编码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  52 + </label>
  53 + <div class="col-md-4">
  54 + <input type="text" class="form-control" name="lineCode" id="lineCodeInput"
  55 + placeholder="线路编码">
  56 + </div>
  57 + </div>
  58 + <!-- 线路编码 (* 必填项) END -->
  59 +
  60 + <!-- 线路名称 (* 必填项) START -->
  61 + <div class="col-md-6">
  62 + <label class="control-label col-md-5">
  63 + <span class="required"> * </span>线路名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  64 + </label>
  65 + <div class="col-md-4">
  66 + <input type="text" class="form-control" name="name" id="nameInput" placeholder="线路名称"/>
  67 + <span class="help-block"> 例如 :浦东88路 </span>
  68 + </div>
  69 + </div>
  70 + <!-- 线路名称 (* 必填项) END -->
  71 + </div>
  72 +
  73 + <!-- 表单分组组件 form-group START -->
  74 + <div class="form-group">
  75 + <!-- 所属公司 START 在片段线路添加JS模块里初始化select(options值查询的公司表) -->
  76 + <div class="col-md-6">
  77 + <label class="control-label col-md-5">
  78 + <span class="required"> * </span>所属公司&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  79 + </label>
  80 + <div class="col-md-4">
  81 + <select name="company" class="form-control" id="companySelect"></select>
  82 + </div>
  83 + </div>
  84 + <!-- 所属公司 END -->
  85 +
  86 + <!-- 所属分公司 START 在片段线路添加JS模块里初始化select(options值查询的公司表) -->
  87 + <div class="col-md-6">
  88 + <label class="control-label col-md-5">
  89 + <span class="required"> * </span>所属分公司&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  90 + </label>
  91 + <div class="col-md-4">
  92 + <select name="brancheCompany" class="form-control" id="brancheCompanySelect"></select>
  93 + </div>
  94 + </div>
  95 + <!-- 所属分公司 END -->
  96 + </div>
  97 + <!-- 表单分组组件 form-group END -->
  98 +
  99 + <!-- 表单分组组件 form-group START -->
  100 + <div class="form-group">
  101 + <!-- 线路等级 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
  102 + <div class="col-md-6">
  103 + <label class="control-label col-md-5">
  104 + <span class="required"> * </span>线路等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  105 + </label>
  106 + <div class="col-md-4">
  107 + <select name="level" class="form-control" id="levelSelect">
  108 + <option value="">-- 请选择线路等级 --</option>
  109 + <option value="1">一级线路</option>
  110 + <option value="2">二级线路</option>
  111 + <option value="0">未知等级</option>
  112 + </select>
  113 + </div>
  114 + </div>
  115 + <!-- 线路等级 END -->
  116 +
  117 + <!-- 线路性质 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
  118 + <div class="col-md-6">
  119 + <label class="control-label col-md-5">
  120 + <span class="required"> * </span>线路性质&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  121 + </label>
  122 + <div class="col-md-4">
  123 + <select name="nature" class="form-control" id="natureSelect">
  124 + <option value="">-- 请选择线路性质 --</option>
  125 + <option value="lj">路救</option>
  126 + <option value="bc">备车</option>
  127 + <option value="dbc">定班车</option>
  128 + <option value="yxl">夜宵路</option>
  129 + <option value="cgxl">常规线路</option>
  130 + <option value="gjxl">过江线路</option>
  131 + <option value="csbs">穿梭巴士</option>
  132 + <option value="tyxl">特约线路</option>
  133 + <option value="cctxl">村村通线路</option>
  134 + <option value="qt">其他</option>
  135 + </select>
  136 + </div>
  137 + </div>
  138 + <!-- 线路性质 END -->
  139 + </div>
  140 + <!-- 表单分组组件 form-group END -->
  141 +
  142 + <!-- 表单分组组件 form-group START -->
  143 + <div class="form-group">
  144 + <!-- 是否宵夜 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
  145 + <div class="col-md-6">
  146 + <label class="control-label col-md-5">
  147 + <span class="required"> * </span>是否宵夜&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  148 + </label>
  149 + <div class="col-md-4">
  150 + <div class="md-radio-inline">
  151 + <div class="md-radio">
  152 + <input type="radio" id="radio16" name="supperLine" class="md-radiobtn" value="1"
  153 + data-title="是">
  154 + <label for="radio16">
  155 + <span></span>
  156 + <span class="check"></span>
  157 + <span class="box"></span> 是
  158 + </label>
  159 + </div>
  160 + <div class="md-radio has-error">
  161 + <input type="radio" id="radio17" name="supperLine" class="md-radiobtn" value="0"
  162 + data-title="否" checked="checked">
  163 + <label for="radio17" style="color:#FFC0CB">
  164 + <span></span>
  165 + <span class="check"></span>
  166 + <span class="box"></span> 否
  167 + </label>
  168 + </div>
  169 + </div>
  170 + </div>
  171 + </div>
  172 + <!-- 是否宵夜 END -->
  173 +
  174 + <!-- 是否撤销 START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
  175 + <div class="col-md-6">
  176 + <label class="control-label col-md-5">
  177 + <span class="required"> * </span>是否撤销&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  178 + </label>
  179 + <div class="col-md-4">
  180 + <div class="md-radio-inline">
  181 + <div class="md-radio">
  182 + <input type="radio" id="radio14" name="destroy" data-title="是" class="md-radiobtn"
  183 + value="1">
  184 + <label for="radio14">
  185 + <span></span>
  186 + <span class="check"></span>
  187 + <span class="box"></span> 是
  188 + </label>
  189 + </div>
  190 + <div class="md-radio has-error">
  191 + <input type="radio" id="radio15" name="destroy" class="md-radiobtn" data-title="否"
  192 + value="0" checked="checked">
  193 + <label for="radio15" style="color:#FFC0CB">
  194 + <span></span>
  195 + <span class="check"></span>
  196 + <span class="box"></span> 否
  197 + </label>
  198 + </div>
  199 + </div>
  200 + </div>
  201 + </div>
  202 + <!-- 是否撤销 START -->
  203 + </div>
  204 + <!-- 表单分组组件 form-group END -->
  205 +
  206 + <!-- 表单分组组件 form-group START -->
  207 + <div class="form-group">
  208 + <!-- 是否营运START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
  209 + <div class="col-md-6">
  210 + <label class="control-label col-md-5">
  211 + <span class="required"> * </span>是否营运线路&nbsp;&nbsp;&nbsp;&nbsp;:
  212 + </label>
  213 + <div class="col-md-4">
  214 + <div class="md-radio-inline">
  215 + <div class="md-radio">
  216 + <input type="radio" id="radio18" name="sfyy" class="md-radiobtn" value="1"
  217 + data-title="是" checked="checked">
  218 + <label for="radio18">
  219 + <span></span>
  220 + <span class="check"></span>
  221 + <span class="box"></span> 是
  222 + </label>
  223 + </div>
  224 + <div class="md-radio has-error">
  225 + <input type="radio" id="radio19" name="sfyy" class="md-radiobtn" value="0"
  226 + data-title="否">
  227 + <label for="radio19" style="color:#FFC0CB">
  228 + <span></span>
  229 + <span class="check"></span>
  230 + <span class="box"></span> 否
  231 + </label>
  232 + </div>
  233 + </div>
  234 + </div>
  235 + </div>
  236 + <!-- 是否营运 END -->
  237 + <!-- 权证车辆数 START -->
  238 + <div class="col-md-6">
  239 + <label class="control-label col-md-5">
  240 + 权证车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  241 + <div class="col-md-4">
  242 + <input type="text" class="form-control" name="warrantCar" id="warrantCarInput"
  243 + placeholder="权证车辆数">
  244 + </div>
  245 + </div>
  246 + <!-- 权证车辆数 END -->
  247 +
  248 + </div>
  249 + <!-- 表单分组组件 form-group END -->
  250 +
  251 + <!-- 表单分组组件 form-group START -->
  252 + <div class="form-group">
  253 + <!-- 起始站名称 START (该字段值会在规划线路站点操作时会去验证是否有值。如果为空,则用线路规划站点的起点站。默认使用该字段填写值) -->
  254 + <div class="col-md-6">
  255 + <label class="control-label col-md-5"><span class="required"> * </span>
  256 + 起始站名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  257 + </label>
  258 + <div class="col-md-4">
  259 + <input type="text" class="form-control" name="startStationName" id="startStationNameInput"
  260 + placeholder="起始站名称">
  261 + <span class="help-block"> 说明 :上行起始站名称 </span>
  262 + </div>
  263 + </div>
  264 + <!-- 起始站名称 END -->
  265 +
  266 + <!-- 终点站名称 START (该字段值会在规划线路站点操作时会去验证是否有值。如果为空,则用线路规划站点的终点站。默认使用该字段填写值) -->
  267 + <div class="col-md-6">
  268 + <label class="control-label col-md-5"><span class="required"> * </span> 终点站名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  269 + </label>
  270 + <div class="col-md-4">
  271 + <input type="text" class="form-control" name="endStationName" id="endStationNameInput"
  272 + placeholder="终点站名称">
  273 + <span class="help-block"> 说明 :上行终点站名称 </span>
  274 + </div>
  275 + </div>
  276 + <!-- 终点站名称 END -->
  277 + </div>
  278 + <!-- 表单分组组件 form-group END -->
  279 +
  280 + <!-- 表单分组组件 form-group START -->
  281 + <div class="form-group">
  282 + <!-- 起始站首班车时间 (* 必填项) START -->
  283 + <div class="col-md-6">
  284 + <label class="control-label col-md-5"><span class="required"> * </span> 起始站首班时间: </label>
  285 + <div class="col-md-4">
  286 + <input type="text" class="form-control" name="startStationFirstTime"
  287 + id="startStationFirstTimeInput" placeholder="起始站首班车时间">
  288 + <span class="help-block"> 例如 :06:00 </span>
  289 + </div>
  290 + </div>
  291 + <!-- 起始站首班车时间 END -->
  292 +
  293 + <!-- 起始站末班车时间 (* 必填项) START -->
  294 + <div class="col-md-6">
  295 + <label class="control-label col-md-5"><span class="required"> * </span> 起始站末班时间: </label>
  296 + <div class="col-md-4">
  297 + <!-- <input type="text" class="form-control" name="StartStationEndTime" id="StartStationEndTimeInput" placeholder="起始站末班车时间 "> -->
  298 + <input type="text" class="form-control" name="startStationEndTime" id="endTimeInput"
  299 + placeholder="起始站末班车时间">
  300 + <span class="help-block"> 例如 :17:00 </span>
  301 + </div>
  302 + </div>
  303 + <!-- 起始站末班车时间 END -->
  304 + </div>
  305 + <!-- 表单分组组件 form-group END -->
  306 +
  307 + <!-- 表单分组组件 form-group START -->
  308 + <div class="form-group">
  309 + <!-- 终点站首班车时间 (* 必填项) START -->
  310 + <div class="col-md-6">
  311 + <label class="control-label col-md-5"><span class="required"> * </span> 终点站首班时间: </label>
  312 + <div class="col-md-4">
  313 + <input type="text" class="form-control" name="endStationFirstTime"
  314 + id="endStationFirstTimeInput" placeholder="终点站首班车时间">
  315 + <span class="help-block"> 例如 :05:00 </span>
  316 + </div>
  317 + </div>
  318 + <!-- 终点站首班车时间 END -->
  319 +
  320 + <!-- 终点站末班车时间 (* 必填项) START -->
  321 + <div class="col-md-6">
  322 + <label class="control-label col-md-5"><span class="required"> * </span> 终点站末班时间: </label>
  323 + <div class="col-md-4">
  324 + <input type="text" class="form-control" name="endStationEndTime" id="endStationEndTimeInput"
  325 + placeholder="终点站末班车时间 ">
  326 + <span class="help-block"> 例如 :18:00 </span>
  327 + </div>
  328 + </div>
  329 + <!-- 终点站末班车时间 END -->
  330 + </div>
  331 + <!-- 表单分组组件 form-group END -->
  332 +
  333 + <!-- 表单分组组件 form-group START -->
  334 + <div class="form-group">
  335 + <!-- 线路规划类型 (* 必填项) START (因为options值基本固定,所以在页面固定。【以后可以根具需求修改成使用字典表实现】) -->
  336 + <div class="col-md-6">
  337 + <label class="control-label col-md-5"><span class="required"> * </span> 线路规划类型&nbsp;&nbsp;&nbsp;:</label>
  338 + <div class="col-md-4">
  339 + <select name="linePlayType" class="form-control" id="linePlayTypeSelect">
  340 + <!--<option value="">&#45;&#45; 请选择线路类型 &#45;&#45;</option>-->
  341 + <option value="0">双向</option>
  342 + <option value="1">环线</option>
  343 + </select>
  344 + </div>
  345 + </div>
  346 + <!-- 线路规划类型 (* 必填项) END -->
  347 +
  348 + <!--车辆区域 START -->
  349 + <div class="col-md-6">
  350 + <label class="control-label col-md-5"> <span class="required"> * </span>线路区域&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  351 + </label>
  352 + <div class="col-md-4">
  353 + <select name="region" class="form-control" id="regionSelect">
  354 + <!--<option value="">&#45;&#45; 请选择车辆区域 &#45;&#45;</option>-->
  355 + <option value="0">区内</option>
  356 + <option value="1">区外</option>
  357 + </select>
  358 + </div>
  359 + </div>
  360 + <!--车辆区域END -->
  361 +
  362 + </div>
  363 + <!-- 表单分组组件 form-group START -->
  364 +
  365 +
  366 + <div class="form-group">
  367 + <!--大间隔等级 START -->
  368 + <div class="col-md-6">
  369 + <label class="control-label col-md-5"> 大间隔等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  370 + <div class="col-md-4">
  371 + <select name="spacGrade" class="form-control" id="spacGradeSelect">
  372 + <option value="">-- 请选择大间隔等级 --</option>
  373 + <option value="1">一级</option>
  374 + <option value="2">二级</option>
  375 + <option value="3">三级</option>
  376 + <option value="4">四级</option>
  377 + <option value="5">五级</option>
  378 + </select>
  379 + </div>
  380 + </div>
  381 + <!-- 大间隔等级END -->
  382 + </div>
  383 +
  384 + <!-- 表单分组组件 form-group START -->
  385 + <div class="form-group">
  386 + <!-- 线路简称 START -->
  387 + <div class="col-md-6">
  388 + <label class="control-label col-md-5"> 线路简称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
  389 + <div class="col-md-4">
  390 + <input type="text" class="form-control" name="shortName" id="shortNameInput"
  391 + placeholder="线路简称">
  392 + </div>
  393 + </div>
  394 + <!-- 线路简称 END -->
  395 +
  396 + <!-- 英文名称 START -->
  397 + <div class="col-md-6">
  398 + <label class="control-label col-md-5"> 英文名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  399 + <div class="col-md-4">
  400 + <input type="text" class="form-control" name="es" id="esInput" placeholder="英文名称">
  401 + </div>
  402 + </div>
  403 + <!-- 英文名称 END -->
  404 + </div>
  405 + <!-- 表单分组组件 form-group END -->
  406 +
  407 + <!-- 表单分组组件 form-group START -->
  408 + <div class="form-group">
  409 + <!-- 上海市线路编码 START -->
  410 + <div class="col-md-6">
  411 + <label class="control-label col-md-5"> 上海市线路编码: </label>
  412 + <div class="col-md-4">
  413 + <input type="text" class="form-control" name="shanghaiLinecode" id="shanghaiLinecodeInput"
  414 + placeholder="上海市线路编码">
  415 + </div>
  416 + </div>
  417 + <!-- 上海市线路编码 END -->
  418 +
  419 + <!--设备线路编码 START -->
  420 + <div class="col-md-6">
  421 + <label class="control-label col-md-5"> 设备线路编码&nbsp;&nbsp;&nbsp;: </label>
  422 + <div class="col-md-4">
  423 + <input type="text" class="form-control" name="eqLinecode" id="eqLinecodeInput"
  424 + placeholder="设备线路编码">
  425 + </div>
  426 + </div>
  427 + <!--设备线路编码 END -->
  428 + </div>
  429 + <!-- 表单分组组件 form-group END -->
  430 +
  431 + <!-- 表单分组组件 form-group START -->
  432 + <div class="form-group">
  433 + <!-- 起始站调度电话 START -->
  434 + <div class="col-md-6">
  435 + <label class="control-label col-md-5"> 起始站调度电话: </label>
  436 + <div class="col-md-4">
  437 + <input type="text" class="form-control" name="startPhone" id="startPhoneInput"
  438 + placeholder="起始站调度电话">
  439 + </div>
  440 + </div>
  441 + <!-- 起始站调度电话 END -->
  442 +
  443 + <!-- 终点站调度电话 START -->
  444 + <div class="col-md-6">
  445 + <label class="control-label col-md-5"> 终点站调度电话: </label>
  446 + <div class="col-md-4">
  447 + <input type="text" class="form-control" name="endPhone" id="startPhoneInput"
  448 + placeholder="终点站调度电话">
  449 + </div>
  450 + </div>
  451 + <!-- 终点站调度电话 START -->
  452 + </div>
  453 + <!-- 表单分组组件 form-group END -->
  454 +
  455 + <!-- 表单分组组件 form-group START -->
  456 + <div class="form-group">
  457 + <!-- 车辆总数 START -->
  458 + <div class="col-md-6">
  459 + <label class="control-label col-md-5"> 车辆总数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  460 + <div class="col-md-4">
  461 + <input type="text" class="form-control" name="carSumNumber" id="carSumNumberInput"
  462 + placeholder="车辆总数">
  463 + </div>
  464 + </div>
  465 + <!-- 车辆总数 END -->
  466 +
  467 + <!-- 普通车辆数 START -->
  468 + <div class="col-md-6">
  469 + <label class="control-label col-md-5"> 普通车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  470 + <div class="col-md-4">
  471 + <input type="text" class="form-control" name="ordCarNumber" id="ordCarNumberInput"
  472 + placeholder="普通车辆数">
  473 + </div>
  474 + </div>
  475 + <!-- 普通车辆数 END -->
  476 + </div>
  477 + <!-- 表单分组组件 form-group END -->
  478 +
  479 + <!-- 表单分组组件 form-group START -->
  480 + <div class="form-group">
  481 + <!-- 空调车辆数 START -->
  482 + <div class="col-md-6">
  483 + <label class="control-label col-md-5"> 空调车辆数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  484 + <div class="col-md-4">
  485 + <input type="text" class="form-control" name="hvacCarNumber" id="hvacCarNumberInput"
  486 + placeholder="空调车辆数">
  487 + </div>
  488 + </div>
  489 + <!-- 空调车辆数 END -->
  490 +
  491 + <!-- 开辟日期 START -->
  492 + <div class="col-md-6">
  493 + <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  494 + <div class="col-md-4">
  495 + <input type="text" class="form-control" name="openDate" id="openDateInput"
  496 + placeholder="开辟日期">
  497 + </div>
  498 + </div>
  499 + <!-- 开辟日期 END -->
  500 + </div>
  501 + <!-- 表单分组组件 form-group END -->
  502 +
  503 + <!-- 表单分组组件 form-group START -->
  504 + <div class="form-group">
  505 + <!-- 线路沿革 START -->
  506 + <div class="col-md-6">
  507 + <label class="control-label col-md-5"> 线路沿革&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  508 + <div class="col-md-4">
  509 + <textarea class="form-control" rows="3" name="history" id="historyTextarea"
  510 + placeholder="线路沿革"></textarea>
  511 + <span class="help-block">日期及内容:如2014-1-1,开辟;2014-5-1,延线;</span>
  512 + </div>
  513 + </div>
  514 + <!-- 线路沿革 END -->
  515 +
  516 + <!-- 描述/说明 START -->
  517 + <div class="col-md-6">
  518 + <label class="control-label col-md-5"> 描述/说明&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  519 + <div class="col-md-4">
  520 + <textarea class="form-control" rows="3" name="descriptions" id="descriptionsTextarea"
  521 + placeholder="描述/说明"></textarea>
  522 + </div>
  523 + </div>
  524 + <!-- 描述/说明 END -->
  525 + </div>
  526 + <!-- 表单分组组件 form-group END -->
  527 + </div>
  528 + <!-- 表单字段内容 END -->
  529 +
  530 + <!-- 表单按钮组件 START -->
  531 + <div class="form-actions">
  532 + <div class="row">
  533 + <div class="col-md-offset-5 col-md-7">
  534 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
  535 + <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i>
  536 + 取消</a>
  537 + </div>
  538 + </div>
  539 + </div>
  540 + <!-- 表单按钮组件 END -->
  541 +
  542 + </form>
  543 + <!-- line_add_form FORM END -->
  544 +
  545 + </div>
  546 + <!-- 表单组件 END -->
  547 +
503 </div> 548 </div>
504 <!-- 信息容器组件 END --> 549 <!-- 信息容器组件 END -->
505 550