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 | 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 | 176 | for (String lineCode : lines) { |
| 176 | 177 | Set<String> set = dayOfSchedule.findCarByLineCode(lineCode); |
| 177 | - LocalTime localTime=LocalTime.now().plusHours(1); | |
| 178 | - DateTimeFormatter dtf=DateTimeFormatter.ofPattern("HH:mm"); | |
| 179 | 178 | for (String nbbm : set) { |
| 180 | 179 | ScheduleRealInfo s=dayOfSchedule.executeCurr(nbbm);//当前执行班次 |
| 181 | 180 | if(s==null){//当日班次执行完毕 |
| 182 | 181 | List<ScheduleRealInfo> list=dayOfSchedule.findByNbbm(nbbm); |
| 183 | 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 | 194 | }else {//1小时内是否有待执行班次 |
| 190 | 195 | LocalTime fcsj=LocalTime.parse(s.getFcsj(),dtf); |
| 191 | 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 | 220 | StringBuffer sb=new StringBuffer(); |
| 200 | 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 | 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 | 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 | 166 | } |
| 167 | 167 | s+=arr[i]+","; |
| 168 | 168 | j++; |
| 169 | - if(j==4||i==arr.length-1){ | |
| 169 | + if(j==3||i==arr.length-1){ | |
| 170 | 170 | s=s.substring(0,s.length-1); |
| 171 | 171 | s+='</h3></label>'; |
| 172 | 172 | j=1; |
| ... | ... | @@ -592,7 +592,7 @@ |
| 592 | 592 | <div class="uk-grid"> |
| 593 | 593 | <div class="uk-width-4-2"> |
| 594 | 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 | 596 | <div id="nbbms"> |
| 597 | 597 | </div> |
| 598 | 598 | </div> | ... | ... |