From 8904f9e6005e7e1f3cc06f415fdcde0033c32332 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 21 七月 2025 20:33:53 +0800 Subject: [PATCH] art: 技术状态鉴定工单-生成逻辑优化 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java | 73 ++++++++++++++++++++++++++++++++++-- 1 files changed, 69 insertions(+), 4 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 9648448..4fa6923 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 @@ -17,6 +17,7 @@ import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.*; @@ -41,6 +42,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,14 +167,20 @@ if (CollectionUtil.isEmpty(standardDetailList)) { throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩鏌ラ」涓虹┖锛屾坊鍔犲け璐ワ紒"); } + EamTechnicalStatusEvaluationOrder unCompleted = checkDuplicate(request.getEquipmentId()); + if(unCompleted != null) { + throw new JeecgBootException("璁惧宸插瓨鍦ㄦ湭瀹屾垚鐨勬妧鏈姸鎬侀壌瀹氬伐鍗曪紝鏃犳硶鍐嶆鏂板锛�"); + } EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder(); 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()); //鍒犻櫎鏍囪 @@ -330,7 +338,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()); @@ -494,8 +502,6 @@ values.put("NextAssignee", userApprovalList); entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name()); } -// //鏇存柊璁惧淇濆吇鐘舵�� -// eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); break; case PROCESS_TECHNICIAN_SIGNING: //宸ヨ壓鍛樼瀛� @@ -555,6 +561,11 @@ entity.setInspectorComment(request.getInspectorComment()); entity.setEvaluationResult(request.getEvaluationResult()); entity.setEvaluationReason(request.getEvaluationReason()); + //鏇存柊璁惧鎶�鏈姸鎬� + // 鎸夌収濉姤瀹屾垚鏃ユ湡璁$畻鏈涓変繚鏃ユ湡锛屽幓闄ゆ椂鍒嗙 + Date evaluationDate = DateUtils.localDateToDate(DateUtils.dateToLocalDate(entity.getActualEndTime())); + equipmentExtendService.updateTechnologyParam(equipment.getId(), entity.getEvaluationResult(), + evaluationDate, CommonConstant.STATUS_0); break; } request.setValues(values); @@ -581,6 +592,60 @@ 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