From 665ffec07abac9fa14e7613fe1c73922a537ff77 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 06 五月 2025 16:00:19 +0800
Subject: [PATCH] art: 设备管理-看板接口-维修统计接口

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java |   63 +++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 16 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 70b8ebd..109ffa9 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
@@ -4,56 +4,87 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
 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.vo.EquipmentMaintenanceStatistics;
+import org.jeecg.modules.eam.service.IEamReportRepairService;
+import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
+import org.jeecg.modules.eam.vo.EquipmentStatusStatistics;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalDate;
+import java.util.*;
 
 @Slf4j
-@Api(tags="璁惧绠$悊-棣栭〉鐪嬫澘鎺ュ彛")
+@Api(tags = "璁惧绠$悊-棣栭〉鐪嬫澘鎺ュ彛")
 @RestController
 @RequestMapping("/eam/dashboard")
 public class EamDashboardController {
     @Autowired
     private IEamEquipmentService eamEquipmentService;
+    @Autowired
+    private IEamReportRepairService reportRepairService;
 
-    @ApiOperation(value="鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�", notes="鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�")
+    @ApiOperation(value = "鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�", notes = "鐪嬫澘鎺ュ彛-缁翠繚鐘舵�佺粺璁�")
     @GetMapping(value = "/equipmentStatusStatistics")
     public Result<?> equipmentStatusStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
         List<EamEquipment> list = eamEquipmentService.queryByProductionId(productionId);
         //鍒濆鍖栬繑鍥�
-        Map<String, EquipmentMaintenanceStatistics> statisticsMap = new HashMap<>();
-        statisticsMap.put(EquipmentMaintenanceStatus.NORMAL.name(), new EquipmentMaintenanceStatistics(EquipmentMaintenanceStatus.NORMAL.name(), "姝e父"));
-        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), new EquipmentMaintenanceStatistics(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), "鐐规"));
-        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), new EquipmentMaintenanceStatistics(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), "淇濆吇"));
-        statisticsMap.put(EquipmentRepairStatus.UNDER_REPAIR.name(), new EquipmentMaintenanceStatistics(EquipmentRepairStatus.UNDER_REPAIR.name(), "缁翠慨"));
+        Map<String, EquipmentStatusStatistics> statisticsMap = new HashMap<>();
+        statisticsMap.put(EquipmentMaintenanceStatus.NORMAL.name(), new EquipmentStatusStatistics(EquipmentMaintenanceStatus.NORMAL.name(), "姝e父"));
+        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), new EquipmentStatusStatistics(EquipmentMaintenanceStatus.UNDER_INSPECTION.name(), "鐐规"));
+        statisticsMap.put(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), new EquipmentStatusStatistics(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name(), "淇濆吇"));
+        statisticsMap.put(EquipmentRepairStatus.UNDER_REPAIR.name(), new EquipmentStatusStatistics(EquipmentRepairStatus.UNDER_REPAIR.name(), "缁翠慨"));
 
         for (EamEquipment entity : list) {
-            if(EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getMaintenanceStatus()) && EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
+            if (EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getMaintenanceStatus()) && EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
                 //姝e父鐘舵��
                 statisticsMap.get(EquipmentMaintenanceStatus.NORMAL.name()).increase();
-            }else if(!EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
+            } else if (!EquipmentMaintenanceStatus.NORMAL.name().equals(entity.getRepairStatus())) {
                 //缁翠慨鐘舵��
                 statisticsMap.get(EquipmentRepairStatus.UNDER_REPAIR.name()).increase();
-            } else if(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name().equals(entity.getMaintenanceStatus()) || EquipmentMaintenanceStatus.WAIT_CONFIRM.name().equals(entity.getMaintenanceStatus())) {
+            } else if (EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name().equals(entity.getMaintenanceStatus()) || EquipmentMaintenanceStatus.WAIT_CONFIRM.name().equals(entity.getMaintenanceStatus())) {
                 //淇濆吇鐘舵��
                 statisticsMap.get(EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()).increase();
             } else {
                 statisticsMap.get(EquipmentMaintenanceStatus.UNDER_INSPECTION.name()).increase();
             }
         }
-        List<EquipmentMaintenanceStatistics> resultList = new ArrayList<>(statisticsMap.values());
+        List<EquipmentStatusStatistics> resultList = new ArrayList<>(statisticsMap.values());
+        return Result.ok(resultList);
+    }
+
+    @ApiOperation(value = "鐪嬫澘鎺ュ彛-缁翠慨缁熻", notes = "鐪嬫澘鎺ュ彛-缁翠慨缁熻")
+    @GetMapping(value = "/equipmentRepairStatistics")
+    public Result<?> equipmentRepairStatistics(@RequestParam(required = false, value = "productionId") String productionId) {
+        //缁熻缁撴潫鏃ユ湡
+        LocalDate today = LocalDate.now();
+        LocalDate localDate = today.minusMonths(5);
+        //缁熻寮�濮嬫棩鏈�
+        LocalDate firstOfMonth = DateUtils.getFirstOfMonth(localDate);
+
+        //鍒濆鍖栬繑鍥炲��
+        Map<String, EquipmentRepairStatistics> statisticsMap = new HashMap<>();
+        List<String> monthsBetween = DateUtils.getMonthsBetween(firstOfMonth, today);
+        monthsBetween.forEach(month -> {
+            statisticsMap.put(month, new EquipmentRepairStatistics(month));
+        });
+
+        List<EquipmentRepairStatistics> list = reportRepairService.equipmentRepairStatistics(productionId, firstOfMonth, today);
+        for (EquipmentRepairStatistics statistics : list) {
+            if (statisticsMap.containsKey(statistics.getMonthStr())) {
+                statisticsMap.put(statistics.getMonthStr(), statistics);
+            }
+        }
+        List<EquipmentRepairStatistics> resultList = new ArrayList<>(statisticsMap.values());
+        //鎺掑簭
+        resultList.sort(Comparator.comparing(EquipmentRepairStatistics::getMonthStr));
         return Result.ok(resultList);
     }
 }

--
Gitblit v1.9.3