From 38eed874fc4cf74789d438b78381bd26448ceb3f Mon Sep 17 00:00:00 2001
From: hyingbo <1363390067@qq.com>
Date: 星期四, 03 七月 2025 18:50:41 +0800
Subject: [PATCH] 查询所有未处理的安灯信息及查询所有设备

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/IDtBoardService.java          |    4 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java         |    3 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java            |    2 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java |   32 ++++++++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml         |   19 +++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/service/impl/DtBoardServiceImpl.java  |   31 +++++++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/board/controller/DtBoardController.java     |   15 +++++++
 7 files changed, 106 insertions(+), 0 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 61d23bc..04cdcc1 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
@@ -7,6 +7,7 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.board.service.IDtBoardService;
 import org.jeecg.modules.board.vo.*;
+import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -99,5 +100,19 @@
         return Result.OK(result);
     }
 
+    @ApiOperation(value = "鏁板瓧瀛敓鐪嬫澘-鑾峰彇璁惧鏈鐞嗙殑瀹夌伅淇℃伅", notes = "鏁板瓧瀛敓鐪嬫澘-鑾峰彇璁惧鏈鐞嗙殑瀹夌伅淇℃伅")
+    @GetMapping("/untreatedAndonList")
+    public Result<?> untreatedAndonList() {
+        List<AndonOrderWebSocketVo> result = dtBoardService.untreatedAndonList();
+        return Result.OK(result);
+    }
+
+    @ApiOperation(value = "鏁板瓧瀛敓鐪嬫澘-鑾峰彇璁惧鐘舵�佷俊鎭�", notes = "鏁板瓧瀛敓鐪嬫澘-鑾峰彇璁惧鐘舵�佷俊鎭�")
+    @GetMapping("/getAllEquipmentStatus")
+    public Result<?> getAllEquipmentStatus() {
+        List<EquStatus> result = dtBoardService.getAllEquipmentStatus();
+        return Result.OK(result);
+    }
+
 
 }
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 8133429..1fcda59 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
@@ -1,6 +1,7 @@
 package org.jeecg.modules.board.service;
 
 import org.jeecg.modules.board.vo.*;
+import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo;
 import org.jeecg.modules.system.entity.MdcProduction;
 
 import java.util.List;
@@ -32,4 +33,7 @@
 
     List<EquAndon> equAndonList(String productionId);
 
+    List<AndonOrderWebSocketVo> untreatedAndonList();
+
+    List<EquStatus> getAllEquipmentStatus();
 }
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 38d74e0..8733dcd 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
@@ -1,7 +1,11 @@
 package org.jeecg.modules.board.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.constant.WebsocketConst;
 import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.modules.board.mapper.DtBoardMapper;
 import org.jeecg.modules.board.service.IDtBoardService;
@@ -9,6 +13,7 @@
 import org.jeecg.modules.mdc.entity.*;
 import org.jeecg.modules.mdc.service.*;
 import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.jeecg.modules.system.service.ISysDictService;
@@ -379,4 +384,30 @@
         return result;
     }
 
