From 57df7097f99ffe16a4b81876f23aebf38b637ec5 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 22 七月 2025 11:24:15 +0800
Subject: [PATCH] art: 技术状态变更申请-验收接口

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java         |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java |   24 +++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java    |   89 ++++++++++++++++++++++++++---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java       |   19 ++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java               |    3 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java            |    8 ++
 6 files changed, 133 insertions(+), 14 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index 8ce714f..5dbd7b1 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -261,7 +261,7 @@
                     list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
             if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                 Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
-                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
+                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                 queryWrapper.in("e.factory_org_code", factoryCode);
             } else {
                 return Collections.emptyList();
@@ -273,7 +273,7 @@
             queryWrapper.or().like("e.equipment_name", keyword);
         }
         if(StringUtils.isNotBlank(factoryOrgCode)){
-            queryWrapper.eq("e.factory_org_code", factoryOrgCode);
+            queryWrapper.likeRight("e.factory_org_code", factoryOrgCode);
         }
         queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0);
         IPage<EamEquipment> pageResult = eamEquipmentMapper.queryPageList(page, queryWrapper);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
index 23634fb..28d78bb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
@@ -12,6 +12,7 @@
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
 import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
 import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
 import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
@@ -152,4 +153,22 @@
 		return Result.OK(eamTechnicalStatusChange);
 	}
 
+	 /**
+	  * 楠屾敹
+	  * @param request
+	  * @return
+	  */
+	 @ApiOperation(value = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-楠屾敹", notes = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-楠屾敹")
+	 @PostMapping(value = "/acceptance")
+	 public Result<?> acceptance(@RequestBody EamTechnicalStatusChangeDetail request) {
+		 if (request == null) {
+			 return Result.error("楠屾敹缁撴灉瀵硅薄涓嶈兘涓虹┖锛�");
+		 }
+		 boolean b = eamTechnicalStatusChangeService.acceptance(request);
+		 if (!b) {
+			 return Result.error("鎿嶄綔澶辫触锛�");
+		 }
+		 return Result.OK("鎿嶄綔鎴愬姛锛�");
+	 }
+
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
index 8c6f98b..60c51f6 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
@@ -1,10 +1,14 @@
 package org.jeecg.modules.eam.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.util.TranslateDictTextUtils;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
 import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +17,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,6 +33,10 @@
 public class EamTechnicalStatusChangeDetailController extends JeecgController<EamTechnicalStatusChangeDetail, IEamTechnicalStatusChangeDetailService> {
     @Autowired
     private IEamTechnicalStatusChangeDetailService orderDetailService;
+    @Autowired
+    private ObjectMapper objectMapper;
+    @Autowired
+    private TranslateDictTextUtils translateDictTextUtils;
 
     /**
      * 涓�娆″姞杞�
@@ -39,6 +48,19 @@
     @GetMapping(value = "/queryList")
     public Result<?> queryList(@RequestParam("orderId") String orderId) {
         List<EamTechnicalStatusChangeDetail> list = orderDetailService.queryList(orderId);
-        return Result.OK(list);
+        List<JSONObject> items = new ArrayList<>();
+        try {
+            for(EamTechnicalStatusChangeDetail vo : list) {
+                String json = objectMapper.writeValueAsString(vo);
+                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+                translateDictTextUtils.translateField("changeCategory", vo.getChangeCategory(), item, "technical_status_change_reason");
+                translateDictTextUtils.translateField("changeTechnicalStatus", vo.getChangeTechnicalStatus(), item, "equipment_technology_status");
+                translateDictTextUtils.translateField("acceptanceCheckResult", vo.getAcceptanceCheckResult(), item, "equipment_technology_status");
+                items.add(item);
+            }
+            return Result.OK(items);
+        }catch (Exception e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
index 15d9139..57973e2 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
@@ -69,6 +69,9 @@
 	/**楠屾敹妫�鏌ョ粨鏋�;澶т慨銆佹敼閫� 闇�瑕佸~鍐欓獙鏀剁粨鏋滐紝鎼縼鎸夌収鎶�鏈姸鎬侀壌瀹氬伐鍗曠淮鎶わ紝鍏朵粬鏆傛湭浣跨敤鍒帮紝鍙鐣欐绫诲瀷*/
     @ApiModelProperty(value = "楠屾敹妫�鏌ョ粨鏋�;澶т慨銆佹敼閫� 闇�瑕佸~鍐欓獙鏀剁粨鏋滐紝鎼縼鎸夌収鎶�鏈姸鎬侀壌瀹氬伐鍗曠淮鎶わ紝鍏朵粬鏆傛湭浣跨敤鍒帮紝鍙鐣欐绫诲瀷")
 	private String acceptanceCheckResult;
+	/**楠屾敹鎰忚*/
+	@ApiModelProperty(value = "楠屾敹鎰忚")
+	private String acceptanceCheckComment;
 
 	//鍒楄〃灞曠ず
 	@TableField(exist = false)
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
index dd90936..15f33ba 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
 import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
 import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
 
@@ -48,4 +49,11 @@
      * @return
      */
     EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request);
+
+    /**
+     * 楠屾敹
+     * @param request
+     * @return
+     */
+    boolean acceptance(EamTechnicalStatusChangeDetail request);
 }
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