From 0d66cd4223c804b0a1384559f481b0c81d4e1955 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期四, 03 七月 2025 15:41:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java                     |    7 +
 db/430设备管理数据库设计.pdma.json                                                                                     |   11 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java      |    8 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml  |    9 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java          |   84 ++++++++++++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java                  |    7 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java |   32 ++--
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java     |  155 +++++++++++----------
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml                  |   18 ++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java     |   21 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java                    |   28 +++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java                           |    5 
 12 files changed, 285 insertions(+), 100 deletions(-)

diff --git "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
index a3dbefd..8c19ca9 100644
--- "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
+++ "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
@@ -24252,6 +24252,17 @@
         "username": "sa",
         "customer_driver": ""
       }
+    },
+    {
+      "defKey": "B26888BB-593E-4718-9B9C-4D842B06FAFE",
+      "defName": "430new",
+      "type": "BFC87171-C74F-494A-B7C2-76B9C55FACC9",
+      "properties": {
+        "driver_class_name": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
+        "url": "jdbc:sqlserver://localhost:1433;DatabaseName=LXZN_TEST_430_NEW",
+        "password": "123",
+        "username": "sa"
+      }
     }
   ],
   "logicEntities": [],
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java
index e04b991..795d137 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java
@@ -87,22 +87,22 @@
         return result;
     }
 
-//    @AutoLog(value = "缁翠慨閮ㄩ棬鐝粍-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」")
-//    @ApiOperation(value = "缁翠慨閮ㄩ棬鐝粍-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」", notes = "缁翠慨閮ㄩ棬鐝粍-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」")
-//    @GetMapping(value = "/loadMaintainDepartTreeOptions")
-//    public Result<List<RepairDepartIdModel>> loadMaintainDepartTreeOptions() {
-//        Result<List<RepairDepartIdModel>> result = new Result<>();
-//        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-//        String userId = user.getId();
-//        try {
-//            List<RepairDepartIdModel> list = eamBaseRepairDepartService.loadMaintainDepartTreeOptions(userId);
-//            result.setSuccess(true);
-//            result.setResult(list);
-//        } catch (Exception e) {
-//            log.error(e.getMessage(), e);
-//        }
-//        return result;
-//    }
+    @AutoLog(value = "缁翠慨閮ㄩ棬鐝粍-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」")
+    @ApiOperation(value = "缁翠慨閮ㄩ棬鐝粍-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」", notes = "缁翠慨閮ㄩ棬鐝粍-鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」")
+    @GetMapping(value = "/loadMaintainDepartTreeOptions")
+    public Result<List<RepairDepartIdModel>> loadMaintainDepartTreeOptions() {
+        Result<List<RepairDepartIdModel>> result = new Result<>();
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = user.getId();
+        try {
+            List<RepairDepartIdModel> list = eamBaseRepairDepartService.loadMaintainDepartTreeOptions(userId);
+            result.setSuccess(true);
+            result.setResult(list);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+        return result;
+    }
 
     @AutoLog(value = "缁翠慨閮ㄩ棬鐝粍-id闆嗗悎")
     @ApiOperation(value = "缁翠慨閮ㄩ棬鐝粍-id闆嗗悎", notes = "缁翠慨閮ㄩ棬鐝粍-id闆嗗悎")
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java
new file mode 100644
index 0000000..75a2e3f
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java
@@ -0,0 +1,21 @@
+package org.jeecg.modules.eam.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser;
+
+import java.util.List;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-07-01
+ * @Description:
+ */
+public interface EamBaseRepairDepartUserMapper extends BaseMapper<EamBaseRepairDepartUser> {
+
+    /**
+     * 鏍规嵁鎸囧畾鐢ㄦ埛id鏌ヨ缁翠慨閮ㄩ棬鐝粍id闆嗗悎
+     */
+    List<String> queryRepairDepartIdsByUserId(@Param("userId") String userId);
+
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml
new file mode 100644
index 0000000..eb78982
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper">
+
+    <!--鏍规嵁鎸囧畾鐢ㄦ埛id鏌ヨ浜х嚎id闆嗗悎-->
+    <select id="queryRepairDepartIdsByUserId" resultType="java.lang.String">
+        SELECT depart_id FROM eam_base_repair_depart_user WHERE user_id = #{userId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java
index 90a26bb..90ddfb6 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java
@@ -59,10 +59,10 @@
 //     */
 //    List<EamBaseRepairDepart> queryRepDepByPid(String pid);
 //
-//    /**
-//     * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」
-//     */
-//    List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
+    /**
+     * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」
+     */
+    List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
 //
 //    /**
 //     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java
index 38a4fe4..6df251a 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java
@@ -10,11 +10,14 @@
 import org.jeecg.common.util.FillRuleUtil;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart;
+import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser;
+import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper;
 import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService;
 import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartMapper;
 import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel;
 import org.jeecg.modules.eam.base.model.RepairDepartIdModel;
 import org.jeecg.modules.eam.base.util.FindsRepairDepartsChildrenUtil;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.mapper.SysUserMapper;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -22,6 +25,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author: Lius
@@ -34,6 +38,9 @@
     @Resource
     private SysUserMapper sysUserMapper;
 
+    @Resource
+    private EamBaseRepairDepartUserMapper repairDepartUserMapper;
+
     /**
      * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔�
      */
@@ -45,7 +52,7 @@
         query.orderByAsc(EamBaseRepairDepart::getDepartOrder);
         List<EamBaseRepairDepart> list = this.list(query);
         //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず
-//        this.setUserIdsByProList(list);
+        this.setUserIdsByProList(list);
         //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁
         return FindsRepairDepartsChildrenUtil.wrapTreeDataToTreeList(list);
     }
@@ -150,7 +157,7 @@
         this.checkChildrenExists(id, idList);
         boolean result = this.removeByIds(idList);
         //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎鐢ㄦ埛涓庣淮淇儴闂ㄧ彮缁勫叧绯�
-//        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
+        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
         //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎缁翠慨閮ㄩ棬鐝粍涓庤澶囧叧绯�
 //        repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList));
         return result;
@@ -169,7 +176,7 @@
         }
         this.removeByIds(idList);
         //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎鐢ㄦ埛涓庣淮淇儴闂ㄧ彮缁勫叧绯�
