diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java index d0034b0..6b9c9f3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java @@ -164,8 +164,10 @@ public interface TaskDispatchDetailMapper extends BaseMapperX list = taskDispatchDetailDOPageResult.getList(); List afterList = new ArrayList<>(); if (CollUtil.isNotEmpty(list)){ - Map> collect = list.stream().collect(Collectors.groupingBy(TaskDispatchDetailDO::getId)); + Map> collect = list.stream().collect(Collectors.groupingBy(TaskDispatchDetailDO::getDispatchCode)); collect.forEach((code,list2)->{ list2.sort(Comparator.comparing(TaskDispatchDetailDO::getSort, Comparator.nullsLast(Integer::compareTo))); afterList.addAll(list2); @@ -470,30 +470,47 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { 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)){ - List ids = taskDispatchDOS.stream() + idsAssemble = taskDispatchDOS.stream().filter(e-> e.getDispatchType().equals("ASSEMBLE")) .map(TaskDispatchDO::getId) .collect(Collectors.toList()); - List taskDispatchDetailList = taskDispatchDetailMapper.selectList(new LambdaQueryWrapper() - .in(TaskDispatchDetailDO::getDispatchId, ids)); - boolean isOver = true; - for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailList) { + 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()){ - isOver = false; + isAssembleOver = false; break; } } } - if (isOver){ + 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(taskDispatchDO.getDispatchType().equals("ASSEMBLE")){ - zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId()); - } else if (taskDispatchDO.getDispatchType().equals("PRODUCTION")) { - pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId()); - } } } taskDispatchDetailMapper.updateById(taskDispatchDetailDO);