From 77d58298d00c11ade8862ca8acb0fdef5a45322e Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 21 三月 2025 17:39:38 +0800 Subject: [PATCH] 修改 --- src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml index dad57e4..ffa642e 100644 --- a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml +++ b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml @@ -125,6 +125,60 @@ 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