Commit 52b381050b1812abd2040209f88a91e305f1a153

Authored by sgz
2 parents 171db36e ee338482

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

Showing 52 changed files with 2377 additions and 574 deletions

Too many changes to show.

To preserve performance only 52 of 183 files are displayed.

src/main/java/com/bsth/Application.java
... ... @@ -2,10 +2,6 @@ package com.bsth;
2 2  
3 3 import com.fasterxml.jackson.databind.ObjectMapper;
4 4 import com.fasterxml.jackson.databind.SerializationFeature;
5   -
6   -import java.util.concurrent.Executors;
7   -import java.util.concurrent.ScheduledExecutorService;
8   -
9 5 import org.springframework.boot.SpringApplication;
10 6 import org.springframework.boot.autoconfigure.SpringBootApplication;
11 7 import org.springframework.boot.builder.SpringApplicationBuilder;
... ... @@ -13,10 +9,13 @@ import org.springframework.boot.context.web.SpringBootServletInitializer;
13 9 import org.springframework.context.annotation.Bean;
14 10 import org.springframework.context.annotation.Primary;
15 11  
  12 +import java.util.concurrent.Executors;
  13 +import java.util.concurrent.ScheduledExecutorService;
  14 +
16 15 @SpringBootApplication
17 16 public class Application extends SpringBootServletInitializer {
18 17  
19   - public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(12);
  18 + public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(13);
20 19  
21 20 @Override
22 21 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
... ...
src/main/java/com/bsth/controller/DownloadController.java
... ... @@ -100,4 +100,29 @@ public class DownloadController
100 100 os.close();
101 101 file.delete();
102 102 }
  103 +
  104 +
  105 + @RequestMapping("downloadModel")
  106 + public void downloadModel(HttpServletResponse response,String fileName)
  107 + throws IOException {
  108 +// String fileNames=URLDecoder.decode(fileName,"UTF-8");
  109 + fileName =fileName + ".xls";
  110 + String moudelPath = this.getClass().getResource("/").getPath()+ "static/pages/forms/export/"+fileName;
  111 + File file = new File(moudelPath);// path是根据日志路径和文件名拼接出来的
  112 +// String filename = file.getName();// 获取日志文件名称
  113 + InputStream fis = new BufferedInputStream(new FileInputStream(moudelPath));
  114 + byte[] buffer = new byte[fis.available()];
  115 + fis.read(buffer);
  116 + fis.close();
  117 + response.reset();
  118 + response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
  119 + response.addHeader("Content-Length", "" + file.length());
  120 + OutputStream os = new BufferedOutputStream(response.getOutputStream());
  121 + response.setContentType("application/octet-stream");
  122 + os.write(buffer);// 输出文件
  123 + os.flush();
  124 + os.close();
  125 + }
  126 +
  127 +
103 128 }
... ...
src/main/java/com/bsth/controller/SectionRouteController.java
... ... @@ -72,4 +72,14 @@ public class SectionRouteController extends BaseController<SectionRoute, Integer
72 72 public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) {
73 73 return routeService.findUpSectionRouteCode(map);
74 74 }
  75 +
  76 + /**
  77 + * @Description :TODO(引用路段)
  78 + *
  79 + * @return List<Map<String, Object>>
  80 + */
  81 + @RequestMapping(value = "/quoteSection" , method = RequestMethod.POST)
  82 + public Map<String, Object> quoteSection(@RequestParam Map<String, Object> map) {
  83 + return routeService.quoteSection(map);
  84 + }
75 85 }
... ...
src/main/java/com/bsth/controller/StationRouteController.java
... ... @@ -111,7 +111,6 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
111 111 */
112 112 @RequestMapping(value = "/findStationRouteInfo",method = RequestMethod.GET)
113 113 public List<Map<String, Object>> findStationRouteInfo(@RequestParam Map<String, Object> map) {
114   -
115 114 return service.findStationRouteInfo(map);
116 115 }
117 116  
... ... @@ -127,8 +126,26 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
127 126 */
128 127 @RequestMapping(value = "/multiLine", method = RequestMethod.GET)
129 128 public Map<String, Object> findByMultiLine(@RequestParam String lineIds){
130   -
131 129 return service.findByMultiLine(lineIds);
132 130 }
133 131  
  132 + /**
  133 + *
  134 + * @Title: updSwitchDir
  135 + * @Description: TODO(上下行切换)
  136 + */
  137 + @RequestMapping(value = "/updSwitchDir", method = RequestMethod.POST)
  138 + public Map<String, Object> updSwitchDir(@RequestParam String lineIds){
  139 + return service.updSwitchDir(lineIds);
  140 + }
  141 +
  142 + /**
  143 + *
  144 + * @Title: upddis
  145 + * @Description: TODO(更新站距)
  146 + */
  147 + @RequestMapping(value = "/upddis",method = RequestMethod.POST)
  148 + public Map<String, Object> upddis(@RequestParam Map<String, Object> map) {
  149 + return service.upddis(map);
  150 + }
134 151 }
... ...
src/main/java/com/bsth/controller/gps/GpsController.java
... ... @@ -96,4 +96,16 @@ public class GpsController {
96 96 public Map<String, Object> gpsCompletion(@RequestParam long schId) {
97 97 return gpsService.gpsCompletion(schId);
98 98 }
  99 +
  100 + /**
  101 + * 历史GPS查询 ,第二版轨迹回放用
  102 + * @param nbbm
  103 + * @param st
  104 + * @param et
  105 + * @return
  106 + */
  107 + @RequestMapping(value = "/history_v2/{nbbm}")
  108 + public Map<String, Object> history_v2(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et){
  109 + return gpsService.history_v2(nbbm, st, et);
  110 + }
99 111 }
... ...
src/main/java/com/bsth/controller/oil/CwjyController.java
... ... @@ -2,6 +2,8 @@ package com.bsth.controller.oil;
2 2  
3 3  
4 4 import java.util.Date;
  5 +import java.util.HashMap;
  6 +import java.util.List;
5 7 import java.util.Map;
6 8  
7 9 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -31,9 +33,9 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
31 33 return service.save(t);
32 34 }
33 35  
34   - @RequestMapping(value = "/pagequery",method = RequestMethod.GET)
35   - public PageObject<Ylxxb> pagequery(@RequestParam Map<String, Object> map){
36   - PageObject<Ylxxb> pagequery=null;
  36 + @RequestMapping(value = "/queryList",method = RequestMethod.GET)
  37 + public List<Ylxxb> queryList(@RequestParam Map<String, Object> map){
  38 + List<Ylxxb> pagequery=null;
37 39 map.put("curPage", map.get("page").toString());
38 40 map.put("pageData","10");
39 41 pagequery=service.Pagequery(map);
... ... @@ -56,9 +58,15 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
56 58 * @throws
57 59 */
58 60 @RequestMapping(value="/savejzl",method = RequestMethod.POST)
59   - public Map<String, Object> savejzl(Ylxxb t){
60   - Map<String, Object> map=service.savejzl(t);
61   - return map;
  61 + public Map<String, Object> savejzl(@RequestParam Map<String, Object> map){
  62 + Map<String, Object> maps=new HashMap<>();
  63 + try {
  64 + maps = service.savejzl(map);
  65 + } catch (Exception e) {
  66 + // TODO Auto-generated catch block
  67 + e.printStackTrace();
  68 + }
  69 + return maps;
62 70 }
63 71  
64 72 }
... ...
src/main/java/com/bsth/controller/oil/DlbController.java
1 1 package com.bsth.controller.oil;
2 2  
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
  5 +import java.util.HashMap;
  6 +import java.util.Iterator;
3 7 import java.util.List;
4 8 import java.util.Map;
5 9  
... ... @@ -16,6 +20,7 @@ import com.bsth.controller.BaseController;
16 20 import com.bsth.entity.oil.Dlb;
17 21 import com.bsth.entity.oil.Ylb;
18 22 import com.bsth.service.oil.DlbService;
  23 +import com.bsth.util.ReportUtils;
19 24 import com.google.common.base.Splitter;
20 25  
21 26 @RestController
... ... @@ -70,11 +75,17 @@ public class DlbController extends BaseController&lt;Dlb, Integer&gt;{
70 75 List<String> list = Splitter.on(",").trimResults().splitToList(order);
71 76 return baseService.list(map, new PageRequest(page, size, new Sort(d, list)));
72 77 }
  78 + @RequestMapping(value = "/dlbList",method = RequestMethod.GET)
  79 + public List<Dlb> dlbList(@RequestParam Map<String, Object> map){
  80 + List<Dlb> list=service.listDlb(map);
  81 + return list;
  82 + }
  83 +
  84 +
73 85  
74 86 @RequestMapping(value = "/obtain",method = RequestMethod.GET)
75 87 public Map<String, Object> obtain(@RequestParam Map<String, Object> map){
76 88 Map<String, Object> list=service.obtain(map);
77   - System.out.println();
78 89 return list;
79 90 }
80 91  
... ... @@ -99,4 +110,75 @@ public class DlbController extends BaseController&lt;Dlb, Integer&gt;{
99 110 Map<String, Object> list=service.checkDl(map);
100 111 return list;
101 112 }
  113 +
  114 + @RequestMapping(value = "/sumYlb",method = RequestMethod.GET)
  115 + public Map<String, Object> sumYlb(@RequestParam Map<String, Object> map){
  116 + Map<String, Object> list=service.sumYlb(map);
  117 + return list;
  118 + }
  119 +
  120 + @RequestMapping(value = "/saveDlbList",method = RequestMethod.POST)
  121 + public Map<String, Object> saveDlbList(@RequestParam Map<String, Object> map){
  122 + Map<String, Object> list=new HashMap<String, Object>();
  123 + try {
  124 + list = service.saveDlbList(map);
  125 + } catch (Exception e) {
  126 + // TODO Auto-generated catch block
  127 + e.printStackTrace();
  128 + }
  129 + return list;
  130 + }
  131 +
  132 +
  133 + @RequestMapping(value = "/listExport",method = RequestMethod.POST)
  134 + public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){
  135 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  136 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  137 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  138 + ReportUtils ee = new ReportUtils();
  139 + List<Dlb> dlb= service.listDlb(map);
  140 +// (new CustomerSpecs<Ylb>(map)).iterator();
  141 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  142 + for (Dlb y : dlb) {
  143 + Map<String, Object> m = new HashMap<String, Object>();
  144 + m.put("rq", y.getRq());
  145 + m.put("gsname",y.getGsname() );
  146 + m.put("xlname", y.getXlname());
  147 + m.put("nbbm", y.getNbbm());
  148 + m.put("jsy", y.getJsy());
  149 + m.put("cdl", y.getCdl());
  150 + m.put("czcd", y.getCzcd()+"%");
  151 + m.put("jzcd", y.getJzcd()+"%");
  152 + m.put("hd", y.getHd());
  153 + String shyy ="无";
  154 + if(y.getShyy()!=null){
  155 + if(shyy.equals("1")){shyy="票务用油";}
  156 + else if(shyy.equals("2")){shyy="保养用油";}
  157 + else if(shyy.equals("3")){shyy="报废车用油";}
  158 + else if(shyy.equals("4")){shyy="其它用油";}
  159 + else if(shyy.equals("5")){shyy="人保部";}
  160 + else if(shyy.equals("6")){shyy="车队";}
  161 + else if(shyy.equals("7")){shyy="车间(高保)";}
  162 + else if(shyy.equals("8")){shyy="车间(小修)";}
  163 + else{shyy ="无";}
  164 + }
  165 + m.put("shyy", shyy);
  166 + m.put("sh", y.getSh());
  167 + m.put("zlc", y.getZlc());
  168 + m.put("bglyh", y.getBglyh());
  169 + resList.add(m);
  170 + }
  171 + try {
  172 + listI.add(resList.iterator());
  173 + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
  174 + ee.excelReplace(listI, new Object[] { map }, path+"mould/listDl.xls",
  175 + path+"export/"+map.get("rq").toString()+ "进出场存电量.xls");
  176 + } catch (Exception e) {
  177 + e.printStackTrace();
  178 + }
  179 +
  180 + return resList;
  181 +
  182 + }
  183 +
102 184 }
... ...
src/main/java/com/bsth/controller/oil/YlxxbController.java
1 1 package com.bsth.controller.oil;
2 2  
  3 +import java.util.HashMap;
3 4 import java.util.Map;
4 5  
5 6 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -33,9 +34,15 @@ public class YlxxbController extends BaseController&lt;Ylxxb, Integer&gt;{
33 34 * @param map
34 35 * @return
35 36 */
36   - @RequestMapping(value = "/check",method = RequestMethod.GET)
  37 + @RequestMapping(value = "/check",method = RequestMethod.POST)
37 38 public Map<String, Object> check(@RequestParam Map<String, Object> map){
38   - Map<String, Object> list=service.checkJsy(map);
  39 + Map<String, Object> list=new HashMap<>();
  40 + try {
  41 + list = service.checkJsy(map);
  42 + } catch (Exception e) {
  43 + // TODO Auto-generated catch block
  44 + e.printStackTrace();
  45 + }
39 46 return list;
40 47 }
41 48 }
... ...
src/main/java/com/bsth/controller/realcontrol/BasicDataController.java
... ... @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.serializer.PropertyFilter;
5 5 import com.bsth.common.ResponseCode;
6 6 import com.bsth.data.BasicData;
  7 +import com.bsth.entity.Line;
  8 +import com.google.common.collect.ArrayListMultimap;
7 9 import org.slf4j.Logger;
8 10 import org.slf4j.LoggerFactory;
9 11 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -11,9 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
11 13 import org.springframework.web.bind.annotation.RequestMethod;
12 14 import org.springframework.web.bind.annotation.RestController;
13 15  
14   -import java.util.HashMap;
15   -import java.util.List;
16   -import java.util.Map;
  16 +import java.util.*;
17 17  
18 18 @RestController
19 19 @RequestMapping("/basic")
... ... @@ -126,4 +126,23 @@ public class BasicDataController {
126 126 public Map<String, String> nbbm2PlateNo(){
127 127 return basicData.getNbbm2PlateNo();
128 128 }
  129 +
  130 +
  131 + /**
  132 + * 获取线路配车信息
  133 + * @return
  134 + */
  135 + @RequestMapping("/ccInfo")
  136 + public Map<String, Collection<String>> ccInfo(){
  137 +
  138 + ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create();
  139 + Set<String> ks = BasicData.nbbm2LineMap.keySet();
  140 +
  141 + Line line;
  142 + for(String nbbm : ks){
  143 + line = BasicData.nbbm2LineMap.get(nbbm);
  144 + listMultimap.put(line.getLineCode(), nbbm);
  145 + }
  146 + return listMultimap.asMap();
  147 + }
129 148 }
... ...
src/main/java/com/bsth/controller/realcontrol/LineConfigController.java
... ... @@ -14,39 +14,91 @@ public class LineConfigController extends BaseController&lt;LineConfig, Integer&gt;{
14 14  
15 15 @Autowired
16 16 LineConfigService lineConfigService;
17   -
  17 +
  18 + /**
  19 + * 检查是否有线路配置信息
  20 + * @param codeArray
  21 + * @return
  22 + */
18 23 @RequestMapping("/check")
19 24 public Map<String, Object> check(@RequestParam String[] codeArray){
20 25 return lineConfigService.check(codeArray);
21 26 }
22   -
  27 +
  28 + /**
  29 + * 初始化线路配置
  30 + * @param lineCode
  31 + * @return
  32 + * @throws Exception
  33 + */
23 34 @RequestMapping("/init/{lineCode}")
24 35 public Integer init(@PathVariable("lineCode") String lineCode) throws Exception{
25 36 return lineConfigService.init(lineCode);
26 37 }
27   -
  38 +
  39 + /**
  40 + * 修改班次刷新时间
  41 + * @param time
  42 + * @param lineCode
  43 + * @return
  44 + */
28 45 @RequestMapping(value = "/editTime", method = RequestMethod.POST)
29 46 public Map<String, Object> editStartOptTime(@RequestParam String time,@RequestParam String lineCode){
30 47 return lineConfigService.editStartOptTime(time, lineCode);
31 48 }
32   -
  49 +
  50 + /**
  51 + * 修改出场时间类型
  52 + * @param lineCode
  53 + * @param type
  54 + * @return
  55 + */
33 56 @RequestMapping(value = "/editOutTimeType", method = RequestMethod.POST)
34   - public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type){
35   - return lineConfigService.editOutTimeType(lineCode, type);
  57 + public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type,@RequestParam String parkCode,@RequestParam String stationCode){
  58 + return lineConfigService.editOutTimeType(lineCode, type, parkCode, stationCode);
36 59 }
37 60  
  61 + /**
  62 + * 启用原线路回场
  63 + * @param lineCode
  64 + * @param enable
  65 + * @return
  66 + */
38 67 @RequestMapping(value = "/enableInParkForSource", method = RequestMethod.POST)
39 68 public Map<String, Object> enableInParkForSource(@RequestParam String lineCode, @RequestParam int enable){
40 69 return lineConfigService.enableInParkForSource(lineCode, enable);
41 70 }
42 71  
  72 + /**
  73 + * 根据线路编码获取配置信息
  74 + * @param lineCode
  75 + * @return
  76 + */
43 77 @RequestMapping(value = "/getByLineCode")
44 78 public LineConfig getByLineCode(@RequestParam String lineCode){
45 79 return lineConfigService.getByLineCode(lineCode);
46 80 }
47 81  
  82 + /**
  83 + * 到站缓冲区设置
  84 + * @param lineCode
  85 + * @param field
  86 + * @param value
  87 + * @return
  88 + */
48 89 @RequestMapping(value = "/bufferTimeDiff", method = RequestMethod.POST)
49 90 public Map<String, Object> bufferTimeDiff(@RequestParam String lineCode, @RequestParam String field,@RequestParam String value){
50 91 return lineConfigService.bufferTimeDiff(lineCode, field, value);
51 92 }
  93 +
  94 + /**
  95 + * 应急停靠设置
  96 + * @param map
  97 + * @return
  98 + */
  99 + @RequestMapping(value = "/yjtkSet", method = RequestMethod.POST)
  100 + public Map<String, Object> yjtkSet(@RequestParam Map<String, String> map){
  101 + //System.out.println(map);
  102 + return lineConfigService.yjtkSet(map);
  103 + }
52 104 }
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
1 1 package com.bsth.controller.realcontrol;
2 2  
3 3 import com.alibaba.fastjson.JSONArray;
  4 +import com.bsth.common.ResponseCode;
4 5 import com.bsth.controller.BaseController;
5 6 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
6 7 import com.bsth.controller.realcontrol.dto.DfsjChange;
... ... @@ -368,9 +369,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
368 369 }
369 370  
370 371 @RequestMapping(value="/statisticsDailyTj")
371   - public List<Map<String,Object>> statisticsDailyTj(@RequestParam String line, @RequestParam String date,
  372 + public List<Map<String,Object>> statisticsDailyTj(@RequestParam String gsdm,@RequestParam String fgsdm, @RequestParam String line, @RequestParam String date,
372 373 @RequestParam String date2,@RequestParam String xlName, @RequestParam String type){
373   - return scheduleRealInfoService.statisticsDailyTj(line, date,date2, xlName, type);
  374 + return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type);
374 375 }
375 376  
376 377 @RequestMapping(value="/MapById",method = RequestMethod.GET)
... ... @@ -486,4 +487,33 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
486 487 public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx,@RequestParam int type){
487 488 return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx, type);
488 489 }
  490 +
  491 + /**
  492 + * 删除当日实际排班
  493 + * @return
  494 + */
  495 + @RequestMapping(value = "deleteRealSchedule", method = RequestMethod.POST)
  496 + public Map<String, Object> deleteRealSchedule(@RequestParam String lineCode){
  497 + return dayOfSchedule.deleteRealSchedule(lineCode);
  498 + }
  499 +
  500 + /**
  501 + * 从计划表重新加载当日排班
  502 + * @param lineCode
  503 + * @return
  504 + */
  505 + @RequestMapping(value = "reLoadRealSchedule", method = RequestMethod.POST)
  506 + public Map<String, Object> reLoadRealSchedule(@RequestParam String lineCode){
  507 + Map<String, Object> rs = new HashMap<>();
  508 + List<ScheduleRealInfo> list = dayOfSchedule.findByLineCode(lineCode);
  509 + if(list != null && list.size() > 0){
  510 + rs.put("status", ResponseCode.ERROR);
  511 + rs.put("msg", "失败," + list.get(0).getXlName() + "当日存在实际排班,无法重新加载。");
  512 + return rs;
  513 + }
  514 +
  515 + int code = dayOfSchedule.reloadSch(lineCode);
  516 + rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);
  517 + return rs;
  518 + }
