From 96be94fc3c33c49e15b538bebbea455e839a7a7b Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期二, 10 六月 2025 16:32:12 +0800
Subject: [PATCH] 数字孪生看板接口 维修service提取到公共模块

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcProductionMapper.xml |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 1 deletions(-)

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 119e935..ae5f5d3 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
@@ -31,4 +31,174 @@
     <select id="findThreeProductionId" resultType="java.lang.String">
         SELECT TOP 1 t2.id id FROM mdc_user_production t1 LEFT JOIN mdc_production t2 ON t1.pro_id = t2.id WHERE t1.user_id = #{userId} AND t2.org_type = '3'
     </select>
-</mapper>
\ No newline at end of file
+    <select id="findAllProductionId" resultType="org.jeecg.modules.system.entity.MdcProduction">
+        SELECT
+            t1.*
+        FROM
+            mdc_production t1
+                LEFT JOIN mdc_user_production t2 ON t1.id = t2.pro_id
+                LEFT JOIN sys_user t3 on t3.ID=t2.user_id
+        WHERE
+            t3.id = #{userId}
+          AND t1.org_type = '3'
+    </select>
+
+    <select id="recursionChildrenByList" resultType="java.lang.String">
+        WITH temp (id) AS (
+            -- 鍒濆鏌ヨ锛岃幏鍙栨寚瀹� id 鐨勮褰�
+            SELECT
+                id
+            FROM
+                mdc_production
+            WHERE
+                id IN
+            <foreach collection = "productionIds" item = "id" index = "index" open = "(" close = ")" separator = ",">
+                 #{id}
+            </foreach>
+            UNION ALL
+            -- 閫掑綊鏌ヨ锛屾煡鎵惧瓙鑺傜偣
+            SELECT
+                a.id
+            FROM
+                mdc_production a
+                    INNER JOIN temp ON a.parent_id = temp.id
+        )
+-- 鏈�缁堟煡璇紝浣跨敤 DISTINCT 鍘婚噸
+        SELECT DISTINCT
+            id
+        FROM
+            temp;
+    </select>
+
+    <select id="findChildren" resultType="java.lang.String">
+        WITH temp ( id ) AS (
+            SELECT
+                id
+            FROM
+                mdc_production
+            WHERE
+                id IN
+            <foreach collection="mdcProductionIds" item = "id" index = "index" open = "(" close = ")" separator = ",">
+                #{id}
+            </foreach>
+            AND mdc_flag = '1' UNION ALL
+            SELECT
+                a.id
+            FROM
+                mdc_production a
+                    INNER JOIN temp ON a.parent_id = temp.id
+            WHERE
+                a.mdc_flag = '1'
+        ) SELECT
+            *
+        FROM
+            temp
+    </select>
+
+    <select id="loadProductionOptions" resultType="org.jeecg.modules.system.entity.MdcProduction">
+        SELECT
+            t1.*
+        FROM
+            mdc_production t1
+                LEFT JOIN mdc_user_production t2 ON t1.id = t2.pro_id
+        WHERE
+            t2.user_id = #{userId} AND t1.mdc_flag = '1'
+        <choose>
+            <when test="productionId != null and productionId != ''">
+                AND t1.org_type = '3' AND t1.parent_id = #{productionId}
+            </when>
+            <otherwise>
+                AND t1.org_type = '2'
+            </otherwise>
+        </choose>
+        ORDER BY t1.production_order
+    </select>
+
+    <select id="findTeamValue" resultType="java.lang.String">
+        SELECT DISTINCT
+            t1.team_code deamCode
+        FROM
+            mdc_equipment t1
+            LEFT JOIN mdc_production_equipment t2 ON t1.id = t2.equipment_id
+        WHERE t2.production_id IN
+        <foreach collection="productionList" item = "productionId" index = "index" open = "(" close= ")" separator = ",">
+            #{productionId}
+        </foreach>
+    </select>
+
+    <select id="findProIdsByUId" resultType="java.lang.String">
+        SELECT
+            pro_id
+        FROM
+            mdc_user_production
+        WHERE
+            pro_id IN
+            <foreach collection="allProductionIds" item = "productionId" index = "index" open = "(" close= ")" separator = ",">
+                #{productionId}
+            </foreach>
+          AND user_id = #{userId}
+    </select>
+
+    <select id="findChildByProId" resultType="java.lang.String">
+        WITH temp ( id ) AS (
+            SELECT
+                id
+            FROM
+                mdc_production
+            WHERE
+                id = #{ productionId }
+              AND mdc_flag = '1' UNION ALL
+            SELECT
+                a.id
+            FROM
+                mdc_production a
+                    INNER JOIN temp ON a.parent_id = temp.id
+            WHERE
+                a.mdc_flag = '1'
+        ) SELECT
+            *
+        FROM
+            temp
+    </select>
+
+    <select id="findProName" resultType="java.lang.String">
+        WITH production_hierarchy AS (
+            SELECT
+                t3.id,
+                t3.parent_id,
+                t3.production_name,
+                t3.org_type,
+                0 AS level
+            FROM
+                mdc_equipment t1
+                    JOIN
+                mdc_production_equipment t2 ON t1.id = t2.equipment_id
+                    JOIN
+                mdc_production t3 ON t2.production_id = t3.id
+            WHERE
+                t1.equipment_id = #{equipmentId}
+
+            UNION ALL
+            SELECT
+                t4.id,
+                t4.parent_id,
+                t4.production_name,
+                t4.org_type,
+                ph.level + 1
+            FROM
+                production_hierarchy ph
+                    JOIN
+                mdc_production t4 ON ph.parent_id = t4.id
+            WHERE
+                ph.parent_id IS NOT NULL
+        )
+        SELECT TOP 1
+            production_name
+        FROM
+            production_hierarchy
+        WHERE
+            org_type = 2
+        ORDER BY
+            level ASC
+    </select>
+</mapper>

--
Gitblit v1.9.3