Commit 7dcdcad88e38d9f27b96bdd2b4a66dfb4ee5421c

Authored by ljq
1 parent be45452c

驾驶员匹配修改

src/main/java/com/bsth/data/zndd/ZnddThread.java
@@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Component; 12 import org.springframework.stereotype.Component;
13 13
14 import java.text.SimpleDateFormat; 14 import java.text.SimpleDateFormat;
15 -import java.util.HashMap;  
16 import java.util.List; 15 import java.util.List;
17 -import java.util.Map;  
18 16
19 /** 17 /**
20 * 调度预案 发车间隔、误点、大间隔、满载、大客流 18 * 调度预案 发车间隔、误点、大间隔、满载、大客流
@@ -23,8 +21,6 @@ import java.util.Map; @@ -23,8 +21,6 @@ import java.util.Map;
23 public class ZnddThread extends Thread{ 21 public class ZnddThread extends Thread{
24 22
25 Logger logger = LoggerFactory.getLogger(this.getClass()); 23 Logger logger = LoggerFactory.getLogger(this.getClass());
26 - /*@Autowired  
27 - StationPeopleLoggerRepository stationPeopleLoggerRepository;*/  
28 @Autowired 24 @Autowired
29 DayOfSchedule dayOfSchedule; 25 DayOfSchedule dayOfSchedule;
30 @Autowired 26 @Autowired
@@ -35,28 +31,15 @@ public class ZnddThread extends Thread{ @@ -35,28 +31,15 @@ public class ZnddThread extends Thread{
35 StationRouteRepository stationRouteRepository; 31 StationRouteRepository stationRouteRepository;
36 @Autowired 32 @Autowired
37 AutomaticSch automaticSch; 33 AutomaticSch automaticSch;
38 -  
39 @Autowired 34 @Autowired
40 ZnddStatusRepository znddStatusRepository; 35 ZnddStatusRepository znddStatusRepository;
41 36
42 - static Map<String,List> ZNDDTYPEMAP = new HashMap<>(); //已经推送过的检测  
43 -  
44 -  
45 -  
46 -  
47 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); 37 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm");
48 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"); 38 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd");
49 private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 39 private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
50 @Override 40 @Override
51 public void run() { 41 public void run() {
52 - try {  
53 - List<znddStatus> znddStatusList = (List<znddStatus>) znddStatusRepository.findAll();  
54 -  
55 - //GPSDJG();//大间隔  
56 - // MZ(); //满载  
57 - //DKL(); //大客流 以接口方式  
58 - //automaticSch.mz();  
59 - //automaticSch.dfTz();//大间隔 42 + try {List<znddStatus> znddStatusList = (List<znddStatus>) znddStatusRepository.findAll();
60 for (znddStatus zs : znddStatusList) { 43 for (znddStatus zs : znddStatusList) {
61 if (zs.getOpenStatus() != null && zs.getOpenStatus().equals("0")) { 44 if (zs.getOpenStatus() != null && zs.getOpenStatus().equals("0")) {
62 if (zs.getType().equals("sftz")) { 45 if (zs.getType().equals("sftz")) {
@@ -76,13 +59,6 @@ public class ZnddThread extends Thread{ @@ -76,13 +59,6 @@ public class ZnddThread extends Thread{
76 }catch (Throwable e){ 59 }catch (Throwable e){
77 logger.info("智能调度线程——————",e); 60 logger.info("智能调度线程——————",e);
78 } 61 }
79 -  
80 -  
81 -  
82 } 62 }
83 -  
84 -  
85 -  
86 -  
87 } 63 }
88 64
src/main/java/com/bsth/data/zndd/ZnddTwoThread.java
@@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Component; 12 import org.springframework.stereotype.Component;
13 13
14 import java.text.SimpleDateFormat; 14 import java.text.SimpleDateFormat;
15 -import java.util.HashMap;  
16 import java.util.List; 15 import java.util.List;
17 -import java.util.Map;  
18 16
19 /** 17 /**
20 * 调度预案 发车间隔、误点、大间隔、满载、大客流 18 * 调度预案 发车间隔、误点、大间隔、满载、大客流
@@ -23,8 +21,6 @@ import java.util.Map; @@ -23,8 +21,6 @@ import java.util.Map;
23 public class ZnddTwoThread extends Thread{ 21 public class ZnddTwoThread extends Thread{
24 22
25 Logger logger = LoggerFactory.getLogger(this.getClass()); 23 Logger logger = LoggerFactory.getLogger(this.getClass());
26 - /*@Autowired  
27 - StationPeopleLoggerRepository stationPeopleLoggerRepository;*/  
28 @Autowired 24 @Autowired
29 DayOfSchedule dayOfSchedule; 25 DayOfSchedule dayOfSchedule;
30 @Autowired 26 @Autowired
@@ -39,11 +35,6 @@ public class ZnddTwoThread extends Thread{ @@ -39,11 +35,6 @@ public class ZnddTwoThread extends Thread{
39 @Autowired 35 @Autowired
40 ZnddStatusRepository znddStatusRepository; 36 ZnddStatusRepository znddStatusRepository;
41 37
42 - static Map<String,List> ZNDDTYPEMAP = new HashMap<>(); //已经推送过的检测  
43 -  
44 -  
45 -  
46 -  
47 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); 38 private static SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm");
48 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"); 39 private static SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd");
49 private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 40 private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@@ -81,7 +72,6 @@ public class ZnddTwoThread extends Thread{ @@ -81,7 +72,6 @@ public class ZnddTwoThread extends Thread{
81 logger.info("行车大间隔执行完毕"); 72 logger.info("行车大间隔执行完毕");
82 } 73 }
83 }.start();//启动线程 74 }.start();//启动线程
84 -  
85 } 75 }
86 if (zs.getType().equals("mz")) { 76 if (zs.getType().equals("mz")) {
87 new Thread() { 77 new Thread() {
@@ -113,8 +103,6 @@ public class ZnddTwoThread extends Thread{ @@ -113,8 +103,6 @@ public class ZnddTwoThread extends Thread{
113 } 103 }
114 } 104 }
115 } 105 }
116 -  
117 -  
118 } catch (Exception e) { 106 } catch (Exception e) {
119 logger.info("智能调度线程——————", e); 107 logger.info("智能调度线程——————", e);
120 } 108 }
src/main/java/com/bsth/data/zndd/outer_car/OrderListThread.java
@@ -153,20 +153,21 @@ public class OrderListThread extends Thread{ @@ -153,20 +153,21 @@ public class OrderListThread extends Thread{
153 //如果有套跑 分割班次作用 153 //如果有套跑 分割班次作用
154 if (!clsc.getXlBm().equals(m.get("lineCode").toString())){ 154 if (!clsc.getXlBm().equals(m.get("lineCode").toString())){
155 Long FcsjT = clsc.getFcsjT(); 155 Long FcsjT = clsc.getFcsjT();
156 - //判断 在上一班次结束和下一个班次开始时的空档期是否有别线路 156 + //判断 在上一订单结束和下一个订单开始时的空档期是否有别线路
157 //11:00 13:00 12> 11 ** 12 < 13 157 //11:00 13:00 12> 11 ** 12 < 13
158 if (FcsjT > coleTime && FcsjT < dospathTime){ 158 if (FcsjT > coleTime && FcsjT < dospathTime){
159 lsmap.put("startDate",sdf.parse(orXlList.get(is).get("DispatchTime").toString()).getTime()); //派单时间 159 lsmap.put("startDate",sdf.parse(orXlList.get(is).get("DispatchTime").toString()).getTime()); //派单时间
160 lsmap.put("endDate", sdf.parse(m.get("CloseTime").toString()).getTime()); //行程结束时间 160 lsmap.put("endDate", sdf.parse(m.get("CloseTime").toString()).getTime()); //行程结束时间
161 lsmap.put("CheckTime", sdf.parse(m.get("CheckTime").toString()).getTime()); //核销时间 161 lsmap.put("CheckTime", sdf.parse(m.get("CheckTime").toString()).getTime()); //核销时间
162 lsmap.put("car_plate", clzbh); //车牌号 162 lsmap.put("car_plate", clzbh); //车牌号
163 - lsmap.put("jName", m.get("DriverName")); //驾驶员 163 + lsmap.put("jName", m.get("DriverNumber")); //驾驶员
164 lsmap.put("xl", m.get("AreaName"));//区域名称 164 lsmap.put("xl", m.get("AreaName"));//区域名称
165 lsmap.put("remark", "公交随心订闲时响应班次("+(i + 1 -is)+"个)");//区域名称 165 lsmap.put("remark", "公交随心订闲时响应班次("+(i + 1 -is)+"个)");//区域名称
166 lsmap.put("num", (i + 1 -is));//区域名称 166 lsmap.put("num", (i + 1 -is));//区域名称
167 SchMap.add(lsmap); 167 SchMap.add(lsmap);
168 is = i + 1; 168 is = i + 1;
169 lsmap = new HashMap(); 169 lsmap = new HashMap();
  170 + break;
170 } 171 }
171 } 172 }
172 } 173 }
@@ -175,7 +176,7 @@ public class OrderListThread extends Thread{ @@ -175,7 +176,7 @@ public class OrderListThread extends Thread{
175 lsmap.put("endDate",sdf.parse(m.get("CloseTime").toString()).getTime()); //行程结束时间 176 lsmap.put("endDate",sdf.parse(m.get("CloseTime").toString()).getTime()); //行程结束时间
176 lsmap.put("CheckTime", sdf.parse(m.get("CheckTime").toString()).getTime()); //核销时间 177 lsmap.put("CheckTime", sdf.parse(m.get("CheckTime").toString()).getTime()); //核销时间
177 lsmap.put("car_plate", clzbh); //车牌号 178 lsmap.put("car_plate", clzbh); //车牌号
178 - lsmap.put("jName", m.get("DriverName")); //驾驶员 179 + lsmap.put("jName", m.get("DriverNumber")); //驾驶员
179 lsmap.put("xl", m.get("AreaName"));//区域名称 180 lsmap.put("xl", m.get("AreaName"));//区域名称
180 lsmap.put("remark", "公交随心订闲时响应班次("+(i + 1 -is)+"个)");//区域名称 181 lsmap.put("remark", "公交随心订闲时响应班次("+(i + 1 -is)+"个)");//区域名称
181 lsmap.put("num", (i + 1 -is));//区域名称 182 lsmap.put("num", (i + 1 -is));//区域名称
@@ -184,7 +185,7 @@ public class OrderListThread extends Thread{ @@ -184,7 +185,7 @@ public class OrderListThread extends Thread{
184 } 185 }
185 186
186 //根据业务部提出新需求单独加一个方法,保证因各种因素导致的行程都能算上 187 //根据业务部提出新需求单独加一个方法,保证因各种因素导致的行程都能算上
187 - //1.起点站终点站和上下班次对应 188 + //1.起点站终点站和上下班次对应 --对应不上 起点站到起点站
188 //2.订单-班次数量 同一起终点 派单时间3分钟以内合并成一个订单。 189 //2.订单-班次数量 同一起终点 派单时间3分钟以内合并成一个订单。
189 //3.实到时间改成下一班次的发车时间前10分钟。 190 //3.实到时间改成下一班次的发车时间前10分钟。
190 //4.实发时间改成上一个班次发车后10分 191 //4.实发时间改成上一个班次发车后10分
@@ -224,13 +225,7 @@ public class OrderListThread extends Thread{ @@ -224,13 +225,7 @@ public class OrderListThread extends Thread{
224 lmp.put("endDate",sc2.getFcsjT() - (10* 60 *1000)); 225 lmp.put("endDate",sc2.getFcsjT() - (10* 60 *1000));
225 break; 226 break;
226 } 227 }
227 - //有可能没有直接添加  
228 - if (sc1.getZdsjT() > CheckTime && sc2.getFcsjT() < endDate){  
229 - lmp.put("startDate",sc1.getZdsjT() + (10* 60 *1000));  
230 - lmp.put("endDate",sc2.getFcsjT() - (10* 60 *1000));  
231 - break;  
232 - }  
233 - 228 + //有可能没有直接添加 直接使用默认的
234 } 229 }
235 } 230 }
236 231
@@ -247,7 +242,7 @@ public class OrderListThread extends Thread{ @@ -247,7 +242,7 @@ public class OrderListThread extends Thread{
247 String LpName = null; 242 String LpName = null;
248 for (ScheduleRealInfo sr : schList) { 243 for (ScheduleRealInfo sr : schList) {
249 //范围内有已添加班次 -- 合并 244 //范围内有已添加班次 -- 合并
250 - //同一车辆,备注里响应式公交班次数相同 发车时间在这个班次的前后分钟 245 + //同一车辆,备注里响应式公交班次数相同 发车时间在这个班次的前后10分钟
251 if (cl.equals(sr.getClZbh()) && startTime <= sr.getFcsjT() && startTime1 >= sr.getFcsjT() && sr.getStatus() != -1 246 if (cl.equals(sr.getClZbh()) && startTime <= sr.getFcsjT() && startTime1 >= sr.getFcsjT() && sr.getStatus() != -1
252 && sr.getRemarks() !=null && sr.getRemarks().contains("随心订")){ 247 && sr.getRemarks() !=null && sr.getRemarks().contains("随心订")){
253 //不管有没有相同的班次数 重新计算一下里程 248 //不管有没有相同的班次数 重新计算一下里程
@@ -276,7 +271,7 @@ public class OrderListThread extends Thread{ @@ -276,7 +271,7 @@ public class OrderListThread extends Thread{
276 List<TrackPoint> points = getTrackPoints(device, sc.getFcsjActualTime(), sc.getZdsjActualTime()); 271 List<TrackPoint> points = getTrackPoints(device, sc.getFcsjActualTime(), sc.getZdsjActualTime());
277 // 计算总里程 272 // 计算总里程
278 double totalMileage = Double.valueOf(String.format("%.1f", calculateTotalMileage(points))); 273 double totalMileage = Double.valueOf(String.format("%.1f", calculateTotalMileage(points)));
279 - if (totalMileage != 0) 274 + if (totalMileage != 0 && !sc.getRemarks().contains("调整"))
280 sc.setJhlc(totalMileage); 275 sc.setJhlc(totalMileage);
281 //里程没问题添加班次 276 //里程没问题添加班次
282 if (sc.getId() == null) { 277 if (sc.getId() == null) {
@@ -314,24 +309,24 @@ public class OrderListThread extends Thread{ @@ -314,24 +309,24 @@ public class OrderListThread extends Thread{
314 Line line = lineService.findByLineCode(lineCode); 309 Line line = lineService.findByLineCode(lineCode);
315 Long dispatchTime = Long.valueOf(map.get("startDate").toString()); 310 Long dispatchTime = Long.valueOf(map.get("startDate").toString());
316 Long closeTime = Long.valueOf(map.get("endDate").toString()); 311 Long closeTime = Long.valueOf(map.get("endDate").toString());
  312 + int direction = 1;
  313 + //单独设置响应式公交103 105的班次
  314 + if (line.getName().contains("103区域")){
  315 + direction = 0;
  316 + }
317 317
318 - List<StationRoute> list = GeoCacheData.getStationRoute(lineCode, 0); 318 +
  319 + List<StationRoute> list = GeoCacheData.getStationRoute(lineCode, direction);
319 320
320 String clzbh = map.get("car_plate").toString(); 321 String clzbh = map.get("car_plate").toString();
321 - String jName = map.get("jName").toString();  
322 - String jGh = null;  
323 - Map<String, String> allpersion = BasicData.allPerson; //所有人员  
324 - for (String key : allpersion.keySet()) {  
325 - if (jName.equals(allpersion.get(key))) {  
326 - //加上判断临港公交 避免另外公司重名  
327 - jGh = key.split("-")[1];  
328 - }  
329 - } 322 + String jName = map.get("jName").toString(); //05 -000000
  323 + String jGh = "77"+"-"+jName.split("-")[1];
  324 + jName = BasicData.allPerson.get("77"+"-"+jName.split("-")[1]);
330 325
331 //公司 和 分公司名称 326 //公司 和 分公司名称
332 sch.setGsBm(line.getCompany()); 327 sch.setGsBm(line.getCompany());
333 sch.setFgsBm(line.getBrancheCompany()); 328 sch.setFgsBm(line.getBrancheCompany());
334 - sch.setBcType("normal"); 329 + sch.setBcType("region");
335 sch.setXlBm(lineCode); 330 sch.setXlBm(lineCode);
336 sch.setXlName(line.getName()); 331 sch.setXlName(line.getName());
337 sch.setLpName(LpName !=null ? LpName : "临1");//临加路牌 332 sch.setLpName(LpName !=null ? LpName : "临1");//临加路牌
@@ -360,6 +355,10 @@ public class OrderListThread extends Thread{ @@ -360,6 +355,10 @@ public class OrderListThread extends Thread{
360 public ScheduleRealInfo SetSch (Map map,ScheduleRealInfo sch) { 355 public ScheduleRealInfo SetSch (Map map,ScheduleRealInfo sch) {
361 356
362 try { 357 try {
  358 + //人工在备注中输入调整二字后不再调整这个班次
  359 + if (sch.getRemarks() != null && sch.getRemarks().contains("调整")){
  360 + return sch;
  361 + }
363 //初始到站时间直接到下一班次10分钟之前了 不用在修改班次了 362 //初始到站时间直接到下一班次10分钟之前了 不用在修改班次了
364 /*Long closeTime = Long.parseLong(map.get("endDate").toString()); 363 /*Long closeTime = Long.parseLong(map.get("endDate").toString());
365 sch.setZdsj(hhmm.print(closeTime)); 364 sch.setZdsj(hhmm.print(closeTime));
@@ -396,6 +395,8 @@ public class OrderListThread extends Thread{ @@ -396,6 +395,8 @@ public class OrderListThread extends Thread{
396 rs = ps.executeQuery(); 395 rs = ps.executeQuery();
397 //GPS84坐标 396 //GPS84坐标
398 while (rs.next()) { 397 while (rs.next()) {
  398 + if (getService(rs.getLong("SERVICE_STATE")) == 0)
  399 + continue;
399 double lat = rs.getDouble("LAT"); 400 double lat = rs.getDouble("LAT");
400 double lon = rs.getDouble("LON"); 401 double lon = rs.getDouble("LON");
401 Long timestamp = rs.getLong("TS"); 402 Long timestamp = rs.getLong("TS");
@@ -410,6 +411,19 @@ public class OrderListThread extends Thread{ @@ -410,6 +411,19 @@ public class OrderListThread extends Thread{
410 } 411 }
411 412
412 413
  414 +
  415 + /**
  416 + * 获取GPS信号状态
  417 + *
  418 + * @return 0有效 1无效
  419 + */
  420 + public static byte getService(long serviceState) {
  421 + /*if ((serviceState & 0x00020000) == 0x00020000 || (serviceState & 0x80000000) == 0x80000000)
  422 + return -1;*/
  423 + return (byte) (((serviceState & 0x00100000) == 0x00100000) ? 0 : 1);
  424 + }
  425 +
  426 +
413 public static class Orderfcsj implements Comparator<Map> { 427 public static class Orderfcsj implements Comparator<Map> {
414 @Override 428 @Override
415 public int compare(Map o1, Map o2) { 429 public int compare(Map o1, Map o2) {