Commit 0c60364d176cdc6a883a3f5d2aaaccce3930247c

Authored by guzijian
1 parent a96d30ea

feat: 增加特殊处理

Bsth-admin/src/main/java/com/ruoyi/service/ThreadJobService.java
@@ -48,7 +48,6 @@ import java.io.*; @@ -48,7 +48,6 @@ import java.io.*;
48 import java.math.BigDecimal; 48 import java.math.BigDecimal;
49 import java.time.LocalDate; 49 import java.time.LocalDate;
50 import java.util.*; 50 import java.util.*;
51 -import java.util.concurrent.CompletableFuture;  
52 import java.util.stream.Collectors; 51 import java.util.stream.Collectors;
53 52
54 import static com.ruoyi.common.ConstDriverProperties.BC_TYPE_IN; 53 import static com.ruoyi.common.ConstDriverProperties.BC_TYPE_IN;
@@ -170,7 +169,7 @@ public class ThreadJobService { @@ -170,7 +169,7 @@ public class ThreadJobService {
170 exception.setRemark(signIn.getRemark()); 169 exception.setRemark(signIn.getRemark());
171 exception.setCreateTime(signIn.getCreateTime()); 170 exception.setCreateTime(signIn.getCreateTime());
172 exception.setFleetName(driver.getFleetName()); 171 exception.setFleetName(driver.getFleetName());
173 - if (CollectionUtil.isNotEmpty(dto)) { 172 + if (CollectionUtil.isNotEmpty(dto) && dto.size() > 0) {
174 DriverScheduling scheduling = dto.get(globalIndex.getIndex()); 173 DriverScheduling scheduling = dto.get(globalIndex.getIndex());
175 exception.setNbbm(scheduling.getNbbm()); 174 exception.setNbbm(scheduling.getNbbm());
176 exception.setLineName(scheduling.getLineName()); 175 exception.setLineName(scheduling.getLineName());
@@ -466,19 +465,19 @@ public class ThreadJobService { @@ -466,19 +465,19 @@ public class ThreadJobService {
466 return bcList; 465 return bcList;
467 } 466 }
468 467
469 - private DriverScheduling getDriverSchedulingTest(String startTime, String endTime,String bcType) { 468 + private DriverScheduling getDriverSchedulingTest(String startTime, String endTime, String bcType) {
470 DriverScheduling scheduling = new DriverScheduling(); 469 DriverScheduling scheduling = new DriverScheduling();
471 - scheduling.setJobCode("700001");  
472 - scheduling.setName("测试");  
473 - scheduling.setPosts("测试");  
474 - scheduling.setScheduleDate(new Date());  
475 - scheduling.setLineName("");  
476 - scheduling.setLpName("");  
477 - scheduling.setNbbm("");  
478 - scheduling.setFcsjT(ConstDateUtil.parseDate(startTime).getTime());  
479 - scheduling.setZdsjT(ConstDateUtil.parseDate(endTime).getTime());  
480 - scheduling.setFleetName("");  
481 - scheduling.setBcType(bcType); 470 + scheduling.setJobCode("700001");
  471 + scheduling.setName("测试");
  472 + scheduling.setPosts("测试");
  473 + scheduling.setScheduleDate(new Date());
  474 + scheduling.setLineName("");
  475 + scheduling.setLpName("");
  476 + scheduling.setNbbm("");
  477 + scheduling.setFcsjT(ConstDateUtil.parseDate(startTime).getTime());
  478 + scheduling.setZdsjT(ConstDateUtil.parseDate(endTime).getTime());
  479 + scheduling.setFleetName("");
  480 + scheduling.setBcType(bcType);
482 return scheduling; 481 return scheduling;
483 } 482 }
484 483
@@ -516,6 +515,14 @@ public class ThreadJobService { @@ -516,6 +515,14 @@ public class ThreadJobService {
516 if (nowScheduling.get(0).getLineName().equals("松青线") && checkLpName(nowScheduling.get(0))) { 515 if (nowScheduling.get(0).getLineName().equals("松青线") && checkLpName(nowScheduling.get(0))) {
517 updateScheduling(nowScheduling); 516 updateScheduling(nowScheduling);
518 } 517 }
  518 + // 处理青浦20路 2号路牌 签到时间调整为07:20 | 5号路牌 签到时间调整为07:05
  519 + if (nowScheduling.get(0).getLineName().equals("青浦20路")) {
  520 + updateQinpu2With5(nowScheduling);
  521 + }
  522 + // 处理青蒸线区间 区间删除注意特殊情况放到最后可能没有全部都是区间倒是nowScheduling 为0 然后get报错
  523 + if (nowScheduling.get(0).getLineName().startsWith("青蒸线")) {
  524 + nowScheduling = handleQinZhengLine(nowScheduling);
  525 + }
519 bcList.addAll(nowScheduling); 526 bcList.addAll(nowScheduling);
520 } else { 527 } else {
521 // 处理无进出场 528 // 处理无进出场
@@ -525,6 +532,27 @@ public class ThreadJobService { @@ -525,6 +532,27 @@ public class ThreadJobService {
525 return bcList; 532 return bcList;
526 } 533 }
527 534
  535 + private void updateQinpu2With5(List<DriverScheduling> nowScheduling) {
  536 + if ("2".equals(nowScheduling.get(0).getLpName())) {
  537 + for (DriverScheduling scheduling : nowScheduling) {
  538 + if (BC_TYPE_OUT.equals(scheduling.getBcType())) {
  539 + scheduling.setFcsjT(ConstDateUtil.dateAddition(ConstDateUtil.formatDate("yyyy-MM-dd", new Date(nowScheduling.get(0).getFcsjT())), "07:20:00").getTime());
  540 + }
  541 + }
  542 + }
  543 + if ("5".equals(nowScheduling.get(0).getLpName())) {
  544 + for (DriverScheduling scheduling : nowScheduling) {
  545 + if (BC_TYPE_OUT.equals(scheduling.getBcType())) {
  546 + scheduling.setFcsjT(ConstDateUtil.dateAddition(ConstDateUtil.formatDate("yyyy-MM-dd", new Date(nowScheduling.get(0).getFcsjT())), "07:05:00").getTime());
  547 + }
  548 + }
  549 + }
  550 + }
  551 +
  552 + private List<DriverScheduling> handleQinZhengLine(List<DriverScheduling> nowScheduling) {
  553 + return nowScheduling.stream().filter(item -> !item.getLineName().contains("区间")).collect(Collectors.toList());
  554 + }
  555 +
528 private void updateScheduling(List<DriverScheduling> nowScheduling) { 556 private void updateScheduling(List<DriverScheduling> nowScheduling) {
529 switch (nowScheduling.get(0).getLpName()) { 557 switch (nowScheduling.get(0).getLpName()) {
530 case "松1": 558 case "松1":
Bsth-admin/src/main/java/com/ruoyi/service/impl/BigViewServiceImpl.java
@@ -345,7 +345,7 @@ public class BigViewServiceImpl implements BigViewService { @@ -345,7 +345,7 @@ public class BigViewServiceImpl implements BigViewService {
345 return; 345 return;
346 } 346 }
347 // 如有多异常覆盖策略 异常等级排 未签 -》 迟到 -》 酒驾 347 // 如有多异常覆盖策略 异常等级排 未签 -》 迟到 -》 酒驾
348 - if (driverInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) < 0) { 348 + if (driverInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) > 0) {
349 return; 349 return;
350 } 350 }
351 } 351 }
@@ -358,7 +358,7 @@ public class BigViewServiceImpl implements BigViewService { @@ -358,7 +358,7 @@ public class BigViewServiceImpl implements BigViewService {
358 return; 358 return;
359 } 359 }
360 // 如有多异常覆盖策略 异常等级排 未签 -》 迟到 -》 酒驾 360 // 如有多异常覆盖策略 异常等级排 未签 -》 迟到 -》 酒驾
361 - if (saleInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) < 0) { 361 + if (saleInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) > 0) {
362 return; 362 return;
363 } 363 }
364 } 364 }