diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 05fa10d..b316cf4 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -109,7 +109,7 @@ public interface ErrorCodeConstants { ErrorCode TASK_DISPATCH_TASK_NO_PERMISSION_FOR_OPERATE = new ErrorCode(1_009_005, "任务不满足操作条件"); ErrorCode TASK_DISPATCH_TASK_IS_OVER = new ErrorCode(1_009_007, "报工数量已完成"); ErrorCode TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS = new ErrorCode(1_009_006, "无法超额报工"); - ErrorCode TASK_REPORT_OTHER_PERSON_NO_SUBMIT = new ErrorCode(1_009_008, "其他人员尚未报工,无法结束生产"); + ErrorCode TASK_REPORT_OTHER_PERSON_NO_SUBMIT = new ErrorCode(1_009_020, "其他人员尚未报工,无法结束生产"); /*************质量管理***********/ ErrorCode UNQUALIFIED_NOTIFICATION_NOT_EXISTS = new ErrorCode(1_010_001, "品质异常通知单审核不存在"); ErrorCode QUALITY_FEEDBACK_NOT_EXISTS = new ErrorCode(1_010_002, "客户反馈质量不存在"); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignProgressDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesignprogress/ProcessDesignProgressDO.java similarity index 93% rename from mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignProgressDO.java rename to mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesignprogress/ProcessDesignProgressDO.java index 95f0ef8..8fc5938 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignProgressDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesignprogress/ProcessDesignProgressDO.java @@ -1,10 +1,9 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesignprogress; import lombok.*; -import java.util.*; + import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; + import com.baomidou.mybatisplus.annotation.*; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java index cdda922..f18339a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java @@ -138,6 +138,8 @@ public class TaskDispatchDetailDO extends BaseDO { private String procdureName; @TableField(exist = false) private String type; + @TableField(exist = false) + private String ownerName; /** * 预计工时 */ 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 46f9e18..6e6baaa 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 @@ -18,6 +18,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatch import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -58,6 +59,12 @@ public interface TaskDispatchDetailMapper extends BaseMapperX selectListByDeitalOwnerId(Long detailOwnerId){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(TaskDispatchDetailDO.class) + .select("a.nickname as ownerName").leftJoin(AdminUserDO.class,"a",AdminUserDO::getId,TaskDispatchDetailDO::getOwner).eq(TaskDispatchDetailDO::getDetailOwnerId,detailOwnerId); + return selectList(query); + } /*public static void main(String[] args) { // 示例:假设传入的时间戳代表 2024 年 2 月 11 日 LocalDate exampleDate = LocalDate.of(2025, 2, 13); @@ -133,7 +140,10 @@ public interface TaskDispatchDetailMapper extends BaseMapperX owner){ UpdateWrapper wrapper = new UpdateWrapper(); - wrapper.eq("detail_owner_id",taskDispatchDetailOwnerDO.getId()).in("owner",owner); + wrapper.eq("detail_owner_id",taskDispatchDetailOwnerDO.getId()); + if (CollUtil.isNotEmpty(owner)){ + wrapper.in("owner",owner); + } if (taskDispatchDetailOwnerDO.getProcedureId() != null) { wrapper.set("procedure_id", taskDispatchDetailOwnerDO.getProcedureId()); } 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 29f80e3..82bc2d2 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 @@ -568,7 +568,10 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .ne(TaskReportDO::getAmount, 0); }}); int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum(); - if (!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() <= historyReportAmount){ +// if (!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() <= historyReportAmount){ +// throw exception(TASK_DISPATCH_TASK_IS_OVER); +// } + if ( taskDispatchDetailDO.getAmount() <= historyReportAmount){ throw exception(TASK_DISPATCH_TASK_IS_OVER); } } @@ -587,10 +590,16 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .ne(TaskReportDO::getAmount, 0); }}); int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum(); - if (!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() <= historyReportAmount){ +// if (!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() <= historyReportAmount){ +// throw exception(TASK_DISPATCH_TASK_IS_OVER); +// } +// if(!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())){ +// throw exception(TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS); +// } + if ( taskDispatchDetailDO.getAmount() <= historyReportAmount){ throw exception(TASK_DISPATCH_TASK_IS_OVER); } - if(!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())){ + if( taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())){ throw exception(TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS); } } @@ -643,37 +652,48 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); //装配看看是不是多人,如果是多人,判断一下 + boolean allReport = true; + HashMap dispatchDetailDOHashMap = new HashMap<>(); + + String msg = ""; if (taskDispatchDO.getDispatchType().equals("ASSEMBLE")){ - List taskDispatchDetailDOS = taskDispatchDetailMapper.selectList(new LambdaQueryWrapperX().eq(TaskDispatchDetailDO::getDetailOwnerId, taskDispatchDetailDO.getDetailOwnerId())); - List dispatchDetailId = new ArrayList<>(); + List taskDispatchDetailDOS = taskDispatchDetailMapper.selectListByDeitalOwnerId(taskDispatchDetailDO.getDetailOwnerId()); for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailDOS) { if (!dispatchDetailDO.getId().equals(taskDispatchDetailDO.getId()) && !(dispatchDetailDO.getProcedureStatus() == TaskDispatchProcedureStatusEnum.COMPLETED.getCode())){ - dispatchDetailId.add(dispatchDetailDO.getId()); + dispatchDetailDOHashMap.put(dispatchDetailDO.getId(),dispatchDetailDO); } } - boolean allReport = true; - if (CollUtil.isNotEmpty(dispatchDetailId)){ - List> hashMaps = taskDispatchDetailMapper.sumAssembleReport(dispatchDetailId); + if (CollUtil.isNotEmpty(dispatchDetailDOHashMap)){ + List> hashMaps = taskDispatchDetailMapper.sumAssembleReport(new ArrayList<>(dispatchDetailDOHashMap.keySet())); HashMap reportMap = new HashMap<>(); for (HashMap hashMap : hashMaps) { - reportMap.putAll(hashMap); + reportMap.put(hashMap.get("detailId"),hashMap.get("amount")); } - - for (Long l : dispatchDetailId) { + for (Long l : dispatchDetailDOHashMap.keySet()) { if (!reportMap.containsKey(l)){ + msg = msg + dispatchDetailDOHashMap.get(l).getOwnerName() + ","; allReport = false; - break; } } + if (!msg.equals("")){ + msg = msg.substring(0,msg.length()-1) + "还没有报工,请确认"; + } + + + } if (!allReport){ - throw exception(TASK_REPORT_OTHER_PERSON_NO_SUBMIT); + throw exception(new ErrorCode(1_009_019,msg)); } if (allReport){ TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO = taskDispatchDetailOwnerMapper.selectById(taskDispatchDetailDO.getDetailOwnerId()); taskDispatchDetailOwnerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); taskDispatchDetailOwnerMapper.updateById(taskDispatchDetailOwnerDO); + TaskDispatchDetailOwnerDO ownerDO = new TaskDispatchDetailOwnerDO(); + ownerDO.setId(taskDispatchDetailOwnerDO.getId()); + ownerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); + taskDispatchDetailMapper.updateByOwner(ownerDO,null); } } //子项目装配是否完成 @@ -700,9 +720,13 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { } } if (CollUtil.isNotEmpty(productionList)){ + if (CollUtil.isNotEmpty(dispatchDetailDOHashMap)){ + productionList = productionList.stream().filter((e -> !dispatchDetailDOHashMap.keySet().contains(e.getId()))).collect(Collectors.toList()); + } + for (TaskDispatchDetailDO dispatchDetailDO : productionList) { - if (!dispatchDetailDO.getId().equals(taskDispatchDetailDO.getId()) && - dispatchDetailDO.getProcedureStatus() !=TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ + if (!dispatchDetailDO.getId().equals(taskDispatchDetailDO.getId()) && dispatchDetailDO.getProcedureStatus() !=TaskDispatchProcedureStatusEnum.COMPLETED.getCode()){ + //如果其他的有未完成的 isProjectSubAssembleOver = false; break; @@ -718,9 +742,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { bdgzsomthingMapper.updateById(bdgzsomthingDO); } } + if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isBomDetailProductionOver){ pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId(),taskDispatchDO.getBomDetailId()); - }else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isProjectSubAssembleOver){ + }else if (taskDispatchDO.getDispatchType().equals("ASSEMBLE") && isProjectSubAssembleOver ){ + zjPgMasterService.insertZjList(planDO.getId(),planDO.getProjectId(),taskDispatchDO.getProjectSubId()); } // // TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml index 212d980..03252c6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml @@ -103,7 +103,7 @@ GROUP BY t.id