diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java index ea9080a..b9d967e 100644 --- a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java @@ -76,6 +76,15 @@ public interface IHotVehicleThreeInspectService { */ void validateNoUnfinishedProcess(String vehicleId, String actionMessage); + /** + * 校验车辆当前不存在影响默认车辆切换的未完成三检流程。 + * 切换默认车辆时仅要求最新一条三检记录已到收车检查阶段,不区分审核结果。 + * + * @param vehicleId 车辆ID + * @param actionMessage 失败提示文案 + */ + void validateNoUnfinishedSwitchVehicleProcess(String vehicleId, String actionMessage); + /** * 修改车辆三检 * 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 8567b70..a7bc1bc 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 @@ -68,13 +68,7 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec if (parsedVehicleId == null) { return false; } - HotVehicleThreeInspect latestInspect = baseMapper.selectOne( - Wrappers.lambdaQuery() - .eq(HotVehicleThreeInspect::getVehicleId, parsedVehicleId) - .eq(HotVehicleThreeInspect::getIsDeleted, 0L) - .orderByDesc(HotVehicleThreeInspect::getCreateTime) - .last("LIMIT 1") - ); + HotVehicleThreeInspect latestInspect = selectLatestInspect(parsedVehicleId); if (latestInspect == null) { return false; } @@ -91,6 +85,21 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec } } + @Override + public void validateNoUnfinishedSwitchVehicleProcess(String vehicleId, String actionMessage) { + Long parsedVehicleId = parseVehicleId(vehicleId); + if (parsedVehicleId == null) { + return; + } + HotVehicleThreeInspect latestInspect = selectLatestInspect(parsedVehicleId); + if (latestInspect == null) { + return; + } + if (!Long.valueOf(3L).equals(latestInspect.getInspectPhase())) { + throw new ServiceException(actionMessage); + } + } + /** * 查询车辆三检 * @@ -472,9 +481,9 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec return; } bo.setRejectReason(StringUtils.trimToNull(bo.getRejectReason())); - if (StringUtils.isBlank(bo.getRejectReason())) { - throw new ServiceException("审核不通过时,不通过原因不能为空"); - } +// if (StringUtils.isBlank(bo.getRejectReason())) { +// throw new ServiceException("审核不通过时,不通过原因不能为空"); +// } } private void validateAuditTimeNotBeforeInspectTime(HotVehicleThreeInspectBo bo, HotVehicleThreeInspect current) { @@ -511,4 +520,14 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec } return Long.valueOf(vehicleId); } + + private HotVehicleThreeInspect selectLatestInspect(Long vehicleId) { + return baseMapper.selectOne( + Wrappers.lambdaQuery() + .eq(HotVehicleThreeInspect::getVehicleId, vehicleId) + .eq(HotVehicleThreeInspect::getIsDeleted, 0L) + .orderByDesc(HotVehicleThreeInspect::getCreateTime) + .last("LIMIT 1") + ); + } } diff --git a/src/main/java/com/hotwj/platform/driverManagement/driver/service/impl/HotDriverServiceImpl.java b/src/main/java/com/hotwj/platform/driverManagement/driver/service/impl/HotDriverServiceImpl.java index 56896c7..f1a7501 100644 --- a/src/main/java/com/hotwj/platform/driverManagement/driver/service/impl/HotDriverServiceImpl.java +++ b/src/main/java/com/hotwj/platform/driverManagement/driver/service/impl/HotDriverServiceImpl.java @@ -1004,7 +1004,7 @@ public class HotDriverServiceImpl implements IHotDriverService { throw new ServiceException("当前默认车辆不存在,不能切换"); } - hotVehicleThreeInspectService.validateNoUnfinishedProcess(driver.getVehicleId(), "当前车辆三检流程未完成,不可切换车辆"); + hotVehicleThreeInspectService.validateNoUnfinishedSwitchVehicleProcess(driver.getVehicleId(), "当前车辆三检流程未完成,不可切换车辆"); HotVehicle targetVehicle = vehicleMapper.selectOne(Wrappers.lambdaQuery() .eq(HotVehicle::getId, targetVehicleId)