Commit c4e419a222b7023118e2472b9a5969069e8c1650

Authored by 娄高锋
1 parent 5628589d

调度日报汇总表;审计公里汇总表。

src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
1   -package com.bsth.controller.realcontrol;
2   -
3   -import java.io.ByteArrayOutputStream;
4   -import java.io.IOException;
5   -import java.io.InputStream;
6   -import java.io.OutputStream;
7   -import java.net.HttpURLConnection;
8   -import java.net.MalformedURLException;
9   -import java.net.URL;
10   -import java.net.URLEncoder;
11   -import java.sql.Connection;
12   -import java.sql.Date;
13   -import java.sql.PreparedStatement;
14   -import java.sql.ResultSet;
15   -import java.util.*;
16   -
17   -import com.bsth.data.forecast.entity.ArrivalEntity;
18   -import com.bsth.entity.sys.SysUser;
19   -import com.bsth.security.util.SecurityUtils;
20   -import com.bsth.util.ReportUtils;
21   -import com.bsth.util.db.DBUtils_MS;
22   -import com.bsth.util.db.DBUtils_control;
23   -import com.fasterxml.jackson.databind.ObjectMapper;
24   -import org.apache.commons.io.IOUtils;
25   -import org.apache.commons.lang3.StringEscapeUtils;
26   -import org.joda.time.DateTime;
27   -import org.joda.time.format.DateTimeFormat;
28   -import org.joda.time.format.DateTimeFormatter;
29   -import org.springframework.beans.factory.annotation.Autowired;
30   -import org.springframework.web.bind.annotation.*;
31   -
32   -import com.alibaba.fastjson.JSONArray;
33   -import com.bsth.common.ResponseCode;
34   -import com.bsth.controller.BaseController;
35   -import com.bsth.controller.realcontrol.dto.ChangePersonCar;
36   -import com.bsth.controller.realcontrol.dto.DfsjChange;
37   -import com.bsth.data.BasicData;
38   -import com.bsth.data.schedule.DayOfSchedule;
39   -import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto;
40   -import com.bsth.entity.realcontrol.ScheduleRealInfo;
41   -import com.bsth.entity.report.RepairReport;
42   -import com.bsth.entity.schedule.SchedulePlanInfo;
43   -import com.bsth.service.realcontrol.ScheduleRealInfoService;
44   -
45   -@RestController
46   -@RequestMapping("/realSchedule")
47   -public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, Long> {
48   -
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   - }
716   -
717   - @RequestMapping(value = "isCircleQdz", method = RequestMethod.POST)
718   - public Map<String, Object> isCircleQdz(@RequestParam String line, String nbbm, String ts, String qdzCode){
719   - Map<String, Object> map =new HashMap<>();
720   - map.put("isExist",scheduleRealInfoService.isCircleQdz(nbbm, ts, line, qdzCode));
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   - }
738   -
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   - }
851   -
852   - public final static class SchedulePlan {
853   - private String company = "浦东公司[46]";
854   -
855   - private String xlName = "";
856   -
857   - private int xlDir;
858   -
859   - private String xlDirStr = "";
860   -
861   - private String scheduleDate = "";
862   -
863   - private String sjdStart = "";
864   -
865   - private String sjdEnd = "";
866   -
867   - private String fcsj = "";
868   -
869   - private int bcsj;
870   -
871   - private String ddsj = "";
872   -
873   - private int yys = 25;
874   -
875   - private String clZbh = "";
876   -
877   - private String cph = "";
878   -
879   - private String color = "绿牌";
880   -
881   - private String jsy = "";
882   -
883   - private String jsydh = "";
884   -
885   - private int pj = 10;
886   -
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   - }
1033   -}
  1 +package com.bsth.controller.realcontrol;
  2 +
  3 +import java.io.ByteArrayOutputStream;
  4 +import java.io.IOException;
  5 +import java.io.InputStream;
  6 +import java.io.OutputStream;
  7 +import java.net.HttpURLConnection;
  8 +import java.net.MalformedURLException;
  9 +import java.net.URL;
  10 +import java.net.URLEncoder;
  11 +import java.sql.Connection;
  12 +import java.sql.Date;
  13 +import java.sql.PreparedStatement;
  14 +import java.sql.ResultSet;
  15 +import java.util.*;
  16 +
  17 +import com.bsth.data.forecast.entity.ArrivalEntity;
  18 +import com.bsth.entity.sys.SysUser;
  19 +import com.bsth.security.util.SecurityUtils;
  20 +import com.bsth.util.ReportUtils;
  21 +import com.bsth.util.db.DBUtils_MS;
  22 +import com.bsth.util.db.DBUtils_control;
  23 +import com.fasterxml.jackson.databind.ObjectMapper;
  24 +import org.apache.commons.io.IOUtils;
  25 +import org.apache.commons.lang3.StringEscapeUtils;
  26 +import org.joda.time.DateTime;
  27 +import org.joda.time.format.DateTimeFormat;
  28 +import org.joda.time.format.DateTimeFormatter;
  29 +import org.springframework.beans.factory.annotation.Autowired;
  30 +import org.springframework.web.bind.annotation.*;
  31 +
  32 +import com.alibaba.fastjson.JSONArray;
  33 +import com.bsth.common.ResponseCode;
  34 +import com.bsth.controller.BaseController;
  35 +import com.bsth.controller.realcontrol.dto.ChangePersonCar;
  36 +import com.bsth.controller.realcontrol.dto.DfsjChange;
  37 +import com.bsth.data.BasicData;
  38 +import com.bsth.data.schedule.DayOfSchedule;
  39 +import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto;
  40 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  41 +import com.bsth.entity.report.RepairReport;
  42 +import com.bsth.entity.schedule.SchedulePlanInfo;
  43 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
  44 +
  45 +@RestController
  46 +@RequestMapping("/realSchedule")
  47 +public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, Long> {
  48 +
  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="/dispatchDailySum")
  413 + public List<Map<String,Object>> dispatchDailySum(@RequestParam Map<String, Object> map){
  414 + String date="";
  415 + if(map.get("date")!=null){
  416 + date=map.get("date").toString();
  417 + }
  418 + String nature="0";
  419 + if(map.get("nature")!=null){
  420 + nature=map.get("nature").toString();
  421 + }
  422 + String type="";
  423 + if(map.get("type")!=null){
  424 + type=map.get("type").toString();
  425 + }
  426 + return scheduleRealInfoService.dispatchDailySum(date, nature, type);
  427 + }
  428 +
  429 + @RequestMapping(value="/statisticsDailyTj")
  430 + public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){
  431 + String gsdm="";
  432 + if(map.get("gsdm")!=null){
  433 + gsdm=map.get("gsdm").toString();
  434 + }
  435 + String fgsdm="";
  436 + if(map.get("fgsdm")!=null){
  437 + fgsdm=map.get("fgsdm").toString();
  438 + }
  439 + String line="";
  440 + if(map.get("line")!=null){
  441 + line=map.get("line").toString();
  442 + }
  443 + String date="";
  444 + if(map.get("date")!=null){
  445 + date=map.get("date").toString();
  446 + }
  447 + String date2="";
  448 + if(map.get("date2")!=null){
  449 + date2=map.get("date2").toString();
  450 + }
  451 + String xlName="";
  452 + if(map.get("xlName")!=null){
  453 + xlName=map.get("xlName").toString();
  454 + }
  455 + String type="";
  456 + if(map.get("type")!=null){
  457 + type=map.get("type").toString();
  458 + }
  459 + String nature="0";
  460 + if(map.get("nature")!=null){
  461 + nature=map.get("nature").toString();
  462 + }
  463 + return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type,nature);
  464 + }
  465 +
  466 + /*
  467 + * 公里修正报表
  468 + */
  469 + @RequestMapping(value="/mileageReportTj")
  470 + public List<Map<String,Object>> mileageReport(@RequestParam Map<String, Object> map){
  471 + String gsdm="";
  472 + if(map.get("gsdm")!=null){
  473 + gsdm=map.get("gsdm").toString();
  474 + }
  475 + String fgsdm="";
  476 + if(map.get("fgsdm")!=null){
  477 + fgsdm=map.get("fgsdm").toString();
  478 + }
  479 + String line="";
  480 + if(map.get("line")!=null){
  481 + line=map.get("line").toString();
  482 + }
  483 + String date="";
  484 + if(map.get("date")!=null){
  485 + date=map.get("date").toString();
  486 + }
  487 + String date2="";
  488 + if(map.get("date2")!=null){
  489 + date2=map.get("date2").toString();
  490 + }
  491 + String xlName="";
  492 + if(map.get("xlName")!=null){
  493 + xlName=map.get("xlName").toString();
  494 + }
  495 + return scheduleRealInfoService.mileageReport(gsdm,fgsdm,line, date,date2);
  496 + }
  497 +
  498 + /*
  499 + * 班次修正报表
  500 + */
  501 + @RequestMapping(value="/scheduleCorrectionReport")
  502 + public List<Map<String,Object>> scheduleCorrectionReport(@RequestParam Map<String, Object> map){
  503 + String gsdm="";
  504 + if(map.get("gsdm")!=null){
  505 + gsdm=map.get("gsdm").toString();
  506 + }
  507 + String fgsdm="";
  508 + if(map.get("fgsdm")!=null){
  509 + fgsdm=map.get("fgsdm").toString();
  510 + }
  511 + String line="";
  512 + if(map.get("line")!=null){
  513 + line=map.get("line").toString();
  514 + }
  515 + String date="";
  516 + if(map.get("date")!=null){
  517 + date=map.get("date").toString();
  518 + }
  519 + String date2="";
  520 + if(map.get("date2")!=null){
  521 + date2=map.get("date2").toString();
  522 + }
  523 + String xlName="";
  524 + if(map.get("xlName")!=null){
  525 + xlName=map.get("xlName").toString();
  526 + }
  527 + return scheduleRealInfoService.scheduleCorrectionReport(gsdm,fgsdm,line, date,date2);
  528 + }
  529 +
  530 + @RequestMapping(value="/MapById",method = RequestMethod.GET)
  531 + public Map<String, Object> MapById(@RequestParam("id") Long id){
  532 + return scheduleRealInfoService.MapById(id);
  533 + }
  534 +
  535 + @RequestMapping(value="/MapByIdQp",method = RequestMethod.GET)
  536 + public Map<String, Object> MapByIdQp(@RequestParam("id") Long id){
  537 + return scheduleRealInfoService.MapByIdQp(id);
  538 + }
  539 +
  540 + /**
  541 + * @Title: scheduleDaily
  542 + * @Description: TODO(调度日报表)
  543 + * @param line 线路
  544 + * @param date 时间
  545 + * @return
  546 + */
  547 + @RequestMapping(value="/scheduleDaily")
  548 + public Map<String,Object> scheduleDaily(@RequestParam String line,@RequestParam String date){
  549 + return scheduleRealInfoService.scheduleDaily(line,date);
  550 + }
  551 +
  552 + @RequestMapping(value="/realScheduleList")
  553 + public List<ScheduleRealInfo> realScheduleList(@RequestParam String line,@RequestParam String date){
  554 + return scheduleRealInfoService.realScheduleList(line,date);
  555 + }
  556 +
  557 + @RequestMapping(value="/realScheduleList_zrw")
  558 + public List<ScheduleRealInfo> realScheduleList_zrw(@RequestParam String line,@RequestParam String date){
  559 + return scheduleRealInfoService.realScheduleList_zrw(line,date);
  560 + }
  561 +
  562 + @RequestMapping(value="/realScheduleList_mh_2")
  563 + public List<ScheduleRealInfo> realScheduleList_mh_2(@RequestParam String line,@RequestParam String date){
  564 + return scheduleRealInfoService.realScheduleList_mh_2(line,date);
  565 + }
  566 +
  567 + @RequestMapping(value="/realScheduleListQp")
  568 + public List<ScheduleRealInfo> realScheduleListQp(@RequestParam String line,@RequestParam String date){
  569 + return scheduleRealInfoService.realScheduleListQp(line,date);
  570 + }
  571 +
  572 + @RequestMapping(value="/multi_tzrc", method=RequestMethod.POST)
  573 + public synchronized Map<String, Object> multi_tzrc(@RequestParam String cpcsJson){
  574 + cpcsJson = StringEscapeUtils.unescapeHtml4(cpcsJson);
  575 + List<ChangePersonCar> cpcs = JSONArray.parseArray(cpcsJson, ChangePersonCar.class);
  576 + return scheduleRealInfoService.multi_tzrc(cpcs, null);
  577 + }
  578 +
  579 + @RequestMapping(value="/multi_dftz", method=RequestMethod.POST)
  580 + public Map<String, Object> multi_dftz(@RequestParam String dcsJson){
  581 + dcsJson = StringEscapeUtils.unescapeHtml4(dcsJson);
  582 + List<DfsjChange> dfsjcs = JSONArray.parseArray(dcsJson, DfsjChange.class);
  583 + return scheduleRealInfoService.multi_dftz(dfsjcs);
  584 + }
  585 +
  586 + @RequestMapping(value="/changeBcType/{id}", method=RequestMethod.POST)
  587 + public Map<String, Object> changeBcType(@PathVariable("id") Long id, String bcType, String remarks, String majorStationName){
  588 + return scheduleRealInfoService.changeBcType(id, bcType, remarks, majorStationName);
  589 + }
  590 +
  591 + @RequestMapping(value="/history", method=RequestMethod.POST)
  592 + public Map<String,Object> historySave(ScheduleRealInfo sch){
  593 + return scheduleRealInfoService.historySave(sch);
  594 + }
  595 +
  596 +
  597 + private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd");
  598 + private final static long ONE_DAY = 1000 * 60 * 60 * 24;
  599 + /**
  600 + * 获取可编辑的历史班次日期
  601 + * @return
  602 + */
  603 + @RequestMapping("dateArray")
  604 + public List<String> dateArray(@RequestParam(defaultValue = "0") int c){
  605 + List<String> rs = new ArrayList<>();
  606 +
  607 + long t = System.currentTimeMillis();
  608 + if(c != 1)
  609 + t -= (ONE_DAY + (1000 * 60 * 60 * 6));
  610 + for(int i = 0; i < 3; i ++){
  611 + rs.add(fmtyyyyMMdd.print(t));
  612 + t -= ONE_DAY;
  613 + }
  614 + return rs;
  615 + }
  616 +
  617 + @RequestMapping(value = "svgAttr", method = RequestMethod.POST)
  618 + public Map<String, Object> svgAttr(@RequestParam String jsonStr){
  619 + return scheduleRealInfoService.svgAttr(jsonStr);
  620 + }
  621 +
  622 + @RequestMapping(value = "svgAttr", method = RequestMethod.GET)
  623 + public Map<String, Object> findSvgAttr(@RequestParam String idx){
  624 + return scheduleRealInfoService.findSvgAttr(idx);
  625 + }
  626 +
  627 + @RequestMapping(value = "addRemarks", method = RequestMethod.POST)
  628 + public Map<String, Object> addRemarks(@RequestParam Long id, @RequestParam String remarks){
  629 + return scheduleRealInfoService.addRemarks(id, remarks);
  630 + }
  631 +
  632 + @RequestMapping(value = "scheduleDailyQp", method = RequestMethod.GET)
  633 + public List<Map<String, Object>> scheduleDailyQp(@RequestParam String line,@RequestParam String date){
  634 + return scheduleRealInfoService.scheduleDailyQp(line,date);
  635 + }
  636 +
  637 + @RequestMapping(value = "scheduleDailyExport", method = RequestMethod.GET)
  638 + public List<Map<String, Object>> scheduleDailyExport(@RequestParam Map<String, Object> map){
  639 + return scheduleRealInfoService.scheduleDailyExport(map);
  640 + }
  641 +
  642 + @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET)
  643 + public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){
  644 + return scheduleRealInfoService.exportWaybillMore(map);
  645 + }
  646 +
  647 + /**
  648 + * 获取当日计划排班 , 从计划表抓取数据
  649 + * @return
  650 + */
  651 + @RequestMapping(value = "currSchedulePlanByLineCode", method = RequestMethod.GET)
  652 + public List<SchedulePlanInfo> currentSchedulePlan(@RequestParam String lineCode){
  653 + return scheduleRealInfoService.currentSchedulePlan(lineCode);
  654 + }
  655 +
  656 + @RequestMapping(value = "lpChangeMulti", method = RequestMethod.POST)
  657 + public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx,@RequestParam int type){
  658 + return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx, type);
  659 + }
  660 +
  661 + /**
  662 + * 删除当日实际排班
  663 + * @return
  664 + */
  665 + @RequestMapping(value = "deleteRealSchedule", method = RequestMethod.POST)
  666 + public Map<String, Object> deleteRealSchedule(@RequestParam String lineCode){
  667 + return dayOfSchedule.deleteRealSchedule(lineCode);
  668 + }
  669 +
  670 + /**
  671 + * 从计划表重新加载当日排班
  672 + * @param lineCode
  673 + * @return
  674 + */
  675 + @RequestMapping(value = "reLoadRealSchedule", method = RequestMethod.POST)
  676 + public Map<String, Object> reLoadRealSchedule(@RequestParam String lineCode){
  677 + Map<String, Object> rs = new HashMap<>();
  678 + List<ScheduleRealInfo> list = dayOfSchedule.findByLineCode(lineCode);
  679 + if(list != null && list.size() > 0){
  680 + rs.put("status", ResponseCode.ERROR);
  681 + rs.put("msg", "失败," + list.get(0).getXlName() + "当日存在实际排班,无法重新加载。");
  682 + return rs;
  683 + }
  684 +
  685 + int code = dayOfSchedule.reloadSch(lineCode);
  686 +
  687 + //重新按公司编码索引数据
  688 + dayOfSchedule.groupByGsbm();
  689 + rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);
  690 + return rs;
  691 + }
  692 +
  693 + /**
  694 + * 误点调整
  695 + * @param idx
  696 + * @param minute
  697 + * @return
  698 + */
  699 + @RequestMapping(value = "lateAdjust", method = RequestMethod.POST)
  700 + public Map<String, Object> lateAdjust(@RequestParam String idx,@RequestParam float minute ){
  701 + return scheduleRealInfoService.lateAdjust(idx, minute);
  702 + }
  703 +
  704 + /**
  705 + * 获取所有应发未到的班次
  706 + * @param idx
  707 + * @return
  708 + */
  709 + @RequestMapping(value = "allLate2")
  710 + public List<ScheduleRealInfo> allLate2(@RequestParam String idx){
  711 + return scheduleRealInfoService.allLate2(idx);
  712 + }
  713 +
  714 + /**
  715 + * 添加一个临加到历史库
  716 + * @param sch
  717 + * @return
  718 + */
  719 + @RequestMapping(value = "history/add", method = RequestMethod.POST)
  720 + public Map<String, Object> addToHistory(ScheduleRealInfo sch){
  721 + return scheduleRealInfoService.addToHistory(sch);
  722 + }
  723 +
  724 + /**
  725 + * 从历史库里删除临加班次
  726 + * @param id
  727 + * @return
  728 + */
  729 + @RequestMapping(value = "history/{id}", method = RequestMethod.DELETE)
  730 + public Map<String, Object> deleteToHistory(@PathVariable("id") Long id){
  731 + return scheduleRealInfoService.deleteToHistory(id);
  732 + }
  733 +
  734 + @RequestMapping(value = "isCircleQdz", method = RequestMethod.POST)
  735 + public Map<String, Object> isCircleQdz(@RequestParam String line, String nbbm, String ts, String qdzCode){
  736 + Map<String, Object> map =new HashMap<>();
  737 + map.put("isExist",scheduleRealInfoService.isCircleQdz(nbbm, ts, line, qdzCode));
  738 + return map;
  739 + }
  740 +
  741 + /**
  742 + * 从历史库里删除临加班次
  743 + * @param param
  744 + * @return
  745 + */
  746 + @RequestMapping(value = "wxsb", method = RequestMethod.POST)
  747 + public Map<String, Object> repairReport(@RequestParam Map<String, Object> param){
  748 + return scheduleRealInfoService.repairReport(param, true);
  749 + }
  750 +
  751 + @RequestMapping(value = "wxsb", method = RequestMethod.GET)
  752 + public List<RepairReport> repairReportList(@RequestParam String line, @RequestParam String date, @RequestParam String code, @RequestParam String type){
  753 + return scheduleRealInfoService.repairReportList(line, date, code, type);
  754 + }
  755 +
  756 + @RequestMapping(value = "lineLevel", method = RequestMethod.GET)
  757 + public Map<String, String> lineLevel(@RequestParam String idx){
  758 + return scheduleRealInfoService.getLevelsByLines(Arrays.asList(idx.split(",")));
  759 + }
  760 +
  761 + /**
  762 + * 反馈安全驾驶系统
  763 + * @param param
  764 + * @return
  765 + */
  766 + @RequestMapping(value = "ackDsm", method = RequestMethod.POST)
  767 + public Map<String, Object> ackDsm(@RequestParam Map<String, Object> param){
  768 + Map<String, Object> res = new HashMap<>();
  769 + InputStream in = null;
  770 + SysUser user = SecurityUtils.getCurrentUser();
  771 + DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
  772 + StringBuilder url = new StringBuilder("http://211.95.61.66:9008/modules/dsmCheckTheRecord/addDsm?"), uri = new StringBuilder();
  773 + HttpURLConnection con = null;
  774 + try {
  775 + uri.append("ddyName=").append(URLEncoder.encode(user == null ? "admin" : user.getUserName(), "UTF-8"));
  776 + uri.append("&checkTime=").append(URLEncoder.encode(fmt.print(System.currentTimeMillis()), "UTF-8"));
  777 + uri.append("&nbbm=").append(URLEncoder.encode(param.get("nbbm").toString(), "UTF-8"));
  778 + uri.append("&starttime=").append(URLEncoder.encode(fmt.print(Long.parseLong(param.get("ts").toString())), "UTF-8"));
  779 + url.append(uri);
  780 + con = (HttpURLConnection)new URL(url.toString()).openConnection();
  781 + con.setDoInput(true);
  782 + con.setRequestMethod("POST");
  783 + con.setConnectTimeout(5000);
  784 + con.setReadTimeout(5000);
  785 + con.setRequestProperty("keep-alive", "true");
  786 + con.setRequestProperty("accept", "*/*");
  787 + con.setRequestProperty("content-type", "application/x-www-form-urlencoded");
  788 + con.connect();
  789 +
  790 + if (con.getResponseCode() == 200) {
  791 + in = con.getInputStream();
  792 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  793 + IOUtils.copy(in, bout);
  794 + Map<String, Object> map = new ObjectMapper().readValue(bout.toByteArray(), Map.class);
  795 + System.out.println(map);
  796 + }
  797 + } catch (MalformedURLException e) {
  798 + // TODO Auto-generated catch block
  799 + e.printStackTrace();
  800 + } catch (IOException e) {
  801 + // TODO Auto-generated catch block
  802 + e.printStackTrace();
  803 + } finally {
  804 + if (con != null) {
  805 + con.disconnect();
  806 + }
  807 + }
  808 +
  809 + return res;
  810 + }
  811 +
  812 + @RequestMapping(value = "exportPlan", method = RequestMethod.GET)
  813 + public Map<String, Object> exportPlan(@RequestParam String date){
  814 + Map<String, Object> res = new HashMap<>();
  815 + DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
  816 + Connection conn = null;
  817 + PreparedStatement ps = null;
  818 + ResultSet rs = null;
  819 +
  820 + List<Map<String, Object>> list = new ArrayList<>();
  821 + 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'";
  822 + try{
  823 + conn = DBUtils_control.getConnection();
  824 + ps = conn.prepareStatement(sql);
  825 + ps.setString(1, date);
  826 + rs = ps.executeQuery();
  827 + ObjectMapper mapper = new ObjectMapper();
  828 +
  829 + while (rs.next()) {
  830 + SchedulePlan schedulePlan = new SchedulePlan();
  831 + schedulePlan.setXlName(rs.getString("xl_name"));
  832 + schedulePlan.setXlDir(rs.getInt("xl_dir"));
  833 + Date scheduleDate = rs.getDate("schedule_date");
  834 + schedulePlan.setScheduleDate(new DateTime(scheduleDate.getTime()).toString("yyyy-MM-dd"));
  835 + String fcsj = rs.getString("fcsj");
  836 + int bcsj = rs.getInt("bcsj");
  837 + DateTime fcsjDt = dateTimeFormatter.parseDateTime(schedulePlan.getScheduleDate() + " " + fcsj);
  838 + schedulePlan.setFcsj(fcsjDt.toString("HH:mm:00"));
  839 + DateTime ddsjDt = fcsjDt.plusMinutes(bcsj);
  840 + schedulePlan.setDdsj(ddsjDt.toString("HH:mm:00"));
  841 + schedulePlan.setSjdStart(fcsjDt.toString("HH:00:00"));
  842 + DateTime endDt = fcsjDt.plusHours(1);
  843 + schedulePlan.setSjdEnd(endDt.toString("HH:00:00"));
  844 + schedulePlan.setClZbh(rs.getString("cl_zbh"));
  845 + schedulePlan.setJsy(rs.getString("j_name"));
  846 + schedulePlan.setBcsj(bcsj);
  847 +
  848 + list.add(mapper.readValue(mapper.writeValueAsString(schedulePlan), HashMap.class));
  849 + }
  850 + List<Iterator<?>> iterators = new ArrayList<Iterator<?>>();
  851 + iterators.add(list.iterator());
  852 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  853 + String sourcePath = path + "mould/schedulePlan.xls";
  854 +
  855 + new ReportUtils().excelReplace(iterators, new Object[]{}, sourcePath, path + "export/" + date + "-花博会专线班次.xls");
  856 +
  857 + res.put("status", ResponseCode.SUCCESS);
  858 + res.put("msg", "成功");
  859 + } catch (Exception e) {
  860 + res.put("status", ResponseCode.ERROR);
  861 + res.put("msg", e.getMessage());
  862 + } finally {
  863 + DBUtils_control.close(rs, ps, conn);
  864 + }
  865 +
  866 + return res;
  867 + }
  868 +
  869 + public final static class SchedulePlan {
  870 + private String company = "浦东公司[46]";
  871 +
  872 + private String xlName = "";
  873 +
  874 + private int xlDir;
  875 +
  876 + private String xlDirStr = "";
  877 +
  878 + private String scheduleDate = "";
  879 +
  880 + private String sjdStart = "";
  881 +
  882 + private String sjdEnd = "";
  883 +
  884 + private String fcsj = "";
  885 +
  886 + private int bcsj;
  887 +
  888 + private String ddsj = "";
  889 +
  890 + private int yys = 25;
  891 +
  892 + private String clZbh = "";
  893 +
  894 + private String cph = "";
  895 +
  896 + private String color = "绿牌";
  897 +
  898 + private String jsy = "";
  899 +
  900 + private String jsydh = "";
  901 +
  902 + private int pj = 10;
  903 +
  904 + public String getCompany() {
  905 + return company;
  906 + }
  907 +
  908 + public void setCompany(String company) {
  909 + this.company = company;
  910 + }
  911 +
  912 + public String getXlName() {
  913 + return xlName;
  914 + }
  915 +
  916 + public void setXlName(String xlName) {
  917 + this.xlName = xlName;
  918 + }
  919 +
  920 + public int getXlDir() {
  921 + return xlDir;
  922 + }
  923 +
  924 + public void setXlDir(int xlDir) {
  925 + this.xlDir = xlDir;
  926 + }
  927 +
  928 + public String getXlDirStr() {
  929 + xlDirStr = "";
  930 + if (xlDir == 0) {
  931 + xlDirStr = "上行";
  932 + } else if (xlDir == 1) {
  933 + xlDirStr = "下行";
  934 + }
  935 + return xlDirStr;
  936 + }
  937 +
  938 + public void setXlDirStr(String xlDirStr) {
  939 + this.xlDirStr = xlDirStr;
  940 + }
  941 +
  942 + public String getScheduleDate() {
  943 + return scheduleDate;
  944 + }
  945 +
  946 + public void setScheduleDate(String scheduleDate) {
  947 + this.scheduleDate = scheduleDate;
  948 + }
  949 +
  950 + public String getSjdStart() {
  951 + return sjdStart;
  952 + }
  953 +
  954 + public void setSjdStart(String sjdStart) {
  955 + this.sjdStart = sjdStart;
  956 + }
  957 +
  958 + public String getSjdEnd() {
  959 + return sjdEnd;
  960 + }
  961 +
  962 + public void setSjdEnd(String sjdEnd) {
  963 + this.sjdEnd = sjdEnd;
  964 + }
  965 +
  966 + public String getFcsj() {
  967 + return fcsj;
  968 + }
  969 +
  970 + public void setFcsj(String fcsj) {
  971 + this.fcsj = fcsj;
  972 + }
  973 +
  974 + public int getBcsj() {
  975 + return bcsj;
  976 + }
  977 +
  978 + public void setBcsj(int bcsj) {
  979 + this.bcsj = bcsj;
  980 + }
  981 +
  982 + public String getDdsj() {
  983 + return ddsj;
  984 + }
  985 +
  986 + public void setDdsj(String ddsj) {
  987 + this.ddsj = ddsj;
  988 + }
  989 +
  990 + public int getYys() {
  991 + return yys;
  992 + }
  993 +
  994 + public void setYys(int yys) {
  995 + this.yys = yys;
  996 + }
  997 +
  998 + public String getClZbh() {
  999 + return clZbh;
  1000 + }
  1001 +
  1002 + public void setClZbh(String clZbh) {
  1003 + this.clZbh = clZbh;
  1004 + }
  1005 +
  1006 + public String getCph() {
  1007 + cph = BasicData.nbbmCompanyPlateMap.get(clZbh);
  1008 + if (cph == null) {
  1009 + cph = "";
  1010 + }
  1011 + return cph;
  1012 + }
  1013 +
  1014 + public void setCph(String cph) {
  1015 + this.cph = cph;
  1016 + }
  1017 +
  1018 + public String getColor() {
  1019 + return color;
  1020 + }
  1021 +
  1022 + public void setColor(String color) {
  1023 + this.color = color;
  1024 + }
  1025 +
  1026 + public String getJsy() {
  1027 + return jsy;
  1028 + }
  1029 +
  1030 + public void setJsy(String jsy) {
  1031 + this.jsy = jsy;
  1032 + }
  1033 +
  1034 + public String getJsydh() {
  1035 + return jsydh;
  1036 + }
  1037 +
  1038 + public void setJsydh(String jsydh) {
  1039 + this.jsydh = jsydh;
  1040 + }
  1041 +
  1042 + public int getPj() {
  1043 + return pj;
  1044 + }
  1045 +
  1046 + public void setPj(int pj) {
  1047 + this.pj = pj;
  1048 + }
  1049 + }
  1050 +}
