diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index 974d19af6..49210e7ce 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -203,8 +203,17 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl().eq(OemCraftAbilityEntity::getOtherId, oemId) @@ -340,6 +355,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl().eq(WorkPlan::getId, wp.getNextWpId())); + if (nextWp == null) { + throw new ServiceException("未找到下道工序,工序ID:" + wp.getNextWpId()); + } workOrderRun.setInCustomer(nextWp.getOcId()); } else { workOrderRun.setInCustomer(wp.getOcId()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index 4c62270ed..1cc9acb8b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -448,13 +448,14 @@ public class WorkOrderServiceImpl extends BaseServiceImpl wpList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, curWoId)); List workOrderRuns = workOrderRunService.list(Wrappers.lambdaQuery(WorkOrderRun.class).eq(WorkOrderRun::getWoId, curWoId)); - // 校验是否可以转外协 - for (WorkOrderRun workOrderRun : workOrderRuns) { - if (Objects.equals(workOrderRun.getRunStatus(), WorkOrderRun.RUN_STATUS_UNDER)) { - throw new ServiceException("【" + workOrderRun.getWoCode() + "】订单等待外协审批中!!!"); - } else if (Objects.equals(workOrderRun.getRunStatus(), WorkOrderRun.RUN_STATUS_ISSUED)) { - throw new ServiceException("【" + workOrderRun.getWoCode() + "】订单正在外协中!!!"); - } + // 校验是否可以转外协,存在审批中的记录则阻断 + boolean hasUnder = workOrderRuns.stream() + .anyMatch(r -> Objects.equals(r.getRunStatus(), WorkOrderRun.RUN_STATUS_UNDER)); + if (hasUnder) { + String woCode = workOrderRuns.stream() + .filter(r -> Objects.equals(r.getRunStatus(), WorkOrderRun.RUN_STATUS_UNDER)) + .findFirst().map(WorkOrderRun::getWoCode).orElse(""); + throw new ServiceException("【" + woCode + "】订单等待外协审批中!!!"); } List wprList = new ArrayList<>(wpList.size()); // 拿出第一个单子对应的可以派外协的工序 @@ -466,7 +467,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl