From a1bdd2887fec278235ec447c521918c021081d40 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 12 六月 2025 09:44:59 +0800
Subject: [PATCH] 数字孪生看板设备故障统计接口

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/DtBoardMapper.java            |   17 +++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/IDtBoardService.java         |    2 
 /dev/null                                                                                  |   62 --------------------
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/vo/EquRepair.java                    |   26 ++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/xml/DtBoardMapper.xml         |   27 +++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/impl/DtBoardServiceImpl.java |   28 +++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/controller/DtBoardController.java    |   11 ++-
 7 files changed, 106 insertions(+), 67 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/controller/DtBoardController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/controller/DtBoardController.java
index 909ed5c..f238759 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/controller/DtBoardController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/controller/DtBoardController.java
@@ -85,11 +85,12 @@
         return Result.OK(result);
     }
 
-//    @ApiOperation(value = "鏁板瓧瀛敓鐪嬫澘-璁惧鏁呴殰", notes = "鏁板瓧瀛敓鐪嬫澘-璁惧鏁呴殰")
-//    @GetMapping("/equAlarmList")
-//    public Result<?> equAlarmList(@ApiParam(value = "productionId", required = true) String productionId) {
-//        dtBoardService.
-//    }
+    @ApiOperation(value = "鏁板瓧瀛敓鐪嬫澘-璁惧鏁呴殰", notes = "鏁板瓧瀛敓鐪嬫澘-璁惧鏁呴殰")
+    @GetMapping("/equRepairList")
+    public Result<?> equRepairList(@ApiParam(value = "productionId", required = true) String productionId) {
+        List<EquRepair> result = dtBoardService.equRepairList(productionId);
+        return Result.OK(result);
+    }
 
 
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/DtBoardMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/DtBoardMapper.java
new file mode 100644
index 0000000..12e64b6
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/DtBoardMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.board.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.board.vo.EquRepair;
+
+import java.util.List;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-06-11
+ * @Description:
+ */
+@Mapper
+public interface DtBoardMapper {
+    List<EquRepair> equRepairList(@Param("equipmentIdList") List<String> equipmentIdList, @Param("date") String date);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/xml/DtBoardMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/xml/DtBoardMapper.xml
new file mode 100644
index 0000000..566cd4b
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/mapper/xml/DtBoardMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.board.mapper.DtBoardMapper">
+
+    <select id="equRepairList" resultType="org.jeecg.modules.board.vo.EquRepair">
+        SELECT
+            t3.equipment_code equipmentId,
+            COUNT(*) faultNum,
+            ROUND(
+                    SUM(DATEDIFF(MINUTE, t2.fault_start_time, t1.actual_end_time)) / 60.0,
+                    2
+            ) faultTime
+        FROM
+            eam_repair_order t1
+                LEFT JOIN eam_report_repair t2 ON t1.report_id = t2.id
+                LEFT JOIN eam_equipment t3 ON t1.equipment_id = t3.id
+        WHERE
+            t1.repair_status = 'COMPLETE'
+            AND t2.fault_start_time > #{date}
+            AND t3.equipment_code IN
+            <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                #{ id }
+            </foreach>
+        GROUP BY
+            t3.equipment_code
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/IDtBoardService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/IDtBoardService.java
index 07069e7..be4172a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/IDtBoardService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/IDtBoardService.java
@@ -27,4 +27,6 @@
     List<EquDowntimeInfo> equDowntimeStatistics(String productionId);
 
     List<EquAlarm> equAlarmList(String productionId);
+
+    List<EquRepair> equRepairList(String productionId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/impl/DtBoardServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/impl/DtBoardServiceImpl.java
index bf79693..ebea97e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/impl/DtBoardServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/impl/DtBoardServiceImpl.java
@@ -5,8 +5,10 @@
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.modules.board.mapper.DtBoardMapper;
 import org.jeecg.modules.board.service.IDtBoardService;
 import org.jeecg.modules.board.vo.*;
+import org.jeecg.modules.eam.service.IEamRepairOrderService;
 import org.jeecg.modules.mdc.constant.MdcConstant;
 import org.jeecg.modules.mdc.entity.*;
 import org.jeecg.modules.mdc.service.*;
@@ -20,6 +22,8 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -63,6 +67,9 @@
 
     @Resource
     private IMdcAlarmInfoService mdcAlarmInfoService;
+
+    @Resource
+    private DtBoardMapper dtBoardMapper;
 
     /**
      * 杞﹂棿淇℃伅
@@ -337,4 +344,25 @@
         return result;
     }
 
+    /**
+     * 璁惧鏁呴殰
+     * @param productionId
+     * @return
+     */
+    @Override
+    public List<EquRepair> equRepairList(String productionId) {
+        List<String> proIds = mdcProductionService.findChildByProId(productionId);
+        if (proIds == null || proIds.isEmpty()) {
+            return null;
+        }
+        List<String> equipmentIdList = mdcEquipmentService.getEquIdsByProIds(proIds);
+        if (equipmentIdList == null || equipmentIdList.isEmpty()) {
+            return null;
+        }
+        LocalDateTime currentDate = LocalDate.now().minusMonths(1).atStartOfDay();
+        String format = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        List<EquRepair> result = dtBoardMapper.equRepairList(equipmentIdList, format);
+        return result;
+    }
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/vo/EquRepair.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/vo/EquRepair.java
new file mode 100644
index 0000000..8122dfc
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/board/vo/EquRepair.java
@@ -0,0 +1,26 @@
+package org.jeecg.modules.board.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-06-10
+ * @Description: 璁惧鏁呴殰
+ */
+@Data
+public class EquRepair {
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentId;
+    /**
+     *  鏁呴殰娆℃暟
+     */
+    private BigDecimal faultNum;
+    /**
+     * 鏁呴殰鏃堕暱
+     */
+    private BigDecimal faultTime;
+}
diff --git a/lxzn-module-msi/src/main/java/org/jeecg/modules/msi/utils/WebServiceUtil.java b/lxzn-module-msi/src/main/java/org/jeecg/modules/msi/utils/WebServiceUtil.java
deleted file mode 100644
index a104726..0000000
--- a/lxzn-module-msi/src/main/java/org/jeecg/modules/msi/utils/WebServiceUtil.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.jeecg.modules.msi.utils;
-
-
-import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
-import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
-
-
-public class WebServiceUtil {
-    /**
-     * 1.浠g悊绫诲伐鍘傜殑鏂瑰紡,闇�瑕佹嬁鍒板鏂圭殑鎺ュ彛鍦板潃, 鍚屾椂闇�瑕佸紩鍏ユ帴鍙�
-     */
-    public static void invokeService_1(String address, Class<?> tClass){
-        // 鎺ュ彛鍦板潃
-        //String address = "http://localhost:8080/services/ws/api?wsdl";
-        // 浠g悊宸ュ巶
-        JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
-        // 璁剧疆浠g悊鍦板潃
-        jaxWsProxyFactoryBean.setAddress(address);
-        // 璁剧疆鎺ュ彛绫诲瀷
-        jaxWsProxyFactoryBean.setServiceClass(tClass);
-        // 鍒涘缓涓�涓唬鐞嗘帴鍙e疄鐜�
-        Object us = jaxWsProxyFactoryBean.create();
-        // 鏁版嵁鍑嗗
-        String data = "hello world";
-        // 璋冪敤浠g悊鎺ュ彛鐨勬柟娉曡皟鐢ㄥ苟杩斿洖缁撴灉
-        //String result = us.emrService(data);
-        //System.out.println("杩斿洖缁撴灉:" + result);
-    }
-
-    /**
-     * 3. 鍔ㄦ�佽皟鐢�
-     */
-    public static String invokeService(String uri, String data, String method)
-    {
-        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
-        Client client = dcf.createClient(uri);
-        Object[] objects = new Object[0];
-        try {
-            objects = client.invoke(method, data);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return String.valueOf(objects[0]);
-    }
-
-    /**
-     * 2. 鍔ㄦ�佽皟鐢�
-     */
-    public static String invokeServiceObJect(String uri,Object[] datas, String method)
-    {
-        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
-        Client client = dcf.createClient(uri);
-        Object[] objects = new Object[0];
-        try {
-            objects = client.invoke(method, datas);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return String.valueOf(objects[0]);
-    }
-}

--
Gitblit v1.9.3