From d3c825bb13843b56fe9058189b993e5e4c61fcd0 Mon Sep 17 00:00:00 2001 From: Ledo Date: Fri, 16 May 2025 21:51:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E9=85=8D=E6=B4=BE=E5=B7=A5=EF=BC=9A?= =?UTF-8?q?=201=E4=B8=AA=E4=BA=BA=E7=82=B9=E5=AE=8C=E7=BB=93=EF=BC=8C?= =?UTF-8?q?=E8=8B=A5=E6=97=A0=E5=85=B6=E4=BB=96=E4=BA=BA=E6=8A=A5=E5=B7=A5?= =?UTF-8?q?=E4=B8=8D=E5=85=81=E8=AE=B8=E5=AE=8C=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/heli/enums/ErrorCodeConstants.java | 1 + .../fpuserdetail/FpUserDetailMapper.java | 6 ++-- .../TaskDispatchDetailMapper.java | 1 + .../taskdispatch/TaskDispatchServiceImpl.java | 32 ++++++++++++++++--- .../taskdispatch/TaskDispatchDetailMapper.xml | 8 +++++ 5 files changed, 40 insertions(+), 8 deletions(-) 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 0c23fdd..05fa10d 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,6 +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 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/mysql/fpuserdetail/FpUserDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/fpuserdetail/FpUserDetailMapper.java index 5650d8d..a2b6e06 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/fpuserdetail/FpUserDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/fpuserdetail/FpUserDetailMapper.java @@ -117,9 +117,9 @@ public interface FpUserDetailMapper extends BaseMapperX { .select("c.nickname as nick_Name ") // .leftJoin(PostDO.class,"b", PostDO::getId,FpUserDetailDO::getPostId) .leftJoin(AdminUserDO.class,"c",AdminUserDO::getId,FpUserDetailDO::getBusyId) - .leftJoin(FpUserDO.class,"a",FpUserDO::getId, FpUserDetailDO::getFpId) - .eq(FpUserDO::getType,"1") - .eq(FpUserDetailDO::getIsRes,"Y") +// .leftJoin(FpUserDO.class,"a",FpUserDO::getId, FpUserDetailDO::getFpId) +// .eq(FpUserDO::getType,"1") +// .eq(FpUserDetailDO::getIsRes,"Y") .in(FpUserDetailDO::getPostId,list); 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 1ab4b77..46f9e18 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 @@ -168,6 +168,7 @@ public interface TaskDispatchDetailMapper extends BaseMapperX planBbPage(@Param("reqVO")TaskPlanJDBaoBiaoPageReqVO reqVO); List planBb(@Param("reqVO")TaskPlanJDBaoBiaoPageReqVO reqVO); + List> sumAssembleReport(List list); // default PageResult planBbPage(TaskPlanJDBaoBiaoPageReqVO reqVO) { // MPJLambdaWrapper query = new MPJLambdaWrapper<>(); // query.select("MAX(d.code)as projectCode,MAX(d.project_name)as projectName,MAX(g.task_no) as taskNo,0 as planType," + 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 8b23a4c..d199dc3 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 @@ -54,6 +54,7 @@ import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -644,13 +645,32 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { //装配看看是不是多人,如果是多人,判断一下 if (taskDispatchDO.getDispatchType().equals("ASSEMBLE")){ List taskDispatchDetailDOS = taskDispatchDetailMapper.selectList(new LambdaQueryWrapperX().eq(TaskDispatchDetailDO::getDetailOwnerId, taskDispatchDetailDO.getDetailOwnerId())); - boolean allOver = true; + List dispatchDetailId = new ArrayList<>(); for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailDOS) { if (!dispatchDetailDO.getId().equals(taskDispatchDetailDO.getId()) && !(dispatchDetailDO.getProcedureStatus() == TaskDispatchProcedureStatusEnum.COMPLETED.getCode())){ - allOver = false; + dispatchDetailId.add(dispatchDetailDO.getId()); } } - if (allOver){ + boolean allReport = true; + if (CollUtil.isNotEmpty(dispatchDetailId)){ + List> hashMaps = taskDispatchDetailMapper.sumAssembleReport(dispatchDetailId); + HashMap reportMap = new HashMap<>(); + for (HashMap hashMap : hashMaps) { + reportMap.putAll(hashMap); + } + + for (Long l : dispatchDetailId) { + if (!reportMap.containsKey(l)){ + allReport = false; + break; + } + } + } + + if (!allReport){ + throw exception(TASK_REPORT_OTHER_PERSON_NO_SUBMIT); + } + if (allReport){ TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO = taskDispatchDetailOwnerMapper.selectById(taskDispatchDetailDO.getDetailOwnerId()); taskDispatchDetailOwnerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); taskDispatchDetailOwnerMapper.updateById(taskDispatchDetailOwnerDO); @@ -788,11 +808,13 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { @Override public List getAssembleOwner(){ List fpUserDetailDOS = fpUserDetailMapper.selectOwnerList(); - // List> fpUserMapList = new ArrayList<>(); if (CollUtil.isEmpty(fpUserDetailDOS)){ throw exception(OWNER_NOT_EXISTS); } - return fpUserDetailDOS; + Map map = fpUserDetailDOS.stream() + .collect(Collectors.toMap(FpUserDetailDO::getBusyId, Function.identity(), (existing, replacement) -> existing)); + List uniqueFpUserDetailDOS = new ArrayList<>(map.values()); + return uniqueFpUserDetailDOS; } @Override public PageResult getTaskDispatchPageDetailTotal(TaskDispatchDetailTotalVO pageTotalVO) { 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 1edeb57..212d980 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 @@ -102,4 +102,12 @@ GROUP BY t.id +