-//        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
+        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
         //鏍规嵁缁翠慨閮ㄩ棬鐝粍id鍒犻櫎缁翠慨閮ㄩ棬鐝粍涓庤澶囧叧绯�
 //        repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList));
     }
@@ -182,26 +189,26 @@
 //        return this.baseMapper.queryRepDepByPid(pid);
 //    }
 //
-//    /**
-//     * 鏍规嵁鐢ㄦ埛id鑾峰彇缁翠慨閮ㄩ棬鐝粍涓嬫媺鏍戦�夐」
-//     */
-//    @Override
-//    public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) {
-//        //鑾峰彇鎵�鏈夌淮淇儴闂ㄧ彮缁勬暟鎹�
-//        List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder));
-//        //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勭淮淇儴闂ㄧ彮缁勪俊鎭泦鍚�
-//        List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId);
-//        List<String> allMaintainDepartIds = new ArrayList<>();
-//        //鎵惧埌鎵�鏈夌淮淇儴闂ㄧ彮缁刬d鐨勪笂绾d
-//        if (repairDepartIds != null && !repairDepartIds.isEmpty()) {
-//            for (String repairDepartId : repairDepartIds) {
-//                this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds);
-//            }
-//        }
-//        //杩囨护缁翠慨閮ㄩ棬鐝粍鏁版嵁
-//        List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList());
-//        return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list);
-//    }
+    /**
+     * 鏍规嵁鐢ㄦ埛id鑾峰彇缁翠慨閮ㄩ棬鐝粍涓嬫媺鏍戦�夐」
+     */
+    @Override
+    public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) {
+        //鑾峰彇鎵�鏈夌淮淇儴闂ㄧ彮缁勬暟鎹�
+        List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder));
+        //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勭淮淇儴闂ㄧ彮缁勪俊鎭泦鍚�
+        List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId);
+        List<String> allMaintainDepartIds = new ArrayList<>();
+        //鎵惧埌鎵�鏈夌淮淇儴闂ㄧ彮缁刬d鐨勪笂绾d
+        if (repairDepartIds != null && !repairDepartIds.isEmpty()) {
+            for (String repairDepartId : repairDepartIds) {
+                this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds);
+            }
+        }
+        //杩囨护缁翠慨閮ㄩ棬鐝粍鏁版嵁
+        List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList());
+        return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list);
+    }
 //
 //    /**
 //     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣id
