Commit ca7ada0af21f3b71ac47713b1a8c93f1b0c5667b

Authored by 徐烜
1 parent ace4e67e

处理代码冲突

Too many changes to show.

To preserve performance only 9 of 24 files are displayed.

src/main/java/com/bsth/XDApplication.java
1 -<<<<<<< HEAD  
2 -package com.bsth;  
3 -  
4 -import com.bsth.data.BasicData;  
5 -import com.bsth.data.LineVersionsData;  
6 -import com.bsth.data.ThreadMonotor;  
7 -import com.bsth.data.car_out_info.UpdateDBThread;  
8 -import com.bsth.data.directive.DirectivesPstThread;  
9 -import com.bsth.data.forecast.SampleTimeDataLoader;  
10 -import com.bsth.data.gpsdata_v2.thread.GpsDataLoaderThread;  
11 -import com.bsth.data.gpsdata_v2.thread.OfflineMonitorThread;  
12 -import com.bsth.data.msg_queue.DirectivePushQueue;  
13 -import com.bsth.data.msg_queue.WebSocketPushQueue;  
14 -import com.bsth.data.safe_driv.SafeDrivDataLoadThread;  
15 -import com.bsth.data.schedule.DayOfSchedule;  
16 -import com.bsth.data.schedule.auto_exec.AutoExecScanThread;  
17 -import com.bsth.data.schedule.e_state_check.thread.FixedCheckStationCodeThread;  
18 -import com.bsth.data.schedule.edit_logs.SeiPstThread;  
19 -import com.bsth.data.schedule.late_adjust.ScheduleLateThread;  
20 -import com.bsth.data.schedule.signal.SchSiginUpdateDBThread;  
21 -import com.bsth.data.schedule.thread.CalcOilThread;  
22 -import com.bsth.data.schedule.thread.SchedulePstThread;  
23 -import com.bsth.data.schedule.thread.ScheduleRefreshThread;  
24 -import com.bsth.data.schedule.thread.SubmitToTrafficManage;  
25 -import com.bsth.util.DateUtils;  
26 -import com.bsth.util.Tools;  
27 -import org.slf4j.Logger;  
28 -import org.slf4j.LoggerFactory;  
29 -import org.springframework.beans.factory.annotation.Autowired;  
30 -import org.springframework.boot.CommandLineRunner;  
31 -import org.springframework.stereotype.Component;  
32 -  
33 -import java.util.concurrent.ScheduledExecutorService;  
34 -import java.util.concurrent.TimeUnit;  
35 -  
36 -/**  
37 - * 线调大部分服务都在这里启动  
38 - * Created by panzhao on 2017/5/14.  
39 - */  
40 -@Component  
41 -public class XDApplication implements CommandLineRunner {  
42 -  
43 - Logger log = LoggerFactory.getLogger(this.getClass());  
44 -  
45 - @Autowired  
46 - BasicData.BasicDataLoader basicDataLoader;  
47 - @Autowired  
48 - UpdateDBThread fcxxUpdateThread;  
49 - @Autowired  
50 - ScheduleRefreshThread scheduleRefreshThread;  
51 - @Autowired  
52 - SchedulePstThread schedulePstThread;  
53 - @Autowired  
54 - ScheduleLateThread scheduleLateThread;  
55 - @Autowired  
56 - SubmitToTrafficManage submitToTrafficManage;  
57 - @Autowired  
58 - CalcOilThread calcOilThread;  
59 - @Autowired  
60 - DirectivesPstThread directivesPstThread;  
61 - @Autowired  
62 - ThreadMonotor threadMonotor;  
63 - @Autowired  
64 - SeiPstThread seiPstThread;  
65 - @Autowired  
66 - SampleTimeDataLoader sampleTimeDataLoader;  
67 - @Autowired  
68 - SchSiginUpdateDBThread schSiginUpdateDBThread;  
69 - @Autowired  
70 - AutoExecScanThread autoExecScanThread;  
71 -  
72 - @Autowired  
73 - GpsDataLoaderThread gpsDataLoader;  
74 -  
75 - @Autowired  
76 - OfflineMonitorThread offlineMonitorThread;  
77 -  
78 - @Autowired  
79 - LineVersionsData lineVersionsData;  
80 -  
81 - /*@Autowired  
82 - FixedEnableVerionsThread fixedEnableVerionsThread;*/  
83 -  
84 - @Autowired  
85 - SafeDrivDataLoadThread safeDrivDataLoadThread;  
86 -  
87 - @Autowired  
88 - FixedCheckStationCodeThread fixedCheckStationCodeThread;  
89 -  
90 - private static long timeDiff;  
91 - private static long timeDiffTraffic;  
92 -  
93 - static {  
94 - // 早上2:20  
95 - timeDiff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();  
96 - if (timeDiff < 0)  
97 - timeDiff += (1000 * 60 * 60 * 24);  
98 - // 早上07:00  
99 - timeDiffTraffic = (DateUtils.getTimestamp() + 1000 * 60 * 60 * 7) - System.currentTimeMillis();  
100 - if (timeDiffTraffic < 0)  
101 - timeDiffTraffic += (1000 * 60 * 60 * 24);  
102 - }  
103 -  
104 - @Override  
105 - public void run(String... strings) throws Exception {  
106 - try {  
107 - Tools tools = new Tools("application.properties");  
108 - String environment = tools.getValue("spring.profiles.active");  
109 - //预先加载基础的对照数据  
110 - basicDataLoader.loadAllData();  
111 - switch (environment){  
112 - case "dev":  
113 - devInit();  
114 - break;  
115 - case "prod":  
116 - prodInit();  
117 - break;  
118 - }  
119 - }catch (Exception e){  
120 - log.error("线调后台启动出现异常!!", e);  
121 - System.exit(1);  
122 - }  
123 - }  
124 -  
125 - @Autowired  
126 - DayOfSchedule dayOfSchedule;  
127 - public void devInit(){  
128 - log.info("devInit...");  
129 - ScheduledExecutorService sexec = Application.mainServices;  
130 - //抓取GPS数据  
131 - GpsDataLoaderThread.setFlag(-1);  
132 - //dayOfSchedule.dataRecovery();  
133 - //sexec.scheduleWithFixedDelay(gpsDataLoader, 60, 4, TimeUnit.SECONDS);  
134 - //实际排班更新线程  
135 - //sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);  
136 - //sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 30, TimeUnit.SECONDS);//检查班次误点  
137 - //sexec.scheduleWithFixedDelay(autoExecScanThread, 100, 50, TimeUnit.SECONDS);//班次自动执行  
138 - //WebSocketPushQueue.start();//消息队列 -webSocket ,推送至线调web页面的  
139 -  
140 - //sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 50, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码  
141 - //实际排班延迟入库线程  
142 - //sexec.scheduleWithFixedDelay(schedulePstThread, 60, 15, TimeUnit.SECONDS);  
143 - //班次修正日志延迟入库  
144 - //sexec.scheduleWithFixedDelay(seiPstThread, 60, 30, TimeUnit.SECONDS);  
145 - //调度指令延迟入库  
146 - //sexec.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);  
147 - //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)  
148 - //sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);  
149 -  
150 - //安全驾驶  
151 - //sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 40, 30, TimeUnit.SECONDS);  
152 -  
153 - //sexec.scheduleWithFixedDelay(fixedEnableVerionsThread, 20, 60 * 2 , TimeUnit.SECONDS);  
154 - }  
155 -  
156 - public void prodInit(){  
157 - log.info("prodInit...");  
158 - ScheduledExecutorService sexec = Application.mainServices;  
159 - //安全驾驶  
160 - //sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS);  
161 -  
162 - /** 线调业务 */  
163 - sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程  
164 - sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点  
165 - GpsDataLoaderThread.setFlag(-1);  
166 - sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据  
167 - sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码  
168 -  
169 - sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线  
170 - sexec.scheduleWithFixedDelay(schedulePstThread, 180, 10, TimeUnit.SECONDS);//班次延迟入库线程  
171 - sexec.scheduleWithFixedDelay(seiPstThread, 180, 60, TimeUnit.SECONDS);//班次修正日志入库  
172 - sexec.scheduleWithFixedDelay(directivesPstThread, 120, 60, TimeUnit.SECONDS);//调度指令延迟入库  
173 - //sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);//线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)  
174 - sexec.scheduleWithFixedDelay(sampleTimeDataLoader, 140, 120 * 60, TimeUnit.SECONDS);//到离站预测需要的站点间耗时数据  
175 - sexec.scheduleWithFixedDelay(basicDataLoader, 1, 1, TimeUnit.HOURS);//基础数据更新  
176 - sexec.scheduleWithFixedDelay(autoExecScanThread, 180, 50, TimeUnit.SECONDS);//班次自动执行  
177 - DirectivePushQueue.start();//消息队列 -指令,系统下发的  
178 - WebSocketPushQueue.start();//消息队列 -webSocket ,推送至线调web页面的  
179 -  
180 - /** 线调为其他程序提供的数据 --写入数据库 */  
181 - sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布)  
182 - //线路首末班数据(网关用,班次更新时写入)  
183 - //com.bsth.data.schedule.f_a_l.FirstAndLastHandler  
184 - sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号)  
185 -  
186 - //运管处静态数据提交  
187 - //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");  
188 - //sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiffTraffic / 1000, 60 * 60 * 24, TimeUnit.SECONDS);  
189 - //计算油、公里加注  
190 - sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);  
191 -  
192 - //线路版本更新  
193 - sexec.scheduleWithFixedDelay(lineVersionsData, 60 * 5, 60 * 15, TimeUnit.SECONDS);  
194 -  
195 - //线路版本更新  
196 - //sexec.scheduleWithFixedDelay(fixedEnableVerionsThread, 60 * 4, 60 * 2 , TimeUnit.SECONDS);  
197 - }  
198 -}  
199 -=======  
200 package com.bsth; 1 package com.bsth;
201 2
202 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
@@ -466,4 +267,3 @@ public class XDApplication implements CommandLineRunner { @@ -466,4 +267,3 @@ public class XDApplication implements CommandLineRunner {
466 //sexec.scheduleWithFixedDelay(fixedEnableVerionsThread, 60 * 4, 60 * 2 , TimeUnit.SECONDS); 267 //sexec.scheduleWithFixedDelay(fixedEnableVerionsThread, 60 * 4, 60 * 2 , TimeUnit.SECONDS);
467 } 268 }
468 } 269 }
469 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -5,25 +5,6 @@ import java.io.IOException; @@ -5,25 +5,6 @@ import java.io.IOException;
5 import java.io.InputStream; 5 import java.io.InputStream;
6 import java.io.OutputStream; 6 import java.io.OutputStream;
7 import java.net.HttpURLConnection; 7 import java.net.HttpURLConnection;
8 -<<<<<<< HEAD  
9 -import java.net.URL;  
10 -import java.util.ArrayList;  
11 -import java.util.Collection;  
12 -import java.util.HashMap;  
13 -import java.util.List;  
14 -import java.util.Map;  
15 -  
16 -import org.apache.commons.io.IOUtils;  
17 -import org.apache.commons.lang3.StringEscapeUtils;  
18 -import org.joda.time.format.DateTimeFormat;  
19 -import org.joda.time.format.DateTimeFormatter;  
20 -import org.springframework.beans.factory.annotation.Autowired;  
21 -import org.springframework.web.bind.annotation.PathVariable;  
22 -import org.springframework.web.bind.annotation.RequestMapping;  
23 -import org.springframework.web.bind.annotation.RequestMethod;  
24 -import org.springframework.web.bind.annotation.RequestParam;  
25 -import org.springframework.web.bind.annotation.RestController;  
26 -=======  
27 import java.net.MalformedURLException; 8 import java.net.MalformedURLException;
28 import java.net.URL; 9 import java.net.URL;
29 import java.net.URLEncoder; 10 import java.net.URLEncoder;
@@ -47,7 +28,6 @@ import org.joda.time.format.DateTimeFormat; @@ -47,7 +28,6 @@ import org.joda.time.format.DateTimeFormat;
47 import org.joda.time.format.DateTimeFormatter; 28 import org.joda.time.format.DateTimeFormatter;
48 import org.springframework.beans.factory.annotation.Autowired; 29 import org.springframework.beans.factory.annotation.Autowired;
49 import org.springframework.web.bind.annotation.*; 30 import org.springframework.web.bind.annotation.*;
50 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
51 31
52 import com.alibaba.fastjson.JSONArray; 32 import com.alibaba.fastjson.JSONArray;
53 import com.bsth.common.ResponseCode; 33 import com.bsth.common.ResponseCode;
@@ -58,1156 +38,996 @@ import com.bsth.data.BasicData; @@ -58,1156 +38,996 @@ import com.bsth.data.BasicData;
58 import com.bsth.data.schedule.DayOfSchedule; 38 import com.bsth.data.schedule.DayOfSchedule;
59 import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto; 39 import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto;
60 import com.bsth.entity.realcontrol.ScheduleRealInfo; 40 import com.bsth.entity.realcontrol.ScheduleRealInfo;
61 -<<<<<<< HEAD  
62 -import com.bsth.entity.schedule.SchedulePlanInfo;  
63 -import com.bsth.entity.sys.SysUser;  
64 -import com.bsth.security.util.SecurityUtils;  
65 -import com.bsth.service.realcontrol.ScheduleRealInfoService;  
66 -import com.bsth.util.ConfigUtil;  
67 -import com.fasterxml.jackson.databind.ObjectMapper;  
68 -=======  
69 import com.bsth.entity.report.RepairReport; 41 import com.bsth.entity.report.RepairReport;
70 import com.bsth.entity.schedule.SchedulePlanInfo; 42 import com.bsth.entity.schedule.SchedulePlanInfo;
71 import com.bsth.service.realcontrol.ScheduleRealInfoService; 43 import com.bsth.service.realcontrol.ScheduleRealInfoService;
72 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
73 44
74 @RestController 45 @RestController
75 @RequestMapping("/realSchedule") 46 @RequestMapping("/realSchedule")
76 public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, Long> { 47 public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, Long> {
77 48
78 - @Autowired  
79 - ScheduleRealInfoService scheduleRealInfoService;  
80 -  
81 - @Autowired  
82 - DayOfSchedule dayOfSchedule;  
83 -<<<<<<< HEAD  
84 - //待发时间调整时间  
85 - public static Long dfsj= 0L;  
86 - //待发时间调整  
87 - public Long dfsj(Long sj){  
88 - dfsj = sj;  
89 - return dfsj;  
90 - }  
91 -=======  
92 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
93 -  
94 - @RequestMapping(value = "check_fgs_ascription", method = RequestMethod.POST)  
95 - public Map<String, Object> checkPCFgsAscription(@RequestParam Long schId, String jGh, String sGh, String nbbm){  
96 - return scheduleRealInfoService.checkPCFgsAscription(schId, jGh, sGh, nbbm);  
97 - }  
98 -  
99 - @RequestMapping(value = "/lines")  
100 - public Map<String, Collection<ScheduleRealInfo>> findByLines(@RequestParam String lines) {  
101 - return scheduleRealInfoService.findByLines(lines);  
102 - }  
103 -  
104 - @RequestMapping(value = "/car")  
105 - public List<ScheduleRealInfo> findByCar(String nbbm){  
106 - return dayOfSchedule.findByNbbm(nbbm);  
107 - }  
108 -  
109 - /**  
110 - *  
111 - * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id  
112 - * 主键 @param @param remarks 备注 @param @param dfsj 待发时间(HH:mm) @throws  
113 - */  
114 - @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST)  
115 - public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks,  
116 - @RequestParam String dfsj,String bcType,  
117 - @RequestParam(defaultValue = "") String opType) {  
118 - return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType, opType, null);  
119 - }  
120 -  
121 -<<<<<<< HEAD  
122 -  
123 - /**  
124 - *  
125 - * @Title: outgoAdjust @Description: TODO(待发调整锁定待发)  
126 - *  
127 - */  
128 - @RequestMapping(value = "/outgoAdjusttwo", method = RequestMethod.POST)  
129 - public Map<String, Object> outgoAdjusttow(@RequestParam String dfsj) {  
130 - return scheduleRealInfoService.outgoAdjusttwo(dfsj);  
131 - }  
132 - /**  
133 - *  
134 - * @Title: outgoAdjust @Description: TODO(待发时间定义)  
135 - *  
136 - */  
137 - @RequestMapping(value = "/outgoAdjusttwodfsj", method = RequestMethod.POST)  
138 - public Long outgoAdjusttowdfsj(@RequestParam Long dfsj) {  
139 - return dfsj(dfsj);  
140 - }  
141 -  
142 - /**  
143 - *  
144 - * @Title: outgoAdjust @Description: TODO(待发时间查询)  
145 - *  
146 - */  
147 - @RequestMapping(value = "/outgoAdjusttwoxc", method = RequestMethod.POST)  
148 - public Long outgoAdjusttowdfsjxc() {  
149 - return dfsj;  
150 - }  
151 -  
152 -  
153 -=======  
154 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
155 - /**  
156 - *  
157 - * @Title: destroy @Description: TODO(销毁,烂班) @param @param idsStr 要烂掉的班次ID ,分隔  
158 - */  
159 - @RequestMapping(value = "/destroy", method = RequestMethod.POST)  
160 - public Map<String, Object> destroy(@RequestParam String idsStr  
161 - /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/,  
162 - @RequestParam String remarks, @RequestParam String adjustExps/*, @RequestParam(defaultValue = "0") int spaceNum*/) {  
163 - return scheduleRealInfoService.destroy(idsStr, remarks, adjustExps, null);  
164 - }  
165 -  
166 - /**  
167 - *  
168 - * @Title: carDeviceMapp @Description: TODO(获取车辆自编号和设备号对照,从缓存取) @throws  
169 - */  
170 - @RequestMapping(value = "/carDeviceMapp", method = RequestMethod.GET)  
171 - public Map<String, String> carDeviceMapp() {  
172 - return BasicData.deviceId2NbbmMap.inverse();  
173 - }  
174 -  
175 - /**  
176 - *  
177 - * @Title: findPersionByLine @Description: TODO(根据线路主键获取驾驶员) @param @param  
178 - * lineId @throws  
179 - */  
180 - @RequestMapping(value = "/driver", method = RequestMethod.GET)  
181 - public List<Map<String, String>> findDriverByLine(@RequestParam String lineCode) {  
182 - return scheduleRealInfoService.findDriverByLine(lineCode);  
183 - }  
184 -  
185 - /**  
186 - *  
187 - * @Title: findPersionByLine @Description: TODO(根据线路主键获取售票员) @param @param  
188 - * lineId @throws  
189 - */  
190 - @RequestMapping(value = "/conductor", method = RequestMethod.GET)  
191 - public List<Map<String, String>> findConductorByLine(@RequestParam String lineCode) {  
192 - return scheduleRealInfoService.findConductorByLine(lineCode);  
193 - }  
194 -  
195 - /**  
196 - *  
197 - * @Title: findPersionByLine @Description: TODO(根据线路主键获取车辆) @param @param  
198 - * lineId @throws  
199 - */  
200 - @RequestMapping(value = "/cars", method = RequestMethod.GET)  
201 - public List<Map<String, String>> findCarByLine(@RequestParam String lineCode) {  
202 - return scheduleRealInfoService.findCarByLine(lineCode);  
203 - }  
204 -  
205 - /**  
206 - *  
207 - * @Title: sreachNbbm @Description: TODO(搜索车辆内部编码) @throws  
208 - */  
209 - @RequestMapping(value = "/sreachVehic", method = RequestMethod.GET)  
210 - public List<Map<String, String>> sreachVehic(@RequestParam String nbbm) {  
211 - return scheduleRealInfoService.sreachVehic(nbbm);  
212 - }  
213 - /**  
214 - *  
215 - * @Title: realOutAdjust  
216 - * @Description: TODO(实发调整)  
217 - * @param @param id 班次ID  
218 - * @param @param fcsjActual 实际发车时间 HH:mm  
219 - * @param @param remarks 备注  
220 - * @throws  
221 - */  
222 - @RequestMapping(value = "/realOutAdjust", method = RequestMethod.POST)  
223 -<<<<<<< HEAD  
224 - public Map<String, Object> realOutAdjust(@RequestParam Long id, @RequestParam String fcsjActual,  
225 - @RequestParam String remarks) {  
226 - return scheduleRealInfoService.realOutAdjust(id, fcsjActual, remarks);  
227 -=======  
228 - public Map<String, Object> realOutAdjust(@RequestParam Map<String, String> map) {  
229 - return scheduleRealInfoService.realOutAdjust(map);  
230 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
231 - }  
232 -  
233 - /**  
234 - *  
235 - * @Title: revokeDestroy  
236 - * @Description: TODO(撤销烂班)  
237 - * @param @param id  
238 - * @throws  
239 - */  
240 - @RequestMapping(value = "/revokeDestroy", method = RequestMethod.POST)  
241 - public Map<String, Object> revokeDestroy(@RequestParam Long id){  
242 - return scheduleRealInfoService.revokeDestroy(id);  
243 - }  
244 -  
245 - /**  
246 - *  
247 - * @Title: revokeRealOutgo  
248 - * @Description: TODO(撤销实发)  
249 - * @param @param id  
250 - * @throws  
251 - */  
252 - @RequestMapping(value = "/revokeRealOutgo", method = RequestMethod.POST)  
253 - public Map<String, Object> revokeRealOutgo(@RequestParam Long id){  
254 - return scheduleRealInfoService.revokeRealOutgo(id);  
255 - }  
256 -  
257 - /**  
258 - * 撤销执行  
259 - * @param id  
260 - * @return  
261 - */  
262 - @RequestMapping(value = "/revokeRealArrive", method = RequestMethod.POST)  
263 - public Map<String, Object> revokeRealArrive(@RequestParam Long id){  
264 - return scheduleRealInfoService.revokeRealArrive(id);  
265 - }  
266 -  
267 - /**  
268 - *  
269 - * @Title: spaceAdjust  
270 - * @Description: TODO(间隔调整)  
271 - * @param @param ids 要调整的班次数组ID  
272 - * @param @param space 间隔  
273 - * @throws  
274 - */  
275 - @RequestMapping(value = "/spaceAdjust", method = RequestMethod.POST)  
276 - public Map<String, Object> spaceAdjust(Long[] ids, Integer space){  
277 - return scheduleRealInfoService.spaceAdjust(ids, space);  
278 - }  
279 -  
280 - /**  
281 - *  
282 - * @Title: schInfoFineTune  
283 - * @Description: TODO(发车信息微调)  
284 - * @param @param map  
285 - * @throws  
286 - */  
287 - @RequestMapping(value = "/schInfoFineTune", method = RequestMethod.POST)  
288 - public Map<String, Object> schInfoFineTune(@RequestParam Map<String, String> map){  
289 - return scheduleRealInfoService.schInfoFineTune(map);  
290 - }  
291 -  
292 - /**  
293 - *  
294 - * @Title: outgoAdjustAll  
295 - * @Description: TODO(批量待发调整)  
296 - * @param @param list  
297 - * @throws  
298 - */  
299 - @RequestMapping(value = "/outgoAdjustAll", method = RequestMethod.POST)  
300 - public Map<String, Object> outgoAdjustAll(@RequestParam String params){  
301 - //反转义  
302 - params = StringEscapeUtils.unescapeHtml4(params);  
303 - return scheduleRealInfoService.outgoAdjustAll(params);  
304 - }  
305 -  
306 - /**  
307 - *  
308 - * @Title: findByLineAndUpDown  
309 - * @Description: TODO(根据线路和走向获取班次)  
310 - * @param @param line  
311 - * @param @param upDown  
312 - */  
313 - @RequestMapping(value = "/findByLineAndUpDown")  
314 - public List<ScheduleRealInfo> findByLineAndUpDown(@RequestParam String line,@RequestParam Integer upDown){  
315 - return dayOfSchedule.findByLineAndUpDown(line, upDown);  
316 - }  
317 -  
318 - /**  
319 - *  
320 - * @Title: findRouteByLine  
321 - * @Description: TODO(获取线路的站点,路段路由)  
322 - * @param @param lineCode  
323 - * @throws  
324 - */  
325 - @RequestMapping(value = "/findRouteByLine")  
326 - public Map<String, Object> findRouteByLine(@RequestParam String lineCode){  
327 - return scheduleRealInfoService.findRouteByLine(lineCode);  
328 - }  
329 -  
330 - /**  
331 - *  
332 - * @Title: removeChildTask  
333 - * @Description: TODO(删除子任务)  
334 - * @param @param taskId 子任务ID  
335 - * @throws  
336 - */  
337 - @RequestMapping(value = "/childTask/{taskId}", method = RequestMethod.DELETE)  
338 - public Map<String, Object> removeChildTask(@PathVariable("taskId") Long taskId){  
339 - return scheduleRealInfoService.removeChildTask(taskId);  
340 - }  
341 -  
342 - /**  
343 - *  
344 - * @Title: findByLineCode  
345 - * @Description: TODO(根据线路获取班次信息)  
346 - * @param @param lineCode  
347 - */  
348 - @RequestMapping(value = "/lineCode/{lineCode}")  
349 - public List<ScheduleRealInfo> findByLineCode(@PathVariable("lineCode") String lineCode){  
350 - return dayOfSchedule.findByLineCode(lineCode);  
351 - }  
352 -  
353 - @RequestMapping(value = "/queryUserInfo")  
354 - public List<ScheduleRealInfo> queryUserInfo(@RequestParam String line,  
355 - @RequestParam String date,@RequestParam String state) {  
356 - return scheduleRealInfoService.queryUserInfo(line, date,state);  
357 - }  
358 -  
359 - @RequestMapping(value = "/queryUserInfoPx")  
360 - public List<ScheduleRealInfo> queryUserInfoPx(@RequestParam String line,  
361 - @RequestParam String date,@RequestParam String state,@RequestParam String type) {  
362 - return scheduleRealInfoService.queryUserInfoPx(line, date,state,type);  
363 - }  
364 -  
365 - @RequestMapping(value = "/exportWaybill",method = RequestMethod.GET)  
366 -<<<<<<< HEAD  
367 - public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName, @RequestParam String clZbh,  
368 - @RequestParam String lpName,@RequestParam String date,@RequestParam String line) {  
369 - return scheduleRealInfoService.exportWaybill(jName, clZbh, lpName,date,line);  
370 -=======  
371 - public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName,@RequestParam String jGh, @RequestParam String clZbh,  
372 - @RequestParam String lpName,@RequestParam String date,@RequestParam String line) {  
373 - return scheduleRealInfoService.exportWaybill(jName,jGh, clZbh, lpName,date,line);  
374 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
375 - }  
376 -  
377 - @RequestMapping(value = "/exportWaybillQp",method = RequestMethod.GET)  
378 - public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh  
379 - ,@RequestParam String date,@RequestParam String line) {  
380 - return scheduleRealInfoService.exportWaybillQp( clZbh, date,line);  
381 - }  
382 -  
383 -  
384 - @RequestMapping(value = "/dailyInfo")  
385 - public List<Map<String, Object>> dailyInfo(@RequestParam String line, @RequestParam String date,@RequestParam String type) {  
386 - return scheduleRealInfoService.dailyInfo(line, date, type);  
387 - }  
388 -  
389 - @RequestMapping(value = "/historyMessage")  
390 - public List<Object[]> historyMessage(@RequestParam String line, @RequestParam String date,  
391 - @RequestParam String code, @RequestParam String type) {  
392 - return scheduleRealInfoService.historyMessage(line, date, code, type);  
393 - }  
394 -  
395 - @RequestMapping(value="/findLine")  
396 - public List<Map<String,String>> findLine(@RequestParam String line){  
397 - return scheduleRealInfoService.findLine(line);  
398 - }  
399 -  
400 - @RequestMapping(value="/findKMBC",method = RequestMethod.GET)  
401 - public Map<String,Object> findKMBC(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName  
402 - ,@RequestParam String date,@RequestParam String line){  
403 - return scheduleRealInfoService.findKMBC(jGh, clZbh,lpName,date,line);  
404 - }  
405 -  
406 - /**  
407 - * 路单公里统计 (闵行审计专用)  
408 - * @param jGh  
409 - * @param clZbh  
410 - * @param lpName  
411 - * @param date  
412 - * @param line  
413 - * @return  
414 - */  
415 - @RequestMapping(value="/findKMBC_mh_2",method = RequestMethod.GET)  
416 - public Map<String,Object> findKMBC_mh_2(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName  
417 - ,@RequestParam String date,@RequestParam String line){  
418 - return scheduleRealInfoService.findKMBC_mh_2(jGh, clZbh,lpName,date,line);  
419 - }  
420 -  
421 - @RequestMapping(value="/findKMBCQp",method = RequestMethod.GET)  
422 - public Map<String,Object> findKMBCQp(@RequestParam String clZbh  
423 - ,@RequestParam String date,@RequestParam String line){  
424 - return scheduleRealInfoService.findKMBCQp(clZbh,date,line);  
425 - }  
426 -  
427 - @RequestMapping(value="/findLpName")  
428 - public List<Map<String,String>> findLpName(@RequestParam String lpName){  
429 - return scheduleRealInfoService.findLpName(lpName);  
430 - }  
431 -  
432 - @RequestMapping(value = "/account")  
433 - public List<Map<String,Object>> account(@RequestParam String line, @RequestParam String date,  
434 - @RequestParam String code,@RequestParam String xlName, @RequestParam String type) {  
435 - return scheduleRealInfoService.account(line, date, code, xlName, type);  
436 - }  
437 -  
438 - @RequestMapping(value = "/accountPx")  
439 - public List<Map<String,Object>> accountPx(@RequestParam String line, @RequestParam String date,  
440 - @RequestParam String code,@RequestParam String xlName, @RequestParam String px) {  
441 - return scheduleRealInfoService.accountPx(line, date, code, xlName, px);  
442 - }  
443 -  
444 - @RequestMapping(value = "/correctForm")  
445 - public List<SchEditInfoDto> correctForm(@RequestParam String line, @RequestParam String date,  
446 - @RequestParam String endDate,  
447 - @RequestParam String lpName, @RequestParam String code,  
448 - @RequestParam String type,@RequestParam String changType) {  
449 - return scheduleRealInfoService.correctForm(line, date, endDate, lpName, code, type,changType);  
450 - }  
451 - /**  
452 - * @Title queryListWaybill  
453 - * @Description 查询行车路单列表  
454 -<<<<<<< HEAD  
455 - * @param jName 驾驶员名字  
456 -=======  
457 - * @param jGh 驾驶员名字  
458 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
459 - * @param clZbh 车辆自编号(内部编号)  
460 - * @param lpName 路牌  
461 - * @return  
462 - */  
463 - @RequestMapping(value="/queryListWaybill",method = RequestMethod.GET)  
464 -<<<<<<< HEAD  
465 - public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName  
466 - ,@RequestParam String date,@RequestParam String line){  
467 - return scheduleRealInfoService.queryListWaybill(jName, clZbh,lpName,date,line);  
468 -=======  
469 - public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName  
470 - ,@RequestParam String date,@RequestParam String line){  
471 - return scheduleRealInfoService.queryListWaybill(jGh, clZbh,lpName,date,line);  
472 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
473 - }  
474 -  
475 - /**  
476 - * @Title queryListWaybill  
477 - * @Description 查询行车路单列表(闵行审计专用路单)  
478 - * @param jName 驾驶员名字  
479 - * @param clZbh 车辆自编号(内部编号)  
480 - * @param lpName 路牌  
481 - * @return  
482 - */  
483 - @RequestMapping(value="/queryListWaybill_mh_2",method = RequestMethod.GET)  
484 - public List<ScheduleRealInfo> queryListWaybill_mh_2(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName  
485 - ,@RequestParam String date,@RequestParam String line){  
486 - return scheduleRealInfoService.queryListWaybill2(jName, clZbh,lpName,date,line);  
487 - }  
488 -  
489 - @RequestMapping(value="/queryListWaybillQp",method = RequestMethod.GET)  
490 - public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh,  
491 - @RequestParam String date,@RequestParam String line){  
492 - return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line);  
493 - }  
494 -  
495 - @RequestMapping(value="/statisticsDaily")  
496 - public List<Map<String,Object>> statisticsDaily(@RequestParam String line, @RequestParam String date,  
497 - @RequestParam String xlName, @RequestParam String type){  
498 - return scheduleRealInfoService.statisticsDaily(line, date, xlName, type);  
499 - }  
500 -  
501 - @RequestMapping(value="/statisticsDaily_mh_2")  
502 - public List<Map<String,Object>> statisticsDaily_mh_2(@RequestParam String line, @RequestParam String date,  
503 - @RequestParam String xlName, @RequestParam String type){  
504 - return scheduleRealInfoService.statisticsDaily_mh_2(line, date, xlName, type);  
505 - }  
506 -  
507 - @RequestMapping(value="/statisticsDailyTj")  
508 - public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){  
509 - String gsdm="";  
510 - if(map.get("gsdm")!=null){  
511 - gsdm=map.get("gsdm").toString();  
512 - }  
513 - String fgsdm="";  
514 - if(map.get("fgsdm")!=null){  
515 - fgsdm=map.get("fgsdm").toString();  
516 - }  
517 - String line="";  
518 - if(map.get("line")!=null){  
519 - line=map.get("line").toString();  
520 - }  
521 - String date="";  
522 - if(map.get("date")!=null){  
523 - date=map.get("date").toString();  
524 - }  
525 - String date2="";  
526 - if(map.get("date2")!=null){  
527 - date2=map.get("date2").toString();  
528 - }  
529 - String xlName="";  
530 - if(map.get("xlName")!=null){  
531 - xlName=map.get("xlName").toString();  
532 - }  
533 - String type="";  
534 - if(map.get("type")!=null){  
535 - type=map.get("type").toString();  
536 - }  
537 - String nature="0";  
538 - if(map.get("nature")!=null){  
539 - nature=map.get("nature").toString();  
540 - }  
541 - return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type,nature);  
542 - }  
543 -  
544 - /*  
545 - * 公里修正报表  
546 - */  
547 - @RequestMapping(value="/mileageReportTj")  
548 - public List<Map<String,Object>> mileageReport(@RequestParam Map<String, Object> map){  
549 - String gsdm="";  
550 - if(map.get("gsdm")!=null){  
551 - gsdm=map.get("gsdm").toString();  
552 - }  
553 - String fgsdm="";  
554 - if(map.get("fgsdm")!=null){  
555 - fgsdm=map.get("fgsdm").toString();  
556 - }  
557 - String line="";  
558 - if(map.get("line")!=null){  
559 - line=map.get("line").toString();  
560 - }  
561 - String date="";  
562 - if(map.get("date")!=null){  
563 - date=map.get("date").toString();  
564 - }  
565 - String date2="";  
566 - if(map.get("date2")!=null){  
567 - date2=map.get("date2").toString();  
568 - }  
569 - String xlName="";  
570 - if(map.get("xlName")!=null){  
571 - xlName=map.get("xlName").toString();  
572 - }  
573 - return scheduleRealInfoService.mileageReport(gsdm,fgsdm,line, date,date2);  
574 - }  
575 -  
576 - /*  
577 - * 班次修正报表  
578 - */  
579 - @RequestMapping(value="/scheduleCorrectionReport")  
580 - public List<Map<String,Object>> scheduleCorrectionReport(@RequestParam Map<String, Object> map){  
581 - String gsdm="";  
582 - if(map.get("gsdm")!=null){  
583 - gsdm=map.get("gsdm").toString();  
584 - }  
585 - String fgsdm="";  
586 - if(map.get("fgsdm")!=null){  
587 - fgsdm=map.get("fgsdm").toString();  
588 - }  
589 - String line="";  
590 - if(map.get("line")!=null){  
591 - line=map.get("line").toString();  
592 - }  
593 - String date="";  
594 - if(map.get("date")!=null){  
595 - date=map.get("date").toString();  
596 - }  
597 - String date2="";  
598 - if(map.get("date2")!=null){  
599 - date2=map.get("date2").toString();  
600 - }  
601 - String xlName="";  
602 - if(map.get("xlName")!=null){  
603 - xlName=map.get("xlName").toString();  
604 - }  
605 - return scheduleRealInfoService.scheduleCorrectionReport(gsdm,fgsdm,line, date,date2);  
606 - }  
607 -  
608 - @RequestMapping(value="/MapById",method = RequestMethod.GET)  
609 - public Map<String, Object> MapById(@RequestParam("id") Long id){  
610 - return scheduleRealInfoService.MapById(id);  
611 - }  
612 -  
613 - @RequestMapping(value="/MapByIdQp",method = RequestMethod.GET)  
614 - public Map<String, Object> MapByIdQp(@RequestParam("id") Long id){  
615 - return scheduleRealInfoService.MapByIdQp(id);  
616 - }  
617 -  
618 - /**  
619 - * @Title: scheduleDaily  
620 - * @Description: TODO(调度日报表)  
621 - * @param line 线路  
622 - * @param date 时间  
623 - * @return  
624 - */  
625 - @RequestMapping(value="/scheduleDaily")  
626 - public Map<String,Object> scheduleDaily(@RequestParam String line,@RequestParam String date){  
627 - return scheduleRealInfoService.scheduleDaily(line,date);  
628 - }  
629 -  
630 - @RequestMapping(value="/realScheduleList")  
631 - public List<ScheduleRealInfo> realScheduleList(@RequestParam String line,@RequestParam String date){  
632 - return scheduleRealInfoService.realScheduleList(line,date);  
633 - }  
634 -  
635 - @RequestMapping(value="/realScheduleList_zrw")  
636 - public List<ScheduleRealInfo> realScheduleList_zrw(@RequestParam String line,@RequestParam String date){  
637 - return scheduleRealInfoService.realScheduleList_zrw(line,date);  
638 - }  
639 -  
640 - @RequestMapping(value="/realScheduleList_mh_2")  
641 - public List<ScheduleRealInfo> realScheduleList_mh_2(@RequestParam String line,@RequestParam String date){  
642 - return scheduleRealInfoService.realScheduleList_mh_2(line,date);  
643 - }  
644 -  
645 - @RequestMapping(value="/realScheduleListQp")  
646 - public List<ScheduleRealInfo> realScheduleListQp(@RequestParam String line,@RequestParam String date){  
647 - return scheduleRealInfoService.realScheduleListQp(line,date);  
648 - }  
649 -  
650 - @RequestMapping(value="/multi_tzrc", method=RequestMethod.POST)  
651 -<<<<<<< HEAD  
652 - public Map<String, Object> multi_tzrc(@RequestParam String cpcsJson){  
653 -=======  
654 - public synchronized Map<String, Object> multi_tzrc(@RequestParam String cpcsJson){  
655 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
656 - cpcsJson = StringEscapeUtils.unescapeHtml4(cpcsJson);  
657 - List<ChangePersonCar> cpcs = JSONArray.parseArray(cpcsJson, ChangePersonCar.class);  
658 - return scheduleRealInfoService.multi_tzrc(cpcs, null);  
659 - }  
660 -  
661 - @RequestMapping(value="/multi_dftz", method=RequestMethod.POST)  
662 - public Map<String, Object> multi_dftz(@RequestParam String dcsJson){  
663 - dcsJson = StringEscapeUtils.unescapeHtml4(dcsJson);  
664 - List<DfsjChange> dfsjcs = JSONArray.parseArray(dcsJson, DfsjChange.class);  
665 - return scheduleRealInfoService.multi_dftz(dfsjcs);  
666 - }  
667 -  
668 - @RequestMapping(value="/changeBcType/{id}", method=RequestMethod.POST)  
669 - public Map<String, Object> changeBcType(@PathVariable("id") Long id, String bcType, String remarks, String majorStationName){  
670 - return scheduleRealInfoService.changeBcType(id, bcType, remarks, majorStationName);  
671 - }  
672 -  
673 - @RequestMapping(value="/history", method=RequestMethod.POST)  
674 - public Map<String,Object> historySave(ScheduleRealInfo sch){  
675 - return scheduleRealInfoService.historySave(sch);  
676 - }  
677 -  
678 -  
679 - private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd");  
680 - private final static long ONE_DAY = 1000 * 60 * 60 * 24;  
681 - /**  
682 - * 获取可编辑的历史班次日期  
683 - * @return  
684 - */  
685 - @RequestMapping("dateArray")  
686 - public List<String> dateArray(@RequestParam(defaultValue = "0") int c){  
687 - List<String> rs = new ArrayList<>();  
688 -  
689 - long t = System.currentTimeMillis();  
690 - if(c != 1)  
691 - t -= (ONE_DAY + (1000 * 60 * 60 * 6));  
692 -<<<<<<< HEAD  
693 - for(int i = 0; i < 4; i ++){  
694 -=======  
695 - for(int i = 0; i < 3; i ++){  
696 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
697 - rs.add(fmtyyyyMMdd.print(t));  
698 - t -= ONE_DAY;  
699 - }  
700 - return rs;  
701 - }  
702 -  
703 - @RequestMapping(value = "svgAttr", method = RequestMethod.POST)  
704 - public Map<String, Object> svgAttr(@RequestParam String jsonStr){  
705 - return scheduleRealInfoService.svgAttr(jsonStr);  
706 - }  
707 -  
708 - @RequestMapping(value = "svgAttr", method = RequestMethod.GET)  
709 - public Map<String, Object> findSvgAttr(@RequestParam String idx){  
710 - return scheduleRealInfoService.findSvgAttr(idx);  
711 - }  
712 -  
713 - @RequestMapping(value = "addRemarks", method = RequestMethod.POST)  
714 - public Map<String, Object> addRemarks(@RequestParam Long id, @RequestParam String remarks){  
715 - return scheduleRealInfoService.addRemarks(id, remarks);  
716 - }  
717 -  
718 - @RequestMapping(value = "scheduleDailyQp", method = RequestMethod.GET)  
719 - public List<Map<String, Object>> scheduleDailyQp(@RequestParam String line,@RequestParam String date){  
720 - return scheduleRealInfoService.scheduleDailyQp(line,date);  
721 - }  
722 -  
723 - @RequestMapping(value = "scheduleDailyExport", method = RequestMethod.GET)  
724 - public List<Map<String, Object>> scheduleDailyExport(@RequestParam Map<String, Object> map){  
725 - return scheduleRealInfoService.scheduleDailyExport(map);  
726 - }  
727 -  
728 - @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET)  
729 - public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){  
730 - return scheduleRealInfoService.exportWaybillMore(map);  
731 - }  
732 -  
733 - /**  
734 - * 获取当日计划排班 , 从计划表抓取数据  
735 - * @return  
736 - */  
737 - @RequestMapping(value = "currSchedulePlanByLineCode", method = RequestMethod.GET)  
738 - public List<SchedulePlanInfo> currentSchedulePlan(@RequestParam String lineCode){  
739 - return scheduleRealInfoService.currentSchedulePlan(lineCode);  
740 - }  
741 -  
742 - @RequestMapping(value = "lpChangeMulti", method = RequestMethod.POST)  
743 - public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx,@RequestParam int type){  
744 - return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx, type);  
745 - }  
746 -  
747 - /**  
748 - * 删除当日实际排班  
749 - * @return  
750 - */  
751 - @RequestMapping(value = "deleteRealSchedule", method = RequestMethod.POST)  
752 - public Map<String, Object> deleteRealSchedule(@RequestParam String lineCode){  
753 - return dayOfSchedule.deleteRealSchedule(lineCode);  
754 - }  
755 -  
756 - /**  
757 - * 从计划表重新加载当日排班  
758 - * @param lineCode  
759 - * @return  
760 - */  
761 - @RequestMapping(value = "reLoadRealSchedule", method = RequestMethod.POST)  
762 - public Map<String, Object> reLoadRealSchedule(@RequestParam String lineCode){  
763 - Map<String, Object> rs = new HashMap<>();  
764 - List<ScheduleRealInfo> list = dayOfSchedule.findByLineCode(lineCode);  
765 - if(list != null && list.size() > 0){  
766 - rs.put("status", ResponseCode.ERROR);  
767 - rs.put("msg", "失败," + list.get(0).getXlName() + "当日存在实际排班,无法重新加载。");  
768 - return rs;  
769 - }  
770 -  
771 - int code = dayOfSchedule.reloadSch(lineCode);  
772 -  
773 - //重新按公司编码索引数据  
774 - dayOfSchedule.groupByGsbm();  
775 - rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);  
776 - return rs;  
777 - }  
778 -  
779 - /**  
780 - * 误点调整  
781 - * @param idx  
782 - * @param minute  
783 - * @return  
784 - */  
785 - @RequestMapping(value = "lateAdjust", method = RequestMethod.POST)  
786 - public Map<String, Object> lateAdjust(@RequestParam String idx,@RequestParam float minute ){  
787 - return scheduleRealInfoService.lateAdjust(idx, minute);  
788 - }  
789 -  
790 - /**  
791 - * 获取所有应发未到的班次  
792 - * @param idx  
793 - * @return  
794 - */  
795 - @RequestMapping(value = "allLate2")  
796 - public List<ScheduleRealInfo> allLate2(@RequestParam String idx){  
797 - return scheduleRealInfoService.allLate2(idx);  
798 - }  
799 -  
800 - /**  
801 - * 添加一个临加到历史库  
802 - * @param sch  
803 - * @return  
804 - */  
805 - @RequestMapping(value = "history/add", method = RequestMethod.POST)  
806 - public Map<String, Object> addToHistory(ScheduleRealInfo sch){  
807 - return scheduleRealInfoService.addToHistory(sch);  
808 - }  
809 -  
810 - /**  
811 - * 从历史库里删除临加班次  
812 -<<<<<<< HEAD  
813 - * @param sch  
814 -=======  
815 - * @param id  
816 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
817 - * @return  
818 - */  
819 - @RequestMapping(value = "history/{id}", method = RequestMethod.DELETE)  
820 - public Map<String, Object> deleteToHistory(@PathVariable("id") Long id){  
821 - return scheduleRealInfoService.deleteToHistory(id);  
822 - }  
823 -<<<<<<< HEAD  
824 -  
825 - /**  
826 - * 从历史库里删除临加班次  
827 - * @param sch  
828 - * @return  
829 - */  
830 - @RequestMapping(value = "wxsb", method = RequestMethod.POST)  
831 - public Map<String, Object> deleteToHistory(@RequestParam Map<String, Object> param){  
832 - SysUser user = SecurityUtils.getCurrentUser();  
833 - String uname = user.getUserName();  
834 - StringBuilder url = new StringBuilder(ConfigUtil.get("http.report.url"));  
835 - url.append("?nbbm=").append(param.get("nbbm")).append("&bxy=").append(uname).append("&bxbm=").append(param.get("bxType"));  
836 - // 分公司保存格式 分公司编码_公司编码  
837 - String val = BasicData.nbbm2FgsCompanyCodeMap.get(param.get("nbbm"));  
838 - String[] arr = val.split("_");  
839 - if (!"22".equals(arr[1])) {  
840 - Map<String, Object> res = new HashMap<String, Object>();  
841 - res.put("status", ResponseCode.ERROR);  
842 - res.put("msg", "除金高公司外暂未开通此功能");  
843 -  
844 - return res;  
845 - }  
846 - url.append("&fgs=").append(arr[0]);  
847 -  
848 - return request(url.toString());  
849 - }  
850 -  
851 - @SuppressWarnings("unchecked")  
852 - private static Map<String, Object> request(String url) {  
853 - Map<String, Object> res = new HashMap<String, Object>();  
854 - res.put("status", ResponseCode.SUCCESS);  
855 - InputStream in = null;  
856 - HttpURLConnection con = null;  
857 - try {  
858 - con = (HttpURLConnection)new URL(url).openConnection();  
859 - con.setRequestMethod("POST");  
860 - con.setRequestProperty("keep-alive", "true");  
861 - con.setRequestProperty("accept", "application/json");  
862 - con.setRequestProperty("content-type", "application/json");  
863 - con.setDoInput(true);  
864 - con.setReadTimeout(2500);  
865 - con.setConnectTimeout(2500);  
866 -  
867 - con.connect();  
868 - if (con.getResponseCode() == 200) {  
869 - in = con.getInputStream();  
870 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
871 - IOUtils.copy(in, bout); bout.close();  
872 - Map<String, Object> response = new ObjectMapper().readValue(bout.toByteArray(), Map.class);  
873 - if (!"报修成功".equals(response.get("msg"))) {  
874 - res.put("status", ResponseCode.ERROR);  
875 - res.putAll(response);  
876 - }  
877 - }  
878 - } catch (IOException e) {  
879 - // TODO Auto-generated catch block  
880 - res.put("status", ResponseCode.ERROR);  
881 - res.put("msg", "调用上报接口异常");  
882 - } finally {  
883 - try {  
884 - if (in != null) in.close();  
885 - if (con != null) con.disconnect();  
886 - } catch (IOException e) {  
887 - // TODO Auto-generated catch block  
888 - e.printStackTrace();  
889 - }  
890 - }  
891 -  
892 - return res;  
893 - }  
894 -======= 49 + @Autowired
  50 + ScheduleRealInfoService scheduleRealInfoService;
  51 +
  52 + @Autowired
  53 + DayOfSchedule dayOfSchedule;
  54 +
  55 + @RequestMapping(value = "check_fgs_ascription", method = RequestMethod.POST)
  56 + public Map<String, Object> checkPCFgsAscription(@RequestParam Long schId, String jGh, String sGh, String nbbm){
  57 + return scheduleRealInfoService.checkPCFgsAscription(schId, jGh, sGh, nbbm);
  58 + }
  59 +
  60 + @RequestMapping(value = "/lines")
  61 + public Map<String, Collection<ScheduleRealInfo>> findByLines(@RequestParam String lines) {
  62 + return scheduleRealInfoService.findByLines(lines);
  63 + }
  64 +
  65 + @RequestMapping(value = "/car")
  66 + public List<ScheduleRealInfo> findByCar(String nbbm){
  67 + return dayOfSchedule.findByNbbm(nbbm);
  68 + }
  69 +
  70 + /**
  71 + *
  72 + * @Title: outgoAdjust @Description: TODO(待发调整) @param @param id
  73 + * 主键 @param @param remarks 备注 @param @param dfsj 待发时间(HH:mm) @throws
  74 + */
  75 + @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST)
  76 + public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks,
  77 + @RequestParam String dfsj,String bcType,
  78 + @RequestParam(defaultValue = "") String opType) {
  79 + return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType, opType, null);
  80 + }
  81 +
  82 + /**
  83 + *
  84 + * @Title: destroy @Description: TODO(销毁,烂班) @param @param idsStr 要烂掉的班次ID ,分隔
  85 + */
  86 + @RequestMapping(value = "/destroy", method = RequestMethod.POST)
  87 + public Map<String, Object> destroy(@RequestParam String idsStr
  88 + /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/,
  89 + @RequestParam String remarks, @RequestParam String adjustExps/*, @RequestParam(defaultValue = "0") int spaceNum*/) {
  90 + return scheduleRealInfoService.destroy(idsStr, remarks, adjustExps, null);
  91 + }
  92 +
  93 + /**
  94 + *
  95 + * @Title: carDeviceMapp @Description: TODO(获取车辆自编号和设备号对照,从缓存取) @throws
  96 + */
  97 + @RequestMapping(value = "/carDeviceMapp", method = RequestMethod.GET)
  98 + public Map<String, String> carDeviceMapp() {
  99 + return BasicData.deviceId2NbbmMap.inverse();
  100 + }
  101 +
  102 + /**
  103 + *
  104 + * @Title: findPersionByLine @Description: TODO(根据线路主键获取驾驶员) @param @param
  105 + * lineId @throws
  106 + */
  107 + @RequestMapping(value = "/driver", method = RequestMethod.GET)
  108 + public List<Map<String, String>> findDriverByLine(@RequestParam String lineCode) {
  109 + return scheduleRealInfoService.findDriverByLine(lineCode);
  110 + }
  111 +
  112 + /**
  113 + *
  114 + * @Title: findPersionByLine @Description: TODO(根据线路主键获取售票员) @param @param
  115 + * lineId @throws
  116 + */
  117 + @RequestMapping(value = "/conductor", method = RequestMethod.GET)
  118 + public List<Map<String, String>> findConductorByLine(@RequestParam String lineCode) {
  119 + return scheduleRealInfoService.findConductorByLine(lineCode);
  120 + }
  121 +
  122 + /**
  123 + *
  124 + * @Title: findPersionByLine @Description: TODO(根据线路主键获取车辆) @param @param
  125 + * lineId @throws
  126 + */
  127 + @RequestMapping(value = "/cars", method = RequestMethod.GET)
  128 + public List<Map<String, String>> findCarByLine(@RequestParam String lineCode) {
  129 + return scheduleRealInfoService.findCarByLine(lineCode);
  130 + }
  131 +
  132 + /**
  133 + *
  134 + * @Title: sreachNbbm @Description: TODO(搜索车辆内部编码) @throws
  135 + */
  136 + @RequestMapping(value = "/sreachVehic", method = RequestMethod.GET)
  137 + public List<Map<String, String>> sreachVehic(@RequestParam String nbbm) {
  138 + return scheduleRealInfoService.sreachVehic(nbbm);
  139 + }
  140 + /**
  141 + *
  142 + * @Title: realOutAdjust
  143 + * @Description: TODO(实发调整)
  144 + * @param @param id 班次ID
  145 + * @param @param fcsjActual 实际发车时间 HH:mm
  146 + * @param @param remarks 备注
  147 + * @throws
  148 + */
  149 + @RequestMapping(value = "/realOutAdjust", method = RequestMethod.POST)
  150 + public Map<String, Object> realOutAdjust(@RequestParam Map<String, String> map) {
  151 + return scheduleRealInfoService.realOutAdjust(map);
  152 + }
  153 +
  154 + /**
  155 + *
  156 + * @Title: revokeDestroy
  157 + * @Description: TODO(撤销烂班)
  158 + * @param @param id
  159 + * @throws
  160 + */
  161 + @RequestMapping(value = "/revokeDestroy", method = RequestMethod.POST)
  162 + public Map<String, Object> revokeDestroy(@RequestParam Long id){
  163 + return scheduleRealInfoService.revokeDestroy(id);
  164 + }
  165 +
  166 + /**
  167 + *
  168 + * @Title: revokeRealOutgo
  169 + * @Description: TODO(撤销实发)
  170 + * @param @param id
  171 + * @throws
  172 + */
  173 + @RequestMapping(value = "/revokeRealOutgo", method = RequestMethod.POST)
  174 + public Map<String, Object> revokeRealOutgo(@RequestParam Long id){
  175 + return scheduleRealInfoService.revokeRealOutgo(id);
  176 + }
  177 +
  178 + /**
  179 + * 撤销执行
  180 + * @param id
  181 + * @return
  182 + */
  183 + @RequestMapping(value = "/revokeRealArrive", method = RequestMethod.POST)
  184 + public Map<String, Object> revokeRealArrive(@RequestParam Long id){
  185 + return scheduleRealInfoService.revokeRealArrive(id);
  186 + }
  187 +
  188 + /**
  189 + *
  190 + * @Title: spaceAdjust
  191 + * @Description: TODO(间隔调整)
  192 + * @param @param ids 要调整的班次数组ID
  193 + * @param @param space 间隔
  194 + * @throws
  195 + */
  196 + @RequestMapping(value = "/spaceAdjust", method = RequestMethod.POST)
  197 + public Map<String, Object> spaceAdjust(Long[] ids, Integer space){
  198 + return scheduleRealInfoService.spaceAdjust(ids, space);
  199 + }
  200 +
  201 + /**
  202 + *
  203 + * @Title: schInfoFineTune
  204 + * @Description: TODO(发车信息微调)
  205 + * @param @param map
  206 + * @throws
  207 + */
  208 + @RequestMapping(value = "/schInfoFineTune", method = RequestMethod.POST)
  209 + public Map<String, Object> schInfoFineTune(@RequestParam Map<String, String> map){
  210 + return scheduleRealInfoService.schInfoFineTune(map);
  211 + }
  212 +
  213 + /**
  214 + *
  215 + * @Title: outgoAdjustAll
  216 + * @Description: TODO(批量待发调整)
  217 + * @param @param list
  218 + * @throws
  219 + */
  220 + @RequestMapping(value = "/outgoAdjustAll", method = RequestMethod.POST)
  221 + public Map<String, Object> outgoAdjustAll(@RequestParam String params){
  222 + //反转义
  223 + params = StringEscapeUtils.unescapeHtml4(params);
  224 + return scheduleRealInfoService.outgoAdjustAll(params);
  225 + }
  226 +
  227 + /**
  228 + *
  229 + * @Title: findByLineAndUpDown
  230 + * @Description: TODO(根据线路和走向获取班次)
  231 + * @param @param line
  232 + * @param @param upDown
  233 + */
  234 + @RequestMapping(value = "/findByLineAndUpDown")
  235 + public List<ScheduleRealInfo> findByLineAndUpDown(@RequestParam String line,@RequestParam Integer upDown){
  236 + return dayOfSchedule.findByLineAndUpDown(line, upDown);
  237 + }
  238 +
  239 + /**
  240 + *
  241 + * @Title: findRouteByLine
  242 + * @Description: TODO(获取线路的站点,路段路由)
  243 + * @param @param lineCode
  244 + * @throws
  245 + */
  246 + @RequestMapping(value = "/findRouteByLine")
  247 + public Map<String, Object> findRouteByLine(@RequestParam String lineCode){
  248 + return scheduleRealInfoService.findRouteByLine(lineCode);
  249 + }
  250 +
  251 + /**
  252 + *
  253 + * @Title: removeChildTask
  254 + * @Description: TODO(删除子任务)
  255 + * @param @param taskId 子任务ID
  256 + * @throws
  257 + */
  258 + @RequestMapping(value = "/childTask/{taskId}", method = RequestMethod.DELETE)
  259 + public Map<String, Object> removeChildTask(@PathVariable("taskId") Long taskId){
  260 + return scheduleRealInfoService.removeChildTask(taskId);
  261 + }
  262 +
  263 + /**
  264 + *
  265 + * @Title: findByLineCode
  266 + * @Description: TODO(根据线路获取班次信息)
  267 + * @param @param lineCode
  268 + */
  269 + @RequestMapping(value = "/lineCode/{lineCode}")
  270 + public List<ScheduleRealInfo> findByLineCode(@PathVariable("lineCode") String lineCode){
  271 + return dayOfSchedule.findByLineCode(lineCode);
  272 + }
  273 +
  274 + @RequestMapping(value = "/queryUserInfo")
  275 + public List<ScheduleRealInfo> queryUserInfo(@RequestParam String line,
  276 + @RequestParam String date,@RequestParam String state) {
  277 + return scheduleRealInfoService.queryUserInfo(line, date,state);
  278 + }
  279 +
  280 + @RequestMapping(value = "/queryUserInfoPx")
  281 + public List<ScheduleRealInfo> queryUserInfoPx(@RequestParam String line,
  282 + @RequestParam String date,@RequestParam String state,@RequestParam String type) {
  283 + return scheduleRealInfoService.queryUserInfoPx(line, date,state,type);
  284 + }
  285 +
  286 + @RequestMapping(value = "/exportWaybill",method = RequestMethod.GET)
  287 + public List<ScheduleRealInfo> exportWaybill(@RequestParam String jName,@RequestParam String jGh, @RequestParam String clZbh,
  288 + @RequestParam String lpName,@RequestParam String date,@RequestParam String line) {
  289 + return scheduleRealInfoService.exportWaybill(jName,jGh, clZbh, lpName,date,line);
  290 + }
  291 +
  292 + @RequestMapping(value = "/exportWaybillQp",method = RequestMethod.GET)
  293 + public List<ScheduleRealInfo> exportWaybillQp(@RequestParam String clZbh
  294 + ,@RequestParam String date,@RequestParam String line) {
  295 + return scheduleRealInfoService.exportWaybillQp( clZbh, date,line);
  296 + }
  297 +
  298 +
  299 + @RequestMapping(value = "/dailyInfo")
  300 + public List<Map<String, Object>> dailyInfo(@RequestParam String line, @RequestParam String date,@RequestParam String type) {
  301 + return scheduleRealInfoService.dailyInfo(line, date, type);
  302 + }
  303 +
  304 + @RequestMapping(value = "/historyMessage")
  305 + public List<Object[]> historyMessage(@RequestParam String line, @RequestParam String date,
  306 + @RequestParam String code, @RequestParam String type) {
  307 + return scheduleRealInfoService.historyMessage(line, date, code, type);
  308 + }
  309 +
  310 + @RequestMapping(value="/findLine")
  311 + public List<Map<String,String>> findLine(@RequestParam String line){
  312 + return scheduleRealInfoService.findLine(line);
  313 + }
  314 +
  315 + @RequestMapping(value="/findKMBC",method = RequestMethod.GET)
  316 + public Map<String,Object> findKMBC(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName
  317 + ,@RequestParam String date,@RequestParam String line){
  318 + return scheduleRealInfoService.findKMBC(jGh, clZbh,lpName,date,line);
  319 + }
  320 +
  321 + /**
  322 + * 路单公里统计 (闵行审计专用)
  323 + * @param jGh
  324 + * @param clZbh
  325 + * @param lpName
  326 + * @param date
  327 + * @param line
  328 + * @return
  329 + */
  330 + @RequestMapping(value="/findKMBC_mh_2",method = RequestMethod.GET)
  331 + public Map<String,Object> findKMBC_mh_2(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName
  332 + ,@RequestParam String date,@RequestParam String line){
  333 + return scheduleRealInfoService.findKMBC_mh_2(jGh, clZbh,lpName,date,line);
  334 + }
  335 +
  336 + @RequestMapping(value="/findKMBCQp",method = RequestMethod.GET)
  337 + public Map<String,Object> findKMBCQp(@RequestParam String clZbh
  338 + ,@RequestParam String date,@RequestParam String line){
  339 + return scheduleRealInfoService.findKMBCQp(clZbh,date,line);
  340 + }
  341 +
  342 + @RequestMapping(value="/findLpName")
  343 + public List<Map<String,String>> findLpName(@RequestParam String lpName){
  344 + return scheduleRealInfoService.findLpName(lpName);
  345 + }
  346 +
  347 + @RequestMapping(value = "/account")
  348 + public List<Map<String,Object>> account(@RequestParam String line, @RequestParam String date,
  349 + @RequestParam String code,@RequestParam String xlName, @RequestParam String type) {
  350 + return scheduleRealInfoService.account(line, date, code, xlName, type);
  351 + }
  352 +
  353 + @RequestMapping(value = "/accountPx")
  354 + public List<Map<String,Object>> accountPx(@RequestParam String line, @RequestParam String date,
  355 + @RequestParam String code,@RequestParam String xlName, @RequestParam String px) {
  356 + return scheduleRealInfoService.accountPx(line, date, code, xlName, px);
  357 + }
  358 +
  359 + @RequestMapping(value = "/correctForm")
  360 + public List<SchEditInfoDto> correctForm(@RequestParam String line, @RequestParam String date,
  361 + @RequestParam String endDate,
  362 + @RequestParam String lpName, @RequestParam String code,
  363 + @RequestParam String type,@RequestParam String changType) {
  364 + return scheduleRealInfoService.correctForm(line, date, endDate, lpName, code, type,changType);
  365 + }
  366 + /**
  367 + * @Title queryListWaybill
  368 + * @Description 查询行车路单列表
  369 + * @param jGh 驾驶员名字
  370 + * @param clZbh 车辆自编号(内部编号)
  371 + * @param lpName 路牌
  372 + * @return
  373 + */
  374 + @RequestMapping(value="/queryListWaybill",method = RequestMethod.GET)
  375 + public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jGh,@RequestParam String clZbh,@RequestParam String lpName
  376 + ,@RequestParam String date,@RequestParam String line){
  377 + return scheduleRealInfoService.queryListWaybill(jGh, clZbh,lpName,date,line);
  378 + }
  379 +
  380 + /**
  381 + * @Title queryListWaybill
  382 + * @Description 查询行车路单列表(闵行审计专用路单)
  383 + * @param jName 驾驶员名字
  384 + * @param clZbh 车辆自编号(内部编号)
  385 + * @param lpName 路牌
  386 + * @return
  387 + */
  388 + @RequestMapping(value="/queryListWaybill_mh_2",method = RequestMethod.GET)
  389 + public List<ScheduleRealInfo> queryListWaybill_mh_2(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName
  390 + ,@RequestParam String date,@RequestParam String line){
  391 + return scheduleRealInfoService.queryListWaybill2(jName, clZbh,lpName,date,line);
  392 + }
  393 +
  394 + @RequestMapping(value="/queryListWaybillQp",method = RequestMethod.GET)
  395 + public List<ScheduleRealInfo> queryListWaybillQp(@RequestParam String clZbh,
  396 + @RequestParam String date,@RequestParam String line){
  397 + return scheduleRealInfoService.queryListWaybillQp(clZbh,date,line);
  398 + }
  399 +
  400 + @RequestMapping(value="/statisticsDaily")
  401 + public List<Map<String,Object>> statisticsDaily(@RequestParam String line, @RequestParam String date,
  402 + @RequestParam String xlName, @RequestParam String type){
  403 + return scheduleRealInfoService.statisticsDaily(line, date, xlName, type);
  404 + }
  405 +
  406 + @RequestMapping(value="/statisticsDaily_mh_2")
  407 + public List<Map<String,Object>> statisticsDaily_mh_2(@RequestParam String line, @RequestParam String date,
  408 + @RequestParam String xlName, @RequestParam String type){
  409 + return scheduleRealInfoService.statisticsDaily_mh_2(line, date, xlName, type);
  410 + }
  411 +
  412 + @RequestMapping(value="/statisticsDailyTj")
  413 + public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){
  414 + String gsdm="";
  415 + if(map.get("gsdm")!=null){
  416 + gsdm=map.get("gsdm").toString();
  417 + }
  418 + String fgsdm="";
  419 + if(map.get("fgsdm")!=null){
  420 + fgsdm=map.get("fgsdm").toString();
  421 + }
  422 + String line="";
  423 + if(map.get("line")!=null){
  424 + line=map.get("line").toString();
  425 + }
  426 + String date="";
  427 + if(map.get("date")!=null){
  428 + date=map.get("date").toString();
  429 + }
  430 + String date2="";
  431 + if(map.get("date2")!=null){
  432 + date2=map.get("date2").toString();
  433 + }
  434 + String xlName="";
  435 + if(map.get("xlName")!=null){
  436 + xlName=map.get("xlName").toString();
  437 + }
  438 + String type="";
  439 + if(map.get("type")!=null){
  440 + type=map.get("type").toString();
  441 + }
  442 + String nature="0";
  443 + if(map.get("nature")!=null){
  444 + nature=map.get("nature").toString();
  445 + }
  446 + return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type,nature);
  447 + }
  448 +
  449 + /*
  450 + * 公里修正报表
  451 + */
  452 + @RequestMapping(value="/mileageReportTj")
  453 + public List<Map<String,Object>> mileageReport(@RequestParam Map<String, Object> map){
  454 + String gsdm="";
  455 + if(map.get("gsdm")!=null){
  456 + gsdm=map.get("gsdm").toString();
  457 + }
  458 + String fgsdm="";
  459 + if(map.get("fgsdm")!=null){
  460 + fgsdm=map.get("fgsdm").toString();
  461 + }
  462 + String line="";
  463 + if(map.get("line")!=null){
  464 + line=map.get("line").toString();
  465 + }
  466 + String date="";
  467 + if(map.get("date")!=null){
  468 + date=map.get("date").toString();
  469 + }
  470 + String date2="";
  471 + if(map.get("date2")!=null){
  472 + date2=map.get("date2").toString();
  473 + }
  474 + String xlName="";
  475 + if(map.get("xlName")!=null){
  476 + xlName=map.get("xlName").toString();
  477 + }
  478 + return scheduleRealInfoService.mileageReport(gsdm,fgsdm,line, date,date2);
  479 + }
  480 +
  481 + /*
  482 + * 班次修正报表
  483 + */
  484 + @RequestMapping(value="/scheduleCorrectionReport")
  485 + public List<Map<String,Object>> scheduleCorrectionReport(@RequestParam Map<String, Object> map){
  486 + String gsdm="";
  487 + if(map.get("gsdm")!=null){
  488 + gsdm=map.get("gsdm").toString();
  489 + }
  490 + String fgsdm="";
  491 + if(map.get("fgsdm")!=null){
  492 + fgsdm=map.get("fgsdm").toString();
  493 + }
  494 + String line="";
  495 + if(map.get("line")!=null){
  496 + line=map.get("line").toString();
  497 + }
  498 + String date="";
  499 + if(map.get("date")!=null){
  500 + date=map.get("date").toString();
  501 + }
  502 + String date2="";
  503 + if(map.get("date2")!=null){
  504 + date2=map.get("date2").toString();
  505 + }
  506 + String xlName="";
  507 + if(map.get("xlName")!=null){
  508 + xlName=map.get("xlName").toString();
  509 + }
  510 + return scheduleRealInfoService.scheduleCorrectionReport(gsdm,fgsdm,line, date,date2);
  511 + }
  512 +
  513 + @RequestMapping(value="/MapById",method = RequestMethod.GET)
  514 + public Map<String, Object> MapById(@RequestParam("id") Long id){
  515 + return scheduleRealInfoService.MapById(id);
  516 + }
  517 +
  518 + @RequestMapping(value="/MapByIdQp",method = RequestMethod.GET)
  519 + public Map<String, Object> MapByIdQp(@RequestParam("id") Long id){
  520 + return scheduleRealInfoService.MapByIdQp(id);
  521 + }
  522 +
  523 + /**
  524 + * @Title: scheduleDaily
  525 + * @Description: TODO(调度日报表)
  526 + * @param line 线路
  527 + * @param date 时间
  528 + * @return
  529 + */
  530 + @RequestMapping(value="/scheduleDaily")
  531 + public Map<String,Object> scheduleDaily(@RequestParam String line,@RequestParam String date){
  532 + return scheduleRealInfoService.scheduleDaily(line,date);
  533 + }
  534 +
  535 + @RequestMapping(value="/realScheduleList")
  536 + public List<ScheduleRealInfo> realScheduleList(@RequestParam String line,@RequestParam String date){
  537 + return scheduleRealInfoService.realScheduleList(line,date);
  538 + }
  539 +
  540 + @RequestMapping(value="/realScheduleList_zrw")
  541 + public List<ScheduleRealInfo> realScheduleList_zrw(@RequestParam String line,@RequestParam String date){
  542 + return scheduleRealInfoService.realScheduleList_zrw(line,date);
  543 + }
  544 +
  545 + @RequestMapping(value="/realScheduleList_mh_2")
  546 + public List<ScheduleRealInfo> realScheduleList_mh_2(@RequestParam String line,@RequestParam String date){
  547 + return scheduleRealInfoService.realScheduleList_mh_2(line,date);
  548 + }
  549 +
  550 + @RequestMapping(value="/realScheduleListQp")
  551 + public List<ScheduleRealInfo> realScheduleListQp(@RequestParam String line,@RequestParam String date){
  552 + return scheduleRealInfoService.realScheduleListQp(line,date);
  553 + }
  554 +
  555 + @RequestMapping(value="/multi_tzrc", method=RequestMethod.POST)
  556 + public synchronized Map<String, Object> multi_tzrc(@RequestParam String cpcsJson){
  557 + cpcsJson = StringEscapeUtils.unescapeHtml4(cpcsJson);
  558 + List<ChangePersonCar> cpcs = JSONArray.parseArray(cpcsJson, ChangePersonCar.class);
  559 + return scheduleRealInfoService.multi_tzrc(cpcs, null);
  560 + }
  561 +
  562 + @RequestMapping(value="/multi_dftz", method=RequestMethod.POST)
  563 + public Map<String, Object> multi_dftz(@RequestParam String dcsJson){
  564 + dcsJson = StringEscapeUtils.unescapeHtml4(dcsJson);
  565 + List<DfsjChange> dfsjcs = JSONArray.parseArray(dcsJson, DfsjChange.class);
  566 + return scheduleRealInfoService.multi_dftz(dfsjcs);
  567 + }
  568 +
  569 + @RequestMapping(value="/changeBcType/{id}", method=RequestMethod.POST)
  570 + public Map<String, Object> changeBcType(@PathVariable("id") Long id, String bcType, String remarks, String majorStationName){
  571 + return scheduleRealInfoService.changeBcType(id, bcType, remarks, majorStationName);
  572 + }
  573 +
  574 + @RequestMapping(value="/history", method=RequestMethod.POST)
  575 + public Map<String,Object> historySave(ScheduleRealInfo sch){
  576 + return scheduleRealInfoService.historySave(sch);
  577 + }
  578 +
  579 +
  580 + private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd");
  581 + private final static long ONE_DAY = 1000 * 60 * 60 * 24;
  582 + /**
  583 + * 获取可编辑的历史班次日期
  584 + * @return
  585 + */
  586 + @RequestMapping("dateArray")
  587 + public List<String> dateArray(@RequestParam(defaultValue = "0") int c){
  588 + List<String> rs = new ArrayList<>();
  589 +
  590 + long t = System.currentTimeMillis();
  591 + if(c != 1)
  592 + t -= (ONE_DAY + (1000 * 60 * 60 * 6));
  593 + for(int i = 0; i < 3; i ++){
  594 + rs.add(fmtyyyyMMdd.print(t));
  595 + t -= ONE_DAY;
  596 + }
  597 + return rs;
  598 + }
  599 +
  600 + @RequestMapping(value = "svgAttr", method = RequestMethod.POST)
  601 + public Map<String, Object> svgAttr(@RequestParam String jsonStr){
  602 + return scheduleRealInfoService.svgAttr(jsonStr);
  603 + }
  604 +
  605 + @RequestMapping(value = "svgAttr", method = RequestMethod.GET)
  606 + public Map<String, Object> findSvgAttr(@RequestParam String idx){
  607 + return scheduleRealInfoService.findSvgAttr(idx);
  608 + }
  609 +
  610 + @RequestMapping(value = "addRemarks", method = RequestMethod.POST)
  611 + public Map<String, Object> addRemarks(@RequestParam Long id, @RequestParam String remarks){
  612 + return scheduleRealInfoService.addRemarks(id, remarks);
  613 + }
  614 +
  615 + @RequestMapping(value = "scheduleDailyQp", method = RequestMethod.GET)
  616 + public List<Map<String, Object>> scheduleDailyQp(@RequestParam String line,@RequestParam String date){
  617 + return scheduleRealInfoService.scheduleDailyQp(line,date);
  618 + }
  619 +
  620 + @RequestMapping(value = "scheduleDailyExport", method = RequestMethod.GET)
  621 + public List<Map<String, Object>> scheduleDailyExport(@RequestParam Map<String, Object> map){
  622 + return scheduleRealInfoService.scheduleDailyExport(map);
  623 + }
  624 +
  625 + @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET)
  626 + public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){
  627 + return scheduleRealInfoService.exportWaybillMore(map);
  628 + }
  629 +
  630 + /**
  631 + * 获取当日计划排班 , 从计划表抓取数据
  632 + * @return
  633 + */
  634 + @RequestMapping(value = "currSchedulePlanByLineCode", method = RequestMethod.GET)
  635 + public List<SchedulePlanInfo> currentSchedulePlan(@RequestParam String lineCode){
  636 + return scheduleRealInfoService.currentSchedulePlan(lineCode);
  637 + }
  638 +
  639 + @RequestMapping(value = "lpChangeMulti", method = RequestMethod.POST)
  640 + public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx,@RequestParam int type){
  641 + return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx, type);
  642 + }
  643 +
  644 + /**
  645 + * 删除当日实际排班
  646 + * @return
  647 + */
  648 + @RequestMapping(value = "deleteRealSchedule", method = RequestMethod.POST)
  649 + public Map<String, Object> deleteRealSchedule(@RequestParam String lineCode){
  650 + return dayOfSchedule.deleteRealSchedule(lineCode);
  651 + }
  652 +
  653 + /**
  654 + * 从计划表重新加载当日排班
  655 + * @param lineCode
  656 + * @return
  657 + */
  658 + @RequestMapping(value = "reLoadRealSchedule", method = RequestMethod.POST)
  659 + public Map<String, Object> reLoadRealSchedule(@RequestParam String lineCode){
  660 + Map<String, Object> rs = new HashMap<>();
  661 + List<ScheduleRealInfo> list = dayOfSchedule.findByLineCode(lineCode);
  662 + if(list != null && list.size() > 0){
  663 + rs.put("status", ResponseCode.ERROR);
  664 + rs.put("msg", "失败," + list.get(0).getXlName() + "当日存在实际排班,无法重新加载。");
  665 + return rs;
  666 + }
  667 +
  668 + int code = dayOfSchedule.reloadSch(lineCode);
  669 +
  670 + //重新按公司编码索引数据
  671 + dayOfSchedule.groupByGsbm();
  672 + rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);
  673 + return rs;
  674 + }
  675 +
  676 + /**
  677 + * 误点调整
  678 + * @param idx
  679 + * @param minute
  680 + * @return
  681 + */
  682 + @RequestMapping(value = "lateAdjust", method = RequestMethod.POST)
  683 + public Map<String, Object> lateAdjust(@RequestParam String idx,@RequestParam float minute ){
  684 + return scheduleRealInfoService.lateAdjust(idx, minute);
  685 + }
  686 +
  687 + /**
  688 + * 获取所有应发未到的班次
  689 + * @param idx
  690 + * @return
  691 + */
  692 + @RequestMapping(value = "allLate2")
  693 + public List<ScheduleRealInfo> allLate2(@RequestParam String idx){
  694 + return scheduleRealInfoService.allLate2(idx);
  695 + }
  696 +
  697 + /**
  698 + * 添加一个临加到历史库
  699 + * @param sch
  700 + * @return
  701 + */
  702 + @RequestMapping(value = "history/add", method = RequestMethod.POST)
  703 + public Map<String, Object> addToHistory(ScheduleRealInfo sch){
  704 + return scheduleRealInfoService.addToHistory(sch);
  705 + }
  706 +
  707 + /**
  708 + * 从历史库里删除临加班次
  709 + * @param id
  710 + * @return
  711 + */
  712 + @RequestMapping(value = "history/{id}", method = RequestMethod.DELETE)
  713 + public Map<String, Object> deleteToHistory(@PathVariable("id") Long id){
  714 + return scheduleRealInfoService.deleteToHistory(id);
  715 + }
