From ee530992793ed7d0b7f16f1ce07b6c53ae265068 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 22 七月 2025 13:56:40 +0800
Subject: [PATCH] art: 技术状态变更申请-字典转译

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java |   89 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 78 insertions(+), 11 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
index 2b5aac5..59a3a62 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
@@ -15,22 +15,16 @@
 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.TranslateDictTextUtils;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
-import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum;
-import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
-import org.jeecg.modules.eam.entity.EamBaseHFCode;
-import org.jeecg.modules.eam.entity.EamEquipment;
-import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
+import org.jeecg.modules.eam.constant.*;
+import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeMapper;
 import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
 import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
-import org.jeecg.modules.eam.service.IEamBaseHFCodeService;
-import org.jeecg.modules.eam.service.IEamEquipmentService;
-import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
-import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
+import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderRequest;
+import org.jeecg.modules.eam.service.*;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -48,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;
 
@@ -83,6 +78,12 @@
     private IFlowTaskService flowTaskService;
     @Autowired
     private TranslateDictTextUtils translateDictTextUtils;
+    @Autowired
+    private IEamEquipmentExtendService equipmentExtendService;
+    @Autowired
+    private IEamTechnicalStatusEvaluationStandardService evaluationStandardService;
+    @Autowired
+    private IEamTechnicalStatusEvaluationOrderService evaluationOrderService;
 
     @Override
     public IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query) {
@@ -175,6 +176,7 @@
             detail.setCreateTime(null);
             detail.setUpdateBy(null);
             detail.setUpdateTime(null);
+            detail.setChangeOrderId(order.getId());
         });
         changeDetailService.saveBatch(request.getTableDetailList());
         return true;
@@ -211,6 +213,7 @@
             detail.setCreateTime(null);
             detail.setUpdateBy(null);
             detail.setUpdateTime(null);
+            detail.setChangeOrderId(entity.getId());
         });
         changeDetailService.saveBatch(request.getTableDetailList());
         return true;
@@ -370,6 +373,70 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean acceptance(EamTechnicalStatusChangeDetail request) {
+        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (user == null || StrUtil.isBlank(user.getId())) {
+            throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒");
+        }
+        EamTechnicalStatusChange order = this.getBaseMapper().selectById(request.getChangeOrderId());
+        if(order == null) {
+            throw new JeecgBootException("鍙樻洿宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
+        if(!TechnicalStatusChangeOrderStatusEnum.COMPLETED.name().equals(order.getChangeStatus())) {
+            throw new JeecgBootException("鍙樻洿宸ュ崟鏈畬鎴愶紝鏃犳硶鎻愪氦楠屾敹锛�");
+        }
+        TechnicalStatusChangeReasonEnum instance = TechnicalStatusChangeReasonEnum.getInstance(request.getChangeCategory());
+        if(instance == null) {
+            throw new JeecgBootException("鍙樻洿鍘熷洜鏃犳晥锛屾搷浣滃け璐ワ紒");
+        }
+        EamEquipment equipment = equipmentService.getById(request.getEquipmentId());
+        if(equipment == null) {
+            throw new JeecgBootException("璁惧淇℃伅涓嶅瓨鍦紝鎿嶄綔澶辫触锛�");
+        }
+        EamEquipmentExtend extend = equipmentExtendService.getById(request.getEquipmentId());
+        if(extend == null) {
+            throw new JeecgBootException("璁惧淇℃伅涓嶅瓨鍦紝鎿嶄綔澶辫触锛�");
+        }
+        switch (instance) {
+            case EQUIPMENT_MAJOR:
+            case EQUIPMENT_RETROFITTING:
+            case OTHER:
+                //璁惧澶т慨銆佹敼閫犮�佸叾浠栫殑閫昏緫
+                request.setAcceptanceChecker(user.getUsername());
+                request.setAcceptanceCheckTime(new Date());
+                changeDetailService.updateById(request);
+                //鏇存柊璁惧鎶�鏈壌瀹氱姸鎬�
+                equipmentExtendService.updateTechnologyParam(request.getEquipmentId(), request.getAcceptanceCheckResult(), DateUtils.localDateToDate(LocalDate.now()), null);
+                break;
+            case EQUIPMENT_RELOCATION:
+                //璁惧鎼縼閫昏緫
+                request.setAcceptanceChecker(user.getUsername());
+                request.setAcceptanceCheckTime(new Date());
+                request.setAcceptanceCheckResult(null);
+                changeDetailService.updateById(request);
+                //鐢熸垚鎶�鏈姸鎬侀壌瀹氬伐鍗�
+                EamTechnicalStatusEvaluationStandard standard = evaluationStandardService.queryEnableStandard(request.getId());
+                if (standard == null) {
+                    throw new JeecgBootException("璁惧锛歿"+equipment.getEquipmentCode()+"}锛屾湭閰嶇疆鎶�鏈姸鎬侀壌瀹氳鑼冿紝鏃犳硶鐢熸垚鎶�鏈壌瀹氬伐鍗曪紒");
+                }
+                EamTechnicalStatusEvaluationOrderRequest orderRequest = new EamTechnicalStatusEvaluationOrderRequest();
+                orderRequest.setEquipmentId(extend.getId());
+                orderRequest.setStandardId(standard.getId());
+                orderRequest.setEvaluationDate(DateUtils.localDateToDate(LocalDate.now()));
+                orderRequest.setFreezeOrderDate(null);
+                orderRequest.setOrderExpirationDate(null);
+                orderRequest.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
+                evaluationOrderService.addTechnicalStatusEvaluationOrder(orderRequest);
+                //鏇存柊鎵╁睍琛ㄤ腑鐨勭敓鎴愭爣璇�
+                equipmentExtendService.updateTechnologyParam(equipment.getId(), null, null, CommonConstant.STATUS_1);
+                break;
+        }
+        return false;
+    }
+
+    @Override
     public void afterFlowHandle(FlowMyBusiness business) {
         business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣
         business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟

--
Gitblit v1.9.3