@@ -250,56 +257,56 @@
         }
     }
 
-//    /**
-//     * 鑾峰彇鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍id锛堝寘鍚墍鏈変笂绾э級
-//     */
-//    private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) {
-//        if (!allMaintainDepartIds.contains(repairDepartId)) {
-//            allMaintainDepartIds.add(repairDepartId);
-//        }
-//        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
-//            if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) {
-//                continue;
-//            }
-//            if (repairDepartId.equals(eamBaseRepairDepart.getId())) {
-//                if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) {
-//                    allMaintainDepartIds.add(eamBaseRepairDepart.getParentId());
-//                    getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds);
-//                }
-//            }
-//        }
-//    }
-//
-//    /**
-//     * 閫氳繃缁翠慨閮ㄩ棬鐝粍闆嗗悎涓虹淮淇儴闂ㄧ彮缁勮缃敤鎴穒d锛岀敤浜庡墠鍙板睍绀�
-//     */
-//    private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) {
-//        //鏌ヨ璐熻矗閮ㄩ棬涓嶄负绌虹殑鎯呭喌
-//        LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>();
-//        query.isNotNull(SysUser::getDepartIds);
-//        List<SysUser> users = sysUserMapper.selectList(query);
-//        Map<String, Object> map = new HashMap(5);
-//        //鍏堝惊鐜竴閬嶆壘鍒颁笉鍚岀殑璐熻矗缁翠慨閮ㄩ棬鐝粍id
-//        for (SysUser user : users) {
-//            String repairDepartIds = user.getRepairDepartIds();
-//            if (StringUtils.isNotBlank(repairDepartIds)) {
-//                String[] repairDepartIdArray = repairDepartIds.split(",");
-//                for (String repairDepartId : repairDepartIdArray) {
-//                    if (map.containsKey(repairDepartId)) {
-//                        String userIds = map.get(repairDepartId) + "," + user.getId();
-//                        map.put(repairDepartId, userIds);
-//                    } else {
-//                        map.put(repairDepartId, user.getId());
-//                    }
-//                }
-//            }
-//        }
-//        //寰幆缁翠慨閮ㄩ棬鐝粍闆嗗悎鎵惧埌缁翠慨閮ㄩ棬鐝粍id瀵瑰簲鐨勮礋璐g敤鎴�
-//        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
-//            if (map.containsKey(eamBaseRepairDepart.getId())) {
-//                eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString());
-//            }
-//        }
-//    }
+    /**
+     * 鑾峰彇鎵�鏈夌殑缁翠慨閮ㄩ棬鐝粍id锛堝寘鍚墍鏈変笂绾э級
+     */
+    private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) {
+        if (!allMaintainDepartIds.contains(repairDepartId)) {
+            allMaintainDepartIds.add(repairDepartId);
+        }
+        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
+            if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) {
+                continue;
+            }
+            if (repairDepartId.equals(eamBaseRepairDepart.getId())) {
+                if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) {
+                    allMaintainDepartIds.add(eamBaseRepairDepart.getParentId());
+                    getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds);
+                }
+            }
+        }
+    }
+
+    /**
+     * 閫氳繃缁翠慨閮ㄩ棬鐝粍闆嗗悎涓虹淮淇儴闂ㄧ彮缁勮缃敤鎴穒d锛岀敤浜庡墠鍙板睍绀�
+     */
+    private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) {
+        //鏌ヨ璐熻矗閮ㄩ棬涓嶄负绌虹殑鎯呭喌
+        LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>();
+        query.isNotNull(SysUser::getDepartIds);
+        List<SysUser> users = sysUserMapper.selectList(query);
+        Map<String, Object> map = new HashMap(5);
+        //鍏堝惊鐜竴閬嶆壘鍒颁笉鍚岀殑璐熻矗缁翠慨閮ㄩ棬鐝粍id
+        for (SysUser user : users) {
+            String repairDepartIds = user.getRepairDepartIds();
+            if (StringUtils.isNotBlank(repairDepartIds)) {
+                String[] repairDepartIdArray = repairDepartIds.split(",");
+                for (String repairDepartId : repairDepartIdArray) {
+                    if (map.containsKey(repairDepartId)) {
+                        String userIds = map.get(repairDepartId) + "," + user.getId();
+                        map.put(repairDepartId, userIds);
+                    } else {
+                        map.put(repairDepartId, user.getId());
+                    }
+                }
+            }
+        }
+        //寰幆缁翠慨閮ㄩ棬鐝粍闆嗗悎鎵惧埌缁翠慨閮ㄩ棬鐝粍id瀵瑰簲鐨勮礋璐g敤鎴�
+        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
+            if (map.containsKey(eamBaseRepairDepart.getId())) {
+                eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString());
+            }
+        }
+    }
 
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
index e96653e..1f173f3 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -118,7 +118,7 @@
     /**
      * 宸ユ
      */
