From f7051fef36977732fcd0bd4305696219149f6008 Mon Sep 17 00:00:00 2001 From: Ledo Date: Wed, 15 Jan 2025 13:44:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E6=A3=80=E8=BF=87=E7=A8=8B=E6=A3=80?= =?UTF-8?q?=20=E5=BC=B9=E6=A1=86=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taskdispatch/TaskDispatchServiceImpl.java | 121 ++++++++++++------ .../src/views/heli/taskdispatch/detail.vue | 1 + .../views/heli/taskdispatch/detailDialog.vue | 1 + 3 files changed, 82 insertions(+), 41 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index 8e1ab8a..629cbfd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -468,51 +468,90 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { crossOrderManager.generateStockInOrder(taskDispatchDetailDO.getDispatchId(), now, lastReportDO.getAmount()); break; case FINISH: - taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); - // TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); - List idsProduction = new ArrayList<>(); - List idsAssemble = new ArrayList<>(); - List taskDispatchDOS = taskDispatchMapper.selectList(TaskDispatchDO::getPlanId, taskDispatchDO.getPlanId()); - if(CollUtil.isNotEmpty(taskDispatchDOS)){ - idsAssemble = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("ASSEMBLE")) - .map(TaskDispatchDO::getId) - .collect(Collectors.toList()); - idsProduction = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("PRODUCTION")) - .map(TaskDispatchDO::getId) - .collect(Collectors.toList()); - List taskDispatchDetailAssembleList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper() - .in(TaskDispatchDetailDO::getDispatchId, idsAssemble)); - List taskDispatchDetailProductionList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper() - .in(TaskDispatchDetailDO::getDispatchId, idsProduction)); - boolean isProductionOver = true; - boolean isAssembleOver = true; - for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailAssembleList) { - if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){ - if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ - isAssembleOver = false; - break; - } + taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); + //子项目装配是否完成 + List taskDispatchAssembleOverList = taskDispatchMapper.selectList( + new LambdaQueryWrapper() + .eq(TaskDispatchDO::getProjectSubId, taskDispatchDO.getProjectSubId()) + .eq(TaskDispatchDO::getDispatchType,"ASSEMBLE")); + //零件是否生产完成 + List taskDispatchDetailDOS = taskDispatchDetailMapper.selectListByDispatchId(taskDispatchDO.getId()); + List productionList = taskDispatchDetailDOS.stream().filter(e -> e.getDispatchType().equals("PRODUCTION") && !e.getId().equals(taskDispatchDetailDO.getId())).collect(Collectors.toList()); + //过程检 零件所有生产派工完成生成 + boolean isBomDetailProductionOver = true; + //终检 子项目装配派工都完成 + boolean isProjectSubAssembleOver = true; + //生产零件派工判断是否生成过程检 + if (CollUtil.isNotEmpty(productionList)){ + for (TaskDispatchDetailDO dispatchDetailDO : productionList) { + if (dispatchDetailDO.getProcedureStatus() !=TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ + isBomDetailProductionOver = false; + break; } } - for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailProductionList) { - if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){ - if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ - isProductionOver = false; - break; - } - } - } - if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isProductionOver){ - pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId()); - }else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isAssembleOver){ - zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId()); - } - if (isProductionOver&&isAssembleOver){ - planDO.setStatus(3); - planMapper.updateById(planDO); - } } + if (CollUtil.isNotEmpty(productionList)){ + for (TaskDispatchDetailDO dispatchDetailDO : productionList) { + if (!dispatchDetailDO.getId().equals(taskDispatchDetailDO.getId()) && + dispatchDetailDO.getProcedureStatus() !=TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ + //如果其他的有未完成的 + isProjectSubAssembleOver = false; + break; + } + } + } + if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isBomDetailProductionOver){ + pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId()); + }else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isProjectSubAssembleOver){ + zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId()); + } +// // TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); +// List idsProduction = new ArrayList<>(); +// List idsAssemble = new ArrayList<>(); +// //生产计划是否完成 查所有 +// List taskDispatchDOS = taskDispatchMapper.selectList(new LambdaQueryWrapper() +// .eq(TaskDispatchDO::getPlanId, taskDispatchDO.getPlanId())); +// if(CollUtil.isNotEmpty(taskDispatchDOS)){ +// idsAssemble = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("ASSEMBLE")) +// .map(TaskDispatchDO::getId) +// .collect(Collectors.toList()); +// idsProduction = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("PRODUCTION")) +// .map(TaskDispatchDO::getId) +// .collect(Collectors.toList()); +// List taskDispatchDetailAssembleList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper() +// .in(TaskDispatchDetailDO::getDispatchId, idsAssemble)); +// List taskDispatchDetailProductionList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper() +// .in(TaskDispatchDetailDO::getDispatchId, idsProduction)); +// +// boolean isProductionOver = true; +// boolean isAssembleOver = true; +// for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailAssembleList) { +// if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){ +// if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ +// isAssembleOver = false; +// break; +// } +// } +// } +// for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailProductionList) { +// if (dispatchDetailDO.getId() != taskDispatchDetailDO.getId()){ +// if (dispatchDetailDO.getProcedureStatus()!= TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ +// isProductionOver = false; +// break; +// } +// } +// } +// if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isProductionOver){ +// pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId()); +// }else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isAssembleOver){ +// zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId()); +// } +// if (isProductionOver&&isAssembleOver){ +// planDO.setStatus(3); +// planMapper.updateById(planDO); +// } +// } taskDispatchDetailMapper.updateById(taskDispatchDetailDO); break; } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue index 0c09aa4..3449884 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue @@ -859,6 +859,7 @@ const centerDialogVisible = ref(false); const isSureCancle = ref(false) const sureToCancle = () =>{ isSureCancle.value = true; + centerDialogVisible.value = false; submitForm('CANCEL_SUBMIT'); } const submitForm = async (operate) => { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue index 4833c78..fb34522 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue @@ -1030,6 +1030,7 @@ const queryData = async (id?: number) => { const isSureCancle = ref(false) const sureToCancle = () =>{ isSureCancle.value = true; + centerDialogVisible.value = false; submitForm('CANCEL_SUBMIT'); } const submitForm = async (operate) => {