Commit 59b6e7d404d6d20d9a04bdeae3d73c6704f11600

Authored by 徐烜
2 parents fe0bfcce 97aaff6d

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

Showing 45 changed files with 2153 additions and 299 deletions
src/main/java/com/bsth/controller/BusIntervalController.java
@@ -58,4 +58,9 @@ public class BusIntervalController { @@ -58,4 +58,9 @@ public class BusIntervalController {
58 return busIntervalService.exportWaybillMore(map); 58 return busIntervalService.exportWaybillMore(map);
59 } 59 }
60 60
  61 + @RequestMapping(value = "/onTime", method = RequestMethod.GET)
  62 + public List<Map<String,Object>> onTime(@RequestParam Map<String, Object> map){
  63 + return busIntervalService.onTime(map);
  64 + }
  65 +
61 } 66 }
src/main/java/com/bsth/controller/PersonnelController.java
@@ -36,7 +36,6 @@ public class PersonnelController extends BaseController&lt;Personnel, Integer&gt; { @@ -36,7 +36,6 @@ public class PersonnelController extends BaseController&lt;Personnel, Integer&gt; {
36 36
37 @RequestMapping(value = "/all_py", method = RequestMethod.GET) 37 @RequestMapping(value = "/all_py", method = RequestMethod.GET)
38 public List<PersionPinYin> findAll_PY(){ 38 public List<PersionPinYin> findAll_PY(){
39 - persionPinYinBuffer.refresh();  
40 return persionPinYinBuffer.getAll(); 39 return persionPinYinBuffer.getAll();
41 } 40 }
42 41
src/main/java/com/bsth/controller/forms/ExportController.java
@@ -171,6 +171,51 @@ public class ExportController { @@ -171,6 +171,51 @@ public class ExportController {
171 171
172 return resList; 172 return resList;
173 } 173 }
  174 +
  175 + // 班次车辆人员月统计
  176 + @RequestMapping(value = "/shiftuehiclemanthExport2", method = RequestMethod.GET)
  177 + public List<Map<String, Object>> shiftuehiclemanthExport2(@RequestParam Map<String, Object> map) {
  178 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
  179 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  180 + ReportUtils ee = new ReportUtils();
  181 + List<Shiftuehiclemanth> shiftuehiclemanth = formsService.shiftuehiclemanth2(map);
  182 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  183 + int i = 1;
  184 + for (Shiftuehiclemanth l : shiftuehiclemanth) {
  185 + Map<String, Object> m = new HashMap<String, Object>();
  186 + m.put("i", i);
  187 + m.put("jName", l.getjName());
  188 + m.put("jhlc", l.getJhlc());
  189 + m.put("emptMileage", l.getEmptMileage());
  190 + m.put("remMileage", l.getRemMileage());
  191 + m.put("addMileage", l.getAddMileage());
  192 + m.put("totalm", l.getTotalm());
  193 + m.put("cjbc", l.getCjbc());
  194 + m.put("ljbc", l.getLjbc());
  195 + m.put("sjbc", l.getSjbc());
  196 + resList.add(m);
  197 + i++;
  198 + }
  199 +
  200 + try {
  201 + String mouldurl = null;
  202 + if(map.get("empnames").equals("驾驶员")){
  203 + mouldurl="mould/shiftuehiclemanth.xls";
  204 + }else if(map.get("empnames").equals("售票员")){
  205 + mouldurl="mould/shiftuehiclemanthspy.xls";
  206 + }else if(map.get("empnames").equals("车辆自编号")){
  207 + mouldurl="mould/shiftuehiclemanthclzbh.xls";
  208 + }
  209 + listI.add(resList.iterator());
  210 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  211 + ee.excelReplace(listI, new Object[] { map }, path +mouldurl,
  212 + path + "export/班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  213 + } catch (Exception e) {
  214 + e.printStackTrace();
  215 + }
  216 +
  217 + return resList;
  218 + }
174 219
175 // 路单数据报表 220 // 路单数据报表
176 @RequestMapping(value = "/singledataExport", method = RequestMethod.GET) 221 @RequestMapping(value = "/singledataExport", method = RequestMethod.GET)
@@ -214,6 +259,49 @@ public class ExportController { @@ -214,6 +259,49 @@ public class ExportController {
214 259
215 return resList; 260 return resList;
216 } 261 }
  262 +
  263 + // 路单数据报表
  264 + @RequestMapping(value = "/singledataExport2", method = RequestMethod.GET)
  265 + public List<Map<String, Object>> singledataExport2(@RequestParam Map<String, Object> map) {
  266 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
  267 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  268 + ReportUtils ee = new ReportUtils();
  269 + List<Singledata> singledata = formsService.singledata2(map);
  270 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  271 + int i = 1;
  272 + for (Singledata l : singledata) {
  273 + Map<String, Object> m = new HashMap<String, Object>();
  274 + m.put("i", i);
  275 + m.put("rQ", l.getrQ());
  276 + m.put("gS", l.getgS());
  277 + m.put("xL", l.getXlmc());
  278 + m.put("clzbh", l.getClzbh());
  279 + m.put("jsy", l.getJsy());
  280 + m.put("jName", l.getjName());
  281 + m.put("sgh", l.getSgh());
  282 + m.put("sName", l.getsName());
  283 + m.put("jhlc", l.getJhlc());
  284 + m.put("emptMileage", l.getEmptMileage());
  285 + m.put("hyl", l.getHyl());
  286 + m.put("jzl", l.getJzl());
  287 + m.put("unyyyl", l.getUnyyyl());
  288 + m.put("jhjl", l.getJhjl());
  289 + resList.add(m);
  290 +
  291 + i++;
  292 + }
  293 +
  294 + try {
  295 + listI.add(resList.iterator());
  296 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  297 + ee.excelReplace(listI, new Object[] { map }, path + "mould/singledata.xls",
  298 + path + "export/路单数据" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  299 + } catch (Exception e) {
  300 + e.printStackTrace();
  301 + }
  302 +
  303 + return resList;
  304 + }
217 @RequestMapping(value = "/singledataExportTj", method = RequestMethod.GET) 305 @RequestMapping(value = "/singledataExportTj", method = RequestMethod.GET)
218 public List<Map<String, Object>> singledataExportTj(@RequestParam Map<String, Object> map) { 306 public List<Map<String, Object>> singledataExportTj(@RequestParam Map<String, Object> map) {
219 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 307 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
@@ -255,6 +343,48 @@ public class ExportController { @@ -255,6 +343,48 @@ public class ExportController {
255 343
256 return resList; 344 return resList;
257 } 345 }
  346 +
  347 + @RequestMapping(value = "/singledataExportTj2", method = RequestMethod.GET)
  348 + public List<Map<String, Object>> singledataExportTj2(@RequestParam Map<String, Object> map) {
  349 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
  350 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  351 + ReportUtils ee = new ReportUtils();
  352 + List<Singledata> singledata = formsService.singledatatj2(map);
  353 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  354 + int i = 1;
  355 + for (Singledata l : singledata) {
  356 + Map<String, Object> m = new HashMap<String, Object>();
  357 + m.put("i", i);
  358 + m.put("rQ", l.getrQ());
  359 + m.put("gS", l.getgS());
  360 + m.put("xL", l.getXlmc());
  361 + m.put("clzbh", l.getClzbh());
  362 + m.put("jsy", l.getJsy());
  363 + m.put("jName", l.getjName());
  364 + m.put("sgh", l.getSgh());
  365 + m.put("sName", l.getsName());
  366 + m.put("jhlc", l.getJhlc());
  367 + m.put("emptMileage", l.getEmptMileage());
  368 + m.put("hyl", l.getHyl());
  369 + m.put("jzl", l.getJzl());
  370 + m.put("unyyyl", l.getUnyyyl());
  371 + m.put("jhjl", l.getJhjl());
  372 + resList.add(m);
  373 +
  374 + i++;
  375 + }
  376 +
  377 + try {
  378 + listI.add(resList.iterator());
  379 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  380 + ee.excelReplace(listI, new Object[] { map }, path + "mould/singledata.xls",
  381 + path + "export/路单数据" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  382 + } catch (Exception e) {
  383 + e.printStackTrace();
  384 + }
  385 +
  386 + return resList;
  387 + }
258 // 车辆加注 388 // 车辆加注
259 @RequestMapping(value = "/vehicleloadingExport", method = RequestMethod.GET) 389 @RequestMapping(value = "/vehicleloadingExport", method = RequestMethod.GET)
260 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) { 390 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) {
src/main/java/com/bsth/controller/forms/MCY_FormsController.java
@@ -57,6 +57,13 @@ public class MCY_FormsController { @@ -57,6 +57,13 @@ public class MCY_FormsController {
57 57
58 return formsService.shiftuehiclemanth(map); 58 return formsService.shiftuehiclemanth(map);
59 } 59 }
  60 +
  61 + // 班次车辆人员月报表
  62 + @RequestMapping(value = "/shiftuehiclemanth2", method = RequestMethod.GET)
  63 + public List<Shiftuehiclemanth> shiftuehiclemanth2(@RequestParam Map<String, Object> map) {
  64 +
  65 + return formsService.shiftuehiclemanth2(map);
  66 + }
60 67
61 // 班次车辆人员日统计 68 // 班次车辆人员日统计
62 @RequestMapping(value = "/shifday", method = RequestMethod.GET) 69 @RequestMapping(value = "/shifday", method = RequestMethod.GET)
@@ -80,6 +87,13 @@ public class MCY_FormsController { @@ -80,6 +87,13 @@ public class MCY_FormsController {
80 } 87 }
81 88
82 // 路单数据 89 // 路单数据
  90 + @RequestMapping(value = "/singledata2", method = RequestMethod.GET)
  91 + public List<Singledata> singledata2(@RequestParam Map<String, Object> map) {
  92 +
  93 + return formsService.singledata2(map);
  94 + }
  95 +
  96 + // 路单数据
83 @RequestMapping(value = "/singledatanew", method = RequestMethod.GET) 97 @RequestMapping(value = "/singledatanew", method = RequestMethod.GET)
84 public List<Singledata> singledatanew(@RequestParam Map<String, Object> map) { 98 public List<Singledata> singledatanew(@RequestParam Map<String, Object> map) {
85 99
@@ -92,6 +106,12 @@ public class MCY_FormsController { @@ -92,6 +106,12 @@ public class MCY_FormsController {
92 return formsService.singledatatj(map); 106 return formsService.singledatatj(map);
93 } 107 }
94 108
  109 +
  110 + @RequestMapping(value = "/singledatatj2", method = RequestMethod.GET)
  111 + public List<Singledata> singledatatj2(@RequestParam Map<String, Object> map) {
  112 +
  113 + return formsService.singledatatj2(map);
  114 + }
95 // 车辆加注 115 // 车辆加注
96 @RequestMapping(value = "/vehicleloading", method = RequestMethod.GET) 116 @RequestMapping(value = "/vehicleloading", method = RequestMethod.GET)
97 public List<Vehicleloading> vehicleloading(@RequestParam String line, @RequestParam String data) { 117 public List<Vehicleloading> vehicleloading(@RequestParam String line, @RequestParam String data) {
src/main/java/com/bsth/controller/realcontrol/BasicDataController.java
@@ -4,6 +4,8 @@ import com.alibaba.fastjson.serializer.PropertyFilter; @@ -4,6 +4,8 @@ import com.alibaba.fastjson.serializer.PropertyFilter;
4 import com.bsth.common.ResponseCode; 4 import com.bsth.common.ResponseCode;
5 import com.bsth.data.BasicData; 5 import com.bsth.data.BasicData;
6 import com.bsth.data.Station2ParkBuffer; 6 import com.bsth.data.Station2ParkBuffer;
  7 +import com.bsth.data.pinyin.PersionPinYin;
  8 +import com.bsth.data.pinyin.PersionPinYinBuffer;
7 import com.bsth.entity.Line; 9 import com.bsth.entity.Line;
8 import com.bsth.entity.realcontrol.StationToPark; 10 import com.bsth.entity.realcontrol.StationToPark;
9 import com.google.common.base.Splitter; 11 import com.google.common.base.Splitter;
@@ -33,6 +35,9 @@ public class BasicDataController { @@ -33,6 +35,9 @@ public class BasicDataController {
33 35
34 @Autowired 36 @Autowired
35 Station2ParkBuffer station2ParkBuffer; 37 Station2ParkBuffer station2ParkBuffer;
  38 +
  39 + @Autowired
  40 + PersionPinYinBuffer persionPinYinBuffer;
36 41
37 @RequestMapping("/cars") 42 @RequestMapping("/cars")
38 public Iterable<String> findAllNbbm(Map<String, Object> map){ 43 public Iterable<String> findAllNbbm(Map<String, Object> map){
@@ -69,6 +74,11 @@ public class BasicDataController { @@ -69,6 +74,11 @@ public class BasicDataController {
69 rs.put("spy", JSON.parse(JSON.toJSONString(BasicData.spyMap.values(), filter)));*//* 74 rs.put("spy", JSON.parse(JSON.toJSONString(BasicData.spyMap.values(), filter)));*//*
70 return rs; 75 return rs;
71 }*/ 76 }*/
  77 +
  78 + @RequestMapping(value = "/all_personnel_py", method = RequestMethod.GET)
  79 + public List<PersionPinYin> findAll_PY(){
  80 + return persionPinYinBuffer.getAll();
  81 + }
72 82
73 @RequestMapping("/all_personnel") 83 @RequestMapping("/all_personnel")
74 public Map<String, String> all_personnel(){ 84 public Map<String, String> all_personnel(){
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -553,7 +553,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -553,7 +553,7 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
553 553
554 long t = System.currentTimeMillis(); 554 long t = System.currentTimeMillis();
555 if(c != 1) 555 if(c != 1)
556 - t -= (ONE_DAY + (1000 * 60 * 60 * 2)); 556 + t -= (ONE_DAY + (1000 * 60 * 60 * 6));
557 for(int i = 0; i < 3; i ++){ 557 for(int i = 0; i < 3; i ++){
558 rs.add(fmtyyyyMMdd.print(t)); 558 rs.add(fmtyyyyMMdd.print(t));
559 t -= ONE_DAY; 559 t -= ONE_DAY;
src/main/java/com/bsth/controller/traffic/VehicleInoutStopController.java
@@ -2,7 +2,10 @@ package com.bsth.controller.traffic; @@ -2,7 +2,10 @@ package com.bsth.controller.traffic;
2 2
3 import com.bsth.controller.BaseController; 3 import com.bsth.controller.BaseController;
4 import com.bsth.entity.traffic.VehicleInoutStop; 4 import com.bsth.entity.traffic.VehicleInoutStop;
  5 +import com.bsth.service.impl.TrafficManageServiceImpl;
5 import com.bsth.service.traffic.VehicleInoutStopService; 6 import com.bsth.service.traffic.VehicleInoutStopService;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
6 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.data.domain.Page; 10 import org.springframework.data.domain.Page;
8 import org.springframework.data.domain.PageImpl; 11 import org.springframework.data.domain.PageImpl;
@@ -21,6 +24,7 @@ import java.util.Map; @@ -21,6 +24,7 @@ import java.util.Map;
21 @RestController 24 @RestController
22 @RequestMapping("vehicle_stop") 25 @RequestMapping("vehicle_stop")
23 public class VehicleInoutStopController extends BaseController<VehicleInoutStop,Integer> { 26 public class VehicleInoutStopController extends BaseController<VehicleInoutStop,Integer> {
  27 + Logger logger = LoggerFactory.getLogger(TrafficManageServiceImpl.class);
24 28
25 @Autowired 29 @Autowired
26 VehicleInoutStopService vehicleInoutStopService; 30 VehicleInoutStopService vehicleInoutStopService;
@@ -36,11 +40,18 @@ public class VehicleInoutStopController extends BaseController&lt;VehicleInoutStop, @@ -36,11 +40,18 @@ public class VehicleInoutStopController extends BaseController&lt;VehicleInoutStop,
36 public Page<Map<String, Object>> getVehicleInoutStopByParam(@RequestParam Map<String, Object> map, 40 public Page<Map<String, Object>> getVehicleInoutStopByParam(@RequestParam Map<String, Object> map,
37 @RequestParam(defaultValue = "0") int page, 41 @RequestParam(defaultValue = "0") int page,
38 @RequestParam(defaultValue = "10") int size) { 42 @RequestParam(defaultValue = "10") int size) {
39 - map.put("page",page);  
40 - map.put("size",size);  
41 - long total = vehicleInoutStopService.getVehicleInoutStopCountByParam(map);  
42 - Page<Map<String, Object>> result = new PageImpl<>(vehicleInoutStopService.getVehicleInoutStopByParam(map),  
43 - new PageRequest(page, size, null),total); 43 + Page<Map<String, Object>> result = null;
  44 + try {
  45 + map.put("page",page);
  46 + map.put("size",size);
  47 + long total = vehicleInoutStopService.getVehicleInoutStopCountByParam(map);
  48 + result = new PageImpl<>(vehicleInoutStopService.getVehicleInoutStopByParam(map),
  49 + new PageRequest(page, size, null),total);
  50 + }catch (Exception e){
  51 + logger.error("车载上报停靠站查询出错:",e);
  52 + e.printStackTrace();
  53 + }
  54 +
44 return result; 55 return result;
45 } 56 }
46 } 57 }
src/main/java/com/bsth/data/directive/GatewayHttpUtils.java
@@ -46,6 +46,13 @@ public class GatewayHttpUtils { @@ -46,6 +46,13 @@ public class GatewayHttpUtils {
46 46
47 response = httpClient.execute(post); 47 response = httpClient.execute(post);
48 48
  49 + int statusCode = response.getStatusLine().getStatusCode();
  50 + if(statusCode != 200){
  51 + post.abort();
  52 + logger.error("http client status code: " + statusCode);
  53 + return code;
  54 + }
  55 +
49 JSONObject json = JSONObject.parseObject(EntityUtils.toString(response.getEntity())); 56 JSONObject json = JSONObject.parseObject(EntityUtils.toString(response.getEntity()));
50 if (null != json && json.getInteger("errCode") == 0) 57 if (null != json && json.getInteger("errCode") == 0)
51 code = 0; 58 code = 0;
src/main/java/com/bsth/data/gpsdata_v2/handlers/OutStationProcess.java
@@ -116,9 +116,9 @@ public class OutStationProcess { @@ -116,9 +116,9 @@ public class OutStationProcess {
116 LateAdjustHandle.remove(sch); 116 LateAdjustHandle.remove(sch);
117 117
118 //发车的时候,同步一下状态 118 //发车的时候,同步一下状态
119 - if (!gps.isService() && !dayOfSchedule.emptyService(sch)) 119 + /*if (!gps.isService() && !dayOfSchedule.emptyService(sch))
120 gpsStatusManager.changeServiceState(sch.getClZbh(), sch.getXlDir(), 0, "发车@系统"); 120 gpsStatusManager.changeServiceState(sch.getClZbh(), sch.getXlDir(), 0, "发车@系统");
121 - 121 +*/
122 logger.info("车辆:" + sch.getClZbh() + " 班次:" + sch.getDfsj() + "发车, 时间:" + sch.getFcsjActual()); 122 logger.info("车辆:" + sch.getClZbh() + " 班次:" + sch.getDfsj() + "发车, 时间:" + sch.getFcsjActual());
123 } 123 }
124 124
src/main/java/com/bsth/data/safe_driv/SafeDrivCenter.java
@@ -5,7 +5,6 @@ import org.joda.time.format.DateTimeFormat; @@ -5,7 +5,6 @@ import org.joda.time.format.DateTimeFormat;
5 import org.joda.time.format.DateTimeFormatter; 5 import org.joda.time.format.DateTimeFormatter;
6 import org.springframework.beans.BeansException; 6 import org.springframework.beans.BeansException;
7 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
8 -import org.springframework.boot.CommandLineRunner;  
9 import org.springframework.context.ApplicationContext; 8 import org.springframework.context.ApplicationContext;
10 import org.springframework.context.ApplicationContextAware; 9 import org.springframework.context.ApplicationContextAware;
11 import org.springframework.stereotype.Component; 10 import org.springframework.stereotype.Component;
@@ -20,7 +19,7 @@ import java.util.Set; @@ -20,7 +19,7 @@ import java.util.Set;
20 * Created by panzhao on 2017/4/6. 19 * Created by panzhao on 2017/4/6.
21 */ 20 */
22 @Component 21 @Component
23 -public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware { 22 +public class SafeDrivCenter implements ApplicationContextAware {
24 23
25 private static Set<SafeDriv> data; 24 private static Set<SafeDriv> data;
26 25
@@ -65,12 +64,6 @@ public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware @@ -65,12 +64,6 @@ public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware
65 } 64 }
66 65
67 @Override 66 @Override
68 - public void run(String... strings) throws Exception {  
69 - //定时加载安全驾驶数据  
70 - //Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 80, 7, TimeUnit.SECONDS);  
71 - }  
72 -  
73 - @Override  
74 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { 67 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
75 sendUtils = applicationContext.getBean(SendUtils.class); 68 sendUtils = applicationContext.getBean(SendUtils.class);
76 } 69 }
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java
@@ -2,6 +2,7 @@ package com.bsth.data.safe_driv; @@ -2,6 +2,7 @@ package com.bsth.data.safe_driv;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpEntity;
  5 +import org.apache.http.client.config.RequestConfig;
5 import org.apache.http.client.methods.CloseableHttpResponse; 6 import org.apache.http.client.methods.CloseableHttpResponse;
6 import org.apache.http.client.methods.HttpGet; 7 import org.apache.http.client.methods.HttpGet;
7 import org.apache.http.impl.client.CloseableHttpClient; 8 import org.apache.http.impl.client.CloseableHttpClient;
@@ -21,24 +22,43 @@ import java.util.List; @@ -21,24 +22,43 @@ import java.util.List;
21 @Component 22 @Component
22 public class SafeDrivDataLoadThread extends Thread{ 23 public class SafeDrivDataLoadThread extends Thread{
23 24
24 - private final static String url = "http://180.166.5.82:9007/bsth-safedriving/Crlcxb/realtimeInterface.do";  
25 -  
26 Logger logger = LoggerFactory.getLogger(this.getClass()); 25 Logger logger = LoggerFactory.getLogger(this.getClass());
27 26
  27 + static String url;
  28 + static CloseableHttpClient httpClient = null;
  29 + static HttpGet get;
  30 + static RequestConfig requestConfig;
  31 + static CloseableHttpResponse response;
  32 + static HttpEntity entity;
  33 + static BufferedReader br;
  34 +
  35 + static {
  36 + url = "http://180.166.5.82:9007/bsth-safedriving/Crlcxb/realtimeInterface.do";
  37 + httpClient = HttpClients.createDefault();
  38 + get = new HttpGet(url);
  39 + requestConfig = RequestConfig.custom()
  40 + .setConnectTimeout(2500).setConnectionRequestTimeout(2000)
  41 + .setSocketTimeout(2500).build();
  42 + get.setConfig(requestConfig);
  43 + }
  44 +
28 @Override 45 @Override
29 public void run() { 46 public void run() {
30 - List<SafeDriv> list = null;  
31 - CloseableHttpClient httpClient = null;  
32 - CloseableHttpResponse response = null; 47 + List<SafeDriv> list;
33 try { 48 try {
34 - httpClient = HttpClients.createDefault();  
35 - HttpGet get = new HttpGet(url);  
36 49
37 response = httpClient.execute(get); 50 response = httpClient.execute(get);
38 51
39 - HttpEntity entity = response.getEntity(); 52 + int statusCode = response.getStatusLine().getStatusCode();
  53 + if(statusCode != 200){
  54 + get.abort();
  55 + logger.error("http client status code: " + statusCode);
  56 + return;
  57 + }
  58 +
  59 + entity = response.getEntity();
40 if (null != entity) { 60 if (null != entity) {
41 - BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent())); 61 + br = new BufferedReader(new InputStreamReader(entity.getContent()));
42 StringBuffer stringBuffer = new StringBuffer(); 62 StringBuffer stringBuffer = new StringBuffer();
43 String str = ""; 63 String str = "";
44 while ((str = br.readLine()) != null) 64 while ((str = br.readLine()) != null)
@@ -46,47 +66,14 @@ public class SafeDrivDataLoadThread extends Thread{ @@ -46,47 +66,14 @@ public class SafeDrivDataLoadThread extends Thread{
46 66
47 67
48 list = JSON.parseArray(stringBuffer.toString(), SafeDriv.class); 68 list = JSON.parseArray(stringBuffer.toString(), SafeDriv.class);
49 - /**  
50 - * 模拟数据  
51 -  
52 - SafeDriv sd1 = new SafeDriv();  
53 - sd1.setYczltype("1");  
54 - sd1.setClzbh("W2B-001");  
55 - sd1.setStartime("2017-04-07 08:00:00.0");  
56 -  
57 - SafeDriv sd2 = new SafeDriv();  
58 - sd2.setYczltype("2");  
59 - sd2.setClzbh("W2B-002");  
60 - sd2.setStartime("2017-04-07 08:02:00.0");  
61 -  
62 - SafeDriv sd3 = new SafeDriv();  
63 - sd3.setYczltype("3");  
64 - sd3.setClzbh("W2B-003");  
65 - sd3.setStartime("2017-04-07 08:03:00.0");  
66 -  
67 - SafeDriv sd4 = new SafeDriv();  
68 - sd4.setYczltype("4");  
69 - sd4.setClzbh("W2B-004");  
70 - sd4.setStartime("2017-04-07 08:04:00.0");  
71 -  
72 - SafeDriv sd5 = new SafeDriv();  
73 - sd5.setYczltype("5");  
74 - sd5.setClzbh("W2B-005");  
75 - sd5.setStartime("2017-04-07 08:05:00.0");  
76 69
77 - list.add(sd1);  
78 - list.add(sd2);  
79 - list.add(sd3);  
80 - list.add(sd4);  
81 - list.add(sd5);  
82 - */  
83 for(SafeDriv sd : list){ 70 for(SafeDriv sd : list){
84 SafeDrivCenter.put(sd); 71 SafeDrivCenter.put(sd);
85 } 72 }
86 } 73 }
87 74
88 - httpClient.close();  
89 - response.close(); 75 + if (null != response)
  76 + response.close();
90 } catch (Exception e) { 77 } catch (Exception e) {
91 logger.error("安全驾驶接口报错了" , e.getMessage()); 78 logger.error("安全驾驶接口报错了" , e.getMessage());
92 } 79 }
src/main/java/com/bsth/repository/LineRepository.java
@@ -48,7 +48,7 @@ public interface LineRepository extends BaseRepository&lt;Line, Integer&gt; { @@ -48,7 +48,7 @@ public interface LineRepository extends BaseRepository&lt;Line, Integer&gt; {
48 @Query(value = " SELECT l FROM Line l where l.company like ?1 and l.brancheCompany like ?2 and l.lineCode like ?3") 48 @Query(value = " SELECT l FROM Line l where l.company like ?1 and l.brancheCompany like ?2 and l.lineCode like ?3")
49 public List<Line> findLineBygsBm(String gsBm, String fgsBm, String line); 49 public List<Line> findLineBygsBm(String gsBm, String fgsBm, String line);
50 50
51 - @Query("SELECT L FROM Line L where L.destroy=0") 51 + @Query("SELECT L FROM Line L where L.destroy=0 and L.remove !=1")
52 List<Line> findAllService(); 52 List<Line> findAllService();
53 53
54 54
src/main/java/com/bsth/service/BusIntervalService.java
@@ -21,4 +21,6 @@ public interface BusIntervalService { @@ -21,4 +21,6 @@ public interface BusIntervalService {
21 List<Map<String, Object>> correctStatis(Map<String, Object> map); 21 List<Map<String, Object>> correctStatis(Map<String, Object> map);
22 22
23 Map<String, Object> exportWaybillMore(Map<String, Object> map); 23 Map<String, Object> exportWaybillMore(Map<String, Object> map);
  24 +
  25 + List<Map<String, Object>> onTime(Map<String, Object> map);
24 } 26 }
src/main/java/com/bsth/service/forms/FormsService.java
@@ -24,14 +24,19 @@ public interface FormsService { @@ -24,14 +24,19 @@ public interface FormsService {
24 public List<Linepasswengerflow> linepasswengerflow(Map<String, Object> map); 24 public List<Linepasswengerflow> linepasswengerflow(Map<String, Object> map);
25 25
26 public List<Shiftuehiclemanth> shiftuehiclemanth(Map<String, Object> map); 26 public List<Shiftuehiclemanth> shiftuehiclemanth(Map<String, Object> map);
  27 + public List<Shiftuehiclemanth> shiftuehiclemanth2(Map<String, Object> map);
27 28
28 public List<Changetochange> changetochange(Map<String, Object> map); 29 public List<Changetochange> changetochange(Map<String, Object> map);
29 30
30 public List<Shifday> shifday(Map<String, Object> map); 31 public List<Shifday> shifday(Map<String, Object> map);
31 32
32 public List<Singledata> singledata(Map<String, Object> map); 33 public List<Singledata> singledata(Map<String, Object> map);
  34 + public List<Singledata> singledata2(Map<String, Object> map);
  35 +
33 public List<Singledata> singledatanew(Map<String, Object> map); 36 public List<Singledata> singledatanew(Map<String, Object> map);
34 public List<Singledata> singledatatj(Map<String, Object> map); 37 public List<Singledata> singledatatj(Map<String, Object> map);
  38 + public List<Singledata> singledatatj2(Map<String, Object> map);
  39 +
35 40
36 public List<Vehicleloading> vehicleloading(String line,String data); 41 public List<Vehicleloading> vehicleloading(String line,String data);
37 42
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -360,7 +360,7 @@ public class FormsServiceImpl implements FormsService { @@ -360,7 +360,7 @@ public class FormsServiceImpl implements FormsService {
360 int ljbc=culateMileageService.culateLjbc(list_s,""); 360 int ljbc=culateMileageService.culateLjbc(list_s,"");
361 int sjbc=culateMileageService.culateSjbc(list_s, ""); 361 int sjbc=culateMileageService.culateSjbc(list_s, "");
362 double cjgl=culateMileageService.culateLbgl(sList); 362 double cjgl=culateMileageService.culateLbgl(sList);
363 - double zjgl=culateMileageService.culateLjgl(list_s); 363 +// double zjgl=culateMileageService.culateLjgl(list_s);
364 d.setEmptMileage(String.valueOf(zksgl));//空驶公里 364 d.setEmptMileage(String.valueOf(zksgl));//空驶公里
365 d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里 365 d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里
366 d.setSjbc(String.valueOf(sjbc+ljbc)); 366 d.setSjbc(String.valueOf(sjbc+ljbc));
@@ -368,7 +368,7 @@ public class FormsServiceImpl implements FormsService { @@ -368,7 +368,7 @@ public class FormsServiceImpl implements FormsService {
368 d.setCjbc(String.valueOf(cjbc));//抽检班次 368 d.setCjbc(String.valueOf(cjbc));//抽检班次
369 d.setLjbc(String.valueOf(ljbc));//增加班次 369 d.setLjbc(String.valueOf(ljbc));//增加班次
370 d.setRemMileage(String.valueOf(cjgl));//抽检里程 370 d.setRemMileage(String.valueOf(cjgl));//抽检里程
371 - d.setAddMileage(String.valueOf(zjgl));//增加里程 371 + d.setAddMileage(String.valueOf(ljgl));//增加里程
372 372
373 } 373 }
374 374
@@ -403,6 +403,191 @@ public class FormsServiceImpl implements FormsService { @@ -403,6 +403,191 @@ public class FormsServiceImpl implements FormsService {
403 403
404 return list; 404 return list;
405 } 405 }
  406 +
  407 +
  408 + @Override
  409 + public List<Shiftuehiclemanth> shiftuehiclemanth2(Map<String, Object> map) {
  410 + final String empnames=map.get("empnames").toString();
  411 + String gsdmManth="";
  412 + String fgsdmManth="";
  413 + if(map.containsKey("gsdmManth")){
  414 + gsdmManth=map.get("gsdmManth").toString();
  415 + }
  416 + if(map.containsKey("fgsdmManth")){
  417 + fgsdmManth=map.get("fgsdmManth").toString();
  418 + }
  419 + String sql ="select ";
  420 + if(empnames.equals("驾驶员")){
  421 + sql += " r.j_name,r.j_gh ";
  422 + }else if(empnames.equals("售票员")){
  423 + sql += " r.s_gh,r.s_name";
  424 + }else{
  425 + sql += " r.cl_zbh";
  426 + }
  427 + sql += " from bsth_c_s_sp_info_real r where "
  428 + + " r.schedule_date_str >= '" + map.get("startDate").toString() + "' "
  429 + + " and r.schedule_date_str <='" + map.get("endDate").toString() + "' ";
  430 + if(map.get("line")!=null&&!map.get("line").equals("")){
  431 + sql+=" and r.xl_bm='"+ map.get("line").toString() + "' ";
  432 + }
  433 + sql+=" and r.gs_bm like'%"+gsdmManth+"%' and r.fgs_bm like'%"+fgsdmManth+"%'";
  434 +
  435 + if(empnames.equals("驾驶员")){
  436 + sql += " GROUP BY "
  437 + + "r.j_name,r.j_gh";
  438 + }else if(empnames.equals("售票员")){
  439 + sql+="and r.s_name is not null AND r.s_name !='' GROUP BY r.s_gh,r.s_name";
  440 + }else{
  441 + sql += " GROUP BY r.cl_zbh";
  442 + }
  443 +
  444 + List<Shiftuehiclemanth> list = jdbcTemplate.query(sql, new RowMapper<Shiftuehiclemanth>() {
  445 +
  446 + @Override
  447 + public Shiftuehiclemanth mapRow(ResultSet arg0, int arg1) throws SQLException {
  448 + Shiftuehiclemanth shif = new Shiftuehiclemanth();
  449 + if(empnames.equals("驾驶员")){
  450 + shif.setjName(arg0.getString("j_name")+"/"+arg0.getString("j_gh"));
  451 + shif.setJgh(arg0.getString("j_gh"));
  452 + }else if(empnames.equals("售票员")){
  453 + shif.setjName(arg0.getString("s_name")+"/"+arg0.getString("s_gh"));
  454 + shif.setSgh(arg0.getString("s_gh")==null ? "":arg0.getString("s_gh"));
  455 + }else if(empnames.equals("车辆自编号")){
  456 + shif.setjName(arg0.getString("cl_zbh"));
  457 + }
  458 +// shif.setJgh(arg0.getString("j_gh"));
  459 +// shif.setZbh(arg0.getString("cl_zbh"));
  460 +// shif.setjName(arg0.getString("s_gh")==null ? "":arg0.getString("s_gh"));
  461 + return shif;
  462 + }
  463 + });
  464 +
  465 + List<ScheduleRealInfo> sList;
  466 + List<ScheduleRealInfo> list_s;
  467 + List<ScheduleRealInfo> lists=scheduleRealInfoRepository.scheduleByDateAndLineYbb(map.get("line").toString(), map.get("startDate").toString(), map.get("endDate").toString());
  468 + for(int i=0;i<list.size();i++){
  469 + sList =new ArrayList<ScheduleRealInfo>();
  470 + list_s =new ArrayList<ScheduleRealInfo>();
  471 + Shiftuehiclemanth d=list.get(i);
  472 + for (int j = 0; j < lists.size(); j++) {
  473 + ScheduleRealInfo s=lists.get(j);
  474 +// if(d.getJgh().equals(s.getjGh()) && d.getZbh().equals(s.getClZbh())){
  475 +// sList.add(s);
  476 +// }
  477 + if(empnames.equals("驾驶员")){
  478 + if(d.getJgh().equals(s.getjGh())){
  479 + sList.add(s);
  480 + Set<ChildTaskPlan> cts = s.getcTasks();
  481 + if(cts != null && cts.size() > 0){
  482 + list_s.add(s);
  483 + }else{
  484 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  485 + list_s.add(s);
  486 + }
  487 + }
  488 +
  489 + }
  490 + }else if(empnames.equals("售票员")){
  491 + String sgh=s.getsGh()==null?"":s.getsGh();
  492 + if(d.getSgh().equals(sgh)){
  493 + sList.add(s);
  494 + Set<ChildTaskPlan> cts = s.getcTasks();
  495 + if(cts != null && cts.size() > 0){
  496 + list_s.add(s);
  497 + }else{
  498 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  499 + list_s.add(s);
  500 + }
  501 + }
  502 + }
  503 + }else if(empnames.equals("车辆自编号")){
  504 + if(d.getjName().equals(s.getClZbh())){
  505 + sList.add(s);
  506 + Set<ChildTaskPlan> cts = s.getcTasks();
  507 + if(cts != null && cts.size() > 0){
  508 + list_s.add(s);
  509 + }else{
  510 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  511 + list_s.add(s);
  512 + }
  513 + }
  514 + }
  515 + }
  516 +
  517 + }
  518 +
  519 + if(empnames.equals("售票员")){
  520 + double zksgl=culateMileageService.culateSjfyylc_spy(list_s);
  521 + double ljgl=culateMileageService.culateLjgl_spy(list_s);
  522 + double sjgl=culateMileageService.culateSjgl_spy(list_s);
  523 + double zyygl=Arith.add(ljgl, sjgl);
  524 + int cjbc=culateMileageService.culateLbbc(sList);
  525 + int ljbc=culateMileageService.culateLjbc(list_s,"");
  526 + int sjbc=culateMileageService.culateSjbc(list_s, "");
  527 + double cjgl=culateMileageService.culateLbgl(sList);
  528 +// double zjgl=culateMileageService.culateLjgl(list_s);
  529 + d.setEmptMileage(String.valueOf(zksgl));//空驶公里
  530 + d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里
  531 + d.setSjbc(String.valueOf(sjbc+ljbc));
  532 + d.setJhlc(String.valueOf(zyygl));//运营里程
  533 + d.setCjbc(String.valueOf(cjbc));//抽检班次
  534 + d.setLjbc(String.valueOf(ljbc));//增加班次
  535 + d.setRemMileage(String.valueOf(cjgl));//抽检里程
  536 + d.setAddMileage(String.valueOf(ljgl));//增加里程
  537 + }else{
  538 + double ksgl=culateMileageService.culateKsgl(list_s);
  539 + double jccgl=culateMileageService.culateJccgl(list_s);
  540 + double zksgl=Arith.add(ksgl, jccgl);
  541 + double ljgl=culateMileageService.culateLjgl(list_s);
  542 + double sjgl=culateMileageService.culateSjgl(list_s);
  543 + double zyygl=Arith.add(ljgl, sjgl);
  544 + int cjbc=culateMileageService.culateLbbc(sList);
  545 + int ljbc=culateMileageService.culateLjbc(list_s,"");
  546 + int sjbc=culateMileageService.culateSjbc(list_s, "");
  547 + double cjgl=culateMileageService.culateLbgl(sList);
  548 +// double zjgl=culateMileageService.culateLjgl(list_s);
  549 + d.setEmptMileage(String.valueOf(zksgl));//空驶公里
  550 + d.setTotalm(String.valueOf(Arith.add(zksgl, zyygl)));//总公里
  551 + d.setSjbc(String.valueOf(sjbc+ljbc));
  552 + d.setJhlc(String.valueOf(zyygl));//运营里程
  553 + d.setCjbc(String.valueOf(cjbc));//抽检班次
  554 + d.setLjbc(String.valueOf(ljbc));//增加班次
  555 + d.setRemMileage(String.valueOf(cjgl));//抽检里程
  556 + d.setAddMileage(String.valueOf(ljgl));//增加里程
  557 + }
  558 + }
  559 +
  560 + Shiftuehiclemanth shif = new Shiftuehiclemanth();
  561 + shif.setjName("汇总合计");
  562 + BigDecimal yylc = new BigDecimal("0.0");
  563 + BigDecimal kslc = new BigDecimal("0.0");
  564 + BigDecimal cjlc = new BigDecimal("0.0");
  565 + BigDecimal zjlc = new BigDecimal("0.0");
  566 + BigDecimal zlc = new BigDecimal("0.0");
  567 + int cjbc = 0, zjbc = 0, sjbc = 0;
  568 + for(Shiftuehiclemanth s : list){
  569 + yylc = yylc.add(new BigDecimal(s.getJhlc()));
  570 + kslc = kslc.add(new BigDecimal(s.getEmptMileage()));
  571 + cjlc = cjlc.add(new BigDecimal(s.getRemMileage()));
  572 + zjlc = zjlc.add(new BigDecimal(s.getAddMileage()));
  573 + zlc = zlc.add(new BigDecimal(s.getTotalm()));
  574 + cjbc += Integer.valueOf(s.getCjbc());
  575 + zjbc += Integer.valueOf(s.getLjbc());
  576 + sjbc += Integer.valueOf(s.getSjbc());
  577 + }
  578 + shif.setJhlc(yylc.toString());
  579 + shif.setEmptMileage(kslc.toString());
  580 + shif.setRemMileage(cjlc.toString());
  581 + shif.setAddMileage(zjlc.toString());
  582 + shif.setTotalm(zlc.toString());
  583 + shif.setCjbc("" + cjbc);
  584 + shif.setLjbc("" + zjbc);
  585 + shif.setSjbc("" + sjbc);
  586 + if(list.size() > 0)
  587 + list.add(shif);
  588 +
  589 + return list;
  590 + }
406 591
407 // 班次车辆人员日统计 592 // 班次车辆人员日统计
408 @Override 593 @Override
@@ -603,38 +788,290 @@ public class FormsServiceImpl implements FormsService { @@ -603,38 +788,290 @@ public class FormsServiceImpl implements FormsService {
603 sql += " and gs= '"+gs+"' and fgs= '"+fgs+"'"; 788 sql += " and gs= '"+gs+"' and fgs= '"+fgs+"'";
604 } 789 }
605 790
606 - sql +=" order by rq";  
607 - List<Changetochange> list = jdbcTemplate.query(sql, new RowMapper<Changetochange>() {  
608 -  
609 -  
610 - @Override  
611 - public Changetochange mapRow(ResultSet arg0, int arg1) throws SQLException {  
612 - Changetochange chan = new Changetochange();  
613 - chan.setRq(arg0.getString("rq"));  
614 - chan.setGs(BasicData.businessCodeNameMap.get(arg0.getString("gs")));  
615 - chan.setFgs(BasicData.businessFgsCodeNameMap.get(arg0.getString("fgs")+"_"+arg0.getString("gs")));  
616 - chan.setXl(BasicData.lineCode2NameMap.get(arg0.getString("xl")));  
617 - chan.setLp(arg0.getString("lp"));  
618 - chan.setFssj(arg0.getString("fssj"));  
619 - chan.setXgsj(arg0.getString("xgsj"));  
620 - chan.setPcch(arg0.getString("pcch"));  
621 - chan.setPcry(arg0.getString("pcry"));  
622 - chan.setJhch(arg0.getString("jhch"));  
623 - chan.setJhgh(arg0.getString("jhgh"));  
624 - chan.setSjch(arg0.getString("sjch"));  
625 - chan.setSjgh(arg0.getString("sjgh"));  
626 - chan.setYy(arg0.getString("yy"));  
627 - chan.setXgr(arg0.getString("xgr"));  
628 - return chan;  
629 - }  
630 - });  
631 - return list;  
632 - }  
633 -  
634 -  
635 - // 路单数据 791 + sql +=" order by rq";
  792 + List<Changetochange> list = jdbcTemplate.query(sql, new RowMapper<Changetochange>() {
  793 +
  794 +
  795 + @Override
  796 + public Changetochange mapRow(ResultSet arg0, int arg1) throws SQLException {
  797 + Changetochange chan = new Changetochange();
  798 + chan.setRq(arg0.getString("rq"));
  799 + chan.setGs(BasicData.businessCodeNameMap.get(arg0.getString("gs")));
  800 + chan.setFgs(BasicData.businessFgsCodeNameMap.get(arg0.getString("fgs")+"_"+arg0.getString("gs")));
  801 + chan.setXl(BasicData.lineCode2NameMap.get(arg0.getString("xl")));
  802 + chan.setLp(arg0.getString("lp"));
  803 + chan.setFssj(arg0.getString("fssj"));
  804 + chan.setXgsj(arg0.getString("xgsj"));
  805 + chan.setPcch(arg0.getString("pcch"));
  806 + chan.setPcry(arg0.getString("pcry"));
  807 + chan.setJhch(arg0.getString("jhch"));
  808 + chan.setJhgh(arg0.getString("jhgh"));
  809 + chan.setSjch(arg0.getString("sjch"));
  810 + chan.setSjgh(arg0.getString("sjgh"));
  811 + chan.setYy(arg0.getString("yy"));
  812 + chan.setXgr(arg0.getString("xgr"));
  813 + return chan;
  814 + }
  815 + });
  816 + return list;
  817 + }
  818 +
  819 +
  820 + // 路单数据
  821 + @Override
  822 + public List<Singledata> singledatatj(Map<String, Object> map) {
  823 + String gsdm="";
  824 + if(map.get("gsdmSing")!=null){
  825 + gsdm=map.get("gsdmSing").toString();
  826 + }
  827 + String fgsdm="";
  828 + if(map.get("fgsdmSing")!=null){
  829 + fgsdm=map.get("fgsdmSing").toString();
  830 + }
  831 +
  832 + String tjtype=map.get("tjtype").toString();
  833 + String xlbm=map.get("line").toString().trim();
  834 + startDate = map.get("startDate").toString();
  835 +
  836 + List<ScheduleRealInfo> listReal=new ArrayList<ScheduleRealInfo>();
  837 + if(xlbm.equals("")){
  838 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineByGs_(gsdm, fgsdm, startDate);
  839 + }else{
  840 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineQp(xlbm, startDate);
  841 + }
  842 + List<Singledata> list=new ArrayList<Singledata>();
  843 + List<Singledata> list_=new ArrayList<Singledata>();
  844 + if(tjtype.equals("jsy")){
  845 + //油统计
  846 + String sql="select r.j_gh, r.xl_bm,r.cl_zbh,r.j_name"
  847 + + " from bsth_c_s_sp_info_real r where "
  848 + + " r.schedule_date_str = '"+startDate+"'";
  849 + if(xlbm.equals("")){
  850 + sql +="and r.gs_bm='"+gsdm+"' "
  851 + + " and r.fgs_bm='"+fgsdm+"'";
  852 + }else{
  853 + sql += " and r.xl_bm = '"+xlbm+"'";
  854 + }
  855 + sql += " group by r.j_gh,r.xl_bm,r.cl_zbh,r.j_name order by r.xl_bm,r.cl_zbh";
  856 + list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
  857 + @Override
  858 + public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
  859 + Singledata sin = new Singledata();
  860 + sin.setxL(arg0.getString("xl_bm"));
  861 + sin.setJsy(arg0.getString("j_gh"));
  862 + sin.setjName(arg0.getString("j_name"));
  863 + sin.setClzbh(arg0.getString("cl_zbh"));
  864 + return sin;
  865 + }
  866 + });
  867 + String linesql="";
  868 + if(!xlbm.equals("")){
  869 + linesql +=" and xlbm ='"+xlbm+"' ";
  870 + }
  871 + String nysql="SELECT id,xlbm,nbbm, jsy,jzl as jzl,yh as yh,sh as sh FROM bsth_c_ylb "
  872 + + " WHERE rq = '"+startDate+"'"
  873 + + " AND ssgsdm = '"+gsdm+"' AND fgsdm = '"+fgsdm+"'" +linesql
  874 + + " union"
  875 + + " SELECT id,xlbm,nbbm,jsy,cdl as jzl,hd as yh,sh as sh FROM bsth_c_dlb"
  876 + + " WHERE rq = '"+startDate+"'"
  877 + + " AND ssgsdm = '"+gsdm+"' AND fgsdm = '"+fgsdm+"'"+linesql;
  878 + List<Singledata> listNy = jdbcTemplate.query(nysql, new RowMapper<Singledata>() {
  879 + @Override
  880 + public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
  881 + Singledata sin = new Singledata();
  882 + sin.setxL(arg0.getString("xlbm"));
  883 + sin.setJsy(arg0.getString("jsy"));
  884 + sin.setClzbh(arg0.getString("nbbm"));
  885 + sin.setJzl(arg0.getString("jzl"));
  886 + sin.setHyl(arg0.getString("yh"));
  887 + sin.setUnyyyl(arg0.getString("sh"));
  888 + return sin;
  889 + }
  890 + });
  891 + //统计油,电表中手动添加的或者有加注没里程的数据
  892 + for (int i = 0; i < listNy.size(); i++) {
  893 + Singledata sin_=listNy.get(i);
  894 + String jsy=sin_.getJsy();
  895 + String line=sin_.getxL();
  896 + String clzbh=sin_.getClzbh();
  897 + boolean fages=true;
  898 + for (int j = 0; j < list.size(); j++) {
  899 + Singledata sin=list.get(j);
  900 + String jsy_=sin.getJsy();
  901 + String line_=sin.getxL();
  902 + String clzbh_=sin.getClzbh();
  903 + if(jsy.equals(jsy_)
  904 + &&line.equals(line_)
  905 + &&clzbh.equals(clzbh_)){
  906 + fages=false;
  907 + }
  908 + }
  909 + if(fages){
  910 + Singledata s=new Singledata();
  911 + s.setJsy(jsy);
  912 + s.setjName(BasicData.allPerson.get(gsdm+"-"+jsy));
  913 + s.setClzbh(clzbh);
  914 + s.setSgh("");
  915 + s.setsName("");
  916 + s.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm));
  917 + s.setxL(line);
  918 + s.setXlmc(BasicData.lineCode2NameMap.get(line));
  919 + s.setJzl(sin_.getJzl());
  920 + s.setHyl(sin_.getHyl());
  921 + s.setUnyyyl(sin_.getUnyyyl());
  922 + s.setJhlc("0.0");
  923 + s.setEmptMileage("0.0");
  924 + s.setJhjl("0.0");
  925 + s.setrQ(startDate);
  926 + list_.add(s);
  927 + }
  928 + }
  929 + for (int i= 0; i < list.size(); i++) {
  930 + Singledata sin=list.get(i);
  931 + String jsy=sin.getJsy();
  932 + String line=sin.getxL();
  933 + String clzbh=sin.getClzbh();
  934 + double jzl=0.0;
  935 + double yh=0.0;
  936 + double sh=0.0;
  937 + for (int j = 0; j < listNy.size(); j++) {
  938 + Singledata y=listNy.get(j);
  939 + if(y.getJsy().equals(jsy)
  940 + &&y.getClzbh().equals(clzbh)
  941 + &&y.getxL().equals(line)){
  942 + jzl=Arith.add(jzl, y.getJzl());
  943 + yh=Arith.add(yh, y.getHyl());
  944 + sh=Arith.add(sh, y.getUnyyyl());
  945 + }
  946 + }
  947 + sin.setHyl(String.valueOf(yh));
  948 + sin.setJzl(String.valueOf(jzl));
  949 + sin.setUnyyyl(String.valueOf(sh));
  950 +
  951 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  952 + List<ScheduleRealInfo> newList_=new ArrayList<ScheduleRealInfo>();
  953 + for (int j = 0; j < listReal.size(); j++) {
  954 + ScheduleRealInfo s=listReal.get(j);
  955 + if(s.getjGh().equals(jsy)
  956 + && s.getClZbh().equals(clzbh)
  957 + &&s.getXlBm().equals(line)){
  958 + newList.add(s);
  959 + Set<ChildTaskPlan> cts = s.getcTasks();
  960 + if(cts != null && cts.size() > 0){
  961 + newList_.add(s);
  962 + }else{
  963 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  964 + newList_.add(s);
  965 + }
  966 + }
  967 + }
  968 + }
  969 + double jhgl=culateMileageService.culateJhgl(newList);
  970 + double jhjcc=culateMileageService.culateJhJccgl(newList);
  971 + double yygl=culateMileageService.culateSjgl(newList_);
  972 + double ljgl=culateMileageService.culateLjgl(newList_);
  973 + double ksgl=culateMileageService.culateKsgl(newList_);
  974 + double jcgl=culateMileageService.culateJccgl(newList_);
  975 +
  976 + double zyygl=Arith.add(yygl, ljgl);
  977 + double zksgl=Arith.add(ksgl, jcgl);
  978 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  979 + sin.setEmptMileage(String.valueOf(zksgl));
  980 + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
  981 + sin.setXlmc(BasicData.lineCode2NameMap.get(line));
  982 + sin.setrQ(startDate);
  983 +// sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy));
  984 + sin.setSgh("");
  985 + sin.setsName("");
  986 + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm));
  987 + list_.add(sin);
  988 +
  989 + }
  990 + Collections.sort(list_,new SingledataByXlbm());
  991 + }else{
  992 + String sql="select r.s_gh,r.s_name, "
  993 + + " r.xl_bm,r.cl_zbh,r.gs_bm,r.fgs_bm"
  994 + + " from bsth_c_s_sp_info_real r where "
  995 + + " r.schedule_date_str = '"+startDate+"'"
  996 + + " and r.s_gh !='' and r.s_gh is not null ";
  997 + if(xlbm.equals("")){
  998 + sql +="and r.gs_bm='"+gsdm+"' "
  999 + + " and r.fgs_bm='"+fgsdm+"'";
  1000 + }else{
  1001 + sql += " and r.xl_bm = '"+xlbm+"'";
  1002 + }
  1003 + sql += " group by r.s_gh,r.s_name,"
  1004 + + " r.xl_bm,r.cl_zbh,r.gs_bm,r.fgs_bm order by r.xl_bm,r.cl_zbh";
  1005 +
  1006 + list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
  1007 + //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1008 + @Override
  1009 + public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
  1010 + Singledata sin = new Singledata();
  1011 + sin.setrQ(startDate);
  1012 + sin.setxL(arg0.getString("xl_bm"));
  1013 + sin.setClzbh(arg0.getString("cl_zbh"));
  1014 + sin.setSgh(arg0.getString("s_gh"));
  1015 + sin.setsName(arg0.getString("s_name"));
  1016 + return sin;
  1017 + }
  1018 + });
  1019 +
  1020 + for (int i = 0; i < list.size(); i++) {
  1021 + Singledata sin=list.get(i);
  1022 + String jsy=sin.getSgh();
  1023 + String line=sin.getxL();
  1024 + String clzbh=sin.getClzbh();
  1025 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  1026 + List<ScheduleRealInfo> newList_=new ArrayList<ScheduleRealInfo>();
  1027 +
  1028 + for (int j = 0; j < listReal.size(); j++) {
  1029 + ScheduleRealInfo s=listReal.get(j);
  1030 + if(s.getsGh().equals(jsy) && s.getClZbh().equals(clzbh)
  1031 + &&s.getXlBm().equals(line)){
  1032 + newList.add(s);
  1033 + Set<ChildTaskPlan> cts = s.getcTasks();
  1034 + if(cts != null && cts.size() > 0){
  1035 + newList_.add(s);
  1036 + }else{
  1037 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  1038 + newList_.add(s);
  1039 + }
  1040 + }
  1041 + }
  1042 + }
  1043 + double jhgl=culateMileageService.culateJhgl(newList);
  1044 + double jhjcc=culateMileageService.culateJhJccgl(newList);
  1045 + double yygl=culateMileageService.culateSjgl(newList_);
  1046 + double ljgl=culateMileageService.culateLjgl(newList_);
  1047 + double ksgl=culateMileageService.culateKsgl(newList_);
  1048 + double jcgl=culateMileageService.culateJccgl(newList_);
  1049 +
  1050 + double zyygl=Arith.add(yygl, ljgl);
  1051 + double zksgl=Arith.add(ksgl, jcgl);
  1052 +
  1053 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  1054 +
  1055 + sin.setEmptMileage(String.valueOf(zksgl));
  1056 + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
  1057 + sin.setXlmc(BasicData.lineCode2NameMap.get(line));
  1058 + sin.setClzbh(clzbh);
  1059 + sin.setJsy("");
  1060 + sin.setjName("");
  1061 + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm));
  1062 + sin.setHyl("");
  1063 + sin.setJzl("");
  1064 + sin.setUnyyyl("");
  1065 + list_.add(sin);
  1066 + }
  1067 + Collections.sort(list_,new SingledataByXlbm());
  1068 + }
  1069 + return list_;
  1070 + }
  1071 +
  1072 +
636 @Override 1073 @Override
637 - public List<Singledata> singledatatj(Map<String, Object> map) { 1074 + public List<Singledata> singledatatj2(Map<String, Object> map) {
638 String gsdm=""; 1075 String gsdm="";
639 if(map.get("gsdmSing")!=null){ 1076 if(map.get("gsdmSing")!=null){
640 gsdm=map.get("gsdmSing").toString(); 1077 gsdm=map.get("gsdmSing").toString();
@@ -857,14 +1294,17 @@ public class FormsServiceImpl implements FormsService { @@ -857,14 +1294,17 @@ public class FormsServiceImpl implements FormsService {
857 } 1294 }
858 double jhgl=culateMileageService.culateJhgl(newList); 1295 double jhgl=culateMileageService.culateJhgl(newList);
859 double jhjcc=culateMileageService.culateJhJccgl(newList); 1296 double jhjcc=culateMileageService.culateJhJccgl(newList);
860 - double yygl=culateMileageService.culateSjgl(newList_);  
861 - double ljgl=culateMileageService.culateLjgl(newList_);  
862 - double ksgl=culateMileageService.culateKsgl(newList_);  
863 - double jcgl=culateMileageService.culateJccgl(newList_); 1297 +// double yygl=culateMileageService.culateSjgl(newList_);
  1298 +// double ljgl=culateMileageService.culateLjgl(newList_);
  1299 +// double ksgl=culateMileageService.culateKsgl(newList_);
  1300 +// double jcgl=culateMileageService.culateJccgl(newList_);
864 1301
865 - double zyygl=Arith.add(yygl, ljgl);  
866 - double zksgl=Arith.add(ksgl, jcgl); 1302 + double yygl=culateMileageService.culateSjgl_spy(newList_);
  1303 + double ljgl=culateMileageService.culateLjgl_spy(newList_);
867 1304
  1305 + double zyygl=Arith.add(yygl, ljgl);
  1306 +// double zksgl=Arith.add(ksgl, jcgl);
  1307 + double zksgl=culateMileageService.culateSjfyylc_spy(newList_);
868 sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl))); 1308 sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
869 1309
870 sin.setEmptMileage(String.valueOf(zksgl)); 1310 sin.setEmptMileage(String.valueOf(zksgl));
@@ -1562,6 +2002,284 @@ public class FormsServiceImpl implements FormsService { @@ -1562,6 +2002,284 @@ public class FormsServiceImpl implements FormsService {
1562 } 2002 }
1563 return list; 2003 return list;
1564 } 2004 }
  2005 +
  2006 +
  2007 + // 路单数据
  2008 + @Override
  2009 + public List<Singledata> singledata2(Map<String, Object> map) {
  2010 +
  2011 + String gsdm="";
  2012 + if(map.get("gsdmSing")!=null){
  2013 + gsdm=map.get("gsdmSing").toString();
  2014 + }
  2015 + String fgsdm="";
  2016 + if(map.get("fgsdmSing")!=null){
  2017 + fgsdm=map.get("fgsdmSing").toString();
  2018 + }
  2019 +
  2020 + String tjtype=map.get("tjtype").toString();
  2021 + String xlbm=map.get("line").toString().trim();
  2022 + startDate = map.get("startDate").toString();
  2023 +
  2024 + List<ScheduleRealInfo> listReal=new ArrayList<ScheduleRealInfo>();
  2025 + if(xlbm.equals("")){
  2026 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineByGs_(gsdm, fgsdm, startDate);
  2027 + }else{
  2028 + listReal=scheduleRealInfoRepository.scheduleByDateAndLineQp(xlbm, startDate);
  2029 + }
  2030 + List<Singledata> list=new ArrayList<Singledata>();
  2031 + List<Singledata> listY=new ArrayList<Singledata>();
  2032 + List<Singledata> listD=new ArrayList<Singledata>();
  2033 +
  2034 + if(tjtype.equals("jsy")){
  2035 + DecimalFormat df = new DecimalFormat("0.00");
  2036 + List<Ylb> listYlb= ylbRepository.obtainYl(startDate, gsdm, fgsdm, xlbm, "", "xlbm");
  2037 + for (int i = 0; i < listYlb.size(); i++) {
  2038 + Ylb y=listYlb.get(i);
  2039 + boolean fage=false;
  2040 + if(xlbm.equals("")){
  2041 + fage=true;
  2042 + }else{
  2043 + if(xlbm.equals(y.getXlbm())){
  2044 + fage=true;
  2045 + }
  2046 + }
  2047 + if(fage){
  2048 + String jsy=y.getJsy();
  2049 + String line=y.getXlbm();
  2050 + String clzbh=y.getNbbm();
  2051 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  2052 + List<ScheduleRealInfo> newList_=new ArrayList<ScheduleRealInfo>();
  2053 + for (int j = 0; j < listReal.size(); j++) {
  2054 + ScheduleRealInfo s=listReal.get(j);
  2055 + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)
  2056 + &&s.getXlBm().equals(line)){
  2057 + if(y.getLp()==null){
  2058 + newList.add(s);
  2059 + Set<ChildTaskPlan> cts = s.getcTasks();
  2060 + if(cts != null && cts.size() > 0){
  2061 + newList_.add(s);
  2062 + }else{
  2063 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  2064 + newList_.add(s);
  2065 + }
  2066 + }
  2067 + }else{
  2068 + if(y.getLp().equals(s.getLpName())){
  2069 + newList.add(s);
  2070 + Set<ChildTaskPlan> cts = s.getcTasks();
  2071 + if(cts != null && cts.size() > 0){
  2072 + newList_.add(s);
  2073 + }else{
  2074 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  2075 + newList_.add(s);
  2076 + }
  2077 + }
  2078 + }
  2079 + }
  2080 + }
  2081 + }
  2082 + double jhgl=culateMileageService.culateJhgl(newList);
  2083 + double jhjcc=culateMileageService.culateJhJccgl(newList);
  2084 + double yygl=culateMileageService.culateSjgl(newList_);
  2085 + double ljgl=culateMileageService.culateLjgl(newList_);
  2086 + double ksgl=culateMileageService.culateKsgl(newList_);
  2087 + double jcgl=culateMileageService.culateJccgl(newList_);
  2088 +
  2089 + double zyygl=Arith.add(yygl, ljgl);
  2090 + double zksgl=Arith.add(ksgl, jcgl);
  2091 +
  2092 + Singledata sin=new Singledata();
  2093 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  2094 +
  2095 + sin.setEmptMileage(String.valueOf(zksgl));
  2096 + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
  2097 + sin.setxL(y.getXlbm());
  2098 + sin.setXlmc(BasicData.lineCode2NameMap.get(y.getXlbm()));
  2099 + sin.setClzbh(clzbh);
  2100 + sin.setJsy(jsy);
  2101 + sin.setrQ(startDate);
  2102 + if(newList.size()>0){
  2103 + sin.setjName(newList.get(0).getjName());
  2104 + }else{
  2105 + sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy));
  2106 + }
  2107 + sin.setSgh("");
  2108 + sin.setsName("");
  2109 + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm));
  2110 + sin.setHyl(df.format(y.getYh()));
  2111 + sin.setJzl(df.format(y.getJzl()));
  2112 + sin.setUnyyyl(df.format(y.getSh()));
  2113 + listY.add(sin);
  2114 + }
  2115 +
  2116 + }
  2117 +
  2118 + List<Dlb> listDlb= dlbRepository.obtainDl(startDate, gsdm, fgsdm, xlbm, "", "xlbm");
  2119 + for (int i = 0; i < listDlb.size(); i++) {
  2120 + Dlb y=listDlb.get(i);
  2121 + boolean fage=false;
  2122 + if(xlbm.equals("")){
  2123 + fage=true;
  2124 + }else{
  2125 + if(xlbm.equals(y.getXlbm())){
  2126 + fage=true;
  2127 + }
  2128 + }
  2129 + if(fage){
  2130 + String jsy=y.getJsy();
  2131 + String line=y.getXlbm();
  2132 + String clzbh=y.getNbbm();
  2133 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  2134 + List<ScheduleRealInfo> newList_=new ArrayList<ScheduleRealInfo>();
  2135 + for (int j = 0; j < listReal.size(); j++) {
  2136 + ScheduleRealInfo s=listReal.get(j);
  2137 + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)
  2138 + &&s.getXlBm().equals(line)){
  2139 + if(y.getLp()==null){
  2140 + newList.add(s);
  2141 + Set<ChildTaskPlan> cts = s.getcTasks();
  2142 + if(cts != null && cts.size() > 0){
  2143 + newList_.add(s);
  2144 + }else{
  2145 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  2146 + newList_.add(s);
  2147 + }
  2148 + }
  2149 + }else{
  2150 + if(y.getLp().equals(s.getLpName())){
  2151 + newList.add(s);
  2152 + Set<ChildTaskPlan> cts = s.getcTasks();
  2153 + if(cts != null && cts.size() > 0){
  2154 + newList_.add(s);
  2155 + }else{
  2156 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  2157 + newList_.add(s);
  2158 + }
  2159 + }
  2160 + }
  2161 + }
  2162 + }
  2163 + }
  2164 + double jhgl=culateMileageService.culateJhgl(newList);
  2165 + double jhjcc=culateMileageService.culateJhJccgl(newList);
  2166 + double yygl=culateMileageService.culateSjgl(newList_);
  2167 + double ljgl=culateMileageService.culateLjgl(newList_);
  2168 + double ksgl=culateMileageService.culateKsgl(newList_);
  2169 + double jcgl=culateMileageService.culateJccgl(newList_);
  2170 +
  2171 + double zyygl=Arith.add(yygl, ljgl);
  2172 + double zksgl=Arith.add(ksgl, jcgl);
  2173 +
  2174 + Singledata sin=new Singledata();
  2175 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  2176 +
  2177 + sin.setEmptMileage(String.valueOf(zksgl));
  2178 + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
  2179 + sin.setxL(y.getXlbm());
  2180 + sin.setXlmc(BasicData.lineCode2NameMap.get(y.getXlbm()));
  2181 + sin.setClzbh(clzbh);
  2182 + sin.setJsy(jsy);
  2183 + sin.setrQ(startDate);
  2184 + if(newList.size()>0){
  2185 + sin.setjName(newList.get(0).getjName());
  2186 + }else{
  2187 + sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy));
  2188 + }
  2189 + sin.setSgh("");
  2190 + sin.setsName("");
  2191 + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm));
  2192 + sin.setHyl(df.format(y.getHd()));
  2193 + sin.setJzl(df.format(y.getCdl()));
  2194 + sin.setUnyyyl(df.format(y.getSh()));
  2195 + listD.add(sin);
  2196 + }
  2197 + }
  2198 +
  2199 + Collections.sort(listY,new SingledataByXlbm());
  2200 + Collections.sort(listD,new SingledataByXlbm());
  2201 + list.addAll(listY);
  2202 + list.addAll(listD);
  2203 + }else{
  2204 + String sql="select r.s_gh,r.s_name, "
  2205 + + " r.xl_bm,r.cl_zbh,r.gs_bm,r.fgs_bm"
  2206 + + " from bsth_c_s_sp_info_real r where "
  2207 + + " r.schedule_date_str = '"+startDate+"'"
  2208 + + " and r.s_gh !='' and r.s_gh is not null ";
  2209 + if(xlbm.equals("")){
  2210 + sql +="and r.gs_bm='"+gsdm+"' "
  2211 + + " and r.fgs_bm='"+fgsdm+"'";
  2212 + }else{
  2213 + sql += " and r.xl_bm = '"+xlbm+"'";
  2214 + }
  2215 + sql += " group by r.s_gh,r.s_name,"
  2216 + + " r.xl_bm,r.cl_zbh,r.gs_bm,r.fgs_bm order by r.xl_bm,r.cl_zbh";
  2217 +
  2218 + list = jdbcTemplate.query(sql, new RowMapper<Singledata>() {
  2219 + //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  2220 + @Override
  2221 + public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
  2222 + Singledata sin = new Singledata();
  2223 + sin.setrQ(startDate);
  2224 + sin.setxL(arg0.getString("xl_bm"));
  2225 + sin.setClzbh(arg0.getString("cl_zbh"));
  2226 + sin.setSgh(arg0.getString("s_gh"));
  2227 + sin.setsName(arg0.getString("s_name"));
  2228 + return sin;
  2229 + }
  2230 + });
  2231 +
  2232 + for (int i = 0; i < list.size(); i++) {
  2233 + Singledata sin=list.get(i);
  2234 + String jsy=sin.getSgh();
  2235 + String line=sin.getxL();
  2236 + String clzbh=sin.getClzbh();
  2237 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
  2238 + List<ScheduleRealInfo> newList_=new ArrayList<ScheduleRealInfo>();
  2239 +
  2240 + for (int j = 0; j < listReal.size(); j++) {
  2241 + ScheduleRealInfo s=listReal.get(j);
  2242 + if(s.getsGh().equals(jsy) && s.getClZbh().equals(clzbh)
  2243 + &&s.getXlBm().equals(line)){
  2244 + newList.add(s);
  2245 + Set<ChildTaskPlan> cts = s.getcTasks();
  2246 + if(cts != null && cts.size() > 0){
  2247 + newList_.add(s);
  2248 + }else{
  2249 + if(s.getZdsjActual()!=null && s.getFcsjActual()!=null){
  2250 + newList_.add(s);
  2251 + }
  2252 + }
  2253 + }
  2254 + }
  2255 + double jhgl=culateMileageService.culateJhgl(newList);
  2256 + double jhjcc=culateMileageService.culateJhJccgl(newList);
  2257 +// double yygl=culateMileageService.culateSjgl(newList_);
  2258 +// double ljgl=culateMileageService.culateLjgl(newList_);
  2259 +// double ksgl=culateMileageService.culateKsgl(newList_);
  2260 +// double jcgl=culateMileageService.culateJccgl(newList_);
  2261 + double yygl=culateMileageService.culateSjgl_spy(newList_);
  2262 + double ljgl=culateMileageService.culateLjgl_spy(newList_);
  2263 + double zyygl=Arith.add(yygl, ljgl);
  2264 +// double zksgl=Arith.add(ksgl, jcgl);
  2265 + double zksgl=culateMileageService.culateSjfyylc_spy(newList_);
  2266 + sin.setJhlc(String.valueOf(Arith.add(zyygl,zksgl)));
  2267 +
  2268 + sin.setEmptMileage(String.valueOf(zksgl));
  2269 + sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
  2270 + sin.setXlmc(BasicData.lineCode2NameMap.get(line));
  2271 + sin.setClzbh(clzbh);
  2272 + sin.setJsy("");
  2273 + sin.setjName("");
  2274 + sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm));
  2275 + sin.setHyl("");
  2276 + sin.setJzl("");
  2277 + sin.setUnyyyl("");
  2278 + }
  2279 + Collections.sort(list,new SingledataByXlbm());
  2280 + }
  2281 + return list;
  2282 + }
