From cf4622df137c26d238730316651f214fd29ca65f Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 25 七月 2025 16:38:13 +0800
Subject: [PATCH] 修改最新websocket

---
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java                                             |   64 +++---
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java                                             |   11 
 /dev/null                                                                                                                                   |  174 -------------------
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/plannedAmount/service/impl/PlannedAmountImpl.java                |    8 
 JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketServer.java                                                      |  170 ++++++++++++++++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/yield/service/impl/YieldServiceImpl.java                         |   12 
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/energy/service/impl/EnergyConsumptionServiceImpl.java            |   10 
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/AddTask.java                                                 |   25 +-
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/controller/MechanicalMonitorController.java    |   12 
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/service/impl/MechanicalMonitorServiceImpl.java |   12 
 JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketUtils.java                                                       |   31 +++
 11 files changed, 275 insertions(+), 254 deletions(-)

diff --git a/JiuMuMesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java b/JiuMuMesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
deleted file mode 100644
index e7c58c8..0000000
--- a/JiuMuMesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package com.mes.tools;
-
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.stereotype.Component;
-
-import javax.websocket.*;
-import javax.websocket.server.PathParam;
-import javax.websocket.server.ServerEndpoint;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-@ServerEndpoint(value = "/api/talk/{username}")
-@Component("webSocketServer")
-public class WebSocketServer {
-
-
-    public static ConfigurableApplicationContext applicationContext;
-
-    private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
-    private List<String> messages;
-    /**
-     * 璁板綍褰撳墠鍦ㄧ嚎杩炴帴鏁�
-     */
-    public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
-
-    public String username;
-    public Session session;
-
-    public WebSocketServer() {
-        this.messages = new ArrayList<>();
-    }
-
-    /**
-     * 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
-     */
-    @OnOpen
-    public void onOpen(Session session, @PathParam("username") String username) {
-        this.username = username;
-        this.session = session;
-        List<WebSocketServer> webSocketServers = sessionMap.get(username);
-        if (webSocketServers == null) {
-            ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
-            arrayListwebserver.add(this);
-            sessionMap.put(username, arrayListwebserver);
-        } else {
-            webSocketServers.add(this);
-        }
-
-        log.info("鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername={}, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細{}", username, sessionMap.get(username).size());
-
-        // JSONObject result = new JSONObject();
-        // JSONArray array = new JSONArray();
-        // result.set("users", array);
-        // for (Object key : sessionMap.keySet()) {
-        // JSONObject jsonObject = new JSONObject();
-        // jsonObject.set("username", key);
-        // array.add(jsonObject);
-        // }
-
-        // sendAllMessage(JSONUtil.toJsonStr(result)); // 鍚庡彴鍙戦�佹秷鎭粰鎵�鏈夌殑瀹㈡埛绔�
-    }
-
-    /**
-     * 杩炴帴鍏抽棴璋冪敤鐨勬柟娉�
-     */
-    @OnClose
-    public void onClose(Session session, @PathParam("username") String username) {
-        List<WebSocketServer> webSocketServers = sessionMap.get(username);
-        ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
-        if (webSocketServers.size() > 1) {
-            for (WebSocketServer webSocketServer : webSocketServers) {
-                if (webSocketServer != this) {
-                    arrayListwebserver.add(webSocketServer);
-                }
-            }
-            sessionMap.put(username, arrayListwebserver);
-            log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}鐨勫綋鍓嶅湪绾夸汉鏁颁负锛歿}", username, username, sessionMap.get(username).size());
-        } else {
-            sessionMap.remove(username);
-            log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛歿}", username, username, sessionMap.size());
-        }
-
-    }
-
-    /**
-     * 鏀跺埌瀹㈡埛绔秷鎭悗璋冪敤鐨勬柟娉�
-     * 鍚庡彴鏀跺埌瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
-     * onMessage 鏄竴涓秷鎭殑涓浆绔�
-     * 鎺ュ彈 娴忚鍣ㄧ socket.send 鍙戦�佽繃鏉ョ殑 json鏁版嵁
-     *
-     * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
-     */
-    @OnMessage
-    public void onMessage(String message, Session session, @PathParam("username") String username) {
-        log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
-        JSONObject obj = JSONUtil.parseObj(message);
-        String text = obj.getStr("data");
-
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.set("message", text);
-        this.messages.add(text);
-    }
-
-    @OnError
-    public void onError(Session session, Throwable error) {
-        log.error("鍙戠敓閿欒");
-        error.printStackTrace();
-    }
-
-    /**
-     * 鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔�
-     */
-    public void sendMessage(String message) {
-        try {
-            // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
-            if(this.session.isOpen()){
-                int maxChunkSize = 50000; // 瀹氫箟鏈�澶х殑鍒嗗潡澶у皬
-                int length = message.length();
-                if(length>50000){
-                    int chunks = (int) Math.ceil((double) length / maxChunkSize);
-                    //鍒嗗潡鍙戦�佹秷鎭�
-                    for (int i = 0; i < chunks; i++) {
-                        int startIndex = i * maxChunkSize;
-                        int endIndex = Math.min(startIndex + maxChunkSize, length);
-                        String chunk = message.substring(startIndex, endIndex);
-                        // 鍒ゆ柇鏄惁鏄渶鍚庝竴鍧楁秷鎭�
-                        boolean isLastChunk = (i == chunks - 1);
-                        if(isLastChunk==true){
-                            chunk+="<END>";
-                        }
-                        // 鍙戦�佸垎鍧楁秷鎭紝骞朵紶閫掓槸鍚︽槸鏈�鍚庝竴鍧楁秷鎭殑鏍囪瘑
-                        this.session.getBasicRemote().sendText(chunk);
-                    }
-                }else{
-                    this.session.getBasicRemote().sendText(message);
-                }
-
-            }
-        } catch (Exception e) {
-            //log.error("鍙戦�佹秷鎭粰瀹㈡埛绔け璐ワ細{}", e.getMessage(), e);
-        }
-    }
-
-    // /**
-    //  * 鏈嶅姟绔彂閫佹秷鎭粰鎵�鏈夊鎴风
-    //  */
-    // public void sendAllMessage(String message) {
-    //     try {
-    //         for (WebSocketServer webSocketServer : sessionMap.values()) {
-    //             // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
-    //             webSocketServer.sendMessage(message);
-    //         }
-    //     } catch (Exception e) {
-    //         log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
-    //     }
-    // }
-
-    public List<String> getMessages() {
-        return messages;
-
-    }
-
-    public void clearMessages() {
-        messages.clear();
-    }
-
-
-}
diff --git a/JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketServer.java b/JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketServer.java
new file mode 100644
index 0000000..7768f31
--- /dev/null
+++ b/JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketServer.java
@@ -0,0 +1,170 @@
+package com.mes.websocket;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.Semaphore;
+/**
+ * WebSocketServer class
+ *
+ * @author zsh
+ * @date 2025/07/04
+ */
+@ServerEndpoint(value = "/api/talk/{webSocketName}")
+@Component
+public class WebSocketServer {
+
+    /** 鏃ュ織璁板綍鍣紝璁板綍 WebSocketServer 绫昏繍琛屾椂鏃ュ織淇℃伅 */
+    private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
+
+    /** 鍗曟娑堟伅鍏佽鐨勬渶澶у瓧绗︽暟锛堣秴鍑哄垯杩涜鍒嗗潡锛� */
+    private static final int MAX_MESSAGE_SIZE = 50000;
+
+    /** 鐢ㄤ簬闄愬埗骞跺彂杩炴帴鏁伴噺鐨勪俊鍙烽噺锛屾帶鍒舵渶澶у苟鍙戞暟涓� 100 */
+    private static final Semaphore SEMAPHORE = new Semaphore(100);
+
+    /**
+     * 鐢ㄦ埛鍚嶄笌 WebSocket 瀹炰緥鏄犲皠琛紝鏀寔涓�涓敤鎴峰搴斿涓繛鎺ャ��
+     * 浣跨敤绾跨▼瀹夊叏鐨� ConcurrentHashMap 瀛樺偍锛屼繚璇侀珮骞跺彂涓嬬殑鏁版嵁涓�鑷存�с��
+     */
+    public static final Map<String, List<WebSocketServer>> SESSIONMAP = new ConcurrentHashMap<>();
+//    public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
+
+    /** 褰撳墠杩炴帴瀵瑰簲鐨勭敤鎴峰悕 */
+    private String webSocketName;
+
+    /** 褰撳墠杩炴帴鐨� WebSocket 浼氳瘽瀵硅薄 */
+    private Session session;
+
+    /** 绾跨▼瀹夊叏鐨勬秷鎭紦瀛橈紝鐢ㄤ簬璁板綍褰撳墠杩炴帴鏀跺埌鐨勬墍鏈夋秷鎭� */
+    private final List<String> messages = new CopyOnWriteArrayList<>();
+
+
+    /**
+     * 杩炴帴寤虹珛
+     */
+    @OnOpen
+    public void onOpen(Session session, @PathParam("webSocketName") String webSocketName) {
+        this.webSocketName = webSocketName;
+        this.session = session;
+
+        SESSIONMAP.computeIfAbsent(webSocketName, k -> new CopyOnWriteArrayList<>())
+                .add(this);
+
+        log.info("鐢ㄦ埛杩炴帴: webSocketName={}, 褰撳墠浼氳瘽鏁�: {}", webSocketName,
+                SESSIONMAP.getOrDefault(webSocketName, Collections.emptyList()).size());
+    }
+
+    /**
+     * 杩炴帴鍏抽棴
+     */
+    @OnClose
+    public void onClose() {
+        List<WebSocketServer> sessions = SESSIONMAP.get(webSocketName);
+        if (sessions != null) {
+            sessions.remove(this);
+            if (sessions.isEmpty()) {
+                SESSIONMAP.remove(webSocketName);
+            }
+            log.info("鐢ㄦ埛鏂紑: webSocketName={}, 鍓╀綑浼氳瘽鏁�: {}", webSocketName,
+                    SESSIONMAP.getOrDefault(webSocketName, Collections.emptyList()).size());
+        }
+    }
+
+    /**
+     * 鎺ユ敹娑堟伅
+     */
+    @OnMessage
+    public void onMessage(String message) {
+        log.info("鏀跺埌娑堟伅: webSocketName={}, content={}", webSocketName, message);
+        JSONObject obj = JSONUtil.parseObj(message);
+        // 瀛樺偍娑堟伅鍘嗗彶
+        messages.add(obj.getStr("data"));
+    }
+
+    /**
+     * 閿欒澶勭悊
+     */
+    @OnError
+    public void onError(Throwable error) {
+        log.error("WebSocket閿欒: webSocketName={}", webSocketName, error);
+    }
+
+    /**
+     * 鍚戝綋鍓嶇敤鎴风殑鎵�鏈変細璇濆彂閫佹秷鎭�
+     */
+    public void sendToWeb(String webSocketName, String message) {
+        List<WebSocketServer> sessions = SESSIONMAP.get(webSocketName);
+        if (sessions == null) {
+            return;
+        }
+
+        sessions.forEach(ws -> {
+            try {
+                SEMAPHORE.acquire();
+                ws.sendChunkedMessage(message);
+            } catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+            } catch (Exception e) {
+                log.error("鎺ㄩ�佸け璐�: webSocketName={}", webSocketName, e);
+            } finally {
+                SEMAPHORE.release();
+            }
+        });
+    }
+
+    /**
+     * 鍒嗗潡鍙戦�佸ぇ娑堟伅
+     */
+    private void sendChunkedMessage(String message) {
+        if (!session.isOpen()) {
+            return;
+        }
+
+        try {
+            if (message.length() <= MAX_MESSAGE_SIZE) {
+                session.getBasicRemote().sendText(message);
+                return;
+            }
+
+            // 鍒嗗潡鍙戦��
+            int chunks = (int) Math.ceil((double) message.length() / MAX_MESSAGE_SIZE);
+            for (int i = 0; i < chunks; i++) {
+                int start = i * MAX_MESSAGE_SIZE;
+                int end = Math.min(start + MAX_MESSAGE_SIZE, message.length());
+                String chunk = message.substring(start, end) + (i == chunks - 1 ? "<END>" : "");
+                session.getBasicRemote().sendText(chunk);
+            }
+        } catch (IOException e) {
+            log.error("娑堟伅鍙戦�佸け璐�: webSocketName={}", webSocketName, e);
+        }
+    }
+
+    public List<WebSocketServer> getWebSocketServer(String name) {
+        return SESSIONMAP.get(name);
+    }
+    public static Set<String> getOnlineUsers() {
+        return SESSIONMAP.keySet();
+    }
+
+    public List<String> getMessages() {
+        return Collections.unmodifiableList(messages);
+    }
+
+    public void clearMessages() {
+        messages.clear();
+    }
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketUtils.java b/JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketUtils.java
new file mode 100644
index 0000000..fc26672
--- /dev/null
+++ b/JiuMuMesParent/common/servicebase/src/main/java/com/mes/websocket/WebSocketUtils.java
@@ -0,0 +1,31 @@
+package com.mes.websocket;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author : zhoush
+ * @Date: 2025/6/27 10:01
+ * @Description:
+ */
+@Slf4j
+@Component
+public class WebSocketUtils {
+    @Resource
+    WebSocketServer webSocketServer;
+    @Resource
+    ObjectMapper objectMapper;
+
+    public <T> void sendToWeb(String webSocketName, T t) {
+        try {
+            String message = objectMapper.writeValueAsString(t);
+            webSocketServer.sendToWeb(webSocketName, message);
+        } catch (JsonProcessingException ex) {
+            log.info("{}鍙戦�佹暟鎹け璐ワ細{}", "rawGlassStorage", ex.getMessage());
+        }
+    }
+}
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/energy/service/impl/EnergyConsumptionServiceImpl.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/energy/service/impl/EnergyConsumptionServiceImpl.java
index a76bc5f..8ba418f 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/energy/service/impl/EnergyConsumptionServiceImpl.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/energy/service/impl/EnergyConsumptionServiceImpl.java
@@ -1,14 +1,14 @@
 package com.mes.energy.service.impl;
 
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.energy.entity.EnergyConsumption;
 import com.mes.energy.mapper.EnergyConsumptionMapper;
 import com.mes.energy.service.EnergyConsumptionService;
