Commit fc605612890c9193f33d1d97dda5d0e60251ec1c

Authored by 潘钊
1 parent 72c5e34b

update..

src/main/java/com/bsth/data/gpsdata_v2/GpsRealData.java
@@ -123,7 +123,13 @@ public class GpsRealData { @@ -123,7 +123,13 @@ public class GpsRealData {
123 * @Title: get @Description: TODO(线路编码获取GPS集合) @throws 123 * @Title: get @Description: TODO(线路编码获取GPS集合) @throws
124 */ 124 */
125 public List<GpsEntity> getByLine(String lineCode) { 125 public List<GpsEntity> getByLine(String lineCode) {
126 - NavigableSet<String> set = lineCode2Devices.get(lineCode); 126 + NavigableSet<String> set = lineCode2Devices.get(lineCode);//实际车载
  127 + Set<String> nbbmSet = dayOfSchedule.findCarByLineCode(lineCode);//计划用车
  128 +
  129 + Map<String, String> nbbm2deviceMap = BasicData.deviceId2NbbmMap.inverse();
  130 + for(String nbbm : nbbmSet){
  131 + set.add(nbbm2deviceMap.get(nbbm));
  132 + }
127 133
128 List<GpsEntity> rs = new ArrayList<>(); 134 List<GpsEntity> rs = new ArrayList<>();
129 GpsEntity gps; 135 GpsEntity gps;
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -15,6 +15,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; @@ -15,6 +15,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
15 import com.bsth.service.schedule.SchedulePlanInfoService; 15 import com.bsth.service.schedule.SchedulePlanInfoService;
16 import com.bsth.websocket.handler.SendUtils; 16 import com.bsth.websocket.handler.SendUtils;
17 import com.google.common.collect.ArrayListMultimap; 17 import com.google.common.collect.ArrayListMultimap;
  18 +import com.google.common.collect.HashMultimap;
18 import org.apache.commons.lang3.StringUtils; 19 import org.apache.commons.lang3.StringUtils;
19 import org.joda.time.format.DateTimeFormat; 20 import org.joda.time.format.DateTimeFormat;
20 import org.joda.time.format.DateTimeFormatter; 21 import org.joda.time.format.DateTimeFormatter;
@@ -55,6 +56,9 @@ public class DayOfSchedule { @@ -55,6 +56,9 @@ public class DayOfSchedule {
55 // 按车辆分组的班次数据 56 // 按车辆分组的班次数据
56 private static ArrayListMultimap<String, ScheduleRealInfo> nbbmScheduleMap; 57 private static ArrayListMultimap<String, ScheduleRealInfo> nbbmScheduleMap;
57 58
  59 + //按线路分组计划用车
  60 + private static HashMultimap<String, String> lineNbbmsMap;
  61 +
58 //按路牌分组的班次数据 线路编码_路牌名称 ——> 班次list 62 //按路牌分组的班次数据 线路编码_路牌名称 ——> 班次list
59 private static ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap; 63 private static ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap;
60 64
@@ -199,6 +203,8 @@ public class DayOfSchedule { @@ -199,6 +203,8 @@ public class DayOfSchedule {
199 reCalcExecPlan(nbbm); 203 reCalcExecPlan(nbbm);
200 } 204 }
201 205
  206 + //分组计划用车
  207 + reCalcLineNbbms();
202 // 页面 翻班通知 208 // 页面 翻班通知
203 //sendUtils.shiftSchedule(lineCode); 209 //sendUtils.shiftSchedule(lineCode);
204 } catch (Exception e) { 210 } catch (Exception e) {
@@ -543,15 +549,15 @@ public class DayOfSchedule { @@ -543,15 +549,15 @@ public class DayOfSchedule {
543 * @Description: TODO(线路下运营的车辆) 549 * @Description: TODO(线路下运营的车辆)
544 */ 550 */
545 public Set<String> findCarByLineCode(String lineCode) { 551 public Set<String> findCarByLineCode(String lineCode) {
546 - Set<String> rs = new HashSet<>(); 552 + /*Set<String> rs = new HashSet<>();
547 553
548 Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values(); 554 Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values();
549 for (ScheduleRealInfo sch : schs) { 555 for (ScheduleRealInfo sch : schs) {
550 if (sch.getXlBm().equals(lineCode)) 556 if (sch.getXlBm().equals(lineCode))
551 rs.add(sch.getClZbh()); 557 rs.add(sch.getClZbh());
552 } 558 }
553 -  
554 - return rs; 559 +*/
  560 + return lineNbbmsMap.get(lineCode);
555 } 561 }
556 562
557 public List<ScheduleRealInfo> findByNbbm(String nbbm) { 563 public List<ScheduleRealInfo> findByNbbm(String nbbm) {
@@ -908,6 +914,8 @@ public class DayOfSchedule { @@ -908,6 +914,8 @@ public class DayOfSchedule {
908 //重新计算车辆当前执行班次 914 //重新计算车辆当前执行班次
909 reCalcExecPlan(newClZbh); 915 reCalcExecPlan(newClZbh);
910 reCalcExecPlan(sch.getClZbh()); 916 reCalcExecPlan(sch.getClZbh());
  917 + //重新分组计划用车
  918 + reCalcLineNbbms();
911 return ups; 919 return ups;
912 } 920 }
913 921
@@ -1082,6 +1090,20 @@ public class DayOfSchedule { @@ -1082,6 +1090,20 @@ public class DayOfSchedule {
1082 return id2SchedulMap.size(); 1090 return id2SchedulMap.size();
1083 } 1091 }
1084 1092
  1093 + /**
  1094 + * 重新计算线路计划用车
  1095 + */
  1096 + public void reCalcLineNbbms(){
  1097 + HashMultimap<String, String> multimap = HashMultimap.create();
  1098 +
  1099 + Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values();
  1100 + for (ScheduleRealInfo sch : schs) {
  1101 + multimap.put(sch.getXlBm(), sch.getClZbh());
  1102 + }
  1103 +
  1104 + lineNbbmsMap = multimap;
  1105 + }
  1106 +
1085 public String sizeString(){ 1107 public String sizeString(){
1086 return id2SchedulMap.size() + "/" + nbbmScheduleMap.size(); 1108 return id2SchedulMap.size() + "/" + nbbmScheduleMap.size();
1087 } 1109 }