... ...
src/main/java/com/bsth/controller/report/ReportController.java
... ... @@ -304,6 +304,12 @@ public class ReportController {
304 304 return service.userList(map);
305 305 }
306 306  
  307 + @RequestMapping(value="/countMileageSum")
  308 + public List<Map<String,Object>> countMileageSum(@RequestParam Map<String, Object> map){
  309 +
  310 + return service.countMileageSum(map);
  311 + }
  312 +
307 313 @RequestMapping(value="/countLineMileage")
308 314 public List<Map<String,Object>> countLineMileage(@RequestParam Map<String, Object> map){
309 315  
... ...
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
... ... @@ -889,6 +889,16 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
889 889 if (type != null && type.length() != 0 && type.equals("exportAll")) {
890 890 List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
891 891 Map<String, Map<String, Object>> tempMap = new HashMap<String, Map<String, Object>>();
  892 + List<Map<String, Object>> removeList = new ArrayList<Map<String, Object>>();
  893 + for(Map<String, Object> m : mapList){
  894 + if(m.get("gsName") != null && m.get("gsName").toString().trim().length() > 0
  895 + && m.get("gsName").toString().trim().contains("临港")){
  896 + removeList.add(m);
  897 + }
  898 + }
  899 + for(Map<String, Object> m : removeList){
  900 + mapList.remove(m);
  901 + }
892 902 for(Map<String, Object> m : mapList){
893 903 if(m.get("gsName") != null && m.get("gsName").toString().trim().length() > 0){
894 904 String gsName = m.get("gsName").toString().trim();
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -118,6 +118,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
118 118  
119 119 List<Map<String,Object>> statisticsDaily(String line, String date, String xlName, String type);
120 120  
  121 + List<Map<String,Object>> dispatchDailySum(String date, String nature, String type);
  122 +
121 123 List<Map<String,Object>> statisticsDailyTj(String gsdm,String fgsdm,String line, String date,String date2, String xlName, String type,String nature);
122 124  
123 125 //用于实时数据与统计数据合并查询
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -2952,6 +2952,189 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2952 2952 }
2953 2953 return map;
2954 2954 }
  2955 +
  2956 + @Override
  2957 + public List<Map<String, Object>> dispatchDailySum(String date, String nature, String type) {
  2958 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  2959 +
  2960 + List<Map<String, Object>> list = statisticsDailyTj("", "", "", date, date, "", "query", nature);
  2961 +
  2962 + Map<String, Map<String, Object>> keyMap = new HashMap<String, Map<String, Object>>();
  2963 + Map<String, Object> temp = new HashMap<String, Object>();
  2964 + temp.put("gsName", "杨高");temp.put("fgsName", "杨高分");temp.put("key", "05_5");
  2965 + resList.add(temp);keyMap.put("05_5", temp);
  2966 + temp = new HashMap<String, Object>();
  2967 + temp.put("gsName", "杨高");temp.put("fgsName", "金桥分");temp.put("key", "05_2");
  2968 + resList.add(temp);keyMap.put("05_2", temp);
  2969 + temp = new HashMap<String, Object>();
  2970 + temp.put("gsName", "杨高");temp.put("fgsName", "川沙分");temp.put("key", "05_1");
  2971 + resList.add(temp);keyMap.put("05_1", temp);
  2972 + temp = new HashMap<String, Object>();
  2973 + temp.put("gsName", "杨高");temp.put("fgsName", "周浦分");temp.put("key", "05_6");
  2974 + resList.add(temp);keyMap.put("05_6", temp);
  2975 + temp = new HashMap<String, Object>();
  2976 + temp.put("gsName", "杨高");temp.put("fgsName", "小计");temp.put("key", "05_sum");
  2977 + resList.add(temp);keyMap.put("05_sum", temp);
  2978 +
  2979 + temp = new HashMap<String, Object>();
  2980 + temp.put("gsName", "上南");temp.put("fgsName", "一分");temp.put("key", "55_4");
  2981 + resList.add(temp);keyMap.put("55_4", temp);
  2982 + temp = new HashMap<String, Object>();
  2983 + temp.put("gsName", "上南");temp.put("fgsName", "二分");temp.put("key", "55_1");
  2984 + resList.add(temp);keyMap.put("55_1", temp);
  2985 + temp = new HashMap<String, Object>();
  2986 + temp.put("gsName", "上南");temp.put("fgsName", "三分");temp.put("key", "55_2");
  2987 + resList.add(temp);keyMap.put("55_2", temp);
  2988 + temp = new HashMap<String, Object>();
  2989 + temp.put("gsName", "上南");temp.put("fgsName", "六分");temp.put("key", "55_3");
  2990 + resList.add(temp);keyMap.put("55_3", temp);
  2991 + temp = new HashMap<String, Object>();
  2992 + temp.put("gsName", "上南");temp.put("fgsName", "小计");temp.put("key", "55_sum");
  2993 + resList.add(temp);keyMap.put("55_sum", temp);
  2994 +
  2995 + temp = new HashMap<String, Object>();
  2996 + temp.put("gsName", "金高");temp.put("fgsName", "一分");temp.put("key", "22_5");
  2997 + resList.add(temp);keyMap.put("22_5", temp);
  2998 + temp = new HashMap<String, Object>();
  2999 + temp.put("gsName", "金高");temp.put("fgsName", "二分");temp.put("key", "22_2");
  3000 + resList.add(temp);keyMap.put("22_2", temp);
  3001 + temp = new HashMap<String, Object>();
  3002 + temp.put("gsName", "金高");temp.put("fgsName", "三分");temp.put("key", "22_3");
  3003 + resList.add(temp);keyMap.put("22_3", temp);
  3004 + temp = new HashMap<String, Object>();
  3005 + temp.put("gsName", "金高");temp.put("fgsName", "四分");temp.put("key", "22_1");
  3006 + resList.add(temp);keyMap.put("22_1", temp);
  3007 + temp = new HashMap<String, Object>();
  3008 + temp.put("gsName", "金高");temp.put("fgsName", "小计");temp.put("key", "22_sum");
  3009 + resList.add(temp);keyMap.put("22_sum", temp);
  3010 +
  3011 + temp = new HashMap<String, Object>();
  3012 + temp.put("gsName", "南汇");temp.put("fgsName", "一分");temp.put("key", "26_1");
  3013 + resList.add(temp);keyMap.put("26_1", temp);
  3014 + temp = new HashMap<String, Object>();
  3015 + temp.put("gsName", "南汇");temp.put("fgsName", "二分");temp.put("key", "26_2");
  3016 + resList.add(temp);keyMap.put("26_2", temp);
  3017 + temp = new HashMap<String, Object>();
  3018 + temp.put("gsName", "南汇");temp.put("fgsName", "三分");temp.put("key", "26_3");
  3019 + resList.add(temp);keyMap.put("26_3", temp);
  3020 + temp = new HashMap<String, Object>();
  3021 + temp.put("gsName", "南汇");temp.put("fgsName", "六分");temp.put("key", "26_6");
  3022 + resList.add(temp);keyMap.put("26_6", temp);
  3023 + temp = new HashMap<String, Object>();
  3024 + temp.put("gsName", "南汇");temp.put("fgsName", "小计");temp.put("key", "26_sum");
  3025 + resList.add(temp);keyMap.put("26_sum", temp);
  3026 +
  3027 + temp = new HashMap<String, Object>();
  3028 + temp.put("gsName", "浦交");temp.put("fgsName", " ");temp.put("key", "88");
  3029 + resList.add(temp);keyMap.put("88", temp);
  3030 +
  3031 + for(Map<String, Object> m : list){
  3032 + if(m.get("gsBm") != null && m.get("fgsBm") != null
  3033 + && m.get("gsBm").toString().trim().length() > 0
  3034 + && m.get("fgsBm").toString().trim().length() > 0){
  3035 + String gsBm = m.get("gsBm").toString().trim();
  3036 + String fgsBm = m.get("fgsBm").toString().trim();
  3037 + String key = gsBm + "_" + fgsBm;
  3038 + if(keyMap.containsKey(key)){
  3039 + Map<String, Object> t = keyMap.get(key);
  3040 + for(String s : m.keySet()){
  3041 + if("gsName,fgsName,key".contains(s)){
  3042 + continue;
  3043 + }
  3044 + try {
  3045 + if(t.containsKey(s)){
  3046 + t.put(s, new BigDecimal(t.get(s).toString()).add(new BigDecimal(m.get(s).toString())));
  3047 + } else {
  3048 + t.put(s, m.get(s).toString());
  3049 + }
  3050 + } catch (Exception e) {
  3051 + // TODO: handle exception
  3052 + continue;
  3053 + }
  3054 + }
  3055 + }
  3056 + }
  3057 + }
  3058 +
  3059 + for(Map<String, Object> m : resList){
  3060 + String key = m.get("key").toString();
  3061 + if(key.contains("_sum") || key.equals("88")){
  3062 + continue;
  3063 + }
  3064 +
  3065 + Map<String, Object> t = keyMap.get(key.split("_")[0] + "_sum");
  3066 + for(String s : m.keySet()){
  3067 + if("gsName,fgsName,key".contains(s)){
  3068 + continue;
  3069 + }
  3070 + try {
  3071 + if(t.containsKey(s)){
  3072 + t.put(s, new BigDecimal(t.get(s).toString()).add(new BigDecimal(m.get(s).toString())));
  3073 + } else {
  3074 + t.put(s, m.get(s).toString());
  3075 + }
  3076 + } catch (Exception e) {
  3077 + // TODO: handle exception
  3078 + continue;
  3079 + }
  3080 + }
  3081 +
  3082 + t = keyMap.get("88");
  3083 + for(String s : m.keySet()){
  3084 + if("gsName,fgsName,key".contains(s)){
  3085 + continue;
  3086 + }
  3087 + try {
  3088 + if(t.containsKey(s)){
  3089 + t.put(s, new BigDecimal(t.get(s).toString()).add(new BigDecimal(m.get(s).toString())));
  3090 + } else {
  3091 + t.put(s, m.get(s).toString());
  3092 + }
  3093 + } catch (Exception e) {
  3094 + // TODO: handle exception
  3095 + continue;
  3096 + }
  3097 + }
  3098 + }
  3099 +
  3100 + for(Map<String, Object> m : resList){
  3101 + try {
  3102 + m.put("ljzgl", new BigDecimal(m.get("ljgl").toString()).add(new BigDecimal(m.get("ljks").toString())));
  3103 + } catch (Exception e) {
  3104 + // TODO: handle exception
  3105 + m.put("ljzgl", "");
  3106 + continue;
  3107 + }
  3108 + }
  3109 +
  3110 + if (type != null && type.length() != 0 && type.equals("export")) {
  3111 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  3112 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  3113 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  3114 + Map<String, Object> m = new HashMap<String, Object>();
  3115 + m.put("date", date);
  3116 + ReportUtils ee = new ReportUtils();
  3117 + try {
  3118 + String dateTime = "";
  3119 +// if (date.equals(date2)) {
  3120 + dateTime = sdfSimple.format(sdfMonth.parse(date));
  3121 +// } else {
  3122 +// dateTime = sdfSimple.format(sdfMonth.parse(date))
  3123 +// + "-" + sdfSimple.format(sdfMonth.parse(date2));
  3124 +// }
  3125 + listI.add(resList.iterator());
  3126 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  3127 + ee.excelReplace(listI, new Object[]{m}, path + "mould/dispatchDailySum.xls",
  3128 + path + "export/" + dateTime + "-调度日报汇总表.xls");
  3129 + } catch (Exception e) {
  3130 + // TODO: handle exception
  3131 + //e.printStackTrace();
  3132 + logger.info("", e);
  3133 + }
  3134 + }
  3135 +
  3136 + return resList;
  3137 + }
2955 3138  
2956 3139 @Override
2957 3140 public List<Map<String, Object>> statisticsDailyTj(String gsdm, String fgsdm, String line, String date, String date2,
... ... @@ -3182,6 +3365,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3182 3365 if (type != null && type.length() != 0 && type.equals("exportAll")) {
3183 3366 List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
3184 3367 Map<String, Map<String, Object>> tempMap = new HashMap<String, Map<String, Object>>();
  3368 + List<Map<String, Object>> removeList = new ArrayList<Map<String, Object>>();
  3369 + for(Map<String, Object> m : lMap){
  3370 + if(m.get("gsName") != null && m.get("gsName").toString().trim().length() > 0
  3371 + && m.get("gsName").toString().trim().contains("临港")){
  3372 + removeList.add(m);
  3373 + }
  3374 + }
  3375 + for(Map<String, Object> m : removeList){
  3376 + lMap.remove(m);
  3377 + }
3185 3378 for(Map<String, Object> m : lMap){
3186 3379 if(m.get("gsName") != null && m.get("gsName").toString().trim().length() > 0){
3187 3380 String gsName = m.get("gsName").toString().trim();
... ...
src/main/java/com/bsth/service/report/ReportService.java
... ... @@ -49,6 +49,8 @@ public interface ReportService {
49 49  
50 50 List<Map<String, String>> userList(Map<String, Object> map);
51 51  
  52 + List<Map<String, Object>> countMileageSum(Map<String, Object> map);
  53 +
52 54 List<Map<String, Object>> countByList(Map<String, Object> map);
53 55 List<Map<String, Object>> countByList2(Map<String, Object> map);
54 56  
... ...
src/main/java/com/bsth/service/report/impl/CalcSheetServiceImpl.java
... ... @@ -1193,6 +1193,16 @@ public class CalcSheetServiceImpl extends BaseServiceImpl&lt;CalcSheet, Integer&gt; im
1193 1193 if (type.equals("exportAll")) {
1194 1194 List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
1195 1195 Map<String, Map<String, Object>> tempKeyMap = new HashMap<String, Map<String, Object>>();
  1196 + List<Map<String, Object>> removeList = new ArrayList<Map<String, Object>>();
  1197 + for(Map<String, Object> m : list){
  1198 + if(m.get("gsName") != null && m.get("gsName").toString().trim().length() > 0
  1199 + && m.get("gsName").toString().trim().contains("临港")){
  1200 + removeList.add(m);
  1201 + }
  1202 + }
  1203 + for(Map<String, Object> m : removeList){
  1204 + list.remove(m);
  1205 + }
1196 1206 for(Map<String, Object> m : list){
1197 1207 if(m.get("gsName")!=null && m.get("gsName").toString().trim().length() > 0){
1198 1208 Map<String, Object> temp = new HashMap<String, Object>();
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -17,6 +17,7 @@ import com.bsth.entity.sys.Interval;
17 17 import com.bsth.repository.LineRepository;
18 18 import com.bsth.repository.StationRouteRepository;
19 19 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  20 +import com.bsth.service.LineService;
20 21 import com.bsth.service.calc.CalcWaybillService;
21 22 import com.bsth.service.report.CulateMileageService;
22 23 import com.bsth.service.report.ReportService;
... ... @@ -38,6 +39,7 @@ import org.springframework.jdbc.core.RowMapper;
38 39 import org.springframework.stereotype.Service;
39 40  
40 41 import java.io.FileOutputStream;
  42 +import java.math.BigDecimal;
41 43 import java.sql.Connection;
42 44 import java.sql.PreparedStatement;
43 45 import java.sql.ResultSet;
... ... @@ -72,6 +74,8 @@ public class ReportServiceImpl implements ReportService{
72 74 @Autowired
73 75 CulateMileageService culateService;
74 76 @Autowired
  77 + LineService lineService;
  78 + @Autowired
75 79 LineRepository lineRepository;
76 80 @Autowired
77 81 StationRouteRepository stationRouteRepository;
... ... @@ -2509,6 +2513,197 @@ public class ReportServiceImpl implements ReportService{
2509 2513 List<StationRoute> listStation= stationRouteRepository.findByLine(line,zd);
2510 2514 return listStation;
2511 2515 }
  2516 +
  2517 + @Override
  2518 + public List<Map<String, Object>> countMileageSum(Map<String, Object> map) {
  2519 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  2520 +
  2521 + String date="";
  2522 + if(map.get("date")!=null){
  2523 + date=map.get("date").toString();
  2524 + }
  2525 + String nature="0";
  2526 + if(map.get("nature")!=null){
  2527 + nature=map.get("nature").toString();
  2528 + }
  2529 + String type="";
  2530 + if(map.get("type")!=null){
  2531 + type=map.get("type").toString();
  2532 + }
  2533 + Map<String, Object> param = new HashMap<String, Object>();
  2534 + param.put("date", date);
  2535 + param.put("date2", date);
  2536 + param.put("nature", nature);
  2537 + param.put("type", "query");
  2538 + List<Map<String, Object>> list = countByList(param);
  2539 +
  2540 + Map<String, Map<String, Object>> keyMap = new HashMap<String, Map<String, Object>>();
  2541 + Map<String, Object> temp = new HashMap<String, Object>();
  2542 + temp.put("gsName", "杨高");temp.put("fgsName", "杨高分");temp.put("key", "05_5");
  2543 + resList.add(temp);keyMap.put("05_5", temp);
  2544 + temp = new HashMap<String, Object>();
  2545 + temp.put("gsName", "杨高");temp.put("fgsName", "金桥分");temp.put("key", "05_2");
  2546 + resList.add(temp);keyMap.put("05_2", temp);
  2547 + temp = new HashMap<String, Object>();
  2548 + temp.put("gsName", "杨高");temp.put("fgsName", "川沙分");temp.put("key", "05_1");
  2549 + resList.add(temp);keyMap.put("05_1", temp);
  2550 + temp = new HashMap<String, Object>();
  2551 + temp.put("gsName", "杨高");temp.put("fgsName", "周浦分");temp.put("key", "05_6");
  2552 + resList.add(temp);keyMap.put("05_6", temp);
  2553 + temp = new HashMap<String, Object>();
  2554 + temp.put("gsName", "杨高");temp.put("fgsName", "小计");temp.put("key", "05_sum");
  2555 + resList.add(temp);keyMap.put("05_sum", temp);
  2556 +
  2557 + temp = new HashMap<String, Object>();
  2558 + temp.put("gsName", "上南");temp.put("fgsName", "一分");temp.put("key", "55_4");
  2559 + resList.add(temp);keyMap.put("55_4", temp);
  2560 + temp = new HashMap<String, Object>();
  2561 + temp.put("gsName", "上南");temp.put("fgsName", "二分");temp.put("key", "55_1");
  2562 + resList.add(temp);keyMap.put("55_1", temp);
  2563 + temp = new HashMap<String, Object>();
  2564 + temp.put("gsName", "上南");temp.put("fgsName", "三分");temp.put("key", "55_2");
  2565 + resList.add(temp);keyMap.put("55_2", temp);
  2566 + temp = new HashMap<String, Object>();
  2567 + temp.put("gsName", "上南");temp.put("fgsName", "六分");temp.put("key", "55_3");
  2568 + resList.add(temp);keyMap.put("55_3", temp);
  2569 + temp = new HashMap<String, Object>();
  2570 + temp.put("gsName", "上南");temp.put("fgsName", "小计");temp.put("key", "55_sum");
  2571 + resList.add(temp);keyMap.put("55_sum", temp);
  2572 +
  2573 + temp = new HashMap<String, Object>();
  2574 + temp.put("gsName", "金高");temp.put("fgsName", "一分");temp.put("key", "22_5");
  2575 + resList.add(temp);keyMap.put("22_5", temp);
  2576 + temp = new HashMap<String, Object>();
  2577 + temp.put("gsName", "金高");temp.put("fgsName", "二分");temp.put("key", "22_2");
  2578 + resList.add(temp);keyMap.put("22_2", temp);
  2579 + temp = new HashMap<String, Object>();
  2580 + temp.put("gsName", "金高");temp.put("fgsName", "三分");temp.put("key", "22_3");
  2581 + resList.add(temp);keyMap.put("22_3", temp);
  2582 + temp = new HashMap<String, Object>();
  2583 + temp.put("gsName", "金高");temp.put("fgsName", "四分");temp.put("key", "22_1");
  2584 + resList.add(temp);keyMap.put("22_1", temp);
  2585 + temp = new HashMap<String, Object>();
  2586 + temp.put("gsName", "金高");temp.put("fgsName", "小计");temp.put("key", "22_sum");
  2587 + resList.add(temp);keyMap.put("22_sum", temp);
  2588 +
  2589 + temp = new HashMap<String, Object>();
  2590 + temp.put("gsName", "南汇");temp.put("fgsName", "一分");temp.put("key", "26_1");
  2591 + resList.add(temp);keyMap.put("26_1", temp);
  2592 + temp = new HashMap<String, Object>();
  2593 + temp.put("gsName", "南汇");temp.put("fgsName", "二分");temp.put("key", "26_2");
  2594 + resList.add(temp);keyMap.put("26_2", temp);
  2595 + temp = new HashMap<String, Object>();
  2596 + temp.put("gsName", "南汇");temp.put("fgsName", "三分");temp.put("key", "26_3");
  2597 + resList.add(temp);keyMap.put("26_3", temp);
  2598 + temp = new HashMap<String, Object>();
  2599 + temp.put("gsName", "南汇");temp.put("fgsName", "六分");temp.put("key", "26_6");
  2600 + resList.add(temp);keyMap.put("26_6", temp);
  2601 + temp = new HashMap<String, Object>();
  2602 + temp.put("gsName", "南汇");temp.put("fgsName", "小计");temp.put("key", "26_sum");
  2603 + resList.add(temp);keyMap.put("26_sum", temp);
  2604 +
  2605 + temp = new HashMap<String, Object>();
  2606 + temp.put("gsName", "浦交");temp.put("fgsName", " ");temp.put("key", "88");
  2607 + resList.add(temp);keyMap.put("88", temp);
  2608 +
  2609 + for(Map<String, Object> m : list){
  2610 + if(m.get("gsBm") != null && m.get("fgsBm") != null
  2611 + && m.get("gsBm").toString().trim().length() > 0
  2612 + && m.get("fgsBm").toString().trim().length() > 0){
  2613 + String gsBm = m.get("gsBm").toString().trim();
  2614 + String fgsBm = m.get("fgsBm").toString().trim();
  2615 + String key = gsBm + "_" + fgsBm;
  2616 + if(keyMap.containsKey(key)){
  2617 + Map<String, Object> t = keyMap.get(key);
  2618 + for(String s : m.keySet()){
  2619 + if("gsName,fgsName,key".contains(s)){
  2620 + continue;
  2621 + }
  2622 + try {
  2623 + if(t.containsKey(s)){
  2624 + t.put(s, new BigDecimal(t.get(s).toString()).add(new BigDecimal(m.get(s).toString())));
  2625 + } else {
  2626 + t.put(s, m.get(s).toString());
  2627 + }
  2628 + } catch (Exception e) {
  2629 + // TODO: handle exception
  2630 + continue;
  2631 + }
  2632 + }
  2633 + }
  2634 + }
  2635 + }
  2636 +
  2637 + for(Map<String, Object> m : resList){
  2638 + String key = m.get("key").toString();
  2639 + if(key.contains("_sum") || key.equals("88")){
  2640 + continue;
  2641 + }
  2642 +
  2643 + Map<String, Object> t = keyMap.get(key.split("_")[0] + "_sum");
  2644 + for(String s : m.keySet()){
  2645 + if("gsName,fgsName,key".contains(s)){
  2646 + continue;
  2647 + }
  2648 + try {
  2649 + if(t.containsKey(s)){
  2650 + t.put(s, new BigDecimal(t.get(s).toString()).add(new BigDecimal(m.get(s).toString())));
  2651 + } else {
  2652 + t.put(s, m.get(s).toString());
  2653 + }
  2654 + } catch (Exception e) {
  2655 + // TODO: handle exception
  2656 + continue;
  2657 + }
  2658 + }
  2659 +
  2660 + t = keyMap.get("88");
  2661 + for(String s : m.keySet()){
  2662 + if("gsName,fgsName,key".contains(s)){
  2663 + continue;
  2664 + }
  2665 + try {
  2666 + if(t.containsKey(s)){
  2667 + t.put(s, new BigDecimal(t.get(s).toString()).add(new BigDecimal(m.get(s).toString())));
  2668 + } else {
  2669 + t.put(s, m.get(s).toString());
  2670 + }
  2671 + } catch (Exception e) {
  2672 + // TODO: handle exception
  2673 + continue;
  2674 + }
  2675 + }
  2676 + }
  2677 +
  2678 + if(type.equals("export")){
  2679 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  2680 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  2681 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  2682 + Map<String, Object> m = new HashMap<String, Object>();
  2683 + m.put("date", date);
  2684 + String xls="countMileageSum.xls";
  2685 + ReportUtils ee = new ReportUtils();
  2686 + try {
  2687 + String dateTime = "";
  2688 +// if(date.equals(date2)){
  2689 + dateTime = sdfSimple.format(sdfMonth.parse(date));
  2690 +// } else {
  2691 +// dateTime = sdfSimple.format(sdfMonth.parse(date))
  2692 +// +"-"+sdfSimple.format(sdfMonth.parse(date2));
  2693 +// }
  2694 + listI.add(resList.iterator());
  2695 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  2696 + ee.excelReplace(listI, new Object[]{m}, path + "mould/"+xls,
  2697 + path + "export/"+dateTime+"-审计公里汇总表.xls");
  2698 + } catch (Exception e) {
  2699 + // TODO: handle exception
  2700 + e.printStackTrace();
  2701 + }
  2702 + }
  2703 +
  2704 + return resList;
  2705 + }
  2706 +
2512 2707 @Override
2513 2708 public List<Map<String, Object>> countByList(Map<String, Object> map) {
2514 2709 // TODO Auto-generated method stub
... ... @@ -2538,6 +2733,10 @@ public class ReportServiceImpl implements ReportService{
2538 2733 if(map.get("xlName")!=null){
2539 2734 xlName=map.get("xlName").toString();
2540 2735 }
  2736 + String nature="0";
  2737 + if(map.get("nature")!=null){
  2738 + nature=map.get("nature").toString();
  2739 + }
2541 2740 String type="";
2542 2741 if(map.get("type")!=null){
2543 2742 type=map.get("type").toString();
... ... @@ -2545,7 +2744,9 @@ public class ReportServiceImpl implements ReportService{
2545 2744 //所有班次信息
2546 2745 List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
2547 2746 line =line.trim();
2548   - if(line.equals("")){
  2747 + if(gsdm.equals("") && fgsdm.equals("") && line.equals("")){
  2748 + list = scheduleRealInfoRepository.scheduleByDateAndLineTj3(date, date2);
  2749 + } else if(line.equals("")){
2549 2750 //查询所有线路
2550 2751 list = scheduleRealInfoRepository.scheduleByDateAndLineTj(line, date,date2,gsdm,fgsdm);
2551 2752 }else{
... ... @@ -2553,20 +2754,28 @@ public class ReportServiceImpl implements ReportService{
2553 2754 list = scheduleRealInfoRepository.scheduleByDateAndLineTj2(line, date,date2);
2554 2755 }
2555 2756  
  2757 + Map<String, Boolean> lineMap = lineService.lineNature();
  2758 +
  2759 + List<String> objList = new ArrayList<String>();
2556 2760 String sql="select r.xl_bm"
2557 2761 + " from bsth_c_s_sp_info_real r where"
2558   - + " r.schedule_date_str BETWEEN '"+date+"' and '"+date2+"'";
2559   -
2560   -
2561   - if(line.equals("")){
2562   - sql +="and r.gs_bm='"+gsdm+"' "
2563   - + " and r.fgs_bm='"+fgsdm+"'";
  2762 + + " r.schedule_date_str BETWEEN ? and ?";
  2763 + objList.add(date);
  2764 + objList.add(date2);
  2765 + if("".equals(gsdm.trim()) && "".equals(fgsdm.trim()) && "".equals(line.trim())){
  2766 +
  2767 + } else if(line.equals("")){
  2768 + sql +=" and r.gs_bm=?"
  2769 + + " and r.fgs_bm like CONCAT('%',?,'%')";
  2770 + objList.add(gsdm);
  2771 + objList.add(fgsdm);
2564 2772 }else{
2565   - sql += " and r.xl_bm = '"+line+"'";
  2773 + sql += " and r.xl_bm = ?";
  2774 + objList.add(line);
2566 2775 }
2567 2776 sql += " group by r.xl_bm";
2568 2777  
2569   - List<String> listLine=jdbcTemplate.query(sql, new RowMapper<String>() {
  2778 + List<String> listLine=jdbcTemplate.query(sql, objList.toArray(), new RowMapper<String>() {
2570 2779 @Override
2571 2780 public String mapRow(ResultSet arg0, int arg1) throws SQLException {
2572 2781 String ve = arg0.getString("xl_bm");
... ... @@ -2576,6 +2785,18 @@ public class ReportServiceImpl implements ReportService{
2576 2785 for (int i = 0; i < listLine.size(); i++) {
2577 2786 List<ScheduleRealInfo> lists = new ArrayList<ScheduleRealInfo>();
2578 2787 String lineStr=listLine.get(i);
  2788 + if("0".equals(nature)){ // 全部
  2789 +
  2790 + } else if("1".equals(nature)){ // 营运
  2791 + if(!(lineMap.containsKey(lineStr) && lineMap.get(lineStr))){
  2792 + continue;
  2793 + }
  2794 + } else { // 非营运
  2795 + if(lineMap.containsKey(lineStr) && lineMap.get(lineStr)){
  2796 + continue;
  2797 + }
  2798 + }
  2799 +
2579 2800 for (int j = 0; j < list.size(); j++) {
2580 2801 ScheduleRealInfo s=list.get(j);
2581 2802 if(s.getXlBm().equals(lineStr)){
... ... @@ -2756,6 +2977,8 @@ public class ReportServiceImpl implements ReportService{
2756 2977 map.put("fgs", "");
2757 2978 }else{
2758 2979 map.put("xlName", list.get(0).getXlName());
  2980 + map.put("gsBm", list.get(0).getGsBm());
  2981 + map.put("fgsBm", list.get(0).getFgsBm());
2759 2982 map.put("gs", list.get(0).getGsName());
2760 2983 map.put("fgs", list.get(0).getFgsName());
2761 2984 map.put("jGh", list.get(0).getjGh());
... ...
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
... ... @@ -1973,6 +1973,16 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1973 1973 } else if(type.equals("exportAll")){
1974 1974 List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
1975 1975 Map<String, Map<String, Object>> tempKeyMap = new HashMap<String, Map<String, Object>>();
  1976 + List<Map<String, Object>> removeList = new ArrayList<Map<String, Object>>();
  1977 + for(Map<String, Object> m : resList){
  1978 + if(m.get("gsName") != null && m.get("gsName").toString().trim().length() > 0
  1979 + && m.get("gsName").toString().trim().contains("临港")){
  1980 + removeList.add(m);
  1981 + }
  1982 + }
  1983 + for(Map<String, Object> m : removeList){
  1984 + resList.remove(m);
  1985 + }
1976 1986 for(Map<String, Object> m : resList){
1977 1987 if(m.get("company")!=null && m.get("company").toString().trim().length() > 0){
1978 1988 Map<String, Object> temp = new HashMap<String, Object>();
... ...
src/main/resources/static/pages/forms/mould/countMileageSum.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/mould/dispatchDailySum.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/statement/dispatchDailySum.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +
  18 + #forms > thead > tr> td >span{
  19 + width: 5px;
  20 + word-wrap: break-word;
  21 + letter-spacing: 20px;
  22 + }
  23 +
  24 + #forms > thead > tr> td >label{
  25 + word-break: keep-all;white-space:nowrap;
  26 + }
  27 +</style>
  28 +
  29 +<div class="page-head">
  30 + <div class="page-title">
  31 + <h1>调度日报汇总表</h1>
  32 + </div>
  33 +</div>
  34 +
  35 +<!-- <div class="row"> -->
  36 + <div class="col-md-12 portlet light porttlet-fit bordered" style="height:calc(100% - 56px)">
  37 +<!-- <div> -->
  38 + <div class="portlet-title">
  39 + <form class="form-inline" action="">
  40 + <div style="display: inline-block;">
  41 + <span class="item-label" style="width: 80px;">线路性质: </span>
  42 + <select
  43 + class="form-control" name="nature" id="nature"
  44 + style="width: 180px;">
  45 + <option value="0">全部线路</option>
  46 + <option value="1" selected="selected">营运线路</option>
  47 + <option value="2">非营运线路</option>
  48 + </select>
  49 + </div>
  50 + <div style="display: inline-block;margin-left: 15px;">
  51 + <span class="item-label" style="width: 80px;">营运日期: </span>
  52 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  53 + </div>
  54 + <div class="form-group">
  55 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  56 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  57 + </div>
  58 + </form>
  59 + </div>
  60 + <div class="portlet-body" id="tjrbBody" style="overflow:auto;height: calc(100% - 80px)">
  61 + <div class="table-container" style="margin-top: 10px;min-width: 906px">
  62 + <label>日期:<span id="rqxs"></span>&nbsp;&nbsp;&nbsp;&nbsp;早高峰:6:31~8:30&nbsp;&nbsp;&nbsp;&nbsp;晚高峰:16:01~18:00</label>
  63 + <table class="table table-bordered table-hover table-checkable" id="forms">
  64 + <thead>
  65 + <tr>
  66 + <th colspan="45"><label id="tjrq"></label> 调度日报汇总表</th>
  67 + </tr>
  68 + <tr>
  69 + <td rowspan="3"><span >公司</span></td>
  70 + <td rowspan="3"><span >分公司</span></td>
  71 + <td colspan="21">全日营运里程(公里)</td>
  72 + <td colspan="15">全日营运班次</td>
  73 + <td colspan="9">大间隔情况</td>
  74 + </tr>
  75 + <tr>
  76 + <td rowspan="2"><label>计划总<br/>公里</label></td>
  77 + <td rowspan="2"><label>计划营</label><label>运公里</label></td>
  78 + <td rowspan="2"><label>计划空</label><label>驶公里</label></td>
  79 + <td rowspan="2"><label>实际</label><label>总公里</label></td>
  80 + <td rowspan="2"><label>实际营</label><label>运公里</label></td>
  81 + <td rowspan="2"><label>实际空</label><label>驶公里</label></td>
  82 + <td rowspan="2"><span>少驶班次</span></td>
  83 + <td rowspan="2"><span>少驶公里</span></td>
  84 + <td colspan="11">少驶原因(公里)</td>
  85 + <td colspan="2">临加公里</td>
  86 + <td colspan="3">计划班次</td>
  87 + <td colspan="3">实际班次</td>
  88 + <td colspan="3">临加班次</td>
  89 + <td colspan="3">放站班次</td>
  90 + <td colspan="3">调头班次</td>
  91 + <td colspan="3">发生次数</td>
  92 + <td rowspan="2">最大间隔时间(分)</td>
  93 + <td rowspan="2">原因</td>
  94 + </tr>
  95 + <tr>
  96 + <td><span>路阻</span></td>
  97 + <td><span>吊慢</span></td>
  98 + <td><span>故障</span></td>
  99 + <td><span>纠纷</span></td>
  100 + <td><span>肇事</span></td>
  101 + <td><span>缺人</span></td>
  102 + <td><span>缺车</span></td>
  103 + <td><span>客稀</span></td>
  104 + <td><span>气候</span></td>
  105 + <td><span>援外</span></td>
  106 + <td><span>其他</span></td>
  107 + <td><span>营运</span></td>
  108 + <td><span>空驶</span></td>
  109 + <td><span>全日</span></td>
  110 + <td><span>早高峰</span></td>
  111 + <td><span>晚高峰</span></td>
  112 + <td><span>全日</span></td>
  113 + <td><span>早高峰</span></td>
  114 + <td><span>晚高峰</span></td>
  115 + <td><span>全日</span></td>
  116 + <td><span>早高峰</span></td>
  117 + <td><span>晚高峰</span></td>
  118 + <td><span>全日</span></td>
  119 + <td><span>早高峰</span></td>
  120 + <td><span>晚高峰</span></td>
  121 + <td><span>全日</span></td>
  122 + <td><span>早高峰</span></td>
  123 + <td><span>晚高峰</span></td>
  124 + <td><span>全日</span></td>
  125 + <td><span>早高峰</span></td>
  126 + <td><span>晚高峰</span></td>
  127 + </tr>
  128 + </thead>
  129 + <tbody class="dispatch_daily_sum">
  130 +
  131 + </tbody>
  132 + </table>
  133 + </div>
  134 + </div>
  135 + </div>
  136 +
  137 +<script>
  138 + $(function(){
  139 +// $('#export').attr('disabled', "true");
  140 +
  141 + // 关闭左侧栏
  142 + if (!$('body').hasClass('page-sidebar-closed'))
  143 + $('.menu-toggler.sidebar-toggler').click();
  144 + var d = new Date();
  145 + var year = d.getFullYear();
  146 + var month = d.getMonth() + 1;
  147 + var day = d.getDate();
  148 + if(month < 10)
  149 + month = "0" + month;
  150 + if(day < 10)
  151 + day = "0" + day;
  152 +
  153 + var dateTime=year + "-" + month + "-" + day;
  154 + $("#date").val(dateTime);
  155 +// $("#date2").val(dateTime);
  156 + $("#date").datetimepicker({
  157 + format : 'YYYY-MM-DD',
  158 + locale : 'zh-cn',
  159 + maxDate : dateTime
  160 + });
  161 +
  162 + var date = "";
  163 + var nature="";
  164 + var time1="";
  165 + var time2="";
  166 + $("#query").on("click",function(){
  167 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  168 + layer.msg("请选择日期!");
  169 + return;
  170 + }
  171 + date = $("#date").val();
  172 + nature=$("#nature").val();
  173 +// time1 = Date.parse(new Date(date));
  174 +// time2 = Date.parse(new Date(date2));
  175 +// if(date==null || date =="" ||date2==null || date2 ==""){
  176 +// layer.msg('请选择时间段.');
  177 +// }else if(time2<time1){
  178 +// layer.msg('结束日期不能小于开始日期.');
  179 +// }else{
  180 +// if((time2-time1)>2678400000){
  181 +// layer.msg('查询超过一个月请点击【统计查询】.');
  182 +// }else{
  183 + $("#tjrq").html(date);
  184 + $("#rqxs").html(date);
  185 + var params = {};
  186 + params['date'] = date;
  187 + params['nature'] = nature;
  188 + params['type'] = "query";
  189 + var i = layer.load(2);
  190 + $get('/realSchedule/dispatchDailySum',params,function(result){
  191 + // 把数据填充到模版中
  192 + var tbodyHtml = template('dispatch_daily_sum',{list:result});
  193 + // 把渲染好的模版html文本追加到表格中
  194 + $('#forms .dispatch_daily_sum').html(tbodyHtml);
  195 + layer.close(i);
  196 +
  197 + if(result.length == 0){
  198 + $("#export").attr('disabled',"true");
  199 + }else{
  200 + $("#export").removeAttr("disabled");
  201 + }
  202 + });
  203 +// }
  204 +// }
  205 + });
  206 +
  207 +// $("#tjrbBody").height($(window).height()-100);
  208 + $("#export").on("click",function(){
  209 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  210 + layer.msg("请选择时间!");
  211 + return;
  212 + }
  213 + date = $("#date").val();
  214 + nature=$("#nature").val();
  215 + var params = {};
  216 + params['date'] = date;
  217 + params['nature'] = nature;
  218 + params['type'] = "export";
  219 +// if((time2-time1)>2678400000){
  220 +// layer.msg('查询超过一个月请点击【统计查询】.');
  221 +// }else{
  222 + var i = layer.load(2);
  223 + $get('/realSchedule/dispatchDailySum',params,function(result){
  224 + var dateTime = "";
  225 +// if(date == date2){
  226 + dateTime = moment(date).format("YYYYMMDD");
  227 +// } else {
  228 +// dateTime = moment(date).format("YYYYMMDD")
  229 +// +"-"+moment(date2).format("YYYYMMDD");
  230 +// }
  231 + window.open("/downloadFile/download?fileName="
  232 + +dateTime+"-调度日报汇总表");
  233 + layer.close(i);
  234 + });
  235 +// }
  236 + });
  237 +
  238 +
  239 + });
  240 +</script>
  241 +<script type="text/html" id="dispatch_daily_sum">
  242 + {{each list as obj i}}
  243 + <tr {{if obj.zt==1}}style='color: red'{{/if}}>
  244 + <td>{{obj.gsName}}</td>
  245 + <td>{{obj.fgsName}}</td>
  246 + <td>{{obj.jhzlc}}</td>
  247 + <td>{{obj.jhlc}}</td>
  248 + <td>{{obj.jcclc}}</td>
  249 + <td>{{obj.sjzgl}}</td>
  250 + <td>{{obj.sjgl}}</td>
  251 + <td>{{obj.sjksgl}}</td>
  252 + <td>{{obj.ssbc}}</td>
  253 + <td>{{obj.ssgl}}</td>
  254 + <td>{{obj.ssgl_lz}}</td>
  255 + <td>{{obj.ssgl_dm}}</td>
  256 + <td>{{obj.ssgl_gz}}</td>
  257 + <td>{{obj.ssgl_jf}}</td>
  258 + <td>{{obj.ssgl_zs}}</td>
  259 + <td>{{obj.ssgl_qr}}</td>
  260 + <td>{{obj.ssgl_qc}}</td>
  261 + <td>{{obj.ssgl_kx}}</td>
  262 + <td>{{obj.ssgl_qh}}</td>
  263 + <td>{{obj.ssgl_yw}}</td>
  264 + <td>{{obj.ssgl_other}}</td>
  265 + <td>{{obj.ljgl}}</td>
  266 + <td>{{obj.ljks}}</td>
  267 + <td>{{obj.jhbc}}</td>
  268 + <td>{{obj.jhbc_m}}</td>
  269 + <td>{{obj.jhbc_a}}</td>
  270 + <td>{{obj.sjbc}}</td>
  271 + <td>{{obj.sjbc_m}}</td>
  272 + <td>{{obj.sjbc_a}}</td>
  273 + <td>{{obj.ljbc}}</td>
  274 + <td>{{obj.ljbc_m}}</td>
  275 + <td>{{obj.ljbc_a}}</td>
  276 + <td>{{obj.fzbc}}</td>
  277 + <td>{{obj.fzbc_m}}</td>
  278 + <td>{{obj.fzbc_a}}</td>
  279 + <td>{{obj.dtbc}}</td>
  280 + <td>{{obj.dtbc_m}}</td>
  281 + <td>{{obj.dtbc_a}}</td>
  282 + <td>{{obj.djg}}</td>
  283 + <td>{{obj.djg_m}}</td>
  284 + <td>{{obj.djg_a}}</td>
  285 + <td>{{obj.djg_time}}</td>
  286 + <td>&nbsp;</td>
  287 + </tr>
  288 + {{/each}}
  289 + {{if list.length == 0}}
  290 + <tr>
  291 + <td colspan="44"><h6 class="muted">没有找到相关数据</h6></td>
  292 + </tr>
  293 + {{/if}}
  294 +</script>
0 295 \ No newline at end of file
... ...
src/main/resources/static/pages/report/countMileage/countLine/countMileageSum.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +
  18 + #forms > thead > tr> td >span{
  19 + width: 5px;
  20 + word-wrap: break-word;
  21 + letter-spacing: 20px;
  22 + }
  23 +
  24 + #forms > thead > tr> td >label{
  25 + word-break: keep-all;white-space:nowrap;
  26 + }
  27 +</style>
  28 +
  29 +<div class="page-head">
  30 + <div class="page-title">
  31 + <h1>审计公里汇总表</h1>
  32 + </div>
  33 +</div>
  34 +
  35 +<div class="row">
  36 + <div class="col-md-12">
  37 + <div class="portlet light porttlet-fit bordered">
  38 + <div class="portlet-title">
  39 + <form class="form-inline" action="">
  40 + <div style="display: inline-block;">
  41 + <span class="item-label" style="width: 80px;">线路性质: </span>
  42 + <select
  43 + class="form-control" name="nature" id="nature"
  44 + style="width: 180px;">
  45 + <option value="0">全部线路</option>
  46 + <option value="1" selected="selected">营运线路</option>
  47 + <option value="2">非营运线路</option>
  48 + </select>
  49 + </div>
  50 + <div style="display: inline-block;margin-left: 15px;">
  51 + <span class="item-label" style="width: 80px;">营运日期: </span>
  52 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  53 + </div>
  54 + <div class="form-group">
  55 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  56 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  57 + </div>
  58 + </form>
  59 + </div>
  60 + <div class="portlet-body">
  61 + <div class="table-container" id="countLine" style="margin-top: 10px;overflow:auto;min-width: 906px">
  62 + <table class="table table-bordered table-hover table-checkable" id="forms">
  63 + <thead>
  64 + <tr>
  65 + <th colspan="30"><label id="datetodate"></label> 审计公里汇总表</th>
  66 + </tr>
  67 + <tr>
  68 + <td rowspan="2"><span>公司</span></td>
  69 + <td rowspan="2"><span>分公司</span></td>
  70 + <td rowspan="2"><label>计划</label><label>总公里</label></td>
  71 + <td rowspan="2"><label>计划营</label><label>运公里</label></td>
  72 + <td rowspan="2"><label>计划空</label><label>驶公里</label></td>
  73 + <td rowspan="2"><label>实际</label><label>总公里</label></td>
  74 + <td colspan="2"><label>实际营</label><label>运公里</label></td>
  75 + <td colspan="6"><label>实际空</label><label>驶公里</label></td>
  76 + <td rowspan="2"><label>少驶营</label><label>运里程</label></td>
  77 + <td colspan="11">少驶原因(公里)</td>
  78 + <td colspan="3">临加公里</td>
  79 + </tr>
  80 + <tr>
  81 + <td><label>计划内</label><label>营运</label><label>里程</label></td>
  82 + <td><label>临时性</label><label>多样化</label><label>调度营</label><label>运里程</label></td>
  83 + <td><label>计划内</label><label>进出场</label><label>空驶</label></td>
  84 + <td><label>计划外</label><label>进出场</label><label>空驶</label></td>
  85 + <td><label>故障</label><label>进出场</label><label>空驶</label></td>
  86 + <td><label>肇事</label><label>进出场</label><label>空驶</label></td>
  87 + <td><label>纠纷</label><label>进出场</label><label>空驶</label></td>
  88 + <td><label>空放 </label><label>空驶</label></td>
  89 + <td><span>路阻</span></td>
  90 + <td><span>吊慢</span></td>
  91 + <td><span>故障</span></td>
  92 + <td><span>纠纷</span></td>
  93 + <td><span>肇事</span></td>
  94 + <td><span>缺人</span></td>
  95 + <td><span>缺车</span></td>
  96 + <td><span>客稀</span></td>
  97 + <td><span>气候</span></td>
  98 + <td><span>援外</span></td>
  99 + <td><span>其他</span></td>
  100 + <td><label>临加营</label><label>运公里</label></td>
  101 + <td><label>临加进出</label><label>场空驶</label></td>
  102 + <td><label>临加</label><label>空放</label><label>空驶</label></td>
  103 + </tr>
  104 +
  105 + </thead>
  106 + <tbody class="count_mileage_sum">
  107 +
  108 + </tbody>
  109 + </table>
  110 + </div>
  111 + </div>
  112 + </div>
  113 + </div>
  114 +</div>
  115 +
  116 +<script>
  117 + $(function(){
  118 +// $('#export').attr('disabled', "true");
  119 +
  120 + // 关闭左侧栏
  121 + if (!$('body').hasClass('page-sidebar-closed'))
  122 + $('.menu-toggler.sidebar-toggler').click();
  123 +
  124 + $("#date").datetimepicker({
  125 + format : 'YYYY-MM-DD',
  126 + locale : 'zh-cn'
  127 + });
  128 +
  129 + var d = new Date();
  130 + var year = d.getFullYear();
  131 + var month = d.getMonth() + 1;
  132 + var day = d.getDate();
  133 + if(month < 10)
  134 + month = "0" + month;
  135 + if(day < 10)
  136 + day = "0" + day;
  137 + $("#date").val(year + "-" + month + "-" + day);
  138 +
  139 + var date = "";
  140 + var nature="";
  141 + $("#query").on("click",function(){
  142 + $("#countLine").height($(window).height()-280);
  143 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  144 + layer.msg("请选择日期!");
  145 + return;
  146 + }
  147 + date = $("#date").val();
  148 +// if(date==null || date =="" ||date2==null || date2 ==""){
  149 +// layer.msg('请选择时间段.');
  150 +// }else{
  151 + nature = $("#nature").val();
  152 + var params = {};
  153 + params['date'] = date;
  154 + params['nature'] = nature;
  155 + params['type'] = "query";
  156 + var i = layer.load(2);
  157 + $get('/report/countMileageSum',params,function(result){
  158 + layer.close(i);
  159 + $("#datetodate").html(date);
  160 + // 把数据填充到模版中
  161 + var tbodyHtml = template('count_mileage_sum',{list:result});
  162 + // 把渲染好的模版html文本追加到表格中
  163 + $('#forms .count_mileage_sum').html(tbodyHtml);
  164 +
  165 + if(result.length == 0)
  166 + $("#export").attr('disabled',"true");
  167 + else
  168 + $("#export").removeAttr("disabled");
  169 + });
  170 +// }
  171 +
  172 + });
  173 +
  174 + $("#countLine").height($(window).height()-280);
  175 + $("#export").on("click",function(){
  176 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  177 + layer.msg("请选择日期!");
  178 + return;
  179 + }
  180 + date = $("#date").val();
  181 + nature = $("#nature").val();
  182 + var params = {};
  183 + params['date'] = date;
  184 + params['nature'] = nature;
  185 + params['type'] = "export";
  186 + params['by']='sj';
  187 + var i = layer.load(2);
  188 + $get('/report/countMileageSum',params,function(result){
  189 + var dateTime = "";
  190 +// if(date == date2){
  191 + dateTime = moment(date).format("YYYYMMDD");
  192 +// } else {
  193 +// dateTime = moment(date).format("YYYYMMDD")
  194 +// +"-"+moment(date2).format("YYYYMMDD");
  195 +// }
  196 + window.open("/downloadFile/download?fileName="
  197 + +dateTime+"-审计公里汇总表");
  198 + layer.close(i);
  199 + });
  200 + });
  201 + });
  202 +</script>
  203 +<script type="text/html" id="count_mileage_sum">
  204 + {{each list as obj i}}
  205 + <tr>
  206 + <td>{{obj.gsName}}</td>
  207 + <td>{{obj.fgsName}}</td>
  208 + <td>{{obj.jhzlc}}</td>
  209 + <td>{{obj.jhlc}}</td>
  210 + <td>{{obj.jcclc}}</td>
  211 + <td>{{obj.sjzgl}}</td>
  212 + <td>{{obj.jhnlc}}</td>
  213 + <td>{{obj.jhwlc}}</td>
  214 + <td>{{obj.jhnjcclc}}</td>
  215 + <td>{{obj.jhwjcclc_z}}</td>
  216 + <td>{{obj.zrwjcclc}}</td>
  217 + <td>{{obj.zrwjcclc1}}</td>
  218 + <td>{{obj.zrwjcclc2}}</td>
  219 + <td>{{obj.kfks}}</td>
  220 + <td>{{obj.lbss}}</td>
  221 + <td>{{obj.ssgl_lz}}</td>
  222 + <td>{{obj.ssgl_dm}}</td>
  223 + <td>{{obj.ssgl_gz}}</td>
  224 + <td>{{obj.ssgl_jf}}</td>
  225 + <td>{{obj.ssgl_zs}}</td>
  226 + <td>{{obj.ssgl_qr}}</td>
  227 + <td>{{obj.ssgl_qc}}</td>
  228 + <td>{{obj.ssgl_kx}}</td>
  229 + <td>{{obj.ssgl_qh}}</td>
  230 + <td>{{obj.ssgl_yw}}</td>
  231 + <td>{{obj.ssgl_other}}</td>
  232 + <td>{{obj.ljyy}}</td>
  233 + <td>{{obj.ljjcc}}</td>
  234 + <td>{{obj.ljkfks}}</td>
  235 + </tr>
  236 + {{/each}}
  237 + {{if list.length == 0}}
  238 + <tr>
  239 + <td colspan="30"><h6 class="muted">没有找到相关数据</h6></td>
  240 + </tr>
  241 + {{/if}}
  242 +</script>
0 243 \ No newline at end of file
... ...