Commit c5441fcaaba2983b5e8ffa5737ceb5774e4d21b7

Authored by yiming
1 parent ffe9152e

大客流预警,临加班次,优先选择最近完成班次的车辆

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>
... ...