From 1bc1ad0105a26b8ae7e8f5af636181707312d6cc Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 28 五月 2025 12:56:18 +0800
Subject: [PATCH] art: 设备管理-故障报修-查询接口优化

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
index e95236a..59506ad 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
@@ -48,4 +48,68 @@
         </where>
         ORDER BY t1.create_time DESC
     </select>
+
+    <select id="equipmentRepairStatistics" resultType="org.jeecg.modules.eam.vo.EquipmentRepairStatistics">
+        select FORMAT(err.create_time, 'yyyy-MM') as monthStr,
+               COUNT(1) as reportNumber,
+               SUM(CASE WHEN err.report_status = 'COMPLETE' THEN 1 ELSE 0 END) as repairedNumber
+        from eam_report_repair err
+        inner join eam_equipment e
+        on err.equipment_id = e.id
+        where err.report_status != 'ABOLISH' and err.del_flag = 0 and e.del_flag = 0
+        <if test="productionIds != null">
+            AND e.org_id IN
+            <foreach collection="productionIds" item="productionId" index="index" open="(" close=")" separator=",">
+                #{productionId}
+            </foreach>
+        </if>
+        and err.create_time &gt;= #{start}
+        and err.create_time &lt; #{end}
+        group by FORMAT(err.create_time, 'yyyy-MM')
+    </select>
+    <select id="repairStatusStatistics" resultType="org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics">
+        SELECT
+            SUM(CASE WHEN t.report_status='WAIT_REPAIR' THEN 1 ELSE 0 END) AS waitRepair,
+            SUM(CASE WHEN t.report_status='UNDER_REPAIR' THEN 1 ELSE 0 END) AS underRepair,
+            SUM(CASE WHEN t.report_status='WAIT_SPARES' THEN 1 ELSE 0 END) AS waitSpares,
+            SUM(CASE WHEN t.report_status='WAIT_CONFIRM' THEN 1 ELSE 0 END) AS waitConfirm
+        from eam_report_repair t
+        where t.report_status not in ('ABOLISH', 'COMPLETE') and t.del_flag = 0
+    </select>
+
+    <select id="repairList" resultType="org.jeecg.modules.eam.vo.EquipmentRepairListVO">
+        select e.equipment_code,
+               e.equipment_name,
+               e.org_id,
+               e.installation_position,
+               err.create_by as reportOperator,
+               err.fault_start_time,
+               ero.repairer as repairOperator,
+               ero.actual_start_time as repairStartTime,
+               err.report_status
+        from eam_report_repair err
+                 left join eam_equipment e
+                           on err.equipment_id = e.id
+                 left join eam_repair_order ero
+                           on ero.report_id = err.id
+        where err.report_status not in ('ABOLISH', 'COMPLETE')
+          and err.del_flag = 0
+        order by e.org_id, err.fault_start_time
+    </select>
+
+    <select id="faultTypeStatistics" resultType="org.jeecg.modules.eam.vo.FaultTypeStatisticsVO">
+        select t.fault_type, count(1) as faultCount
+        from eam_report_repair t
+        where t.report_status != 'ABOLISH' and t.del_flag = 0
+          and t.create_time &gt;= #{start}
+          and t.create_time &lt; #{end}
+        group by t.fault_type
+    </select>
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamReportRepair">
+        select wmo.*, e.equipment_code, e.equipment_name, e.installation_position
+        from eam_report_repair wmo
+        inner join eam_equipment e
+        on wmo.equipment_id = e.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3