895 716
896 @RequestMapping(value = "isCircleQdz", method = RequestMethod.POST) 717 @RequestMapping(value = "isCircleQdz", method = RequestMethod.POST)
897 public Map<String, Object> isCircleQdz(@RequestParam String line, String nbbm, String ts, String qdzCode){ 718 public Map<String, Object> isCircleQdz(@RequestParam String line, String nbbm, String ts, String qdzCode){
898 Map<String, Object> map =new HashMap<>(); 719 Map<String, Object> map =new HashMap<>();
899 map.put("isExist",scheduleRealInfoService.isCircleQdz(nbbm, ts, line, qdzCode)); 720 map.put("isExist",scheduleRealInfoService.isCircleQdz(nbbm, ts, line, qdzCode));
900 - return map;  
901 - }  
902 -  
903 - /**  
904 - * 从历史库里删除临加班次  
905 - * @param param  
906 - * @return  
907 - */  
908 - @RequestMapping(value = "wxsb", method = RequestMethod.POST)  
909 - public Map<String, Object> repairReport(@RequestParam Map<String, Object> param){  
910 - return scheduleRealInfoService.repairReport(param, true);  
911 - }  
912 -  
913 - @RequestMapping(value = "wxsb", method = RequestMethod.GET)  
914 - public List<RepairReport> repairReportList(@RequestParam String line, @RequestParam String date, @RequestParam String code, @RequestParam String type){  
915 - return scheduleRealInfoService.repairReportList(line, date, code, type);  
916 - }  
917 -  
918 - @RequestMapping(value = "lineLevel", method = RequestMethod.GET)  
919 - public Map<String, String> lineLevel(@RequestParam String idx){  
920 - return scheduleRealInfoService.getLevelsByLines(Arrays.asList(idx.split(",")));  
921 - }  
922 -  
923 - /**  
924 - * 反馈安全驾驶系统  
925 - * @param param  
926 - * @return  
927 - */  
928 - @RequestMapping(value = "ackDsm", method = RequestMethod.POST)  
929 - public Map<String, Object> ackDsm(@RequestParam Map<String, Object> param){  
930 - Map<String, Object> res = new HashMap<>();  
931 - InputStream in = null;  
932 - SysUser user = SecurityUtils.getCurrentUser();  
933 - DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");  
934 - StringBuilder url = new StringBuilder("http://211.95.61.66:9008/modules/dsmCheckTheRecord/addDsm?"), uri = new StringBuilder();  
935 - HttpURLConnection con = null;  
936 - try {  
937 - uri.append("ddyName=").append(URLEncoder.encode(user == null ? "admin" : user.getUserName(), "UTF-8"));  
938 - uri.append("&checkTime=").append(URLEncoder.encode(fmt.print(System.currentTimeMillis()), "UTF-8"));  
939 - uri.append("&nbbm=").append(URLEncoder.encode(param.get("nbbm").toString(), "UTF-8"));  
940 - uri.append("&starttime=").append(URLEncoder.encode(fmt.print(Long.parseLong(param.get("ts").toString())), "UTF-8"));  
941 - url.append(uri);  
942 - con = (HttpURLConnection)new URL(url.toString()).openConnection();  
943 - con.setDoInput(true);  
944 - con.setRequestMethod("POST");  
945 - con.setConnectTimeout(5000);  
946 - con.setReadTimeout(5000);  
947 - con.setRequestProperty("keep-alive", "true");  
948 - con.setRequestProperty("accept", "*/*");  
949 - con.setRequestProperty("content-type", "application/x-www-form-urlencoded");  
950 - con.connect();  
951 -  
952 - if (con.getResponseCode() == 200) {  
953 - in = con.getInputStream();  
954 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
955 - IOUtils.copy(in, bout);  
956 - Map<String, Object> map = new ObjectMapper().readValue(bout.toByteArray(), Map.class);  
957 - System.out.println(map);  
958 - }  
959 - } catch (MalformedURLException e) {  
960 - // TODO Auto-generated catch block  
961 - e.printStackTrace();  
962 - } catch (IOException e) {  
963 - // TODO Auto-generated catch block  
964 - e.printStackTrace();  
965 - } finally {  
966 - if (con != null) {  
967 - con.disconnect();  
968 - }  
969 - }  
970 -  
971 - return res;  
972 - }  
973 -  
974 - @RequestMapping(value = "exportPlan", method = RequestMethod.GET)  
975 - public Map<String, Object> exportPlan(@RequestParam String date){  
976 - Map<String, Object> res = new HashMap<>();  
977 - DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");  
978 - Connection conn = null;  
979 - PreparedStatement ps = null;  
980 - ResultSet rs = null;  
981 -  
982 - List<Map<String, Object>> list = new ArrayList<>();  
983 - String sql = "select xl_name,xl_dir,schedule_date,fcsj,cl_zbh,j_name,bcsj from bsth_c_s_sp_info where schedule_date = ? and xl_bm in (22205, 202104, 202105, 202106, 202107, 210415) and bc_type = 'normal'";  
984 - try{  
985 - conn = DBUtils_control.getConnection();  
986 - ps = conn.prepareStatement(sql);  
987 - ps.setString(1, date);  
988 - rs = ps.executeQuery();  
989 - ObjectMapper mapper = new ObjectMapper();  
990 -  
991 - while (rs.next()) {  
992 - SchedulePlan schedulePlan = new SchedulePlan();  
993 - schedulePlan.setXlName(rs.getString("xl_name"));  
994 - schedulePlan.setXlDir(rs.getInt("xl_dir"));  
995 - Date scheduleDate = rs.getDate("schedule_date");  
996 - schedulePlan.setScheduleDate(new DateTime(scheduleDate.getTime()).toString("yyyy-MM-dd"));  
997 - String fcsj = rs.getString("fcsj");  
998 - int bcsj = rs.getInt("bcsj");  
999 - DateTime fcsjDt = dateTimeFormatter.parseDateTime(schedulePlan.getScheduleDate() + " " + fcsj);  
1000 - schedulePlan.setFcsj(fcsjDt.toString("HH:mm:00"));  
1001 - DateTime ddsjDt = fcsjDt.plusMinutes(bcsj);  
1002 - schedulePlan.setDdsj(ddsjDt.toString("HH:mm:00"));  
1003 - schedulePlan.setSjdStart(fcsjDt.toString("HH:00:00"));  
1004 - DateTime endDt = fcsjDt.plusHours(1);  
1005 - schedulePlan.setSjdEnd(endDt.toString("HH:00:00"));  
1006 - schedulePlan.setClZbh(rs.getString("cl_zbh"));  
1007 - schedulePlan.setJsy(rs.getString("j_name"));  
1008 - schedulePlan.setBcsj(bcsj);  
1009 -  
1010 - list.add(mapper.readValue(mapper.writeValueAsString(schedulePlan), HashMap.class));  
1011 - }  
1012 - List<Iterator<?>> iterators = new ArrayList<Iterator<?>>();  
1013 - iterators.add(list.iterator());  
1014 - String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";  
1015 - String sourcePath = path + "mould/schedulePlan.xls";  
1016 -  
1017 - new ReportUtils().excelReplace(iterators, new Object[]{}, sourcePath, path + "export/" + date + "-花博会专线班次.xls");  
1018 -  
1019 - res.put("status", ResponseCode.SUCCESS);  
1020 - res.put("msg", "成功");  
1021 - } catch (Exception e) {  
1022 - res.put("status", ResponseCode.ERROR);  
1023 - res.put("msg", e.getMessage());  
1024 - } finally {  
1025 - DBUtils_control.close(rs, ps, conn);  
1026 - }  
1027 -  
1028 - return res;  
1029 - }  
1030 -  
1031 - public final static class SchedulePlan {  
1032 - private String company = "浦东公司[46]";  
1033 -  
1034 - private String xlName = "";  
1035 -  
1036 - private int xlDir;  
1037 -  
1038 - private String xlDirStr = "";  
1039 -  
1040 - private String scheduleDate = "";  
1041 -  
1042 - private String sjdStart = "";  
1043 -  
1044 - private String sjdEnd = "";  
1045 -  
1046 - private String fcsj = "";  
1047 -  
1048 - private int bcsj;  
1049 -  
1050 - private String ddsj = "";  
1051 -  
1052 - private int yys = 25;  
1053 -  
1054 - private String clZbh = "";  
1055 -  
1056 - private String cph = "";  
1057 -  
1058 - private String color = "绿牌";  
1059 -  
1060 - private String jsy = "";  
1061 -  
1062 - private String jsydh = "";  
1063 -  
1064 - private int pj = 10;  
1065 -  
1066 - public String getCompany() {  
1067 - return company;  
1068 - } 721 + return map;
  722 + }
  723 +
  724 + /**
  725 + * 从历史库里删除临加班次
  726 + * @param param
  727 + * @return
  728 + */
  729 + @RequestMapping(value = "wxsb", method = RequestMethod.POST)
  730 + public Map<String, Object> repairReport(@RequestParam Map<String, Object> param){
  731 + return scheduleRealInfoService.repairReport(param, true);
  732 + }
  733 +
  734 + @RequestMapping(value = "wxsb", method = RequestMethod.GET)
  735 + public List<RepairReport> repairReportList(@RequestParam String line, @RequestParam String date, @RequestParam String code, @RequestParam String type){
  736 + return scheduleRealInfoService.repairReportList(line, date, code, type);
  737 + }
1069 738
1070 - public void setCompany(String company) {  
1071 - this.company = company;  
1072 - }  
1073 -  
1074 - public String getXlName() {  
1075 - return xlName;  
1076 - }  
1077 -  
1078 - public void setXlName(String xlName) {  
1079 - this.xlName = xlName;  
1080 - } 739 + @RequestMapping(value = "lineLevel", method = RequestMethod.GET)
  740 + public Map<String, String> lineLevel(@RequestParam String idx){
  741 + return scheduleRealInfoService.getLevelsByLines(Arrays.asList(idx.split(",")));
  742 + }
  743 +
  744 + /**
  745 + * 反馈安全驾驶系统
  746 + * @param param
  747 + * @return
  748 + */
  749 + @RequestMapping(value = "ackDsm", method = RequestMethod.POST)
  750 + public Map<String, Object> ackDsm(@RequestParam Map<String, Object> param){
  751 + Map<String, Object> res = new HashMap<>();
  752 + InputStream in = null;
  753 + SysUser user = SecurityUtils.getCurrentUser();
  754 + DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
  755 + StringBuilder url = new StringBuilder("http://211.95.61.66:9008/modules/dsmCheckTheRecord/addDsm?"), uri = new StringBuilder();
  756 + HttpURLConnection con = null;
  757 + try {
  758 + uri.append("ddyName=").append(URLEncoder.encode(user == null ? "admin" : user.getUserName(), "UTF-8"));
  759 + uri.append("&checkTime=").append(URLEncoder.encode(fmt.print(System.currentTimeMillis()), "UTF-8"));
  760 + uri.append("&nbbm=").append(URLEncoder.encode(param.get("nbbm").toString(), "UTF-8"));
  761 + uri.append("&starttime=").append(URLEncoder.encode(fmt.print(Long.parseLong(param.get("ts").toString())), "UTF-8"));
  762 + url.append(uri);
  763 + con = (HttpURLConnection)new URL(url.toString()).openConnection();
  764 + con.setDoInput(true);
  765 + con.setRequestMethod("POST");
  766 + con.setConnectTimeout(5000);
  767 + con.setReadTimeout(5000);
  768 + con.setRequestProperty("keep-alive", "true");
  769 + con.setRequestProperty("accept", "*/*");
  770 + con.setRequestProperty("content-type", "application/x-www-form-urlencoded");
  771 + con.connect();
  772 +
  773 + if (con.getResponseCode() == 200) {
  774 + in = con.getInputStream();
  775 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  776 + IOUtils.copy(in, bout);
  777 + Map<String, Object> map = new ObjectMapper().readValue(bout.toByteArray(), Map.class);
  778 + System.out.println(map);
  779 + }
  780 + } catch (MalformedURLException e) {
  781 + // TODO Auto-generated catch block
  782 + e.printStackTrace();
  783 + } catch (IOException e) {
  784 + // TODO Auto-generated catch block
  785 + e.printStackTrace();
  786 + } finally {
  787 + if (con != null) {
  788 + con.disconnect();
  789 + }
  790 + }
  791 +
  792 + return res;
  793 + }
  794 +
  795 + @RequestMapping(value = "exportPlan", method = RequestMethod.GET)
  796 + public Map<String, Object> exportPlan(@RequestParam String date){
  797 + Map<String, Object> res = new HashMap<>();
  798 + DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
  799 + Connection conn = null;
  800 + PreparedStatement ps = null;
  801 + ResultSet rs = null;
  802 +
  803 + List<Map<String, Object>> list = new ArrayList<>();
  804 + String sql = "select xl_name,xl_dir,schedule_date,fcsj,cl_zbh,j_name,bcsj from bsth_c_s_sp_info where schedule_date = ? and xl_bm in (22205, 202104, 202105, 202106, 202107, 210415) and bc_type = 'normal'";
  805 + try{
  806 + conn = DBUtils_control.getConnection();
  807 + ps = conn.prepareStatement(sql);
  808 + ps.setString(1, date);
  809 + rs = ps.executeQuery();
  810 + ObjectMapper mapper = new ObjectMapper();
  811 +
  812 + while (rs.next()) {
  813 + SchedulePlan schedulePlan = new SchedulePlan();
  814 + schedulePlan.setXlName(rs.getString("xl_name"));
  815 + schedulePlan.setXlDir(rs.getInt("xl_dir"));
  816 + Date scheduleDate = rs.getDate("schedule_date");
  817 + schedulePlan.setScheduleDate(new DateTime(scheduleDate.getTime()).toString("yyyy-MM-dd"));
  818 + String fcsj = rs.getString("fcsj");
  819 + int bcsj = rs.getInt("bcsj");
  820 + DateTime fcsjDt = dateTimeFormatter.parseDateTime(schedulePlan.getScheduleDate() + " " + fcsj);
  821 + schedulePlan.setFcsj(fcsjDt.toString("HH:mm:00"));
  822 + DateTime ddsjDt = fcsjDt.plusMinutes(bcsj);
  823 + schedulePlan.setDdsj(ddsjDt.toString("HH:mm:00"));
  824 + schedulePlan.setSjdStart(fcsjDt.toString("HH:00:00"));
  825 + DateTime endDt = fcsjDt.plusHours(1);
  826 + schedulePlan.setSjdEnd(endDt.toString("HH:00:00"));
  827 + schedulePlan.setClZbh(rs.getString("cl_zbh"));
  828 + schedulePlan.setJsy(rs.getString("j_name"));
  829 + schedulePlan.setBcsj(bcsj);
  830 +
  831 + list.add(mapper.readValue(mapper.writeValueAsString(schedulePlan), HashMap.class));
  832 + }
  833 + List<Iterator<?>> iterators = new ArrayList<Iterator<?>>();
  834 + iterators.add(list.iterator());
  835 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  836 + String sourcePath = path + "mould/schedulePlan.xls";
  837 +
  838 + new ReportUtils().excelReplace(iterators, new Object[]{}, sourcePath, path + "export/" + date + "-花博会专线班次.xls");
  839 +
  840 + res.put("status", ResponseCode.SUCCESS);
  841 + res.put("msg", "成功");
  842 + } catch (Exception e) {
  843 + res.put("status", ResponseCode.ERROR);
  844 + res.put("msg", e.getMessage());
  845 + } finally {
  846 + DBUtils_control.close(rs, ps, conn);
  847 + }
  848 +
  849 + return res;
  850 + }
1081 851
1082 - public int getXlDir() {  
1083 - return xlDir;  
1084 - } 852 + public final static class SchedulePlan {
  853 + private String company = "浦东公司[46]";
1085 854
1086 - public void setXlDir(int xlDir) {  
1087 - this.xlDir = xlDir;  
1088 - } 855 + private String xlName = "";
1089 856
1090 - public String getXlDirStr() {  
1091 - xlDirStr = "";  
1092 - if (xlDir == 0) {  
1093 - xlDirStr = "上行";  
1094 - } else if (xlDir == 1) {  
1095 - xlDirStr = "下行";  
1096 - }  
1097 - return xlDirStr;  
1098 - } 857 + private int xlDir;
1099 858
1100 - public void setXlDirStr(String xlDirStr) {  
1101 - this.xlDirStr = xlDirStr;  
1102 - } 859 + private String xlDirStr = "";
1103 860
1104 - public String getScheduleDate() {  
1105 - return scheduleDate;  
1106 - } 861 + private String scheduleDate = "";
1107 862
1108 - public void setScheduleDate(String scheduleDate) {  
1109 - this.scheduleDate = scheduleDate;  
1110 - } 863 + private String sjdStart = "";
1111 864
1112 - public String getSjdStart() {  
1113 - return sjdStart;  
1114 - } 865 + private String sjdEnd = "";
1115 866
1116 - public void setSjdStart(String sjdStart) {  
1117 - this.sjdStart = sjdStart;  
1118 - } 867 + private String fcsj = "";
1119 868
1120 - public String getSjdEnd() {  
1121 - return sjdEnd;  
1122 - } 869 + private int bcsj;
1123 870
1124 - public void setSjdEnd(String sjdEnd) {  
1125 - this.sjdEnd = sjdEnd;  
1126 - } 871 + private String ddsj = "";
1127 872
1128 - public String getFcsj() {  
1129 - return fcsj;  
1130 - } 873 + private int yys = 25;
1131 874
1132 - public void setFcsj(String fcsj) {  
1133 - this.fcsj = fcsj;  
1134 - } 875 + private String clZbh = "";
1135 876
1136 - public int getBcsj() {  
1137 - return bcsj;  
1138 - } 877 + private String cph = "";
1139 878
1140 - public void setBcsj(int bcsj) {  
1141 - this.bcsj = bcsj;  
1142 - } 879 + private String color = "绿牌";
1143 880
1144 - public String getDdsj() {  
1145 - return ddsj;  
1146 - } 881 + private String jsy = "";
1147 882
1148 - public void setDdsj(String ddsj) {  
1149 - this.ddsj = ddsj;  
1150 - } 883 + private String jsydh = "";
1151 884
1152 - public int getYys() {  
1153 - return yys;  
1154 - } 885 + private int pj = 10;
1155 886
1156 - public void setYys(int yys) {  
1157 - this.yys = yys;  
1158 - }  
1159 -  
1160 - public String getClZbh() {  
1161 - return clZbh;  
1162 - }  
1163 -  
1164 - public void setClZbh(String clZbh) {  
1165 - this.clZbh = clZbh;  
1166 - }  
1167 -  
1168 - public String getCph() {  
1169 - cph = BasicData.nbbmCompanyPlateMap.get(clZbh);  
1170 - if (cph == null) {  
1171 - cph = "";  
1172 - }  
1173 - return cph;  
1174 - }  
1175 -  
1176 - public void setCph(String cph) {  
1177 - this.cph = cph;  
1178 - }  
1179 -  
1180 - public String getColor() {  
1181 - return color;  
1182 - }  
1183 -  
1184 - public void setColor(String color) {  
1185 - this.color = color;  
1186 - }  
1187 -  
1188 - public String getJsy() {  
1189 - return jsy;  
1190 - }  
1191 -  
1192 - public void setJsy(String jsy) {  
1193 - this.jsy = jsy;  
1194 - }  
1195 -  
1196 - public String getJsydh() {  
1197 - return jsydh;  
1198 - }  
1199 -  
1200 - public void setJsydh(String jsydh) {  
1201 - this.jsydh = jsydh;  
1202 - }  
1203 -  
1204 - public int getPj() {  
1205 - return pj;  
1206 - }  
1207 -  
1208 - public void setPj(int pj) {  
1209 - this.pj = pj;  
1210 - }  
1211 - }  
1212 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a 887 + public String getCompany() {
  888 + return company;
  889 + }
  890 +
  891 + public void setCompany(String company) {
  892 + this.company = company;
  893 + }
  894 +
  895 + public String getXlName() {
  896 + return xlName;
  897 + }
  898 +
  899 + public void setXlName(String xlName) {
  900 + this.xlName = xlName;
  901 + }
  902 +
  903 + public int getXlDir() {
  904 + return xlDir;
  905 + }
  906 +
  907 + public void setXlDir(int xlDir) {
  908 + this.xlDir = xlDir;
  909 + }
  910 +
  911 + public String getXlDirStr() {
  912 + xlDirStr = "";
  913 + if (xlDir == 0) {
  914 + xlDirStr = "上行";
  915 + } else if (xlDir == 1) {
  916 + xlDirStr = "下行";
  917 + }
  918 + return xlDirStr;
  919 + }
  920 +
  921 + public void setXlDirStr(String xlDirStr) {
  922 + this.xlDirStr = xlDirStr;
  923 + }
  924 +
  925 + public String getScheduleDate() {
  926 + return scheduleDate;
  927 + }
  928 +
  929 + public void setScheduleDate(String scheduleDate) {
  930 + this.scheduleDate = scheduleDate;
  931 + }
  932 +
  933 + public String getSjdStart() {
  934 + return sjdStart;
  935 + }
  936 +
  937 + public void setSjdStart(String sjdStart) {
  938 + this.sjdStart = sjdStart;
  939 + }
  940 +
  941 + public String getSjdEnd() {
  942 + return sjdEnd;
  943 + }
  944 +
  945 + public void setSjdEnd(String sjdEnd) {
  946 + this.sjdEnd = sjdEnd;
  947 + }
  948 +
  949 + public String getFcsj() {
  950 + return fcsj;
  951 + }
  952 +
  953 + public void setFcsj(String fcsj) {
  954 + this.fcsj = fcsj;
  955 + }
  956 +
  957 + public int getBcsj() {
  958 + return bcsj;
  959 + }
  960 +
  961 + public void setBcsj(int bcsj) {
  962 + this.bcsj = bcsj;
  963 + }
  964 +
  965 + public String getDdsj() {
  966 + return ddsj;
  967 + }
  968 +
  969 + public void setDdsj(String ddsj) {
  970 + this.ddsj = ddsj;
  971 + }
  972 +
  973 + public int getYys() {
  974 + return yys;
  975 + }
  976 +
  977 + public void setYys(int yys) {
  978 + this.yys = yys;
  979 + }
  980 +
  981 + public String getClZbh() {
  982 + return clZbh;
  983 + }
  984 +
  985 + public void setClZbh(String clZbh) {
  986 + this.clZbh = clZbh;
  987 + }
  988 +
  989 + public String getCph() {
  990 + cph = BasicData.nbbmCompanyPlateMap.get(clZbh);
  991 + if (cph == null) {
  992 + cph = "";
  993 + }
  994 + return cph;
  995 + }
  996 +
  997 + public void setCph(String cph) {
  998 + this.cph = cph;
  999 + }
  1000 +
  1001 + public String getColor() {
  1002 + return color;
  1003 + }
  1004 +
  1005 + public void setColor(String color) {
  1006 + this.color = color;
  1007 + }
  1008 +
  1009 + public String getJsy() {
  1010 + return jsy;
  1011 + }
  1012 +
  1013 + public void setJsy(String jsy) {
  1014 + this.jsy = jsy;
  1015 + }
  1016 +
  1017 + public String getJsydh() {
  1018 + return jsydh;
  1019 + }
  1020 +
  1021 + public void setJsydh(String jsydh) {
  1022 + this.jsydh = jsydh;
  1023 + }
  1024 +
  1025 + public int getPj() {
  1026 + return pj;
  1027 + }
  1028 +
  1029 + public void setPj(int pj) {
  1030 + this.pj = pj;
  1031 + }
  1032 + }
