Commit c5441fcaaba2983b5e8ffa5737ceb5774e4d21b7
1 parent
ffe9152e
大客流预警,临加班次,优先选择最近完成班次的车辆
Showing
2 changed files
with
56 additions
and
21 deletions
src/main/java/com/bsth/service/zndd/impl/LoggerZnddServiceImpl.java
| @@ -169,43 +169,78 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl<LoggerZndd, Integer> | @@ -169,43 +169,78 @@ public class LoggerZnddServiceImpl extends BaseServiceImpl<LoggerZndd, Integer> | ||
| 169 | lines.add(map.get("xlbm").toString()); | 169 | lines.add(map.get("xlbm").toString()); |
| 170 | } | 170 | } |
| 171 | } | 171 | } |
| 172 | - List<String> nbbms=new ArrayList<>(); | ||
| 173 | - List<String> jghs=new ArrayList<>(); | ||
| 174 | - List<String> jNames=new ArrayList<>(); | 172 | + List<Map<String,String>> schs=new ArrayList<>(); |
| 173 | + LocalTime localTime=LocalTime.now().plusHours(1); | ||
| 174 | + LocalTime now=LocalTime.now(); | ||
| 175 | + DateTimeFormatter dtf=DateTimeFormatter.ofPattern("HH:mm"); | ||
| 175 | for (String lineCode : lines) { | 176 | for (String lineCode : lines) { |
| 176 | Set<String> set = dayOfSchedule.findCarByLineCode(lineCode); | 177 | Set<String> set = dayOfSchedule.findCarByLineCode(lineCode); |
| 177 | - LocalTime localTime=LocalTime.now().plusHours(1); | ||
| 178 | - DateTimeFormatter dtf=DateTimeFormatter.ofPattern("HH:mm"); | ||
| 179 | for (String nbbm : set) { | 178 | for (String nbbm : set) { |
| 180 | ScheduleRealInfo s=dayOfSchedule.executeCurr(nbbm);//当前执行班次 | 179 | ScheduleRealInfo s=dayOfSchedule.executeCurr(nbbm);//当前执行班次 |
| 181 | if(s==null){//当日班次执行完毕 | 180 | if(s==null){//当日班次执行完毕 |
| 182 | List<ScheduleRealInfo> list=dayOfSchedule.findByNbbm(nbbm); | 181 | List<ScheduleRealInfo> list=dayOfSchedule.findByNbbm(nbbm); |
| 183 | if(list.size()>0){ | 182 | if(list.size()>0){ |
| 184 | - ScheduleRealInfo s2=list.get(list.size()-1);//最后一个班次 | ||
| 185 | - nbbms.add(s2.getClZbh()); | ||
| 186 | - jghs.add(s2.getjGh()); | ||
| 187 | - jNames.add(s2.getjName()); | 183 | + ScheduleRealInfo s2=list.get(list.size()-1);//最后一个班次\ |
| 184 | + if(s2.getZdsjActual()!=null && LocalTime.parse(s2.getZdsjActual(),dtf).isBefore(now)){ | ||
| 185 | + Map<String,String> schMap = new HashMap<>(); | ||
| 186 | + schMap.put("nbbm",s2.getClZbh()); | ||
| 187 | + schMap.put("jgh",s2.getjGh()); | ||
| 188 | + schMap.put("jName",s2.getjName()); | ||
| 189 | + schMap.put("zdsjActual",s2.getZdsjActual()); | ||
| 190 | + System.out.println(s2.getClZbh()+s2.getZdsjActual()+lineCode); | ||
| 191 | + schs.add(schMap); | ||
| 192 | + } | ||
| 188 | } | 193 | } |
| 189 | }else {//1小时内是否有待执行班次 | 194 | }else {//1小时内是否有待执行班次 |
| 190 | LocalTime fcsj=LocalTime.parse(s.getFcsj(),dtf); | 195 | LocalTime fcsj=LocalTime.parse(s.getFcsj(),dtf); |
| 191 | if(fcsj.isAfter(localTime)){ | 196 | if(fcsj.isAfter(localTime)){ |
| 192 | - nbbms.add(s.getClZbh()); | ||
| 193 | - jghs.add(s.getjGh()); | ||
| 194 | - jNames.add(s.getjName()); | 197 | + //查询上一个班次 |
| 198 | + ScheduleRealInfo s2=dayOfSchedule.prev(s); | ||
| 199 | + if(s.getZdsjActual()!=null && LocalTime.parse(s2.getZdsjActual(),dtf).isBefore(now)){ | ||
| 200 | + Map<String,String> schMap = new HashMap<>(); | ||
| 201 | + schMap.put("nbbm",s2.getClZbh()); | ||
| 202 | + schMap.put("jgh",s2.getjGh()); | ||
| 203 | + schMap.put("jName",s2.getjName()); | ||
| 204 | + schMap.put("zdsjActual",s2.getZdsjActual()); | ||
| 205 | + System.out.println(s2.getClZbh()+s2.getZdsjActual()+lineCode); | ||
| 206 | + schs.add(schMap); | ||
| 207 | + } | ||
| 195 | } | 208 | } |
| 196 | } | 209 | } |
| 197 | } | 210 | } |
| 198 | } | 211 | } |
| 212 | + Collections.sort(schs, new Comparator<Map<String, String>>(){ | ||
| 213 | + public int compare(Map<String, String> o1, Map<String, String> o2) { | ||
| 214 | + String zdsjActual1 = o1.get("zdsjActual"); | ||
| 215 | + String zdsjActual2 = o2.get("zdsjActual"); | ||
| 216 | + return zdsjActual2.compareTo(zdsjActual1); | ||
| 217 | + } | ||
| 218 | + | ||
| 219 | + }); | ||
| 199 | StringBuffer sb=new StringBuffer(); | 220 | StringBuffer sb=new StringBuffer(); |
| 200 | String kscl=""; | 221 | String kscl=""; |
| 201 | - if(nbbms.size()>0){ | ||
| 202 | - sch.setClZbh(nbbms.get(0)); | ||
| 203 | - sch.setjGh(jghs.get(0)); | ||
| 204 | - sch.setjName(jNames.get(0)); | ||
| 205 | - int size =nbbms.size()>10?9:nbbms.size(); | 222 | + List<Map<String, String>> schs2 = new ArrayList<>(); |
| 223 | + | ||
| 224 | + // 创建用于去重的 Set<Map> | ||
| 225 | + Set<Map<String, String>> set = new HashSet<>(); | ||
| 226 | + // 遍历原始的 List<Map> | ||
| 227 | + for (Map<String, String> map : schs) { | ||
| 228 | + // 创建一个新的 Map 用于存储合并去重后的结果 | ||
| 229 | + Map<String, String> newMap = new HashMap<>(map); | ||
| 230 | + // 如果新的 Map 成功添加到 Set 中,说明是一个新的 Map,将其添加到结果 List<Map> 中 | ||
| 231 | + if (set.add(newMap)) { | ||
| 232 | + schs2.add(newMap); | ||
| 233 | + } | ||
| 234 | + } | ||
| 235 | + if(schs2.size()>0){ | ||
| 236 | + sch.setClZbh(schs2.get(0).get("nbbm")); | ||
| 237 | + sch.setjGh(schs2.get(0).get("jgh")); | ||
| 238 | + sch.setjName(schs2.get(0).get("jName")); | ||
| 239 | + int size =schs2.size()>8?8:schs2.size(); | ||
| 206 | for (int i = 0; i < size; i++) { | 240 | for (int i = 0; i < size; i++) { |
| 207 | - sb.append(nbbms.get(i)+"/"); | ||
| 208 | - sb.append(jNames.get(i)+","); | 241 | + sb.append(schs2.get(i).get("nbbm")+"/"); |
| 242 | + sb.append(schs2.get(i).get("jName")+"/"); | ||
| 243 | + sb.append(schs2.get(i).get("zdsjActual")+","); | ||
| 209 | } | 244 | } |
| 210 | kscl=sb.toString().substring(0,sb.length()-1); | 245 | kscl=sb.toString().substring(0,sb.length()-1); |
| 211 | } | 246 | } |
src/main/resources/static/real_control_v2/zndd/type/dkl.html
| @@ -166,7 +166,7 @@ | @@ -166,7 +166,7 @@ | ||
| 166 | } | 166 | } |
| 167 | s+=arr[i]+","; | 167 | s+=arr[i]+","; |
| 168 | j++; | 168 | j++; |
| 169 | - if(j==4||i==arr.length-1){ | 169 | + if(j==3||i==arr.length-1){ |
| 170 | s=s.substring(0,s.length-1); | 170 | s=s.substring(0,s.length-1); |
| 171 | s+='</h3></label>'; | 171 | s+='</h3></label>'; |
| 172 | j=1; | 172 | j=1; |
| @@ -592,7 +592,7 @@ | @@ -592,7 +592,7 @@ | ||
| 592 | <div class="uk-grid"> | 592 | <div class="uk-grid"> |
| 593 | <div class="uk-width-4-2"> | 593 | <div class="uk-width-4-2"> |
| 594 | <div class="uk-form-row"> | 594 | <div class="uk-form-row"> |
| 595 | - <label class="uk-form-labels" ><h3>空闲车辆/人员</h3></label> | 595 | + <label class="uk-form-labels" ><h3>空闲车辆/人员/班次结束时间</h3></label> |
| 596 | <div id="nbbms"> | 596 | <div id="nbbms"> |
| 597 | </div> | 597 | </div> |
| 598 | </div> | 598 | </div> |