From 57945f688fd21076e36ab5332028c8b4a6dcf59c Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 04 九月 2025 16:37:31 +0800
Subject: [PATCH] 同步密网设备管理代码

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
index 5ee5fac..96b741d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.eam.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,11 +19,10 @@
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
-import org.jeecg.modules.eam.constant.AssetStatusEnum;
-import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum;
-import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
+import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
+import org.jeecg.modules.eam.entity.EamEquipmentSealUp;
 import org.jeecg.modules.eam.mapper.EamEquipmentLeanOutMapper;
 import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery;
 import org.jeecg.modules.eam.request.EamEquipmentLeanOutRequest;
@@ -35,12 +35,14 @@
 import org.jeecg.modules.flowable.service.IFlowDefinitionService;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
 import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 璁惧鍊熷嚭褰掕繕
@@ -245,6 +247,51 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    public boolean equipmentReturn(String id) {
+        EamEquipmentLeanOut entity = equipmentLeanOutMapper.selectById(id);
+        if (entity == null) {
+            throw new JeecgBootException("瑕佹彁浜ょ殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
+        if (!EquipmentLeanOutStatusEnum.WAIT_RETURN.name().equals(entity.getLeanStatus())) {
+            throw new JeecgBootException("褰撳墠鏁版嵁鐘舵�佷笉鍏佽缂栬緫锛�");
+        }
+        //妫�鏌ヨ澶�
+        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紒");
+        }
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            throw new JeecgBootException("褰撳墠鐢ㄦ埛鏃犳硶缂栬緫灏佸瓨璁板綍锛�");
+        }
+        //鍚姩瀹℃壒娴佺▼
+        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getCode() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧褰掕繕",
+                entity.getId(), "IEamEquipmentLeanOutService", "equipment_return", null);
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("dataId", entity.getId());
+        variables.put("organization", "鏂板褰掕繕榛樿褰掕繕娴佺▼");
+        variables.put("comment", "鏂板褰掕繕榛樿褰掕繕娴佺▼");
+        variables.put("proofreading", true);
+        // 鍒嗛厤缁欒澶囩鐞嗗憳
+        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
+        if (CollectionUtil.isEmpty(userSelectors)) {
+            throw new JeecgBootException("璁惧鏈垎閰嶇粰璁惧绠$悊鍛橈紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+        }
+        List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+        variables.put("NextAssignee", usernames);
+        Result result = flowDefinitionService.startProcessInstanceByKey("equipment_return", variables);
+        if (result != null) {
+            entity.setLeanEndTime(new Date());
+            entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM.name());
+            //淇濆瓨宸ュ崟
+            equipmentLeanOutMapper.updateById(entity);
+            return result.isSuccess();
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.LEAN_OUT, businessTable = "eam_equipment_lean_out")
     public EamEquipmentLeanOut approval(EamEquipmentLeanOutRequest request) {
         EamEquipmentLeanOut entity = equipmentLeanOutMapper.selectById(request.getId());
@@ -321,6 +368,7 @@
                 values.put("organization", request.getReturnComment());
                 values.put("comment", request.getReturnComment());
                 values.put("NextAssignee", userApprovalList);
+                values.put("approvalDealType", "1");
                 request.setComment(request.getReturnComment());
                 entity.setLeanEndTime(new Date()); //褰掕繕鏃堕棿
                 //璁剧疆entity
@@ -331,16 +379,18 @@
                 break;
             // 褰掕繕纭
             case WAIT_CONFIRM:
+                values.put("approvalDealType", "1");
                 values.put("dataId", entity.getId());
                 values.put("organization", request.getConfirmComment());
                 values.put("comment", request.getConfirmComment());
                 request.setComment(request.getConfirmComment());
                 //璁剧疆entity
+                entity.setApprovalUser(user.getUsername());// 瀹℃牳浜�
                 entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name());
                 entity.setConfirmUser(user.getUsername());
                 entity.setConfirmComment(request.getConfirmComment());
                 entity.setConfirmTime(new Date());
-                // 淇敼璁惧鐘舵��
+                // 淇敼璁惧鐘舵��0
                 equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                 eamEquipmentService.updateById(equipment);
                 break;

--
Gitblit v1.9.3