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 9c1d5c437..974d19af6 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 @@ -406,9 +406,12 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() .eq(WorkPlan::getId, wp.getNextWpId())); + if (nextWorkPlan == null) { + throw new ServiceException("未找到下道工序,工序ID:" + wp.getNextWpId()); + } BsProcessSetEntity bsProcessSetEntity = processSetMapper.selectOne(new LambdaQueryWrapper() .eq(BsProcessSetEntity::getId, nextWorkPlan.getPpsId())); - if (nextWorkPlan.getMakeTeam() != null && !"1".equalsIgnoreCase(bsProcessSetEntity.getIsDispatch())) { + if (nextWorkPlan.getMakeTeam() != null && bsProcessSetEntity != null && !"1".equalsIgnoreCase(bsProcessSetEntity.getIsDispatch())) { teamSet = teamSetMapper.selectOne(new LambdaQueryWrapper() .eq(TeamSet::getId, nextWorkPlan.getMakeTeam())); } @@ -433,10 +436,20 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); + Map yieldOrderCraftMap = yieldOrderCrafts.stream().collect(Collectors.toMap(YieldOrderCraft::getProcessNo, v -> v)); yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.TRUE, null); + // 回写分派结果:从 YieldOrderCraft.workCenterId 反查班组,写入 WorkPlan.makeTeam + for (WorkPlan plan : wpList) { + YieldOrderCraft craft = yieldOrderCraftMap.get(plan.getOrders()); + if (craft != null && craft.getWorkCenterId() != null) { + List teams = teamSetMapper.selectList(new LambdaQueryWrapper().eq(TeamSet::getWcId, craft.getWorkCenterId())); + if (teams != null && !teams.isEmpty()) { + plan.setMakeTeam(teams.get(0).getId()); + } + } + } //周新昊 20241015 增加调用下方方法 //处理包装工序 并且工艺能力包含 包装 并且加工单位为空的 //手持移动端数据查询接口 @@ -460,6 +473,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() .eq(WorkPlan::getId, wp.getNextWpId())); + if (nextWorkPlan == null) { + throw new ServiceException("未找到下道工序,工序ID:" + wp.getNextWpId()); + } workOrderRun.setInTeam(nextWorkPlan.getMakeTeam()); wo.setTsId(nextWorkPlan.getMakeTeam()); } @@ -474,6 +490,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl