From 757dcb3fcad665eaef93074a4981c4134f7a027e Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期日, 04 十月 2026 17:33:43 +0800
Subject: [PATCH] feat: complete system management and repair workflow updates

---
 emergency-repair-server/src/main/resources/mapper/ReportMapper.xml |  112 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 61 insertions(+), 51 deletions(-)

diff --git a/emergency-repair-server/src/main/resources/mapper/ReportMapper.xml b/emergency-repair-server/src/main/resources/mapper/ReportMapper.xml
index 893c1ec..ace6e62 100644
--- a/emergency-repair-server/src/main/resources/mapper/ReportMapper.xml
+++ b/emergency-repair-server/src/main/resources/mapper/ReportMapper.xml
@@ -52,14 +52,16 @@
                    NVL(SUM(CASE WHEN IS_H_RELATED = 1 THEN 1 ELSE 0 END), 0) AS H_RELATED,
                    NVL(SUM(CASE WHEN IS_MONITOR_ITEM = 1 THEN 1 ELSE 0 END), 0) AS MONITOR_ITEM,
                    NVL(SUM(CASE WHEN TASK_STATUS = 'CANCELLED' THEN 1 ELSE 0 END), 0) AS CANCELLED
-            FROM LX.T_FAULT
-        ) f
-        CROSS JOIN (
-            SELECT NVL(SUM(CASE WHEN COMPLETION_STATUS IS NULL OR COMPLETION_STATUS &lt;&gt; 'COMPLETED' THEN 1 ELSE 0 END), 0) AS UNFINISHED,
-                   NVL(SUM(CASE WHEN COMPLETION_STATUS = 'COMPLETED' THEN 1 ELSE 0 END), 0) AS COMPLETED,
-                   NVL(SUM(CASE WHEN COMPLETION_STATUS = 'WAIT_TEST' THEN 1 ELSE 0 END), 0) AS WAIT_TEST
-            FROM LX.T_WORK_ORDER
-        ) w
+             FROM LX.T_FAULT
+             WHERE DEL_FLAG = 0
+         ) f
+         CROSS JOIN (
+             SELECT NVL(SUM(CASE WHEN COMPLETION_STATUS IS NULL OR COMPLETION_STATUS &lt;&gt; 'COMPLETED' THEN 1 ELSE 0 END), 0) AS UNFINISHED,
+                    NVL(SUM(CASE WHEN COMPLETION_STATUS = 'COMPLETED' THEN 1 ELSE 0 END), 0) AS COMPLETED,
+                    NVL(SUM(CASE WHEN COMPLETION_STATUS = 'WAIT_TEST' THEN 1 ELSE 0 END), 0) AS WAIT_TEST
+             FROM LX.T_WORK_ORDER
+             WHERE DEL_FLAG = 0
+         ) w
     </select>
 
     <select id="selectTopEquipment" resultMap="metricResultMap">
@@ -76,9 +78,10 @@
                         ',' || CAST(p.ID AS VARCHAR(40)) || ',') &gt; 0
                   OR (NVL(f.EQUIPMENT_IDS, '') = '' AND f.EQUIPMENT_ID = p.ID)
              )
-            JOIN LX.T_BASE_EQUIPMENT b ON b.ID = p.BASE_EQUIPMENT_ID
-        ),
-        splitter AS (
+             JOIN LX.T_BASE_EQUIPMENT b ON b.ID = p.BASE_EQUIPMENT_ID
+             WHERE f.DEL_FLAG = 0 AND p.DEL_FLAG = 0 AND b.DEL_FLAG = 0
+         ),
+         splitter AS (
             SELECT LEVEL AS N
             FROM DUAL
             CONNECT BY LEVEL &lt;= (
@@ -86,10 +89,11 @@
                     REPLACE(REPLACE(REPLACE(NVL(EQUIPMENT_NAME, ''), '锛�', '銆�'), ',', '銆�'), CHR(10), '銆�'),
                     '銆�'
                 )), 0) + 1