+    @Override
+    public List<AndonOrderWebSocketVo> untreatedAndonList() {
+        List<AndonOrderWebSocketVo> result = andonOrderService.untreatedAndonList();
+        return result;
+    }
+
+    @Override
+    public List<EquStatus> getAllEquipmentStatus() {
+        List<Equipment> equipmentList = equipmentService.list();
+        List<EquStatus> equStatusList = new ArrayList<>();
+        if (equipmentList != null && !equipmentList.isEmpty()) {
+            for (Equipment equipment : equipmentList) {
+                if (equipment.getOporation() == null) {
+                    equipment.setOporation(0);
+                }
+                EquStatus equStatus = new EquStatus();
+                equStatus.setEquipmentId(equipment.getEquipmentid());
+                equStatus.setState(equipment.getOporation());
+                // 閫氳繃equipmentId鑾峰彇璁惧杞﹂棿鍚嶇О
+                String productionName = mdcProductionService.findProName(equipment.getEquipmentid());
+                equStatus.setPlantName(StringUtils.isNotBlank(productionName) ? productionName : StringPool.EMPTY);
+                equStatusList.add(equStatus);
+            }
+        }
+        return equStatusList;
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java
index 6224509..a7d8d2b 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/AndonOrderMapper.java
@@ -15,4 +15,6 @@
 public interface AndonOrderMapper extends BaseMapper<AndonOrder> {
 
     List<AndonOrder> equAndonList(@Param("equipmentIdList") List<String> equipmentIdList);
+
+    List<AndonOrder> untreatedAndonList();
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml
index 36ecafa..9c4dad1 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/AndonOrderMapper.xml
@@ -16,4 +16,23 @@
         ORDER BY
             create_time
     </select>
+    <select id="untreatedAndonList" resultType="org.jeecg.modules.mdc.entity.AndonOrder">
+        SELECT
+            ao.*
+        FROM
+          andon_order ao
+          INNER JOIN (
+            SELECT
+              equipment_id,
+              MAX(create_time) AS max_create_time
+            FROM
+              andon_order
+            WHERE order_status = 1
+            GROUP BY
+          equipment_id) AS latest ON ao.equipment_id = latest.equipment_id
+          AND ao.create_time = latest.max_create_time
+        WHERE order_status = 1
+        ORDER BY
+            ao.create_time
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java
index d392a52..edf2a79 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IAndonOrderService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.board.vo.EquAndon;
 import org.jeecg.modules.mdc.entity.AndonOrder;
+import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo;
 
 import java.util.List;
 
@@ -17,4 +18,6 @@
     void procedureCall(AndonOrder andonOrder);
 
     List<EquAndon> equAndonList(List<String> equipmentIdList);
+
+    List<AndonOrderWebSocketVo> untreatedAndonList();
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java
index 2a6543b..c6e8111 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/AndonOrderServiceImpl.java
@@ -2,6 +2,8 @@
 
 import cn.hutool.core.date.DatePattern;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.compress.utils.Lists;
@@ -19,6 +21,7 @@
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.vo.AndonOrderWebSocketVo;
 import org.jeecg.modules.message.websocket.WebSocket;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysDictService;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.stereotype.Service;
@@ -118,4 +121,33 @@
         }
         return result;
     }
+
+    @Override
+    public List<AndonOrderWebSocketVo> untreatedAndonList() {
+        List<AndonOrderWebSocketVo> result = new ArrayList<>();
+        List<AndonOrder> andonOrderList = this.baseMapper.untreatedAndonList();
+        if (andonOrderList != null && !andonOrderList.isEmpty()) {
+
+            List<String> equipmentIds = andonOrderList.stream().map(AndonOrder::getEquipmentId).collect(Collectors.toList());
+            List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(equipmentIds);
+            Map<String, MdcEquProDto> equipmentIdToProductionIdMap = CollectionUtils.isNotEmpty(equipmentList) ? equipmentList.stream().collect(Collectors.toMap(MdcEquProDto::getEquipmentId, comRateDto -> comRateDto)) : new HashMap<>();
+
+            andonOrderList.forEach(andonOrder -> {
+                AndonOrderWebSocketVo andonOrderWebSocketVo = new AndonOrderWebSocketVo();
+                andonOrderWebSocketVo.setEquipmentId(andonOrder.getEquipmentId());
+                andonOrderWebSocketVo.setCallPersonnel(userService.getById(andonOrder.getOperator()).getRealname());
+                andonOrderWebSocketVo.setCallTime(DateUtils.format(andonOrder.getOperateTime(), DatePattern.NORM_DATE_PATTERN));
+                andonOrderWebSocketVo.setCallReason(andonOrder.getCallReason());
+                andonOrderWebSocketVo.setAndonType("绋嬪簭鍛煎彨");
+                andonOrderWebSocketVo.setPersonResponsible(userService.getById(andonOrder.getResponder()).getRealname());
+                andonOrderWebSocketVo.setRepairTime(StringPool.EMPTY);
+                andonOrderWebSocketVo.setFaultInfo(StringPool.EMPTY);
+                andonOrderWebSocketVo.setType("open");
+                andonOrderWebSocketVo.setPlantName(equipmentIdToProductionIdMap != null && equipmentIdToProductionIdMap.containsKey(andonOrder.getEquipmentId()) ? equipmentIdToProductionIdMap.get(andonOrder.getEquipmentId()).getProductionName() : null);
+                result.add(andonOrderWebSocketVo);
+
+            });
+        }
+        return result;
+    }
 }

--
Gitblit v1.9.3