-import com.mes.tools.WebSocketServer;
-import cn.hutool.json.JSONObject;
+import com.mes.websocket.WebSocketServer;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class EnergyConsumptionServiceImpl extends ServiceImpl<EnergyConsumptionMapper, EnergyConsumption> implements EnergyConsumptionService {
@@ -19,10 +19,10 @@
         message.set("type", "energy_update");
         message.set("data", consumption);
 
-        ArrayList<WebSocketServer> servers = WebSocketServer.sessionMap.get("energy");
+        List<WebSocketServer> servers = WebSocketServer.SESSIONMAP.get("energy");
         if (servers != null) {
             for (WebSocketServer server : servers) {
-                server.sendMessage(message.toString());
+                server.sendToWeb("",message.toString());
             }
         }
     }
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/AddTask.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/AddTask.java
index e8f2e13..6af91a1 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/AddTask.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/AddTask.java
@@ -1,25 +1,22 @@
 package com.mes.job;
 
 import cn.hutool.json.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.mes.md.entity.*;
-import com.mes.md.mapper.MachineMapper;
+import com.mes.md.entity.KBBTJPDrawingBP;
+import com.mes.md.entity.Tasking;
 import com.mes.md.mapper.TaskingMapper;
-import com.mes.md.service.*;
-import com.mes.service.ModbusTcp;
-import com.mes.service.PlcAgreement;
-import com.mes.service.PlcParameter;
-import com.mes.tools.WebSocketServer;
-import com.mes.utils.HexUtil;
-import com.mes.utils.Result;
+import com.mes.md.service.KBBTJPDrawingBPService;
+import com.mes.md.service.ProjectService;
+import com.mes.md.service.TaskingLogService;
+import com.mes.websocket.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @author SNG-010
@@ -69,12 +66,12 @@
         JSONObject jsonObject = new JSONObject();
         List<KBBTJPDrawingBP> list =kBBTJPDrawingBPService.notReceiveKBBTJPDrawingBP();
         jsonObject.append("content", list);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("notReceiveTask");
