From 4a77f3e431a2b4b5930577480b0adc4fbf0dbad6 Mon Sep 17 00:00:00 2001 From: 18980591175 <470162950@qq.com> Date: Thu, 28 May 2026 14:41:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E8=BE=86=E8=BD=A6=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E8=A2=AB=E4=B8=8D=E5=90=8C=E4=BA=BA=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HotVehicleThreeInspectServiceImpl.java | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java index aaf3e60..e8dbe2b 100644 --- a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java @@ -21,6 +21,7 @@ import com.hotwj.platform.flow.service.ISysFlowService; import com.hotwj.platform.integration.ocr.SignatureVerifyService; import com.hotwj.platform.noticeManagerment.systemNotification.domain.bo.HotSystemNotificationGroupBo; import com.hotwj.platform.noticeManagerment.systemNotification.service.IHotSystemNotificationService; +import com.hotwj.platform.resourceManagement.vehicleManagement.domain.HotVehicle; import com.hotwj.platform.resourceManagement.vehicleManagement.domain.vo.HotVehicleVo; import com.hotwj.platform.resourceManagement.vehicleManagement.mapper.HotVehicleMapper; import com.hotwj.platform.securityManagement.hiddenDanger.mapper.HotHiddenDangerMapper; @@ -247,18 +248,12 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec // 校验该车辆三检流程逻辑 if (add.getVehicleId() != null) { - // 获取该车辆最近的一条三检记录 - List list = baseMapper.selectList( - Wrappers.lambdaQuery() - .eq(HotVehicleThreeInspect::getVehicleId, add.getVehicleId()) - .orderByDesc(HotVehicleThreeInspect::getCreateTime) - .last("LIMIT 1") - ); - Long currentPhase = add.getInspectPhase(); + // 获取该车辆最近的一条三检记录 + HotVehicleThreeInspect last = selectLatestInspect(add.getVehicleId()); + validateOutboundVehicleDriver(add, last); - if (list != null && !list.isEmpty()) { - HotVehicleThreeInspect last = list.get(0); + if (last != null) { Long lastPhase = last.getInspectPhase(); // 1. 如果上一条是收车检查(第3阶段),则本次必须是新一轮的出车检查(第1阶段) if (lastPhase == 3) { @@ -340,6 +335,32 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec return flag; } + private void validateOutboundVehicleDriver(HotVehicleThreeInspect currentInspect, HotVehicleThreeInspect latestInspect) { + if (currentInspect == null || !Objects.equals(currentInspect.getInspectPhase(), 1L) || latestInspect == null) { + return; + } + if (Objects.equals(latestInspect.getInspectPhase(), 3L)) { + return; + } + if (StringUtils.equals(StringUtils.trimToEmpty(currentInspect.getDriverId()), + StringUtils.trimToEmpty(latestInspect.getDriverId()))) { + return; + } + throw new ServiceException(buildVehicleOccupiedMessage(currentInspect.getVehicleId())); + } + + private String buildVehicleOccupiedMessage(Long vehicleId) { + if (vehicleId == null) { + return "该车辆已出任务,请重新选择其他车辆"; + } + HotVehicle vehicle = hotVehicleMapper.selectById(String.valueOf(vehicleId)); + String plateNumber = vehicle == null ? null : StringUtils.trimToNull(vehicle.getPlateNumber()); + if (plateNumber == null) { + return "该车辆已出任务,请重新选择其他车辆"; + } + return "'" + plateNumber + "'车辆已出任务,请重新选择其他车辆"; + } + private void validateInspectorSignatureByPhase(HotVehicleThreeInspectBo bo) { Long inspectPhase = bo.getInspectPhase(); if (inspectPhase == null) {