From 998f025a8d5313f94b54497bfc731ae961d52bcb Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 24 七月 2024 08:29:35 +0800
Subject: [PATCH] 消息过长时,websocket分块推送消息 指定钢化改为有一炉正在出片时不允许指定钢化

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java                                                        |   26 +++++++++++++++++++++-----
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |    4 ++--
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java    |    2 +-
 UI-Project/src/utils/WebSocketService.js                                                                                                     |   19 +++++++++++++++----
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                         |    5 +----
 5 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/UI-Project/src/utils/WebSocketService.js b/UI-Project/src/utils/WebSocketService.js
index 432bd9c..310d4c8 100644
--- a/UI-Project/src/utils/WebSocketService.js
+++ b/UI-Project/src/utils/WebSocketService.js
@@ -1,7 +1,7 @@
 // WebSocketService.js
 
 let socket = null;
-
+let messages = '';
 export const initializeWebSocket = (socketUrl, messageHandler) => {
     if (typeof WebSocket === "undefined") {
       console.log("Your browser does not support WebSocket");
@@ -18,13 +18,24 @@
       if (!msg.data) {
         return;
       }
-  
-      const obj = JSON.parse(msg.data);
-  
+      messages += msg.data;
+      const isLastChunk = msg.data.endsWith('<END>');
+      //鏄惁涓烘渶鍚庝竴鍧楁秷鎭�
+      if(isLastChunk) {
+        messages= messages.replace('<END>', '');
+        const obj = JSON.parse(messages);
+        
       // 璋冪敤娑堟伅澶勭悊鍑芥暟锛屽皢鏁版嵁浼犻�掔粰 Vue 缁勪欢
       if (messageHandler) {
         messageHandler(obj);
       }
+        messages='';
+      }
+      
+      
+
+  
+      
     };
   
     return socket;
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
index a67c8f2..fa81984 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
@@ -43,8 +43,6 @@
     public void onOpen(Session session, @PathParam("username") String username) {
         this.username = username;
         this.session = session;
-        this.session.setMaxTextMessageBufferSize(12*1024*1024);
-        this.session.setMaxBinaryMessageBufferSize(12*1024*1024);
         List<WebSocketServer> webSocketServers = sessionMap.get(username);
         if (webSocketServers == null) {
             ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
@@ -98,7 +96,7 @@
      *
      * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
      */
-    @OnMessage(maxMessageSize = 5242880)
+    @OnMessage
     public void onMessage(String message, Session session, @PathParam("username") String username) {
         log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
         JSONObject obj = JSONUtil.parseObj(message);
@@ -121,9 +119,27 @@
     public void sendMessage(String message) {
         try {
             // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
-            this.session.getBasicRemote().sendText(message);
+            if(this.session.isOpen()){
+                int maxChunkSize = 50000; // 瀹氫箟鏈�澶х殑鍒嗗潡澶у皬
+                int length = message.length();
+                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);
+                }
+            }
         } catch (Exception e) {
-            log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+            log.error("鍙戦�佹秷鎭粰瀹㈡埛绔け璐ワ細{}", e.getMessage(), e);
         }
     }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
index d83399e..3dd6f8f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -83,7 +83,7 @@
         if(result==true){
             return Result.build(200,"鎸囧畾閽㈠寲鎴愬姛",1);
         }else {
-            return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔�", 1);
+            return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔★紝璇风瓑寰呴挗鍖栧畬鎴愬啀鎸囧畾閽㈠寲", 1);
         }
     }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index 118e6ac..b1b6d6d 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -353,9 +353,9 @@
     public boolean TemperingGlass(String temperingLayoutId, String engineerId){
         LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper=new LambdaQueryWrapper<>();
         temperingGlassInfoLambdaQueryWrapper
-                .eq(TemperingGlassInfo::getTemperingLayoutId,temperingLayoutId)
-                .eq(TemperingGlassInfo::getEngineerId,engineerId);
+                .eq(TemperingGlassInfo::getState,Const.TEMPERING_NEW);
         List<TemperingGlassInfo> temperingGlassInfoList=temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+
         if(temperingGlassInfoList.size()==0){
             LambdaQueryWrapper<BigStorageCageDetails> wrapper =new LambdaQueryWrapper<>();
             wrapper.eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
index 95616b3..c013e0a 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -33,14 +33,13 @@
     private TemperingGlassInfoService temperingGlassInfoService;
 
     private JSONObject jsonObject = new JSONObject();
-    private JSONObject jsonObject1 = new JSONObject();
     public void queryDataSource1() throws InterruptedException {
         List<Double> carPostion=new ArrayList<>();
         carPostion.add(0.25);
         carPostion.add(0.5);
         jsonObject.append("carPostion",carPostion);
         //鐣岄潰灞曠ず绗煎瓙淇℃伅
-        jsonObject1.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
+        jsonObject.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
 
         //杩涚墖浠诲姟鏁版嵁
         List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectTask(1);
@@ -72,7 +71,6 @@
     @Scheduled(fixedDelay = 1000)
     public void plcStorageCageTask() throws InterruptedException {
         jsonObject = new JSONObject();
-        jsonObject1 = new JSONObject();
         try {
             //鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
             queryDataSource1();
@@ -84,7 +82,6 @@
                 for (WebSocketServer webserver : sendwServer) {
                     if (webserver != null) {
                         webserver.sendMessage(jsonObject.toString());
-                        webserver.sendMessage(jsonObject1.toString());
                         List<String> messages = webserver.getMessages();
                         if (!messages.isEmpty()) {
                             // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�

--
Gitblit v1.8.0