Commit 0c60364d176cdc6a883a3f5d2aaaccce3930247c
1 parent
a96d30ea
feat: 增加特殊处理
Showing
2 changed files
with
44 additions
and
16 deletions
Bsth-admin/src/main/java/com/ruoyi/service/ThreadJobService.java
| ... | ... | @@ -48,7 +48,6 @@ import java.io.*; |
| 48 | 48 | import java.math.BigDecimal; |
| 49 | 49 | import java.time.LocalDate; |
| 50 | 50 | import java.util.*; |
| 51 | -import java.util.concurrent.CompletableFuture; | |
| 52 | 51 | import java.util.stream.Collectors; |
| 53 | 52 | |
| 54 | 53 | import static com.ruoyi.common.ConstDriverProperties.BC_TYPE_IN; |
| ... | ... | @@ -170,7 +169,7 @@ public class ThreadJobService { |
| 170 | 169 | exception.setRemark(signIn.getRemark()); |
| 171 | 170 | exception.setCreateTime(signIn.getCreateTime()); |
| 172 | 171 | exception.setFleetName(driver.getFleetName()); |
| 173 | - if (CollectionUtil.isNotEmpty(dto)) { | |
| 172 | + if (CollectionUtil.isNotEmpty(dto) && dto.size() > 0) { | |
| 174 | 173 | DriverScheduling scheduling = dto.get(globalIndex.getIndex()); |
| 175 | 174 | exception.setNbbm(scheduling.getNbbm()); |
| 176 | 175 | exception.setLineName(scheduling.getLineName()); |
| ... | ... | @@ -466,19 +465,19 @@ public class ThreadJobService { |
| 466 | 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 | 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 | 481 | return scheduling; |
| 483 | 482 | } |
| 484 | 483 | |
| ... | ... | @@ -516,6 +515,14 @@ public class ThreadJobService { |
| 516 | 515 | if (nowScheduling.get(0).getLineName().equals("松青线") && checkLpName(nowScheduling.get(0))) { |
| 517 | 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 | 526 | bcList.addAll(nowScheduling); |
| 520 | 527 | } else { |
| 521 | 528 | // 处理无进出场 |
| ... | ... | @@ -525,6 +532,27 @@ public class ThreadJobService { |
| 525 | 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 | 556 | private void updateScheduling(List<DriverScheduling> nowScheduling) { |
| 529 | 557 | switch (nowScheduling.get(0).getLpName()) { |
| 530 | 558 | case "松1": | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/service/impl/BigViewServiceImpl.java
| ... | ... | @@ -345,7 +345,7 @@ public class BigViewServiceImpl implements BigViewService { |
| 345 | 345 | return; |
| 346 | 346 | } |
| 347 | 347 | // 如有多异常覆盖策略 异常等级排 未签 -》 迟到 -》 酒驾 |
| 348 | - if (driverInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) < 0) { | |
| 348 | + if (driverInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) > 0) { | |
| 349 | 349 | return; |
| 350 | 350 | } |
| 351 | 351 | } |
| ... | ... | @@ -358,7 +358,7 @@ public class BigViewServiceImpl implements BigViewService { |
| 358 | 358 | return; |
| 359 | 359 | } |
| 360 | 360 | // 如有多异常覆盖策略 异常等级排 未签 -》 迟到 -》 酒驾 |
| 361 | - if (saleInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) < 0) { | |
| 361 | + if (saleInfoVo.getSignStatus().compareTo(personInfoVo.getSignStatus()) > 0) { | |
| 362 | 362 | return; |
| 363 | 363 | } |
| 364 | 364 | } | ... | ... |