From 848e5624f3a814763e81db5d79d8f0761c5bb4f1 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 01 二月 2024 10:25:40 +0800
Subject: [PATCH] 设备管理按照车间筛选和导出

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml         |   19 +++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml                                |   14 +++++--
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java         |    6 +++
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java |    8 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java                           |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java                        |   12 +++++
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java            |    5 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java                                   |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java                                |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java                                           |    3 +
 10 files changed, 65 insertions(+), 8 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
index 9ff87ae..20bcf7a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
@@ -426,7 +426,7 @@
      * @param mdcEquipment
      */
     @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, MdcEquipment mdcEquipment) {
+    public ModelAndView exportXls(HttpServletRequest request, MdcEquipmentVo mdcEquipment) {
         // Step.1 缁勮鏌ヨ鏉′欢
         //QueryWrapper<MdcEquipment> queryWrapper = QueryGenerator.initQueryWrapper(mdcEquipment, request.getParameterMap());
         //Step.2 AutoPoi 瀵煎嚭Excel
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
index 4cab5f9..12f4455 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
@@ -104,5 +104,5 @@
      * @param mdcEquipment
      * @return
      */
-    List<MdcEquipment> exportXlsList(@Param("mdcEquipment") MdcEquipment mdcEquipment);
+    List<MdcEquipment> exportXlsList(@Param("mdcEquipment") MdcEquipmentVo mdcEquipment);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
index 492e4b3..1d402c2 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
@@ -238,8 +238,11 @@
             <if test="mdcEquipment.driveType != null and mdcEquipment.driveType != '' ">
                 AND t1.drive_type = #{mdcEquipment.driveType}
             </if>
-            <if test="mdcEquipment.productionName != null and mdcEquipment.productionName != '' ">
-                AND t3.id = #{ mdcEquipment.productionName } OR t3.parent_id = #{ mdcEquipment.productionName }
+            <if test="mdcEquipment.productionIds != null and mdcEquipment.productionIds.size() > 0 ">
+                AND t3.id IN
+                <foreach collection="mdcEquipment.productionIds" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
             </if>
         </where>
         order by t1.sort_no
@@ -273,8 +276,11 @@
             <if test="mdcEquipment.driveType != null and mdcEquipment.driveType != '' ">
                 AND t1.drive_type = #{mdcEquipment.driveType}
             </if>
-            <if test="mdcEquipment.productionName != null and mdcEquipment.productionName != '' ">
-                AND t3.id = #{ mdcEquipment.productionName } OR t3.parent_id = #{ mdcEquipment.productionName }
+            <if test="mdcEquipment.productionIds != null and mdcEquipment.productionIds.size() > 0 ">
+                AND t3.id IN
+                <foreach collection="mdcEquipment.productionIds" index="index" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
             </if>
         </where>
         order by t1.sort_no
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
index 1880efa..3e6bd35 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
@@ -187,6 +187,6 @@
      * @param mdcEquipment
      * @return
      */
-    List<MdcEquipment> exportXlsList(MdcEquipment mdcEquipment);
+    List<MdcEquipment> exportXlsList(MdcEquipmentVo mdcEquipment);
 
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index 5eb7085..46d6aed 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -707,6 +707,11 @@
 
     @Override
     public IPage<MdcEquipment> pageList(Page<MdcEquipment> page, MdcEquipmentVo mdcEquipment, HttpServletRequest req) {
+        if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) {
+            // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+            List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName());
+            mdcEquipment.setProductionIds(productionIds);
+        }
         return this.baseMapper.pageList(page, mdcEquipment);
     }
 
@@ -773,7 +778,12 @@
      * @return
      */
     @Override
-    public List<MdcEquipment> exportXlsList(MdcEquipment mdcEquipment) {
+    public List<MdcEquipment> exportXlsList(MdcEquipmentVo mdcEquipment) {
+        if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) {
+            // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+            List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName());
+            mdcEquipment.setProductionIds(productionIds);
+        }
         return this.baseMapper.exportXlsList(mdcEquipment);
     }
 
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java
index 19ec3ef..20397fb 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcEquipmentVo.java
@@ -2,6 +2,8 @@
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author: LiuS
  * @create: 2023-04-11 10:34
@@ -16,4 +18,5 @@
     private String equipmentType;
     private String driveType;
     private String productionName;
+    private List<String> productionIds;
 }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java
index d6313fc..7f40bfe 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcProductionMapper.java
@@ -21,4 +21,9 @@
      */
     @Select("SELECT * FROM mdc_production where del_flag ='0' AND parent_id = #{parentId,jdbcType=VARCHAR}")
     List<MdcProduction> queryProdByPid(@Param("parentId") String parentId);
+
+    /**
+     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+     */
+    List<String> recursionChildren(@Param("productionId") String productionId);
 }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml
index ce695b0..2423393 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml
@@ -2,4 +2,23 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.system.mapper.MdcProductionMapper">
 
+    <!--閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣-->
+    <select id="recursionChildren" resultType="java.lang.String">
+        WITH temp ( id ) AS (
+            SELECT
+                id
+            FROM
+                mdc_production
+            WHERE
+                id = #{ productionId } UNION ALL
+            SELECT
+                a.id
+            FROM
+                mdc_production a
+                    INNER JOIN temp ON a.parent_id = temp.id
+        ) SELECT
+            *
+        FROM
+            temp
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
index e2f6d55..79ecf8b 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcProductionService.java
@@ -64,4 +64,10 @@
      * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」
      */
     List<ProductionIdModel> loadProductionTreeOptions(String userId);
+
+    /**
+     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+     */
+    List<String> recursionChildren(String productionId);
+
 }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
index 0e8f025..4cfdc6a 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
@@ -217,6 +217,14 @@
     }
 
     /**
+     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣id
+     */
+    @Override
+    public List<String> recursionChildren(String productionId) {
+        return this.baseMapper.recursionChildren(productionId);
+    }
+
+    /**
      * delete 鏂规硶璋冪敤 閫掑綊鏌ユ壘瀛愰泦id
      */
     private void checkChildrenExists(String id, List<String> idList) {

--
Gitblit v1.9.3