1565 2283
1566 // 运营服务阶段报表 2284 // 运营服务阶段报表
1567 @Override 2285 @Override
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
@@ -188,25 +188,9 @@ public class GpsServiceImpl implements GpsService { @@ -188,25 +188,9 @@ public class GpsServiceImpl implements GpsService {
188 String nbbm = nbbmArray[0]; 188 String nbbm = nbbmArray[0];
189 189
190 List<DeviceChange> dcs = findDeviceChangeLogs(nbbm, et, st); 190 List<DeviceChange> dcs = findDeviceChangeLogs(nbbm, et, st);
191 - //没有设备变更记录,则参考车辆信息上的设备号  
192 - if(null == dcs || dcs.size() == 0){  
193 - DeviceChange dc = new DeviceChange();  
194 - dc.setNbbm(nbbm);  
195 - dc.setDevice(BasicData.deviceId2NbbmMap.inverse().get(nbbm));  
196 - dc.setSt(st);  
197 - dc.setEt(et);  
198 - dc.setType(1);  
199 -  
200 - dcs.add(dc);  
201 - }  
202 -  
203 - //bsth_c_gps_info  
204 - String tableName = "bsth_c_gps_info";  
205 - String sYear = fmtyyyy.print(st),  
206 - currYear = fmtyyyy.print(System.currentTimeMillis());  
207 191
208 - if(!sYear.equals(currYear))  
209 - tableName += "_" + sYear; 192 + //按年分表
  193 + String tableName = "bsth_c_gps_info_" + fmtyyyy.print(st);
210 194
211 StringBuilder sql = new StringBuilder(""); 195 StringBuilder sql = new StringBuilder("");
212 long t1,t2; 196 long t1,t2;
@@ -217,11 +201,11 @@ public class GpsServiceImpl implements GpsService { @@ -217,11 +201,11 @@ public class GpsServiceImpl implements GpsService {
217 dc = dcs.get(i); 201 dc = dcs.get(i);
218 if(dc.getSt() > st) 202 if(dc.getSt() > st)
219 t1 = dc.getSt(); 203 t1 = dc.getSt();
220 - if(dc.getEt() < et) 204 + if(dc.getEt() < et && dc.getEt()!=0)
221 t2 = dc.getEt(); 205 t2 = dc.getEt();
222 206
223 sql.append("select DEVICE_ID,LON,LAT,TS,INOUT_STOP,SERVICE_STATE ,STOP_NO,DIRECTION,LINE_ID,SPEED_GPS,SECTION_CODE from "+tableName+" where days_year in ("+sDayOfYear+","+eDayOfYear+") " + 207 sql.append("select DEVICE_ID,LON,LAT,TS,INOUT_STOP,SERVICE_STATE ,STOP_NO,DIRECTION,LINE_ID,SPEED_GPS,SECTION_CODE from "+tableName+" where days_year in ("+sDayOfYear+","+eDayOfYear+") " +
224 - " and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < "+t2+" "); 208 + " and device_id='"+dc.getDevice()+"' and ts >= "+t1+" and ts <= "+t2+" ");
225 209
226 if(i == len - 1) 210 if(i == len - 1)
227 sql.append(" ORDER BY device_id,ts,stop_no"); 211 sql.append(" ORDER BY device_id,ts,stop_no");
@@ -329,17 +313,10 @@ public class GpsServiceImpl implements GpsService { @@ -329,17 +313,10 @@ public class GpsServiceImpl implements GpsService {
329 try{ 313 try{
330 314
331 //JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); 315 //JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource());
332 - dcs = jdbcTemplate.query("select cl_zbh as nbbm,new_device_no as device,old_device_no as old_device,UNIX_TIMESTAMP(qyrq) * 1000 as st from bsth_c_car_device where cl_zbh='"+nbbm+"'" 316 + dcs = jdbcTemplate.query("select cl_zbh as nbbm,new_device_no as device,old_device_no as old_device,UNIX_TIMESTAMP(qyrq) * 1000 as st from bsth_c_car_device where is_cancel=0 and cl_zbh='"+nbbm+"' order by qyrq"
333 , BeanPropertyRowMapper.newInstance(DeviceChange.class)); 317 , BeanPropertyRowMapper.newInstance(DeviceChange.class));
334 318
335 319
336 - Collections.sort(dcs, new Comparator<DeviceChange>() {  
337 - @Override  
338 - public int compare(DeviceChange d1, DeviceChange d2) {  
339 - return (int) (d1.getSt() - d2.getSt());  
340 - }  
341 - });  
342 -  
343 //生成一条初始记录 320 //生成一条初始记录
344 if(dcs.size() > 0){ 321 if(dcs.size() > 0){
345 DeviceChange first = dcs.get(0); 322 DeviceChange first = dcs.get(0);
@@ -365,6 +342,18 @@ public class GpsServiceImpl implements GpsService { @@ -365,6 +342,18 @@ public class GpsServiceImpl implements GpsService {
365 342
366 rs.add(dc); 343 rs.add(dc);
367 } 344 }
  345 +
  346 + //没有设备变更记录,则参考车辆信息上的设备号
  347 + if(null == rs || rs.size() == 0){
  348 + DeviceChange dc = new DeviceChange();
  349 + dc.setNbbm(nbbm);
  350 + dc.setDevice(BasicData.deviceId2NbbmMap.inverse().get(nbbm));
  351 + dc.setSt(st);
  352 + dc.setEt(et);
  353 + dc.setType(1);
  354 +
  355 + rs.add(dc);
  356 + }
368 }catch (Exception e){ 357 }catch (Exception e){
369 logger.error("", e); 358 logger.error("", e);
370 } 359 }
@@ -380,11 +369,14 @@ public class GpsServiceImpl implements GpsService { @@ -380,11 +369,14 @@ public class GpsServiceImpl implements GpsService {
380 369
381 // weeks_year 分区字段 370 // weeks_year 分区字段
382 Calendar sCal = Calendar.getInstance(); 371 Calendar sCal = Calendar.getInstance();
383 - sCal.setTime(new Date(st * 1000)); 372 + sCal.setTime(new Date(st));
384 int sWeekOfYear = sCal.get(Calendar.WEEK_OF_YEAR); 373 int sWeekOfYear = sCal.get(Calendar.WEEK_OF_YEAR);
385 Calendar eCal = Calendar.getInstance(); 374 Calendar eCal = Calendar.getInstance();
386 - eCal.setTime(new Date(et * 1000));  
387 - int eWeekOfYear = eCal.get(Calendar.DAY_OF_YEAR); 375 + eCal.setTime(new Date(et));
  376 + int eWeekOfYear = eCal.get(Calendar.WEEK_OF_YEAR);
  377 +
  378 + //按年分表
  379 + String tableName = "bsth_c_arrival_info_" + fmtyyyy.print(st);
388 380
389 StringBuilder sql = new StringBuilder(""); 381 StringBuilder sql = new StringBuilder("");
390 long t1,t2; 382 long t1,t2;
@@ -398,8 +390,8 @@ public class GpsServiceImpl implements GpsService { @@ -398,8 +390,8 @@ public class GpsServiceImpl implements GpsService {
398 if(dc.getEt() < et) 390 if(dc.getEt() < et)
399 t2 = dc.getEt(); 391 t2 = dc.getEt();
400 392
401 - sql.append("SELECT DEVICE_ID,LINE_ID as LINE_CODE,STOP_NO,TS,UP_DOWN,IN_OUT,WEEKS_YEAR,CREATE_DATE FROM bsth_c_arrival_info " +  
402 - " where weeks_year in ("+sWeekOfYear+", "+eWeekOfYear+") and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < " + t2); 393 + sql.append("SELECT DEVICE_ID,LINE_ID as LINE_CODE,STOP_NO,TS,UP_DOWN,IN_OUT,WEEKS_YEAR,CREATE_DATE FROM " + tableName +
  394 + " where weeks_year in ("+sWeekOfYear+", "+eWeekOfYear+") and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < " + t2);
403 395
404 if(i == len - 1) 396 if(i == len - 1)
405 sql.append(" ORDER BY device_id,ts,stop_no "); 397 sql.append(" ORDER BY device_id,ts,stop_no ");
@@ -407,6 +399,7 @@ public class GpsServiceImpl implements GpsService { @@ -407,6 +399,7 @@ public class GpsServiceImpl implements GpsService {
407 sql.append(" UNION "); 399 sql.append(" UNION ");
408 } 400 }
409 401
  402 + logger.info("arrivl sql : " + sql.toString());
410 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); 403 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource());
411 List<ArrivalEntity> list = jdbcTemplate_ms.query(sql.toString(), BeanPropertyRowMapper.newInstance(ArrivalEntity.class)); 404 List<ArrivalEntity> list = jdbcTemplate_ms.query(sql.toString(), BeanPropertyRowMapper.newInstance(ArrivalEntity.class));
412 405
@@ -887,27 +880,84 @@ public class GpsServiceImpl implements GpsService { @@ -887,27 +880,84 @@ public class GpsServiceImpl implements GpsService {
887 880
888 @Override 881 @Override
889 public List<GpsSpeed_DTO> speeds(String nbbm, long st, long et) { 882 public List<GpsSpeed_DTO> speeds(String nbbm, long st, long et) {
890 - String deviceId = BasicData.deviceId2NbbmMap.inverse().get(nbbm);  
891 - String sql = "select vehicle, line, up_down, lon, lat, speed,timestamp from bsth_c_speeding where vehicle=? and timestamp>? and timestamp<?"; 883 + st = st * 1000;
  884 + et = et * 1000;
  885 + //按周分区
  886 + Calendar sCal = Calendar.getInstance();
  887 + sCal.setTime(new Date(st));
  888 + int sWeekYear = sCal.get(Calendar.WEEK_OF_YEAR);
  889 + Calendar eCal = Calendar.getInstance();
  890 + eCal.setTime(new Date(et));
  891 + int eWeekYear = eCal.get(Calendar.WEEK_OF_YEAR);
  892 +
  893 + //按年分表
  894 + String tableName = "bsth_c_speeding_" + fmtyyyy.print(st);
  895 +
  896 + List<DeviceChange> dcs = findDeviceChangeLogs(nbbm, et, st);
  897 + StringBuilder sql = new StringBuilder("");
  898 + long t1,t2;
  899 + DeviceChange dc;
  900 + for(int i = 0,len=dcs.size(); i < len; i++){
  901 + t1 = st;
  902 + t2 = et;
  903 + dc = dcs.get(i);
  904 + if(dc.getSt() > st)
  905 + t1 = dc.getSt();
  906 + if(dc.getEt() < et && dc.getEt()!=0)
  907 + t2 = dc.getEt();
  908 +
  909 + sql.append(" select vehicle, line, up_down, lon, lat, speed,timestamp from "+tableName+" where " +
  910 + " weeks_year in ("+sWeekYear+", "+eWeekYear+") and vehicle='"+dc.getDevice()+"' and timestamp>="+t1+" and timestamp<= " + t2);
  911 +
  912 + if(i == len - 1)
  913 + sql.append(" ORDER BY vehicle,timestamp");
  914 + else
  915 + sql.append(" UNION ");
  916 + }
892 917
893 - return GpsSpeed_DTO.create(new JdbcTemplate(DBUtils_MS.getDataSource()).queryForList(sql, deviceId, st * 1000, et * 1000)); 918 + logger.info("speed sql : " + sql.toString());
  919 + return GpsSpeed_DTO.create(new JdbcTemplate(DBUtils_MS.getDataSource()).queryForList(sql.toString()));
894 } 920 }
895 921
896 @Override 922 @Override
897 public List<GpsOutbound_DTO> outbounds(String nbbm, long st, long et) { 923 public List<GpsOutbound_DTO> outbounds(String nbbm, long st, long et) {
898 - /**  
899 - * 如果 st 和 et 跨了周分区,也只查询st 分区的数据。  
900 - */  
901 st = st * 1000; 924 st = st * 1000;
902 et = et * 1000; 925 et = et * 1000;
903 //按周分区 926 //按周分区
904 - Calendar weekCal = Calendar.getInstance();  
905 - weekCal.setTimeInMillis(st);  
906 - int weekYear = weekCal.get(Calendar.WEEK_OF_YEAR);  
907 - //设备号  
908 - String deviceId = BasicData.deviceId2NbbmMap.inverse().get(nbbm);  
909 - String sql = "select vehicle,line,up_down,lon,lat,timestamp from bsth_c_outbound where weeks_year=" + weekYear + " and vehicle=? and timestamp>? and timestamp<?";  
910 - return GpsOutbound_DTO.create(new JdbcTemplate(DBUtils_MS.getDataSource()).queryForList(sql, deviceId, st, et)); 927 + Calendar sCal = Calendar.getInstance();
  928 + sCal.setTime(new Date(st));
  929 + int sWeekYear = sCal.get(Calendar.WEEK_OF_YEAR);
  930 + Calendar eCal = Calendar.getInstance();
  931 + eCal.setTime(new Date(et));
  932 + int eWeekYear = eCal.get(Calendar.WEEK_OF_YEAR);
  933 +
  934 + //按年分表
  935 + String tableName = "bsth_c_outbound_" + fmtyyyy.print(st);
  936 +
  937 + List<DeviceChange> dcs = findDeviceChangeLogs(nbbm, et, st);
  938 + StringBuilder sql = new StringBuilder("");
  939 + long t1,t2;
  940 + DeviceChange dc;
  941 + for(int i = 0,len=dcs.size(); i < len; i++){
  942 + t1 = st;
  943 + t2 = et;
  944 + dc = dcs.get(i);
  945 + if(dc.getSt() > st)
  946 + t1 = dc.getSt();
  947 + if(dc.getEt() < et && dc.getEt()!=0)
  948 + t2 = dc.getEt();
  949 +
  950 + sql.append("select vehicle,line,up_down,lon,lat,timestamp from "+tableName+" where " +
  951 + " weeks_year in ("+sWeekYear+", "+eWeekYear+") and vehicle='"+dc.getDevice()+"' and timestamp>="+t1+" and timestamp<=" + t2);
  952 +
  953 + if(i == len - 1)
  954 + sql.append(" ORDER BY vehicle,timestamp");
  955 + else
  956 + sql.append(" UNION ");
  957 + }
  958 +
  959 + logger.info("outbounds sql : " + sql.toString());
  960 + return GpsOutbound_DTO.create(new JdbcTemplate(DBUtils_MS.getDataSource()).queryForList(sql.toString()));
911 } 961 }
912 962
913 @Override 963 @Override
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
@@ -2815,4 +2815,224 @@ public class BusIntervalServiceImpl implements BusIntervalService { @@ -2815,4 +2815,224 @@ public class BusIntervalServiceImpl implements BusIntervalService {
2815 return map; 2815 return map;
2816 } 2816 }
2817 2817
  2818 + @Override
  2819 + public List<Map<String, Object>> onTime(Map<String, Object> map) {
  2820 + // TODO Auto-generated method stub
  2821 + String startDate = map.get("startDate").toString().trim();
  2822 + String endDate = map.get("endDate").toString().trim();
  2823 + String line = map.get("line").toString().trim();
  2824 + String company = map.get("gs").toString().trim();
  2825 + String subCompany = map.get("fgs").toString().trim();
  2826 +
  2827 + String sql = "select id, cl_zbh, fcsj, fcsj_actual, j_gh, j_name, lp_name, qdz_name, " +
  2828 + "schedule_date_str, xl_name, zdsj, zdsj_actual, fgs_name, gs_name, xl_dir, xl_bm " +
  2829 + "from bsth_c_s_sp_info_real " +
  2830 + "where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"' " +
  2831 + "and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and cc_service = 0";
  2832 +
  2833 + if(company.length() != 0)
  2834 + sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
  2835 + if(line.length() != 0)
  2836 + sql += " and xl_bm = '"+line+"'";
  2837 +
  2838 + System.out.println(sql);
  2839 + List<ScheduleRealInfo> list = jdbcTemplate.query(sql,
  2840 + new RowMapper<ScheduleRealInfo>(){
  2841 + @Override
  2842 + public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
  2843 + ScheduleRealInfo schedule = new ScheduleRealInfo();
  2844 + schedule.setId(rs.getLong("id"));
  2845 + schedule.setScheduleDateStr(rs.getString("schedule_date_str"));
  2846 + schedule.setXlDir(rs.getString("xl_dir"));
  2847 + schedule.setXlBm(rs.getString("xl_bm"));
  2848 + schedule.setXlName(rs.getString("xl_name"));
  2849 + schedule.setLpName(rs.getString("lp_name"));
  2850 + schedule.setFcsj(rs.getString("fcsj"));
  2851 + schedule.setFcsjActual(rs.getString("fcsj_actual"));
  2852 + schedule.setZdsj(rs.getString("zdsj"));
  2853 + schedule.setZdsjActual(rs.getString("zdsj_actual"));
  2854 + schedule.setQdzName(rs.getString("qdz_name"));
  2855 + schedule.setGsName(rs.getString("gs_name"));
  2856 + schedule.setFgsName(rs.getString("fgs_name"));
  2857 + schedule.setClZbh(rs.getString("cl_zbh"));
  2858 + schedule.setjGh(rs.getString("j_gh"));
  2859 + schedule.setjName(rs.getString("j_name"));
  2860 + return schedule;
  2861 + }});
  2862 +
  2863 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  2864 + Map<String, Map<String, List<ScheduleRealInfo>>> sches = new HashMap<String, Map<String, List<ScheduleRealInfo>>>();
  2865 + Map<String, List<List<Map<String, Object>>>> keyMap = new HashMap<String, List<List<Map<String, Object>>>>();
  2866 +
  2867 + for(ScheduleRealInfo s : list){
  2868 + String xl = s.getXlName();
  2869 + String dateStr = s.getScheduleDateStr();
  2870 + if(!sches.containsKey(xl)){
  2871 + sches.put(xl, new HashMap<String, List<ScheduleRealInfo>>());
  2872 + keyMap.put(xl, new ArrayList<List<Map<String, Object>>>());
  2873 + }
  2874 + if(!sches.get(xl).containsKey(dateStr)){
  2875 + sches.get(xl).put(dateStr, new ArrayList<ScheduleRealInfo>());
  2876 + }
  2877 + sches.get(xl).get(dateStr).add(s);
  2878 + }
  2879 + for(String xl : sches.keySet()){
  2880 + Map<String, List<ScheduleRealInfo>> sche1 = sches.get(xl);
  2881 + Set<String> dateSet = sche1.keySet();
  2882 + Map<Long, String> timeTemp = new HashMap<Long, String>();
  2883 + for(String date : dateSet){
  2884 + try {
  2885 + Date parse = sdf.parse(date);
  2886 + timeTemp.put(parse.getTime(), date);
  2887 + } catch (ParseException e) {
  2888 + // TODO Auto-generated catch block
  2889 + e.printStackTrace();
  2890 + }
  2891 + }
  2892 + List<Long> timeList = new ArrayList<Long>(timeTemp.keySet());
  2893 + Collections.sort(timeList);
  2894 +
  2895 + List<List<Map<String, Object>>> lists = new ArrayList<List<Map<String, Object>>>();
  2896 + Map<Long, ScheduleRealInfo> keyTemp = new HashMap<Long, ScheduleRealInfo>();
  2897 + for(Long time : timeList){
  2898 + List<Long> keyList = new ArrayList<Long>();
  2899 + String date = timeTemp.get(time);
  2900 + List<ScheduleRealInfo> sche2 = sche1.get(date);
  2901 + for(ScheduleRealInfo s : sche2){
  2902 + if(s.getFcsj()!=null && s.getFcsj().trim().length() > 0
  2903 + && s.getFcsj().contains(":")){
  2904 + String[] split = s.getFcsj().split(":");
  2905 + Long key = Long.valueOf(s.getXlDir())*1500 + Long.valueOf(split[0])*60 + Long.valueOf(split[1]);
  2906 + while(keyTemp.containsKey(key)){
  2907 + ++key;
  2908 + }
  2909 + keyList.add(key);
  2910 + keyTemp.put(key, s);
  2911 + }
  2912 + }
  2913 + Collections.sort(keyList);
  2914 + List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
  2915 + for(Long l : keyList){
  2916 + ScheduleRealInfo s = keyTemp.get(l);
  2917 + Map<String, Object> temp = new HashMap<String, Object>();
  2918 + temp.put("gs", s.getGsName());
  2919 + temp.put("fgs", s.getFgsName());
  2920 + temp.put("date", date);
  2921 + temp.put("xlbm", s.getXlBm());
  2922 + temp.put("line", s.getXlName());
  2923 + temp.put("clzbh", s.getClZbh());
  2924 + temp.put("jsy", s.getjGh() + "/" + s.getjName());
  2925 + temp.put("lp", s.getLpName());
  2926 + temp.put("zd", s.getQdzName());
  2927 + temp.put("fcsj", s.getFcsj()!=null?s.getFcsj():"");
  2928 + temp.put("fcsjA", s.getFcsjActual()!=null?s.getFcsjActual():"烂班");
  2929 + temp.put("zdsj", s.getZdsj()!=null?s.getZdsj():"");
  2930 + temp.put("zdsjA", s.getZdsjActual()!=null?s.getZdsjActual():"烂班");
  2931 + if(s.getFcsj() != null && s.getFcsjActual()!=null){
  2932 + String[] split1 = s.getFcsj().split(":");
  2933 + String[] split2 = s.getFcsjActual().split(":");
  2934 + long fcsj = Long.valueOf(split1[0])*60 + Long.valueOf(split1[1]);
  2935 + long fcsjA = Long.valueOf(split2[0])*60 + Long.valueOf(split2[1]);
  2936 + if(fcsj > 23*60 && fcsjA < 60)
  2937 + fcsjA += 1440;
  2938 + if(fcsjA - fcsj <= 3 && fcsjA - fcsj >= -1){
  2939 + temp.put("fcsjzd", "准点");
  2940 + } else {
  2941 + temp.put("fcsjzd", "不准点");
  2942 + temp.put("fcsjflag", 1);
  2943 + }
  2944 + }
  2945 + if(s.getZdsj() != null && s.getZdsjActual()!=null){
  2946 + String[] split1 = s.getZdsj().split(":");
  2947 + String[] split2 = s.getZdsjActual().split(":");
  2948 + long zdsj = Long.valueOf(split1[0])*60 + Long.valueOf(split1[1]);
  2949 + long zdsjA = Long.valueOf(split2[0])*60 + Long.valueOf(split2[1]);
  2950 + if(zdsj > 23*60 && zdsjA < 60)
  2951 + zdsjA += 1440;
  2952 + if(zdsjA - zdsj <= 3 && zdsjA - zdsj >= -1){
  2953 + temp.put("zdsjzd", "准点");
  2954 + } else {
  2955 + temp.put("zdsjzd", "不准点");
  2956 + temp.put("zdsjflag", 1);
  2957 + }
  2958 + }
  2959 + tempList.add(temp);
  2960 + }
  2961 + lists.add(tempList);
  2962 + }
  2963 + keyMap.put(xl, lists);
  2964 + }
  2965 +
  2966 + if(!map.containsKey("flag")){
  2967 + for(String xl : keyMap.keySet()){
  2968 + List<List<Map<String, Object>>> list1 = keyMap.get(xl);
  2969 + if(list1.size() == 0 || list1.get(0).size() == 0)
  2970 + continue;
  2971 + Map<String, Object> tempMap = new HashMap<String, Object>();
  2972 + int bcs = 0, fczd = 0, zdzd = 0;
  2973 + for(List<Map<String, Object>> list2 : list1){
  2974 + for(Map<String, Object> m : list2){
  2975 + bcs++;
  2976 + if(!m.containsKey("fcsjflag"))
  2977 + fczd++;
  2978 + if(!m.containsKey("zdsjflag"))
  2979 + zdzd++;
  2980 + }
  2981 + }
  2982 + tempMap.put("gs", list1.get(0).get(0).get("gs"));
  2983 + tempMap.put("fgs", list1.get(0).get(0).get("fgs"));
  2984 + tempMap.put("line", list1.get(0).get(0).get("line"));
  2985 + tempMap.put("date", list1.get(0).get(0).get("date"));
  2986 + tempMap.put("xlbm", list1.get(0).get(0).get("xlbm"));
  2987 + tempMap.put("bcs", bcs);
  2988 + tempMap.put("fczd", fczd);
  2989 + tempMap.put("zdzd", zdzd);
  2990 + tempMap.put("fczdl", (bcs>0?df.format((double)fczd/bcs*100):0)+"%");
  2991 + tempMap.put("zdzdl", (bcs>0?df.format((double)zdzd/bcs*100):0)+"%");
  2992 + resList.add(tempMap);
  2993 + }
  2994 + } else if(map.get("flag").toString().trim().equals("1")) {
  2995 + for(String xl : keyMap.keySet()){
  2996 + List<List<Map<String, Object>>> list1 = keyMap.get(xl);
  2997 + if(list1.size() == 0 || list1.get(0).size() == 0)
  2998 + continue;
  2999 + for(List<Map<String, Object>> list2 : list1){
  3000 + Map<String, Object> tempMap = new HashMap<String, Object>();
  3001 + int bcs = 0, fczd = 0, zdzd = 0;
  3002 + for(Map<String, Object> m : list2){
  3003 + bcs++;
  3004 + if(!m.containsKey("fcsjflag"))
  3005 + fczd++;
  3006 + if(!m.containsKey("zdsjflag"))
  3007 + zdzd++;
  3008 + }
  3009 + tempMap.put("gs", list2.get(0).get("gs"));
  3010 + tempMap.put("fgs", list2.get(0).get("fgs"));
  3011 + tempMap.put("line", list2.get(0).get("line"));
  3012 + tempMap.put("date", list2.get(0).get("date"));
  3013 + tempMap.put("xl_date", list2.get(0).get("date") + "_" + list2.get(0).get("xlbm") + "_" + list2.get(0).get("line"));
  3014 + tempMap.put("bcs", bcs);
  3015 + tempMap.put("fczd", fczd);
  3016 + tempMap.put("zdzd", zdzd);
  3017 + tempMap.put("fczdl", (bcs>0?df.format((double)fczd/bcs*100):0)+"%");
  3018 + tempMap.put("zdzdl", (bcs>0?df.format((double)zdzd/bcs*100):0)+"%");
  3019 + resList.add(tempMap);
  3020 + }
  3021 + }
  3022 + } else if(map.get("flag").toString().trim().equals("2")) {
  3023 + for(String xl : keyMap.keySet()){
  3024 + List<List<Map<String, Object>>> list1 = keyMap.get(xl);
  3025 + if(list1.size() == 0 || list1.get(0).size() == 0)
  3026 + continue;
  3027 + for(List<Map<String, Object>> list2 : list1){
  3028 + for(Map<String, Object> m : list2){
  3029 + resList.add(m);
  3030 + }
  3031 + }
  3032 + }
  3033 + }
  3034 +
  3035 + return resList;
  3036 + }
  3037 +
2818 } 3038 }
src/main/java/com/bsth/service/report/CulateMileageService.java
@@ -14,6 +14,7 @@ public interface CulateMileageService { @@ -14,6 +14,7 @@ public interface CulateMileageService {
14 List<Map<String,Object>> jobLjqk(List<ScheduleRealInfo> lists); 14 List<Map<String,Object>> jobLjqk(List<ScheduleRealInfo> lists);
15 double culateLjgl(List<ScheduleRealInfo> lists); 15 double culateLjgl(List<ScheduleRealInfo> lists);
16 double culateLjgl_(List<ScheduleRealInfo> lists,String item); 16 double culateLjgl_(List<ScheduleRealInfo> lists,String item);
  17 + double culateLjgl_spy(List<ScheduleRealInfo> lists);
17 int culateLjbc(List<ScheduleRealInfo> lists,String item); 18 int culateLjbc(List<ScheduleRealInfo> lists,String item);
18 19
19 double culateJhgl(List<ScheduleRealInfo> lists); 20 double culateJhgl(List<ScheduleRealInfo> lists);
@@ -23,11 +24,13 @@ public interface CulateMileageService { @@ -23,11 +24,13 @@ public interface CulateMileageService {
23 24
24 double culateSjgl(List<ScheduleRealInfo> lists); 25 double culateSjgl(List<ScheduleRealInfo> lists);
25 double culateSjgl_(List<ScheduleRealInfo> lists,String item); 26 double culateSjgl_(List<ScheduleRealInfo> lists,String item);
  27 +
  28 + double culateSjgl_spy(List<ScheduleRealInfo> lists);
26 int culateSjbc(List<ScheduleRealInfo> lists,String item); 29 int culateSjbc(List<ScheduleRealInfo> lists,String item);
27 30
28 double culateKsgl(List<ScheduleRealInfo> lists); 31 double culateKsgl(List<ScheduleRealInfo> lists);
29 double culateJccgl(List<ScheduleRealInfo> lists); 32 double culateJccgl(List<ScheduleRealInfo> lists);
30 - 33 + double culateSjfyylc_spy(List<ScheduleRealInfo> lists);
31 double culateJhJccgl(List<ScheduleRealInfo> lists); 34 double culateJhJccgl(List<ScheduleRealInfo> lists);
32 35
33 double culateCJLC(List<ScheduleRealInfo> lists,String item); 36 double culateCJLC(List<ScheduleRealInfo> lists,String item);
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
@@ -1476,5 +1476,130 @@ public class CulateMileageServiceImpl implements CulateMileageService{ @@ -1476,5 +1476,130 @@ public class CulateMileageServiceImpl implements CulateMileageService{
1476 map.put("djgsj", djcsj); 1476 map.put("djgsj", djcsj);
1477 return map; 1477 return map;
1478 } 1478 }
  1479 +
  1480 + @Override
  1481 + public double culateSjgl_spy(List<ScheduleRealInfo> lists) {
  1482 + // 实际营运里程
  1483 + double sjgl = 0;
  1484 + for (int i = 0; i < lists.size(); i++) {
  1485 + ScheduleRealInfo scheduleRealInfo = lists.get(i);
  1486 + if (!isInOut(scheduleRealInfo)) {
  1487 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1488 + if (!scheduleRealInfo.isSflj()) {
  1489 + if (childTaskPlans.isEmpty()) {
  1490 + if (!scheduleRealInfo.isDestroy()) {
  1491 + double jhlcOrig = scheduleRealInfo.getJhlcOrig() == null ? 0
  1492 + : scheduleRealInfo.getJhlcOrig();
  1493 + double jhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  1494 + if (jhlc - jhlcOrig > 0) {
  1495 + sjgl = Arith.add(sjgl, jhlcOrig);
  1496 + } else {
  1497 + sjgl = Arith.add(sjgl, jhlc);
  1498 + }
  1499 + }
  1500 + } else {
  1501 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1502 + while (it.hasNext()) {
  1503 + ChildTaskPlan childTaskPlan = it.next();
  1504 + if (childTaskPlan.getMileageType().equals("service")
  1505 + && "正常".equals(childTaskPlan.getType1()) && childTaskPlan.getCcId() == null
  1506 + && (!childTaskPlan.isNoClerk())) {
  1507 + if (!childTaskPlan.isDestroy()) {
  1508 + Float jhgl = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  1509 + sjgl = Arith.add(sjgl, jhgl);
  1510 + }
  1511 + }
  1512 + }
  1513 + }
  1514 + }
  1515 + }
  1516 + }
  1517 + return sjgl;
  1518 + }
  1519 +
  1520 + @Override
  1521 + public double culateSjfyylc_spy(List<ScheduleRealInfo> lists) {
  1522 + // 实际非营运里程(售)
  1523 + double sjgl = 0;
  1524 + for (int i = 0; i < lists.size(); i++) {
  1525 + ScheduleRealInfo scheduleRealInfo = lists.get(i);
  1526 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1527 + if (childTaskPlans.isEmpty()) {
  1528 + if (scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out")
  1529 + || scheduleRealInfo.getBcType().equals("ldks")) {
  1530 + if (!scheduleRealInfo.isDestroy()) {
  1531 + double jhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  1532 + sjgl = Arith.add(sjgl, jhlc);
  1533 + }
  1534 + }
  1535 + } else {
  1536 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1537 + while (it.hasNext()) {
  1538 + ChildTaskPlan childTaskPlan = it.next();
  1539 + if (childTaskPlan.getMileageType().equals("empty")
  1540 + && (!childTaskPlan.isNoClerk()) && childTaskPlan.getCcId() == null) {
  1541 + if (!childTaskPlan.isDestroy()) {
  1542 + Float jhgl = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  1543 + sjgl = Arith.add(sjgl, jhgl);
  1544 + }
  1545 + }
  1546 + }
  1547 + }
  1548 + }
  1549 + return sjgl;
  1550 + }
  1551 +
  1552 + @Override
  1553 + public double culateLjgl_spy(List<ScheduleRealInfo> lists) {
  1554 + // 临加营运里程(售)
  1555 + double ljgl = 0;
  1556 + for (int i = 0; i < lists.size(); i++) {
  1557 + ScheduleRealInfo scheduleRealInfo = lists.get(i);
  1558 + if (!isInOut(scheduleRealInfo)) {
  1559 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1560 + if (scheduleRealInfo.isSflj()) {
  1561 + if (childTaskPlans.isEmpty()) {
  1562 + if (!scheduleRealInfo.isDestroy())
  1563 + ljgl = Arith.add(ljgl, scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc());
  1564 + } else {
  1565 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1566 + while (it.hasNext()) {
  1567 + ChildTaskPlan childTaskPlan = it.next();
  1568 + if (childTaskPlan.getMileageType().equals("service") && childTaskPlan.getCcId() == null
  1569 + && (!childTaskPlan.isNoClerk())) {
  1570 + if (!childTaskPlan.isDestroy()) {
  1571 + Float jhgl = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  1572 + ljgl = Arith.add(ljgl, jhgl);
  1573 + }
  1574 + }
  1575 + }
  1576 + }
  1577 + } else {
  1578 + if (childTaskPlans.isEmpty()) {
  1579 + double jhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  1580 + double jhlcOrig = scheduleRealInfo.getJhlcOrig() == null ? 0 : scheduleRealInfo.getJhlcOrig();
  1581 + double zjlc = Arith.sub(jhlc, jhlcOrig);
  1582 + if (zjlc > 0) {
  1583 + ljgl = Arith.add(zjlc, ljgl);
  1584 + }
  1585 + } else {
  1586 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1587 + while (it.hasNext()) {
  1588 + ChildTaskPlan childTaskPlan = it.next();
  1589 + if ("service".equals(childTaskPlan.getMileageType())
  1590 + && "临加".equals(childTaskPlan.getType1()) && childTaskPlan.getCcId() == null
  1591 + && (!childTaskPlan.isNoClerk())) {
  1592 + if (!childTaskPlan.isDestroy()) {
  1593 + Float jhgl = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  1594 + ljgl = Arith.add(ljgl, jhgl);
  1595 + }
  1596 + }
  1597 + }
  1598 + }
  1599 + }
  1600 + }
  1601 + }
  1602 + return ljgl;
  1603 + }
1479 1604
1480 } 1605 }
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
@@ -96,7 +96,7 @@ public class ReportServiceImpl implements ReportService{ @@ -96,7 +96,7 @@ public class ReportServiceImpl implements ReportService{
96 Long date1=simpleDateFormat.parse(date+" "+sjfc+":00").getTime(); 96 Long date1=simpleDateFormat.parse(date+" "+sjfc+":00").getTime();
97 Long date2=simpleDateFormat.parse(date+" "+sjdd+":00").getTime(); 97 Long date2=simpleDateFormat.parse(date+" "+sjdd+":00").getTime();
98 Date dates=simpleDateFormat.parse(date+" 00:00:00"); 98 Date dates=simpleDateFormat.parse(date+" 00:00:00");
99 - List<ArrivalInfo> lists=load(line,sbbb,date1,date2,dates); 99 + List<ArrivalInfo> lists=load(line,sbbb,date1,date2,dates,date);
100 100
101 for(int i=0;i<lists.size();i++){ 101 for(int i=0;i<lists.size();i++){
102 ArrivalInfo t1=lists.get(i); 102 ArrivalInfo t1=lists.get(i);
@@ -123,7 +123,7 @@ public class ReportServiceImpl implements ReportService{ @@ -123,7 +123,7 @@ public class ReportServiceImpl implements ReportService{
123 } 123 }
124 124
125 125
126 - public List<ArrivalInfo> load(String line,String sbbb,Long date1,Long date2,Date dates){ 126 + public List<ArrivalInfo> load(String line,String sbbb,Long date1,Long date2,Date dates,String date){
127 List<ArrivalInfo> list = null; 127 List<ArrivalInfo> list = null;
128 Calendar cal = Calendar.getInstance(); 128 Calendar cal = Calendar.getInstance();
129 cal.setTime(dates); 129 cal.setTime(dates);
@@ -133,8 +133,8 @@ public class ReportServiceImpl implements ReportService{ @@ -133,8 +133,8 @@ public class ReportServiceImpl implements ReportService{
133 Connection conn = null; 133 Connection conn = null;
134 PreparedStatement ps = null; 134 PreparedStatement ps = null;
135 ResultSet rs = null; 135 ResultSet rs = null;
136 -  
137 - String sql = "select * from bsth_c_arrival_info where device_id=? AND line_id=? AND weeks_year=? AND ts > ? AND ts <=? order by ts"; 136 + String year=date.substring(0,4);
  137 + String sql = "select * from bsth_c_arrival_info_"+year+" where device_id=? AND line_id=? AND weeks_year=? AND ts > ? AND ts <=? order by ts";
138 try{ 138 try{
139 conn = DBUtils_MS.getConnection(); 139 conn = DBUtils_MS.getConnection();
140 ps = conn.prepareStatement(sql); 140 ps = conn.prepareStatement(sql);
@@ -194,7 +194,7 @@ public class ReportServiceImpl implements ReportService{ @@ -194,7 +194,7 @@ public class ReportServiceImpl implements ReportService{
194 Long date2=simpleDateFormat.parse(ddsj+":00").getTime(); 194 Long date2=simpleDateFormat.parse(ddsj+":00").getTime();
195 Date dates1=simpleDateFormat.parse(fcsj+":00"); 195 Date dates1=simpleDateFormat.parse(fcsj+":00");
196 Date dates2=simpleDateFormat.parse(ddsj+":00"); 196 Date dates2=simpleDateFormat.parse(ddsj+":00");
197 - List<ArrivalInfo> lists=load2(line,date1,date2,dates1,dates2,zd,zdlx); 197 + List<ArrivalInfo> lists=load2(line,date1,date2,dates1,dates2,zd,zdlx,fcsj);
198 198
199 for(int i=0;i<lists.size();i++){ 199 for(int i=0;i<lists.size();i++){
200 ArrivalInfo t1=lists.get(i); 200 ArrivalInfo t1=lists.get(i);
@@ -224,7 +224,7 @@ public class ReportServiceImpl implements ReportService{ @@ -224,7 +224,7 @@ public class ReportServiceImpl implements ReportService{
224 } 224 }
225 225
226 226
227 - public List<ArrivalInfo> load2(String line,Long date1,Long date2,Date dates1,Date dates2,String zd,String zdlx){ 227 + public List<ArrivalInfo> load2(String line,Long date1,Long date2,Date dates1,Date dates2,String zd,String zdlx,String fcsj){
228 List<ArrivalInfo> list = null; 228 List<ArrivalInfo> list = null;
229 Calendar cal = Calendar.getInstance(); 229 Calendar cal = Calendar.getInstance();
230 cal.setTime(dates1); 230 cal.setTime(dates1);
@@ -235,8 +235,8 @@ public class ReportServiceImpl implements ReportService{ @@ -235,8 +235,8 @@ public class ReportServiceImpl implements ReportService{
235 Connection conn = null; 235 Connection conn = null;
236 PreparedStatement ps = null; 236 PreparedStatement ps = null;
237 ResultSet rs = null; 237 ResultSet rs = null;
238 -  
239 - String sql = "select * from bsth_c_arrival_info where line_id=? AND weeks_year>=? " 238 + String year=fcsj.substring(0,4);
  239 + String sql = "select * from bsth_c_arrival_info_"+year+" where line_id=? AND weeks_year>=? "
240 + " AND weeks_year<=? AND ts > ? AND ts <=? AND up_down=? AND stop_no like ? order by ts"; 240 + " AND weeks_year<=? AND ts > ? AND ts <=? AND up_down=? AND stop_no like ? order by ts";
241 try{ 241 try{
242 conn = DBUtils_MS.getConnection(); 242 conn = DBUtils_MS.getConnection();
@@ -2025,7 +2025,7 @@ public class ReportServiceImpl implements ReportService{ @@ -2025,7 +2025,7 @@ public class ReportServiceImpl implements ReportService{
2025 public List<Map<String, Object>> lineList() { 2025 public List<Map<String, Object>> lineList() {
2026 // TODO Auto-generated method stub 2026 // TODO Auto-generated method stub
2027 List<Map<String, Object>> list=new ArrayList<Map<String,Object>>(); 2027 List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
2028 - Iterator<Line> iterator = lineRepository.findAll().iterator(); 2028 + Iterator<Line> iterator = lineRepository.findAllService().iterator();
2029 Line line; 2029 Line line;
2030 while (iterator.hasNext()) { 2030 while (iterator.hasNext()) {
2031 line = iterator.next(); 2031 line = iterator.next();
@@ -2179,8 +2179,8 @@ public class ReportServiceImpl implements ReportService{ @@ -2179,8 +2179,8 @@ public class ReportServiceImpl implements ReportService{
2179 Connection conn = null; 2179 Connection conn = null;
2180 PreparedStatement ps = null; 2180 PreparedStatement ps = null;
2181 ResultSet rs = null; 2181 ResultSet rs = null;
2182 -  
2183 - String sql = "select * from bsth_c_arrival_info where line_id=? AND weeks_year=? " 2182 + String year=date.substring(0,4);
  2183 + String sql = "select * from bsth_c_arrival_info_"+year+" where line_id=? AND weeks_year=? "
2184 + " AND ts >= ? AND ts <=? AND up_down=? order by device_id,ts"; 2184 + " AND ts >= ? AND ts <=? AND up_down=? order by device_id,ts";
2185 try{ 2185 try{
2186 conn = DBUtils_MS.getConnection(); 2186 conn = DBUtils_MS.getConnection();
@@ -2229,8 +2229,8 @@ public class ReportServiceImpl implements ReportService{ @@ -2229,8 +2229,8 @@ public class ReportServiceImpl implements ReportService{
2229 Connection conn = null; 2229 Connection conn = null;
2230 PreparedStatement ps = null; 2230 PreparedStatement ps = null;
2231 ResultSet rs = null; 2231 ResultSet rs = null;
2232 -  
2233 - String sql = "select * from bsth_c_arrival_info where line_id=? AND weeks_year=? " 2232 + String year=date.substring(0,4);
  2233 + String sql = "select * from bsth_c_arrival_info_"+year+" where line_id=? AND weeks_year=? "
2234 + " AND ts >= ? AND ts <=? AND up_down=? order by device_id,ts"; 2234 + " AND ts >= ? AND ts <=? AND up_down=? order by device_id,ts";
2235 try{ 2235 try{
2236 conn = DBUtils_MS.getConnection(); 2236 conn = DBUtils_MS.getConnection();
@@ -3529,7 +3529,7 @@ public class ReportServiceImpl implements ReportService{ @@ -3529,7 +3529,7 @@ public class ReportServiceImpl implements ReportService{
3529 Long date1 = simpleDateFormat.parse(date+" 00:00:01").getTime(); 3529 Long date1 = simpleDateFormat.parse(date+" 00:00:01").getTime();
3530 Long date2=simpleDateFormat.parse(date+" 23:59:59").getTime(); 3530 Long date2=simpleDateFormat.parse(date+" 23:59:59").getTime();
3531 Date dates=simpleDateFormat.parse(date+" 00:00:00"); 3531 Date dates=simpleDateFormat.parse(date+" 00:00:00");
3532 - List<ArrivalInfo> lists=load_online(line,date1,date2,dates); 3532 + List<ArrivalInfo> lists=load_online(line,date1,date2,dates,date);
3533 for (int i = 0; i < list.size(); i++) { 3533 for (int i = 0; i < list.size(); i++) {
3534 String nbbm=list.get(i); 3534 String nbbm=list.get(i);
3535 String sbbb=BasicData.deviceId2NbbmMap.inverse().get(nbbm); 3535 String sbbb=BasicData.deviceId2NbbmMap.inverse().get(nbbm);
@@ -3582,7 +3582,7 @@ public class ReportServiceImpl implements ReportService{ @@ -3582,7 +3582,7 @@ public class ReportServiceImpl implements ReportService{
3582 return map; 3582 return map;
3583 } 3583 }
3584 3584
3585 - public List<ArrivalInfo> load_online(String line,Long date1,Long date2,Date dates){ 3585 + public List<ArrivalInfo> load_online(String line,Long date1,Long date2,Date dates,String date){
3586 List<ArrivalInfo> list = null; 3586 List<ArrivalInfo> list = null;
3587 Calendar cal = Calendar.getInstance(); 3587 Calendar cal = Calendar.getInstance();
3588 cal.setTime(dates); 3588 cal.setTime(dates);
@@ -3592,8 +3592,8 @@ public class ReportServiceImpl implements ReportService{ @@ -3592,8 +3592,8 @@ public class ReportServiceImpl implements ReportService{
3592 Connection conn = null; 3592 Connection conn = null;
3593 PreparedStatement ps = null; 3593 PreparedStatement ps = null;
3594 ResultSet rs = null; 3594 ResultSet rs = null;
3595 -  
3596 - String sql = "select * from bsth_c_arrival_info where line_id=? AND weeks_year=? AND ts > ? AND ts <=? order by ts"; 3595 + String year=date.substring(0,4);
  3596 + String sql = "select * from bsth_c_arrival_info_"+year+" where line_id=? AND weeks_year=? AND ts > ? AND ts <=? order by ts";
3597 try{ 3597 try{
3598 conn = DBUtils_MS.getConnection(); 3598 conn = DBUtils_MS.getConnection();
3599 ps = conn.prepareStatement(sql); 3599 ps = conn.prepareStatement(sql);
src/main/java/com/bsth/service/traffic/impl/VehicleInoutStopServiceImpl.java
@@ -2,9 +2,12 @@ package com.bsth.service.traffic.impl; @@ -2,9 +2,12 @@ package com.bsth.service.traffic.impl;
2 2
3 import com.bsth.entity.traffic.VehicleInoutStop; 3 import com.bsth.entity.traffic.VehicleInoutStop;
4 import com.bsth.service.impl.BaseServiceImpl; 4 import com.bsth.service.impl.BaseServiceImpl;
  5 +import com.bsth.service.impl.TrafficManageServiceImpl;
5 import com.bsth.service.traffic.VehicleInoutStopService; 6 import com.bsth.service.traffic.VehicleInoutStopService;
6 import com.bsth.util.DateUtils; 7 import com.bsth.util.DateUtils;
7 import com.bsth.util.db.DBUtils_MS; 8 import com.bsth.util.db.DBUtils_MS;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
8 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.jdbc.core.JdbcTemplate; 12 import org.springframework.jdbc.core.JdbcTemplate;
10 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
@@ -30,9 +33,7 @@ import java.util.Map; @@ -30,9 +33,7 @@ import java.util.Map;
30 33
31 @Service 34 @Service
32 public class VehicleInoutStopServiceImpl extends BaseServiceImpl<VehicleInoutStop,Integer> implements VehicleInoutStopService { 35 public class VehicleInoutStopServiceImpl extends BaseServiceImpl<VehicleInoutStop,Integer> implements VehicleInoutStopService {
33 -  
34 - @Autowired  
35 - JdbcTemplate jdbcTemplate; 36 + Logger logger = LoggerFactory.getLogger(TrafficManageServiceImpl.class);
36 37
37 /** 38 /**
38 * 拼装sql 39 * 拼装sql
@@ -81,6 +82,7 @@ public class VehicleInoutStopServiceImpl extends BaseServiceImpl&lt;VehicleInoutSto @@ -81,6 +82,7 @@ public class VehicleInoutStopServiceImpl extends BaseServiceImpl&lt;VehicleInoutSto
81 "if( up_down= 0,'上行','下行') as up_down ," + 82 "if( up_down= 0,'上行','下行') as up_down ," +
82 "if( in_out_stop= 0,'站内','站外') as in_out_stop , " + 83 "if( in_out_stop= 0,'站内','站外') as in_out_stop , " +
83 "stop,report_date FROM bsth_c_shreal " + packageParam(map,"") ; 84 "stop,report_date FROM bsth_c_shreal " + packageParam(map,"") ;
  85 + logger.info("车载上报停靠站查询sql:",sql);
84 List<Map<String, Object>> result = jdbcTemp.queryForList(sql); 86 List<Map<String, Object>> result = jdbcTemp.queryForList(sql);
85 return result; 87 return result;
86 } 88 }
src/main/java/com/bsth/websocket/handler/SendUtils.java
@@ -168,8 +168,7 @@ public class SendUtils{ @@ -168,8 +168,7 @@ public class SendUtils{
168 ObjectMapper mapper = new ObjectMapper(); 168 ObjectMapper mapper = new ObjectMapper();
169 169
170 try { 170 try {
171 - socketHandler.sendMessage(mapper.writeValueAsString(map));  
172 - 171 + socketHandler.sendMessageToLine(sd.getXlbm(), mapper.writeValueAsString(map));
173 } catch (JsonProcessingException e) { 172 } catch (JsonProcessingException e) {
174 logger.error("", e); 173 logger.error("", e);
175 } 174 }
src/main/resources/fatso/start.js
@@ -16,7 +16,7 @@ var platform = process.platform; @@ -16,7 +16,7 @@ var platform = process.platform;
16 var iswin = platform=='win32'; 16 var iswin = platform=='win32';
17 var sp = platform=='win32'?'\\':'/'; 17 var sp = platform=='win32'?'\\':'/';
18 //不参与的目录 18 //不参与的目录
19 -var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'history_sch' ,'report'+sp+'oil','base'+sp+'geo_data_edit', 'forms', 'report'] 19 +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'history_sch' ,'report'+sp+'oil','base'+sp+'geo_data_edit', 'forms','mforms', 'report', 'punctual']
20 ,ep = new EventProxy() 20 ,ep = new EventProxy()
21 ,pName = 'bsth_control' 21 ,pName = 'bsth_control'
22 ,path = process.cwd() 22 ,path = process.cwd()
src/main/resources/ms-jdbc.properties
@@ -4,6 +4,6 @@ @@ -4,6 +4,6 @@
4 #ms.mysql.password= 123456 4 #ms.mysql.password= 123456
5 5
6 ms.mysql.driver= com.mysql.jdbc.Driver 6 ms.mysql.driver= com.mysql.jdbc.Driver
7 -ms.mysql.url= jdbc:mysql://10.10.150.21:3306/ms?useUnicode=true&characterEncoding=utf-8 7 +ms.mysql.url= jdbc:mysql://10.10.200.226:3306/ms?useUnicode=true&characterEncoding=utf-8
8 ms.mysql.username= root 8 ms.mysql.username= root
9 -ms.mysql.password= root2jsp@JSP 9 +ms.mysql.password= root2jsp
src/main/resources/static/pages/base/line/js/line-list-table.js
@@ -101,7 +101,7 @@ @@ -101,7 +101,7 @@
101 var len_ = array.length,paramsD = new Array(); 101 var len_ = array.length,paramsD = new Array();
102 if(len_>0) { 102 if(len_>0) {
103 $.each(array, function(i, g){ 103 $.each(array, function(i, g){
104 - if(g.name!='' || g.name != null) { 104 + if(g.remove != 1 && (g.name!='' || g.name != null)) {
105 paramsD.push({'id':g.name + '_' + g.id + '_' + g.lineCode ,'text':g.name + gsdmTogsName(compD,g.company)}); 105 paramsD.push({'id':g.name + '_' + g.id + '_' + g.lineCode ,'text':g.name + gsdmTogsName(compD,g.company)});
106 } 106 }
107 }); 107 });
src/main/resources/static/pages/base/line/list.html
@@ -305,7 +305,7 @@ @@ -305,7 +305,7 @@
305 <a href="edit.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 修改 </a> 305 <a href="edit.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 修改 </a>
306 306
307 {{if obj.destroy==1}} 307 {{if obj.destroy==1}}
308 - <a class="ct_base_line_delete_link" data-id="{{obj.id}}" data-name="{{obj.name}}"> 删除 </a> 308 + <!--<a class="ct_base_line_delete_link" data-id="{{obj.id}}" data-name="{{obj.name}}"> 删除 </a>-->
309 {{/if}} 309 {{/if}}
310 </td> 310 </td>
311 </tr> 311 </tr>
src/main/resources/static/pages/base/section/js/section-list-table.js
@@ -147,7 +147,7 @@ @@ -147,7 +147,7 @@
147 var len_ = array.length,paramsD = new Array(); 147 var len_ = array.length,paramsD = new Array();
148 if(len_>0) { 148 if(len_>0) {
149 $.each(array, function(i, g){ 149 $.each(array, function(i, g){
150 - if(g.name!='' || g.name != null) { 150 + if(g.remove != 1 && (g.name!='' || g.name != null)) {
151 paramsD.push({'id':g.name + '_' + g.id + '_' + g.lineCode ,'text':g.name + gsdmTogsName(compD,g.company)}); 151 paramsD.push({'id':g.name + '_' + g.id + '_' + g.lineCode ,'text':g.name + gsdmTogsName(compD,g.company)});
152 } 152 }
153 }); 153 });
src/main/resources/static/pages/base/station/js/station-list-table.js
@@ -173,7 +173,7 @@ @@ -173,7 +173,7 @@
173 var len_ = array.length,paramsD = new Array(); 173 var len_ = array.length,paramsD = new Array();
174 if(len_>0) { 174 if(len_>0) {
175 $.each(array, function(i, g){ 175 $.each(array, function(i, g){
176 - if(g.name!='' || g.name != null) { 176 + if(g.remove != 1 && (g.name!='' || g.name != null)) {
177 paramsD.push({'id':g.name + '_' + g.id + '_' + g.lineCode ,'text':g.name + gsdmTogsName(compD,g.company)}); 177 paramsD.push({'id':g.name + '_' + g.id + '_' + g.lineCode ,'text':g.name + gsdmTogsName(compD,g.company)});
178 } 178 }
179 }); 179 });
src/main/resources/static/pages/forms/statement/firstAndLastBus_delay.html
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 19
20 <div class="page-head"> 20 <div class="page-head">
21 <div class="page-title"> 21 <div class="page-title">
22 - <h1>线路首末班准点率</h1> 22 + <h1>线路首末班误点班次</h1>
23 </div> 23 </div>
24 </div> 24 </div>
25 25
src/main/resources/static/pages/home.html
@@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
64 <li class="sub_title"><h6>基础信息</h6></li> 64 <li class="sub_title"><h6>基础信息</h6></li>
65 <li><span class="label s_c_add">新增</span>1、新增站点间双路段生成功能。</li> 65 <li><span class="label s_c_add">新增</span>1、新增站点间双路段生成功能。</li>
66 <li><span class="label s_c_change">修复</span>2、修复一个bug,在线路编辑页面初始化线路的系统规划功能,百度地图上缺少的线路会显示一直加载。</li> 66 <li><span class="label s_c_change">修复</span>2、修复一个bug,在线路编辑页面初始化线路的系统规划功能,百度地图上缺少的线路会显示一直加载。</li>
67 - <li><span class="label s_c_change">修复</span>3、修复一个bug,在修改站点时选择取消,不点击站点树状图,直接选择上/下行操作里的修改站点,会出现没有可修改站点的bug。</li> 67 + <li><span class="label s_c_change">修改</span>3、修改站点位置修改。</li>
68 <li><span class="label s_c_add">新增</span>4、新增线路删除功能,可以删除已撤销的线路,仅用于剔除录入错误的数据,如出现误操作,请联系管理员恢复数据。</li> 68 <li><span class="label s_c_add">新增</span>4、新增线路删除功能,可以删除已撤销的线路,仅用于剔除录入错误的数据,如出现误操作,请联系管理员恢复数据。</li>
69 <li class="sub_title"><h6>用油和报表</h6></li> 69 <li class="sub_title"><h6>用油和报表</h6></li>
70 <li><span class="label s_c_add">新增</span>5、油量,电量记录操作日志。</li> 70 <li><span class="label s_c_add">新增</span>5、油量,电量记录操作日志。</li>
src/main/resources/static/pages/punctual/list.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title" style="margin-left: 20px">
  21 + <button id="exportList">数据导出</button>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row" id="onTime">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-body">
  29 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 600px">
  30 + <table class="table table-bordered table-hover table-checkable" id="forms_2">
  31 + <thead>
  32 + <tr>
  33 + <td></td>
  34 +<!-- <td>日期</td> -->
  35 +<!-- <td>线路</td> -->
  36 + <td>站点</td>
  37 + <td>车辆自编号</td>
  38 + <td>驾驶员</td>
  39 + <td>路牌</td>
  40 + <td>计划发车</td>
  41 + <td>实际发车</td>
  42 + <td>发车准点</td>
  43 + <td>计划到站</td>
  44 + <td>实际到站</td>
  45 + <td>到站准点</td>
  46 + </tr>
  47 + </thead>
  48 +
  49 + <tbody>
  50 +
  51 + </tbody>
  52 + </table>
  53 + </div>
  54 + </div>
  55 + </div>
  56 + </div>
  57 +</div>
  58 +<script src="/pages/mforms/singledatas/jquery.table2excel.min.js"></script>
  59 +<script>
  60 + $(function(){
  61 + // 关闭左侧栏
  62 + if (!$('body').hasClass('page-sidebar-closed'))
  63 + $('.menu-toggler.sidebar-toggler').click();
  64 + var no="";
  65 + $("#onTime").on('init', function (e, id) {
  66 + no=id;
  67 + var date = id.split("_")[0];
  68 + var endDate = date;
  69 + var line = id.split("_")[1];
  70 + var fgs=$('#fgsdm').val();
  71 + var gs=$('#gsdm').val();
  72 + $get('/busInterval/onTime',{line:line,startDate:date,endDate:endDate,gs:gs,fgs:fgs,flag:2},function(result){
  73 + var onTime_2 = template('onTime_2',{list:result});
  74 + $('#forms_2 tbody').html(onTime_2);
  75 + });
  76 + });
  77 + $("#exportList").on('click',function(){
  78 + $("#forms_2").table2excel({
  79 + // 不被导出的表格行的CSS class类
  80 + exclude: ".noExl",
  81 + // 导出的Excel文档的名称,(没看到作用)
  82 + name: "Excel Document Name.xlsx",
  83 + // Excel文件的名称
  84 + filename: "发车到站准点率"
  85 + });
  86 + });
  87 +
  88 + });
  89 +</script>
  90 +<script type="text/html" id="onTime_2">
  91 + {{each list as obj i}}
  92 + <tr>
  93 + <td>{{i+1}}</td>
  94 + <td>{{obj.zd}}</td>
  95 + <td>{{obj.clzbh}}</td>
  96 + <td>{{obj.jsy}}</td>
  97 + <td>{{obj.lp}}</td>
  98 + <td {{if obj.fcsjflag=="1"}}style="color: red" {{/if}}>{{obj.fcsj}}</td>
  99 + <td {{if obj.fcsjflag=="1"}}style="color: red" {{/if}}>{{obj.fcsjA}}</td>
  100 + <td {{if obj.fcsjflag=="1"}}style="color: red" {{/if}}>
  101 + {{if obj.fcsjflag!="1"}}准点{{else}}不准点{{/if}}
  102 + </td>
  103 + <td {{if obj.zdsjflag=="1"}}style="color: red" {{/if}}>{{obj.zdsj}}</td>
  104 + <td {{if obj.zdsjflag=="1"}}style="color: red" {{/if}}>{{obj.zdsjA}}</td>
  105 + <td {{if obj.zdsjflag=="1"}}style="color: red" {{/if}}>
  106 + {{if obj.zdsjflag!="1"}}准点{{else}}不准点{{/if}}
  107 + </td>
  108 + </tr>
  109 + {{/each}}
  110 + {{if list.length == 0}}
  111 + <tr>
  112 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  113 + </tr>
  114 + {{/if}}
  115 +</script>
0 \ No newline at end of file 116 \ No newline at end of file
src/main/resources/static/pages/punctual/onTime.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title">
  21 + <h1>发车到站准点率</h1>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-title">
  29 + <form class="form-inline" action="">
  30 + <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv">
  31 + <span class="item-label" style="width: 80px;">公司: </span>
  32 + <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
  33 + </div>
  34 + <div style="display: inline-block; margin-left: 38px;" id="fgsdmDiv">
  35 + <span class="item-label" style="width: 80px;">分公司: </span>
  36 + <select class="form-control" name="subCompany" id="fgsdm" style="width: 180px;"></select>
  37 + </div>
  38 + <div style="margin-top: 10px">
  39 + </div>
  40 + <div style="display: inline-block;margin-left: 33px;">
  41 + <span class="item-label" style="width: 80px;">线路: </span>
  42 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  43 + </div>
  44 + <div style="display: inline-block;">
  45 + <span class="item-label" style="width: 80px;margin-left: 24px;">开始时间: </span>
  46 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  47 + </div>
  48 + <div style="display: inline-block;">
  49 + <span class="item-label" style="width: 80px;margin-left: 24px;">结束时间: </span>
  50 + <input class="form-control" type="text" id="endDate" style="width: 180px;"/>
  51 + </div>
  52 +
  53 + <div class="form-group">
  54 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  55 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  56 + </div>
  57 + </form>
  58 + </div>
  59 + <div class="portlet-body">
  60 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  61 + <table class="table table-bordered table-hover table-checkable" id="forms">
  62 + <thead>
  63 + <tr>
  64 + <td>公司</td>
  65 + <td>分公司</td>
  66 + <td>线路</td>
  67 + <td>班次数</td>
  68 + <td>发车准点班次</td>
  69 + <td>到站准点班次</td>
  70 + <td>发车准点率</td>
  71 + <td>到站准点率</td>
  72 + <td>查看</td>
  73 + </tr>
  74 + </thead>
  75 +
  76 + <tbody>
  77 +
  78 + </tbody>
  79 + </table>
  80 +
  81 + <table class="hidden" id="forms_h">
  82 + <thead>
  83 + <tr>
  84 + <td>公司</td>
  85 + <td>分公司</td>
  86 + <td>线路</td>
  87 + <td>班次数</td>
  88 + <td>发车准点班次</td>
  89 + <td>到站准点班次</td>
  90 + <td>发车准点率</td>
  91 + <td>到站准点率</td>
  92 + </tr>
  93 + </thead>
  94 +
  95 + <tbody>
  96 +
  97 + </tbody>
  98 + </table>
  99 + </div>
  100 +
  101 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  102 + <input class="btn btn-default hidden" type="button" id="export_1" value="导出"/>
  103 + <table class="table table-bordered table-hover table-checkable" id="forms_1">
  104 + <thead>
  105 + <tr class="hidden">
  106 + <td>公司</td>
  107 + <td>分公司</td>
  108 + <td>日期</td>
  109 + <td>线路</td>
  110 + <td>班次数</td>
  111 + <td>发车准点班次</td>
  112 + <td>到站准点班次</td>
  113 + <td>发车准点率</td>
  114 + <td>到站准点率</td>
  115 + <td>查看</td>
  116 + </tr>
  117 + </thead>
  118 +
  119 + <tbody>
  120 +
  121 + </tbody>
  122 + </table>
  123 + <table class="hidden" id="forms_1_h">
  124 + <thead>
  125 + <tr >
  126 + <td>公司</td>
  127 + <td>分公司</td>
  128 + <td>日期</td>
  129 + <td>线路</td>
  130 + <td>班次数</td>
  131 + <td>发车准点班次</td>
  132 + <td>到站准点班次</td>
  133 + <td>发车准点率</td>
  134 + <td>到站准点率</td>
  135 + </tr>
  136 + </thead>
  137 +
  138 + <tbody>
  139 +
  140 + </tbody>
  141 + </table>
  142 + </div>
  143 + </div>
  144 + </div>
  145 + </div>
  146 +</div>
  147 +<script src="/pages/mforms/singledatas/jquery.table2excel.min.js"></script>
  148 +<script>
  149 + $(function(){
  150 + // 关闭左侧栏
  151 + if (!$('body').hasClass('page-sidebar-closed'))
  152 + $('.menu-toggler.sidebar-toggler').click();
  153 +
  154 + var d = new Date();
  155 + d.setTime(d.getTime() - 3*1000*60*60*24);
  156 + var year = d.getFullYear();
  157 + var month = d.getMonth() + 1;
  158 + var day = d.getDate();
  159 + if(month < 10)
  160 + month = "0"+month;
  161 + if(day < 10)
  162 + day = "0"+day;
  163 + var dateTime = year + "-" + month + "-" + day;
  164 + $("#date").datetimepicker({
  165 + format : 'YYYY-MM-DD',
  166 + locale : 'zh-cn',
  167 + maxDate : dateTime
  168 + });
  169 + $("#endDate").datetimepicker({
  170 + format : 'YYYY-MM-DD',
  171 + locale : 'zh-cn',
  172 + maxDate : dateTime
  173 + });
  174 + $("#date").val(dateTime);
  175 + $("#endDate").val(dateTime);
  176 +
  177 + var fage=false;
  178 + var obj = [];
  179 + var xlList;
  180 + $.get('/report/lineList',function(result){
  181 + xlList=result;
  182 +
  183 + $.get('/user/companyData', function(result){
  184 + obj = result;
  185 + console.log(obj);
  186 + var options = '';
  187 + for(var i = 0; i < obj.length; i++){
  188 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  189 + }
  190 +
  191 + if(obj.length ==0){
  192 + $("#gsdmDiv").css('display','none');
  193 + }else if(obj.length ==1){
  194 + $("#gsdmDiv").css('display','none');
  195 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  196 + $('#fgsdmDiv').css('display','none');
  197 + }
  198 + $('#gsdm').html(options);
  199 +
  200 + updateCompany();
  201 + });
  202 + });
  203 +
  204 + $("#gsdm").on("change",updateCompany);
  205 + function updateCompany(){
  206 + var company = $('#gsdm').val();
  207 + var options = '';
  208 + for(var i = 0; i < obj.length; i++){
  209 + if(obj[i].companyCode == company){
  210 + var children = obj[i].children;
  211 + for(var j = 0; j < children.length; j++){
  212 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  213 + }
  214 + }
  215 + }
  216 + $('#fgsdm').html(options);
  217 + }
  218 +
  219 + var tempData = {};
  220 + $.get('/report/lineList',function(xlList){
  221 + var data = [];
  222 + data.push({id: " ", text: "全部线路"});
  223 + $.get('/user/companyData', function(result){
  224 + for(var i = 0; i < result.length; i++){
  225 + var companyCode = result[i].companyCode;
  226 + var children = result[i].children;
  227 + for(var j = 0; j < children.length; j++){
  228 + var code = children[j].code;
  229 + for(var k=0;k < xlList.length;k++ ){
  230 + if(xlList[k]["fgsbm"]==code && xlList[k]["gsbm"]==companyCode){
  231 + data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]});
  232 + tempData[xlList[k]["xlbm"]] = companyCode+":"+code;
  233 + }
  234 + }
  235 + }
  236 + }
  237 + initPinYinSelect2('#line',data,'');
  238 +
  239 + });
  240 + });
  241 +
  242 +
  243 + $("#line").on("change", function(){
  244 + if($("#line").val() == " "){
  245 + $("#gsdm").attr("disabled", false);
  246 + $("#fgsdm").attr("disabled", false);
  247 + } else {
  248 + var temp = tempData[$("#line").val()].split(":");
  249 + $("#gsdm").val(temp[0]);
  250 + updateCompany();
  251 + $("#fgsdm").val(temp[1]);
  252 + $("#gsdm").attr("disabled", true);
  253 + $("#fgsdm").attr("disabled", true);
  254 + }
  255 + });
  256 +
  257 +
  258 + //查询
  259 + $("#query").on('click',function(){
  260 + var line = $("#line").val();
  261 + var date = $("#date").val();
  262 + var endDate = $("#endDate").val();
  263 + var fgs=$('#fgsdm').val();
  264 + var gs=$('#gsdm').val();
  265 + var i = layer.load(2);
  266 + $get('/busInterval/onTime',{line:line,startDate:date,endDate:endDate,gs:gs,fgs:fgs},function(result){
  267 + var onTime = template('onTime',{list:result});
  268 + $('#forms tbody').html(onTime);
  269 + $('#forms_h tbody').html(template('onTime_h',{list:result}));
  270 + $('.btn-onTime').on('click', showSheetList);
  271 + layer.close(i);
  272 + });
  273 + });
  274 + function showSheetList(){
  275 + var line = $(this).data('id');
  276 + var date = $("#date").val();
  277 + var endDate = $("#endDate").val();
  278 + var fgs=$('#fgsdm').val();
  279 + var gs=$('#gsdm').val();
  280 + var i = layer.load(2);
  281 + $get('/busInterval/onTime',{line:line,startDate:date,endDate:endDate,gs:gs,fgs:fgs,flag:1},function(result){
  282 + var onTime = template('onTime_1',{list:result});
  283 + $('#forms_1 tbody').html(onTime);
  284 + $('#forms_1_h tbody').html(template('onTime_1_h',{list:result}));
  285 + $("#forms_1 .hidden").removeClass("hidden");
  286 + $('.btn-onTime_1').on('click', openSheetList);
  287 + $("#export_1").removeClass("hidden");
  288 + $("html,body").animate({scrollTop:$("#forms_1").offset().top},1000);
  289 + layer.close(i);
  290 + });
  291 + }
  292 + function openSheetList(){
  293 + var id = $(this).data('id');
  294 + var date = id.split("_")[0];
  295 + var endDate = date;
  296 + var line = id.split("_")[1];
  297 + var fgs=$('#fgsdm').val();
  298 + var gs=$('#gsdm').val();
  299 + $.get('/pages/punctual/list.html', function (content) {
  300 + layer.open({
  301 + type: 1,
  302 + area: ['800px', '600px'],
  303 + content: content,
  304 + title: '线路准点率详细 - ' + id.split("_")[2] + ' - ' + date,
  305 + shift: 5,
  306 + scrollbar: false,
  307 + success: function () {
  308 + $('#onTime').trigger('init', id);
  309 + $('#onTime').unbind();
  310 + }
  311 + });
  312 + });
  313 + }
  314 + $("#export").on("click",function(){
  315 + var date = $("#date").val();
  316 + var endDate = $("#endDate").val();
  317 + $("#forms_h").table2excel({
  318 + // 不被导出的表格行的CSS class类
  319 + exclude: ".noExl",
  320 + // 导出的Excel文档的名称,(没看到作用)
  321 + name: "Excel Document Name.xlsx",
  322 + // Excel文件的名称
  323 + filename: date+"-"+endDate+"发车到站准点率"
  324 + });
  325 + })
  326 +
  327 + $("#export_1").on("click",function(){
  328 + var date = $("#date").val();
  329 + var endDate = $("#endDate").val();
  330 + $("#forms_1_h").table2excel({
  331 + // 不被导出的表格行的CSS class类
  332 + exclude: ".noExl",
  333 + // 导出的Excel文档的名称,(没看到作用)
  334 + name: "Excel Document Name.xlsx",
  335 + // Excel文件的名称
  336 + filename: date+"-"+endDate+"发车到站准点率"
  337 + });
  338 + })
  339 +
  340 + });
  341 +</script>
  342 +<script type="text/html" id="onTime">
  343 + {{each list as obj i}}
  344 + <tr>
  345 + <td>{{obj.gs}}</td>
  346 + <td>{{obj.fgs}}</td>
  347 + <td>{{obj.line}}</td>
  348 + <td>{{obj.bcs}}</td>
  349 + <td>{{obj.fczd}}</td>
  350 + <td>{{obj.zdzd}}</td>
  351 + <td>{{obj.fczdl}}</td>
  352 + <td>{{obj.zdzdl}}</td>
  353 + <td>
  354 + <button type="button" class="btn btn-sm blue btn-onTime"
  355 + data-id="{{obj.xlbm}}">查看</button>
  356 + </td>
  357 + </tr>
  358 + {{/each}}
  359 + {{if list.length == 0}}
  360 + <tr>
  361 + <td colspan="9"><h6 class="muted">没有找到相关数据</h6></td>
  362 + </tr>
  363 + {{/if}}
  364 +</script>
  365 +
  366 +<script type="text/html" id="onTime_h">
  367 + {{each list as obj i}}
  368 + <tr>
  369 + <td>{{obj.gs}}</td>
  370 + <td>{{obj.fgs}}</td>
  371 + <td>{{obj.line}}</td>
  372 + <td>{{obj.bcs}}</td>
  373 + <td>{{obj.fczd}}</td>
  374 + <td>{{obj.zdzd}}</td>
  375 + <td>{{obj.fczdl}}</td>
  376 + <td>{{obj.zdzdl}}</td>
  377 + </tr>
  378 + {{/each}}
  379 + {{if list.length == 0}}
  380 + <tr>
  381 + <td colspan="9"><h6 class="muted">没有找到相关数据</h6></td>
  382 + </tr>
  383 + {{/if}}
  384 +</script>
  385 +
  386 +<script type="text/html" id="onTime_1">
  387 + {{each list as obj i}}
  388 + <tr>
  389 + <td>{{obj.gs}}</td>
  390 + <td>{{obj.fgs}}</td>
  391 + <td>{{obj.date}}</td>
  392 + <td>{{obj.line}}</td>
  393 + <td>{{obj.bcs}}</td>
  394 + <td>{{obj.fczd}}</td>
  395 + <td>{{obj.zdzd}}</td>
  396 + <td>{{obj.fczdl}}</td>
  397 + <td>{{obj.zdzdl}}</td>
  398 + <td>
  399 + <button type="button" class="btn btn-sm blue btn-onTime_1"
  400 + data-id="{{obj.xl_date}}">详细</button>
  401 + </td>
  402 + </tr>
  403 + {{/each}}
  404 + {{if list.length == 0}}
  405 + <tr>
  406 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  407 + </tr>
  408 + {{/if}}
  409 +</script>
  410 +
  411 +
  412 +<script type="text/html" id="onTime_1_h">
  413 + {{each list as obj i}}
  414 + <tr>
  415 + <td>{{obj.gs}}</td>
  416 + <td>{{obj.fgs}}</td>
  417 + <td>{{obj.date}}</td>
  418 + <td>{{obj.line}}</td>
  419 + <td>{{obj.bcs}}</td>
  420 + <td>{{obj.fczd}}</td>
  421 + <td>{{obj.zdzd}}</td>
  422 + <td>{{obj.fczdl}}</td>
  423 + <td>{{obj.zdzdl}}</td>
  424 + </tr>
  425 + {{/each}}
  426 + {{if list.length == 0}}
  427 + <tr>
  428 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  429 + </tr>
  430 + {{/if}}
  431 +</script>
0 \ No newline at end of file 432 \ No newline at end of file
src/main/resources/static/pages/report/inoutstation.html
@@ -419,6 +419,8 @@ @@ -419,6 +419,8 @@
419 layer.msg("请选择时间"); 419 layer.msg("请选择时间");
420 }else if(zdlx=="" || zdlx==null){ 420 }else if(zdlx=="" || zdlx==null){
421 layer.msg("请选择方向"); 421 layer.msg("请选择方向");
  422 + }else if(zd=="" || zd==null){
  423 + layer.msg("请选择站点");
422 }else{ 424 }else{
423 var xlmc="线路: "+$("#select2-line-container").html(); 425 var xlmc="线路: "+$("#select2-line-container").html();
424 var rqmc="日期: "+date1+"-"+date2; 426 var rqmc="日期: "+date1+"-"+date2;
src/main/resources/static/pages/report/sheet/sheetList.html
@@ -143,27 +143,28 @@ @@ -143,27 +143,28 @@
143 if (!$('body').hasClass('page-sidebar-closed')) 143 if (!$('body').hasClass('page-sidebar-closed'))
144 $('.menu-toggler.sidebar-toggler').click(); 144 $('.menu-toggler.sidebar-toggler').click();
145 145
146 - $("#date").datetimepicker({  
147 - format : 'YYYY-MM-DD',  
148 - locale : 'zh-cn'  
149 - });  
150 - $("#endDate").datetimepicker({  
151 - format : 'YYYY-MM-DD',  
152 - locale : 'zh-cn'  
153 - });  
154 var d = new Date(); 146 var d = new Date();
  147 + d.setTime(d.getTime() - 1*1000*60*60*24);
155 var year = d.getFullYear(); 148 var year = d.getFullYear();
156 var month = d.getMonth() + 1; 149 var month = d.getMonth() + 1;
157 var day = d.getDate(); 150 var day = d.getDate();
  151 + if(month < 10)
  152 + month = "0"+month;
158 if(day < 10) 153 if(day < 10)
159 day = "0"+day; 154 day = "0"+day;
160 - if(month > 9){  
161 - $("#date").val(year + "-" + month + "-" + day);  
162 - $("#endDate").val(year + "-" + month + "-" + day);  
163 - } else {  
164 - $("#date").val(year + "-0" + month + "-" + day);  
165 - $("#endDate").val(year + "-" + month + "-" + day);  
166 - } 155 + var dateTime = year + "-" + month + "-" + day;
  156 + $("#date").datetimepicker({
  157 + format : 'YYYY-MM-DD',
  158 + locale : 'zh-cn',
  159 + maxDate : dateTime
  160 + });
  161 + $("#endDate").datetimepicker({
  162 + format : 'YYYY-MM-DD',
  163 + locale : 'zh-cn',
  164 + maxDate : dateTime
  165 + });
  166 + $("#date").val(dateTime);
  167 + $("#endDate").val(dateTime);
167 168
168 var fage=false; 169 var fage=false;
169 var obj = []; 170 var obj = [];
@@ -205,6 +206,7 @@ @@ -205,6 +206,7 @@
205 } 206 }
206 } 207 }
207 $('#fgsdm').html(options); 208 $('#fgsdm').html(options);
  209 + }
208 210
209 var tempData = {}; 211 var tempData = {};
210 $.get('/report/lineList',function(xlList){ 212 $.get('/report/lineList',function(xlList){
@@ -242,7 +244,6 @@ @@ -242,7 +244,6 @@
242 $("#fgsdm").attr("disabled", true); 244 $("#fgsdm").attr("disabled", true);
243 } 245 }
244 }); 246 });
245 - }  
246 247
247 248
248 249
src/main/resources/static/pages/trafficManage/js/lineStationUpload.js
@@ -13,45 +13,49 @@ @@ -13,45 +13,49 @@
13 */ 13 */
14 14
15 (function(){ 15 (function(){
  16 + function getComp(cb) {
  17 + $.get('/user/companyData',null,function(rs) {
  18 + return cb && cb(rs);
  19 + });
  20 + }
  21 +
  22 + initLineSelect2();
16 23
17 - $('#line').select2({  
18 - ajax: {  
19 - url: '/realSchedule/findLine',  
20 - type: 'post',  
21 - dataType: 'json',  
22 - delay: 150,  
23 - data: function(params){  
24 - return{line: params.term};  
25 - },  
26 - processResults: function (data) {  
27 - return {  
28 - results: data  
29 - };  
30 - },  
31 - cache: true  
32 - },  
33 - templateResult: function(repo){  
34 - if (repo.loading) return repo.text;  
35 - var h = '<span>'+repo.text+'</span>';  
36 - return h;  
37 - },  
38 - escapeMarkup: function (markup) { return markup; },  
39 - minimumInputLength: 1,  
40 - templateSelection: function(repo){  
41 - return repo.text;  
42 - },  
43 - language: {  
44 - noResults: function(){  
45 - return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>';  
46 - },  
47 - inputTooShort : function(e) {  
48 - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>';  
49 - },  
50 - searching : function() {  
51 - return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>'; 24 + function initLineSelect2(compD) {
  25 + getComp(function(rs) {
  26 + var params = {};
  27 + if(rs.length>0) {
  28 + var compA = new Array();
  29 + for(var c = 0 ; c<rs.length;c++) {
  30 + var comC = rs[c].companyCode;
  31 + var child = rs[c].children;
  32 + if(child.length>0) {
  33 + for(var d = 0 ;d< child.length;d++) {
  34 + compA.push(comC + '_' + child[d].code);
  35 + }
  36 + }else {
  37 + compA.push(comC);
  38 + }
  39 + }
  40 + params.cgsbm_in = compA.toString();
52 } 41 }
53 - }  
54 - }); 42 + params["remove_ne"] = 1;
  43 + // 填充线路拉框选择值
  44 + $get('/line/all', params, function(array){
  45 + var len_ = array.length,paramsD = new Array();
  46 + if(len_>0) {
  47 + $.each(array, function(i, g){
  48 + if(g.name!='' || g.name != null) {
  49 + paramsD.push({'id':g.id ,'text':g.name});
  50 + }
  51 + });
  52 + initPinYinSelect2($('#line'),paramsD,function(selector) {
  53 + selector.select2("val", storage.xlName_AgursData);
  54 + });
  55 + }
  56 + });
  57 + });
  58 + }
55 59
56 // 绑定查询事件 60 // 绑定查询事件
57 $("#search").click(searchM); 61 $("#search").click(searchM);
src/main/resources/static/pages/trafficManage/js/lineStationUploadRecord.js
@@ -49,6 +49,7 @@ @@ -49,6 +49,7 @@
49 } 49 }
50 params.cgsbm_in = compA.toString(); 50 params.cgsbm_in = compA.toString();
51 } 51 }
  52 + params["remove_ne"] = 1;
52 // 填充线路拉框选择值 53 // 填充线路拉框选择值
53 $get('/line/all', params, function(array){ 54 $get('/line/all', params, function(array){
54 var len_ = array.length,paramsD = new Array(); 55 var len_ = array.length,paramsD = new Array();
src/main/resources/static/pages/trafficManage/js/shLineCodeList.js
@@ -34,8 +34,9 @@ @@ -34,8 +34,9 @@
34 } 34 }
35 var lines = new Array(); 35 var lines = new Array();
36 var gsmap = getBusMap(); 36 var gsmap = getBusMap();
  37 + var pars = {"remove_ne":1};
37 // 取得所有线路 38 // 取得所有线路
38 - $get('/line/all', null, function(allLine) { 39 + $get('/line/all', pars, function(allLine) {
39 // 遍历数组 40 // 遍历数组
40 $.each(allLine, function(i, e) { 41 $.each(allLine, function(i, e) {
41 var companyCode = e.company; 42 var companyCode = e.company;
src/main/resources/static/pages/trafficManage/js/timeTempletUpload.js
@@ -13,66 +13,51 @@ @@ -13,66 +13,51 @@
13 */ 13 */
14 14
15 (function(){ 15 (function(){
16 - /**  
17 - * 取得编码-公司map  
18 - * gsmap["5"] = 南汇公司  
19 - * gsmap["5_3"] = 芦潮港分公司  
20 - */  
21 - function getBusMap(){  
22 - // 取得公司信息,替换公司编码  
23 - var gsmap = {};  
24 - $get('/business/all', null, function(array){  
25 - $.each(array, function(i, gs){  
26 - var k = gs.upCode + '_' + gs.businessCode;  
27 - if(gs.upCode === '88'){  
28 - k = gs.businessCode;  
29 - }  
30 - gsmap[k] = gs.businessName;  
31 - });  
32 - });  
33 - return gsmap;  
34 - }  
35 - var lines = new Array();  
36 - var gsmap = getBusMap();  
37 -  
38 - $('#line').select2({  
39 - ajax: {  
40 - url: '/realSchedule/findLine',  
41 - type: 'post',  
42 - dataType: 'json',  
43 - delay: 150,  
44 - data: function(params){  
45 - return{line: params.term};  
46 - },  
47 - processResults: function (data) {  
48 - return {  
49 - results: data  
50 - };  
51 - },  
52 - cache: true  
53 - },  
54 - templateResult: function(repo){  
55 - if (repo.loading) return repo.text;  
56 - var h = '<span>'+repo.text+'</span>';  
57 - return h;  
58 - },  
59 - escapeMarkup: function (markup) { return markup; },  
60 - minimumInputLength: 1,  
61 - templateSelection: function(repo){  
62 - return repo.text;  
63 - },  
64 - language: {  
65 - noResults: function(){  
66 - return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>';  
67 - },  
68 - inputTooShort : function(e) {  
69 - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>';  
70 - },  
71 - searching : function() {  
72 - return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>';  
73 - }  
74 - }  
75 - }); 16 +
  17 + function getComp(cb) {
  18 + $.get('/user/companyData',null,function(rs) {
  19 + return cb && cb(rs);
  20 + });
  21 + }
  22 +
  23 + initLineSelect2();
  24 +
  25 + function initLineSelect2(compD) {
  26 + getComp(function(rs) {
  27 + var params = {};
  28 + if(rs.length>0) {
  29 + var compA = new Array();
  30 + for(var c = 0 ; c<rs.length;c++) {
  31 + var comC = rs[c].companyCode;
  32 + var child = rs[c].children;
  33 + if(child.length>0) {
  34 + for(var d = 0 ;d< child.length;d++) {
  35 + compA.push(comC + '_' + child[d].code);
  36 + }
  37 + }else {
  38 + compA.push(comC);
  39 + }
  40 + }
  41 + params.cgsbm_in = compA.toString();
  42 + }
  43 + params["remove_ne"] = 1;
  44 + // 填充线路拉框选择值
  45 + $get('/line/all', params, function(array){
  46 + var len_ = array.length,paramsD = new Array();
  47 + if(len_>0) {
  48 + $.each(array, function(i, g){
  49 + if(g.name!='' || g.name != null) {
  50 + paramsD.push({'id':g.id ,'text':g.name});
  51 + }
  52 + });
  53 + initPinYinSelect2($('#line'),paramsD,function(selector) {
  54 + selector.select2("val", storage.xlName_AgursData);
  55 + });
  56 + }
  57 + });
  58 + });
  59 + }
  60 +
76 61
77 // 绑定查询事件 62 // 绑定查询事件
78 $("#search").click(searchM); 63 $("#search").click(searchM);
src/main/resources/static/pages/trafficManage/js/timeTempletUploadRecord.js
@@ -88,6 +88,7 @@ @@ -88,6 +88,7 @@
88 } 88 }
89 var lines = new Array(); 89 var lines = new Array();
90 var gsmap = getBusMap(); 90 var gsmap = getBusMap();
  91 + params["remove_ne"] = 1;
91 // 取得所有线路 92 // 取得所有线路
92 $get('/line/all', params, function(allLine) { 93 $get('/line/all', params, function(allLine) {
93 // 遍历数组 94 // 遍历数组
src/main/resources/static/real_control_v2/alone_page/map/alone_data_basic.js
@@ -57,7 +57,7 @@ var gb_data_basic = (function () { @@ -57,7 +57,7 @@ var gb_data_basic = (function () {
57 ep.emit('all_personnel', data); 57 ep.emit('all_personnel', data);
58 }); 58 });
59 function loadAllPersonnel(cb) { 59 function loadAllPersonnel(cb) {
60 - $.get('/personnel/all_py', function (rs) { 60 + $.get('/basic/all_personnel_py', function (rs) {
61 //转换成自动补全组件需要的数据 61 //转换成自动补全组件需要的数据
62 var data = [], code; 62 var data = [], code;
63 for(var i =0, p; p = rs[i++];){ 63 for(var i =0, p; p = rs[i++];){
src/main/resources/static/real_control_v2/js/data/data_basic.js
@@ -56,7 +56,7 @@ var gb_data_basic = (function () { @@ -56,7 +56,7 @@ var gb_data_basic = (function () {
56 ep.emit('all_personnel', data); 56 ep.emit('all_personnel', data);
57 }); 57 });
58 function loadAllPersonnel(cb) { 58 function loadAllPersonnel(cb) {
59 - $.get('/personnel/all_py', function (rs) { 59 + $.get('/basic/all_personnel_py', function (rs) {
60 //转换成自动补全组件需要的数据 60 //转换成自动补全组件需要的数据
61 var data = [], code; 61 var data = [], code;
62 for(var i =0, p; p = rs[i++];){ 62 for(var i =0, p; p = rs[i++];){
src/main/resources/static/real_control_v2/js/forms/wrap.html
@@ -192,6 +192,10 @@ @@ -192,6 +192,10 @@
192 }); 192 });
193 193
194 cb && cb($(selector)); 194 cb && cb($(selector));
  195 +
  196 + setTimeout(function(){
  197 + $('#line', '.form-page-content').trigger('change');
  198 + }, 500);
195 }); 199 });
196 200
197 return $(selector); 201 return $(selector);
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
@@ -37,6 +37,8 @@ var gb_schedule_table = (function () { @@ -37,6 +37,8 @@ var gb_schedule_table = (function () {
37 rs[lineCode].sort(schedule_sort); 37 rs[lineCode].sort(schedule_sort);
38 //calc shift 38 //calc shift
39 $.each(rs[lineCode], function () { 39 $.each(rs[lineCode], function () {
  40 + if(this.status==-1)
  41 + clearActualTime(this);
40 calc_sch_real_shift(this); 42 calc_sch_real_shift(this);
41 line2Schedule[lineCode][this.id] = this; 43 line2Schedule[lineCode][this.id] = this;
42 //子任务公里是否与计划平 44 //子任务公里是否与计划平
@@ -246,6 +248,8 @@ var gb_schedule_table = (function () { @@ -246,6 +248,8 @@ var gb_schedule_table = (function () {
246 gb_schedule_table_dbclick.init(); 248 gb_schedule_table_dbclick.init();
247 //重新初始化双击实发发车信息微调 249 //重新初始化双击实发发车信息微调
248 gb_schedule_table_dbclick.sfsjCellClick($('dd.fcsjActualCell', tabCont)); 250 gb_schedule_table_dbclick.sfsjCellClick($('dd.fcsjActualCell', tabCont));
  251 + //重新初始化双击车辆
  252 + gb_schedule_table_dbclick.carCellClick($('.ct_table_body dd[data-nbbm]'));
249 //滚动条 253 //滚动条
250 $('.schedule-wrap .ct_table_wrap', tabCont).perfectScrollbar({suppressScrollX: true}); 254 $('.schedule-wrap .ct_table_wrap', tabCont).perfectScrollbar({suppressScrollX: true});
251 255
@@ -308,6 +312,8 @@ var gb_schedule_table = (function () { @@ -308,6 +312,8 @@ var gb_schedule_table = (function () {
308 //var tMaps = {}; 312 //var tMaps = {};
309 $.each(schArr, function () { 313 $.each(schArr, function () {
310 try { 314 try {
  315 + if(this.status==-1)
  316 + clearActualTime(this);
311 //子任务公里是否与计划平 317 //子任务公里是否与计划平
312 this.c_t_mileage_status = calcCTaskMileageStatus(this); 318 this.c_t_mileage_status = calcCTaskMileageStatus(this);
313 line2Schedule[this.xlBm][this.id] = this; 319 line2Schedule[this.xlBm][this.id] = this;
@@ -332,6 +338,8 @@ var gb_schedule_table = (function () { @@ -332,6 +338,8 @@ var gb_schedule_table = (function () {
332 if (!isArray(schArr)) 338 if (!isArray(schArr))
333 schArr = [schArr]; 339 schArr = [schArr];
334 $.each(schArr, function () { 340 $.each(schArr, function () {
  341 + if(this.status==-1)
  342 + clearActualTime(this);
335 line2Schedule[this.xlBm][this.id] = this; 343 line2Schedule[this.xlBm][this.id] = this;
336 }); 344 });
337 }; 345 };
@@ -795,6 +803,17 @@ var gb_schedule_table = (function () { @@ -795,6 +803,17 @@ var gb_schedule_table = (function () {
795 } 803 }
796 }; 804 };
797 805
  806 + var clearActualTime = function (sch) {
  807 + try{
  808 + sch.fcsjActual=null;
  809 + sch.fcsjActualTime=null;
  810 + sch.zdsjActual=null;
  811 + sch.zdsjActualTime=null;
  812 + }catch (e){
  813 + console.log(e);
  814 + }
  815 + };
  816 +
798 return { 817 return {
799 show: show, 818 show: show,
800 findScheduleByLine: findScheduleByLine, 819 findScheduleByLine: findScheduleByLine,
src/main/resources/static/real_control_v2/js/safe_driv/safeDriv.js
@@ -20,10 +20,10 @@ var gb_safe_driv = (function () { @@ -20,10 +20,10 @@ var gb_safe_driv = (function () {
20 var max = 5; 20 var max = 5;
21 21
22 var pop = function (sd) { 22 var pop = function (sd) {
23 - //只有admin用户能收到 23 + /*//只有admin用户能收到
24 var user = gb_northToolbar.user(); 24 var user = gb_northToolbar.user();
25 if (!user || user.userName.indexOf('admin') == -1) 25 if (!user || user.userName.indexOf('admin') == -1)
26 - return; 26 + return;*/
27 27
28 //时间格式化 28 //时间格式化
29 var stm = moment(sd.ts); 29 var stm = moment(sd.ts);
@@ -60,7 +60,7 @@ var gb_safe_driv = (function () { @@ -60,7 +60,7 @@ var gb_safe_driv = (function () {
60 '</div>'; 60 '</div>';
61 61
62 $wrap.on('click', '.safe_driv_pop', function () { 62 $wrap.on('click', '.safe_driv_pop', function () {
63 - var title = $(this).data('title') + '&nbsp;<button data-nbbm="'+$(this).data('nbbm')+'" class="uk-button uk-button-mini uk-button-primary" id="openPhoneModalBtn" type="button">打电话</button>'; 63 + var title = $(this).data('title');// + '&nbsp;<button data-nbbm="'+$(this).data('nbbm')+'" class="uk-button uk-button-mini uk-button-primary" id="openPhoneModalBtn" type="button">打电话</button>';
64 var url = $(this).data('url'); 64 var url = $(this).data('url');
65 $(this).remove(); 65 $(this).remove();
66 var lightbox = UIkit.lightbox.create([ 66 var lightbox = UIkit.lightbox.create([
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
@@ -99,7 +99,11 @@ @@ -99,7 +99,11 @@
99 /** 99 /**
100 * 默认显示完整的地图轨迹 100 * 默认显示完整的地图轨迹
101 */ 101 */
102 - play_before_goto(gpsArray.length - 1); 102 + try{
  103 + play_before_goto(gpsArray.length - 1);
  104 + }catch (e){
  105 + console.log(e);
  106 + }
103 play_before_flag=true; 107 play_before_flag=true;
104 }); 108 });
105 109