From 6d51ffe34d3d5c90945b91cc98f77b2a9001829f Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 25 三月 2025 16:00:37 +0800
Subject: [PATCH] 修改

---
 src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml |  131 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 124 insertions(+), 7 deletions(-)

diff --git a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
index efaffc1..ffa642e 100644
--- a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
+++ b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
@@ -33,13 +33,28 @@
         LEFT JOIN dj_jdgz_network_level1_list b on b.NETWORK_ID = c.ID
         LEFT JOIN dj_jdgz_network_level2_list d on d.ID = a.LEVEL2_NODE_ID
         where
-            a.is_delete = 0
-            and b.is_delete = 0
-            and c.is_delete = 0
-            and d.is_delete = 0
-            <if test="shipId!=null">
-                and c.ship_id = ${shipId}
-            </if>
+        a.is_delete = 0
+        and b.is_delete = 0
+        and c.is_delete = 0
+        and d.is_delete = 0
+        <if test="shipId!=null">
+            and c.ship_id = ${shipId}
+        </if>
+        <if test="deptId!=null">
+            and a.dept_id = ${deptId}
+        </if>
+        <if test="teamId!=null">
+            and a.TEAMGROUP_ID = ${teamId}
+        </if>
+        <if test="cabinId!=null">
+            and a.cabin_id LIKE '%${cabinId}%'
+        </if>
+        <if test="type!=null and type!=''">
+            and a.type = #{type}
+        </if>
+        <if test="name!=null and name!=''">
+            and a.name LIKE '%${name}%'
+        </if>
         group by a.id
     </select>
 
@@ -62,6 +77,108 @@
         where is_delete = 0
           and LEVEL1_network_id = ${level1NetworkId}
     </select>
+    <select id="getListByExport" resultType="com.example.client.dto.JComboBoxItem">
+        SELECT
+        a.*
+        FROM `dj_jdgz_network_level3` a
+        where
+        a.is_delete = 0
+        <if test="projectId!=null">
+            and a.LEVEL1_network_id = ${projectId}
+        </if>
+        <if test="deptId!=null">
+            and a.dept_id = ${deptId}
+        </if>
+        <if test="teamId!=null">
+            and a.TEAMGROUP_ID = ${teamId}
+        </if>
+    </select>
+    <select id="getNodeList" resultType="com.example.server.progressTrack.Dto.TableNodeDto">
+        SELECT
+        b.name,
+        a.NETWORK_ID,
+        a.process_name,
+        a.ID, a.REQUIRED_COMPLETION_TIME, a.ACTUAL_COMPLETION, a.CURRENT_STATUS
+        FROM `dj_jdgz_network_level3_list` a
+        LEFT JOIN dj_jdgz_network_level3 b on b.ID = a.NETWORK_ID
+        LEFT JOIN dj_jdgz_network_level1 c on c.ID = b.LEVEL1_NETWORK_ID
+        where
+        a.is_delete = 0
+        and b.is_delete = 0
+        and c.is_delete = 0
+        <if test="shipId!=null">
+            and c.ship_id = ${shipId}
+        </if>
+        <if test="deptId!=null">
+            and b.dept_id = ${deptId}
+        </if>
+        <if test="teamId!=null">
+            and b.TEAMGROUP_ID = ${teamId}
+        </if>
+        <if test="cabinId!=null">
+            and b.cabin_id LIKE '%${cabinId}%'
+        </if>
+        <if test="type!=null and type!=''">
+            and b.type = #{type}
+        </if>
+        <if test="name!=null and name!=''">
+            and b.name LIKE '%${name}%'
+        </if>
+    </select>
+    <select id="getStatist" resultType="com.example.server.progressTrack.Dto.StatistProductDto">
+        SELECT
+            a.id,
+            CASE WHEN a.pid = 0 THEN a.NAME ELSE '    ' || a.NAME END AS name,
+            CASE WHEN a.pid = 0 THEN '' || a.id ELSE '' || a.pid || a.SORT END AS sort,
+            COUNT(DISTINCT CASE WHEN fvp.process_name = '璁惧鎷嗗嵏鍑鸿埍' THEN b.id END) AS cxsl,
+            COUNT(DISTINCT CASE WHEN fvp.process_name = '璁惧鍒嗕氦' THEN b.id END) AS fjsl,
+            COUNT(DISTINCT CASE WHEN fvp.process_name = '鎷嗘閴村畾' THEN b.id END) AS jdsl,
+            COUNT(DISTINCT CASE WHEN fvp.process_name = '璁惧杩斿巶' THEN b.id END) AS fcsl,
+            COUNT(DISTINCT CASE WHEN fvp.process_name = '鍥炶' THEN b.id END) AS hzsl,
+            COUNT(DISTINCT CASE WHEN all_complete.network_id IS NOT NULL THEN b.id END) AS wcsl
+        FROM
+            dj_sys_teamgroup_class a
+            left JOIN
+            dj_jdgz_network_level3 b ON a.id = b.TEAMGROUP_ID OR a.id = b.DEPT_ID
+            LEFT JOIN dj_jdgz_network_level1 d on d.ID = b.LEVEL1_NETWORK_ID
+                LEFT JOIN (
+                SELECT
+                    network_id,
+                    process_name
+                FROM (
+                         SELECT
+                             c.network_id,
+                             c.process_name,
+                             c.CURRENT_STATUS,
+                             ROW_NUMBER() OVER (
+                                 PARTITION BY c.network_id
+                                 ORDER BY c.sort
+                                 ) AS rn
+                         FROM
+                             dj_jdgz_network_level3_list c
+                         WHERE
+                             (c.CURRENT_STATUS = 0 OR c.CURRENT_STATUS IS NULL) and c.is_delete = 0
+                     ) AS ranked_processes
+                WHERE
+                    ranked_processes.rn = 1
+            ) AS fvp ON b.id = fvp.network_id
+                LEFT JOIN (
+                SELECT
+                    network_id
+                FROM
+                    dj_jdgz_network_level3_list
+                GROUP BY
+                    network_id
+                HAVING
+                    COUNT(CASE WHEN CURRENT_STATUS = 1 THEN 1 END) = COUNT(*)
+            ) AS all_complete ON b.id = all_complete.network_id
+        WHERE
+            a.AREA = 'hld' AND a.IS_DELETE = 0 and d.ship_id = ${level1Id} and d.is_delete =0 and b.is_delete =0
+        GROUP BY
+            a.id, a.name
+        ORDER BY
+            sort;
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.1