From ed3b91b2d86004d00959d64202e13155c8557c8f Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Wed, 15 Jan 2025 13:13:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/SocketDevResponseService.java | 46 ++++++++++++++++++- .../handler/SocketSourceResponseService.java | 4 -- .../util/socket/FormalTestManager.java | 4 ++ .../socket/cilent/NettyDevClientHandler.java | 3 +- 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java index ba33e2e1..8a3a18c3 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java @@ -834,7 +834,7 @@ public class SocketDevResponseService { for (SourceCompareDev sourceCompareDev : info) { - String temStr = ""; + String temStr = "未知指标"; if("VRMS".equals(sourceCompareDev.getDesc())){ temStr = "电压"; }else if("IRMS".equals(sourceCompareDev.getDesc())){ @@ -901,7 +901,7 @@ public class SocketDevResponseService { CnSocketUtil.quitSend(param); break; case DEV_TARGET: - webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0)); + webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1)); CnSocketUtil.quitSend(param); break; case RE_OPERATE: @@ -919,6 +919,7 @@ public class SocketDevResponseService { } + List allDevTestList = new ArrayList<>(); /** * 正式检测 */ @@ -967,6 +968,7 @@ public class SocketDevResponseService { devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()])); devListRes.add(devLineTestResult); }); + allDevTestList.addAll(devListRes); WebSocketVO> webSocketVO = new WebSocketVO<>(); webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd); @@ -984,8 +986,24 @@ public class SocketDevResponseService { if (tem == 0) { System.out.println(sourceIssue.getType() + sourceIssue.getIndex() + "当前测试大项已经全部结束》》》》》》》》"); //当val为0则认为大项中的小项已经全部跑完,开始组装信息推送给前端 + List resultList = new ArrayList<>(); Map> map = allDevTestList.stream().collect(Collectors.groupingBy(DevLineTestResult::getDeviceId)); + map.forEach((dev,list)->{ + DevLineTestResult devTem = new DevLineTestResult(); + devTem.setDeviceId(dev); + devTem.setDeviceName(list.get(0).getDeviceName()); + Integer[] arr = list.get(0).getChnResult(); + for(int i =0;i arrList = list.stream().map(DevLineTestResult::getChnResult).collect(Collectors.toList()); + Integer[] resultArr = getMaxIntArray(arrList); + devTem.setChnResult(resultArr); + } + resultList.add(devTem); + }); + webSocketVO = new WebSocketVO<>(); webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd); + webSocketVO.setData(resultList); + webSocketVO.setDesc(null); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); } @@ -1006,6 +1024,9 @@ public class SocketDevResponseService { SourceIssue sourceIssues = SocketManager.getSourceList().get(0); if(tem == 0){ webSocketVO.setRequestId(sourceIssues.getType()+ stepBegin); + webSocketVO.setData(new ArrayList<>()); + webSocketVO.setDesc(null); + webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); } @@ -1059,6 +1080,27 @@ public class SocketDevResponseService { } + public Integer[] getMaxIntArray(List arrays) { + int length = arrays.get(0).length; + // 创建结果数组 + Integer[] maxArray = new Integer[length]; + + // 遍历每个位置,寻找最大值 + for (int i = 0; i < length; i++) { + int maxValue = Integer.MIN_VALUE; + for (Integer[] array : arrays) { + int value = array[i]; + if (value > maxValue) { + maxValue = value; + } + } + maxArray[i] = maxValue; + } + return maxArray; + } + + + /** * 退出检测返回 */ diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java index c7b5b523..77f9e8c6 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketSourceResponseService.java @@ -326,10 +326,6 @@ public class SocketSourceResponseService { //告诉前端当前项开始了 WebSocketVO> webSocketVO = new WebSocketVO<>(); - webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1]+stepBegin); - webSocketVO.setData(devListRes); - webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); - webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1]+stepBegin); webSocketVO.setDesc(SocketManager.getSourceList().get(0).getDesc()); webSocketVO.setData(devListRes); diff --git a/detection/src/main/java/com/njcn/gather/detection/util/socket/FormalTestManager.java b/detection/src/main/java/com/njcn/gather/detection/util/socket/FormalTestManager.java index 16db405f..846fba2e 100644 --- a/detection/src/main/java/com/njcn/gather/detection/util/socket/FormalTestManager.java +++ b/detection/src/main/java/com/njcn/gather/detection/util/socket/FormalTestManager.java @@ -1,5 +1,6 @@ package com.njcn.gather.detection.util.socket; +import com.njcn.gather.detection.pojo.vo.DevLineTestResult; import com.njcn.gather.device.device.pojo.vo.PreDetection; import java.util.ArrayList; @@ -33,6 +34,9 @@ public class FormalTestManager { + + + /** * key:设备ip,value:装置名称 */ diff --git a/detection/src/main/java/com/njcn/gather/detection/util/socket/cilent/NettyDevClientHandler.java b/detection/src/main/java/com/njcn/gather/detection/util/socket/cilent/NettyDevClientHandler.java index 0e61b75f..2e3cc67b 100644 --- a/detection/src/main/java/com/njcn/gather/detection/util/socket/cilent/NettyDevClientHandler.java +++ b/detection/src/main/java/com/njcn/gather/detection/util/socket/cilent/NettyDevClientHandler.java @@ -89,6 +89,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler { System.out.println("设备通讯客户端断线"); ctx.close(); SocketManager.removeUser(param.getUserPageId() + dev); + CnSocketUtil.quitSendSource(param); } /** @@ -110,8 +111,6 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler { SocketManager.clockMap.put(sourceIssue.getIndex(), 60L); } - System.out.println("超时函数进入-----》" + sourceIssue.getType() + "----:" + SocketManager.clockMap.get(sourceIssue.getIndex()) + "S"); - if (sourceIssue.getType().equals(DicDataEnum.F.getCode())) { //闪变,正常抛一轮最大等待20分钟超时 if (SocketManager.clockMap.get(sourceIssue.getIndex()) > 1300) {