489 519 }
... ...
src/main/java/com/bsth/controller/report/ReportController.java
... ... @@ -21,17 +21,17 @@ public class ReportController {
21 21 @Autowired
22 22 ReportService service;
23 23  
24   - @RequestMapping(value="/queryListBczx" ,method = RequestMethod.POST)
  24 + @RequestMapping(value="/queryListBczx" ,method = RequestMethod.GET)
25 25 public List<ScheduleRealInfo> queryListBczx(@RequestParam String clzbh,@RequestParam String line,@RequestParam String date){
26 26 return service.queryListBczx(line,date,clzbh);
27 27 }
28 28  
29   - @RequestMapping(value="/queryListZdxx" ,method = RequestMethod.POST)
  29 + @RequestMapping(value="/queryListZdxx" ,method = RequestMethod.GET)
30 30 public List<ArrivalInfo> queryListZdxx(@RequestParam String clzbh,@RequestParam String line,
31 31 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
32 32 return service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
33 33 }
34   - @RequestMapping(value="/queryListClzd" ,method = RequestMethod.POST)
  34 + @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)
35 35 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,
36 36 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
37 37 return service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
... ... @@ -108,4 +108,9 @@ public class ReportController {
108 108 return service.carList(map);
109 109 }
110 110  
  111 + @RequestMapping(value="/userList",method = RequestMethod.GET)
  112 + public List<Map<String,String>> userList(@RequestParam Map<String, Object> map){
  113 + return service.userList(map);
  114 + }
  115 +
111 116 }
... ...
src/main/java/com/bsth/data/BasicData.java
... ... @@ -68,6 +68,8 @@ public class BasicData implements CommandLineRunner {
68 68 public static Map<String, Personnel> jsyMap;
69 69 //售票员工号 和 personnel 对象映射
70 70 public static Map<String, Personnel> spyMap;
  71 + //所以员工和personnerl 对象映射
  72 + public static Map<String, Personnel> perMap;
71 73 //全量员工 工号和姓名对照
72 74 public static Map<String, String> allPerson;
73 75  
... ... @@ -310,7 +312,7 @@ public class BasicData implements CommandLineRunner {
310 312 public void loadPersonnelInfo() {
311 313 Iterator<Personnel> iterator = personnelRepository.findAll().iterator();
312 314  
313   - Map<String, Personnel> jsyTempMap = new HashMap<>(), spyTempMap = new HashMap<>();
  315 + Map<String, Personnel> jsyTempMap = new HashMap<>(), spyTempMap = new HashMap<>(),perTempMap=new HashMap<>();
314 316 Map<String, String> allPersonMap = new HashMap<>();
315 317  
316 318 Personnel p;
... ... @@ -328,13 +330,15 @@ public class BasicData implements CommandLineRunner {
328 330 else if (p.getPosts().equals("2"))
329 331 spyTempMap.put(jobCode, p);
330 332 }
331   -
  333 +
  334 + perTempMap.put(jobCode, p);
332 335 allPersonMap.put(jobCode, p.getPersonnelName());
333 336 }
334 337  
335 338 jsyMap = jsyTempMap;
336 339 spyMap = spyTempMap;
337 340 allPerson = allPersonMap;
  341 + perMap = perTempMap;
338 342 }
339 343 }
340 344 }
... ...
src/main/java/com/bsth/data/LineConfigData.java
1 1 package com.bsth.data;
2 2  
  3 +import com.bsth.Application;
3 4 import com.bsth.entity.Line;
4 5 import com.bsth.entity.realcontrol.D80ReplyTemp;
5 6 import com.bsth.entity.realcontrol.LineConfig;
6   -import com.bsth.oplog.normal.OpLogger;
  7 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
7 8 import com.bsth.service.LineService;
8 9 import com.bsth.service.realcontrol.LineConfigService;
9 10 import org.slf4j.Logger;
... ... @@ -14,101 +15,151 @@ import org.springframework.core.annotation.Order;
14 15 import org.springframework.stereotype.Component;
15 16  
16 17 import java.util.*;
  18 +import java.util.concurrent.TimeUnit;
