diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index c3be9d79..d09f892c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -209,4 +209,13 @@ public interface IWorkOrderService extends BaseService { * @param makeRecDTO */ boolean saveMakeRec(MakeRecDTO makeRecDTO); + + /** + *

方法名: qualified

+ *

方法描述: 检验通过修改订单

+ * + * @param wp 工单计划 + * @param wo 工单 + */ + void qualified(WorkPlan wp, WorkOrder wo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index d5419835..7f598e89 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -2045,6 +2045,94 @@ public class WorkOrderServiceImpl extends BaseServiceImpl WorkPlan.STATUS_NO_START) { + BsProcessSetEntity processSet = bsProcessSetService.getById(nextWorkPlan.getPpsId()); + if ("1".equals(processSet.getIsDispatch())) { + if (nextWorkPlan.getQualifiedQty() > 0) { + nextWorkPlan.setQualifiedQty(currWp.getQualifiedQty()); + } + if (nextWorkPlan.getWorkQty() > 0) { + nextWorkPlan.setWorkQty(currWp.getWorkQty()); + } + //开始处理报工信息(只处理报工记录是一条的情况,多条情况不处理) + List macList = makeRecService.list(Wrappers.lambdaQuery(MakeRec.class).eq(MakeRec::getWpId, nextWorkPlan.getId())); + if (macList != null && macList.size() == 1) { + for (MakeRec mac : macList) { + mac.setWorkQty(currWp.getWorkQty()); + makeRecService.updateById(mac); + } + } + WorkPlan nextWorkPlan2 = workPlanService.getById(nextWorkPlan.getNextWpId()); + this.getNextWorkPlan(nextWorkPlan, nextWorkPlan2); + } + } + } + + private void collaborative(WorkPlan wp, WorkPlan frontWorkPlan, WorkPlan nextWorkPlan, boolean isFirst, WorkOrder wo) { + if (nextWorkPlan == null || nextWorkPlan.getOcId() == null) { + return; + } + Long currentOcId; + Date factEndTime; + if (isFirst) { + if (frontWorkPlan == null || frontWorkPlan.getOcId() == null) { + return; + } + + factEndTime = frontWorkPlan.getFactEndTime(); + currentOcId = frontWorkPlan.getOcId(); + } else { + if (wp == null || wp.getOcId() == null) { + return; + } + currentOcId = wp.getOcId(); + factEndTime = wp.getFactStartTime(); + } + Long nextOcId = nextWorkPlan.getOcId(); + if (!currentOcId.equals(nextOcId)) { + return; + } + + this.workPlanEnd(wp, new Date(), wo.getMakeQty()); + + //开始下序 + this.workPlanStart(nextWorkPlan, factEndTime, null, wo); + + WorkPlan frontWorkPlan2 = workPlanService.getById(nextWorkPlan.getFrontWpId()); + WorkPlan nextWorkPlan2 = workPlanService.getById(nextWorkPlan.getNextWpId()); + this.collaborative(nextWorkPlan, frontWorkPlan2, nextWorkPlan2, false, wo); + } + private void workPlanEnd(WorkPlan workPlan, Date newDate, Double makeQty) { if (workPlan == null) { return;