外协转厂内审批分配作业中心班组逻辑修改

liweidong
zangzhipeng 10 hours ago
parent 46ec72bb22
commit 423ab791bb
  1. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java

@ -406,9 +406,12 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
}
nextWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
.eq(WorkPlan::getId, wp.getNextWpId()));
if (nextWorkPlan == null) {
throw new ServiceException("未找到下道工序,工序ID:" + wp.getNextWpId());
}
BsProcessSetEntity bsProcessSetEntity = processSetMapper.selectOne(new LambdaQueryWrapper<BsProcessSetEntity>()
.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<TeamSet>()
.eq(TeamSet::getId, nextWorkPlan.getMakeTeam()));
}
@ -433,10 +436,20 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_END);
//调用转厂内自动分派处理
if (teamSet == null) {
//调用转外协自动分派处理
//自动分派
//调用转厂内自动分派处理
List<YieldOrderCraft> yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId());
Map<String, YieldOrderCraft> 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<TeamSet> teams = teamSetMapper.selectList(new LambdaQueryWrapper<TeamSet>().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<WorkOrderRunMapper,
if (workOrderRun.getInTeam() == null) {
nextWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
.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<WorkOrderRunMapper,
//更改订单调度员和计划员
TeamSet makeTeam = teamSetMapper.selectById(wo.getTsId());
if (makeTeam == null) {
throw new ServiceException("未找到车间订单的主责班组,班组ID:" + wo.getTsId());
}
workOrderService.maintainOrder(wo, makeTeam.getPlanner(), makeTeam.getDispatcher(), workOrderRun, false);
//更新车间订单主责任单位
workOrderService.updateHostWorkUnit(wo);

Loading…
Cancel
Save