diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java index b086874..3fd374c 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java @@ -1136,6 +1136,8 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { @Override public void delayOrder(WorkOrderInfoBo bo) { + checkDelayTime(bo); + // 延期说明 String delayDescription = bo.getDelayDescription(); Long responseTime = bo.getResponseTime(); @@ -1206,6 +1208,26 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { } + private void checkDelayTime(WorkOrderInfoBo bo) { + // 获取延期时间 + Date delayTime = bo.getDelayTime(); + + // 判空处理 + if (delayTime == null) { + throw new ServiceException("延期时间不能为空"); + } + + // 使用系统默认时区进行比较(或根据业务需要换成 ZoneId.of("UTC")) + LocalDateTime now = LocalDateTime.now(); + LocalDateTime delayDateTime = delayTime.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + + if (now.isAfter(delayDateTime)) { + throw new ServiceException("延期时间不能早于当前时间"); + } + } + @Override public void delaySubmit(WorkOrderDelayBo bo) { String workOrderId = bo.getId(); @@ -1586,8 +1608,17 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { reviewInfoQueryWrapper.last("LIMIT 1"); WorkReviewInfo lastReviewInfo = workReviewInfoMapper.selectOne(reviewInfoQueryWrapper); if (lastReviewInfo != null){ - record.setOtherCost(Double.valueOf(lastReviewInfo.getOtherCost())); - record.setOtherCostReason(lastReviewInfo.getOtherCostReason()); + if (lastReviewInfo.getOtherCost() != null) { + record.setOtherCost(Double.valueOf(lastReviewInfo.getOtherCost())); + } else { + record.setOtherCost(0.0); // 或者 0.0,根据业务需求决定默认值 + } + + if (lastReviewInfo.getOtherCostReason() != null) { + record.setOtherCostReason(lastReviewInfo.getOtherCostReason()); + } else { + record.setOtherCostReason("无"); // 或者 "" + } } // 6.工单审核中的初审建议