1213 } 1033 }
src/main/java/com/bsth/controller/report/ReportController.java
@@ -27,324 +27,324 @@ import com.bsth.util.ReportUtils; @@ -27,324 +27,324 @@ import com.bsth.util.ReportUtils;
27 @RestController 27 @RestController
28 @RequestMapping("report") 28 @RequestMapping("report")
29 public class ReportController { 29 public class ReportController {
30 -  
31 - @Autowired  
32 - ReportService service;  
33 -  
34 - @RequestMapping(value="/queryListBczx" ,method = RequestMethod.GET)  
35 - public List<ScheduleRealInfo> queryListBczx(@RequestParam String clzbh,@RequestParam String line,@RequestParam String date){  
36 - return service.queryListBczx(line,date,clzbh);  
37 - }  
38 -  
39 - @RequestMapping(value="/queryListZdxx" ,method = RequestMethod.GET)  
40 - public List<ArrivalInfo> queryListZdxx(@RequestParam String clzbh,@RequestParam String line,  
41 - @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){  
42 - return service.queryListZdxx(line,date,clzbh,fcsj,ddsj);  
43 - }  
44 -  
45 - @RequestMapping(value="/exportQueryListZdxx" ,method = RequestMethod.GET)  
46 - public List<Map<String, Object>> exportQueryListZdxx(@RequestParam String clzbh,@RequestParam String line,  
47 - @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){  
48 - List<Iterator<?>> listI = new ArrayList<Iterator<?>>();  
49 - ReportUtils ee = new ReportUtils();  
50 - List<ArrivalInfo> list=service.queryListZdxx(line,date,clzbh,fcsj,ddsj);  
51 - List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();  
52 - int i=1;  
53 - for (ArrivalInfo a:list ) {  
54 - Map<String, Object> m = new HashMap<String, Object>();  
55 - m.put("i", i);  
56 - m.put("nbbm", a.getNbbm());  
57 - m.put("pzh", a.getPzh());  
58 - m.put("stopName", a.getStopName());  
59 - m.put("jzsj", a.getJzsj());  
60 - m.put("czsj", a.getCzsj());  
61 - m.put("kgm", "");  
62 - m.put("upDown", a.getUpDown()==0?"上行":"下行");  
63 - m.put("kmsd", "");  
64 - m.put("bufa", "");  
65 - m.put("skcs", "");  
66 - m.put("skje", "");  
67 - m.put("mfskcs", "");  
68 - m.put("mfskje", "");  
69 - resList.add(m);  
70 - i++;  
71 - }  
72 - try {  
73 - SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 30 +
  31 + @Autowired
  32 + ReportService service;
  33 +
  34 + @RequestMapping(value="/queryListBczx" ,method = RequestMethod.GET)
  35 + public List<ScheduleRealInfo> queryListBczx(@RequestParam String clzbh,@RequestParam String line,@RequestParam String date){
  36 + return service.queryListBczx(line,date,clzbh);
  37 + }
  38 +
  39 + @RequestMapping(value="/queryListZdxx" ,method = RequestMethod.GET)
  40 + public List<ArrivalInfo> queryListZdxx(@RequestParam String clzbh,@RequestParam String line,
  41 + @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
  42 + return service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
  43 + }
  44 +
  45 + @RequestMapping(value="/exportQueryListZdxx" ,method = RequestMethod.GET)
  46 + public List<Map<String, Object>> exportQueryListZdxx(@RequestParam String clzbh,@RequestParam String line,
  47 + @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
  48 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  49 + ReportUtils ee = new ReportUtils();
  50 + List<ArrivalInfo> list=service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
  51 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  52 + int i=1;
  53 + for (ArrivalInfo a:list ) {
  54 + Map<String, Object> m = new HashMap<String, Object>();
  55 + m.put("i", i);
  56 + m.put("nbbm", a.getNbbm());
  57 + m.put("pzh", a.getPzh());
  58 + m.put("stopName", a.getStopName());
  59 + m.put("jzsj", a.getJzsj());
  60 + m.put("czsj", a.getCzsj());
  61 + m.put("kgm", "");
  62 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  63 + m.put("kmsd", "");
  64 + m.put("bufa", "");
  65 + m.put("skcs", "");
  66 + m.put("skje", "");
  67 + m.put("mfskcs", "");
  68 + m.put("mfskje", "");
  69 + resList.add(m);
  70 + i++;
  71 + }
  72 + try {
  73 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
74 sdfSimple = new SimpleDateFormat("yyyyMMdd"); 74 sdfSimple = new SimpleDateFormat("yyyyMMdd");
75 - Map<String, Object> map=new HashMap<String, Object>();  
76 - listI.add(resList.iterator());  
77 - String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";  
78 - ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",  
79 - path + "export/"+sdfSimple.format(sdfMonth.parse(date))  
80 - +"-"+clzbh+"-班次到离站.xls");  
81 - } catch (Exception e) {  
82 - e.printStackTrace();  
83 - }  
84 - return resList;  
85 - }  
86 -  
87 -  
88 - @RequestMapping(value="/queryStrinon" ,method = RequestMethod.GET)  
89 - public List<StationRoute> queryStrinon(@RequestParam String line,  
90 - @RequestParam int zd){  
91 - List<StationRoute> list=service.queryStrinon(line,zd);  
92 - return list;  
93 - }  
94 - //根据排班查到离站  
95 - @RequestMapping(value="/queryInOutStrtion" ,method = RequestMethod.GET)  
96 - public List<Map<String, Object>> queryInOutStrtion(@RequestParam String line,  
97 - @RequestParam String date,@RequestParam int zd,@RequestParam String lzsj){  
98 - return service.queryInOutStrtion(line,date,zd,lzsj);  
99 - }  
100 -  
101 - //根据GPS数据查到离站  
102 - @RequestMapping(value="/queryInOutStrtions" ,method = RequestMethod.GET)  
103 - public List<Map<String, Object>> queryInOutStrtions(@RequestParam String line,  
104 - @RequestParam String date,@RequestParam int zd,@RequestParam String lzsj){  
105 - return service.queryInOutStrtions(line,date,zd,lzsj);  
106 - }  
107 - @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)  
108 - public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,  
109 - @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){  
110 - return service.queryListClzd(line,zd,zdlx,fcsj,ddsj);  
111 - }  
112 -  
113 -  
114 -  
115 -  
116 -  
117 -  
118 - @RequestMapping(value="/exportQueryListClzd" ,method = RequestMethod.GET)  
119 - public List<Map<String, Object>> exportQueryListClzd(@RequestParam String zd,@RequestParam String line,  
120 - @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){  
121 - List<Iterator<?>> listI = new ArrayList<Iterator<?>>();  
122 - ReportUtils ee = new ReportUtils();  
123 - List<ArrivalInfo> list=service.queryListClzd(line,zd,zdlx,fcsj,ddsj);  
124 - List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();  
125 - int i=1;  
126 - for (ArrivalInfo a:list ) {  
127 - Map<String, Object> m = new HashMap<String, Object>();  
128 - m.put("i", i);  
129 - m.put("nbbm", a.getNbbm());  
130 - m.put("pzh", a.getPzh());  
131 - m.put("stopName", a.getStopName());  
132 - m.put("jzsj", a.getJzsj());  
133 - m.put("czsj", a.getCzsj());  
134 - m.put("kgm", "");  
135 - m.put("upDown", a.getUpDown()==0?"上行":"下行");  
136 - m.put("kmsd", "");  
137 - m.put("bufa", "");  
138 - m.put("skcs", "");  
139 - m.put("skje", "");  
140 - m.put("mfskcs", "");  
141 - m.put("mfskje", "");  
142 - resList.add(m);  
143 - i++;  
144 - }  
145 -  
146 - try { 75 + Map<String, Object> map=new HashMap<String, Object>();
  76 + listI.add(resList.iterator());
  77 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  78 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  79 + path + "export/"+sdfSimple.format(sdfMonth.parse(date))
  80 + +"-"+clzbh+"-班次到离站.xls");
  81 + } catch (Exception e) {
  82 + e.printStackTrace();
  83 + }
  84 + return resList;
  85 + }
  86 +
  87 +
  88 + @RequestMapping(value="/queryStrinon" ,method = RequestMethod.GET)
  89 + public List<StationRoute> queryStrinon(@RequestParam String line,
  90 + @RequestParam int zd){
  91 + List<StationRoute> list=service.queryStrinon(line,zd);
  92 + return list;
  93 + }
  94 + //根据排班查到离站
  95 + @RequestMapping(value="/queryInOutStrtion" ,method = RequestMethod.GET)
  96 + public List<Map<String, Object>> queryInOutStrtion(@RequestParam String line,
  97 + @RequestParam String date,@RequestParam int zd,@RequestParam String lzsj){
  98 + return service.queryInOutStrtion(line,date,zd,lzsj);
  99 + }
  100 +
  101 + //根据GPS数据查到离站
  102 + @RequestMapping(value="/queryInOutStrtions" ,method = RequestMethod.GET)
  103 + public List<Map<String, Object>> queryInOutStrtions(@RequestParam String line,
  104 + @RequestParam String date,@RequestParam int zd,@RequestParam String lzsj){
  105 + return service.queryInOutStrtions(line,date,zd,lzsj);
  106 + }
  107 + @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)
  108 + public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,
  109 + @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
  110 + return service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
  111 + }
  112 +
  113 +
  114 +
  115 +
  116 +
  117 +
  118 + @RequestMapping(value="/exportQueryListClzd" ,method = RequestMethod.GET)
  119 + public List<Map<String, Object>> exportQueryListClzd(@RequestParam String zd,@RequestParam String line,
  120 + @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
  121 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  122 + ReportUtils ee = new ReportUtils();
  123 + List<ArrivalInfo> list=service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
  124 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  125 + int i=1;
  126 + for (ArrivalInfo a:list ) {
  127 + Map<String, Object> m = new HashMap<String, Object>();
  128 + m.put("i", i);
  129 + m.put("nbbm", a.getNbbm());
  130 + m.put("pzh", a.getPzh());
  131 + m.put("stopName", a.getStopName());
  132 + m.put("jzsj", a.getJzsj());
  133 + m.put("czsj", a.getCzsj());
  134 + m.put("kgm", "");
  135 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  136 + m.put("kmsd", "");
  137 + m.put("bufa", "");
  138 + m.put("skcs", "");
  139 + m.put("skje", "");
  140 + m.put("mfskcs", "");
  141 + m.put("mfskje", "");
  142 + resList.add(m);
  143 + i++;
  144 + }
  145 +
  146 + try {
147 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 147 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
148 sdfSimple = new SimpleDateFormat("yyyyMMdd"); 148 sdfSimple = new SimpleDateFormat("yyyyMMdd");
149 - String lineName = BasicData.lineCode2NameMap.get(line);  
150 - String dateTime = "", startDate = "", endDate = "";  
151 - startDate = fcsj.substring(0, 10);  
152 - endDate = ddsj.substring(0, 10);  
153 - if(startDate.equals(endDate)){  
154 - dateTime = sdfSimple.format(sdfMonth.parse(startDate));  
155 - } else {  
156 - dateTime = sdfSimple.format(sdfMonth.parse(startDate))  
157 - +"-"+sdfSimple.format(sdfMonth.parse(endDate));  
158 - }  
159 - Map<String, Object> map=new HashMap<String, Object>();  
160 - listI.add(resList.iterator());  
161 - String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";  
162 - ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",  
163 - path + "export/"+dateTime+"-"+lineName+"-班次到离站.xls");  
164 - } catch (Exception e) {  
165 - e.printStackTrace();  
166 - }  
167 - return resList;  
168 - }  
169 -  
170 -  
171 - @RequestMapping(value="/jobSummaryExport" ,method = RequestMethod.GET)  
172 - public List<Map<String, Object>> jobSummaryExport(@RequestParam Map<String, Object> map){  
173 - List<Iterator<?>> listI = new ArrayList<Iterator<?>>();  
174 - String lineName=map.get("lineName").toString();  
175 - String date=map.get("date").toString();  
176 - ReportUtils ee = new ReportUtils();  
177 - List<Map<String,Object>> fwqlList= service.jobFwqk(map);  
178 - List<Map<String, Object>> lgqlList=service.jobLjqk(map);  
179 - map=service.jobHzxx(map);  
180 - map.put("lineName", lineName);  
181 - map.put("date",date);  
182 - if(fwqlList.size()<=0){  
183 - Map<String, Object> newMap=new HashMap<String,Object>();  
184 - newMap.put("nr", " ");  
185 - newMap.put("lp", " ");  
186 - newMap.put("nbbm", " ");  
187 - newMap.put("jgh", " ");  
188 - newMap.put("dz", " ");  
189 - newMap.put("sj", " ");  
190 - newMap.put("lbbc", " ");  
191 - newMap.put("lblc", " ");  
192 - newMap.put("jyqp", " ");  
193 - fwqlList.add(newMap);  
194 - }  
195 - if(lgqlList.size()<=0){  
196 - Map<String, Object> newMap=new HashMap<String,Object>();  
197 - newMap.put("lp", " ");  
198 - newMap.put("nbbm", " ");  
199 - newMap.put("jgh", " ");  
200 - newMap.put("dz", " ");  
201 - newMap.put("sj", " ");  
202 - newMap.put("ljlc"," ");  
203 - newMap.put("jyqp", " ");  
204 - lgqlList.add(newMap);  
205 - }  
206 - try { 149 + String lineName = BasicData.lineCode2NameMap.get(line);
  150 + String dateTime = "", startDate = "", endDate = "";
  151 + startDate = fcsj.substring(0, 10);
  152 + endDate = ddsj.substring(0, 10);
  153 + if(startDate.equals(endDate)){
  154 + dateTime = sdfSimple.format(sdfMonth.parse(startDate));
  155 + } else {
  156 + dateTime = sdfSimple.format(sdfMonth.parse(startDate))
  157 + +"-"+sdfSimple.format(sdfMonth.parse(endDate));
  158 + }
  159 + Map<String, Object> map=new HashMap<String, Object>();
  160 + listI.add(resList.iterator());
  161 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  162 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  163 + path + "export/"+dateTime+"-"+lineName+"-班次到离站.xls");
  164 + } catch (Exception e) {
  165 + e.printStackTrace();
  166 + }
  167 + return resList;
  168 + }
  169 +
  170 +
  171 + @RequestMapping(value="/jobSummaryExport" ,method = RequestMethod.GET)
  172 + public List<Map<String, Object>> jobSummaryExport(@RequestParam Map<String, Object> map){
  173 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  174 + String lineName=map.get("lineName").toString();
  175 + String date=map.get("date").toString();
  176 + ReportUtils ee = new ReportUtils();
  177 + List<Map<String,Object>> fwqlList= service.jobFwqk(map);
  178 + List<Map<String, Object>> lgqlList=service.jobLjqk(map);
  179 + map=service.jobHzxx(map);
  180 + map.put("lineName", lineName);
  181 + map.put("date",date);
  182 + if(fwqlList.size()<=0){
  183 + Map<String, Object> newMap=new HashMap<String,Object>();
  184 + newMap.put("nr", " ");
  185 + newMap.put("lp", " ");
  186 + newMap.put("nbbm", " ");
  187 + newMap.put("jgh", " ");
  188 + newMap.put("dz", " ");
  189 + newMap.put("sj", " ");
  190 + newMap.put("lbbc", " ");
  191 + newMap.put("lblc", " ");
  192 + newMap.put("jyqp", " ");
  193 + fwqlList.add(newMap);
  194 + }
  195 + if(lgqlList.size()<=0){
  196 + Map<String, Object> newMap=new HashMap<String,Object>();
  197 + newMap.put("lp", " ");
  198 + newMap.put("nbbm", " ");
  199 + newMap.put("jgh", " ");
  200 + newMap.put("dz", " ");
  201 + newMap.put("sj", " ");
  202 + newMap.put("ljlc"," ");
  203 + newMap.put("jyqp", " ");
  204 + lgqlList.add(newMap);
  205 + }
  206 + try {
207 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 207 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
208 sdfSimple = new SimpleDateFormat("yyyyMMdd"); 208 sdfSimple = new SimpleDateFormat("yyyyMMdd");
209 - listI.add(fwqlList.iterator());  
210 - listI.add(lgqlList.iterator());  
211 - String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";  
212 - ee.excelReplace(listI, new Object[] { map }, path + "mould/jobSummary.xls",  
213 - path + "export/"+sdfSimple.format(sdfMonth.parse(date))  
214 - +"-"+lineName+"-调度员工作汇总日报.xls");  
215 - } catch (Exception e) {  
216 - e.printStackTrace();  
217 - }  
218 - return new ArrayList<Map<String, Object>>();  
219 - }  
220 - @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)  
221 - public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx) {  
222 - return service.sreachZd(line,zdlx);  
223 - }  
224 -  
225 -  
226 -  
227 - @RequestMapping(value = "/historyMessageCount", method = RequestMethod.GET)  
228 - public List<Object[]> historyMessageCount(@RequestParam String line, @RequestParam String date,  
229 - @RequestParam String code) {  
230 - return service.historyMessageCount(line, date, code);  
231 - }  
232 -  
233 - @RequestMapping(value = "/historyMessageList", method = RequestMethod.GET)  
234 - public List<Object[]> historyMessageList(@RequestParam String line, @RequestParam String date,  
235 - @RequestParam String code,@RequestParam String type) {  
236 - return service.historyMessageList(line, date, code, type);  
237 - }  
238 -  
239 - @RequestMapping(value = "/tbodyTime1", method = RequestMethod.GET)  
240 - public Map<String, Object> tbodyTime1(@RequestParam String line,@RequestParam String ttinfo) {  
241 - return service.tbodyTime1(line, ttinfo);  
242 - }  
243 -  
244 - @RequestMapping(value = "/tbodyTime2", method = RequestMethod.GET)  
245 - public Map<String, Object> tbodyTime2(@RequestParam String line,@RequestParam String ttinfo) {  
246 - return service.tbodyTime2(line, ttinfo);  
247 - }  
248 -  
249 - @RequestMapping(value = "/tbodyTime3", method = RequestMethod.GET)  
250 - public List<Map<String, Object>> tbodyTime3(@RequestParam String line,@RequestParam String ttinfo) {  
251 - return service.tbodyTime3(line, ttinfo);  
252 - }  
253 -  
254 - @RequestMapping(value = "/tbodyTime4", method = RequestMethod.GET)  
255 - public List<Map<String, Object>> tbodyTime4(@RequestParam String line,@RequestParam String ttinfo) {  
256 - return service.tbodyTime4(line, ttinfo);  
257 - }  
258 -  
259 - @RequestMapping(value = "/tbodyTime5", method = RequestMethod.GET)  
260 - public List<Map<String, Object>> tbodyTime5(@RequestParam String line,@RequestParam String ttinfo) {  
261 - return service.tbodyTime5(line, ttinfo);  
262 - }  
263 -  
264 - @RequestMapping(value="/getTtinfo", method = RequestMethod.GET)  
265 - public List<Map<String,Object>> getTtinfo(@RequestParam Map<String, Object> map){  
266 - return service.getTtinfo(map);  
267 - }  
268 -  
269 -  
270 - @RequestMapping(value="/jobFwqk", method = RequestMethod.GET)  
271 - public List<Map<String,Object>> jobFwqk(@RequestParam Map<String, Object> map){  
272 - return service.jobFwqk(map);  
273 - }  
274 -  
275 - @RequestMapping(value="/jobHzxx", method = RequestMethod.GET)  
276 - public Map<String,Object> jobHzxx(@RequestParam Map<String, Object> map){  
277 - Map<String, Object> newMap=service.jobHzxx(map);  
278 - return newMap;  
279 - }  
280 -  
281 -  
282 - @RequestMapping(value="/jobLjqk", method = RequestMethod.GET)  
283 - public List<Map<String,Object>> jobLjqk(@RequestParam Map<String, Object> map){  
284 - return service.jobLjqk(map);  
285 - }  
286 -  
287 - @RequestMapping(value="/lineList",method = RequestMethod.GET)  
288 - public List<Map<String,Object>> lineList(){  
289 - return service.lineList();  
290 - }  
291 -  
292 - @RequestMapping(value="/carList",method = RequestMethod.GET)  
293 - public List<Map<String,String>> carList(@RequestParam Map<String, Object> map){  
294 - return service.carList(map);  
295 - }  
296 -  
297 - @RequestMapping(value="/userList",method = RequestMethod.GET)  
298 - public List<Map<String,String>> userList(@RequestParam Map<String, Object> map){  
299 - return service.userList(map);  
300 - }  
301 -  
302 - @RequestMapping(value="/countLineMileage")  
303 - public List<Map<String,Object>> countLineMileage(@RequestParam Map<String, Object> map){  
304 -  
305 - return service.countByList(map);  
306 - }  
307 -  
308 - @RequestMapping(value="/countLineMileage2")  
309 - public List<Map<String,Object>> countLineMileage2(@RequestParam Map<String, Object> map){  
310 -  
311 - return service.countByList2(map);  
312 - }  
313 -  
314 - @RequestMapping(value="/countBusMileage")  
315 - public List<Map<String,Object>> countBusMileage(@RequestParam Map<String, Object> map){  
316 - return service.countByBusList(map);  
317 - }  
318 -  
319 - @RequestMapping(value="/countDjg")  
320 - public List<Map<String, Object>> countDjg(@RequestParam Map<String, Object> map){  
321 - return service.countDjg(map);  
322 - }  
323 -  
324 -  
325 - @RequestMapping(value="/countDjgXx")  
326 - public List<Map<String, Object>> countDjgXx(@RequestParam Map<String, Object> map){  
327 - List<Map<String, Object>> lMap=new ArrayList<Map<String, Object>>();  
328 - String json =StringEscapeUtils.unescapeHtml4(map.get("listXx").toString());  
329 - JSONArray jsonArray=JSONArray.parseArray(json);  
330 - JSONObject jsonObject;  
331 - for (int x = 0; x < jsonArray.size(); x++) {  
332 - jsonObject=jsonArray.getJSONObject(x);  
333 - Map<String, Object> m_=new HashMap<String,Object>();  
334 - m_.put("fgsname", jsonObject.getString("fgsname"));  
335 - m_.put("xlName", jsonObject.getString("xlName"));  
336 - m_.put("djgde", jsonObject.getString("djgde"));  
337 - m_.put("qJh", jsonObject.getString("qJh"));  
338 - m_.put("qSj", jsonObject.getString("qSj"));  
339 - m_.put("hJh", jsonObject.getString("hJh"));  
340 - m_.put("hSj", jsonObject.getString("hSj"));  
341 - m_.put("djgsj", jsonObject.getString("djgsj"));  
342 - m_.put("bcjgsj", jsonObject.getString("bcjgsj"));  
343 - lMap.add(m_);  
344 - }  
345 - List<Iterator<?>> listI = new ArrayList<Iterator<?>>();  
346 - Map<String, Object> m = new HashMap<String, Object>();  
347 - m.put("date", map.get("date").toString()); 209 + listI.add(fwqlList.iterator());
  210 + listI.add(lgqlList.iterator());
  211 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  212 + ee.excelReplace(listI, new Object[] { map }, path + "mould/jobSummary.xls",
  213 + path + "export/"+sdfSimple.format(sdfMonth.parse(date))
  214 + +"-"+lineName+"-调度员工作汇总日报.xls");
  215 + } catch (Exception e) {
  216 + e.printStackTrace();
  217 + }
  218 + return new ArrayList<Map<String, Object>>();
  219 + }
  220 + @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)
  221 + public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx) {
  222 + return service.sreachZd(line,zdlx);
  223 + }
  224 +
  225 +
  226 +
  227 + @RequestMapping(value = "/historyMessageCount", method = RequestMethod.GET)
  228 + public List<Object[]> historyMessageCount(@RequestParam String line, @RequestParam String date,
  229 + @RequestParam String code) {
  230 + return service.historyMessageCount(line, date, code);
  231 + }
  232 +
  233 + @RequestMapping(value = "/historyMessageList", method = RequestMethod.GET)
  234 + public List<Object[]> historyMessageList(@RequestParam String line, @RequestParam String date,
  235 + @RequestParam String code,@RequestParam String type) {
  236 + return service.historyMessageList(line, date, code, type);
  237 + }
  238 +
  239 + @RequestMapping(value = "/tbodyTime1", method = RequestMethod.GET)
  240 + public Map<String, Object> tbodyTime1(@RequestParam String line,@RequestParam String ttinfo) {
  241 + return service.tbodyTime1(line, ttinfo);
  242 + }
  243 +
  244 + @RequestMapping(value = "/tbodyTime2", method = RequestMethod.GET)
  245 + public Map<String, Object> tbodyTime2(@RequestParam String line,@RequestParam String ttinfo) {
  246 + return service.tbodyTime2(line, ttinfo);
  247 + }
  248 +
  249 + @RequestMapping(value = "/tbodyTime3", method = RequestMethod.GET)
  250 + public List<Map<String, Object>> tbodyTime3(@RequestParam String line,@RequestParam String ttinfo) {
  251 + return service.tbodyTime3(line, ttinfo);
  252 + }
  253 +
  254 + @RequestMapping(value = "/tbodyTime4", method = RequestMethod.GET)
  255 + public List<Map<String, Object>> tbodyTime4(@RequestParam String line,@RequestParam String ttinfo) {
  256 + return service.tbodyTime4(line, ttinfo);
  257 + }
  258 +
  259 + @RequestMapping(value = "/tbodyTime5", method = RequestMethod.GET)
  260 + public List<Map<String, Object>> tbodyTime5(@RequestParam String line,@RequestParam String ttinfo) {
  261 + return service.tbodyTime5(line, ttinfo);
  262 + }
  263 +
  264 + @RequestMapping(value="/getTtinfo", method = RequestMethod.GET)
  265 + public List<Map<String,Object>> getTtinfo(@RequestParam Map<String, Object> map){
  266 + return service.getTtinfo(map);
  267 + }
  268 +
  269 +
  270 + @RequestMapping(value="/jobFwqk", method = RequestMethod.GET)
  271 + public List<Map<String,Object>> jobFwqk(@RequestParam Map<String, Object> map){
  272 + return service.jobFwqk(map);
  273 + }
  274 +
  275 + @RequestMapping(value="/jobHzxx", method = RequestMethod.GET)
  276 + public Map<String,Object> jobHzxx(@RequestParam Map<String, Object> map){
  277 + Map<String, Object> newMap=service.jobHzxx(map);
  278 + return newMap;
  279 + }
  280 +
  281 +
  282 + @RequestMapping(value="/jobLjqk", method = RequestMethod.GET)
  283 + public List<Map<String,Object>> jobLjqk(@RequestParam Map<String, Object> map){
  284 + return service.jobLjqk(map);
  285 + }
  286 +
  287 + @RequestMapping(value="/lineList",method = RequestMethod.GET)
  288 + public List<Map<String,Object>> lineList(){
  289 + return service.lineList();
  290 + }
  291 +
  292 + @RequestMapping(value="/carList",method = RequestMethod.GET)
  293 + public List<Map<String,String>> carList(@RequestParam Map<String, Object> map){
  294 + return service.carList(map);
  295 + }
  296 +
  297 + @RequestMapping(value="/userList",method = RequestMethod.GET)
  298 + public List<Map<String,String>> userList(@RequestParam Map<String, Object> map){
  299 + return service.userList(map);
  300 + }
  301 +
  302 + @RequestMapping(value="/countLineMileage")
  303 + public List<Map<String,Object>> countLineMileage(@RequestParam Map<String, Object> map){
  304 +
  305 + return service.countByList(map);
  306 + }
  307 +
  308 + @RequestMapping(value="/countLineMileage2")
  309 + public List<Map<String,Object>> countLineMileage2(@RequestParam Map<String, Object> map){
  310 +
  311 + return service.countByList2(map);
  312 + }
  313 +
  314 + @RequestMapping(value="/countBusMileage")
  315 + public List<Map<String,Object>> countBusMileage(@RequestParam Map<String, Object> map){
  316 + return service.countByBusList(map);
  317 + }
  318 +
  319 + @RequestMapping(value="/countDjg")
  320 + public List<Map<String, Object>> countDjg(@RequestParam Map<String, Object> map){
  321 + return service.countDjg(map);
  322 + }
  323 +
  324 +
  325 + @RequestMapping(value="/countDjgXx")
  326 + public List<Map<String, Object>> countDjgXx(@RequestParam Map<String, Object> map){
  327 + List<Map<String, Object>> lMap=new ArrayList<Map<String, Object>>();
  328 + String json =StringEscapeUtils.unescapeHtml4(map.get("listXx").toString());
  329 + JSONArray jsonArray=JSONArray.parseArray(json);
  330 + JSONObject jsonObject;
  331 + for (int x = 0; x < jsonArray.size(); x++) {
  332 + jsonObject=jsonArray.getJSONObject(x);
  333 + Map<String, Object> m_=new HashMap<String,Object>();
  334 + m_.put("fgsname", jsonObject.getString("fgsname"));
  335 + m_.put("xlName", jsonObject.getString("xlName"));
  336 + m_.put("djgde", jsonObject.getString("djgde"));
  337 + m_.put("qJh", jsonObject.getString("qJh"));
  338 + m_.put("qSj", jsonObject.getString("qSj"));
  339 + m_.put("hJh", jsonObject.getString("hJh"));
  340 + m_.put("hSj", jsonObject.getString("hSj"));
  341 + m_.put("djgsj", jsonObject.getString("djgsj"));
  342 + m_.put("bcjgsj", jsonObject.getString("bcjgsj"));
  343 + lMap.add(m_);
  344 + }
  345 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  346 + Map<String, Object> m = new HashMap<String, Object>();
  347 + m.put("date", map.get("date").toString());
348 ReportUtils ee = new ReportUtils(); 348 ReportUtils ee = new ReportUtils();
349 try { 349 try {
350 listI.add(lMap.iterator()); 350 listI.add(lMap.iterator());
@@ -355,62 +355,38 @@ public class ReportController { @@ -355,62 +355,38 @@ public class ReportController {
355 // TODO: handle exception 355 // TODO: handle exception
356 e.printStackTrace(); 356 e.printStackTrace();
357 } 357 }
358 -  
359 - return lMap;  
360 - }  
361 - @RequestMapping(value="/online")  
362 - public Map<String, Object> online(@RequestParam Map<String, Object> map){  
363 - return service.online(map);  
364 - }  
365 -  
366 -<<<<<<< HEAD  
367 - @RequestMapping(value="/workingHours" ,method = RequestMethod.POST)  
368 - public List<Map<String, Object>> workingHours(@RequestParam String gsdm, @RequestParam String fgsdm,  
369 - @RequestParam String line, @RequestParam String date, @RequestParam String date2, @RequestParam String gh,  
370 - @RequestParam String cl, @RequestParam String lineName, @RequestParam String type){  
371 - List<Map<String, Object>> list = service.workingHours(gsdm, fgsdm, line, date, date2, gh, cl);  
372 - if("export".equals(type)){  
373 - try {  
374 - ReportUtils ee = new ReportUtils();  
375 - List<Iterator<?>> listI = new ArrayList<Iterator<?>>();  
376 - SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),  
377 - sdfSimple = new SimpleDateFormat("yyyyMMdd");  
378 - listI.add(list.iterator());  
379 - String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";  
380 - ee.excelReplace(listI, new Object[] { }, path + "mould/workingHours.xls",  
381 - path + "export/"+sdfSimple.format(sdfMonth.parse(date))  
382 - +"-"+lineName+"-工时统计表.xls");  
383 - } catch (Exception e) {  
384 - e.printStackTrace();  
385 - }  
386 - }  
387 - return list;  
388 -=======  
389 -  
390 -  
391 - @RequestMapping(value = "/singledatatj", method = RequestMethod.GET)  
392 - public List<Singledata> singledatatj(@RequestParam Map<String, Object> map) {  
393 -  
394 - return service.singledatatj(map);  
395 - }  
396 -  
397 - //单日统计路单公里与油量,电量合并  
398 - @RequestMapping(value = "/singleEnergy", method = RequestMethod.GET)  
399 - public List<Map<String, Object>> singleEnergy(@RequestParam Map<String, Object> map) {  
400 -  
401 - return service.singleEnergy(map);  
402 - }  
403 -  
404 - /**  
405 - * @Description :TODO(路单线路明细月报表导出数据)  
406 - *  
407 - * @param map <tables>  
408 - *  
409 - * @return Map<String, Object>  
410 - */  
411 - @RequestMapping(value = "/calcDetailMonthlyE" , method = RequestMethod.POST)  
412 - public Map<String, Object> calcDetailMonthlyE(@RequestParam Map<String,Object> map) {  
413 - return service.calcDetailMonthlyE(map);  
414 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
415 - } 358 +
  359 + return lMap;
  360 + }
  361 + @RequestMapping(value="/online")
  362 + public Map<String, Object> online(@RequestParam Map<String, Object> map){
  363 + return service.online(map);
  364 + }
  365 +
  366 +
  367 +
  368 + @RequestMapping(value = "/singledatatj", method = RequestMethod.GET)
  369 + public List<Singledata> singledatatj(@RequestParam Map<String, Object> map) {
  370 +
  371 + return service.singledatatj(map);
  372 + }
  373 +
  374 + //单日统计路单公里与油量,电量合并
  375 + @RequestMapping(value = "/singleEnergy", method = RequestMethod.GET)
  376 + public List<Map<String, Object>> singleEnergy(@RequestParam Map<String, Object> map) {
  377 +
  378 + return service.singleEnergy(map);
  379 + }
  380 +
  381 + /**
  382 + * @Description :TODO(路单线路明细月报表导出数据)
  383 + *
  384 + * @param map <tables>
  385 + *
  386 + * @return Map<String, Object>
  387 + */
  388 + @RequestMapping(value = "/calcDetailMonthlyE" , method = RequestMethod.POST)
  389 + public Map<String, Object> calcDetailMonthlyE(@RequestParam Map<String,Object> map) {
  390 + return service.calcDetailMonthlyE(map);
  391 + }
416 } 392 }
src/main/java/com/bsth/data/gpsdata_v2/DataHandleProcess.java
@@ -6,10 +6,7 @@ import com.bsth.data.gpsdata_v2.entity.GpsEntity; @@ -6,10 +6,7 @@ import com.bsth.data.gpsdata_v2.entity.GpsEntity;
6 import com.bsth.data.gpsdata_v2.handlers.*; 6 import com.bsth.data.gpsdata_v2.handlers.*;
7 import com.bsth.email.SendEmailController; 7 import com.bsth.email.SendEmailController;
8 import com.bsth.email.entity.EmailBean; 8 import com.bsth.email.entity.EmailBean;
9 -<<<<<<< HEAD  
10 -=======  
11 import com.fasterxml.jackson.databind.ObjectMapper; 9 import com.fasterxml.jackson.databind.ObjectMapper;
12 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
13 import com.google.common.collect.ArrayListMultimap; 10 import com.google.common.collect.ArrayListMultimap;
14 import org.apache.commons.lang3.StringUtils; 11 import org.apache.commons.lang3.StringUtils;
15 import org.slf4j.Logger; 12 import org.slf4j.Logger;
@@ -45,35 +42,27 @@ public class DataHandleProcess { @@ -45,35 +42,27 @@ public class DataHandleProcess {
45 ReverseRouteProcess reverseRouteProcess; 42 ReverseRouteProcess reverseRouteProcess;
46 @Autowired 43 @Autowired
47 GpsRealData gpsRealData; 44 GpsRealData gpsRealData;
48 -<<<<<<< HEAD  
49 -=======  
50 // 发送邮件 45 // 发送邮件
51 - @Autowired  
52 - private SendEmailController sendEmailController;  
53 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a 46 + @Autowired
  47 + private SendEmailController sendEmailController;
54 48
55 49
56 static Logger logger = LoggerFactory.getLogger(DataHandleProcess.class); 50 static Logger logger = LoggerFactory.getLogger(DataHandleProcess.class);
57 51
58 final static int POOL_SIZE = 20; 52 final static int POOL_SIZE = 20;
59 53
60 -<<<<<<< HEAD  
61 - static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1);  
62 - public static CountDownLatch count;  
63 -=======  
64 static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1, new ThreadFactory() { 54 static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1, new ThreadFactory() {
65 55
66 - @Override  
67 - public Thread newThread(Runnable r) {  
68 - // TODO Auto-generated method stub  
69 - Thread t = new Thread(r);  
70 - t.setName("GPSProcessor");  
71 -  
72 - return t;  
73 - }  
74 - 56 + @Override
  57 + public Thread newThread(Runnable r) {
  58 + // TODO Auto-generated method stub
  59 + Thread t = new Thread(r);
  60 + t.setName("GPSProcessor");
  61 +
  62 + return t;
  63 + }
  64 +
75 }); 65 });
76 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
77 66
78 static long lastTime; 67 static long lastTime;
79 68
@@ -105,11 +94,7 @@ public class DataHandleProcess { @@ -105,11 +94,7 @@ public class DataHandleProcess {
105 } 94 }
106 Set<Integer> ks = dataListMap.keySet(); 95 Set<Integer> ks = dataListMap.keySet();
107 logger.info("analyse gps size: " + list.size() + ", ks: " + ks.size()); 96 logger.info("analyse gps size: " + list.size() + ", ks: " + ks.size());
108 -<<<<<<< HEAD  
109 - count = new CountDownLatch(ks.size());  
110 -=======  
111 CountDownLatch count = new CountDownLatch(ks.size()); 97 CountDownLatch count = new CountDownLatch(ks.size());
112 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
113 98
114 logger.info(JSON.toJSONString(ks)); 99 logger.info(JSON.toJSONString(ks));
115 for (Integer index : ks) { 100 for (Integer index : ks) {
@@ -118,24 +103,20 @@ public class DataHandleProcess { @@ -118,24 +103,20 @@ public class DataHandleProcess {
118 103
119 104
120 //等待子线程结束 105 //等待子线程结束
121 -<<<<<<< HEAD  
122 - count.await();  
123 -=======  
124 boolean isNormal = count.await(5000, TimeUnit.MILLISECONDS); 106 boolean isNormal = count.await(5000, TimeUnit.MILLISECONDS);
125 if (!isNormal) { 107 if (!isNormal) {
126 - try {  
127 - //发送邮件  
128 - EmailBean mail = new EmailBean();  
129 - mail.setSubject("线调GPS处理");  
130 - mail.setContent("GPS处理超时,检查日志信息<br/>");  
131 - sendEmailController.sendMail("113252620@qq.com", mail);  
132 - logger.info(new ObjectMapper().writeValueAsString(list));  
133 - logger.info("DataHandlerProcess:邮件发送成功!");  
134 - } catch (Exception e){  
135 - logger.error("DataHandlerProcess:邮件发送失败!",e);  
136 - } 108 + try {
  109 + //发送邮件
  110 + EmailBean mail = new EmailBean();
  111 + mail.setSubject("线调GPS处理");
  112 + mail.setContent("GPS处理超时,检查日志信息<br/>");
  113 + sendEmailController.sendMail("113252620@qq.com", mail);
  114 + logger.info(new ObjectMapper().writeValueAsString(list));
  115 + logger.info("DataHandlerProcess:邮件发送成功!");
  116 + } catch (Exception e){
  117 + logger.error("DataHandlerProcess:邮件发送失败!",e);
  118 + }
137 } 119 }
138 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
139 120
140 //加入实时gps对照 121 //加入实时gps对照
141 for (GpsEntity gps : list) 122 for (GpsEntity gps : list)
@@ -161,18 +142,12 @@ public class DataHandleProcess { @@ -161,18 +142,12 @@ public class DataHandleProcess {
161 142
162 @Override 143 @Override
163 public void run() { 144 public void run() {
164 -<<<<<<< HEAD  
165 -=======  
166 long start = System.currentTimeMillis(); 145 long start = System.currentTimeMillis();
167 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
168 try { 146 try {
169 Collections.sort(list, comp); 147 Collections.sort(list, comp);
170 GpsEntity gps; 148 GpsEntity gps;
171 for(int i = 0,len = list.size(); i< len ;i ++){ 149 for(int i = 0,len = list.size(); i< len ;i ++){
172 -<<<<<<< HEAD  
173 -=======  
174 - if (Thread.currentThread().isInterrupted()) break;  
175 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a 150 + if (Thread.currentThread().isInterrupted()) break;
176 gps = list.get(i); 151 gps = list.get(i);
177 152
178 try { 153 try {
@@ -192,14 +167,6 @@ public class DataHandleProcess { @@ -192,14 +167,6 @@ public class DataHandleProcess {
192 167
193 GpsCacheData.putGps(gps);//历史gps缓存 168 GpsCacheData.putGps(gps);//历史gps缓存
194 } catch (Throwable e) { 169 } catch (Throwable e) {
195 -<<<<<<< HEAD  
196 - logger.error("", e);  
197 - }  
198 - }  
199 - } finally {  
200 - if (count != null)  
201 - count.countDown();  
202 -=======  
203 logger.error("SignalHandleThread.run1", e); 170 logger.error("SignalHandleThread.run1", e);
204 } 171 }
205 } 172 }
@@ -212,7 +179,6 @@ public class DataHandleProcess { @@ -212,7 +179,6 @@ public class DataHandleProcess {
212 StringBuilder sb = new StringBuilder(); 179 StringBuilder sb = new StringBuilder();
213 sb.append("list size:").append(list.size()).append(" cost:").append(System.currentTimeMillis() - start); 180 sb.append("list size:").append(list.size()).append(" cost:").append(System.currentTimeMillis() - start);
214 logger.info(sb.toString()); 181 logger.info(sb.toString());
215 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
216 } 182 }
217 } 183 }
218 } 184 }
@@ -224,4 +190,4 @@ public class DataHandleProcess { @@ -224,4 +190,4 @@ public class DataHandleProcess {
224 return g1.getTimestamp().compareTo(g2.getTimestamp()); 190 return g1.getTimestamp().compareTo(g2.getTimestamp());
225 } 191 }
226 } 192 }
227 -}  
228 \ No newline at end of file 193 \ No newline at end of file
  194 +}
src/main/java/com/bsth/data/gpsdata_v2/cache/GpsCacheData.java
@@ -4,7 +4,6 @@ import com.bsth.data.gpsdata_v2.entity.GpsEntity; @@ -4,7 +4,6 @@ import com.bsth.data.gpsdata_v2.entity.GpsEntity;
4 import com.bsth.data.gpsdata_v2.entity.StationRoute; 4 import com.bsth.data.gpsdata_v2.entity.StationRoute;
5 import com.bsth.data.gpsdata_v2.entity.trail.GpsExecTrail; 5 import com.bsth.data.gpsdata_v2.entity.trail.GpsExecTrail;
6 import com.bsth.data.gpsdata_v2.utils.CircleQueue; 6 import com.bsth.data.gpsdata_v2.utils.CircleQueue;
7 -import com.google.common.collect.ArrayListMultimap;  
8 import org.slf4j.Logger; 7 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
10 9
@@ -20,15 +19,9 @@ import java.util.concurrent.CopyOnWriteArrayList; @@ -20,15 +19,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
20 public class GpsCacheData { 19 public class GpsCacheData {
21 20
22 /** 21 /**
23 -<<<<<<< HEAD  
24 - * 每辆车缓存最后200条gps  
25 - */  
26 - private static final int CACHE_SIZE = 200;  
27 -=======  
28 * 每辆车缓存最后20条gps 22 * 每辆车缓存最后20条gps
29 */ 23 */
30 private static final int CACHE_SIZE = 20; 24 private static final int CACHE_SIZE = 20;
31 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
32 private static ConcurrentMap<String, CircleQueue<GpsEntity>> gpsCacheMap = new ConcurrentHashMap<>(); 25 private static ConcurrentMap<String, CircleQueue<GpsEntity>> gpsCacheMap = new ConcurrentHashMap<>();
33 26
34 /** 27 /**
@@ -62,10 +55,7 @@ public class GpsCacheData { @@ -62,10 +55,7 @@ public class GpsCacheData {
62 trailListMultimap.put(nbbm, list); 55 trailListMultimap.put(nbbm, list);
63 } 56 }
64 trail = new GpsExecTrail(); 57 trail = new GpsExecTrail();
65 -<<<<<<< HEAD  
66 -=======  
67 list.clear(); 58 list.clear();
68 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
69 list.add(trail); 59 list.add(trail);
70 } else{ 60 } else{
71 trail = list.get(list.size() - 1); 61 trail = list.get(list.size() - 1);
@@ -118,11 +108,7 @@ public class GpsCacheData { @@ -118,11 +108,7 @@ public class GpsCacheData {
118 return null; 108 return null;
119 109
120 GpsEntity prev; 110 GpsEntity prev;
121 -<<<<<<< HEAD  
122 - for(int i = trails.size() - 1; i > 0; i--){  
123 -=======  
124 for(int i = trails.size() - 1; i > -1; i--){ 111 for(int i = trails.size() - 1; i > -1; i--){
125 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
126 prev = trails.get(i).getSrs().peekLast(); 112 prev = trails.get(i).getSrs().peekLast();
127 113
128 if(prev != null){ 114 if(prev != null){
src/main/java/com/bsth/data/gpsdata_v2/load/SocketClientLoader.java
@@ -23,10 +23,7 @@ import java.util.List; @@ -23,10 +23,7 @@ import java.util.List;
23 * 从专用的socket client 加载数据 23 * 从专用的socket client 加载数据
24 * Created by panzhao on 2017/11/15. 24 * Created by panzhao on 2017/11/15.
25 */ 25 */
26 -<<<<<<< HEAD  
27 -=======  
28 //@Component 26 //@Component
29 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
30 public class SocketClientLoader { 27 public class SocketClientLoader {
31 28
32 static Logger logger = LoggerFactory.getLogger(SocketClientLoader.class); 29 static Logger logger = LoggerFactory.getLogger(SocketClientLoader.class);
src/main/java/com/bsth/data/gpsdata_v2/utils/GpsDataRecovery.java
1 -<<<<<<< HEAD  
2 -package com.bsth.data.gpsdata_v2.utils;  
3 -  
4 -import com.bsth.data.BasicData;  
5 -import com.bsth.data.gpsdata_v2.cache.GpsCacheData;  
6 -import com.bsth.data.gpsdata_v2.entity.GpsEntity;  
7 -import com.bsth.data.gpsdata_v2.handlers.*;  
8 -import com.bsth.util.db.DBUtils_MS;  
9 -import com.google.common.collect.ArrayListMultimap;  
10 -import org.slf4j.Logger;  
11 -import org.slf4j.LoggerFactory;  
12 -import org.springframework.beans.BeansException;  
13 -import org.springframework.context.ApplicationContext;  
14 -import org.springframework.context.ApplicationContextAware;  
15 -import org.springframework.jdbc.core.JdbcTemplate;  
16 -import org.springframework.jdbc.core.RowMapper;  
17 -import org.springframework.stereotype.Component;  
18 -  
19 -import java.sql.ResultSet;  
20 -import java.sql.SQLException;  
21 -import java.util.*;  
22 -import java.util.concurrent.CountDownLatch;  
23 -import java.util.concurrent.ExecutorService;  
24 -import java.util.concurrent.Executors;  
25 -  
26 -/**  
27 - * gps数据恢复  
28 - * Created by panzhao on 2016/12/24.  
29 - */  
30 -@Component  
31 -public class GpsDataRecovery implements ApplicationContextAware {  
32 -  
33 - static Logger logger = LoggerFactory.getLogger(GpsDataRecovery.class);  
34 -  
35 - public static boolean run;  
36 -  
37 - static ExecutorService threadPool = Executors.newFixedThreadPool(10);  
38 -  
39 - static GpsStateProcess gpsStateProcess;  
40 - static StationInsideProcess stationInsideProcess;  
41 - static InStationProcess inStationProcess;  
42 - static OutStationProcess outStationProcess;  
43 - static AbnormalStateProcess abnormalStateProcess;  
44 - static ReverseRouteProcess reverseRouteProcess;  
45 -  
46 - public void recovery() {  
47 - List<GpsEntity> list = loadData();  
48 -  
49 - //按线路分组数据  
50 - ArrayListMultimap<String, GpsEntity> listMap = ArrayListMultimap.create();  
51 - for (GpsEntity gps : list) {  
52 - if (gps.getNbbm() != null)  
53 - listMap.put(gps.getNbbm(), gps);  
54 - }  
55 -  
56 -  
57 - Set<String> keys = listMap.keySet();  
58 -  
59 - CountDownLatch count = new CountDownLatch(keys.size());  
60 - GpsComp comp = new GpsComp();  
61 - for (String nbbm : keys) {  
62 - Collections.sort(listMap.get(nbbm), comp);  
63 - threadPool.submit(new RecoveryThread(listMap.get(nbbm), count));  
64 - /*if(nbbm.equals("W1E-169"))  
65 - new RecoveryThread(listMap.get(nbbm), count).run();*/  
66 - /*if(lineId.equals("60028"))  
67 - new RecoveryThread(listMap.get(lineId), count).run();*/  
68 - }  
69 -  
70 - try {  
71 - count.await();  
72 - run = false;  
73 - logger.info("数据恢复完成....");  
74 - } catch (InterruptedException e) {  
75 - logger.error("", e);  
76 - }  
77 - }  
78 -  
79 - /**  
80 - * 加载当天的gps数据  
81 - *  
82 - * @return  
83 - */  
84 - public List<GpsEntity> loadData() {  
85 - Calendar calendar = Calendar.getInstance();  
86 - int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);  
87 -  
88 - String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE,SERVER_TS from bsth_c_gps_info"; //+ dayOfYear;  
89 - JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource());  
90 -  
91 - List<GpsEntity> list =  
92 - jdbcTemplate.query(sql, new RowMapper<GpsEntity>() {  
93 - @Override  
94 - public GpsEntity mapRow(ResultSet rs, int rowNum) throws SQLException {  
95 - GpsEntity gps = new GpsEntity();  
96 -  
97 - gps.setDeviceId(rs.getString("DEVICE_ID"));  
98 - gps.setNbbm(BasicData.deviceId2NbbmMap.get(gps.getDeviceId()));  
99 - gps.setSpeed(rs.getFloat("SPEED_GPS"));  
100 - gps.setLat(rs.getFloat("LAT"));  
101 - gps.setLon(rs.getFloat("LON"));  
102 - gps.setLineId(rs.getString("LINE_ID"));  
103 - gps.setTimestamp(rs.getLong("TS"));  
104 - gps.setUpDown((byte) getUpOrDown(rs.getLong("SERVICE_STATE")));  
105 - gps.setServerTimestamp(rs.getLong("SERVER_TS"));  
106 - gps.setState((int) getService(rs.getLong("SERVICE_STATE")));  
107 - return gps;  
108 - }  
109 - });  
110 - return list;  
111 - }  
112 -  
113 - /**  
114 - * 获取运营状态  
115 - *  
116 - * @return -1无效 0运营 1未运营  
117 - */  
118 - public static byte getService(long serviceState) {  
119 - if ((serviceState & 0x00020000) == 0x00020000 || (serviceState & 0x80000000) == 0x80000000)  
120 - return -1;  
121 - return (byte) (((serviceState & 0x02000000) == 0x02000000) ? 1 : 0);  
122 - }  
123 -  
124 - /**  
125 - * 王通 2016/6/29 9:23:24 获取车辆线路上下行  
126 - *  
127 - * @return -1无效 0上行 1下行  
128 - */  
129 - public static int getUpOrDown(long serviceState) {  
130 - if ((serviceState & 0x00020000) == 0x00020000 || (serviceState & 0x80000000) == 0x80000000  
131 - || (serviceState & 0x01000000) == 0x01000000 || (serviceState & 0x08000000) == 0x08000000)  
132 - return -1;  
133 - return (((serviceState & 0x10000000) == 0x10000000) ? 1 : 0);  
134 - }  
135 -  
136 - @Override  
137 - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {  
138 - gpsStateProcess = applicationContext.getBean(GpsStateProcess.class);  
139 - stationInsideProcess = applicationContext.getBean(StationInsideProcess.class);  
140 - inStationProcess = applicationContext.getBean(InStationProcess.class);  
141 - outStationProcess = applicationContext.getBean(OutStationProcess.class);  
142 - abnormalStateProcess = applicationContext.getBean(AbnormalStateProcess.class);  
143 - reverseRouteProcess = applicationContext.getBean(ReverseRouteProcess.class);  
144 - }  
145 -  
146 - public static class GpsComp implements Comparator<GpsEntity> {  
147 -  
148 - @Override  
149 - public int compare(GpsEntity g1, GpsEntity g2) {  
150 - return g1.getTimestamp().compareTo(g2.getTimestamp());  
151 - }  
152 - }  
153 -  
154 - public static class RecoveryThread implements Runnable {  
155 - List<GpsEntity> list;  
156 - CountDownLatch count;  
157 -  
158 - RecoveryThread(List<GpsEntity> list, CountDownLatch count) {  
159 - this.list = list;  
160 - this.count = count;  
161 - }  
162 -  
163 - @Override  
164 - public void run() {  
165 - try {  
166 - //循环gps恢复数据  
167 - for (GpsEntity gps : list) {  
168 - try {  
169 -  
170 - /*if(gps.getTimestamp() >= 1511569544000L)  
171 - System.out.println("aaa");*/  
172 -  
173 - if(Math.abs(gps.getTimestamp() - gps.getServerTimestamp()) > 1000 * 60 * 20)  
174 - continue;  
175 -  
176 - gpsStateProcess.process(gps);//状态处理  
177 - stationInsideProcess.process(gps);//场站内外判定  
178 - reverseRouteProcess.process(gps);//反向路由处理  
179 -  
180 - abnormalStateProcess.process(gps);//超速越界  
181 -  
182 - inStationProcess.process(gps);//进站  
183 - outStationProcess.process(gps);//出站  
184 -  
185 - GpsCacheData.putGps(gps);//历史gps缓存  
186 - } catch (Exception e) {  
187 - logger.error("", e);  
188 - }  
189 - }  
190 - } finally {  
191 - count.countDown();  
192 - }  
193 - }  
194 - }  
195 -=======  
196 package com.bsth.data.gpsdata_v2.utils; 1 package com.bsth.data.gpsdata_v2.utils;
197 2
198 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
@@ -386,5 +191,4 @@ public class GpsDataRecovery implements ApplicationContextAware { @@ -386,5 +191,4 @@ public class GpsDataRecovery implements ApplicationContextAware {
386 } 191 }
387 } 192 }
388 } 193 }
389 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
390 -}  
391 \ No newline at end of file 194 \ No newline at end of file
  195 +}
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
1 -<<<<<<< HEAD  
2 -package com.bsth.data.schedule;  
3 -  
4 -import com.alibaba.fastjson.JSON;  
5 -import com.alibaba.fastjson.JSONArray;  
6 -import com.bsth.common.Constants;  
7 -import com.bsth.common.ResponseCode;  
8 -import com.bsth.data.LineConfigData;  
9 -import com.bsth.data.gpsdata_v2.GpsRealData;  
10 -import com.bsth.data.gpsdata_v2.utils.GpsDataRecovery;  
11 -import com.bsth.data.schedule.f_a_l.FirstAndLastHandler;  
12 -import com.bsth.entity.realcontrol.LineConfig;  
13 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
14 -import com.bsth.entity.schedule.SchedulePlanInfo;  
15 -import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;  
16 -import com.bsth.service.schedule.SchedulePlanInfoService;  
17 -import com.bsth.util.ConfigUtil;  
18 -import com.bsth.websocket.handler.SendUtils;  
19 -import com.google.common.collect.ArrayListMultimap;  
20 -import com.google.common.collect.HashMultimap;  
21 -import com.google.common.collect.ListMultimap;  
22 -import com.google.common.collect.Multimaps;  
23 -import org.apache.commons.lang3.StringUtils;  
24 -import org.joda.time.format.DateTimeFormat;  
25 -import org.joda.time.format.DateTimeFormatter;  
26 -import org.slf4j.Logger;  
27 -import org.slf4j.LoggerFactory;  
28 -import org.springframework.beans.factory.annotation.Autowired;  
29 -import org.springframework.dao.DataIntegrityViolationException;  
30 -import org.springframework.jdbc.core.BatchPreparedStatementSetter;  
31 -import org.springframework.jdbc.core.JdbcTemplate;  
32 -import org.springframework.jdbc.datasource.DataSourceTransactionManager;  
33 -import org.springframework.stereotype.Component;  
34 -import org.springframework.transaction.TransactionDefinition;  
35 -import org.springframework.transaction.TransactionStatus;  
36 -import org.springframework.transaction.support.DefaultTransactionDefinition;  
37 -  
38 -import java.sql.PreparedStatement;  
39 -import java.sql.SQLException;  
40 -import java.text.ParseException;  
41 -import java.text.SimpleDateFormat;  
42 -import java.util.*;  
43 -import java.util.concurrent.ConcurrentHashMap;  
44 -import java.util.concurrent.ConcurrentLinkedQueue;  
45 -import java.util.concurrent.ConcurrentMap;  
46 -  
47 -/**  
48 - * @author PanZhao  
49 - * @ClassName: DayOfSchedule  
50 - * @Description: TODO(当日实际排班)  
51 - * @date 2016年8月15日 上午10:16:12  
52 - */  
53 -@Component  
54 -public class DayOfSchedule {  
55 -  
56 - Logger logger = LoggerFactory.getLogger(this.getClass());  
57 -  
58 - //按线路分组的 “原始计划” 排班数据  
59 - public static Map<String, List<SchedulePlanInfo>> schedulePlanMap;  
60 -  
61 - // 按车辆索引的班次数据  
62 - private static ListMultimap<String, ScheduleRealInfo> nbbmScheduleMap;  
63 -  
64 - // 按营运公司索引的班次数据  
65 - private static ListMultimap<String, ScheduleRealInfo> gsBmScheduleMap;  
66 -  
67 - //按线路索引计划用车  
68 - private static HashMultimap<String, String> lineNbbmsMap;  
69 -  
70 - //按路牌索引班次数据 线路编码_路牌名称 ——> 班次list  
71 - private static ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap;  
72 -  
73 - // 班次主键映射  
74 - private static ConcurrentMap<Long, ScheduleRealInfo> id2SchedulMap;  
75 -  
76 - //车辆 ——> 当前执行班次  
77 - private static ConcurrentMap<String, ScheduleRealInfo> carExecutePlanMap;  
78 -  
79 - // 持久化  
80 - public static ConcurrentLinkedQueue<ScheduleRealInfo> pstBuffer;  
81 -  
82 - // 排序器  
83 - private static ScheduleComparator.FCSJ schFCSJComparator;  
84 -  
85 - private static ScheduleComparator.DFSJ schDFSJComparator;  
86 -  
87 - private static Long sch_max_id=Long.parseLong(ConfigUtil.get("auto_increment_offset"));  
88 -  
89 - @Autowired  
90 - LineConfigData lineConfigData;  
91 -  
92 - @Autowired  
93 - ScheduleRealInfoRepository schRepository;  
94 -  
95 - @Autowired  
96 - SchedulePlanInfoService schPlanService;  
97 -  
98 - @Autowired  
99 - SchAttrCalculator schAttrCalculator;  
100 -  
101 - @Autowired  
102 - SendUtils sendUtils;  
103 -  
104 - @Autowired  
105 - GpsRealData gpsRealData;  
106 -  
107 - /**  
108 - * 线路当前使用的排班的日期  
109 - */  
110 - public static Map<String, String> currSchDateMap;  
111 -  
112 - static {  
113 - nbbmScheduleMap = ArrayListMultimap.create();  
114 - nbbmScheduleMap = Multimaps.synchronizedListMultimap(nbbmScheduleMap);  
115 -  
116 - gsBmScheduleMap = ArrayListMultimap.create();  
117 - lpScheduleMap = ArrayListMultimap.create();  
118 - lineNbbmsMap = HashMultimap.create();  
119 -  
120 - id2SchedulMap = new ConcurrentHashMap<>();  
121 - pstBuffer = new ConcurrentLinkedQueue<>();  
122 - schFCSJComparator = new ScheduleComparator.FCSJ();  
123 - schDFSJComparator = new ScheduleComparator.DFSJ();  
124 - currSchDateMap = new HashMap<>();  
125 - carExecutePlanMap = new ConcurrentHashMap<>();  
126 -  
127 - schedulePlanMap = new HashMap<>();  
128 - }  
129 -  
130 - @Autowired  
131 - LineConfigData lineConfigs;  
132 -  
133 - @Autowired  
134 - GpsDataRecovery gpsDataRecovery;  
135 -  
136 - private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"), fmtHHmm = DateTimeFormat.forPattern("HH:mm");  
137 -  
138 - //数据恢复  
139 - public void dataRecovery() {  
140 - Collection<LineConfig> confs = lineConfigs.getAll();  
141 - String lineCode, currSchDate;  
142 - for (LineConfig conf : confs) {  
143 - lineCode = conf.getLine().getLineCode();  
144 - currSchDate = calcSchDate(lineCode);  
145 - //加载班次数据  
146 - reloadSch(lineCode, currSchDate, false);  
147 - }  
148 -  
149 - //恢复gps数据  
150 - gpsDataRecovery.recovery();  
151 - }  
152 -  
153 - public Map<String, String> getCurrSchDate() {  
154 - return currSchDateMap;  
155 - }  
156 -  
157 - /**  
158 - * @Title: calcSchDateB  
159 - * @Description: TODO(计算线路当前应该使用的排班日期)  
160 - */  
161 - public String calcSchDate(String lineCode) {  
162 - Long t = System.currentTimeMillis();  
163 - LineConfig conf = lineConfigData.get(lineCode);  
164 -  
165 - // 小于当天起始运营时间,则取前一天的排班  
166 - String ct = fmtHHmm.print(t);  
167 - if(ct.compareTo(conf.getStartOpt()) < 0)  
168 - t -= 1000 * 60 * 60 * 24;  
169 -  
170 - String schDate = fmtyyyyMMdd.print(t);  
171 - return schDate;  
172 - }  
173 -  
174 - /**  
175 - * @param @param lineCode 线路编码  
176 - * @param @param schDate 班次日期 yyyy-MM-dd  
177 - * @param @param forcePlan 强制从计划调度重新抓取  
178 - * @Title: reloadSch  
179 - * @Title: reloadSch  
180 - * @Description: TODO(重新载入排班)  
181 - */  
182 - public int reloadSch(String lineCode, String schDate, boolean forcePlan) {  
183 - try {  
184 - List<ScheduleRealInfo> list;  
185 -  
186 - if (forcePlan)  
187 - removeRealSch(lineCode, schDate);  
188 - else  
189 - clearRAMData(lineCode);  
190 -  
191 - if (existRealSch(lineCode, schDate))  
192 - list = loadRealSch(lineCode, schDate);// 从实际排班表加载  
193 - else {  
194 - list = loadPlanSch(lineCode, schDate);// 从计划排班表加载  
195 - // 写入数据库  
196 - batchSave(list);  
197 - }  
198 -  
199 - //更新线路和班次日期对照  
200 - currSchDateMap.put(lineCode, schDate);  
201 - //添加到缓存  
202 - putAll(list);  
203 -  
204 - //标记首末班  
205 - FirstAndLastHandler.marks(list);  
206 -  
207 - Set<String> lps = searchAllLP(list);  
208 - for (String lp : lps) {  
209 - //计算“起点站应到”时间  
210 - schAttrCalculator.calcQdzTimePlan(lpScheduleMap.get(lineCode + "_" + lp));  
211 - }  
212 - Set<String> cars = searchAllCars(list);  
213 - for (String nbbm : cars) {  
214 - //车辆 ——> 要执行的班次对照  
215 - reCalcExecPlan(nbbm);  
216 - }  
217 -  
218 - //分组计划用车  
219 - reCalcLineNbbms();  
220 - // 页面 翻班通知  
221 - //sendUtils.shiftSchedule(lineCode);  
222 - } catch (Exception e) {  
223 - logger.error("", e);  
224 - return -1;  
225 - }  
226 -  
227 - return 0;  
228 - }  
229 -  
230 - public int reloadSch(String lineCode) {  
231 - return reloadSch(lineCode, calcSchDate(lineCode), true);  
232 - }  
233 -  
234 - /**  
235 - * @Title: searchAllCars  
236 - * @Description: TODO(搜索班次集合中的车辆)  
237 - */  
238 - private Set<String> searchAllCars(List<ScheduleRealInfo> list) {  
239 - Set<String> cars = new HashSet<>();  
240 - for (ScheduleRealInfo sch : list)  
241 - cars.add(sch.getClZbh());  
242 -  
243 - return cars;  
244 - }  
245 -  
246 - /**  
247 - * @Title: searchAllCars  
248 - * @Description: TODO(搜索班次集合中的路牌)  
249 - */  
250 - private Set<String> searchAllLP(List<ScheduleRealInfo> list) {  
251 - Set<String> lps = new HashSet<>();  
252 - for (ScheduleRealInfo sch : list)  
253 - lps.add(sch.getLpName());  
254 -  
255 - return lps;  
256 - }  
257 -  
258 - private void putAll(List<ScheduleRealInfo> list) {  
259 - for (ScheduleRealInfo sch : list)  
260 - put(sch);  
261 - }  
262 -  
263 - /**  
264 - * @param @param lineCode 线路编码  
265 - * @param @param schDate 班次日期 yyyy-MM-dd  
266 - * @Title: removeRealSch  
267 - * @Description: TODO(清除实际排班,包括数据库和内存数据)  
268 - */  
269 - public void removeRealSch(String lineCode, String schDate) throws Exception {  
270 - try {  
271 - // 清理数据库数据  
272 - schRepository.deleteByLineCodeAndDate(lineCode + "", schDate);  
273 -  
274 - // 清理内存数据  
275 - clearRAMData(lineCode + "");  
276 - } catch (Exception e) {  
277 - logger.error("removeRealSch error, " + lineCode + " -" + schDate, e);  
278 - throw e;  
279 - }  
280 - }  
281 -  
282 - /**  
283 - * @Title: clearRAMData  
284 - * @Description: TODO(清理内存数据)  
285 - */  
286 - public void clearRAMData(String lineCode) {  
287 - int count = 0;  
288 - List<ScheduleRealInfo> remList = new ArrayList<>();  
289 - Collection<ScheduleRealInfo> all = nbbmScheduleMap.values();  
290 - for (ScheduleRealInfo sch : all) {  
291 - if (sch.getXlBm().equals(lineCode))  
292 - remList.add(sch);  
293 - }  
294 -  
295 - for (ScheduleRealInfo sch : remList) {  
296 - if (null != sch) {  
297 - nbbmScheduleMap.remove(sch.getClZbh(), sch);  
298 - id2SchedulMap.remove(sch.getId());  
299 - count++;  
300 -  
301 - //清理路牌对照  
302 - lpScheduleMap.removeAll(sch.getXlBm() + "_" + sch.getLpName());  
303 -  
304 - //清除车辆 ——> 执行班次对照  
305 - carExecutePlanMap.remove(sch.getClZbh());  
306 - }  
307 - }  
308 - //清理计划排班  
309 - schedulePlanMap.remove(lineCode);  
310 -  
311 - remList.clear();  
312 - remList = null;  
313 - logger.info(lineCode + "排班清理 " + count);  
314 - }  
315 -  
316 - /**  
317 - * @Title: existRealSch  
318 - * @Description: TODO(实际排班是否已存在)  
319 - */  
320 - public boolean existRealSch(String lineCode, String schDate) {  
321 - int count = schRepository.countByLineCodeAndDate(lineCode, schDate);  
322 - return count > 0;  
323 - }  
324 -  
325 - /**  
326 - * @Title: loadRealSch  
327 - * @Description: TODO(从实际排班表加载数据)  
328 - */  
329 - public List<ScheduleRealInfo> loadRealSch(String lineCode, String schDate) {  
330 - return schRepository.findByLineCodeAndDate(lineCode, schDate);  
331 - }  
332 -  
333 - /**  
334 - * @Title: loadPlanSch  
335 - * @Description: TODO(从计划排班表加载数据)  
336 - */  
337 - public List<ScheduleRealInfo> loadPlanSch(String lineCode, String schDate) {  
338 - logger.info("从计划排班表恢复排班,lineCode: " + lineCode + ", schDate: " + schDate);  
339 - List<ScheduleRealInfo> realList = new ArrayList<>();  
340 -  
341 - try {  
342 - Map<String, Object> data = new HashMap<>();  
343 -  
344 - data.put("scheduleDate_eq", fmtyyyyMMdd.parseDateTime(schDate).toDate());  
345 - data.put("xlBm_eq", lineCode);  
346 -  
347 - // 查询计划排班  
348 - List<SchedulePlanInfo> planItr = cleanSchPlanItr(schPlanService.list(data).iterator());  
349 - //保存一份原始计划排班数据  
350 - schedulePlanMap.put(lineCode, planItr);  
351 -  
352 - // 转换为实际排班  
353 - realList = JSONArray.parseArray(JSON.toJSONString(planItr), ScheduleRealInfo.class);  
354 -  
355 - Date d = new Date();  
356 - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");  
357 - String fcsj;  
358 - for (ScheduleRealInfo sch : realList) {  
359 - sch.setScheduleDateStr(fmtyyyyMMdd.print(sch.getScheduleDate().getTime()));  
360 - sch.setRealExecDate(sch.getScheduleDateStr());  
361 - sch.setCreateDate(d);  
362 -  
363 - if (StringUtils.isEmpty(sch.getFcsj()))  
364 - sch.setFcsj("00:00");  
365 -  
366 - if (sch.getFcsj().equals("24:00"))  
367 - sch.setFcsj("23:59");  
368 -  
369 - if (sch.getFcsj().substring(0, 2).equals("24")) {  
370 - sch.setFcsj("00" + sch.getFcsj().substring(2));  
371 - }  
372 -  
373 - fcsj = sch.getFcsj().trim();  
374 - //处理一下发车时间格式没有:号的问题  
375 - if (fcsj.indexOf(":") == -1 && fcsj.length() >= 4) {  
376 - sch.setFcsj(fcsj.substring(0, 2) + ":" + fcsj.substring(2, 4));  
377 - }  
378 -  
379 - try {  
380 - sdf.parse(sch.getFcsj());  
381 - } catch (ParseException e) {  
382 - //发车时间仍然校验不过的,直接写成00:00  
383 - sch.setFcsj("00:00");  
384 - }  
385 - sch.setDfsj(sch.getFcsj());  
386 -  
387 - // 计划终点时间  
388 - if (sch.getBcsj() != null) {  
389 - sch.setZdsj(fmtHHmm.print(fmtHHmm.parseMillis(sch.getFcsj()) + (sch.getBcsj() * 60 * 1000)));  
390 - sch.setLate(false);  
391 - }  
392 -  
393 - //售票员为空设置为""字符串  
394 - if (StringUtils.isEmpty(sch.getsGh())) {  
395 - sch.setsGh("");  
396 - sch.setsName("");  
397 - }  
398 - sch.setJhlcOrig(sch.getJhlc());  
399 - //保留备注  
400 - if (StringUtils.isNotEmpty(sch.getRemark()))  
401 - sch.setRemarks(sch.getRemark());  
402 - }  
403 - } catch (Exception e) {  
404 - logger.error("", e);  
405 - }  
406 -  
407 - return realList;  
408 - }  
409 -  
410 -  
411 - public synchronized long getId(){  
412 - long temp = sch_max_id;  
413 - if (sch_max_id < 0) {  
414 - sch_max_id = schRepository.getMaxId();  
415 - if(null == sch_max_id)  
416 - sch_max_id = 3000L;//留一点空间补数据用  
417 - if (temp == -1) {  
418 - sch_max_id += sch_max_id % 2 == 0 ? 1 : 0;  
419 - } else if (temp == -2) {  
420 - sch_max_id += sch_max_id % 2 == 0 ? 0 : 1;  
421 - }  
422 - } else {  
423 - sch_max_id += 2;  
424 - }  
425 - /*if(sch_max_id==-1){  
426 - sch_max_id = schRepository.getMaxId();  
427 - if(null == sch_max_id)  
428 - sch_max_id = 3000L;//留一点空间补数据用  
429 - sch_max_id += 5;  
430 - }  
431 - else  
432 - sch_max_id++;*/  
433 - return sch_max_id;  
434 - }  
435 -  
436 - /**  
437 - * @Title: batchSave  
438 - * @Description: TODO(批量入库)  
439 - */  
440 - private void batchSave(List<ScheduleRealInfo> list) {  
441 - SimpleDateFormat sdfyyyyMMdd = new SimpleDateFormat("yyyy-MM-dd");  
442 - for (ScheduleRealInfo item : list) {  
443 - item.setSpId(item.getId());// 保留原始的计划ID  
444 - item.setId(getId());// 设置ID  
445 - item.setScheduleDateStr(sdfyyyyMMdd.format(item.getScheduleDate()));  
446 - }  
447 -  
448 - //编程式事务  
449 - DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource());  
450 - DefaultTransactionDefinition def = new DefaultTransactionDefinition();  
451 - def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);  
452 - TransactionStatus status = tran.getTransaction(def);  
453 -  
454 - try{  
455 - final List<ScheduleRealInfo> pstList = list;  
456 - //写入  
457 - jdbcTemplate.batchUpdate("insert into bsth_c_s_sp_info_real(id,bc_type,bcs,bcsj,cl_zbh,create_date,dfsj,directive_state,fcno,fcsj,fcsj_actual,j_gh,j_name,jhlc,lp_name,qdz_code,qdz_name,real_exec_date,remarks,s_gh,s_name,schedule_date,schedule_date_str,sflj,sp_id,status,update_date,xl_bm,xl_dir,xl_name,zdsj,zdsj_actual,zdz_code,zdz_name,ccno,df_auto,fgs_bm,fgs_name,gs_bm,gs_name,online,adjust_exps,reissue,jhlc_orig,sigin_compate,drift_status,cc_service,major_station_name)" +  
458 - " VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() {  
459 - @Override  
460 - public void setValues(PreparedStatement ps, int i) throws SQLException {  
461 - ScheduleRealInfo sch = pstList.get(i);  
462 - ps.setLong(1, sch.getId());  
463 - ps.setString(2, sch.getBcType());  
464 - ps.setInt(3, sch.getBcs()==null?0:sch.getBcs());  
465 - ps.setInt(4, sch.getBcsj()==null?0:sch.getBcsj());  
466 - ps.setString(5, sch.getClZbh());  
467 - ps.setTimestamp(6, new java.sql.Timestamp(sch.getCreateDate().getTime()));  
468 - ps.setString(7, sch.getDfsj());  
469 - ps.setInt(8, sch.getDirectiveState());  
470 - ps.setInt(9, sch.getFcno()==null?0:sch.getFcno());  
471 - ps.setString(10, sch.getFcsj());  
472 - ps.setString(11, sch.getFcsjActual());  
473 - ps.setString(12, sch.getjGh());  
474 - ps.setString(13, sch.getjName());  
475 - ps.setDouble(14, sch.getJhlc());  
476 - ps.setString(15, sch.getLpName());  
477 - ps.setString(16, sch.getQdzCode());  
478 - ps.setString(17, sch.getQdzName());  
479 - ps.setString(18, sch.getRealExecDate());  
480 - ps.setString(19, sch.getRemarks());  
481 - ps.setString(20, sch.getsGh());  
482 - ps.setString(21, sch.getsName());  
483 - ps.setTimestamp(22, new java.sql.Timestamp(sch.getScheduleDate().getTime()));  
484 - ps.setString(23, sch.getScheduleDateStr());  
485 - ps.setBoolean(24, sch.isSflj());  
486 - ps.setLong(25, sch.getSpId());  
487 - ps.setInt(26, sch.getStatus());  
488 - ps.setTimestamp(27, new java.sql.Timestamp(sch.getUpdateDate().getTime()));  
489 - ps.setString(28, sch.getXlBm());  
490 - ps.setString(29, sch.getXlDir());  
491 - ps.setString(30, sch.getXlName());  
492 - ps.setString(31, sch.getZdsj());  
493 - ps.setString(32, sch.getZdsjActual());  
494 - ps.setString(33, sch.getZdzCode());  
495 - ps.setString(34, sch.getZdzName());  
496 - ps.setInt(35, sch.getCcno()==null?0:sch.getCcno());  
497 - ps.setBoolean(36, sch.isDfAuto());  
498 - ps.setString(37, sch.getFgsBm());  
499 - ps.setString(38, sch.getFgsName());  
500 - ps.setString(39, sch.getGsBm());  
501 - ps.setString(40, sch.getGsName());  
502 - ps.setBoolean(41, sch.isOnline());  
503 - ps.setString(42, sch.getAdjustExps());  
504 - ps.setBoolean(43, sch.isReissue());  
505 - ps.setDouble(44, sch.getJhlcOrig());  
506 - ps.setInt(45, sch.getSiginCompate());  
507 - ps.setInt(46, sch.getDriftStatus());  
508 - ps.setBoolean(47, sch.isCcService());  
509 - ps.setString(48, sch.getMajorStationName());  
510 - }  
511 -  
512 - @Override  
513 - public int getBatchSize() {  
514 - return pstList.size();  
515 - }  
516 - });  
517 -  
518 - tran.commit(status);  
519 - }catch (Exception e){  
520 - tran.rollback(status);  
521 - logger.error("real schedule batchSave error...", e);  
522 - }  
523 - // 入库  
524 - //new BatchSaveUtils<ScheduleRealInfo>().saveList(list, ScheduleRealInfo.class);  
525 - }  
526 -  
527 - public List<SchedulePlanInfo> cleanSchPlanItr(Iterator<SchedulePlanInfo> itrab) {  
528 - List<SchedulePlanInfo> list = new ArrayList<>();  
529 -  
530 - SchedulePlanInfo sp;  
531 - while (itrab.hasNext()) {  
532 - sp = itrab.next();  
533 - sp.setSchedulePlan(null);  
534 - sp.setCreateBy(null);  
535 - sp.setUpdateBy(null);  
536 - list.add(sp);  
537 - }  
538 - return list;  
539 - }  
540 -  
541 - /**  
542 - * @Title: findByLineCode  
543 - * @Description: TODO(lineCode 获取班次)  
544 - */  
545 - public List<ScheduleRealInfo> findByLineCode(String lineCode) {  
546 - List<ScheduleRealInfo> rs = new ArrayList<>();  
547 -  
548 - Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values();  
549 - for (ScheduleRealInfo sch : schs) {  
550 - if (sch.getXlBm().equals(lineCode))  
551 - rs.add(sch);  
552 - }  
553 - return rs;  
554 - }  
555 -  
556 - /**  
557 - * @Title: findByLineCode  
558 - * @Description: TODO(lineList 获取班次)  
559 - */  
560 - public Map<String, Collection<ScheduleRealInfo>> findByLineCodes(List<String> lineList) {  
561 - ArrayListMultimap<String, ScheduleRealInfo> mMap = ArrayListMultimap.create();  
562 -  
563 - Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values();  
564 - for (ScheduleRealInfo sch : schs) {  
565 - if (lineList.contains(sch.getXlBm())) {  
566 - mMap.put(sch.getXlBm(), sch);  
567 - }  
568 - }  
569 - return mMap.asMap();  
570 - }  
571 -  
572 - /**  
573 - * @Title: findCarByLineCode  
574 - * @Description: TODO(线路下运营的车辆)  
575 - */  
576 - public Set<String> findCarByLineCode(String lineCode) {  
577 - /*Set<String> rs = new HashSet<>();  
578 -  
579 - Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values();  
580 - for (ScheduleRealInfo sch : schs) {  
581 - if (sch.getXlBm().equals(lineCode))  
582 - rs.add(sch.getClZbh());  
583 - }  
584 -*/  
585 - return lineNbbmsMap.get(lineCode);  
586 - }  
587 -  
588 - public List<ScheduleRealInfo> findByNbbm(String nbbm) {  
589 - return nbbmScheduleMap.get(nbbm);  
590 - }  
591 -  
592 - /**  
593 - * @Title: findByLineAndUpDown  
594 - * @Description: TODO(lineCode 和走向获取班次)  
595 - */  
596 - public List<ScheduleRealInfo> findByLineAndUpDown(String lineCode, Integer upDown) {  
597 - List<ScheduleRealInfo> list = findByLineCode(lineCode), rs = new ArrayList<>();  
598 -  
599 - for (ScheduleRealInfo sch : list) {  
600 - if (sch.getXlDir().equals(upDown + ""))  
601 - rs.add(sch);  
602 - }  
603 - return rs;  
604 - }  
605 -  
606 - public ScheduleRealInfo get(long id) {  
607 - return id2SchedulMap.get(id);  
608 - }  
609 -  
610 -  
611 - /**  
612 - * @Title: next  
613 - * @Description: TODO(下一个班次)  
614 - */  
615 - public ScheduleRealInfo next(ScheduleRealInfo sch) {  
616 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());  
617 - //排序  
618 - Collections.sort(list, schDFSJComparator);  
619 - return next(list, sch);  
620 - }  
621 -  
622 -  
623 - /**  
624 - * 下一个班次  
625 - *  
626 - * @param list 班次集合  
627 - * @param sch 当前班次  
628 - * @return  
629 - */  
630 - private ScheduleRealInfo next(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) {  
631 - int outConfig = -1;  
632 - LineConfig config = lineConfigData.get(sch.getXlBm());  
633 - if (config != null)  
634 - outConfig = config.getOutConfig();  
635 -  
636 - //限定出站既出场的停车场  
637 - List<String> parks = config.findTwinsParkList();  
638 - boolean limitPark = null != parks && parks.size() > 0;  
639 - boolean flag = false;  
640 - ScheduleRealInfo next = null;  
641 - for (ScheduleRealInfo temp : list) {  
642 - if (temp.getId() == sch.getId()) {  
643 - flag = true;  
644 - continue;  
645 - }  
646 - //忽略烂班  
647 - if (temp.isDestroy())  
648 - continue;  
649 -  
650 - //出站既出场,忽略出场班次  
651 - if (outConfig == 2 && temp.getBcType().equals("out") && isEmptyMileage(temp)  
652 - && (!limitPark || parks.contains(temp.getQdzCode())))  
653 - continue;  
654 -  
655 - if (flag) {  
656 - next = temp;  
657 - break;  
658 - }  
659 - }  
660 - return next;  
661 - }  
662 -  
663 - private boolean isEmptyMileage(ScheduleRealInfo sch) {  
664 - return sch.getBcsj() == 0 || sch.getJhlcOrig().intValue() == 0;  
665 - }  
666 -  
667 - /**  
668 - * 下一个班次  
669 - *  
670 - * @param list 班次集合  
671 - * @param sch 当前班次  
672 - * @return  
673 - */  
674 - private ScheduleRealInfo next2_lp(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) {  
675 - int outConfig = -1;  
676 - LineConfig config = lineConfigData.get(sch.getXlBm());  
677 - if (config != null)  
678 - outConfig = config.getOutConfig();  
679 -  
680 - boolean flag = false;  
681 - ScheduleRealInfo next = null;  
682 - for (ScheduleRealInfo temp : list) {  
683 - if (temp.getId() == sch.getId()) {  
684 - flag = true;  
685 - continue;  
686 - }  
687 -  
688 - if (flag) {  
689 - next = temp;  
690 - break;  
691 - }  
692 - }  
693 - return next;  
694 - }  
695 -  
696 - private ScheduleRealInfo next3_lp(Collection<ScheduleRealInfo> list, ScheduleRealInfo sch) {  
697 - int outConfig = -1;  
698 - LineConfig config = lineConfigData.get(sch.getXlBm());  
699 - if (config != null)  
700 - outConfig = config.getOutConfig();  
701 -  
702 - //限定出站既出场的停车场  
703 - List<String> parks = config.findTwinsParkList();  
704 - boolean limitPark = null != parks && parks.size() > 0;  
705 - boolean flag = false;  
706 - ScheduleRealInfo next = null;  
707 - for (ScheduleRealInfo temp : list) {  
708 - if (temp.getId() == sch.getId()) {  
709 - flag = true;  
710 - continue;  
711 - }  
712 -  
713 - //出站既出场,忽略出场班次  
714 - if (outConfig == 2 && temp.getBcType().equals("out") && isEmptyMileage(temp)  
715 - && (!limitPark || parks.contains(temp.getQdzCode())))  
716 - continue;  
717 -  
718 - if (flag) {  
719 - next = temp;  
720 - break;  
721 - }  
722 - }  
723 - return next;  
724 - }  
725 -  
726 - /**  
727 - * 上一个班次  
728 - *  
729 - * @param sch  
730 - * @return  
731 - */  
732 - public ScheduleRealInfo prev(ScheduleRealInfo sch) {  
733 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());  
734 -  
735 - //boolean flag = false;  
736 - ScheduleRealInfo prev = null;  
737 - int size = list.size();  
738 -  
739 - for (int i = 0; i < size; i++) {  
740 - if (list.get(i).isDestroy())  
741 - continue;  
742 -  
743 - if (list.get(i).getId().equals(sch.getId())) {  
744 - return prev;  
745 - }  
746 - prev = list.get(i);  
747 - }  
748 - return prev;  
749 - }  
750 -  
751 - /**  
752 - * 是否是首班出场  
753 - *  
754 - * @param sch  
755 - * @return  
756 - */  
757 - public boolean isFirstOut(ScheduleRealInfo sch) {  
758 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());  
759 - try {  
760 - if (list.get(0) == sch && sch.getBcType().equals("out"))  
761 - return true;  
762 - } catch (IndexOutOfBoundsException e) {  
763 - logger.error("小小的数组越界,无伤大雅!");  
764 - }  
765 - return false;  
766 - }  
767 -  
768 - public void put(ScheduleRealInfo sch) {  
769 - schAttrCalculator  
770 - .calcRealDate(sch)  
771 - .calcAllTimeByFcsj(sch);  
772 -  
773 - nbbmScheduleMap.put(sch.getClZbh(), sch);  
774 -  
775 - //主键索引  
776 - id2SchedulMap.put(sch.getId(), sch);  
777 - //路牌对照表  
778 - addLPMapp(sch);  
779 -  
780 - //跨24点的,再save一次  
781 - if (!sch.getRealExecDate().equals(sch.getScheduleDateStr()))  
782 - save(sch);  
783 - }  
784 -  
785 - public void addLPMapp(ScheduleRealInfo sch) {  
786 - lpScheduleMap.put(sch.getXlBm() + "_" + sch.getLpName(), sch);  
787 - }  
788 -  
789 - public void delete(ScheduleRealInfo sch) {  
790 - if (!sch.isSflj())  
791 - return;  
792 -  
793 - nbbmScheduleMap.remove(sch.getClZbh(), sch);  
794 - id2SchedulMap.remove(sch.getId());  
795 - lpScheduleMap.remove(sch.getXlBm() + "_" + sch.getLpName(), sch);  
796 -  
797 - //如果正在执行该班次  
798 - if (carExecutePlanMap.get(sch.getClZbh()) == sch) {  
799 - //重新计算车辆当前执行班次  
800 - reCalcExecPlan(sch.getClZbh());  
801 - }  
802 - }  
803 -  
804 - public List<ScheduleRealInfo> updateQdzTimePlan(String lpName) {  
805 - List<ScheduleRealInfo> list = lpScheduleMap.get(lpName);  
806 - Collections.sort(list, schFCSJComparator);  
807 - return schAttrCalculator.updateQdzTimePlan(list);  
808 - }  
809 -  
810 - public List<ScheduleRealInfo> updateQdzTimePlan(ScheduleRealInfo sch) {  
811 - return updateQdzTimePlan(sch.getXlBm() + "_" + sch.getLpName());  
812 - }  
813 -  
814 - /**  
815 - * @Title: doneSum  
816 - * @Description: TODO(已完成班次总数)  
817 - */  
818 - public int doneSum(String clZbh) {  
819 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(clZbh);  
820 - int rs = 0;  
821 -  
822 - for (ScheduleRealInfo sch : list) {  
823 - if (sch.getStatus() == 2 && !sch.isDestroy())  
824 - rs++;  
825 - }  
826 - return rs;  
827 - }  
828 -  
829 - public void save(ScheduleRealInfo sch) {  
830 - sch.setUpdateDate(new Date());  
831 - pstBuffer.add(sch);  
832 - }  
833 -  
834 -  
835 - /**  
836 - * @Title: nextByBcType  
837 - * @Description: TODO(获取下一个指定班次类型的班次)  
838 - */  
839 - public ScheduleRealInfo nextByBcType(String nbbm, String bcType) {  
840 - List<ScheduleRealInfo> list = findByBcType(nbbm, bcType);  
841 -  
842 - Collections.sort(list, schFCSJComparator);  
843 - ScheduleRealInfo sch = null;  
844 - for (ScheduleRealInfo temp : list) {  
845 - if (temp.getFcsjActual() == null)  
846 - sch = temp;  
847 - }  
848 -  
849 - return sch;  
850 - }  
851 -  
852 -  
853 - /**  
854 - * 搜索离当前时间最近的一个指定类型的班次  
855 - *  
856 - * @param nbbm  
857 - * @param bcType  
858 - * @return  
859 - */  
860 - public ScheduleRealInfo searchNearByBcType(String nbbm, String bcType) {  
861 - List<ScheduleRealInfo> list = findByBcType(nbbm, bcType);  
862 - Collections.sort(list, schFCSJComparator);  
863 -  
864 - long t = System.currentTimeMillis();  
865 - int distance = -1, diff;  
866 -  
867 - ScheduleRealInfo sch = null;  
868 - for (ScheduleRealInfo temp : list) {  
869 - diff = (int) Math.abs(temp.getDfsjT() - t);  
870 - if (diff < distance || distance == -1) {  
871 - sch = temp;  
872 - distance = diff;  
873 - }  
874 - }  
875 - return sch;  
876 - }  
877 -  
878 - public List<ScheduleRealInfo> findByBcType(String nbbm, String bcType) {  
879 - List<ScheduleRealInfo> all = nbbmScheduleMap.get(nbbm), outList = new ArrayList<>();  
880 -  
881 - for (ScheduleRealInfo sch : all) {  
882 - if (sch.getBcType().equals(bcType))  
883 - outList.add(sch);  
884 - }  
885 - return outList;  
886 - }  
887 -  
888 - public Collection<ScheduleRealInfo> findAll() {  
889 - return nbbmScheduleMap.values();  
890 - }  
891 -  
892 - public Collection<ScheduleRealInfo> findAllByLpContainer() {  
893 - return lpScheduleMap.values();  
894 - }  
895 -  
896 - public Collection<ScheduleRealInfo> findAllByIdContainer() {  
897 - return id2SchedulMap.values();  
898 - }  
899 -  
900 - public int getPstSize() {  
901 - return pstBuffer.size();  
902 - }  
903 -  
904 - public boolean addExecPlan(ScheduleRealInfo sch) {  
905 - ScheduleRealInfo oldExec = executeCurr(sch.getClZbh());  
906 - if (sch != null){  
907 - if(sch.getStatus()==2)  
908 - reCalcExecPlan(sch.getClZbh());  
909 - else  
910 - carExecutePlanMap.put(sch.getClZbh(), sch);  
911 - }  
912 - else  
913 - carExecutePlanMap.remove(sch.getClZbh());  
914 -  
915 - return executeCurr(sch.getClZbh()) != oldExec;  
916 - }  
917 -  
918 - public void removeExecPlan(String clzbh) {  
919 - carExecutePlanMap.remove(clzbh);  
920 - }  
921 -  
922 - public Map<String, ScheduleRealInfo> execPlanMap() {  
923 - return carExecutePlanMap;  
924 - }  
925 -  
926 - /**  
927 - * 车辆当前执行的班次  
928 - *  
929 - * @param nbbm  
930 - * @return  
931 - */  
932 - public ScheduleRealInfo executeCurr(String nbbm) {  
933 - if(StringUtils.isEmpty(nbbm))  
934 - return null;  
935 - return carExecutePlanMap.get(nbbm);  
936 - }  
937 -  
938 - /**  
939 - * @param @param sch  
940 - * @param @param newClZbh 新的车辆自编号  
941 - * @Title: changeCar  
942 - * @Description: TODO(班次换车) 返回有更新的班次  
943 - */  
944 - public List<ScheduleRealInfo> changeCar(ScheduleRealInfo sch, String newClZbh) {  
945 - List<ScheduleRealInfo> ups = new ArrayList<>();  
946 -  
947 - String oldClZbh = sch.getClZbh();  
948 - //变更相关映射信息  
949 - nbbmScheduleMap.remove(sch.getClZbh(), sch);  
950 -  
951 - sch.setClZbh(newClZbh);  
952 - if (!nbbmScheduleMap.containsEntry(newClZbh, sch)) {  
953 - nbbmScheduleMap.put(newClZbh, sch);  
954 - }  
955 -  
956 - //重新计算车辆当前执行班次  
957 - reCalcExecPlan(newClZbh);  
958 - reCalcExecPlan(oldClZbh);  
959 - //重新分组计划用车  
960 - reCalcLineNbbms();  
961 - return ups;  
962 - }  
963 -  
964 - public void removeNbbm2SchMapp(ScheduleRealInfo sch) {  
965 - nbbmScheduleMap.remove(sch.getClZbh(), sch);  
966 - }  
967 -  
968 - public void addNbbm2SchMapp(ScheduleRealInfo sch) {  
969 - nbbmScheduleMap.put(sch.getClZbh(), sch);  
970 - }  
971 -  
972 - public void reCalcExecPlan(String nbbm) {  
973 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(nbbm);  
974 - Collections.sort(list, schDFSJComparator);  
975 -  
976 - ScheduleRealInfo sch = schAttrCalculator.calcCurrentExecSch(list);  
977 - if(null != sch)  
978 - carExecutePlanMap.put(nbbm, sch);  
979 - else  
980 - carExecutePlanMap.remove(nbbm);  
981 - }  
982 -  
983 - /**  
984 - * 空驶任务?  
985 - * 出场、进场、直放、两点间空驶  
986 - * @param sch  
987 - * @return  
988 - */  
989 - public static boolean emptyService(ScheduleRealInfo sch){  
990 - String type = sch.getBcType();  
991 - return type.equals("out") || type.equals("in") || type.equals("venting") || type.equals("ldks");  
992 - }  
993 -  
994 - @Autowired  
995 - JdbcTemplate jdbcTemplate;  
996 -  
997 - /**  
998 - * 删除实际排班  
999 - *  
1000 - * @param lineCode  
1001 - * @return  
1002 - */  
1003 - public Map<String, Object> deleteRealSchedule(String lineCode) {  
1004 - Map<String, Object> rs = new HashMap<>();  
1005 -  
1006 - try {  
1007 - String rq = currSchDateMap.get(lineCode);  
1008 - if (StringUtils.isNotEmpty(rq)) {  
1009 - List<ScheduleRealInfo> all = findByLineCode(lineCode);  
1010 -  
1011 - if(null != all && all.size() > 0){  
1012 - //解除gps 和班次之间的关联  
1013 - List<ScheduleRealInfo> unions = calcUnion(all, carExecutePlanMap.values());  
1014 - for (ScheduleRealInfo sch : unions) {  
1015 - removeExecPlan(sch.getClZbh());  
1016 - }  
1017 - //解除调度指令和班次的外键约束  
1018 - StringBuilder inStr = new StringBuilder("(");  
1019 - for (ScheduleRealInfo sch : all) {  
1020 - inStr.append(sch.getId() + ",");  
1021 - }  
1022 - inStr.deleteCharAt(inStr.length() - 1).append(")");  
1023 - jdbcTemplate.update(Constants.MULTI_REMOVE_DIRECTIVE_SCH_FK + " " + inStr.toString());  
1024 - }  
1025 -  
1026 - //删除班次数据  
1027 - removeRealSch(lineCode, rq);  
1028 -  
1029 - }  
1030 - rs.put("status", ResponseCode.SUCCESS);  
1031 - } catch (Exception e) {  
1032 - logger.error("", e);  
1033 - rs.put("status", ResponseCode.ERROR);  
1034 - if (e instanceof DataIntegrityViolationException)  
1035 - rs.put("msg", "失败,违反数据约束!!");  
1036 - else  
1037 - rs.put("msg", e.getMessage());  
1038 - }  
1039 -  
1040 - return rs;  
1041 - }  
1042 -  
1043 - /**  
1044 - * 计算并集  
1045 - *  
1046 - * @param all  
1047 - * @param sub  
1048 - * @return  
1049 - */  
1050 - public List<ScheduleRealInfo> calcUnion(Collection<ScheduleRealInfo> c1, Collection<ScheduleRealInfo> c2) {  
1051 - List<ScheduleRealInfo> rs = new ArrayList<>();  
1052 -  
1053 - for (ScheduleRealInfo sch : c1) {  
1054 - if (c2.contains(sch)) {  
1055 - rs.add(sch);  
1056 - }  
1057 - }  
1058 - return rs;  
1059 - }  
1060 -  
1061 - /**  
1062 - * 覆盖一辆车的所有班次  
1063 - *  
1064 - * @param nbbm  
1065 - * @param sets  
1066 - */  
1067 - public void replaceByNbbm(String nbbm, Collection<ScheduleRealInfo> sets) {  
1068 - nbbmScheduleMap.removeAll(nbbm);  
1069 - nbbmScheduleMap.putAll(nbbm, sets);  
1070 - }  
1071 -  
1072 - /**  
1073 - * 获取该班次所在路牌的下一个班次  
1074 - *  
1075 - * @param sch  
1076 - * @return  
1077 - */  
1078 - public ScheduleRealInfo nextByLp(ScheduleRealInfo sch) {  
1079 - List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName());  
1080 - Collections.sort(list, schFCSJComparator);  
1081 - return next3_lp(list, sch);  
1082 - }  
1083 -  
1084 - /**  
1085 - * 获取该班次所在路牌的下一个班次,不考虑场既是站  
1086 - *  
1087 - * @param sch  
1088 - * @return  
1089 - */  
1090 - public ScheduleRealInfo nextByLp2(ScheduleRealInfo sch) {  
1091 - List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName());  
1092 - Collections.sort(list, schFCSJComparator);  
1093 - return next2_lp(list, sch);  
1094 - }  
1095 -  
1096 - public ArrayListMultimap<String, ScheduleRealInfo> getLpScheduleMap() {  
1097 - return lpScheduleMap;  
1098 - }  
1099 -  
1100 - /**  
1101 - * 重新全量计算路牌下的班次关联性  
1102 - * 临时性的函数  
1103 - */  
1104 - public void _test_reCalcLpSch() {  
1105 - Map<String ,Collection<ScheduleRealInfo>> map = lpScheduleMap.asMap();  
1106 - Set<String> ks = map.keySet();  
1107 - for(String k : ks){  
1108 - schAttrCalculator.calcQdzTimePlan(new ArrayList<ScheduleRealInfo>(map.get(k)));  
1109 - }  
1110 - }  
1111 -  
1112 - public int dbCount(String lineCode, String currSchDate) {  
1113 - int count = -1;  
1114 -  
1115 - try{  
1116 - count = jdbcTemplate.queryForObject("select count(*) from bsth_c_s_sp_info_real where schedule_date='"+currSchDate+"' and xl_bm='"+lineCode+"'", java.lang.Integer.class);  
1117 -  
1118 - }catch (Exception e){  
1119 - logger.error("", e);  
1120 - }  
1121 - return count;  
1122 - }  
1123 -  
1124 - /**  
1125 - * 重新计算ID对照map  
1126 - */  
1127 - public int reCalcIdMaps(){  
1128 - Collection<ScheduleRealInfo> all = findAll();  
1129 - ConcurrentMap<Long, ScheduleRealInfo> id2SchedulMapCopy = new ConcurrentHashMap<>();  
1130 -  
1131 - for(ScheduleRealInfo sch : all){  
1132 - id2SchedulMapCopy.put(sch.getId(), sch);  
1133 - }  
1134 -  
1135 - id2SchedulMap = id2SchedulMapCopy;  
1136 -  
1137 - return id2SchedulMap.size();  
1138 - }  
1139 -  
1140 - /**  
1141 - * 重新计算线路计划用车  
1142 - */  
1143 - public void reCalcLineNbbms(){  
1144 - HashMultimap<String, String> multimap = HashMultimap.create();  
1145 -  
1146 - Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values();  
1147 - for (ScheduleRealInfo sch : schs) {  
1148 - multimap.put(sch.getXlBm(), sch.getClZbh());  
1149 - }  
1150 -  
1151 - lineNbbmsMap = multimap;  
1152 - }  
1153 -  
1154 - public String sizeString(){  
1155 - return id2SchedulMap.size() + "/" + nbbmScheduleMap.size();  
1156 - }  
1157 -  
1158 -  
1159 - /**  
1160 - * 按公司编码分组数据  
1161 - */  
1162 - public void groupByGsbm(){  
1163 - Collection<ScheduleRealInfo> all = findAll();  
1164 - ListMultimap<String, ScheduleRealInfo> gsBmMaps = ArrayListMultimap.create();  
1165 -  
1166 - for(ScheduleRealInfo sch : all){  
1167 - gsBmMaps.put(sch.getGsBm(), sch);  
1168 - }  
1169 -  
1170 - if(gsBmMaps.size() > 0){  
1171 - gsBmScheduleMap = null;  
1172 - gsBmScheduleMap = gsBmMaps;  
1173 - }  
1174 - }  
1175 -  
1176 - public Collection<ScheduleRealInfo> findByGsbm(String gsbm){  
1177 - return gsBmScheduleMap.get(gsbm);  
1178 - }  
1179 -=======  
1180 package com.bsth.data.schedule; 1 package com.bsth.data.schedule;
1181 2
1182 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
@@ -1263,7 +84,7 @@ public class DayOfSchedule { @@ -1263,7 +84,7 @@ public class DayOfSchedule {
1263 private static ScheduleComparator.DFSJ schDFSJComparator; 84 private static ScheduleComparator.DFSJ schDFSJComparator;
1264 85
1265 private static Long sch_max_id=-1L; 86 private static Long sch_max_id=-1L;
1266 - 87 +
1267 private Map<String, RepairReport> incode2report = new ConcurrentHashMap<String, RepairReport>(); 88 private Map<String, RepairReport> incode2report = new ConcurrentHashMap<String, RepairReport>();
1268 89
1269 @Autowired 90 @Autowired
@@ -2013,8 +834,8 @@ public class DayOfSchedule { @@ -2013,8 +834,8 @@ public class DayOfSchedule {
2013 ScheduleRealInfo sch = null; 834 ScheduleRealInfo sch = null;
2014 for (ScheduleRealInfo temp : list) { 835 for (ScheduleRealInfo temp : list) {
2015 if (temp.getFcsjActual() == null) { 836 if (temp.getFcsjActual() == null) {
2016 - sch = temp;  
2017 - break; 837 + sch = temp;
  838 + break;
2018 } 839 }
2019 } 840 }
2020 841
@@ -2364,20 +1185,19 @@ public class DayOfSchedule { @@ -2364,20 +1185,19 @@ public class DayOfSchedule {
2364 reCalcExecPlan(sch.getClZbh()); 1185 reCalcExecPlan(sch.getClZbh());
2365 } 1186 }
2366 } 1187 }
2367 - 1188 +
2368 /** 1189 /**
2369 ** 用于重置维修上报计数,一般只应该在翻班的时候调用 1190 ** 用于重置维修上报计数,一般只应该在翻班的时候调用
2370 */ 1191 */
2371 public void resetRepairReport(String incode) { 1192 public void resetRepairReport(String incode) {
2372 - incode2report.remove(incode); 1193 + incode2report.remove(incode);
2373 } 1194 }
2374 - 1195 +
2375 public RepairReport getLastestRepairReport(String incode) { 1196 public RepairReport getLastestRepairReport(String incode) {
2376 - return incode2report.get(incode); 1197 + return incode2report.get(incode);
2377 } 1198 }
2378 - 1199 +
2379 public void setLastestRepairReport(RepairReport rr) { 1200 public void setLastestRepairReport(RepairReport rr) {
2380 - incode2report.put(rr.getIncode(), rr); 1201 + incode2report.put(rr.getIncode(), rr);
2381 } 1202 }
2382 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
2383 -}  
2384 \ No newline at end of file 1203 \ No newline at end of file
  1204 +}