+        List<WebSocketServer> sendwServer = WebSocketServer.SESSIONMAP.get("notReceiveTask");
         if (sendwServer != null) {
             for (WebSocketServer webserver : sendwServer) {
                 if (webserver != null) {
                     try {
-                        webserver.sendMessage(jsonObject.toString());
+                        webserver.sendToWeb("",jsonObject.toString());
                         List<String> messages = webserver.getMessages();
                         if (!messages.isEmpty()) {
                             // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java
index 073b79d..b882c87 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java
@@ -2,24 +2,19 @@
 
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.mes.common.S7objectFlipSlice;
-import com.mes.common.S7objectMachine;
-import com.mes.common.S7objectMarking;
-import com.mes.device.PlcParameterInfo;
-import com.mes.device.PlcParameterObject;
 import com.mes.md.entity.*;
 import com.mes.md.mapper.GlassInfoMapper;
 import com.mes.md.mapper.MachineMapper;
 import com.mes.md.mapper.TaskingMapper;
 import com.mes.md.service.*;
-import com.mes.tools.WebSocketServer;
+import com.mes.websocket.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -50,6 +45,8 @@
     KBBTJPDrawingBPService kBBTJPDrawingBPService;
     @Autowired
     LineConfigurationService lineConfigurationService;
+    @Resource
+    WebSocketServer webSocketServer;
     @Autowired
     private GlassInfoMapper glassInfoMapper;
     public List<Map> sendRecords = new ArrayList<>();
@@ -241,33 +238,42 @@
         this.webSocketServer(jsonObject);
     }
 
-
     public void webSocketServer(JSONObject jsonObject) {
         try {
             String sessionMapName=jsonObject.getJSONArray("sessionMapName").get(0).toString();
-            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(sessionMapName);
-            if (sendwServer != null) {
-                for (WebSocketServer webserver : sendwServer) {
-                    if (webserver != null) {
-                        try {
-                            webserver.sendMessage(jsonObject.toString());
-                            List<String> messages = webserver.getMessages();
-                            if (!messages.isEmpty()) {
-                                // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                                webserver.clearMessages();
-                            }
-                        }catch (Exception e) {
-
-                        }
-                    } else {
-                        log.info("Home is closed");
-                    }
-                }
-            }
-        }catch (Exception e) {
-
+            webSocketServer.sendToWeb(sessionMapName, jsonObject.toString());
+        } catch (Exception ex) {
+            log.info("{}鍙戦�佹暟鎹け璐ワ細{}", "rawGlassStorage", ex.getMessage());
         }
 
     }
+//    public void webSocketServer(JSONObject jsonObject) {
+//        try {
+//            String sessionMapName=jsonObject.getJSONArray("sessionMapName").get(0).toString();
+//            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(sessionMapName);
+//            if (sendwServer != null) {
+//                for (WebSocketServer webserver : sendwServer) {
+//                    try {
+//                        webserver.sendMessage(jsonObject.toString());
+//                        List<String> messages = webserver.getMessages();
+//                        if (!messages.isEmpty()) {
+//                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+//                            webserver.clearMessages();
+//                        }
+//                    }catch (Exception e) {
+//                        if (webserver != null) {
+//
+//                        } else {
+//                            log.info("Home is closed");
+//                        }
+//                    }
+//
+//                }
+//            }
+//        }catch (Exception e) {
+//
+//        }
+//
+//    }
 
 }
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
index 3c04855..1c4d7d0 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
@@ -2,25 +2,20 @@
 
 import cn.hutool.json.JSONObject;
 import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
-import com.mes.common.S7object;
 import com.mes.common.S7objectCleaning;
 import com.mes.common.S7objectMachine;
-import com.mes.common.S7objectMarking;
 import com.mes.device.PlcParameterInfo;
 import com.mes.device.PlcParameterObject;
 import com.mes.md.entity.Machine;
 import com.mes.md.entity.Tasking;
 import com.mes.md.mapper.MachineMapper;
 import com.mes.md.service.TaskingService;
-import com.mes.tools.WebSocketServer;
+import com.mes.websocket.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * @author SNG-010
@@ -67,12 +62,12 @@
         List<Tasking> taskingList=taskingService.findMachineTask(machine);
         jsonObject.append("taskingList", taskingList);
         jsonObject.append("machine", machine);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cleaning");
+        List<WebSocketServer> sendwServer = WebSocketServer.SESSIONMAP.get("cleaning");
         if (sendwServer != null) {
             for (WebSocketServer webserver : sendwServer) {
                 if (webserver != null) {
                     try {
-                        webserver.sendMessage(jsonObject.toString());
+                        webserver.sendToWeb("",jsonObject.toString());
                         List<String> messages = webserver.getMessages();
                         if (!messages.isEmpty()) {
                             // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/controller/MechanicalMonitorController.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/controller/MechanicalMonitorController.java
index 5db0ed7..c3198e8 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/controller/MechanicalMonitorController.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/controller/MechanicalMonitorController.java
@@ -1,17 +1,17 @@
 package com.mes.mechanicalMonitor.controller;
 
+import cn.hutool.json.JSONObject;
 import com.mes.mechanicalMonitor.entity.MechanicalMonitor;
 import com.mes.mechanicalMonitor.service.MechanicalMonitorService;
-import com.mes.tools.WebSocketServer;
 import com.mes.utils.Result;
+import com.mes.websocket.WebSocketServer;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import cn.hutool.json.JSONObject;
-import java.util.ArrayList;
-import java.util.List;
+
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Api(tags = "璁惧鐘舵�佺洃鎺�")
@@ -42,10 +42,10 @@
     @ResponseBody
     public Result updateMechanicalStatus(@RequestBody JSONObject status) {
         try {
-            ArrayList<WebSocketServer> servers = WebSocketServer.sessionMap.get("mechanicalMonitor");
+            List<WebSocketServer> servers = WebSocketServer.SESSIONMAP.get("mechanicalMonitor");
             if (servers != null) {
                 for (WebSocketServer server : servers) {
-                    server.sendMessage(status.toString());
+                    server.sendToWeb("",status.toString());
                 }
             }
             return Result.build(200, "鐘舵�佹洿鏂版垚鍔�", null);
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/service/impl/MechanicalMonitorServiceImpl.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/service/impl/MechanicalMonitorServiceImpl.java
index 140050b..ebfe8fb 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/service/impl/MechanicalMonitorServiceImpl.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/mechanicalMonitor/service/impl/MechanicalMonitorServiceImpl.java
@@ -1,15 +1,15 @@
 package com.mes.mechanicalMonitor.service.impl;
 
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.mechanicalMonitor.entity.MechanicalMonitor;
 import com.mes.mechanicalMonitor.mapper.MechanicalMonitorMapper;
 import com.mes.mechanicalMonitor.service.MechanicalMonitorService;
-import com.mes.tools.WebSocketServer;
-import cn.hutool.json.JSONObject;
+import com.mes.websocket.WebSocketServer;
 import org.springframework.stereotype.Service;
-import java.util.List;
+
 import java.util.Date;
-import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class MechanicalMonitorServiceImpl extends ServiceImpl<MechanicalMonitorMapper, MechanicalMonitor> 
@@ -52,10 +52,10 @@
         message.set("type", "status_change");
         message.set("data", monitor);
         
-        ArrayList<WebSocketServer> servers = WebSocketServer.sessionMap.get("mechanicalMonitor");
+        List<WebSocketServer> servers = WebSocketServer.SESSIONMAP.get("mechanicalMonitor");
         if (servers != null) {
             for (WebSocketServer server : servers) {
-                server.sendMessage(message.toString());
+                server.sendToWeb("",message.toString());
             }
         }
     }
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/plannedAmount/service/impl/PlannedAmountImpl.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/plannedAmount/service/impl/PlannedAmountImpl.java
index bc66678..96b6940 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/plannedAmount/service/impl/PlannedAmountImpl.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/plannedAmount/service/impl/PlannedAmountImpl.java
@@ -5,10 +5,10 @@
 import com.mes.plannedAmount.entity.PlannedAmount;
 import com.mes.plannedAmount.mapper.PlannedAmountMapper;
 import com.mes.plannedAmount.service.PlannedAmountService;
-import com.mes.tools.WebSocketServer;
+import com.mes.websocket.WebSocketServer;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class PlannedAmountImpl extends ServiceImpl<PlannedAmountMapper, PlannedAmount> implements PlannedAmountService {
@@ -19,10 +19,10 @@
         message.set("type", "planned_update");
         message.set("data", value);
 
-        ArrayList<WebSocketServer> servers = WebSocketServer.sessionMap.get("value");
+        List<WebSocketServer> servers = WebSocketServer.SESSIONMAP.get("value");
         if (servers != null) {
             for (WebSocketServer server : servers) {
-                server.sendMessage(message.toString());
+                server.sendToWeb("",message.toString());
             }
         }
     }
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/yield/service/impl/YieldServiceImpl.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/yield/service/impl/YieldServiceImpl.java
index 43ece60..74b3492 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/yield/service/impl/YieldServiceImpl.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/yield/service/impl/YieldServiceImpl.java
@@ -1,18 +1,14 @@
 package com.mes.yield.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.websocket.WebSocketServer;
 import com.mes.yield.entity.Yield;
 import com.mes.yield.mapper.YieldMapper;
 import com.mes.yield.service.YieldService;
-import com.mes.tools.WebSocketServer;
-import cn.hutool.json.JSONObject;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 @Service
 public class YieldServiceImpl extends ServiceImpl<YieldMapper, Yield> implements YieldService {
@@ -23,10 +19,10 @@
         message.set("type", "yield_update");
         message.set("data", yield);
 
-        ArrayList<WebSocketServer> servers = WebSocketServer.sessionMap.get("yield");
+        List<WebSocketServer> servers = WebSocketServer.SESSIONMAP.get("yield");
         if (servers != null) {
             for (WebSocketServer server : servers) {
-                server.sendMessage(message.toString());
+                server.sendToWeb("",message.toString());
             }
         }
     }

--
Gitblit v1.8.0