-                FROM LX.T_FAULT
-            )
-        ),
-        fallback_names AS (
+                 FROM LX.T_FAULT
+                 WHERE DEL_FLAG = 0
+             )
+         ),
+         fallback_names AS (
             SELECT f.ID AS FAULT_ID,
                    NVL(TRIM(REGEXP_SUBSTR(
                        REPLACE(REPLACE(REPLACE(NVL(f.EQUIPMENT_NAME, ''), '锛�', '銆�'), ',', '銆�'), CHR(10), '銆�'),
@@ -102,26 +106,29 @@
               ON sp.N &lt;= REGEXP_COUNT(
                   REPLACE(REPLACE(REPLACE(NVL(f.EQUIPMENT_NAME, ''), '锛�', '銆�'), ',', '銆�'), CHR(10), '銆�'),
                   '銆�'
-              ) + 1
-        ),
-        fallback_link AS (
+               ) + 1
+             WHERE f.DEL_FLAG = 0
+         ),
+         fallback_link AS (
             SELECT DISTINCT fn.FAULT_ID,
                             b.ID AS BASE_ID,
                             b.NAME AS BASE_NAME
             FROM fallback_names fn
-            JOIN LX.T_FAULT f ON f.ID = fn.FAULT_ID
-            JOIN LX.T_PRODUCT_TREE p5
-              ON p5.NODE_LEVEL = 5
-             AND p5.NAME = fn.EQUIPMENT_NAME
-             AND p5.BASE_EQUIPMENT_ID IS NOT NULL
-            JOIN LX.T_PRODUCT_TREE p4 ON p4.ID = p5.PARENT_ID
-            JOIN LX.T_PRODUCT_TREE p3 ON p3.ID = p4.PARENT_ID
-            JOIN LX.T_PRODUCT_TREE x
-              ON x.ID = p3.PARENT_ID
-             AND x.NODE_LEVEL = 2
-             AND x.NAME = f.X_NO
-            JOIN LX.T_BASE_EQUIPMENT b ON b.ID = p5.BASE_EQUIPMENT_ID
-            WHERE NOT EXISTS (
+             JOIN LX.T_FAULT f ON f.ID = fn.FAULT_ID
+             JOIN LX.T_PRODUCT_TREE p5
+               ON p5.NODE_LEVEL = 5
+              AND p5.NAME = fn.EQUIPMENT_NAME
+              AND p5.BASE_EQUIPMENT_ID IS NOT NULL
+              AND p5.DEL_FLAG = 0
+             JOIN LX.T_PRODUCT_TREE p4 ON p4.ID = p5.PARENT_ID AND p4.DEL_FLAG = 0
+             JOIN LX.T_PRODUCT_TREE p3 ON p3.ID = p4.PARENT_ID AND p3.DEL_FLAG = 0
+             JOIN LX.T_PRODUCT_TREE x
+               ON x.ID = p3.PARENT_ID
+              AND x.NODE_LEVEL = 2
+              AND x.NAME = f.X_NO
+              AND x.DEL_FLAG = 0
+             JOIN LX.T_BASE_EQUIPMENT b ON b.ID = p5.BASE_EQUIPMENT_ID AND b.DEL_FLAG = 0
+             WHERE NOT EXISTS (
                 SELECT 1
                 FROM explicit_link el
                 WHERE el.FAULT_ID = fn.FAULT_ID
@@ -166,27 +173,29 @@
     <select id="selectByTeam" resultMap="teamResultMap">
         WITH fault_agg AS (
             SELECT CASE
-                       WHEN TRIM(TEAM_MAJOR) IS NULL OR TRIM(TEAM_MAJOR) = '' THEN '鏈~鍐橳闃熶笓涓�'
+                       WHEN TRIM(TEAM_MAJOR) IS NULL OR TRIM(TEAM_MAJOR) = '' THEN '鏈~鍐檙k_T闃熶笓涓�'
                        ELSE TRIM(TEAM_MAJOR)
                    END AS NAME,
                    COUNT(*) AS FAULT_COUNT
-            FROM LX.T_FAULT
-            GROUP BY CASE
-                         WHEN TRIM(TEAM_MAJOR) IS NULL OR TRIM(TEAM_MAJOR) = '' THEN '鏈~鍐橳闃熶笓涓�'
+             FROM LX.T_FAULT
+             WHERE DEL_FLAG = 0
+             GROUP BY CASE
+                         WHEN TRIM(TEAM_MAJOR) IS NULL OR TRIM(TEAM_MAJOR) = '' THEN '鏈~鍐檙k_T闃熶笓涓�'
                          ELSE TRIM(TEAM_MAJOR)
                      END
         ),
         parts_agg AS (
             SELECT CASE
-                       WHEN f.TEAM_MAJOR IS NULL OR TRIM(f.TEAM_MAJOR) = '' THEN '鏈~鍐橳闃熶笓涓�'
+                       WHEN f.TEAM_MAJOR IS NULL OR TRIM(f.TEAM_MAJOR) = '' THEN '鏈~鍐檙k_T闃熶笓涓�'
                        ELSE TRIM(f.TEAM_MAJOR)
                    END AS NAME,
                    NVL(SUM(NVL(ci.CONSUMABLE_COUNT, 0)), 0) AS PARTS_COUNT
-            FROM LX.T_COMPLETION_INFO ci
-            JOIN LX.T_WORK_ORDER w ON w.ID = ci.WORK_ORDER_ID
-            LEFT JOIN LX.T_FAULT f ON f.ID = w.FAULT_ID
-            GROUP BY CASE
-                         WHEN f.TEAM_MAJOR IS NULL OR TRIM(f.TEAM_MAJOR) = '' THEN '鏈~鍐橳闃熶笓涓�'
+             FROM LX.T_COMPLETION_INFO ci
+             JOIN LX.T_WORK_ORDER w ON w.ID = ci.WORK_ORDER_ID AND w.DEL_FLAG = 0
+             LEFT JOIN LX.T_FAULT f ON f.ID = w.FAULT_ID AND f.DEL_FLAG = 0
+             WHERE ci.DEL_FLAG = 0
+             GROUP BY CASE
+                         WHEN f.TEAM_MAJOR IS NULL OR TRIM(f.TEAM_MAJOR) = '' THEN '鏈~鍐檙k_T闃熶笓涓�'
                          ELSE TRIM(f.TEAM_MAJOR)
                      END
         ),
@@ -210,8 +219,9 @@
                NVL(SUM(CASE WHEN COMPLETION_STATUS IS NULL OR COMPLETION_STATUS &lt;&gt; 'COMPLETED' THEN 1 ELSE 0 END), 0) AS UNFINISHED_COUNT,
                NVL(SUM(CASE WHEN COMPLETION_STATUS = 'COMPLETED' THEN 1 ELSE 0 END), 0) AS COMPLETED_COUNT,
                NVL(ROUND(AVG(SCORE), 1), 0) AS AVERAGE_SCORE
-        FROM LX.T_WORK_ORDER
-        GROUP BY CONTRACTOR_NAME
+         FROM LX.T_WORK_ORDER
+         WHERE DEL_FLAG = 0
+         GROUP BY CONTRACTOR_NAME
         ORDER BY TOTAL_COUNT DESC, CONTRACTOR_NAME ASC
     </select>
 
@@ -219,18 +229,18 @@
         WITH fault_agg AS (
             SELECT EXTRACT(YEAR FROM REPORT_DATE) AS REPORT_YEAR,
                    COUNT(*) AS FAULT_COUNT
-            FROM LX.T_FAULT
-            WHERE REPORT_DATE IS NOT NULL
-            GROUP BY EXTRACT(YEAR FROM REPORT_DATE)
+             FROM LX.T_FAULT
+             WHERE DEL_FLAG = 0 AND REPORT_DATE IS NOT NULL
+             GROUP BY EXTRACT(YEAR FROM REPORT_DATE)
         ),
         parts_agg AS (
             SELECT EXTRACT(YEAR FROM f.REPORT_DATE) AS REPORT_YEAR,
                    NVL(SUM(NVL(ci.CONSUMABLE_COUNT, 0)), 0) AS PARTS_COUNT
-            FROM LX.T_COMPLETION_INFO ci
-            JOIN LX.T_WORK_ORDER w ON w.ID = ci.WORK_ORDER_ID
-            JOIN LX.T_FAULT f ON f.ID = w.FAULT_ID
-            WHERE f.REPORT_DATE IS NOT NULL
-            GROUP BY EXTRACT(YEAR FROM f.REPORT_DATE)
+             FROM LX.T_COMPLETION_INFO ci
+             JOIN LX.T_WORK_ORDER w ON w.ID = ci.WORK_ORDER_ID AND w.DEL_FLAG = 0
+             JOIN LX.T_FAULT f ON f.ID = w.FAULT_ID AND f.DEL_FLAG = 0
+             WHERE ci.DEL_FLAG = 0 AND f.REPORT_DATE IS NOT NULL
+             GROUP BY EXTRACT(YEAR FROM f.REPORT_DATE)
         ),
         report_years AS (
             SELECT REPORT_YEAR FROM fault_agg

--
Gitblit v1.9.1