|
|
|
|
@ -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); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新交件工序状态为报工完成,下工序可接收 |
|
|
|
|
* |
|
|
|
|
|