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,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 | } |