-    @Excel(name = "涓績/宸ュ尯/宸ユ", width = 15, orderNum = "4")
+    @Excel(name = "涓績/宸ュ尯/宸ユ", width = 15, orderNum = "4",dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
     @ApiModelProperty(value = "涓績/宸ュ尯/宸ユ")
     @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
     private String factoryOrgCode;
@@ -162,8 +162,9 @@
     /**
      * 缁翠慨鐝粍
      */
-    @Excel(name = "缁翠慨鐝粍", width = 15, orderNum = "10")
+    @Excel(name = "缁翠慨鐝粍", width = 15, orderNum = "10",dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
     @ApiModelProperty(value = "缁翠慨鐝粍")
+    @Dict(dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
     private String repairDepartOrgCode;
 
     /**
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
index 92bffec..4aafa9e 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
@@ -32,4 +32,11 @@
      * @return
      */
     IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, @Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
+
+    /**
+     * 鍒楄〃鏌ヨ
+     * @param queryWrapper
+     * @return
+     */
+    List<EamEquipment> queryList(@Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
index 3ea42f0..ffe7f6b 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -20,4 +20,22 @@
         on e.id = ext.id
         ${ew.customSqlSegment}
     </select>
+    <select id="queryList" resultType="org.jeecg.modules.eam.entity.EamEquipment">
+        select e.*,
+               ext.maintenance_status,
+               ext.repair_status,
+               ext.latest_second_maintenance,
+               ext.next_second_maintenance,
+               ext.latest_third_maintenance,
+               ext.next_third_maintenance,
+               ext.technology_status,
+               ext.third_maintenance_period,
+               ext.technology_check_period,
+               ext.latest_technology_check,
+               ext.next_technology_check
+        from eam_equipment e
+                 left join eam_equipment_extend ext
+                           on e.id = ext.id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
index d17425a..9594a46 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -58,4 +58,11 @@
      * @return
      */
     EamEquipment selectByEquipmentCode(String equipmentCode);
+
+    /**
+     * 璁惧鍙拌处瀵煎嚭
+     * @param eamEquipment
+     * @return
+     */
+    List<EamEquipment> exportList(EamEquipmentQuery eamEquipment);
 }
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 19c81b7..570ee6a 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
@@ -274,6 +274,90 @@
     }
 
     /**
+     * 璁惧鍙拌处瀵煎嚭
+     * @param eamEquipment
+     * @return
+     */
+    @Override
+    public List<EamEquipment> exportList(EamEquipmentQuery eamEquipment){
+        QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0);
+        //鐢ㄦ埛鏁版嵁鏉冮檺
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            return new ArrayList<>();
+        }
+        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
+            //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
+            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
+            queryWrapper.in("e.equipment_code", equipArr);
+        } else {
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
+            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
+                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
+                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
+                queryWrapper.in("e.factory_code", factoryCode);
+            }
+
+        }
+        //鏌ヨ鏉′欢杩囨护
+        if (eamEquipment != null) {
+            if (StringUtils.isNotBlank(eamEquipment.getEquipmentCode())) {
+                queryWrapper.like("e.equipment_code", eamEquipment.getEquipmentCode());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getEquipmentName())) {
+                queryWrapper.like("e.equipment_name", eamEquipment.getEquipmentName());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getEquipmentImportance())) {
+                queryWrapper.eq("e.equipment_importance", eamEquipment.getEquipmentImportance());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getAssetStatus())) {
+                queryWrapper.like("e.asset_status", eamEquipment.getAssetStatus());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getTechnologyStatus())) {
+                queryWrapper.like("e.technology_status", eamEquipment.getTechnologyStatus());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getOperationSystem())) {
+                queryWrapper.like("e.operation_system", eamEquipment.getOperationSystem());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getOrgId())) {
+                //杞﹂棿缂栫爜涓嶄负绌�
+                List<String> productIds = mdcProductionService.recursionChildren(eamEquipment.getOrgId());
+                if (CollectionUtil.isNotEmpty(productIds)) {
+                    //涓嶅仛绛涢��
+                    queryWrapper.in("e.org_id", productIds);
+                }
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) {
+                queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getId())) {
+                queryWrapper.eq("e.id", eamEquipment.getId());
+            }
+            //鎺掑簭
+            if (StringUtils.isNotBlank(eamEquipment.getColumn()) && StringUtils.isNotBlank(eamEquipment.getOrder())) {
+                //queryWrapper.like("column", eamEquipment.getColumn());
+                String column = eamEquipment.getColumn();
+                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
+                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
+                }
+                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamEquipment.getOrder())) {
+                    queryWrapper.orderByAsc("e." + oConvertUtils.camelToUnderline(column));
+                } else {
+                    queryWrapper.orderByDesc("e." + oConvertUtils.camelToUnderline(column));
+                }
+            } else {
+                queryWrapper.orderByDesc("e.create_time");
+            }
+        } else {
+            queryWrapper.orderByDesc("e.create_time");
+        }
+        return eamEquipmentMapper.queryList(queryWrapper);
+    }
+
+    /**
      * 鑾峰彇鎵�鏈夌殑浜х嚎id锛堝寘鍚墍鏈変笂绾э級
      */
     private void getAllProductionIds(List<MdcProduction> productionList, String productionId, List<String> allProductionIds) {
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index 31595fe..1c0803f 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -11,10 +11,13 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.TranslateDictTextUtils;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamEquipmentExtend;
 import org.jeecg.modules.eam.request.EamEquipmentQuery;
@@ -25,7 +28,10 @@
 //import org.jeecg.modules.mdc.entity.MdcEquipment;
 //import org.jeecg.modules.mdc.service.IMdcEquipmentService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -38,6 +44,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 璁惧鍙拌处
@@ -198,13 +205,26 @@
 
     /**
      * 瀵煎嚭excel
-     *
-     * @param request
      * @param eamEquipment
      */
     @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, EamEquipment eamEquipment) {
-        return super.exportXls(request, eamEquipment, EamEquipment.class, "璁惧鍙拌处");
+    public ModelAndView exportXls(HttpServletRequest request,EamEquipmentQuery eamEquipment) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        List<EamEquipment> equipmentList=eamEquipmentService.exportList(eamEquipment);
+        String selections = request.getParameter("selections");
+        if (oConvertUtils.isNotEmpty(selections)) {
+            List<String> selectionList = Arrays.asList(selections.split(","));
+            equipmentList = equipmentList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+        }
+
+        // Step.3 AutoPoi 瀵煎嚭Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        mv.addObject(NormalExcelConstants.FILE_NAME, "璁惧鍙拌处"); //姝ゅ璁剧疆鐨刦ilename鏃犳晥 ,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+        mv.addObject(NormalExcelConstants.CLASS, EamEquipment.class);
+        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("璁惧鍙拌处" + "鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), "璁惧鍙拌处"));
+        mv.addObject(NormalExcelConstants.DATA_LIST, equipmentList);
+        return mv;
+
     }
 
     /**

--
Gitblit v1.9.3