From 140248961e5f865d48e850f8d6b10e3338171283 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 09 五月 2025 13:19:19 +0800
Subject: [PATCH] art: 设备管理-维修看板-故障分类统计

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java         |    9 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml         |    9 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java       |   44 ++++++++++++++++++---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java            |    9 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java |    6 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/FaultTypeStatisticsVO.java                |   15 +++++++
 6 files changed, 85 insertions(+), 7 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java
index 3e184b8..8e4a1b1 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java
@@ -8,6 +8,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.TranslateDictTextUtils;
 import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
@@ -170,12 +171,12 @@
     @GetMapping(value = "/repairList")
     public Result<?> repairList() {
         List<EquipmentRepairListVO> list = reportRepairService.repairList();
-        if(CollectionUtil.isEmpty(list)) {
+        if (CollectionUtil.isEmpty(list)) {
             return Result.ok(Collections.emptyList());
         }
         List<JSONObject> items = new ArrayList<>();
         try {
-            for(EquipmentRepairListVO vo : list) {
+            for (EquipmentRepairListVO vo : list) {
                 String json = objectMapper.writeValueAsString(vo);
                 JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
                 translateDictTextUtils.translateField("reportOperator", vo.getReportOperator(), item, "sys_user,realname,username");
@@ -185,7 +186,7 @@
                 items.add(item);
             }
             return Result.OK(items);
-        }catch (Exception e) {
+        } catch (Exception e) {
             return Result.error("鏁版嵁杞瘧澶辫触锛�");
         }
     }
@@ -198,22 +199,51 @@
         LocalDate start = today.minusDays(30);
         //鍙彇鍓�7鍚�
         List<RepairmanRankingVO> list = repairOrderService.repairmanRanking(start.toString(), end.toString());
-        if(CollectionUtil.isEmpty(list)) {
+        if (CollectionUtil.isEmpty(list)) {
             return Result.ok(Collections.emptyList());
         }
-        if(list.size() > 7) {
+        if (list.size() > 7) {
             list = list.subList(0, 7);
         }
         List<JSONObject> items = new ArrayList<>();
         try {
-            for(RepairmanRankingVO vo : list) {
+            for (RepairmanRankingVO vo : list) {
                 String json = objectMapper.writeValueAsString(vo);
                 JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
                 translateDictTextUtils.translateField("repairer", vo.getRepairer(), item, "sys_user,realname,username");
                 items.add(item);
             }
             return Result.OK(items);
-        }catch (Exception e) {
+        } catch (Exception e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
+    }
+
+    @ApiOperation(value = "缁翠慨鐪嬫澘-鏁呴殰绫诲瀷缁熻", notes = "缁翠慨鐪嬫澘-鏁呴殰绫诲瀷缁熻")
+    @GetMapping(value = "/faultTypeStatistics")
+    public Result<?> faultTypeStatistics() {
+        //缁熻浠婂勾鏉ユ晠闅滃垎绫绘儏鍐�
+        LocalDate today = LocalDate.now();
+        LocalDate end = today.plusDays(1);
+        //浠婂勾绗竴澶�
+        LocalDate start = today.withDayOfYear(1);
+        // 缁熻涓暟
+        List<FaultTypeStatisticsVO> list = reportRepairService.faultTypeStatistics(start.toString(), end.toString());
+        if (CollectionUtil.isEmpty(list)) {
+            return Result.ok(Collections.emptyList());
+        }
+        List<JSONObject> items = new ArrayList<>();
+        try {
+            for (FaultTypeStatisticsVO vo : list) {
+                String json = objectMapper.writeValueAsString(vo);
+                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+                translateDictTextUtils.translateField("faultType", vo.getFaultType(), item, "fault_reason_category");
+                if (item.get("faultType" + CommonConstant.DICT_TEXT_SUFFIX) != null) {
+                    items.add(item);
+                }
+            }
+            return Result.OK(items);
+        } catch (Exception e) {
             return Result.error("鏁版嵁杞瘧澶辫触锛�");
         }
     }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
index b548ce1..f878ee7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
@@ -9,6 +9,7 @@
 import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
+import org.jeecg.modules.eam.vo.FaultTypeStatisticsVO;
 
 import java.util.List;
 
@@ -49,4 +50,12 @@
      * @return
      */
     List<EquipmentRepairListVO> repairList();
+
+    /**
+     * 楠ㄦ姌鍒嗙被缁熻
+     * @param start
+     * @param end
+     * @return
+     */
+    List<FaultTypeStatisticsVO> faultTypeStatistics(String start, String end);
 }
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 55e6baf..e872ef1 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
@@ -96,4 +96,13 @@
           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>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
index 656c6f7..6ff384b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
@@ -10,6 +10,7 @@
 import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
+import org.jeecg.modules.eam.vo.FaultTypeStatisticsVO;
 
 import java.time.LocalDate;
 import java.util.List;
@@ -78,4 +79,12 @@
      * @return
      */
     List<EquipmentRepairListVO> repairList();
+
+    /**
+     * 鏁呴殰鍒嗙被缁熻
+     * @param start
+     * @param end
+     * @return
+     */
+    List<FaultTypeStatisticsVO> faultTypeStatistics(String start, String end);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
index f64ece6..17d614b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -22,6 +22,7 @@
 import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
 import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
+import org.jeecg.modules.eam.vo.FaultTypeStatisticsVO;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -202,4 +203,9 @@
     public List<EquipmentRepairListVO> repairList() {
         return this.baseMapper.repairList();
     }
+
+    @Override
+    public List<FaultTypeStatisticsVO> faultTypeStatistics(String start, String end) {
+        return this.baseMapper.faultTypeStatistics(start, end);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/FaultTypeStatisticsVO.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/FaultTypeStatisticsVO.java
new file mode 100644
index 0000000..78f6d5f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/FaultTypeStatisticsVO.java
@@ -0,0 +1,15 @@
+package org.jeecg.modules.eam.vo;
+
+import lombok.Data;
+
+@Data
+public class FaultTypeStatisticsVO {
+    /**
+     * 鏁呴殰绫诲瀷
+     */
+    private String faultType;
+    /**
+     * 鏁呴殰缁熻涓暟
+     */
+    private Integer faultCount;
+}

--
Gitblit v1.9.3