src/main/java/com/bsth/entity/Cars.java
@@ -9,28 +9,28 @@ import java.io.Serializable; @@ -9,28 +9,28 @@ import java.io.Serializable;
9 import java.util.Date; 9 import java.util.Date;
10 10
11 /** 11 /**
12 - * 12 + *
13 * @ClassName : Cars(车实体类) 13 * @ClassName : Cars(车实体类)
14 - * 14 + *
15 * @Author : bsth@lq 15 * @Author : bsth@lq
16 - * 16 + *
17 * @Description : TODO(车辆基本信息) 17 * @Description : TODO(车辆基本信息)
18 - * 18 + *
19 * @Data : 2016-04-27 19 * @Data : 2016-04-27
20 * 20 *
21 * @Version 公交调度系统BS版 0.1 21 * @Version 公交调度系统BS版 0.1
22 - * 22 + *
23 */ 23 */
24 24
25 @Entity 25 @Entity
26 @Table(name = "bsth_c_cars") 26 @Table(name = "bsth_c_cars")
27 @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"}) 27 @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
28 public class Cars extends BEntity implements Serializable { 28 public class Cars extends BEntity implements Serializable {
29 -  
30 - /** 主键Id */  
31 - @Id  
32 - @GeneratedValue(strategy = GenerationType.IDENTITY)  
33 - private Integer id; 29 +
  30 + /** 主键Id */
  31 + @Id
  32 + @GeneratedValue(strategy = GenerationType.IDENTITY)
  33 + private Integer id;
34 34
35 /** 自编号/内部编号 */ 35 /** 自编号/内部编号 */
36 @Column(nullable = false, length = 20, unique = true) 36 @Column(nullable = false, length = 20, unique = true)
@@ -54,26 +54,26 @@ public class Cars extends BEntity implements Serializable { @@ -54,26 +54,26 @@ public class Cars extends BEntity implements Serializable {
54 54
55 /** 车辆编码(TODO:在原系统里没有,这里暂时留着) */ 55 /** 车辆编码(TODO:在原系统里没有,这里暂时留着) */
56 @Column(nullable = false) 56 @Column(nullable = false)
57 - private String carCode; 57 + private String carCode;
58 /** 车牌号 */ 58 /** 车牌号 */
59 @Column(nullable = false) 59 @Column(nullable = false)
60 - private String carPlate; 60 + private String carPlate;
61 /** 供应商名称 */ 61 /** 供应商名称 */
62 @Column(nullable = false) 62 @Column(nullable = false)
63 private String supplierName; 63 private String supplierName;
64 /** 设备终端号 */ 64 /** 设备终端号 */
65 @Column(nullable = false) 65 @Column(nullable = false)
66 private String equipmentCode; 66 private String equipmentCode;
67 - 67 +
68 // 以下信息来自总公司的业务系统,可能需要调用相关接口 68 // 以下信息来自总公司的业务系统,可能需要调用相关接口
69 - /** 车型类别 */  
70 - private String carClass ; 69 + /** 车型类别 */
  70 + private String carClass ;
71 /** 技术速度 */ 71 /** 技术速度 */
72 private Double speed; 72 private Double speed;
73 /** 座位数 */ 73 /** 座位数 */
74 - private Integer carSeatnNumber;  
75 - /** 载客标准 */  
76 - private String carStandard; 74 + private Integer carSeatnNumber;
  75 + /** 载客标准 */
  76 + private String carStandard;
77 /** 标准油耗(开空调) */ 77 /** 标准油耗(开空调) */
78 private Double kburnStandard; 78 private Double kburnStandard;
79 /** 标准油耗(关空调) */ 79 /** 标准油耗(关空调) */
@@ -103,21 +103,21 @@ public class Cars extends BEntity implements Serializable { @@ -103,21 +103,21 @@ public class Cars extends BEntity implements Serializable {
103 /** 取消日期 */ 103 /** 取消日期 */
104 private Date closeDate; 104 private Date closeDate;
105 105
106 - /** 是否空调车 */ 106 + /** 是否空调车 */
107 @Column(nullable = true) 107 @Column(nullable = true)
108 private Boolean hvacCar; 108 private Boolean hvacCar;
109 - /** 有无人售票 */ 109 + /** 有无人售票 */
110 @Column(nullable = true) 110 @Column(nullable = true)
111 - private Boolean ticketType; 111 + private Boolean ticketType;
112 /** 是否有LED服务屏 */ 112 /** 是否有LED服务屏 */
113 @Column(nullable = true) 113 @Column(nullable = true)
114 private Boolean ledScreen; 114 private Boolean ledScreen;
115 - /** 是否有TV视频 */ 115 + /** 是否有TV视频 */
116 @Column(nullable = true) 116 @Column(nullable = true)
117 - private Boolean tvVideoType; 117 + private Boolean tvVideoType;
118 118
119 - /** 车辆类型 */  
120 - private String carType; 119 + /** 车辆类型 */
  120 + private String carType;
121 /** 是否机动车(机动车类型选择)*/ 121 /** 是否机动车(机动车类型选择)*/
122 private String vehicleStats; 122 private String vehicleStats;
123 /** 营运状态 */ 123 /** 营运状态 */
@@ -128,23 +128,20 @@ public class Cars extends BEntity implements Serializable { @@ -128,23 +128,20 @@ public class Cars extends BEntity implements Serializable {
128 private Boolean sfdc; 128 private Boolean sfdc;
129 /** 是否混合动力(TODO:在原系统里没有,这里暂时留着) */ 129 /** 是否混合动力(TODO:在原系统里没有,这里暂时留着) */
130 private Boolean sfmix; 130 private Boolean sfmix;
131 -<<<<<<< HEAD  
132 -=======  
133 /** 是否氢能源车 */ 131 /** 是否氢能源车 */
134 private Boolean hydrogen; 132 private Boolean hydrogen;
135 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a  
136 /** 备注/描述 */ 133 /** 备注/描述 */
137 private String descriptions; 134 private String descriptions;
138 135
139 - /** 车辆序号(TODO:在原系统里没有,这里暂时留着) */  
140 - private String carOrdinal;  
141 - /** 视频编号 */  
142 - private String videoCode;  
143 - /** 是否报废 */ 136 + /** 车辆序号(TODO:在原系统里没有,这里暂时留着) */
  137 + private String carOrdinal;
  138 + /** 视频编号 */
  139 + private String videoCode;
  140 + /** 是否报废 */
144 @Column(nullable = true) 141 @Column(nullable = true)
145 - private Boolean scrapState;  
146 - /** 是否切换(TODO:在原系统里没有,这里暂时留着)*/  
147 - private Integer isSwitch; 142 + private Boolean scrapState;
  143 + /** 是否切换(TODO:在原系统里没有,这里暂时留着)*/
  144 + private Integer isSwitch;
148 /** 线路名称(TODO:在原系统里没有,这里暂时留着,并且不做线路关联,只保留个名字) */ 145 /** 线路名称(TODO:在原系统里没有,这里暂时留着,并且不做线路关联,只保留个名字) */
149 private String xlmc; 146 private String xlmc;
150 147
@@ -167,16 +164,16 @@ public class Cars extends BEntity implements Serializable { @@ -167,16 +164,16 @@ public class Cars extends BEntity implements Serializable {
167 this.equipmentCode = sbbh.toString(); 164 this.equipmentCode = sbbh.toString();
168 } 165 }
169 } 166 }
170 - 167 +
171 public String getServiceNo() { 168 public String getServiceNo() {
172 - return serviceNo;  
173 - } 169 + return serviceNo;
  170 + }
174 171
175 - public void setServiceNo(String serviceNo) {  
176 - this.serviceNo = serviceNo;  
177 - } 172 + public void setServiceNo(String serviceNo) {
  173 + this.serviceNo = serviceNo;
  174 + }
178 175
179 - public Integer getId() { 176 + public Integer getId() {
180 return id; 177 return id;
181 } 178 }
182 179
@@ -527,15 +524,12 @@ public class Cars extends BEntity implements Serializable { @@ -527,15 +524,12 @@ public class Cars extends BEntity implements Serializable {
527 public void setSfmix(Boolean sfmix) { 524 public void setSfmix(Boolean sfmix) {
528 this.sfmix = sfmix; 525 this.sfmix = sfmix;
529 } 526 }
530 -<<<<<<< HEAD  
531 -=======  
532 527
533 - public Boolean getHydrogen() {  
534 - return hydrogen;  
535 - } 528 + public Boolean getHydrogen() {
  529 + return hydrogen;
  530 + }
536 531
537 - public void setHydrogen(Boolean hydrogen) {  
538 - this.hydrogen = hydrogen;  
539 - }  
540 ->>>>>>> 6cafe1acab4252c1fd171e0669654f317bf0fd4a 532 + public void setHydrogen(Boolean hydrogen) {
  533 + this.hydrogen = hydrogen;
  534 + }
541 } 535 }