From b21caa5499c50384f3a3a5dd795a7a0ad197d36f Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 06 十一月 2025 21:26:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java |  190 +++++++++++++++++++----------------------------
 1 files changed, 78 insertions(+), 112 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
index e7a4565..57ec394 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -2,6 +2,8 @@
 
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.alarm.entity.ProductAlarmInfo;
+import com.mes.alarm.service.ProductAlarmInfoService;
 import com.mes.common.config.Const;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
@@ -18,13 +20,18 @@
 import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
 import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
 import com.mes.opctask.service.EdgStorageDeviceTaskService;
-import com.mes.tools.WebSocketServer;
+import com.mes.tools.WebSocketUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -50,11 +57,16 @@
     EngineeringService engineeringService;
     @Resource
     LargenScreenService largenScreenService;
+    @Resource
+    private ProductAlarmInfoService productAlarmInfoService;
 
+    private static final String ALARM_MODULE = "纾ㄨ竟";
+    private static final String ALARM_TYPE1 = "涓�绾垮崸寮忕悊鐗囩";
+    private static final String ALARM_TYPE2 = "浜岀嚎鍗у紡鐞嗙墖绗�";
+    private static final String ALARM_CODE_NOGLASS = "noGlass";
 
-    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
-
-    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+    @Resource
+    private WebSocketUtils webSocketUtils;
 
     @Scheduled(fixedDelay = 1000)
     public void CacheGlassOneTasks() {
@@ -79,21 +91,20 @@
                 .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
         jsonObject.append("taskMessage", taskHistory);
 
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                    List<String> messages = webserver.getMessages();
-                    if (!messages.isEmpty()) {
-                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                        webserver.clearMessages();
-                    }
-                } else {
-                    log.info("Home is closed");
-                }
-            }
+        //鎺ㄩ�佹姤璀︿俊鎭�
+        if (deviceId == 1) {
+            jsonObject.append("alarmInfo", productAlarmInfoService.list(new LambdaQueryWrapper<ProductAlarmInfo>()
+                    .eq(ProductAlarmInfo::getState, Const.LOAD_RAW_GLASS_NEW)
+                    .eq(ProductAlarmInfo::getAlarmModule, ALARM_MODULE)
+                    .eq(ProductAlarmInfo::getAlarmType, ALARM_TYPE1)));
+        } else {
+
+            jsonObject.append("alarmInfo", productAlarmInfoService.list(new LambdaQueryWrapper<ProductAlarmInfo>()
+                    .eq(ProductAlarmInfo::getState, Const.LOAD_RAW_GLASS_NEW)
+                    .eq(ProductAlarmInfo::getAlarmModule, ALARM_MODULE)
+                    .eq(ProductAlarmInfo::getAlarmType, ALARM_TYPE2)));
         }
+        webSocketUtils.sendToWeb(webSocketName, jsonObject);
     }
 
     @Scheduled(fixedDelay = 1000)
@@ -108,21 +119,7 @@
 
     public void currentCutDrawingTaskChild(String webSocketName, int deviceId, int stationCell) {
         JSONObject jsonObject = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                    List<String> messages = webserver.getMessages();
-                    if (!messages.isEmpty()) {
-                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                        webserver.clearMessages();
-                    }
-                } else {
-                    log.info("Home is closed");
-                }
-            }
-        }
+        webSocketUtils.sendToWeb(webSocketName, jsonObject);
     }
 
     @Scheduled(fixedDelay = 1000)
@@ -131,93 +128,62 @@
         //纾ㄨ竟淇℃伅
         List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo();
         jsonObject.append("edgTasks", edgTasks);
-
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgTasks");
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                    List<String> messages = webserver.getMessages();
-                    if (!messages.isEmpty()) {
-                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                        webserver.clearMessages();
-                    }
-                } else {
-                    log.info("edgTasks is closed");
-                }
-            }
-        }
+        webSocketUtils.sendToWeb("edgTasks", jsonObject);
     }
 
-    @Scheduled(fixedDelay = 1000)
+    @Scheduled(fixedDelay = 5000)
     public void querySameDayProductionTask() {
         JSONObject jsonObject = new JSONObject();
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreenProduction");
-        if (sendwServer != null) {
-            List<DailyProductionVO> productionVO = largenScreenService.querySameDayProduction(new DateRequest());
-            jsonObject.append("productionVO", productionVO);
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                    List<String> messages = webserver.getMessages();
-                    if (!messages.isEmpty()) {
-                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                        webserver.clearMessages();
-                    }
-                } else {
-                    log.info("largenScreenProduction is closed");
-                }
-            }
-        }
+        List<DailyProductionVO> productionVO = largenScreenService.querySameDayProduction(new DateRequest());
+        jsonObject.append("productionVO", productionVO);
+        webSocketUtils.sendToWeb("largenScreenProduction", jsonObject);
+
     }
 
