From aca5717aa279a6861a6ddc6b6718a994873b0f60 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 06 五月 2025 11:44:28 +0800
Subject: [PATCH] art: 设备管理-看板接口-维保状态接口

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java            |    9 +++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java |   24 ++++++++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java         |    7 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java           |   45 +++++++++++++++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml         |    8 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentMaintenanceStatistics.java           |   36 ++++++++++++
 6 files changed, 129 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
index 92bffec..076a83a 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
@@ -32,4 +32,13 @@
      * @return
      */
     IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, @Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
+
+
+    /**
+     * 鏌ヨ浜х嚎涓嬪緱璁惧
+     * 娌℃湁鏁版嵁鏉冮檺鎺у埗
+     * @param queryWrapper
+     * @return
+     */
+    List<EamEquipment> queryByProductionIds(@Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
index f7e323a..3027e8c 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -9,4 +9,12 @@
         on e.id = ext.id
         ${ew.customSqlSegment}
     </select>
+
+    <select id="queryByProductionIds" resultType="org.jeecg.modules.eam.entity.EamEquipment">
+        select e.*, ext.repair_status, ext.maintenance_status
+        from eam_equipment e
+        left join eam_equipment_extend ext
+        on e.id = ext.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
index d5e31af..6b2dfd5 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -52,4 +52,11 @@
      * @return
      */
     EamEquipment selectByEquipmentCode(String equipmentCode);
+
+    /**
+     * 鏍规嵁杞﹂棿鏌ヨ璁惧鍙拌处鍒楄〃
+     * @param productionId 杞﹂棿ID
+     * @return
+     */
+    List<EamEquipment> queryByProductionId(String productionId);
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index b508ae8..dee8a83 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -235,6 +235,30 @@
         return eamEquipmentMapper.selectOne(queryWrapper);
     }
 
+    @Override
+    public List<EamEquipment> queryByProductionId(String productionId) {
+        QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
+        //杞﹂棿涓虹┖ 鍒欐煡璇㈡墍鏈夎澶�
+        if (StringUtils.isNotBlank(productionId)) {
+            //杞﹂棿缂栫爜涓嶄负绌�
+            List<String> productIds = mdcProductionService.recursionChildren(productionId);
+            if (CollectionUtil.isEmpty(productIds)) {
+                return Collections.emptyList();
+            }
+            if(productIds.size() == 1) {
+                queryWrapper.eq("e.org_id", productIds.get(0));
+            }else {
+                queryWrapper.in("e.org_id", productIds);
+            }
+        }
+        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
+        List<EamEquipment> list = eamEquipmentMapper.queryByProductionIds(queryWrapper);
+        if(CollectionUtil.isNotEmpty(list)) {
+            return list;
+        }
+        return Collections.emptyList();
+    }
+
     /**
      * 鑾峰彇鎵�鏈夌殑浜х嚎id锛堝寘鍚墍鏈変笂绾э級
      */
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 00f3bf7..70b8ebd 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
@@ -1,14 +1,59 @@
 package org.jeecg.modules.eam.controller;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+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.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;
 
 @Slf4j
 @Api(tags="璁惧绠$悊-棣栭〉鐪嬫澘鎺ュ彛")
 @RestController
 @RequestMapping("/eam/dashboard")
 public class EamDashboardController {
+    @Autowired
+    private IEamEquipmentService eamEquipmentService;
 
+    @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(), "缁翠慨"));
+
+        for (EamEquipment entity : list) {
+            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())) {
+                //缁翠慨鐘舵��
+                statisticsMap.get(EquipmentRepairStatus.UNDER_REPAIR.name()).increase();
+            } 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());
+        return Result.ok(resultList);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentMaintenanceStatistics.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentMaintenanceStatistics.java
new file mode 100644
index 0000000..0bd09a2
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentMaintenanceStatistics.java
@@ -0,0 +1,36 @@
+package org.jeecg.modules.eam.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 璁惧缁翠繚鐘舵�佺粺璁�
+ */
+@Data
+public class EquipmentMaintenanceStatistics implements Serializable {
+    /**
+     * 鐘舵��
+     */
+    private String status;
+    /**
+     * 鏁伴噺
+     */
+    private int totalNumber;
+
+    /**
+     * 鐘舵�佽浆璇�
+     */
+    private String statusText;
+
+    public EquipmentMaintenanceStatistics() {}
+
+    public EquipmentMaintenanceStatistics(String status, String statusText) {
+        this.status = status;
+        this.statusText = statusText;
+    }
+
+    public void increase() {
+        totalNumber++;
+    }
+}

--
Gitblit v1.9.3