17 19  
18 20 /**
19   - *
  21 + * @author PanZhao
20 22 * @ClassName: LineConfigData
21 23 * @Description: TODO(线路配置数据管理)
22   - * @author PanZhao
23 24 * @date 2016年8月15日 下午2:50:19
24   - *
25 25 */
26 26 @Component
27 27 @Order(value = 2)
28 28 public class LineConfigData implements CommandLineRunner {
29   -
30   - Logger logger = LoggerFactory.getLogger(this.getClass());
31   -
32   - // 线路编码和配置
33   - private Map<String, LineConfig> lineConfMap;
34   -
35   - @Autowired
36   - LineConfigService lineConfigService;
37   -
38   - @Autowired
39   - LineService lineService;
40   -
41   - @Autowired
42   - OpLogger opLog;
43   -
44   - @Override
45   - public void run(String... arg0) throws Exception {
46   - lineConfMap = new HashMap<>();
47   -
48   - Iterator<LineConfig> itr = lineConfigService.findAll().iterator();
49   - while (itr.hasNext())
50   - setBuffer(itr.next());
51   -
52   - opLog.info("Line_config_data");
53   - }
54   -
55   - public LineConfig get(String lineCode){
56   - return lineConfMap.get(lineCode);
57   - }
58   -
59   - public Collection<LineConfig> getAll(){
60   - return lineConfMap.values();
61   - }
62   -
63   - public void set(LineConfig conf){
64   - lineConfigService.save(conf);
65   - setBuffer(conf);
66   - }
67   -
68   - public void setBuffer(LineConfig conf){
69   - lineConfMap.put(conf.getLine().getLineCode(), conf);
70   - }
71   -
72   - /**
73   - *
74   - * @Title: init
75   - * @Description: TODO(初始化配置信息)
76   - */
77   - public void init(String lineCode) throws Exception{
78   - LineConfig conf = new LineConfig();
79   - //线路
80   - Line line = lineService.findByLineCode(lineCode);
81   - if(null == line)
82   - throw new NullPointerException("异常的lineCode");
83   -
84   - conf.setLine(line);
85   - //开始运营时间
86   - conf.setStartOpt("02:00");
87   - //托管状态
88   - conf.setTrust(true);
89   - //出场时间类型
90   - conf.setOutConfig(0);
91   - //进场时间类型
92   - //conf.setInConfig(1);
93   - //短语模板
94   - conf.setPhraseTemps("");
95   - //调度指令模板
96   - conf.setSchDirectiveTemp("");
97   -
98   - //80指令回复
99   - D80ReplyTemp t50 = new D80ReplyTemp(conf, (short)0x50, "同意,回电详谈", "不同意,请回电")
100   - ,t60 = new D80ReplyTemp(conf, (short)0x60, "同意,回电详谈", "不同意,请回电")
101   - ,tA2 = new D80ReplyTemp(conf, (short)0xA2, "同意,回电详谈", "不同意,请回电")
102   - ,t70 = new D80ReplyTemp(conf, (short)0x70, "同意,回电详谈", "不同意,请回电")
103   - ,t11 = new D80ReplyTemp(conf, (short)0x11, "同意,回电详谈", "不同意,请回电");
104   -
105   - Set<D80ReplyTemp> temps = conf.getD80Temps();
106   - temps.add(t50);
107   - temps.add(t60);
108   - temps.add(tA2);
109   - temps.add(t70);
110   - temps.add(t11);
111   -
112   - set(conf);
113   - }
  29 +
  30 + static Logger logger = LoggerFactory.getLogger(LineConfigData.class);
  31 +
  32 + // 线路编码和配置
  33 + private Map<String, LineConfig> lineConfMap;
  34 +
  35 + @Autowired
  36 + LineConfigService lineConfigService;
  37 +
  38 + @Autowired
  39 + LineService lineService;
  40 +
  41 + //入库缓冲
  42 + static LinkedList<LineConfig> saveBuffers = new LinkedList<>();
  43 +
  44 + @Autowired
  45 + LineConfigPersistThread configPersistThread;
  46 +
  47 + @Override
  48 + public void run(String... arg0) throws Exception {
  49 + lineConfMap = new HashMap<>();
  50 +
  51 + Iterator<LineConfig> itr = lineConfigService.findAll().iterator();
  52 + while (itr.hasNext())
  53 + setBuffer(itr.next());
  54 +
  55 + //异步入库
  56 + Application.mainServices.scheduleWithFixedDelay(configPersistThread, 60, 60, TimeUnit.SECONDS);
  57 + }
  58 +
  59 + /**
  60 + * 起点发出,应用缓冲区设置参数
  61 + * @param sch
  62 + * @param timestamp
  63 + * @return
  64 + */
  65 + public long applyOut(ScheduleRealInfo sch, Long timestamp) {
  66 + LineConfig config = lineConfMap.get(sch.getXlBm());
  67 + int diff = sch.getXlDir()=="0"?config.getUpOutDiff():config.getDownOutDiff();
  68 + return timestamp - (diff * 1000);
  69 + }
  70 +
  71 + /**
  72 + * 终点到达,应用缓冲区设置参数
  73 + * @param sch
  74 + * @param timestamp
  75 + * @return
  76 + */
  77 + public long applyIn(ScheduleRealInfo sch, Long timestamp){
  78 + LineConfig config = lineConfMap.get(sch.getXlBm());
  79 + int diff = sch.getXlDir()=="0"?config.getUpInDiff():config.getDownInDiff();
  80 + return timestamp - (diff * 1000);
  81 + }
  82 +
  83 + @Component
  84 + private static class LineConfigPersistThread extends Thread {
  85 +
  86 + @Autowired
  87 + LineConfigService lineConfigService;
  88 +
  89 + @Override
  90 + public void run() {
  91 + LineConfig config;
  92 + for (int i = 0; i < 800; i++) {
  93 + config = saveBuffers.poll();
  94 + if (config == null)
  95 + break;
  96 +
  97 + try {
  98 + lineConfigService.save(config);
  99 + }catch (Exception e){
  100 + logger.error("", e);
  101 + }
  102 + }
  103 + }
  104 + }
  105 +
  106 + public LineConfig get(String lineCode) {
  107 + return lineConfMap.get(lineCode);
  108 + }
  109 +
  110 + public Collection<LineConfig> getAll() {
  111 + return lineConfMap.values();
  112 + }
  113 +
  114 + public void set(LineConfig conf) {
  115 + //lineConfigService.save(conf);
  116 + saveBuffers.add(conf);
  117 + setBuffer(conf);
  118 + }
  119 +
  120 + public void setBuffer(LineConfig conf) {
  121 + lineConfMap.put(conf.getLine().getLineCode(), conf);
  122 + }
  123 +
  124 + /**
  125 + * @Title: init
  126 + * @Description: TODO(初始化配置信息)
  127 + */
  128 + public void init(String lineCode) throws Exception {
  129 + LineConfig conf = new LineConfig();
  130 + //线路
  131 + Line line = lineService.findByLineCode(lineCode);
  132 + if (null == line)
  133 + throw new NullPointerException("异常的lineCode");
  134 +
  135 + conf.setLine(line);
  136 + //开始运营时间
  137 + conf.setStartOpt("02:00");
  138 + //托管状态
  139 + conf.setTrust(true);
  140 + //出场时间类型
  141 + conf.setOutConfig(0);
  142 + //进场时间类型
  143 + //conf.setInConfig(1);
  144 + //短语模板
  145 + conf.setPhraseTemps("");
  146 + //调度指令模板
  147 + conf.setSchDirectiveTemp("");
  148 +
  149 + //80指令回复 闵行用
  150 + D80ReplyTemp t50 = new D80ReplyTemp(conf, (short) 0x50, "同意,回电详谈", "不同意,请回电"), t60 = new D80ReplyTemp(conf, (short) 0x60, "同意,回电详谈", "不同意,请回电"), tA2 = new D80ReplyTemp(conf, (short) 0xA2, "同意,回电详谈", "不同意,请回电"), t70 = new D80ReplyTemp(conf, (short) 0x70, "同意,回电详谈", "不同意,请回电"), t11 = new D80ReplyTemp(conf, (short) 0x11, "同意,回电详谈", "不同意,请回电");
  151 +
  152 + //应急停靠默认值
  153 + conf.setYjtkStart("00:00");
  154 + conf.setYjtkEnd("23:59");
  155 +
  156 + Set<D80ReplyTemp> temps = conf.getD80Temps();
  157 + temps.add(t50);
  158 + temps.add(t60);
  159 + temps.add(tA2);
  160 + temps.add(t70);
  161 + temps.add(t11);
  162 +
  163 + set(conf);
  164 + }
114 165 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/CorrectSignalHandle.java
... ... @@ -6,6 +6,9 @@ import com.bsth.data.gpsdata.arrival.utils.CircleQueue;
6 6 import com.bsth.data.schedule.DayOfSchedule;
7 7 import com.bsth.entity.realcontrol.ChildTaskPlan;
8 8 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  9 +import com.bsth.service.directive.DirectiveService;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
9 12 import org.springframework.beans.factory.annotation.Autowired;
10 13 import org.springframework.stereotype.Component;
11 14  
... ... @@ -18,6 +21,10 @@ public class CorrectSignalHandle extends SignalHandle {
18 21  
19 22 @Autowired
20 23 DayOfSchedule dayOfSchedule;
  24 + @Autowired
  25 + DirectiveService directiveService;
  26 +
  27 + Logger logger = LoggerFactory.getLogger(this.getClass());
21 28  
22 29 @Override
23 30 public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) {
... ... @@ -41,6 +48,11 @@ public class CorrectSignalHandle extends SignalHandle {
41 48 gps.setState(0);
42 49 }
43 50  
  51 + /*if(gps.getState() != 0){
  52 + logger.info(gps.getNbbm() + " 纠正状态到营运");
  53 + //切换到营运状态
  54 + directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "纠正@系统");
  55 + }*/
44 56  
45 57 return true;
46 58 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -135,8 +135,11 @@ public class InOutStationSignalHandle extends SignalHandle{
135 135 if(StringUtils.isNotEmpty(sch.getFcsjActual()))
136 136 return;
137 137  
  138 + //应用到离站缓冲区设置参数
  139 + long rsT = lineConfigData.applyOut(sch, gps.getTimestamp());
  140 +
138 141 //实发时间
139   - sch.setFcsjActualAll(gps.getTimestamp());
  142 + sch.setFcsjActualAll(rsT);
140 143 //通知客户端
141 144 sendUtils.sendFcsj(sch);
142 145 //持久化
... ... @@ -215,7 +218,10 @@ public class InOutStationSignalHandle extends SignalHandle{
215 218 if(StringUtils.isNotEmpty(sch.getZdsjActual()))
216 219 return;
217 220  
218   - sch.setZdsjActualAll(gps.getTimestamp());
  221 + //应用到离站缓冲区设置参数
  222 + long rsT = lineConfigData.applyIn(sch, gps.getTimestamp());
  223 +
  224 + sch.setZdsjActualAll(rsT);
219 225 //已完成班次数
220 226 int doneSum = dayOfSchedule.doneSum(sch.getClZbh());
221 227 ScheduleRealInfo next = dayOfSchedule.next(sch);
... ...
src/main/java/com/bsth/data/safe_driv/SafeDriv.java 0 → 100644
  1 +package com.bsth.data.safe_driv;
  2 +
  3 +/**
  4 + * 安全驾驶
  5 + * Created by panzhao on 2017/4/6.
  6 + */
  7 +public class SafeDriv {
  8 +
  9 + /**
  10 + * 时间
  11 + * 2017-04-06 08:00:00.0
  12 + */
  13 + private String Startime;
  14 +
  15 + /**
  16 + * 时间戳
  17 + */
  18 + private Long ts;
  19 +
  20 + /**
  21 + * 设备编号
  22 + */
  23 + private String sbbh;
  24 +
  25 + /**
  26 + * 线路名称
  27 + */
  28 + private String xlmc;
  29 +
  30 + /**
  31 + * 车辆自编号
  32 + */
  33 + private String clzbh;
  34 +
  35 + /**
  36 + * 车牌号
  37 + */
  38 + private String cph;
  39 +
  40 + /**
  41 + * 检查属性
  42 + * 双脱手 0 单脱手 1 其他为0都是异常
  43 + */
  44 + private String jctype;
  45 +
  46 + /**
  47 + * 异常种类
  48 + * 手部检测: 1
  49 + * 脸部检测: 5
  50 + * 摄像头检测: 2
  51 + * 安全带检测: 3
  52 + * 袖章检测: 4
  53 + */
  54 + private String yczltype;
  55 +
  56 + @Override
  57 + public int hashCode() {
  58 + return ("safe_" + (this.getClzbh() + this.getStartime())).hashCode();
  59 + }
  60 +
  61 + @Override
  62 + public boolean equals(Object obj) {
  63 + SafeDriv s2 = (SafeDriv)obj;
  64 + return (this.getClzbh() + this.getStartime()).equals(s2.getClzbh() + s2.getStartime());
  65 + }
  66 +
  67 + public String getStartime() {
  68 + return Startime;
  69 + }
  70 +
  71 + public void setStartime(String startime) {
  72 + Startime = startime;
  73 + }
  74 +
  75 + public String getSbbh() {
  76 + return sbbh;
  77 + }
  78 +
  79 + public void setSbbh(String sbbh) {
  80 + this.sbbh = sbbh;
  81 + }
  82 +
  83 + public String getXlmc() {
  84 + return xlmc;
  85 + }
  86 +
  87 + public void setXlmc(String xlmc) {
  88 + this.xlmc = xlmc;
  89 + }
  90 +
  91 + public String getClzbh() {
  92 + return clzbh;
  93 + }
  94 +
  95 + public void setClzbh(String clzbh) {
  96 + this.clzbh = clzbh;
  97 + }
  98 +
  99 + public String getCph() {
  100 + return cph;
  101 + }
  102 +
  103 + public void setCph(String cph) {
  104 + this.cph = cph;
  105 + }
  106 +
  107 + public String getJctype() {
  108 + return jctype;
  109 + }
  110 +
  111 + public void setJctype(String jctype) {
  112 + this.jctype = jctype;
  113 + }
  114 +
  115 + public String getYczltype() {
  116 + return yczltype;
  117 + }
  118 +
  119 + public void setYczltype(String yczltype) {
  120 + this.yczltype = yczltype;
  121 + }
  122 +
  123 + public Long getTs() {
  124 + return ts;
  125 + }
  126 +
  127 + public void setTs(Long ts) {
  128 + this.ts = ts;
  129 + }
  130 +}
... ...
src/main/java/com/bsth/data/safe_driv/SafeDrivCenter.java 0 → 100644
  1 +package com.bsth.data.safe_driv;
  2 +
  3 +import com.bsth.Application;
  4 +import com.bsth.websocket.handler.SendUtils;
  5 +import org.joda.time.format.DateTimeFormat;
  6 +import org.joda.time.format.DateTimeFormatter;
  7 +import org.springframework.beans.BeansException;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.boot.CommandLineRunner;
  10 +import org.springframework.context.ApplicationContext;
  11 +import org.springframework.context.ApplicationContextAware;
  12 +import org.springframework.stereotype.Component;
  13 +
  14 +import java.util.HashMap;
  15 +import java.util.HashSet;
  16 +import java.util.Map;
  17 +import java.util.Set;
  18 +import java.util.concurrent.TimeUnit;
  19 +
  20 +/**
  21 + * 安全驾驶
  22 + * Created by panzhao on 2017/4/6.
  23 + */
  24 +@Component
  25 +public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware {
  26 +
  27 + private static Set<SafeDriv> data;
  28 +
  29 + @Autowired
  30 + SafeDrivDataLoadThread safeDrivDataLoadThread;
  31 +
  32 + static SendUtils sendUtils;
  33 +
  34 + /**
  35 + * 车辆自编号 和 最新一条数据对照
  36 + */
  37 + private static Map<String, SafeDriv> safeMap;
  38 +
  39 + static {
  40 + data = new HashSet<>();
  41 + safeMap = new HashMap<>();
  42 + }
  43 +
  44 + private static DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
  45 + public static void put(SafeDriv sd){
  46 + sd.setTs(fmt.parseMillis(sd.getStartime()));
  47 + data.add(sd);
  48 +
  49 + if(sd.getYczltype().indexOf("A") == -1)
  50 + sd.setYczltype("A" + sd.getYczltype());
  51 +
  52 + SafeDriv old = safeMap.get(sd.getClzbh());
  53 + if(old == null || sd.getTs() > old.getTs()){
  54 + //通知客户端
  55 + sendUtils.sendSafeDriv(sd);
  56 + }
  57 +
  58 + safeMap.put(sd.getClzbh(), sd);
  59 + }
  60 +
  61 + @Override
  62 + public void run(String... strings) throws Exception {
  63 + //定时加载安全驾驶数据
  64 + Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 60, 5, TimeUnit.SECONDS);
  65 + }
  66 +
  67 + @Override
  68 + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  69 + sendUtils = applicationContext.getBean(SendUtils.class);
  70 + }
  71 +}
... ...
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java 0 → 100644
  1 +package com.bsth.data.safe_driv;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import org.apache.http.HttpEntity;
  5 +import org.apache.http.client.methods.CloseableHttpResponse;
  6 +import org.apache.http.client.methods.HttpGet;
  7 +import org.apache.http.impl.client.CloseableHttpClient;
  8 +import org.apache.http.impl.client.HttpClients;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.stereotype.Component;
  12 +
  13 +import java.io.BufferedReader;
  14 +import java.io.InputStreamReader;
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * 安全驾驶数据加载线程
  19 + * Created by panzhao on 2017/4/6.
  20 + */
  21 +@Component
  22 +public class SafeDrivDataLoadThread extends Thread{
  23 +
  24 + private final static String url = "http://180.166.5.82:9988//bsth-safedriving/Crlcxb/realtimeInterface.do";
  25 +
  26 + Logger logger = LoggerFactory.getLogger(this.getClass());
  27 +
  28 + @Override
  29 + public void run() {
  30 + List<SafeDriv> list = null;
  31 + CloseableHttpClient httpClient = null;
  32 + CloseableHttpResponse response = null;
  33 + try {
  34 + httpClient = HttpClients.createDefault();
  35 + HttpGet get = new HttpGet(url);
  36 +
  37 + response = httpClient.execute(get);
  38 +
  39 + HttpEntity entity = response.getEntity();
  40 + if (null != entity) {
  41 + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  42 + StringBuffer stringBuffer = new StringBuffer();
  43 + String str = "";
  44 + while ((str = br.readLine()) != null)
  45 + stringBuffer.append(str);
  46 +
  47 +
  48 + list = JSON.parseArray(stringBuffer.toString(), SafeDriv.class);
  49 + /**
  50 + * 模拟数据
  51 +
  52 + SafeDriv sd1 = new SafeDriv();
  53 + sd1.setYczltype("1");
  54 + sd1.setClzbh("W2B-001");
  55 + sd1.setStartime("2017-04-07 08:00:00.0");
  56 +
  57 + SafeDriv sd2 = new SafeDriv();
  58 + sd2.setYczltype("2");
  59 + sd2.setClzbh("W2B-002");
  60 + sd2.setStartime("2017-04-07 08:02:00.0");
  61 +
  62 + SafeDriv sd3 = new SafeDriv();
  63 + sd3.setYczltype("3");
  64 + sd3.setClzbh("W2B-003");
  65 + sd3.setStartime("2017-04-07 08:03:00.0");
  66 +
  67 + SafeDriv sd4 = new SafeDriv();
  68 + sd4.setYczltype("4");
  69 + sd4.setClzbh("W2B-004");
  70 + sd4.setStartime("2017-04-07 08:04:00.0");
  71 +
  72 + SafeDriv sd5 = new SafeDriv();
  73 + sd5.setYczltype("5");
  74 + sd5.setClzbh("W2B-005");
  75 + sd5.setStartime("2017-04-07 08:05:00.0");
  76 +
  77 + list.add(sd1);
  78 + list.add(sd2);
  79 + list.add(sd3);
  80 + list.add(sd4);
  81 + list.add(sd5);
  82 + */
  83 + for(SafeDriv sd : list){
  84 + SafeDrivCenter.put(sd);
  85 + }
  86 + }
  87 +
  88 + httpClient.close();
  89 + response.close();
  90 + } catch (Exception e) {
  91 + logger.error("", e);
  92 + }
  93 + }
  94 +}
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -3,6 +3,7 @@ package com.bsth.data.schedule;
3 3 import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.JSONArray;
5 5 import com.bsth.Application;
  6 +import com.bsth.common.ResponseCode;
6 7 import com.bsth.data.BasicData;
7 8 import com.bsth.data.LineConfigData;
8 9 import com.bsth.data.directive.DirectivesPstThread;
... ... @@ -18,7 +19,6 @@ import com.bsth.util.BatchSaveUtils;
18 19 import com.bsth.util.DateUtils;
19 20 import com.bsth.websocket.handler.SendUtils;
20 21 import com.google.common.collect.ArrayListMultimap;
21   -import com.google.common.collect.TreeMultimap;
22 22 import org.apache.commons.lang3.StringUtils;
23 23 import org.joda.time.format.DateTimeFormat;
24 24 import org.joda.time.format.DateTimeFormatter;
... ... @@ -56,7 +56,7 @@ public class DayOfSchedule implements CommandLineRunner {
56 56 private static Map<Long, ScheduleRealInfo> id2SchedulMap;
57 57  
58 58 // 车辆和排班起终点站对照(包括进出的停车场,区间起终点)
59   - private static TreeMultimap<String, String> nbbm2SEStationMap;
  59 + //private static TreeMultimap<String, String> nbbm2SEStationMap;
60 60  
61 61 //车辆 ——> 当前执行班次
62 62 private static Map<String, ScheduleRealInfo> carExecutePlanMap;
... ... @@ -99,7 +99,7 @@ public class DayOfSchedule implements CommandLineRunner {
99 99 pstBuffer = new LinkedList<>();
100 100 schFCSJComparator = new ScheduleComparator.FCSJ();
101 101 currSchDateMap = new HashMap<>();
102   - nbbm2SEStationMap = TreeMultimap.create();
  102 + //nbbm2SEStationMap = TreeMultimap.create();
103 103 carExecutePlanMap = new HashMap<>();
104 104  
105 105 schedulePlanMap = new HashMap<>();
... ... @@ -244,6 +244,10 @@ public class DayOfSchedule implements CommandLineRunner {
244 244 return 0;
245 245 }
246 246  
  247 + public int reloadSch(String lineCode){
  248 + return reloadSch(lineCode, calcSchDate(lineCode), true);
  249 + }
  250 +
247 251 /**
248 252 * @Title: searchAllCars
249 253 * @Description: TODO(搜索班次集合中的车辆)
... ... @@ -480,9 +484,9 @@ public class DayOfSchedule implements CommandLineRunner {
480 484 return id2SchedulMap.get(id);
481 485 }
482 486  
483   - public Set<String> getSEStationList(String nbbm) {
  487 + /* public Set<String> getSEStationList(String nbbm) {
484 488 return nbbm2SEStationMap.get(nbbm);
485   - }
  489 + }*/
486 490  
487 491 /**
488 492 * @Title: next
... ... @@ -610,8 +614,8 @@ public class DayOfSchedule implements CommandLineRunner {
610 614  
611 615 String nbbm = sch.getClZbh();
612 616 nbbmScheduleMap.put(nbbm, sch);
613   - nbbm2SEStationMap.put(nbbm, sch.getQdzCode());
614   - nbbm2SEStationMap.put(nbbm, sch.getZdzCode());
  617 + //nbbm2SEStationMap.put(nbbm, sch.getQdzCode());
  618 + //nbbm2SEStationMap.put(nbbm, sch.getZdzCode());
615 619  
616 620 //主键索引
617 621 id2SchedulMap.put(sch.getId(), sch);
... ... @@ -630,9 +634,6 @@ public class DayOfSchedule implements CommandLineRunner {
630 634 //return sch;
631 635 }
632 636  
633   -// public void calcQdzTimePlan(String nbbm){
634   -// schAttrCalculator.calcQdzTimePlan(nbbmScheduleMap.get(nbbm));
635   -// }
636 637  
637 638 public List<ScheduleRealInfo> updateQdzTimePlan(String nbbm) {
638 639 Collections.sort(nbbmScheduleMap.get(nbbm), schFCSJComparator);
... ... @@ -640,27 +641,6 @@ public class DayOfSchedule implements CommandLineRunner {
640 641 }
641 642  
642 643 /**
643   - *
644   - * @Title: nextAll
645   - * @Description: TODO(之后的所有班次)
646   - */
647   -/* public List<ScheduleRealInfo> nextAll(ScheduleRealInfo sch) {
648   - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());
649   - // 排序
650   - Collections.sort(list, schFCSJComparator);
651   -
652   - List<ScheduleRealInfo> rs = new ArrayList<>();
653   - ScheduleRealInfo temp;
654   - for (int i = 0; i < list.size() - 1; i++) {
655   - temp = list.get(i);
656   - if(temp.getFcsjT() > sch.getFcsjT())
657   - rs.add(temp);
658   -
659   - }
660   - return rs;
661   - }*/
662   -
663   - /**
664 644 * @Title: doneSum
665 645 * @Description: TODO(已完成班次总数)
666 646 */
... ... @@ -828,8 +808,8 @@ public class DayOfSchedule implements CommandLineRunner {
828 808  
829 809 sch.setClZbh(newClZbh);
830 810 nbbmScheduleMap.put(newClZbh, sch);
831   - nbbm2SEStationMap.put(newClZbh, sch.getQdzCode());
832   - nbbm2SEStationMap.put(newClZbh, sch.getZdzCode());
  811 + //nbbm2SEStationMap.put(newClZbh, sch.getQdzCode());
  812 + //nbbm2SEStationMap.put(newClZbh, sch.getZdzCode());
833 813  
834 814 //重新计算班次应到时间
835 815 ups.addAll(updateQdzTimePlan(oldClzbh));
... ... @@ -876,43 +856,50 @@ public class DayOfSchedule implements CommandLineRunner {
876 856 }
877 857  
878 858 /**
879   - * 获取班次的计划停站时间
880   - * @param sch
  859 + * 删除实际排班
  860 + * @param lineCode
881 861 * @return
  862 + */
  863 + public Map<String, Object> deleteRealSchedule(String lineCode) {
  864 + Map<String, Object> rs = new HashMap<>();
882 865  
883   - public int stopTimePlan(Object task) {
  866 + try {
  867 + String rq = currSchDateMap.get(lineCode);
  868 + if(StringUtils.isNotEmpty(rq)){
  869 + //解除gps 和班次之间的关联
  870 + List<ScheduleRealInfo> unions = calcUnion(findByLineCode(lineCode), carExecutePlanMap.values());
  871 + for(ScheduleRealInfo sch : unions){
  872 + removeExecPlan(sch.getClZbh());
  873 + }
884 874  
885   - ScheduleRealInfo sch = prev((ScheduleRealInfo) task);
  875 + //删除班次数据
  876 + removeRealSch(lineCode, rq);
  877 + //删除相关班次修正记录
  878 + }
  879 + rs.put("status", ResponseCode.SUCCESS);
  880 + }catch (Exception e){
  881 + logger.error("", e);
  882 + rs.put("status", ResponseCode.ERROR);
  883 + }
886 884  
887   - sch.getzdsj
888   - return -1;
889   - }*/
  885 + return rs;
  886 + }
890 887  
891 888 /**
  889 + * 计算并集
892 890 *
893   - * @Title: linkToSchPlan
894   - * @Description: TODO(车辆关联到班次)
  891 + * @param all
  892 + * @param sub
  893 + * @return
895 894 */
896   -/* public void linkToSchPlan(String nbbm) {
897   - //当前GPS状态
898   - GpsEntity gps = gpsRealData.get(BasicData.deviceId2NbbmMap.inverse().get(nbbm));
899   - if(null == gps)
900   - return;
901   -
902   - //班次集合
903   - List<ScheduleRealInfo> schArr = nbbmScheduleMap.get(nbbm);
904   -
905   - for(ScheduleRealInfo sch : schArr){
906   - if(sch.getStatus() == 2)
907   - continue;
908   - if(sch.isDestroy())
909   - continue;
910   - if(!sch.getXlBm().equals(gps.getLineId())
911   - || Integer.parseInt(sch.getXlDir()) != gps.getUpDown().intValue())
912   - continue;
913   -
914   - addExecPlan(sch);
915   - break;
916   - }
917   - }*/
  895 + public List<ScheduleRealInfo> calcUnion(Collection<ScheduleRealInfo> c1, Collection<ScheduleRealInfo> c2) {
  896 + List<ScheduleRealInfo> rs = new ArrayList<>();
  897 +
  898 + for (ScheduleRealInfo sch : c1) {
  899 + if(c2.contains(sch)){
  900 + rs.add(sch);
  901 + }
  902 + }
  903 + return rs;
  904 + }
918 905 }
919 906 \ No newline at end of file
... ...
src/main/java/com/bsth/data/schedule/thread/ScheduleRefreshThread.java
... ... @@ -2,7 +2,6 @@ package com.bsth.data.schedule.thread;
2 2  
3 3 import com.bsth.data.BasicData;
4 4 import com.bsth.data.LineConfigData;
5   -import com.bsth.data.arrival.ArrivalData_GPS;
6 5 import com.bsth.data.directive.DayOfDirectives;
7 6 import com.bsth.data.pilot80.PilotReport;
8 7 import com.bsth.data.schedule.DayOfSchedule;
... ... @@ -29,8 +28,8 @@ public class ScheduleRefreshThread extends Thread{
29 28 @Autowired
30 29 DayOfSchedule dayOfSchedule;
31 30  
32   - @Autowired
33   - ArrivalData_GPS arrivalData;
  31 + /*@Autowired
  32 + ArrivalData_GPS arrivalData;*/
34 33  
35 34 @Autowired
36 35 LineConfigData lineConfs;
... ... @@ -59,7 +58,7 @@ public class ScheduleRefreshThread extends Thread{
59 58  
60 59 logger.info(lineCode + "开始翻班, " + currSchDate);
61 60 //清除进出站数据
62   - arrivalData.clearRAMData(lineCode);
  61 + //arrivalData.clearRAMData(lineCode);
63 62 //清除指令数据
64 63 Set<String> cars = dayOfSchedule.findCarByLineCode(lineCode);
65 64 for(String car : cars)
... ...
src/main/java/com/bsth/entity/oil/Dlb.java
... ... @@ -55,7 +55,7 @@ public class Dlb {
55 55 private Date edittime;
56 56 private Date createtime;
57 57 private int nylx;
58   - //进场顺序(根据最先出场和最后进场来关联车辆的存量)
  58 + //进场顺序(根据最先出场和最后进场来关联车辆的存量)
59 59 private int jcsx;
60 60  
61 61 @Transient
... ...
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
... ... @@ -50,6 +50,9 @@ public class LineConfig {
50 50 /** 出站既出场 对应的停车场 */
51 51 private String twinsPark;
52 52  
  53 + /** 出站既出场 对应的起点站 */
  54 + private String twinsStation;
  55 +
53 56 /** 短语模板 , 号分隔多个 */
54 57 private String phraseTemps;
55 58  
... ... @@ -75,6 +78,15 @@ public class LineConfig {
75 78 //下行出站
76 79 private int downOutDiff;
77 80  
  81 + /**
  82 + * 应急停靠
  83 + */
  84 + private boolean enableYjtk;
  85 + private String yjtkStart;
  86 + private String yjtkEnd;
  87 + private int upStopMinute;
  88 + private int downStopMinute;
  89 +
78 90  
79 91 @OneToMany(cascade = CascadeType.ALL)
80 92 private Set<D80ReplyTemp> d80Temps = new HashSet<>();
... ... @@ -219,4 +231,52 @@ public class LineConfig {
219 231 public void setTwinsPark(String twinsPark) {
220 232 this.twinsPark = twinsPark;
221 233 }
  234 +
  235 + public String getYjtkStart() {
  236 + return yjtkStart;
  237 + }
  238 +
  239 + public void setYjtkStart(String yjtkStart) {
  240 + this.yjtkStart = yjtkStart;
  241 + }
  242 +
  243 + public String getYjtkEnd() {
  244 + return yjtkEnd;
  245 + }
  246 +
  247 + public void setYjtkEnd(String yjtkEnd) {
  248 + this.yjtkEnd = yjtkEnd;
  249 + }
  250 +
  251 + public int getUpStopMinute() {
  252 + return upStopMinute;
  253 + }
  254 +
  255 + public void setUpStopMinute(int upStopMinute) {
  256 + this.upStopMinute = upStopMinute;
  257 + }
  258 +
  259 + public int getDownStopMinute() {
  260 + return downStopMinute;
  261 + }
  262 +
  263 + public void setDownStopMinute(int downStopMinute) {
  264 + this.downStopMinute = downStopMinute;
  265 + }
  266 +
  267 + public boolean isEnableYjtk() {
  268 + return enableYjtk;
  269 + }
  270 +
  271 + public void setEnableYjtk(boolean enableYjtk) {
  272 + this.enableYjtk = enableYjtk;
  273 + }
  274 +
  275 + public String getTwinsStation() {
  276 + return twinsStation;
  277 + }
  278 +
  279 + public void setTwinsStation(String twinsStation) {
  280 + this.twinsStation = twinsStation;
  281 + }
222 282 }
... ...
src/main/java/com/bsth/entity/schedule/SchedulePlan.java
... ... @@ -41,6 +41,13 @@ public class SchedulePlan extends BEntity {
41 41 /** 使用的时刻表id列表(用逗号连接) */
42 42 private String ttInfoIds;
43 43  
  44 + /** 是否 排班计划优先 */
  45 + private Boolean isHistoryPlanFirst;
  46 +
  47 + /** 每次排班的结果数据(错误,正确提示都在这里) */
  48 + @Column(length = 2000)
  49 + private String planResult;
  50 +
44 51 @JsonIgnore
45 52 /** 使用中间表的一对多关联 明细信息 */
46 53 @OneToMany(mappedBy = "schedulePlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
... ... @@ -101,4 +108,20 @@ public class SchedulePlan extends BEntity {
101 108 public void setTtInfoIds(String ttInfoIds) {
102 109 this.ttInfoIds = ttInfoIds;
103 110 }
  111 +
  112 + public Boolean getIsHistoryPlanFirst() {
  113 + return isHistoryPlanFirst;
  114 + }
  115 +
  116 + public void setIsHistoryPlanFirst(Boolean isHistoryPlanFirst) {
  117 + this.isHistoryPlanFirst = isHistoryPlanFirst;
  118 + }
  119 +
  120 + public String getPlanResult() {
  121 + return planResult;
  122 + }
  123 +
  124 + public void setPlanResult(String planResult) {
  125 + this.planResult = planResult;
  126 + }
104 127 }
... ...
src/main/java/com/bsth/entity/schedule/temp/SchedulePlanRuleResult.java
1   -package com.bsth.entity.schedule.temp;
2   -
3   -import com.bsth.entity.schedule.SchedulePlan;
4   -
5   -import javax.persistence.Entity;
6   -import javax.persistence.GeneratedValue;
7   -import javax.persistence.Id;
8   -import javax.persistence.Table;
9   -import java.util.Date;
10   -
11   -/**
12   - * 排班的中间结果数据,记录每次排班后规则的变化。
13   - */
14   -@Entity
15   -@Table(name = "bsth_c_s_sp_rule_rst")
16   -public class SchedulePlanRuleResult {
17   - /** 主键Id */
18   - @Id
19   - @GeneratedValue
20   - private Long id;
21   -
22   - /** 线路id */
23   - private String xlId;
24   - /** 线路名字 */
25   - private String xlName;
26   -
27   - /** 排班规则id */
28   - private String ruleId;
29   - /** 车辆配置id */
30   - private String ccId;
31   - /** 车辆自编号 */
32   - private String ccZbh;
33   -
34   - /** 路牌id列表字符串 */
35   - private String gids;
36   - /** 路牌名字列表字符串 */
37   - private String gnames;
38   - /** 翻到哪个路牌索引 */
39   - private String gidindex;
40   - /** 人员配置id列表字符串 */
41   - private String ecids;
42   - /** 人员配置搭班编码列表字符串 */
43   - private String ecdbbms;
44   - /** 翻到哪个人员配置索引 */
45   - private String ecindex;
46   -
47   - /** 时刻表id */
48   - private String ttinfoId;
49   - /** 时刻表名字 */
50   - private String ttinfoName;
51   -
52   - /** 排班日期 */
53   - private Date scheduleDate;
54   -
55   - /** 操作人员id */
56   - private String sysuserId;
57   - /** 操作人员姓名 */
58   - private String sysuserName;
59   - /** 操作时间 */
60   - private Date createDate;
61   -
62   - public SchedulePlanRuleResult() {
63   -
64   - }
65   - public SchedulePlanRuleResult(SchedulePlan schedulePlan) {
66   - this.sysuserId = schedulePlan.getCreateBy().getId().toString();
67   - this.sysuserName = schedulePlan.getCreateBy().getName();
68   -// this.createDate = schedulePlan.getCreateDate();
69   - this.createDate = new Date();
70   - }
71   -
72   - public Long getId() {
73   - return id;
74   - }
75   -
76   - public void setId(Long id) {
77   - this.id = id;
78   - }
79   -
80   - public String getRuleId() {
81   - return ruleId;
82   - }
83   -
84   - public void setRuleId(String ruleId) {
85   - this.ruleId = ruleId;
86   - }
87   -
88   - public String getCcId() {
89   - return ccId;
90   - }
91   -
92   - public void setCcId(String ccId) {
93   - this.ccId = ccId;
94   - }
95   -
96   - public String getCcZbh() {
97   - return ccZbh;
98   - }
99   -
100   - public void setCcZbh(String ccZbh) {
101   - this.ccZbh = ccZbh;
102   - }
103   -
104   - public String getGids() {
105   - return gids;
106   - }
107   -
108   - public void setGids(String gids) {
109   - this.gids = gids;
110   - }
111   -
112   - public String getGnames() {
113   - return gnames;
114   - }
115   -
116   - public void setGnames(String gnames) {
117   - this.gnames = gnames;
118   - }
119   -
120   - public String getGidindex() {
121   - return gidindex;
122   - }
123   -
124   - public void setGidindex(String gidindex) {
125   - this.gidindex = gidindex;
126   - }
127   -
128   - public String getEcids() {
129   - return ecids;
130   - }
131   -
132   - public void setEcids(String ecids) {
133   - this.ecids = ecids;
134   - }
135   -
136   - public String getEcdbbms() {
137   - return ecdbbms;
138   - }
139   -
140   - public void setEcdbbms(String ecdbbms) {
141   - this.ecdbbms = ecdbbms;
142   - }
143   -
144   - public String getEcindex() {
145   - return ecindex;
146   - }
147   -
148   - public void setEcindex(String ecindex) {
149   - this.ecindex = ecindex;
150   - }
151   -
152   - public Date getScheduleDate() {
153   - return scheduleDate;
154   - }
155   -
156   - public void setScheduleDate(Date scheduleDate) {
157   - this.scheduleDate = scheduleDate;
158   - }
159   -
160   - public String getSysuserId() {
161   - return sysuserId;
162   - }
163   -
164   - public void setSysuserId(String sysuserId) {
165   - this.sysuserId = sysuserId;
166   - }
167   -
168   - public String getSysuserName() {
169   - return sysuserName;
170   - }
171   -
172   - public void setSysuserName(String sysuserName) {
173   - this.sysuserName = sysuserName;
174   - }
175   -
176   - public Date getCreateDate() {
177   - return createDate;
178   - }
179   -
180   - public void setCreateDate(Date createDate) {
181   - this.createDate = createDate;
182   - }
183   -
184   - public String getXlId() {
185   - return xlId;
186   - }
187   -
188   - public void setXlId(String xlId) {
189   - this.xlId = xlId;
190   - }
191   -
192   - public String getXlName() {
193   - return xlName;
194   - }
195   -
196   - public void setXlName(String xlName) {
197   - this.xlName = xlName;
198   - }
199   -
200   - public String getTtinfoId() {
201   - return ttinfoId;
202   - }
203   -
204   - public void setTtinfoId(String ttinfoId) {
205   - this.ttinfoId = ttinfoId;
206   - }
207   -
208   - public String getTtinfoName() {
209   - return ttinfoName;
210   - }
211   -
212   - public void setTtinfoName(String ttinfoName) {
213   - this.ttinfoName = ttinfoName;
214   - }
215   -}
  1 +package com.bsth.entity.schedule.temp;
  2 +
  3 +import com.bsth.entity.schedule.SchedulePlan;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.Table;
  9 +import java.util.Date;
  10 +
  11 +/**
  12 + * 排班的中间结果数据,记录每次排班后规则的变化。
  13 + */
  14 +@Entity
  15 +@Table(name = "bsth_c_s_sp_rule_rst")
  16 +public class SchedulePlanRuleResult {
  17 + /** 主键Id */
  18 + @Id
  19 + @GeneratedValue
  20 + private Long id;
  21 +
  22 + /** 线路id */
  23 + private String xlId;
  24 + /** 线路名字 */
  25 + private String xlName;
  26 +
  27 + /** 排班规则id */
  28 + private String ruleId;
  29 + /** 车辆配置id */
  30 + private String ccId;
  31 + /** 车辆自编号 */
  32 + private String ccZbh;
  33 +
  34 + /** 路牌id列表字符串 */
  35 + private String gids;
  36 + /** 路牌名字列表字符串 */
  37 + private String gnames;
  38 + /** 翻到哪个路牌索引 */
  39 + private String gidindex;
  40 + /** 人员配置id列表字符串 */
  41 + private String ecids;
  42 + /** 人员配置搭班编码列表字符串 */
  43 + private String ecdbbms;
  44 + /** 翻到哪个人员配置索引 */
  45 + private String ecindex;
  46 +
  47 + /** 时刻表id */
  48 + private String ttinfoId;
  49 + /** 时刻表名字 */
  50 + private String ttinfoName;
  51 +
  52 + /** 排班日期 */
  53 + private Date scheduleDate;
  54 +
  55 + /** 操作人员id */
  56 + private String sysuserId;
  57 + /** 操作人员姓名 */
  58 + private String sysuserName;
  59 + /** 操作时间 */
  60 + private Date createDate;
  61 +
  62 + public SchedulePlanRuleResult() {
  63 +
  64 + }
  65 + public SchedulePlanRuleResult(SchedulePlan schedulePlan) {
  66 + this.sysuserId = schedulePlan.getCreateBy().getId().toString();
  67 + this.sysuserName = schedulePlan.getCreateBy().getName();
  68 +// this.createDate = schedulePlan.getCreateDate();
  69 + this.createDate = new Date();
  70 + }
  71 +
  72 + public Long getId() {
  73 + return id;
  74 + }
  75 +
  76 + public void setId(Long id) {
  77 + this.id = id;
  78 + }
  79 +
  80 + public String getRuleId() {
  81 + return ruleId;
  82 + }
  83 +
  84 + public void setRuleId(String ruleId) {
  85 + this.ruleId = ruleId;
  86 + }
  87 +
  88 + public String getCcId() {
  89 + return ccId;
  90 + }
  91 +
  92 + public void setCcId(String ccId) {
  93 + this.ccId = ccId;
  94 + }
  95 +
  96 + public String getCcZbh() {
  97 + return ccZbh;
  98 + }
  99 +
  100 + public void setCcZbh(String ccZbh) {
  101 + this.ccZbh = ccZbh;
  102 + }
  103 +
  104 + public String getGids() {
  105 + return gids;
  106 + }
  107 +
  108 + public void setGids(String gids) {
  109 + this.gids = gids;
  110 + }
  111 +
  112 + public String getGnames() {
  113 + return gnames;
  114 + }
  115 +
  116 + public void setGnames(String gnames) {
  117 + this.gnames = gnames;
  118 + }
  119 +
  120 + public String getGidindex() {
  121 + return gidindex;
  122 + }
  123 +
  124 + public void setGidindex(String gidindex) {
  125 + this.gidindex = gidindex;
  126 + }
  127 +
  128 + public String getEcids() {
  129 + return ecids;
  130 + }
  131 +
  132 + public void setEcids(String ecids) {
  133 + this.ecids = ecids;
  134 + }
  135 +
  136 + public String getEcdbbms() {
  137 + return ecdbbms;
  138 + }
  139 +
  140 + public void setEcdbbms(String ecdbbms) {
  141 + this.ecdbbms = ecdbbms;
  142 + }
  143 +
  144 + public String getEcindex() {
  145 + return ecindex;
  146 + }
  147 +
  148 + public void setEcindex(String ecindex) {
  149 + this.ecindex = ecindex;
  150 + }
  151 +
  152 + public Date getScheduleDate() {
  153 + return scheduleDate;
  154 + }
  155 +
  156 + public void setScheduleDate(Date scheduleDate) {
  157 + this.scheduleDate = scheduleDate;
  158 + }
  159 +
  160 + public String getSysuserId() {
  161 + return sysuserId;
  162 + }
  163 +
  164 + public void setSysuserId(String sysuserId) {
  165 + this.sysuserId = sysuserId;
  166 + }
  167 +
  168 + public String getSysuserName() {
  169 + return sysuserName;
  170 + }
  171 +
  172 + public void setSysuserName(String sysuserName) {
  173 + this.sysuserName = sysuserName;
  174 + }
  175 +
  176 + public Date getCreateDate() {
  177 + return createDate;
  178 + }
  179 +
  180 + public void setCreateDate(Date createDate) {
  181 + this.createDate = createDate;
  182 + }
  183 +
  184 + public String getXlId() {
  185 + return xlId;
  186 + }
  187 +
  188 + public void setXlId(String xlId) {
  189 + this.xlId = xlId;
  190 + }
  191 +
  192 + public String getXlName() {
  193 + return xlName;
  194 + }
  195 +
  196 + public void setXlName(String xlName) {
  197 + this.xlName = xlName;
  198 + }
  199 +
  200 + public String getTtinfoId() {
  201 + return ttinfoId;
  202 + }
  203 +
  204 + public void setTtinfoId(String ttinfoId) {
  205 + this.ttinfoId = ttinfoId;
  206 + }
  207 +
  208 + public String getTtinfoName() {
  209 + return ttinfoName;
  210 + }
  211 +
  212 + public void setTtinfoName(String ttinfoName) {
  213 + this.ttinfoName = ttinfoName;
  214 + }
  215 +}
... ...
src/main/java/com/bsth/repository/SectionRepository.java
... ... @@ -113,5 +113,4 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; {
113 113 Double speedLimit,String descriptions,Integer version,Integer createBy,String createDate,
114 114  
115 115 Integer updateBy,String updateDate);
116   -
117 116 }
... ...
src/main/java/com/bsth/repository/SectionRouteRepository.java
... ... @@ -28,6 +28,14 @@ import com.bsth.entity.SectionRoute;
28 28 @Repository
29 29 public interface SectionRouteRepository extends BaseRepository<SectionRoute, Integer> {
30 30  
  31 + // 查询最大ID
  32 + @Query(value = "SELECT IFNULL(num,0) as maxId from (SELECT MAX(id) as num FROM bsth_c_sectionroute) k" , nativeQuery=true)
  33 + public long sectionRouteMaxId();
  34 +
  35 + // 查询最大ID
  36 + @Query(value = "SELECT IFNULL(num,0) as maxId from (SELECT MAX(sectionroute_code) as num FROM bsth_c_sectionroute where line_code = 601010 and directions = 1 and destroy = 0) k" , nativeQuery=true)
  37 + public int sectionRouteCodeMaxId();
  38 +
31 39 /**
32 40 * @Description :TODO(查询路段信息)
33 41 *
... ... @@ -162,4 +170,8 @@ public interface SectionRouteRepository extends BaseRepository&lt;SectionRoute, Int
162 170 @Modifying
163 171 @Query(value="UPDATE bsth_c_sectionroute set is_roade_speed = ?1 where line= ?2 and directions=?3 ",nativeQuery = true)
164 172 void isRoadSpeedUpd(Integer isR,Integer line,Integer directions);
  173 +
  174 + @Modifying
  175 + @Query(value="update bsth_c_sectionroute set directions = case directions when 1 then 0 when 0 then 1 end where line_code = ?1 ", nativeQuery=true)
  176 + public void sectionRouteDir(Integer line);
165 177 }
... ...
src/main/java/com/bsth/repository/StationRouteRepository.java
... ... @@ -268,4 +268,12 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int
268 268 "ORDER BY " +
269 269 "lineCode,directions,stationRouteCode")
270 270 List<Object[]> findAllLineWithYgc();
  271 +
  272 + @Modifying
  273 + @Query(value="update bsth_c_stationroute set directions = case directions when 1 then 0 when 0 then 1 end where line_code = ?1 ", nativeQuery=true)
  274 + public void stationRouteDir(Integer line);
  275 +
  276 + @Modifying
  277 + @Query(value="update bsth_c_stationroute set distances =?2 where id = ?1 ", nativeQuery=true)
  278 + public void upddis(Integer id,Double dis);
271 279 }
... ...
src/main/java/com/bsth/repository/oil/DlbRepository.java
... ... @@ -22,8 +22,9 @@ public interface DlbRepository extends BaseRepository&lt;Dlb, Integer&gt;{
22 22 @Modifying
23 23 @Query(value="SELECT a.* FROM bsth_c_dlb a where to_days(?1)-to_days(a.rq)=1"
24 24 + " and jcsx=(select max(b.jcsx) from bsth_c_dlb b where a.nbbm=b.nbbm and "
25   - + " to_days(?1)-to_days(b.rq)=1 )",nativeQuery=true)
26   - List<Dlb> obtainYlbefore(String rq);
  25 + + " to_days(?1)-to_days(b.rq)=1 ) and ssgsdm like %?2% and fgsdm like %?3% and "
  26 + + " xlbm like %?4% and nbbm like %?5%",nativeQuery=true)
  27 + List<Dlb> obtainYlbefore(String rq,String gsdm,String fgsdm,String xlbm,String nbbm);
27 28 /**
28 29 * 当天DLB信息
29 30 * @param rq
... ... @@ -31,7 +32,77 @@ public interface DlbRepository extends BaseRepository&lt;Dlb, Integer&gt;{
31 32 */
32 33 @Transactional
33 34 @Modifying
34   - @Query(value="SELECT * FROM bsth_c_dlb where to_days(?)=to_days(rq)",nativeQuery=true)
35   - List<Dlb> obtainDl(String rq);
  35 + @Query(value="SELECT * FROM bsth_c_dlb where to_days(?1)=to_days(rq) and ssgsdm like %?2% "
  36 + + " and fgsdm like %?3%"
  37 + + " and xlbm like %?4% and nbbm like %?5% order by ?6 asc",nativeQuery=true)
  38 + List<Dlb> obtainDl(String rq,String gsbm,String fgsdm,String xlbm,String nbbm,String px);
  39 +
  40 + @Query(value="select s from Dlb s "
  41 + + " where to_days(?1)=to_days(s.rq) "
  42 + + " and s.ssgsdm like %?2% "
  43 + + " and s.fgsdm like %?3%"
  44 + + " and s.xlbm like %?4% "
  45 + + " and s.nbbm in ?5 order by nbbm,jcsx")
  46 + List<Dlb> listDlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm);
  47 +
  48 +
  49 + /**
  50 + *
  51 + * @param nbbm
  52 + * @param rq
  53 + * @param xlbm
  54 + * @return
  55 + */
  56 + @Transactional
  57 + @Modifying
  58 + @Query(value="select nbbm,count(nbbm) from bsth_c_dlb where to_days(?1)=to_days(rq) and "
  59 + + " ssgsdm like %?2% "
  60 + + " and fgsdm like %?3%"
  61 + + " and xlbm like %?4% and nbbm like %?5% "
  62 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  63 + List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
  64 +
  65 + @Transactional
  66 + @Modifying
  67 + @Query(value="select nbbm,sum(cdl*100) as cdl ,sum(zlc*100) as zlc from bsth_c_dlb where to_days(?1)=to_days(rq) and "
  68 + + " ssgsdm like %?2% "
  69 + + " and fgsdm like %?3%"
  70 + + " and xlbm like %?4% and nbbm like %?5% "
  71 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  72 + List<Object[]> checkNbmmDl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
  73 +
  74 +
  75 +
  76 + @Query(value="select cdl,hd,sh from Dlb s "
  77 + + " where to_days(?1)=to_days(s.rq) "
  78 + + " and s.ssgsdm like %?2% "
  79 + + " and s.fgsdm like %?3%"
  80 + + " and s.xlbm like %?4% "
  81 + + " and s.nbbm in ?5 ")
  82 + List<Object[]> sumDlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm);
  83 +
  84 + @Transactional
  85 + @Modifying
  86 + @Query(value="select ifnull(cdl,0),ifnull(hd,0),ifnull(sh,0) from bsth_c_dlb "
  87 + + " where to_days(?1)=to_days(rq) "
  88 + + " and ssgsdm like %?2% "
  89 + + " and fgsdm like %?3%"
  90 + + " and xlbm like %?4% "
  91 + + " and nbbm like %?5%",nativeQuery=true)
  92 + List<Object[]> sumDlb2(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
  93 +
  94 +
  95 + @Transactional
  96 + @Modifying
  97 + @Query(value="UPDATE bsth_c_dlb SET " +
  98 + " czcd= ?2,"+
  99 + " jzcd = ?3, " +
  100 + " hd = ?4,"+
  101 + " sh = ?5," +
  102 + " shyy = ?6," +
  103 + " yhlx = ?7"+
  104 + " WHERE id = ?1", nativeQuery=true)
  105 + public void dlbUpdate(Integer id,double czcd,double jzcd,double hd, double sh,String shyy,int yhlx);
  106 +
36 107  
37 108 }
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -137,7 +137,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
137 137 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date);
138 138  
139 139 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
140   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by (s.lpName+1), s.realExecDate,s.fcsj")
  140 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm =?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by (s.lpName+1), s.realExecDate,s.fcsj")
141 141 List<ScheduleRealInfo> scheduleByDateAndLineQp(String line,String date);
142 142  
143 143 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
... ... @@ -151,8 +151,8 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
151 151  
152 152 //按照时间段统计
153 153 @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH)
154   - @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') order by s.xlBm")
155   - List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2);
  154 + @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') and gsBm like %?4% and fgsBm like %?5% order by s.xlBm")
  155 + List<ScheduleRealInfo> scheduleByDateAndLineTj(String line,String date,String date2,String gsdm,String fgsdm);
156 156  
157 157 //按照时间段统计
158 158 @Query(value="select DISTINCT s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') between ?2 and ?3 and s.bcType not in ('in','out') order by s.xlBm")
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanRuleResultRepository.java
1   -package com.bsth.repository.schedule;
2   -
3   -import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
4   -import com.bsth.repository.BaseRepository;
5   -import org.springframework.data.jpa.repository.Modifying;
6   -import org.springframework.data.jpa.repository.Query;
7   -import org.springframework.stereotype.Repository;
8   -
9   -import java.util.Date;
10   -import java.util.List;
11   -
12   -/**
13   - * Created by xu on 17/3/29.
14   - */
15   -@Repository
16   -public interface SchedulePlanRuleResultRepository extends BaseRepository<SchedulePlanRuleResult, Long> {
17   -
18   - @Query("select t from SchedulePlanRuleResult t " +
19   - "where not exists (select 1 from SchedulePlanRuleResult " +
20   - "where createDate > t.createDate and scheduleDate < ?2 ) " +
21   - "and t.xlId = ?1 and t.scheduleDate < ?2")
22   - List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from);
23   -
24   -// @Modifying
25   -// @Query("delete from SchedulePlanRuleResult t " +
26   -// "where t.xlId = ?1 and t.scheduleDate >= ?2 and t.scheduleDate <= ?3")
27   -// void deleteByXlAndDate(String xlid, Date from, Date to);
28   -}
  1 +package com.bsth.repository.schedule;
  2 +
  3 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.data.jpa.repository.Modifying;
  6 +import org.springframework.data.jpa.repository.Query;
  7 +import org.springframework.stereotype.Repository;
  8 +
  9 +import java.util.Date;
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * Created by xu on 17/3/29.
  14 + */
  15 +@Repository
  16 +public interface SchedulePlanRuleResultRepository extends BaseRepository<SchedulePlanRuleResult, Long> {
  17 +
  18 + @Query("select t from SchedulePlanRuleResult t " +
  19 + "where not exists (select 1 from SchedulePlanRuleResult " +
  20 + "where createDate > t.createDate and scheduleDate < ?2 ) " +
  21 + "and t.xlId = ?1 and t.scheduleDate < ?2")
  22 + List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from);
  23 +
  24 +// @Modifying
  25 +// @Query("delete from SchedulePlanRuleResult t " +
  26 +// "where t.xlId = ?1 and t.scheduleDate >= ?2 and t.scheduleDate <= ?3")
  27 +// void deleteByXlAndDate(String xlid, Date from, Date to);
  28 +}
... ...
src/main/java/com/bsth/repository/schedule/TTInfoDetailRepository.java
... ... @@ -51,5 +51,7 @@ public interface TTInfoDetailRepository extends BaseRepository&lt;TTInfoDetail, Lon
51 51 @Query(value = "delete from TTInfoDetail t where t.ttinfo.id = ?1")
52 52 void deleteByTtinfoIdWithModify(Long ttinfoid);
53 53  
54   -
  54 + @Modifying
  55 + @Query(value = "delete from TTInfoDetail t where t.xl.id=?1 and t.ttinfo.id = ?2")
  56 + void deltidc(int xl , Long ttinfoid );
55 57 }
... ...
src/main/java/com/bsth/repository/sys/DutyEmployeeRepository.java
... ... @@ -13,7 +13,7 @@ import java.util.List;
13 13 @Repository
14 14 public interface DutyEmployeeRepository extends BaseRepository<DutyEmployee, Long>{
15 15  
16   - //@Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts > ?2 and t.ts < ?3")
17   - @Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts < ?2")
18   - List<DutyEmployee> findByLineAndTime(String lineCode, long et);
  16 + @Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts > ?2 and t.ts < ?3")
  17 + //@Query("select t from DutyEmployee t where t.codeIdx like %?1% and t.ts < ?2")
  18 + List<DutyEmployee> findByLineAndTime(String lineCode, long st, long et);
19 19 }
... ...
src/main/java/com/bsth/service/SectionRouteService.java
... ... @@ -41,4 +41,6 @@ public interface SectionRouteService extends BaseService&lt;SectionRoute, Integer&gt;
41 41 * @return List<Map<String, Object>>
42 42 */
43 43 List<Map<String, Object>> findUpSectionRouteCode(Map<String, Object> map);
  44 +
  45 + Map<String, Object> quoteSection(Map<String, Object> map);
44 46 }
... ...
src/main/java/com/bsth/service/StationRouteService.java
... ... @@ -79,5 +79,9 @@ public interface StationRouteService extends BaseService&lt;StationRoute, Integer&gt;
79 79 */
80 80 List<Map<String, Object>> findStationRouteInfo(Map<String, Object> map);
81 81  
82   - Map<String, Object> findByMultiLine(String lineIds);
  82 + Map<String, Object> findByMultiLine(String lineIds);
  83 +
  84 + Map<String, Object> updSwitchDir(String lineIds);
  85 +
  86 + Map<String, Object> upddis(Map<String, Object> map);
83 87 }
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
... ... @@ -731,22 +731,33 @@ public class FormsServiceImpl implements FormsService {
731 731  
732 732 @Override
733 733 public List<Daily> daily(Map<String, Object> map) {
  734 +
  735 + String gsbm="";
  736 + if(map.get("gsdmDaily")!=null){
  737 + gsbm=map.get("gsdmDaily").toString();
  738 + }
  739 +
  740 + String fgsbm="";
  741 + if(map.get("fgsdmDaily").toString()!=null){
  742 + fgsbm=map.get("fgsdmDaily").toString();
  743 + }
  744 +
734 745 String sql="select t.schedule_date_str,"
735 746 + " t.cl_zbh,t.j_gh,t.j_name,x.yh from (select r.schedule_date_str,r.xl_bm,r.xl_name,"
736 747 + " r.cl_zbh,r.j_gh,r.j_name from bsth_c_s_sp_info_real r WHERE "
737   - + " r.xl_bm='" + map.get("line").toString() + "' and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "
738   - + " and r.gs_bm like '%"+map.get("gsdmDaily").toString()+"%' "
739   - + " and r.fgs_bm like '%"+map.get("fgsdmDaily").toString()+"%' "
  748 + + " r.xl_bm='" + map.get("line").toString() + "' "
  749 + + " and to_days(r.schedule_date)=to_days('"+map.get("date").toString()+"') "
  750 + + " and r.gs_bm like '%"+gsbm+"%' "
  751 + + " and r.fgs_bm like '%"+fgsbm+"%' "
740 752 + " GROUP BY r.schedule_date_str,r.xl_bm,r.xl_name,r.cl_zbh,r.j_gh,r.j_name) t"
741 753 + " left join (select * from bsth_c_ylb y where "
742 754 + " to_days(y.rq)=to_days('"+map.get("date").toString()+"') "
743 755 + " and y.xlbm= '" + map.get("line").toString() + "'"
744   - + " and y.ssgsdm like '%"+map.get("gsdmDaily").toString()+"%' "
745   - + " and y.fgsdm like '%"+map.get("fgsdmDaily").toString()+"%'"
  756 + + " and y.ssgsdm like '%"+gsbm+"%' "
  757 + + " and y.fgsdm like '%"+fgsbm+"%'"
746 758 + " ) x"
747 759 + " on t.cl_zbh = x.nbbm ";
748 760  
749   - System.out.println(new Date());
750 761 List<Daily> list = jdbcTemplate.query(sql, new RowMapper<Daily>() {
751 762 @Override
752 763 public Daily mapRow(ResultSet arg0, int arg1) throws SQLException {
... ...
src/main/java/com/bsth/service/gps/GpsService.java
... ... @@ -18,4 +18,6 @@ public interface GpsService {
18 18 Map<String,Object> findRoadSpeed(String lineCode);
19 19  
20 20 Map<String,Object> gpsCompletion(long schId);
  21 +
  22 + Map<String,Object> history_v2(String nbbm, long st, long et);
21 23 }
... ...
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
... ... @@ -5,11 +5,14 @@ import com.bsth.data.BasicData;
5 5 import com.bsth.data.arrival.ArrivalEntity;
6 6 import com.bsth.data.gpsdata.GpsEntity;
7 7 import com.bsth.data.gpsdata.GpsRealData;
  8 +import com.bsth.data.gpsdata.arrival.utils.GeoUtils;
8 9 import com.bsth.data.schedule.DayOfSchedule;
9 10 import com.bsth.entity.realcontrol.ScheduleRealInfo;
10 11 import com.bsth.repository.CarParkRepository;
11 12 import com.bsth.repository.StationRepository;
12 13 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  14 +import com.bsth.service.gps.entity.HistoryGps_DTO;
  15 +import com.bsth.service.gps.entity.Road_DTO;
13 16 import com.bsth.util.DateUtils;
14 17 import com.bsth.util.TransGPS;
15 18 import com.bsth.util.TransGPS.Location;
... ... @@ -235,6 +238,9 @@ public class GpsServiceImpl implements GpsService {
235 238 bdLoc = TransGPS.bd_encrypt(gdLoc);
236 239 map.put("bd_lon", bdLoc.getLng());
237 240 map.put("bd_lat", bdLoc.getLat());
  241 + //原始坐标
  242 + map.put("lon", lon);
  243 + map.put("lat", lat);
238 244  
239 245 map.put("deviceId", rs.getString("DEVICE_ID"));
240 246 map.put("ts", rs.getLong("TS"));
... ... @@ -510,6 +516,49 @@ public class GpsServiceImpl implements GpsService {
510 516 return rs;
511 517 }
512 518  
  519 + @Override
  520 + public Map<String, Object> history_v2(String nbbm, long st, long et) {
  521 + Map<String, Object> rs = new HashMap<>();
  522 +
  523 + try {
  524 + //获取历史gps 数据
  525 + List<HistoryGps_DTO> list = HistoryGps_DTO.craete(history(new String[]{nbbm}, st, et));
  526 + if(list!=null && list.size() > 0){
  527 + //获取路段信息
  528 + String sql = "select ID, ST_AsText(GROAD_VECTOR) as GROAD_VECTOR,ROAD_CODE,ROAD_NAME,SPEED from bsth_c_road where road_code in(select section_code from bsth_c_sectionroute where line_code=? and destroy=0)";
  529 + List<Road_DTO> roads = Road_DTO.craete(jdbcTemplate.queryForList(sql, list.get(0).getLineId()));
  530 +
  531 + //为GPS数据关联路段信息
  532 + for(HistoryGps_DTO gps : list){
  533 + matchRoadToGps(gps, roads);
  534 + }
  535 + }
  536 +
  537 + rs.put("status", ResponseCode.SUCCESS);
  538 + rs.put("list", list);
  539 + }catch (Exception e){
  540 + logger.error("", e);
  541 + rs.put("status", ResponseCode.ERROR);
  542 + }
  543 + return rs;
  544 + }
  545 +
  546 + private void matchRoadToGps(HistoryGps_DTO gps, List<Road_DTO> roads){
  547 + double min = -1,distance;
  548 + Road_DTO nearRoad = null;
  549 + for(Road_DTO road : roads){
  550 + distance = GeoUtils.getDistanceFromLine(road.getLineStr(), gps.getPoint());
  551 +
  552 + if (min > distance || min == -1) {
  553 + min = distance;
  554 + nearRoad = road;
  555 + }
  556 + }
  557 +
  558 + gps.setRoad(nearRoad);
  559 + gps.setRoadMinDistance(min);
  560 + }
  561 +
513 562 private void sortGpsList(final Field f, List<GpsEntity> rs) {
514 563 Collections.sort(rs, new Comparator<GpsEntity>() {
515 564  
... ...
src/main/java/com/bsth/service/gps/entity/HistoryGps_DTO.java 0 → 100644
  1 +package com.bsth.service.gps.entity;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.bsth.data.arrival.ArrivalEntity;
  6 +import com.fasterxml.jackson.annotation.JsonIgnore;
  7 +import com.vividsolutions.jts.geom.Coordinate;
  8 +import com.vividsolutions.jts.geom.GeometryFactory;
  9 +import com.vividsolutions.jts.geom.Point;
  10 +
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +
  14 +/**
  15 + * 历史GPS DTO
  16 + * Created by panzhao on 2017/4/5.
  17 + */
  18 +public class HistoryGps_DTO {
  19 +
  20 + public static List<HistoryGps_DTO> craete(List<Map<String, Object>> mapList){
  21 + List<HistoryGps_DTO> list = JSONObject.parseArray(JSON.toJSONString(mapList), HistoryGps_DTO.class);
  22 +
  23 + GeometryFactory geometryFactory = new GeometryFactory();
  24 + Point point;
  25 + for(HistoryGps_DTO gps : list){
  26 + point = geometryFactory.createPoint(new Coordinate(gps.getLat(), gps.getLon()));
  27 + gps.setPoint(point);
  28 + }
  29 + return list;
  30 + }
  31 +
  32 + private double gcj_lon;
  33 + private double gcj_lat;
  34 +
  35 + private double bd_lon;
  36 + private double bd_lat;
  37 +
  38 + private double lon;
  39 + private double lat;
  40 +
  41 + private String deviceId;
  42 + private long ts;
  43 + private long timestamp;
  44 + private String stopNo;
  45 + private float direction;
  46 +
  47 + private String lineId;
  48 + private float speed;
  49 + private ArrivalEntity inout_stop_info;
  50 + private int inout_stop;
  51 +
  52 + private String nbbm;
  53 + private int state;
  54 + private int upDown;
  55 +
  56 + @JsonIgnore
  57 + private Point point;
  58 +
  59 + /** 路段 */
  60 + private Road_DTO road;
  61 + /** 和路段的最短距离 */
  62 + private double roadMinDistance;
  63 +
  64 + public double getGcj_lon() {
  65 + return gcj_lon;
  66 + }
  67 +
  68 + public void setGcj_lon(double gcj_lon) {
  69 + this.gcj_lon = gcj_lon;
  70 + }
  71 +
  72 + public double getGcj_lat() {
  73 + return gcj_lat;
  74 + }
  75 +
  76 + public void setGcj_lat(double gcj_lat) {
  77 + this.gcj_lat = gcj_lat;
  78 + }
  79 +
  80 + public double getBd_lon() {
  81 + return bd_lon;
  82 + }
  83 +
  84 + public void setBd_lon(double bd_lon) {
  85 + this.bd_lon = bd_lon;
  86 + }
  87 +
  88 + public double getBd_lat() {
  89 + return bd_lat;
  90 + }
  91 +
  92 + public void setBd_lat(double bd_lat) {
  93 + this.bd_lat = bd_lat;
  94 + }
  95 +
  96 + public String getDeviceId() {
  97 + return deviceId;
  98 + }
  99 +
  100 + public void setDeviceId(String deviceId) {
  101 + this.deviceId = deviceId;
  102 + }
  103 +
  104 + public long getTs() {
  105 + return ts;
  106 + }
  107 +
  108 + public void setTs(long ts) {
  109 + this.ts = ts;
  110 + }
  111 +
  112 + public long getTimestamp() {
  113 + return timestamp;
  114 + }
  115 +
  116 + public void setTimestamp(long timestamp) {
  117 + this.timestamp = timestamp;
  118 + }
  119 +
  120 + public String getStopNo() {
  121 + return stopNo;
  122 + }
  123 +
  124 + public void setStopNo(String stopNo) {
  125 + this.stopNo = stopNo;
  126 + }
  127 +
  128 + public float getDirection() {
  129 + return direction;
  130 + }
  131 +
  132 + public void setDirection(float direction) {
  133 + this.direction = direction;
  134 + }
  135 +
  136 + public String getLineId() {
  137 + return lineId;
  138 + }
  139 +
  140 + public void setLineId(String lineId) {
  141 + this.lineId = lineId;
  142 + }
  143 +
  144 + public float getSpeed() {
  145 + return speed;
  146 + }
  147 +
  148 + public void setSpeed(float speed) {
  149 + this.speed = speed;
  150 + }
  151 +
  152 + public ArrivalEntity getInout_stop_info() {
  153 + return inout_stop_info;
  154 + }
  155 +
  156 + public void setInout_stop_info(ArrivalEntity inout_stop_info) {
  157 + this.inout_stop_info = inout_stop_info;
  158 + }
  159 +
  160 + public int getInout_stop() {
  161 + return inout_stop;
  162 + }
  163 +
  164 + public void setInout_stop(int inout_stop) {
  165 + this.inout_stop = inout_stop;
  166 + }
  167 +
  168 + public String getNbbm() {
  169 + return nbbm;
  170 + }
  171 +
  172 + public void setNbbm(String nbbm) {
  173 + this.nbbm = nbbm;
  174 + }
  175 +
  176 + public int getState() {
  177 + return state;
  178 + }
  179 +
  180 + public void setState(int state) {
  181 + this.state = state;
  182 + }
  183 +
  184 + public int getUpDown() {
  185 + return upDown;
  186 + }
  187 +
  188 + public void setUpDown(int upDown) {
  189 + this.upDown = upDown;
  190 + }
  191 +
  192 + public Road_DTO getRoad() {
  193 + return road;
  194 + }
  195 +
  196 + public void setRoad(Road_DTO road) {
  197 + this.road = road;
  198 + }
  199 +
  200 + public double getRoadMinDistance() {
  201 + return roadMinDistance;
  202 + }
  203 +
  204 + public void setRoadMinDistance(double roadMinDistance) {
  205 + this.roadMinDistance = roadMinDistance;
  206 + }
  207 +
  208 + public double getLon() {
  209 + return lon;
  210 + }
  211 +
  212 + public void setLon(double lon) {
  213 + this.lon = lon;
  214 + }
  215 +
  216 + public double getLat() {
  217 + return lat;
  218 + }
  219 +
  220 + public void setLat(double lat) {
  221 + this.lat = lat;
  222 + }
  223 +
  224 + public Point getPoint() {
  225 + return point;
  226 + }
  227 +
  228 + public void setPoint(Point point) {
  229 + this.point = point;
  230 + }
  231 +}
... ...
src/main/java/com/bsth/service/gps/entity/Road_DTO.java 0 → 100644
  1 +package com.bsth.service.gps.entity;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.fasterxml.jackson.annotation.JsonIgnore;
  6 +import com.vividsolutions.jts.geom.Coordinate;
  7 +import com.vividsolutions.jts.geom.GeometryFactory;
  8 +import com.vividsolutions.jts.geom.LineString;
  9 +
  10 +import java.util.ArrayList;
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +
  14 +/**
  15 + * 路段信息DTO
  16 + * Created by panzhao on 2017/4/5.
  17 + */
  18 +public class Road_DTO {
  19 +
  20 + public static List<Road_DTO> craete(List<Map<String, Object>> mapList){
  21 + List<Road_DTO> list = JSONObject.parseArray(JSON.toJSONString(mapList), Road_DTO.class);
  22 + //处理路段坐标
  23 + String polygonStr;
  24 + String[] coords;
  25 + int i, len;
  26 + String[] temps;//1, temps2;
  27 + List<Coordinate> cds;
  28 +
  29 + GeometryFactory geometryFactory = new GeometryFactory();
  30 + for(Road_DTO road : list){
  31 + polygonStr = road.getGROAD_VECTOR();
  32 + coords = polygonStr.substring(11, polygonStr.length() - 1).split(",");
  33 + len = coords.length;
  34 +
  35 + cds = new ArrayList<>();
  36 + //每2个点连一条线
  37 + for(i = 0; i < len; i ++){
  38 + temps = coords[i].split(" ");
  39 + cds.add(new Coordinate(Float.parseFloat(temps[1]), Float.parseFloat(temps[0])));
  40 + }
  41 +
  42 + Coordinate[] cdsArray = new Coordinate[cds.size()];
  43 + road.setLineStr(geometryFactory.createLineString(cds.toArray(cdsArray)));
  44 + }
  45 + return list;
  46 + }
  47 +
  48 + private long ID;
  49 +
  50 + @JsonIgnore
  51 + private String GROAD_VECTOR;
  52 +
  53 + private String ROAD_CODE;
  54 +
  55 + private String ROAD_NAME;
  56 +
  57 + private double SPEED;
  58 +
  59 + @JsonIgnore
  60 + private LineString lineStr;
  61 +
  62 + public long getID() {
  63 + return ID;
  64 + }
  65 +
  66 + public void setID(long ID) {
  67 + this.ID = ID;
  68 + }
  69 +
  70 + public String getGROAD_VECTOR() {
  71 + return GROAD_VECTOR;
  72 + }
  73 +
  74 + public void setGROAD_VECTOR(String GROAD_VECTOR) {
  75 + this.GROAD_VECTOR = GROAD_VECTOR;
  76 + }
  77 +
  78 + public String getROAD_CODE() {
  79 + return ROAD_CODE;
  80 + }
  81 +
  82 + public void setROAD_CODE(String ROAD_CODE) {
  83 + this.ROAD_CODE = ROAD_CODE;
  84 + }
  85 +
  86 + public String getROAD_NAME() {
  87 + return ROAD_NAME;
  88 + }
  89 +
  90 + public void setROAD_NAME(String ROAD_NAME) {
  91 + this.ROAD_NAME = ROAD_NAME;
  92 + }
  93 +
  94 + public double getSPEED() {
  95 + return SPEED;
  96 + }
  97 +
  98 + public void setSPEED(double SPEED) {
  99 + this.SPEED = SPEED;
  100 + }
  101 +
  102 + public LineString getLineStr() {
  103 + return lineStr;
  104 + }
  105 +
  106 + public void setLineStr(LineString lineStr) {
  107 + this.lineStr = lineStr;
  108 + }
  109 +}
... ...
src/main/java/com/bsth/service/impl/SectionRouteServiceImpl.java
... ... @@ -8,7 +8,12 @@ import java.util.Map;
8 8 import org.springframework.beans.factory.annotation.Autowired;
9 9 import org.springframework.stereotype.Service;
10 10  
  11 +import com.bsth.common.ResponseCode;
  12 +import com.bsth.entity.Line;
  13 +import com.bsth.entity.Section;
11 14 import com.bsth.entity.SectionRoute;
  15 +import com.bsth.repository.LineRepository;
  16 +import com.bsth.repository.SectionRepository;
12 17 import com.bsth.repository.SectionRouteRepository;
13 18 import com.bsth.service.SectionRouteService;
14 19  
... ... @@ -34,6 +39,12 @@ public class SectionRouteServiceImpl extends BaseServiceImpl&lt;SectionRoute, Integ
34 39 @Autowired
35 40 SectionRouteRepository repository;
36 41  
  42 + @Autowired
  43 + SectionRepository repository2;
  44 +
  45 + @Autowired
  46 + LineRepository lineRepository;
  47 +
37 48 /**
38 49 * @Description :TODO(查询路段信息)
39 50 *
... ... @@ -43,21 +54,13 @@ public class SectionRouteServiceImpl extends BaseServiceImpl&lt;SectionRoute, Integ
43 54 */
44 55 @Override
45 56 public List<Map<String, Object>> getSectionRoute(Map<String, Object> map) {
46   -
47 57 int lineId = map.get("line.id_eq").equals("") ? 0 : Integer.parseInt(map.get("line.id_eq").toString());
48   -
49 58 int directions = map.get("directions_eq").equals("") ? 0 : Integer.parseInt(map.get("directions_eq").toString());
50   -
51 59 List<Object[]> listObjArray = repository.getSectionRoute(lineId, directions);
52   -
53 60 List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
54   -
55 61 if(listObjArray.size()>0) {
56   -
57 62 for(int i = 0 ; i<listObjArray.size() ; i++){
58   -
59 63 Map<String, Object> tempM = new HashMap<String, Object>();
60   -
61 64 tempM.put("sectionrouteId",listObjArray.get(i)[0]);
62 65 tempM.put("sectionrouteLine",listObjArray.get(i)[1]);
63 66 tempM.put("sectionrouteLineCode",listObjArray.get(i)[2]);
... ... @@ -81,12 +84,12 @@ public class SectionRouteServiceImpl extends BaseServiceImpl&lt;SectionRoute, Integ
81 84 tempM.put("sectionTime",listObjArray.get(i)[20]);
82 85 tempM.put("sectiondbType",listObjArray.get(i)[21]);
83 86 tempM.put("sectionSpeedLimet",listObjArray.get(i)[22]);
  87 + tempM.put("destroy",listObjArray.get(i)[23]);
  88 + tempM.put("versions",listObjArray.get(i)[24]);
  89 + tempM.put("descriptions",listObjArray.get(i)[25]);
84 90 resultList.add(tempM);
85   -
86 91 }
87   -
88 92 }
89   -
90 93 return resultList;
91 94 }
92 95  
... ... @@ -228,5 +231,68 @@ public class SectionRouteServiceImpl extends BaseServiceImpl&lt;SectionRoute, Integ
228 231  
229 232 return list;
230 233 }
  234 +
  235 + @Override
  236 + public Map<String, Object> quoteSection(Map<String, Object> map) {
  237 + Map<String, Object> resultMap = new HashMap<String, Object>();
  238 + try {
  239 + Integer line = map.get("lineId") ==null ? null : Integer.parseInt(map.get("lineId").toString());
  240 + Integer dir = map.get("dir")==null ? null : Integer.parseInt(map.get("dir").toString());
  241 + Integer toDir = map.get("toDir")==null ? null : Integer.parseInt(map.get("toDir").toString());
  242 + if(line!=null && dir!=null) {
  243 + List<Object[]> list = repository.getSectionRoute(line, dir);
  244 + int src = repository.sectionRouteCodeMaxId();
  245 + for(int i = 0 ; i<list.size() ; i++) {
  246 + int sectionId = Integer.parseInt(String.valueOf(repository2.sectionMaxId())) + 1 ;
  247 + String sectionCode = String.valueOf(sectionId);
  248 + String sectionName = list.get(i)[9] == null ? null : list.get(i)[9].toString();
  249 + String crosesRoad = list.get(i)[10] == null ? null : list.get(i)[10].toString();
  250 + String endNode = list.get(i)[11] == null ? null : list.get(i)[11].toString();
  251 + String startNode = list.get(i)[12] == null ? null : list.get(i)[12].toString();
  252 + String middleNode = list.get(i)[13] == null ? null : list.get(i)[13].toString();
  253 + String sectionType = list.get(i)[14] == null ? null : list.get(i)[14].toString();
  254 + String csectionVector = list.get(i)[15] == null ? null : list.get(i)[15].toString();
  255 + String bsectionVector = list.get(i)[16] == null ? null : list.get(i)[16].toString();
  256 + String gsectionVector = list.get(i)[17] == null ? null : list.get(i)[17].toString();
  257 + String roadCoding = list.get(i)[18] == null ? null : list.get(i)[18].toString();
  258 + Double sectionDistance = list.get(i)[19] == null ? null : Double.parseDouble(list.get(i)[19].toString());
  259 + Double sectionTime = list.get(i)[20] == null ? null : Double.parseDouble(list.get(i)[20].toString());
  260 + String dbType = list.get(i)[21] == null ? null : list.get(i)[21].toString();
  261 + Double speedLimit = list.get(i)[22] == null ? null : Double.parseDouble(list.get(i)[22].toString());
  262 + Integer destroy = list.get(i)[23] == null ? null : Integer.parseInt(list.get(i)[23].toString());
  263 + Integer versions = list.get(i)[24] == null ? null : Integer.parseInt(list.get(i)[24].toString());
  264 + String descriptions = list.get(i)[25] == null ? null : list.get(i)[25].toString();
  265 + repository2.systemSave(sectionCode,
  266 + sectionName, crosesRoad, endNode, startNode, middleNode,
  267 + gsectionVector, bsectionVector,
  268 + sectionType, csectionVector, roadCoding,
  269 + sectionDistance, sectionTime, dbType, speedLimit, descriptions, versions, sectionId);
  270 + int sectionRouteId = Integer.parseInt(String.valueOf(repository.sectionRouteMaxId())) + 1 ;
  271 + SectionRoute sr = new SectionRoute();
  272 + Line lineObject = lineRepository.findOne(line);
  273 + Section section = repository2.findOne(sectionId);
  274 + Integer xh = (src == 0 ? (toDir ==1? (list.size()-i)*10 : (list.size()+i)*10) : toDir==1? (src + (list.size()-i)*10) : (src + (list.size()+i)*10)) ;
  275 + sr.setId(sectionRouteId);
  276 + sr.setSectionrouteCode(xh);
  277 + sr.setLineCode(lineObject.getLineCode());
  278 + sr.setSectionCode(sectionCode);
  279 + sr.setDirections(toDir);
  280 + sr.setVersions(versions);
  281 + sr.setDestroy(destroy);
  282 + sr.setLine(lineObject);
  283 + sr.setSection(section);
  284 + sr.setSectionCode(section.getSectionCode());
  285 + sr.setDescriptions(descriptions);
  286 + sr.setIsRoadeSpeed(1);
  287 + repository.save(sr);
  288 + }
  289 + }
  290 + resultMap.put("status", ResponseCode.SUCCESS);
  291 + } catch (Exception e) {
  292 + resultMap.put("status", ResponseCode.ERROR);
  293 + logger.error("save erro.", e);
  294 + }
  295 + return resultMap;
  296 + }
231 297  
232 298 }
... ...
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
... ... @@ -17,6 +17,7 @@ import com.bsth.util.db.DBUtils_MS;
17 17 import com.google.common.base.Splitter;
18 18 import org.springframework.beans.factory.annotation.Autowired;
19 19 import org.springframework.stereotype.Service;
  20 +import org.springframework.transaction.annotation.Transactional;
20 21  
21 22 import java.io.ByteArrayInputStream;
22 23 import java.io.File;
... ... @@ -1080,4 +1081,43 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
1080 1081  
1081 1082 return rs;
1082 1083 }
  1084 +
  1085 + @Override
  1086 + @Transactional
  1087 + public Map<String, Object> updSwitchDir(String lineIds) {
  1088 + Map<String, Object> rs = new HashMap<>();
  1089 + try{
  1090 + if(lineIds!=null && lineIds !="") {
  1091 + Integer lineId = Integer.parseInt(lineIds);
  1092 + // 上行站点切换到下行.
  1093 + repository.stationRouteDir(lineId);
  1094 + routeRepository.sectionRouteDir(lineId);
  1095 + }
  1096 + rs.put("status", ResponseCode.SUCCESS);
  1097 + }catch(Exception e){
  1098 + logger.error("", e);
  1099 + rs.put("status", ResponseCode.ERROR);
  1100 + }
  1101 + return rs;
  1102 + }
  1103 +
  1104 + @Override
  1105 + @Transactional
  1106 + public Map<String, Object> upddis(Map<String, Object> map) {
  1107 + Map<String, Object> rs = new HashMap<>();
  1108 + try{
  1109 + Iterator it = map.entrySet().iterator();
  1110 + while(it.hasNext()){
  1111 + java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
  1112 + Integer id = Integer.parseInt(entry.getKey().toString().split("_")[1]); //返回对应的键
  1113 + Double dis = Double.parseDouble(entry.getValue().toString()) / 1000; //返回对应的值
  1114 + repository.upddis(id, dis);
  1115 + }
  1116 + rs.put("status", ResponseCode.SUCCESS);
  1117 + }catch(Exception e){
  1118 + logger.error("", e);
  1119 + rs.put("status", ResponseCode.ERROR);
  1120 + }
  1121 + return rs;
  1122 + }
1083 1123 }
... ...
src/main/java/com/bsth/service/oil/CwjyService.java
1 1 package com.bsth.service.oil;
2 2  
3 3  
  4 +import java.util.List;
4 5 import java.util.Map;
5 6  
6 7 import com.bsth.entity.oil.Cwjy;
... ... @@ -9,8 +10,8 @@ import com.bsth.service.BaseService;
9 10 import com.bsth.util.PageObject;
10 11  
11 12 public interface CwjyService extends BaseService<Cwjy, Integer>{
12   - PageObject<Ylxxb> Pagequery(Map<String, Object> map) ;
  13 + List<Ylxxb> Pagequery(Map<String, Object> map) ;
13 14 Ylxxb bynbbm(Map<String, Object> map);
14 15  
15   - Map<String, Object> savejzl(Ylxxb t);
  16 + Map<String, Object> savejzl(Map<String, Object> map) throws Exception ;
16 17 }
... ...
src/main/java/com/bsth/service/oil/DlbService.java
1 1 package com.bsth.service.oil;
2 2  
  3 +import java.util.List;
3 4 import java.util.Map;
4 5  
5 6 import com.bsth.entity.oil.Dlb;
... ... @@ -11,4 +12,10 @@ public interface DlbService extends BaseService&lt;Dlb, Integer&gt;{
11 12 Map<String, Object> sort(Map<String, Object> map);
12 13  
13 14 Map<String, Object> checkDl(Map<String, Object> map);
  15 +
  16 + List<Dlb> listDlb(Map<String, Object> map);
  17 +
  18 + Map<String, Object> sumYlb(Map<String, Object> map);
  19 +
  20 + Map<String, Object> saveDlbList(Map<String, Object> map) throws Exception;
14 21 }
... ...
src/main/java/com/bsth/service/oil/YlxxbService.java
... ... @@ -9,6 +9,6 @@ import com.bsth.util.PageObject;
9 9 public interface YlxxbService extends BaseService<Ylxxb, Integer>{
10 10 PageObject<Ylxxb> Pagequery(Map<String, Object> map) ;
11 11  
12   - Map<String, Object> checkJsy(Map<String, Object> map);
  12 + Map<String, Object> checkJsy(Map<String, Object> map) throws Exception;
13 13  
14 14 }
... ...
src/main/java/com/bsth/service/oil/impl/CwjyServiceImpl.java
... ... @@ -6,17 +6,26 @@ import java.text.ParseException;
6 6 import java.text.SimpleDateFormat;
7 7 import java.util.ArrayList;
8 8 import java.util.Arrays;
  9 +import java.util.Date;
9 10 import java.util.HashMap;
10 11 import java.util.List;
11 12 import java.util.Map;
12 13  
  14 +import javax.transaction.Transactional;
  15 +
  16 +import org.apache.commons.lang3.StringEscapeUtils;
  17 +import org.slf4j.Logger;
  18 +import org.slf4j.LoggerFactory;
13 19 import org.springframework.beans.factory.annotation.Autowired;
14 20 import org.springframework.jdbc.core.JdbcTemplate;
15 21 import org.springframework.jdbc.core.RowMapper;
16 22 import org.springframework.stereotype.Service;
17 23  
  24 +import com.alibaba.fastjson.JSONArray;
  25 +import com.alibaba.fastjson.JSONObject;
18 26 import com.bsth.common.ResponseCode;
19 27 import com.bsth.entity.oil.Cwjy;
  28 +import com.bsth.entity.oil.Cyl;
20 29 import com.bsth.entity.oil.Ylxxb;
21 30 import com.bsth.repository.oil.CwjyRepository;
22 31 import com.bsth.repository.oil.YlxxbRepository;
... ... @@ -35,8 +44,8 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
35 44  
36 45 @Autowired
37 46 JdbcTemplate jdbcTemplate;
38   -
39   - @SuppressWarnings("unchecked")
  47 + Logger logger = LoggerFactory.getLogger(this.getClass());
  48 + /*@SuppressWarnings("unchecked")
40 49 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) {
41 50 int page=Integer.parseInt(map.get("page").toString());
42 51 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -129,7 +138,7 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
129 138 return t;
130 139 }
131 140 });
132   - /*List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
  141 + List<Object[]> list=repository.obtainCwjycl(rq,nbbm);
133 142 for (int i = 0; i < list.size(); i++) {
134 143 Ylxxb y=new Ylxxb();
135 144 y.setGsdm(list.get(i)[0]==null?"":list.get(i)[0].toString());
... ... @@ -148,13 +157,13 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
148 157 e.printStackTrace();
149 158 }
150 159 yList.add(y);
151   - }*/
  160 + }
152 161 PageHelper pageHelper = new PageHelper(listsize, map);
153 162 pageHelper.getMap();
154 163 PageObject<Ylxxb> pageObject=pageHelper.getPageObject();
155 164 pageObject.setDataList(yList);
156 165 return pageObject;
157   - }
  166 + }*/
158 167  
159 168 @Override
160 169 public Ylxxb bynbbm(Map<String, Object> map) {
... ... @@ -188,28 +197,119 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
188 197 return y;
189 198 }
190 199  
  200 + @Transactional
191 201 @Override
192   - public Map<String, Object> savejzl(Ylxxb t) {
  202 + public Map<String, Object> savejzl(Map<String, Object> maps) throws Exception {
193 203 // TODO Auto-generated method stub
194 204 Map<String, Object> map=new HashMap<String,Object>();
195 205 try {
196 206 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
197   - String rq = sdf.format(t.getYyrq());
198   - String nbbm=t.getNbbm();
199   - List<Ylxxb> yList=ylxxbRepository.obtainYlxx2(rq,nbbm);
200   - if(yList.size()>0){
201   - t.setId(yList.get(0).getId());
202   - ylxxbRepository.save(t);
203   - }else{
204   - ylxxbRepository.save(t);
  207 +// String rq = sdf.format(t.getYyrq());
  208 +// String nbbm=t.getNbbm();
  209 +// List<Ylxxb> yList=ylxxbRepository.obtainYlxx2(rq,nbbm);
  210 +// if(yList.size()>0){
  211 +// t.setId(yList.get(0).getId());
  212 +// ylxxbRepository.save(t);
  213 +// }else{
  214 +// ylxxbRepository.save(t);
  215 +// }
  216 + String gsbm=maps.get("gsbm").toString();
  217 + String fgsbm=maps.get("fgsbm").toString();
  218 + String rq=maps.get("rq").toString();
  219 + Date date=sdf.parse(rq);
  220 + String json =StringEscapeUtils.unescapeHtml4(maps.get("ylbList").toString());
  221 + JSONArray jsonArray=JSONArray.parseArray(json);
  222 + JSONObject jsonObject;
  223 + // 获取车辆存油信息
  224 + for (int i = 0; i < jsonArray.size(); i++) {
  225 + jsonObject=jsonArray.getJSONObject(i);
  226 + Integer id =jsonObject.getInteger("id");
  227 + String jsy=jsonObject.getString("jsy");
  228 + double jzl=jsonObject.getDoubleValue("jzl");
  229 + String stationid=jsonObject.getString("stationid");
  230 + String nbbm=jsonObject.getString("nbbm");
  231 + int nylx=jsonObject.getIntValue("nylx");
  232 + String jyggh=jsonObject.getString("jyggh");
  233 + String bz=jsonObject.getString("bz");
  234 + Ylxxb y;
  235 + if(id>0){
  236 + y=ylxxbRepository.findOne(id);
  237 + y.setJsy(jsy);
  238 + y.setJzl(jzl);
  239 + y.setStationid(stationid);
  240 + y.setJyggh(jyggh);
  241 + y.setBz(bz);
  242 + y.setCreatetime(new Date());
  243 + y.setYyrq(date);
  244 + ylxxbRepository.save(y);
  245 + }else{
  246 + if(jsy!="" && jzl>0){
  247 + y=new Ylxxb();
  248 + y.setGsdm(gsbm);
  249 + y.setJsy(jsy);
  250 + y.setNbbm(nbbm);
  251 + y.setJzl(jzl);
  252 + y.setStationid(stationid);
  253 + y.setJyggh(jyggh);
  254 + y.setBz(bz);
  255 + y.setCreatetime(new Date());
  256 + y.setYyrq(date);
  257 + y.setJylx(1);
  258 + y.setNylx(0);
  259 + ylxxbRepository.save(y);
  260 + }
  261 + }
205 262 }
206 263 map.put("status", ResponseCode.SUCCESS);
  264 +
207 265 } catch (Exception e) {
208 266 map.put("status", ResponseCode.ERROR);
209   - e.printStackTrace();
  267 + logger.error("save erro.", e);
  268 + throw e;
210 269 // TODO: handle exception
211 270 }
212 271 return map;
213 272 }
214 273  
  274 + @Override
  275 + public List<Ylxxb> Pagequery(Map<String, Object> map) {
  276 + // TODO Auto-generated method stub
  277 + String rq=map.get("rq").toString();
  278 + String nbbm=map.get("nbbh").toString();
  279 + String sql="SELECT a.gsdm as gsdm,a.fgsdm as fgsdm,a.nbbm as nbbm,"
  280 + + "b.jyggh as jyggh,b.jzl as jzl ,b.stationid as stationid,b.jsy as jsy,"
  281 + + "b.nylx as nylx,b.yj as yj,b.bz as bz,b.id as id ,c.jsy as ldgh FROM bsth_c_cwjy a "+
  282 + " left join ("
  283 + + " select * from bsth_c_ylxxb b "
  284 + + "where to_days(b.yyrq)=to_days('"+rq+"') and jylx=1) b " +
  285 + " on a.nbbm=b.nbbm "
  286 + + "left join (select nbbm,group_concat(jsy) as jsy "
  287 + + "from bsth_c_ylb where to_days(rq)= to_days('"+rq+"' ) group by nbbm "+
  288 + " ) c on a.nbbm=c.nbbm "
  289 + + "where a.nbbm like '%"+nbbm+"%'";
  290 +
  291 + List<Ylxxb> yList= jdbcTemplate.query(sql,
  292 + new RowMapper<Ylxxb>(){
  293 + @Override
  294 + public Ylxxb mapRow(ResultSet rs, int rowNum) throws SQLException {
  295 + Ylxxb t=new Ylxxb();
  296 + t.setId(rs.getInt("id"));
  297 + t.setGsdm(rs.getString("gsdm"));
  298 + t.setFgsdm(rs.getString("fgsdm"));
  299 + t.setNbbm(rs.getString("nbbm"));
  300 + t.setJyggh(rs.getString("jyggh"));
  301 + t.setJsy(rs.getString("jsy"));
  302 + t.setJzl(rs.getDouble("jzl"));
  303 + t.setStationid(rs.getString("stationid"));
  304 + t.setNylx(rs.getInt("nylx"));
  305 + t.setYj(rs.getDouble("yj"));
  306 + t.setBz(rs.getString("bz"));
  307 + t.setLdgh(rs.getString("ldgh"));
  308 + return t;
  309 + }
  310 + });
  311 +
  312 + return yList;
  313 + }
  314 +
215 315 }
... ...
src/main/java/com/bsth/service/oil/impl/DlbServiceImpl.java
... ... @@ -14,6 +14,7 @@ import java.util.Map;
14 14  
15 15 import javax.transaction.Transactional;
16 16  
  17 +import org.apache.commons.lang3.StringEscapeUtils;
17 18 import org.slf4j.Logger;
18 19 import org.slf4j.LoggerFactory;
19 20 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -22,8 +23,12 @@ import org.springframework.data.domain.Sort.Direction;
22 23 import org.springframework.jdbc.core.JdbcTemplate;
23 24 import org.springframework.stereotype.Service;
24 25  
  26 +import com.alibaba.fastjson.JSONArray;
  27 +import com.alibaba.fastjson.JSONObject;
25 28 import com.bsth.common.ResponseCode;
  29 +import com.bsth.data.BasicData;
26 30 import com.bsth.entity.Cars;
  31 +import com.bsth.entity.Line;
27 32 import com.bsth.entity.oil.Cdl;
28 33 import com.bsth.entity.oil.Cyl;
29 34 import com.bsth.entity.oil.Dlb;
... ... @@ -41,6 +46,7 @@ import com.bsth.repository.oil.YlxxbRepository;
41 46 import com.bsth.service.impl.BaseServiceImpl;
42 47 import com.bsth.service.oil.DlbService;
43 48 import com.bsth.service.realcontrol.ScheduleRealInfoService;
  49 +import com.bsth.util.Arith;
44 50  
45 51 @Service
46 52 public class DlbServiceImpl extends BaseServiceImpl<Dlb,Integer> implements DlbService{
... ... @@ -93,13 +99,13 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
93 99 // TODO Auto-generated method stub
94 100 Map<String, Object> newMap=new HashMap<String,Object>();
95 101 //当天DLB信息
96   - List<Dlb> dlList=repository.obtainDl(rq);
  102 + List<Dlb> dlList=repository.obtainDl(rq, gsbm, "", line, "", "nbbm");
97 103 //当天YLXXB信息
98 104 List<Ylxxb> ylxxList=ylxxbRepository.obtainYlxx(rq,1,gsbm);
99 105 //当天加电信息表
100 106 List<Jdl> jdlList=jdlRepository.JdlList(rq);
101 107 //前一天所有车辆最后进场班次信息
102   - List<Dlb> dlListBe=repository.obtainYlbefore(rq);
  108 + List<Dlb> dlListBe=repository.obtainYlbefore(rq, "", "", "", "");
103 109 List<Cdl> cdyList=cdlRepository.obtainCdl();
104 110 //从排班表中计算出行驶的总里程
105 111 List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq,"","","","");
... ... @@ -129,6 +135,7 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
129 135 }
130 136 try {
131 137 //当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量
  138 + Double jzl=0.0;
132 139 if(map.get("seqNumber").toString().equals("1")){
133 140 boolean fage=true;
134 141 for (int i = 0; i < dlListBe.size(); i++) {
... ... @@ -143,7 +150,7 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
143 150 for (int y = 0; y < cdyList.size(); y++) {
144 151 Cdl cdl=cdyList.get(y);
145 152 if(map.get("clZbh").toString().equals(cdl.getNbbm())){
146   - t.setCzcd(cdl.getClcd());
  153 + t.setCzcd(cdl.getClcd()==null?0:cdl.getClcd());
147 154 fage=false;
148 155 break;
149 156 }
... ... @@ -152,9 +159,17 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
152 159 if(fage){
153 160 t.setCzcd(0.0);
154 161 }
  162 +
  163 + //手动导入没有驾驶员工号
  164 + for (int i = 0; i < jdlList.size(); i++) {
  165 + Jdl jdl=jdlList.get(i);
  166 + if(map.get("clZbh").toString().equals(jdl.getNbbm()) ){
  167 + jzl+=jdl.getJdl();
  168 + }
  169 + }
155 170 }
156 171  
157   - Double jzl=0.0;
  172 +
158 173 //把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
159 174 for(int j=0;j<ylxxList.size();j++){
160 175 Ylxxb ylxxb= ylxxList.get(j);
... ... @@ -163,24 +178,22 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
163 178 }
164 179 }
165 180  
166   - //手动导入没有驾驶员工号
167   - for (int i = 0; i < jdlList.size(); i++) {
168   - Jdl jdl=jdlList.get(i);
169   - if(map.get("clZbh").toString().equals(jdl.getNbbm()) ){
170   - jzl+=jdl.getJdl();
171   - }
172   - }
173 181 t.setCdl(jzl);
174   - t.setJzcd(t.getCzcd());
  182 + if(type.equals("add")){
  183 + t.setHd(jzl);
  184 + t.setJzcd(t.getCzcd());
  185 + }
  186 +
175 187 t.setNbbm(map.get("clZbh").toString());
176 188 t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());
177 189 t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));
178 190 t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());
179   - t.setHd(jzl);
180 191 t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
181 192 t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());
182 193 t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
  194 + t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
183 195 t.setRq(sdf.parse(rq));
  196 + t.setCreatetime(new Date());
184 197 /*if(type.equals("add")){
185 198 addList.add(t);
186 199 }else{
... ... @@ -247,25 +260,48 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
247 260 @Override
248 261 public Map<String, Object> checkDl(Map<String, Object> map) {
249 262 Map<String, Object> newMap=new HashMap<String,Object>();
250   - String xlbm=map.get("xlbm_eq").toString();
251   - String gsbm="";
252   - if(map.get("ssgsdm_like")!=null){
253   - gsbm=map.get("ssgsdm_like").toString();
254   - }
  263 +// String xlbm="";
  264 +// if(map.get("xlbm_like")!=null){
  265 +// xlbm=map.get("xlbm_like").toString();
  266 +// }
255 267 // TODO Auto-generated method stub
  268 +
  269 + List<Cars> carsList = carsRepository.findCars();
  270 + Map<String, String> carsMap = new HashMap<String, String>();
  271 + for (int i = 0; i < carsList.size(); i++) {
  272 + Cars c = carsList.get(i);
  273 + carsMap.put(c.getInsideCode(), c.getBrancheCompanyCode()==null?"":c.getBrancheCompanyCode());
  274 + }
  275 +
256 276 try{
257 277 //获取车辆存油信息
258   -// List<Cyl> cylList=cylRepository.findAll(new CustomerSpecs<Cyl>(newMap));
  278 +
259 279 String rq=map.get("rq").toString();
260   - List<Dlb> dlbList=repository.obtainDl(rq);
261   - List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,1,gsbm);
262   - //当天加电信息表
263   - List<Jdl> jdlList=jdlRepository.JdlList(rq);
  280 + String xlbm="";
  281 + if(map.get("xlbm_like")!=null){
  282 + xlbm= map.get("xlbm_like").toString().trim();
  283 + }
  284 + String gsbm="";
  285 + if(map.get("ssgsdm_like")!=null){
  286 + gsbm=map.get("ssgsdm_like").toString();
  287 + }
  288 + String fgsbm="";
  289 + if(map.get("fgsdm_like")!=null){
  290 + fgsbm=map.get("fgsdm_like").toString();
  291 + }
  292 + String nbbm="";
  293 + if(map.get("nbbm_eq")!=null){
  294 + nbbm=map.get("nbbm_eq").toString();
  295 + }
  296 + List<Dlb> ylListBe=repository.obtainYlbefore(rq, gsbm, "", xlbm, nbbm);
  297 +// List<Cdl> cylList=cdlRepository.obtainCdl(nbbm, gsbm);
  298 + List<Dlb> ylbList=repository.obtainDl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
  299 + List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm);
264 300 for (int i = 0; i < ylxxbList.size(); i++) {
265 301 Boolean fage=true;
266 302 Ylxxb y1=ylxxbList.get(i);
267   - for(int y=0;y<dlbList.size();y++){
268   - Dlb y2=dlbList.get(y);
  303 + for(int y=0;y<ylbList.size();y++){
  304 + Dlb y2=ylbList.get(y);
269 305 if(y1.getNbbm().equals(y2.getNbbm())){
270 306 fage=false;
271 307 break;
... ... @@ -279,39 +315,276 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
279 315 t.setJsy(y1.getJsy());
280 316 t.setCdl(y1.getJzl());
281 317 t.setSsgsdm(y1.getGsdm());
282   - t.setXlbm(xlbm);
283   - repository.save(t);
  318 + String fgsdm="";
  319 + if(null!=carsMap.get(y1.getNbbm())){
  320 + fgsdm=carsMap.get(y1.getNbbm());
  321 + }
  322 + t.setFgsdm(fgsdm);
  323 + t.setJcsx(1);
  324 + Line line= BasicData.nbbm2LineMap.get(y1.getNbbm());
  325 + if(null !=line){
  326 + t.setXlbm(line.getLineCode());
  327 + }else{
  328 + t.setXlbm("");
  329 + }
  330 + boolean status=true;
  331 + for (int j = 0; j < ylListBe.size(); j++) {
  332 + Dlb b=ylListBe.get(j);
  333 + if(b.getNbbm().equals(y1.getNbbm())){
  334 + t.setCzcd(b.getJzcd());
  335 + status=false;
  336 + break;
  337 + }
  338 + }
  339 + /*if(status){
  340 + for (int j = 0; j < cylList.size(); j++) {
  341 + Cyl c=cylList.get(j);
  342 + if(c.getNbbm().equals(y1.getNbbm())){
  343 + t.setCzyl(c.getCyl());
  344 + cyl=c;
  345 + status=false;
  346 + break;
  347 + }
  348 + }
  349 + }*/
  350 + if(status){
  351 + t.setCzcd(0.0);
  352 + }
  353 +// double jzyl=Arith.add(t.getJzl(), t.getCzyl());
  354 + t.setJzcd(100.0);
  355 + t.setHd(0.0);
  356 + if(fgsdm.equals(fgsbm)){
  357 + repository.save(t);
  358 + }
284 359 }
285 360 }
286   -
287   - for (int i = 0; i < jdlList.size(); i++) {
288   - Boolean fage=true;
289   - Jdl y1=jdlList.get(i);
290   - for(int y=0;y<dlbList.size();y++){
291   - Dlb y2=dlbList.get(y);
292   - if(y1.getNbbm().equals(y2.getNbbm())){
293   - fage=false;
294   - break;
  361 + newMap.put("status", ResponseCode.SUCCESS);
  362 + }catch(Exception e){
  363 + newMap.put("status", ResponseCode.ERROR);
  364 + logger.error("save erro.", e);
  365 + throw e;
  366 + }
  367 +
  368 + return newMap;
  369 + }
  370 +
  371 + @Override
  372 + public List<Dlb> listDlb(Map<String, Object> map) {
  373 + // TODO Auto-generated method stub
  374 + List<Dlb> listDlb=new ArrayList<Dlb>();
  375 + List<String> stringList=new ArrayList<String>();
  376 + String rq=map.get("rq").toString();
  377 + String gsbm=map.get("ssgsdm_like").toString();
  378 + String fgsbm=map.get("fgsdm_like").toString();
  379 + String xlbm=map.get("xlbm_like").toString().trim();
  380 + String nbbm=map.get("nbbm_eq").toString();
  381 + String sxtj=map.get("sxtj").toString();
  382 +
  383 + if(nbbm.trim()!=""){
  384 + stringList.add(nbbm);
  385 + listDlb=repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList);
  386 + }else{
  387 + //全部
  388 + if(sxtj.equals("0")){
  389 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  390 + for (int i = 0; i < objectLists.size(); i++) {
  391 + String clbm=objectLists.get(i)[0].toString();
  392 + stringList.add(clbm);
  393 + }
  394 + if(stringList.size()>0){
  395 + listDlb=repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList);
  396 + }
  397 + }else{
  398 + List<Object[]> objectLists;
  399 + if(sxtj.equals("3")){
  400 + //有加油没里程
  401 + objectLists=repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm);
  402 + for (int i = 0; i < objectLists.size(); i++) {
  403 + String clbm=objectLists.get(i)[0].toString();
  404 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  405 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  406 + if(jzl>0 && zlc<=0){
  407 + stringList.add(clbm);
  408 + }
  409 +
  410 + }
  411 +
  412 + }else if(sxtj.equals("4")){
  413 + //有里程没加油
  414 + objectLists=repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm);
  415 + for (int i = 0; i < objectLists.size(); i++) {
  416 + String clbm=objectLists.get(i)[0].toString();
  417 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  418 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  419 + if(zlc>0 && jzl<=0){
  420 + stringList.add(clbm);
  421 + }
  422 +
  423 + }
  424 + }else{
  425 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  426 + for (int i = 0; i < objectLists.size(); i++) {
  427 + String clbm=objectLists.get(i)[0].toString();
  428 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  429 + //一车一单
  430 + if(sxtj.equals("1")){
  431 + if(cs==1){
  432 + stringList.add(clbm);
  433 + }
  434 + }
  435 + //一车多单
  436 + if(sxtj.equals("2")){
  437 + if(cs>1){
  438 + stringList.add(clbm);
  439 + }
  440 + }
295 441 }
296 442 }
297 443  
298   - if(fage){
299   - Dlb t=new Dlb();
300   - t.setNbbm(y1.getNbbm());
301   - t.setRq(y1.getRq());
302   -// t.setJsy(y1.getJsy());
303   - t.setCdl(y1.getJdl());
304   - t.setSsgsdm(y1.getGsBm());
305   - t.setXlbm(xlbm);
306   - repository.save(t);
  444 + if(stringList.size()>0){
  445 + listDlb=repository.listDlb(rq, gsbm, fgsbm, xlbm, stringList);
307 446 }
308 447 }
309   - newMap.put("status", ResponseCode.SUCCESS);
  448 + }
  449 +
  450 + return listDlb;
  451 + }
  452 +
  453 + @Override
  454 + public Map<String, Object> sumYlb(Map<String, Object> map) {
  455 + // TODO Auto-generated method stub
  456 + List<String> stringList = new ArrayList<String>();
  457 + String rq = map.get("rq").toString();
  458 + String gsbm = map.get("ssgsdm_like").toString();
  459 + String fgsbm = map.get("fgsdm_like").toString();
  460 + String xlbm = map.get("xlbm_like").toString().trim();
  461 + String nbbm = map.get("nbbm_eq").toString();
  462 + String sxtj = map.get("sxtj").toString();
  463 + if (nbbm.trim() != "") {
  464 + stringList.add(nbbm);
  465 + } else {
  466 + if (!sxtj.equals("0")) {
  467 + List<Object[]> objectLists;
  468 + if (sxtj.equals("3")) {
  469 + // 有加油没里程
  470 + objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm);
  471 + for (int i = 0; i < objectLists.size(); i++) {
  472 + String clbm = objectLists.get(i)[0].toString();
  473 + double jzl = Double.parseDouble(objectLists.get(i)[1].toString());
  474 + double zlc = Double.parseDouble(objectLists.get(i)[2].toString());
  475 + if (jzl > 0 && zlc <= 0) {
  476 + stringList.add(clbm);
  477 + }
  478 +
  479 + }
  480 +
  481 + } else if (sxtj.equals("4")) {
  482 + // 有里程没加油
  483 + objectLists = repository.checkNbmmDl(rq, gsbm, fgsbm, xlbm, nbbm);
  484 + for (int i = 0; i < objectLists.size(); i++) {
  485 + String clbm = objectLists.get(i)[0].toString();
  486 + double jzl = Double.parseDouble(objectLists.get(i)[1].toString());
  487 + double zlc = Double.parseDouble(objectLists.get(i)[2].toString());
  488 + if (zlc > 0 && jzl <= 0) {
  489 + stringList.add(clbm);
  490 + }
  491 +
  492 + }
  493 + } else {
  494 + objectLists = repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm, nbbm);
  495 + for (int i = 0; i < objectLists.size(); i++) {
  496 + String clbm = objectLists.get(i)[0].toString();
  497 + int cs = Integer.parseInt(objectLists.get(i)[1].toString());
  498 + // 一车一单
  499 +
  500 + if (sxtj.equals("1")) {
  501 + if (cs == 1) {
  502 + stringList.add(clbm);
  503 + }
  504 + }
  505 + // 一车多单
  506 + if (sxtj.equals("2")) {
  507 + if (cs > 1) {
  508 + stringList.add(clbm);
  509 + }
  510 + }
  511 + }
  512 + }
  513 + }
  514 + }
  515 + List<Object[]> sumYlbList = new ArrayList<Object[]>();
  516 + if (sxtj.equals("0")) {
  517 + sumYlbList = repository.sumDlb2(rq, gsbm, fgsbm, xlbm, nbbm);
  518 + } else {
  519 + if (stringList.size() > 0) {
  520 +
  521 + // String strings[]=new String[stringList.size()];
  522 + // for(int i=0;i<stringList.size();i++){
  523 + // strings[i]=stringList.get(i);
  524 + // }
  525 + sumYlbList = repository.sumDlb(rq, gsbm, fgsbm, xlbm, stringList);
  526 + }
  527 +// else {
  528 +// sumYlbList = repository.sumDlb2(rq, gsbm, fgsbm, xlbm, nbbm);
  529 +// }
  530 + }
  531 + Double jzl = 0.0, yh = 0.0, sh = 0.0;
  532 + for (int i = 0; i < sumYlbList.size(); i++) {
  533 + jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString()));
  534 + yh = Arith.add(yh, Double.valueOf(sumYlbList.get(i)[1].toString()));
  535 + sh = Arith.add(sh, Double.valueOf(sumYlbList.get(i)[2].toString()));
  536 + }
  537 +
  538 + Map<String, Object> sumMap = new HashMap<String, Object>();
  539 + sumMap.put("jzl", jzl);
  540 + sumMap.put("yh", yh);
  541 + sumMap.put("sh", sh);
  542 + return sumMap;
  543 + }
  544 +
  545 +
  546 + @Transactional
  547 + @Override
  548 + public Map<String, Object> saveDlbList(Map<String, Object> map) throws Exception {
  549 + // TODO Auto-generated method stub
  550 + Map<String, Object> newMap=new HashMap<String,Object>();
  551 + try{
  552 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  553 + String json =StringEscapeUtils.unescapeHtml4(map.get("dlbList").toString());
  554 + JSONArray jsonArray=JSONArray.parseArray(json);
  555 + JSONObject jsonObject;
  556 + // 获取车辆存油信息
  557 +// List<Cyl> cylList = cylRepository.obtainCyl("","");
  558 + for (int i = 0; i < jsonArray.size(); i++) {
  559 +// Ylb t=new Ylb();
  560 + jsonObject=jsonArray.getJSONObject(i);
  561 + double czcd = jsonObject.getDoubleValue("czcd");
  562 + double cdl =jsonObject.getDoubleValue("cdl");
  563 + double jzcd =jsonObject.getDoubleValue("jzcd");
  564 + double sh =jsonObject.getDoubleValue("sh");
  565 + String shyy =jsonObject.getString("shyy");
  566 + double hd = jsonObject.getDoubleValue("hd");
  567 + int yhlx =jsonObject.getIntValue("yhlx");
  568 + Integer id =jsonObject.getInteger("id");
  569 +// String nbbm =jsonObject.getString("nbbm");
  570 +// String rq=jsonObject.getString("rq");
  571 + repository.dlbUpdate(id, czcd, jzcd, hd, sh, shyy, yhlx);
  572 + /*for (int z = 0; z < cylList.size(); z++) {
  573 + Cyl cyl = cylList.get(z);
  574 + if (nbbm.equals(cyl.getNbbm())) {
  575 + cyl.setCyl(jzyl);
  576 + cyl.setUpdatetime(sdf.parse(rq));
  577 + break;
  578 + }
  579 + cylRepository.save(cyl);
  580 + }*/
  581 + }
  582 + newMap.put("status", ResponseCode.SUCCESS);
310 583 }catch(Exception e){
311 584 newMap.put("status", ResponseCode.ERROR);
312 585 logger.error("save erro.", e);
  586 + throw e;
313 587 }
314   -
315 588 return newMap;
316 589 }
317 590 }
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -135,11 +135,9 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
135 135 Ylb ylb=ylListBe.get(i);
136 136 if(map.get("clZbh").toString().equals(ylb.getNbbm())){
137 137 if(ylb.getJzyl()!=null){
138   - if(ylb.getJzyl()>0){
139   - t.setCzyl(ylb.getJzyl());
140   - fage=false;
141   - break;
142   - }
  138 + t.setCzyl(ylb.getJzyl());
  139 + fage=false;
  140 + break;
143 141 }
144 142  
145 143 }
... ... @@ -272,7 +270,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
272 270 for (int i = 0; i < ylListBe.size(); i++) {
273 271 Ylb ylb = ylListBe.get(i);
274 272 if (map.get("clZbh").toString().equals(ylb.getNbbm())) {
275   - if(ylb.getJzyl()>0){
  273 + if(ylb.getJzyl()>=0){
276 274 t.setCzyl(ylb.getJzyl());
277 275 fage = false;
278 276 break;
... ... @@ -284,7 +282,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
284 282 for (int y = 0; y < clyList.size(); y++) {
285 283 Cyl cyl = clyList.get(y);
286 284 if (map.get("clZbh").toString().equals(cyl.getNbbm())) {
287   - if(cyl.getCyl()>0){
  285 + if(cyl.getCyl()>=0){
288 286 t.setCzyl(cyl.getCyl());
289 287 fage = false;
290 288 break;
... ... @@ -680,7 +678,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
680 678 if(map.get("nbbm_eq")!=null){
681 679 nbbm=map.get("nbbm_eq").toString();
682 680 }
683   - List<Ylb> ylListBe=repository.obtainYlbefore(rq, gsbm, fgsbm, xlbm, nbbm);
  681 + List<Ylb> ylListBe=repository.obtainYlbefore(rq, gsbm, "", xlbm, nbbm);
684 682 List<Cyl> cylList=cylRepository.obtainCyl(nbbm, gsbm);
685 683 List<Ylb> ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm");
686 684 List<Ylxxb> ylxxbList=ylxxbRepository.obtainYlxx(rq,0,gsbm);
... ... @@ -703,10 +701,18 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
703 701 t.setJsy(y1.getJsy());
704 702 t.setJzl(y1.getJzl());
705 703 t.setSsgsdm(y1.getGsdm());
706   - t.setFgsdm(carsMap.get(y1.getNbbm()));
  704 + String fgsdm="";
  705 + if(null !=carsMap.get(y1.getNbbm())){
  706 + fgsdm=carsMap.get(y1.getNbbm());
  707 + }
  708 + t.setFgsdm(fgsdm);
  709 + t.setJcsx(1);
707 710 Line line= BasicData.nbbm2LineMap.get(y1.getNbbm());
708   - if(null !=line)
709   - t.setXlbm(line.getLineCode());
  711 + if(null !=line){
  712 + t.setXlbm(line.getLineCode());
  713 + }else{
  714 + t.setXlbm("");
  715 + }
710 716 t.setJcsx(1);
711 717 boolean status=true;
712 718 for (int j = 0; j < ylListBe.size(); j++) {
... ... @@ -734,10 +740,12 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
734 740 // double jzyl=Arith.add(t.getJzl(), t.getCzyl());
735 741 t.setJzyl(Arith.add(t.getJzl(), t.getCzyl()));
736 742 t.setYh(0.0);
737   - repository.save(t);
738   - if(null!=cyl){
739   - cyl.setCyl(Arith.add(t.getJzl(), t.getCzyl()));
740   - cylRepository.save(cyl);
  743 + if(fgsdm.equals(fgsbm)){
  744 + repository.save(t);
  745 + if(null!=cyl){
  746 + cyl.setCyl(Arith.add(t.getJzl(), t.getCzyl()));
  747 + cylRepository.save(cyl);
  748 + }
741 749 }
742 750 }
743 751 }
... ... @@ -826,22 +834,50 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
826 834 stringList.add(nbbm);
827 835 }else{
828 836 if(!sxtj.equals("0")){
829   - List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
830   - for (int i = 0; i < objectLists.size(); i++) {
831   - String clbm=objectLists.get(i)[0].toString();
832   - int cs=Integer.parseInt(objectLists.get(i)[1].toString());
833   - //一车一单
834   -
835   - if(sxtj.equals("1")){
836   - if(cs==1){
  837 + List<Object[]> objectLists;
  838 + if(sxtj.equals("3")){
  839 + //有加油没里程
  840 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm);
  841 + for (int i = 0; i < objectLists.size(); i++) {
  842 + String clbm=objectLists.get(i)[0].toString();
  843 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  844 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  845 + if(jzl>0 && zlc<=0){
837 846 stringList.add(clbm);
838 847 }
  848 +
839 849 }
840   - //一车多单
841   - if(sxtj.equals("2")){
842   - if(cs>1){
  850 +
  851 + }else if(sxtj.equals("4")){
  852 + //有里程没加油
  853 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm);
  854 + for (int i = 0; i < objectLists.size(); i++) {
  855 + String clbm=objectLists.get(i)[0].toString();
  856 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  857 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  858 + if(zlc>0 && jzl<=0){
843 859 stringList.add(clbm);
844 860 }
  861 +
  862 + }
  863 + }else{
  864 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  865 + for (int i = 0; i < objectLists.size(); i++) {
  866 + String clbm=objectLists.get(i)[0].toString();
  867 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  868 + //一车一单
  869 +
  870 + if(sxtj.equals("1")){
  871 + if(cs==1){
  872 + stringList.add(clbm);
  873 + }
  874 + }
  875 + //一车多单
  876 + if(sxtj.equals("2")){
  877 + if(cs>1){
  878 + stringList.add(clbm);
  879 + }
  880 + }
845 881 }
846 882 }
847 883 }
... ... @@ -857,9 +893,10 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
857 893 // strings[i]=stringList.get(i);
858 894 // }
859 895 sumYlbList=repository.sumYlb(rq, gsbm, fgsbm, xlbm, stringList);
860   - }else{
861   - sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm, nbbm);
862 896 }
  897 +// else{
  898 +// sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm, nbbm);
  899 +// }
863 900  
864 901 }
865 902  
... ...
src/main/java/com/bsth/service/oil/impl/YlxxbServiceImpl.java
... ... @@ -9,6 +9,9 @@ import java.util.HashMap;
9 9 import java.util.List;
10 10 import java.util.Map;
11 11  
  12 +import javax.transaction.Transactional;
  13 +
  14 +import org.apache.commons.lang3.StringEscapeUtils;
12 15 import org.slf4j.Logger;
13 16 import org.slf4j.LoggerFactory;
14 17 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -16,6 +19,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
16 19 import org.springframework.jdbc.core.RowMapper;
17 20 import org.springframework.stereotype.Service;
18 21  
  22 +import com.alibaba.fastjson.JSONArray;
  23 +import com.alibaba.fastjson.JSONObject;
19 24 import com.bsth.common.ResponseCode;
20 25 import com.bsth.entity.excep.Offline;
21 26 import com.bsth.entity.oil.Ylb;
... ... @@ -44,12 +49,27 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
44 49 String rq=map.get("yyrq").toString();
45 50 String gsdm=map.get("gsdm_like").toString();
46 51 String fgsdm=map.get("fgsdm_like").toString();
47   -
  52 + /*
48 53 String sql=" select x.*,y.jsy as ldgh,y.fgsdm as fgsdm from bsth_c_ylxxb x "
49 54 + " left join bsth_c_ylb y on x.nbbm = y.nbbm and x.jsy !=y.jsy "
50 55 + " where DATE_FORMAT(y.rq,'%Y-%m-%d')='"+rq+"' and y.ssgsdm='"+gsdm+"' "
51 56 + " and y.fgsdm='"+fgsdm+"' and DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' "
52   - + " and x.gsdm='"+gsdm+"'";
  57 + + " and x.gsdm='"+gsdm+"'";*/
  58 +
  59 + String sql= "select v.*,u.jsy as ldgh from "
  60 + + " ( select * from bsth_c_ylxxb x where "
  61 + + " DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' and x.gsdm='"+gsdm+"'"
  62 + + " and x.jsy not in ("
  63 + + " select jsy from bsth_c_ylb "
  64 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  65 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"')"
  66 + + " and x.nbbm in (select nbbm from bsth_c_ylb "
  67 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  68 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"' )) v "
  69 + + " left join (select * from bsth_c_ylb "
  70 + + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"'"
  71 + + " and ssgsdm='"+gsdm+"' and fgsdm='"+fgsdm+"' ) u "
  72 + + " on v.nbbm=u.nbbm ";
53 73  
54 74 //根具条件查询指定日期Ylxxb的数据
55 75 // List<Ylxxb> iterator=repository.checkYlxx(rq,gsdm);
... ... @@ -114,21 +134,33 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
114 134 pageObject.setDataList(list);
115 135 return pageObject;
116 136 }
117   -
  137 + @Transactional
118 138 @Override
119   - public Map<String, Object> checkJsy(Map<String, Object> map) {
  139 + public Map<String, Object> checkJsy(Map<String, Object> map) throws Exception{
120 140 Map<String, Object> newMap=new HashMap<String,Object>();
121 141 // TODO Auto-generated method stub
122 142 try {
123   - int id=Integer.parseInt(map.get("id").toString());
124   - String jsy=map.get("jsy").toString();
125   - Ylxxb ylxxb=repository.findOne(id);
126   - ylxxb.setJsy(jsy);
127   - repository.save(ylxxb);
  143 +// int id=Integer.parseInt(map.get("id").toString());
  144 +// String jsy=map.get("jsy").toString();
  145 +// Ylxxb ylxxb=repository.findOne(id);
  146 +// ylxxb.setJsy(jsy);
  147 +// repository.save(ylxxb);
  148 + String json =StringEscapeUtils.unescapeHtml4(map.get("ylbList").toString());
  149 + JSONArray jsonArray=JSONArray.parseArray(json);
  150 + JSONObject jsonObject;
  151 + for (int x = 0; x < jsonArray.size(); x++) {
  152 + jsonObject=jsonArray.getJSONObject(x);
  153 + Integer id =jsonObject.getInteger("id");
  154 + String jsy =jsonObject.getString("jsy");
  155 + Ylxxb ylxxb=repository.findOne(id);
  156 + ylxxb.setJsy(jsy);
  157 + repository.save(ylxxb);
  158 + }
128 159 newMap.put("status", ResponseCode.SUCCESS);
129 160 }catch(Exception e){
130 161 newMap.put("status", ResponseCode.ERROR);
131 162 logger.error("save erro.", e);
  163 + throw e;
132 164 }
133 165 return newMap;
134 166 }
... ...
src/main/java/com/bsth/service/realcontrol/LineConfigService.java
... ... @@ -13,11 +13,13 @@ public interface LineConfigService extends BaseService&lt;LineConfig, Integer&gt;{
13 13  
14 14 Map<String, Object> editStartOptTime(String time, String lineCode);
15 15  
16   - Map<String, Object> editOutTimeType(String lineCode, int type);
  16 + Map<String, Object> editOutTimeType(String lineCode, int type, String parkCode, String stationCode);
17 17  
18 18 LineConfig getByLineCode(String lineCode);
19 19  
20 20 Map<String,Object> enableInParkForSource(String lineCode, int enable);
21 21  
22 22 Map<String,Object> bufferTimeDiff(String lineCode, String field, String value);
  23 +
  24 + Map<String,Object> yjtkSet(Map<String, String> map);
23 25 }
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -112,7 +112,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
112 112  
113 113 List<Map<String,Object>> statisticsDaily(String line, String date, String xlName, String type);
114 114  
115   - List<Map<String,Object>> statisticsDailyTj(String line, String date,String date2, String xlName, String type);
  115 + List<Map<String,Object>> statisticsDailyTj(String gsdm,String fgsdm,String line, String date,String date2, String xlName, String type);
116 116  
117 117 //List<Object> scheduleDaily(String line,String date);
118 118  
... ...
src/main/java/com/bsth/service/realcontrol/impl/LineConfigServiceImpl.java
... ... @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
11 11 import org.springframework.beans.factory.annotation.Autowired;
12 12 import org.springframework.stereotype.Service;
13 13  
  14 +import java.lang.reflect.Field;
14 15 import java.util.ArrayList;
15 16 import java.util.HashMap;
16 17 import java.util.List;
... ... @@ -74,17 +75,20 @@ public class LineConfigServiceImpl extends BaseServiceImpl&lt;LineConfig, Integer&gt;
74 75 }
75 76  
76 77 @Override
77   - public Map<String, Object> editOutTimeType(String lineCode, int type) {
  78 + public Map<String, Object> editOutTimeType(String lineCode, int type, String parkCode, String stationCode) {
78 79 Map<String, Object> rs = new HashMap<>();
79 80 try {
80 81 LineConfig conf = lineConfigData.get(lineCode);
81 82  
82 83 conf.setOutConfig(type);
83   - //conf.setInConfig(type);
  84 + if(type == 2){
  85 + conf.setTwinsPark(parkCode);
  86 + conf.setTwinsStation(stationCode);
  87 + }
84 88 lineConfigData.set(conf);
85 89  
86 90 rs.put("status", ResponseCode.SUCCESS);
87   - rs.put("type", type);
  91 + rs.put("conf", conf);
88 92 } catch (Exception e) {
89 93 rs.put("status", ResponseCode.ERROR);
90 94 rs.put("msg", e.getMessage());
... ... @@ -104,7 +108,7 @@ public class LineConfigServiceImpl extends BaseServiceImpl&lt;LineConfig, Integer&gt;
104 108 try {
105 109 LineConfig conf = lineConfigData.get(lineCode);
106 110  
107   - conf.setInParkForSource(enable==1);
  111 + conf.setInParkForSource(enable == 1);
108 112 lineConfigData.set(conf);
109 113  
110 114 rs.put("status", ResponseCode.SUCCESS);
... ... @@ -123,8 +127,10 @@ public class LineConfigServiceImpl extends BaseServiceImpl&lt;LineConfig, Integer&gt;
123 127 Map<String, Object> rs = new HashMap<>();
124 128 try {
125 129 LineConfig conf = lineConfigData.get(lineCode);
  130 + Field f = conf.getClass().getDeclaredField(field);
  131 + f.setAccessible(true);
  132 + f.setInt(conf, Integer.parseInt(value));
126 133  
127   - conf.getClass().getField(field).set(conf, value);
128 134 lineConfigData.set(conf);
129 135  
130 136 rs.put("status", ResponseCode.SUCCESS);
... ... @@ -137,4 +143,40 @@ public class LineConfigServiceImpl extends BaseServiceImpl&lt;LineConfig, Integer&gt;
137 143 }
138 144 return rs;
139 145 }
  146 +
  147 + @Override
  148 + public Map<String, Object> yjtkSet(Map<String, String> map) {
  149 + String lineCode = map.get("lineCode").toString();
  150 + int enableYjtk = Integer.parseInt(map.get("enableYjtk").toString());
  151 +
  152 + Map<String, Object> rs = new HashMap<>();
  153 + try {
  154 + LineConfig conf = lineConfigData.get(lineCode);
  155 +
  156 + if(enableYjtk == 1){
  157 + String yjtkStart = map.containsKey("yjtkStart") ? map.get("yjtkStart").toString() : "00:00";
  158 + String yjtkEnd = map.containsKey("yjtkEnd") ? map.get("yjtkEnd").toString() : "23:59";
  159 + int upStopMinute = Integer.parseInt(map.get("upStopMinute").toString());
  160 + int downStopMinute = Integer.parseInt(map.get("downStopMinute").toString());
  161 +
  162 + conf.setEnableYjtk(true);
  163 + conf.setYjtkStart(yjtkStart);
  164 + conf.setYjtkEnd(yjtkEnd);
  165 + conf.setUpStopMinute(upStopMinute);
  166 + conf.setDownStopMinute(downStopMinute);
  167 + }
  168 + else
  169 + conf.setEnableYjtk(false);
  170 +
  171 + lineConfigData.set(conf);
  172 +
  173 + rs.put("status", ResponseCode.SUCCESS);
  174 + rs.put("conf", conf);
  175 + } catch (Exception e) {
  176 + rs.put("status", ResponseCode.ERROR);
  177 + rs.put("msg", e.getMessage());
  178 + logger.error("", e);
  179 + }
  180 + return rs;
  181 + }
140 182 }
... ...