-    @Scheduled(fixedDelay = 500)
+    @Scheduled(fixedDelay = 5000)
     public void largenScreen() {
         JSONObject jsonObject = new JSONObject();
         //纾ㄨ竟淇℃伅
+        Date startOfToday = new Date(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String formatted = sdf.format(startOfToday);
+        LocalDate date = LocalDate.parse(formatted); // formatted = "2025-05-23"
+        LocalDateTime start = date.atStartOfDay(); // 2025-05-23 00:00:00
+        LocalDateTime end = date.plusDays(1).atStartOfDay();
+        int edgOneCount = edgGlassTaskInfoService.count(
+                new LambdaQueryWrapper<EdgGlassTaskInfo>()
+                        .lt(EdgGlassTaskInfo::getState, 2)
+                        .eq(EdgGlassTaskInfo::getLine, 1)
+                        .between(EdgGlassTaskInfo::getCreateTime, start, end)
+        );
+        edgOneCount = edgOneCount >= 6 ? 6 : edgOneCount;
+        int edgTwoCount = edgGlassTaskInfoService.count(
+                new LambdaQueryWrapper<EdgGlassTaskInfo>()
+                        .lt(EdgGlassTaskInfo::getState, 2)
+                        .eq(EdgGlassTaskInfo::getLine, 2)
+                        .between(EdgGlassTaskInfo::getCreateTime, start, end)
+        );
+        edgTwoCount = edgTwoCount >= 6 ? 6 : edgTwoCount;
+        jsonObject.append("edgOneCount", edgOneCount);
+        jsonObject.append("edgTwoCount", edgTwoCount);
+        List<Engineering> engineeringOne = engineeringService.list(
+                new LambdaQueryWrapper<Engineering>()
+                        .eq(Engineering::getStationCell, 5)
+                        .eq(Engineering::getState, 0)
+        );
+        List<Engineering> engineeringTow = engineeringService.list(
+                new LambdaQueryWrapper<Engineering>()
+                        .eq(Engineering::getStationCell, 6)
+                        .eq(Engineering::getState, 0)
+        );
+        jsonObject.append("engineeringOne", engineeringOne);
+        jsonObject.append("engineeringTwo", engineeringTow);
+        List<PieChartVO> pieChartVOS = edgStorageCageDetailsService.queryPieChart();
+        jsonObject.append("pieChartVOS", pieChartVOS);
+        List<RunTime> loadRunTimes = edgStorageDeviceTaskHistoryService.queryRunTimes(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        jsonObject.append("loadRunTimes", loadRunTimes);
 
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
-        if (sendwServer != null) {
-            List<EdgGlassTaskInfo> edgOneTasks = edgGlassTaskInfoService.list(
-                    new LambdaQueryWrapper<EdgGlassTaskInfo>()
-                            .lt(EdgGlassTaskInfo::getState, 2)
-                            .eq(EdgGlassTaskInfo::getLine, 1)
-            );
-            List<EdgGlassTaskInfo> edgTwoTasks = edgGlassTaskInfoService.list(
-                    new LambdaQueryWrapper<EdgGlassTaskInfo>()
-                            .lt(EdgGlassTaskInfo::getState, 2)
-                            .eq(EdgGlassTaskInfo::getLine, 2)
-            );
-            jsonObject.append("edgOneTasks", edgOneTasks);
-            jsonObject.append("edgTwoTasks", edgTwoTasks);
-            List<Engineering> engineeringOne = engineeringService.list(
-                    new LambdaQueryWrapper<Engineering>()
-                            .eq(Engineering::getStationCell, 5)
-                            .eq(Engineering::getState, 0)
-            );
-            List<Engineering> engineeringTow = engineeringService.list(
-                    new LambdaQueryWrapper<Engineering>()
-                            .eq(Engineering::getStationCell, 6)
-                            .eq(Engineering::getState, 0)
-            );
-            jsonObject.append("engineeringOne", engineeringOne);
-            jsonObject.append("engineeringTwo", engineeringTow);
-            List<PieChartVO> pieChartVOS = edgStorageCageDetailsService.queryPieChart();
-            jsonObject.append("pieChartVOS", pieChartVOS);
-            List<RunTime> loadRunTimes = edgStorageDeviceTaskHistoryService.queryRunTimes();
-            jsonObject.append("loadRunTimes", loadRunTimes);
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                    List<String> messages = webserver.getMessages();
-                    if (!messages.isEmpty()) {
-                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                        webserver.clearMessages();
-                    }
-                } else {
-                    log.info("largenScreen is closed");
-                }
-            }
-        }
+        webSocketUtils.sendToWeb("largenScreen", jsonObject);
+
     }
 }

--
Gitblit v1.8.0