|
|
|
@ -134,6 +134,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
if (null == workOrderRun) { |
|
|
|
if (null == workOrderRun) { |
|
|
|
return R.fail("未找到相关外协订单"); |
|
|
|
return R.fail("未找到相关外协订单"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 必须是"已下达"状态才能收回
|
|
|
|
|
|
|
|
if (!WorkOrderRun.RUN_STATUS_ISSUED.equals(workOrderRun.getRunStatus())) { |
|
|
|
|
|
|
|
return R.fail("外协订单已收回或状态不正确,无法再次操作"); |
|
|
|
|
|
|
|
} |
|
|
|
// 获取订单信息
|
|
|
|
// 获取订单信息
|
|
|
|
WorkOrder workOrder = workOrderMapper.selectById(workOrderRun.getWoId()); |
|
|
|
WorkOrder workOrder = workOrderMapper.selectById(workOrderRun.getWoId()); |
|
|
|
if (workOrder == null) { |
|
|
|
if (workOrder == null) { |
|
|
|
@ -551,11 +555,23 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
return page.setRecords(approvals); |
|
|
|
return page.setRecords(approvals); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 查找可交件的最后一道外协工序 |
|
|
|
|
|
|
|
* 取第一个非外协未开工序的 front_wp_id |
|
|
|
|
|
|
|
*/ |
|
|
|
private WorkPlan findDeliverableWorkPlan(List<WorkPlan> workPlans) { |
|
|
|
private WorkPlan findDeliverableWorkPlan(List<WorkPlan> workPlans) { |
|
|
|
return workPlans.stream() |
|
|
|
WorkPlan firstInternalPlan = workPlans.stream() |
|
|
|
.filter(plan -> "0".equals(plan.getOem()) && plan.getStatus() == 1) |
|
|
|
.filter(plan -> "0".equals(plan.getOem()) && plan.getStatus() == 1) |
|
|
|
.min(Comparator.comparing(WorkPlan::getOrders)) |
|
|
|
.min(Comparator.comparing(WorkPlan::getOrders)) |
|
|
|
.orElse(null); |
|
|
|
.orElse(null); |
|
|
|
|
|
|
|
if (firstInternalPlan == null) { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Long frontWpId = firstInternalPlan.getFrontWpId(); |
|
|
|
|
|
|
|
return workPlans.stream() |
|
|
|
|
|
|
|
.filter(plan -> plan.getId().equals(frontWpId)) |
|
|
|
|
|
|
|
.findFirst() |
|
|
|
|
|
|
|
.orElse(null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void executeBusinessLogic(YieldOrder yieldOrder, WorkOrder workOrder, WorkOrderRun workOrderRun, |
|
|
|
private void executeBusinessLogic(YieldOrder yieldOrder, WorkOrder workOrder, WorkOrderRun workOrderRun, |
|
|
|
@ -593,6 +609,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper, |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private void updateWorkOrder(WorkOrder workOrder, WorkPlan deliverablePlan, |
|
|
|
private void updateWorkOrder(WorkOrder workOrder, WorkPlan deliverablePlan, |
|
|
|
Integer scrapQty, Integer testQty) { |
|
|
|
Integer scrapQty, Integer testQty) { |
|
|
|
|
|
|
|
// 已交接的订单不允许再修改
|
|
|
|
|
|
|
|
if (WorkOrder.RUN_STATUS_CRAFT_CHANGE.equals(workOrder.getRunStatus())) { |
|
|
|
|
|
|
|
throw new ServiceException("车间订单已交接,无法再次收回"); |
|
|
|
|
|
|
|
} |
|
|
|
workOrder.setWpId(deliverablePlan.getId()); |
|
|
|
workOrder.setWpId(deliverablePlan.getId()); |
|
|
|
workOrder.setRunStatus(3); // 加工中
|
|
|
|
workOrder.setRunStatus(3); // 加工中
|
|
|
|
workOrder.setMakeQty(workOrder.getMakeQty() - scrapQty - testQty); |
|
|
|
workOrder.setMakeQty(workOrder.getMakeQty() - scrapQty - testQty); |
|
|
|
|