外协审批通过后和外协收回后,更新生产订单的作业中心、生产订单状态、车间运行记录的外协状态

liweidong
qinyulong 3 weeks ago
parent 231292ffdc
commit 51b2532d72
  1. 42
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java

@ -138,6 +138,11 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
if (workOrder == null) {
return R.fail("未找到相关车间订单!");
}
// 获取生产订单信息
YieldOrder yieldOrder = yieldOrderMapper.selectById(workOrder.getYoId());
if (yieldOrder == null) {
return R.fail("未找到相关生产订单!");
}
// 获取工序计划信息
List<WorkPlan> workPlans = workPlanMapper.selectList(new LambdaQueryWrapper<WorkPlan>()
.eq(WorkPlan::getWoId, workOrder.getId()));
@ -149,7 +154,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
}
//执行收回业务
executeBusinessLogic(workOrder, workOrderRun, workPlans, deliverablePlan,
executeBusinessLogic(yieldOrder, workOrder, workOrderRun, workPlans, deliverablePlan,
workOrderRun.getCreateTime(), new Date(), oemTakeBack.getDeliverKey(), oemTakeBack.getScrapQty(), oemTakeBack.getTestQty());
}
return R.fail("未找到相关外协订单");
@ -264,7 +269,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
wo.setWorId(workOrderRun.getId());
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_ISSUED);
//新增状态:外协状态,转外协审批通过后,置为待外协
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_TO);
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_IN);
//调用转外协自动分派处理
if (wpList != null && wpList.size() > 0) {
//判断工序是否存在外协商,如果存在不进行二次分派
@ -353,6 +358,8 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
}
wo.setWorId(workOrderRun.getId());
workOrderRun.setRunStatus(WorkOrderRun.RUN_STATUS_ISSUED);
//新增状态:外协状态,转厂内审批通过后,置为外协完成
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_END);
//调用转厂内自动分派处理
if (teamSet == null) {
//调用转外协自动分派处理
@ -421,6 +428,8 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
yo.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_SJ.getCode());
}
}
//修改生产订单状态为已收回待排产
yo.setStatus(YieldOrderEnum.STATUS_OUTSOURCING_WAITING.getCode());
}
} else if (WorkOrderRun.RUN_TYPE_3.equals(workOrderRun.getRunType())) {
//验证同工单下的车间订单
@ -529,7 +538,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
.orElse(null);
}
private void executeBusinessLogic(WorkOrder workOrder, WorkOrderRun workOrderRun,
private void executeBusinessLogic(YieldOrder yieldOrder, WorkOrder workOrder, WorkOrderRun workOrderRun,
List<WorkPlan> workPlans, WorkPlan deliverablePlan,
Date startTime, Date endTime, String deliverKey,
Integer scrapQty, Integer testQty) {
@ -545,6 +554,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
// 更新运行记录状态
updateWorkOrderRun(workOrderRun, deliverKey, workOrder.getOemType());
//更新生产订单业务中心、状态
updateYieldOrder(yieldOrder, deliverablePlan);
// 处理特殊外协逻辑,暂时屏蔽
/*if (workOrder.getOemType() == 2) {
handleSpecialOemLogic(workOrder, deliverablePlan);
@ -603,9 +615,33 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
private void updateWorkOrderRun(WorkOrderRun workOrderRun, String deliverKey, Integer oemType) {
workOrderRun.setDeliverKey(deliverKey);
workOrderRun.setRunStatus(oemType == 2 ? (short) 15 : (short) 10);
//新增状态,外协收回后,外协状态置为外协完成
workOrderRun.setOemStatus(WorkOrderRun.OEM_STATUS_END);
workOrderRunMapper.updateById(workOrderRun);
}
/**
* 更新运行记录状态
*
* @param yieldOrder
* @param deliverablePlan
*/
private void updateYieldOrder(YieldOrder yieldOrder, WorkPlan deliverablePlan) {
//更新作业中心
WorkPlan nextWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
.eq(WorkPlan::getId, deliverablePlan.getNextWpId()));
if (nextWorkPlan != null && nextWorkPlan.getMakeTeam() != null) {
if (Integer.valueOf(YieldOrderEnum.YIELD_TYPE_1.getCode()).equals(yieldOrder.getYieldType())) {
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_RB.getCode());
} else {
yieldOrder.setBusinessType(YieldOrderEnum.BUSINESS_TYPE_SJ.getCode());
}
}
//更新状态为已外协待排产
yieldOrder.setStatus(YieldOrderEnum.STATUS_OUTSOURCING_WAITING.getCode());
yieldOrderMapper.updateById(yieldOrder);
}
/**
* 更新交件工序状态为报工完成下工序可接收
*

Loading…
Cancel
Save