From e9a086a3b7c1c111c56025ca99b57ff560ca817d Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 21 七月 2025 15:34:56 +0800 Subject: [PATCH] art: 技术状态鉴定工单-重复校验 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java | 75 ++++++++++++++++++++++++++++++++++--- 1 files changed, 68 insertions(+), 7 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java index 118e202..1c68444 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java @@ -41,6 +41,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -165,15 +166,20 @@ if (CollectionUtil.isEmpty(standardDetailList)) { throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩鏌ラ」涓虹┖锛屾坊鍔犲け璐ワ紒"); } + EamTechnicalStatusEvaluationOrder unCompleted = checkDuplicate(request.getEquipmentId()); + if(unCompleted != null) { + throw new JeecgBootException("璁惧宸插瓨鍦ㄦ湭瀹屾垚鐨勬妧鏈姸鎬侀壌瀹氬伐鍗曪紝鏃犳硶鍐嶆鏂板锛�"); + } EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder(); - order.setOrderNum(request.getOrderNum()); order.setEquipmentId(request.getEquipmentId()); order.setStandardId(request.getStandardId()); order.setEvaluationDate(request.getEvaluationDate()); + order.setFreezeOrderDate(request.getFreezeOrderDate()); + order.setOrderExpirationDate(request.getOrderExpirationDate()); order.setRemark(request.getRemark()); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CODE_RULE); order.setOrderNum(codeSeq); - order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); + order.setCreationMethod(request.getCreationMethod()); //鐘舵�佸垵濮嬪寲 order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); //鍒犻櫎鏍囪 @@ -331,7 +337,7 @@ List<UserSelector> userSelectors; switch (status) { case UNDER_EVALUATION: - if(CollectionUtil.isEmpty(request.getTableDetailList())) { + if (CollectionUtil.isEmpty(request.getTableDetailList())) { throw new JeecgBootException("妫�鏌ユ槑缁嗕俊鎭负绌猴紒"); } boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); @@ -532,14 +538,15 @@ entity.setDepartTechnicalLeaderSignature(user.getUsername()); entity.setDepartTechnicalLeaderSignatureTime(new Date()); entity.setDepartTechnicalLeaderComment(request.getDepartTechnicalLeaderComment()); + entity.setDepartTechnicalLeaderSignatureResult(request.getDepartTechnicalLeaderSignatureResult()); //璁剧疆entity if (BusinessCodeConst.APPROVED.equals(request.getDepartTechnicalLeaderSignatureResult())) { values.put("NextAssignee", userApprovalList); - entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name()); + entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name()); } else { userApprovalList = Collections.singletonList(entity.getProcessTechnicianSignature()); values.put("NextAssignee", userApprovalList); - entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name()); + entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name()); } break; case INSPECTOR_SIGNING: @@ -573,14 +580,68 @@ @Transactional(rollbackFor = Exception.class) public boolean updateEvaluationStatus(String orderId, String evaluationStatus) { UpdateWrapper<EamTechnicalStatusEvaluationOrder> updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("order_id", orderId); + updateWrapper.eq("id", orderId); updateWrapper.set("evaluation_status", evaluationStatus); updateWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); - updateWrapper.eq("evaluation_status", TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); + updateWrapper.in("evaluation_status", Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name())); int update = this.getBaseMapper().update(null, updateWrapper); return update > 0; } + @Override + public List<EamTechnicalStatusEvaluationOrder> selectWaitEvaluationOrderList() { + LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); + queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + LocalDate localDate = LocalDate.now(); + queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate, localDate.toString()); + return this.getBaseMapper().selectList(queryWrapper); + } + + @Override + public List<EamTechnicalStatusEvaluationOrder> selectUncompletedEvaluationOrderList() { + LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>(); + List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name() + ); + queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList); + queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + LocalDate localDate = LocalDate.now(); + queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate, localDate.toString()); + return this.getBaseMapper().selectList(queryWrapper); + } + + + private EamTechnicalStatusEvaluationOrder checkDuplicate(String equipmentId) { + LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>(); + List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name(), + TechnicalStatusEvaluationOrderStatusEnum.CHANGING.name() + ); + queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEquipmentId, equipmentId); + List<EamTechnicalStatusEvaluationOrder> list = this.getBaseMapper().selectList(queryWrapper); + if (CollectionUtil.isEmpty(list)) { + return null; + } + return list.get(0); + } + private void checkDetailResult(List<EamTechnicalStatusEvaluationOrderDetail> detailList, TechnicalStatusEvaluationCheckCategoryEnum checkCategory) { boolean b; switch (checkCategory) { -- Gitblit v1.9.3