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; 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("服务端收到用户username={}的消息:{}", 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); } } 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); } } 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) 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()) { // // 将最后一个消息转换为整数类型的列表