From 8203359e4e68775b3ce0e540837bf3332d970798 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 09 五月 2025 11:38:49 +0800
Subject: [PATCH] art: 设备管理-维修看板-维修工排名统计

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java         |   13 ++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java                  |   15 +++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml         |   11 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java      |   33 +++++++++++++---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java |    6 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java            |    9 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java               |    9 ++++
 7 files changed, 89 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 20a427c..3e184b8 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
@@ -13,10 +13,7 @@
 import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
 import org.jeecg.modules.eam.constant.EquipmentRepairStatus;
 import org.jeecg.modules.eam.entity.EamEquipment;
-import org.jeecg.modules.eam.service.IEamEquipmentService;
-import org.jeecg.modules.eam.service.IEamInspectionOrderService;
-import org.jeecg.modules.eam.service.IEamReportRepairService;
-import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.eam.service.*;
 import org.jeecg.modules.eam.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -43,9 +40,11 @@
     private IEamWeekMaintenanceOrderService weekMaintenanceOrderService;
     @Resource
     private ObjectMapper objectMapper;
-
     @Resource
     private TranslateDictTextUtils translateDictTextUtils;
+    @Autowired
+    private IEamRepairOrderService repairOrderService;
+
 
     @ApiOperation(value = "鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�", notes = "鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�")
     @GetMapping(value = "/equipmentStatusStatistics")
@@ -194,6 +193,28 @@
     @ApiOperation(value = "缁翠慨鐪嬫澘-缁翠慨宸ユ帓鍚�", notes = "缁翠慨鐪嬫澘-缁翠慨宸ユ帓鍚�")
     @GetMapping(value = "/repairmanRanking")
     public Result<?> repairmanRanking() {
-        return null;
+        LocalDate today = LocalDate.now();
+        LocalDate end = today.plusDays(1);
+        LocalDate start = today.minusDays(30);
+        //鍙彇鍓�7鍚�
+        List<RepairmanRankingVO> list = repairOrderService.repairmanRanking(start.toString(), end.toString());
+        if(CollectionUtil.isEmpty(list)) {
+            return Result.ok(Collections.emptyList());
+        }
+        if(list.size() > 7) {
+            list = list.subList(0, 7);
+        }
+        List<JSONObject> items = new ArrayList<>();
+        try {
+            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) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
index 90b1277..60c33b8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
@@ -6,6 +6,7 @@
 import org.jeecg.modules.eam.entity.EamRepairOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.vo.RepairmanRankingVO;
 
 import java.util.List;
 
@@ -26,4 +27,12 @@
      * @return
      */
     IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrder, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds);
+
+    /**
+     * 缁熻缁翠慨鎺掑悕
+     * @param start
+     * @param end
+     * @return
+     */
+    List<RepairmanRankingVO> repairmanRanking(String start, String end);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
index b20669f..1f65d48 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
@@ -45,4 +45,15 @@
         </where>
         ORDER BY t1.create_time DESC
     </select>
+
+    <select id="repairmanRanking" resultType="org.jeecg.modules.eam.vo.RepairmanRankingVO">
+        select t.repairer, COUNT(1) as repairNumber
+        from eam_repair_order t
+        where t.repair_status = 'COMPLETE'
+          and t.del_flag = 0
+          and t.actual_end_time &gt;= #{start}
+          and t.actual_end_time &lt; #{end}
+        group by t.repairer
+        order by repairNumber desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
index 4faae6e..e9e68e4 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
@@ -2,12 +2,15 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.jeecg.modules.eam.entity.EamRepairOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamRepairOrder;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
 import org.jeecg.modules.eam.request.EamRepairOrderRequest;
 import org.jeecg.modules.eam.request.EamRepairOrderResponse;
 import org.jeecg.modules.eam.request.EamReportRepairQuery;
+import org.jeecg.modules.eam.vo.RepairmanRankingVO;
+
+import java.util.List;
 
 /**
  * @Description: 缁翠慨宸ュ崟
@@ -44,4 +47,12 @@
      * @param eamReportRepairQuery
      */
     void assign(EamReportRepairQuery eamReportRepairQuery);
+
+    /**
+     * 缁翠慨鎺掑悕缁熻
+     * @param start
+     * @param end
+     * @return
+     */
+    List<RepairmanRankingVO> repairmanRanking(String start, String end);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
index b86ab14..794d524 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -30,6 +30,7 @@
 import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamRepairOrderService;
 import org.jeecg.modules.eam.service.IEamReportRepairService;
+import org.jeecg.modules.eam.vo.RepairmanRankingVO;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -188,6 +189,11 @@
         }
     }
 
+    @Override
+    public List<RepairmanRankingVO> repairmanRanking(String start, String end) {
+        return this.baseMapper.repairmanRanking(start, end);
+    }
+
     /**
      * 娴佺▼鎿嶄綔
      *
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java
index cf5ee86..5bcc529 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentRepairListVO.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.eam.vo;
 
 import lombok.Data;
+import org.jeecg.modules.mdc.util.DateUtils;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -47,4 +48,12 @@
      * 宸ュ崟鐘舵��
      */
     private String reportStatus;
+
+    //璁$畻 鏁呴殰鎸佺画鏃堕暱  鍒嗛挓
+    public Integer getFaultDuration() {
+        if (faultStartTime != null) {
+            return DateUtils.differentMinutes(faultStartTime, new Date());
+        }
+        return null;
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java
new file mode 100644
index 0000000..fd5611e
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/RepairmanRankingVO.java
@@ -0,0 +1,15 @@
+package org.jeecg.modules.eam.vo;
+
+import lombok.Data;
+
+@Data
+public class RepairmanRankingVO {
+    /**
+     * 缁翠慨浜�
+     */
+    private String repairer;
+    /**
+     * 缁翠慨鏁伴噺
+     */
+    private Integer repairNumber;
+}

--
Gitblit v1.9.3