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 f99fee56..ba33e2e1 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 @@ -97,22 +97,22 @@ public class SocketDevResponseService { /** * 成功结束的测点 */ - List successComm = new ArrayList<>(); + Set successComm = new HashSet<>(); /** * 失败的测点 */ - List failComm = new ArrayList<>(); + Set failComm = new HashSet<>(); /** * 成功结束的装置 */ - Set successDevComm = new HashSet<>(); + //Set successDevComm = new HashSet<>(); /** * 失败结束的装置 */ - Set failDevComm = new HashSet<>(); + //Set failDevComm = new HashSet<>(); /** * 保存成功的协议 @@ -565,13 +565,12 @@ public class SocketDevResponseService { switch (Objects.requireNonNull(dictDataEnumByCode)) { case SUCCESS: String result = socketDataMsg.getData(); + successComm.add(result); //通讯校验成功 - if(!param.getOperateType().equals(SourceOperateCodeEnum.TEST_TEM_START.getValue())) { webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1)); } - successDevComm.add(result.split(splitTag)[0]); - successComm.add(result); + System.out.println("设备通讯校验!" + successComm.size() + "=====" + FormalTestManager.monitorIdListComm.size()); @@ -586,8 +585,7 @@ public class SocketDevResponseService { //开始进行协议校验 successComm.clear(); - successDevComm.clear(); - failDevComm.clear(); + failComm.clear(); Map> map = new HashMap<>(1); map.put("deviceList", FormalTestManager.devList); String jsonString = JSON.toJSONString(map); @@ -609,18 +607,13 @@ public class SocketDevResponseService { break; case DEV_ERROR: - failDevComm.add(socketDataMsg.getData()); failComm.addAll(FormalTestManager.devMapMonitorNum.get(socketDataMsg.getData())); - - System.out.println(failDevComm.size() + "xNNN+" + successDevComm.size()); webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0)); - completeJudgment(param); break; case DEV_TARGET: - failDevComm.add(socketDataMsg.getData()); - failComm.addAll(FormalTestManager.devMapMonitorNum.get(socketDataMsg.getData())); - webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0)); + failComm.add(socketDataMsg.getData()); + webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1)); completeJudgment(param); break; @@ -644,16 +637,16 @@ public class SocketDevResponseService { private void completeJudgment(PreDetectionParam param) { - if (successDevComm.size() + failDevComm.size() == FormalTestManager.devList.size() && successComm.size() + failComm.size() == FormalTestManager.monitorIdListComm.size()) { + System.out.println("成功失败测点数量"+successComm.size()+":"+failComm.size()+"监测点总数"+FormalTestManager.monitorIdListComm.size()); + + if (successComm.size() + failComm.size() == FormalTestManager.monitorIdListComm.size()) { //全部装置返回 - if (!failDevComm.isEmpty()) { + if (!failComm.isEmpty()) { CnSocketUtil.quitSend(param); WebSocketVO webSocketVO = new WebSocketVO<>(); webSocketVO.setRequestId(SourceOperateCodeEnum.ERROR_FLOW_END.getValue()); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); } - successDevComm.clear(); - failDevComm.clear(); successComm.clear(); failComm.clear(); } @@ -668,11 +661,11 @@ public class SocketDevResponseService { String s = param.getUserPageId() + handlerStr; switch (Objects.requireNonNull(dictDataEnumByCode)) { case SUCCESS: - webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0)); + if (socketDataMsg.getOperateCode().equals(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue())) { - successDevComm.add(socketDataMsg.getData().split(splitTag)[0]); successComm.add(socketDataMsg.getData()); + webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1)); if (successComm.size() == FormalTestManager.monitorIdListComm.size()) { for (String string : successComm) { //模拟统计协议校验,通讯校验已经校验过,模拟直接推送 @@ -685,7 +678,7 @@ public class SocketDevResponseService { } successComm.clear(); - successDevComm.clear(); + failComm.clear(); Map> map = new HashMap<>(1); map.put("deviceList", FormalTestManager.devList); String jsonString = JSON.toJSONString(map); @@ -700,8 +693,8 @@ public class SocketDevResponseService { } else if (socketDataMsg.getOperateCode().equals(SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue())) { - successDevComm.add(socketDataMsg.getData().split(splitTag)[0]); successComm.add(socketDataMsg.getData()); + webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1)); System.out.println(successComm.size() + "=====" + FormalTestManager.monitorIdListComm.size()); if (successComm.size() == FormalTestManager.monitorIdListComm.size()) { @@ -717,8 +710,7 @@ public class SocketDevResponseService { issueParam.setSourceId(param.getSourceId()); issueParam.setDevIds(param.getDevIds()); issueParam.setScriptId(param.getScriptId()); - successComm.clear(); - successDevComm.clear(); + socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue()); List sourceIssues; if (SourceOperateCodeEnum.FORMAL_TEST.getValue().equals(param.getOperateType()) || SourceOperateCodeEnum.RE_ERROR_TEST.getValue().equals(param.getOperateType())) { @@ -766,6 +758,7 @@ public class SocketDevResponseService { } successComm.clear(); + failComm.clear(); } completeJudgment(param); @@ -777,14 +770,14 @@ public class SocketDevResponseService { webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg)); break; case DEV_ERROR: - failDevComm.add(socketDataMsg.getData()); + failComm.addAll(FormalTestManager.devMapMonitorNum.get(socketDataMsg.getData())); webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0)); - CnSocketUtil.quitSend(param); + completeJudgment(param); break; case DEV_TARGET: - failDevComm.add(socketDataMsg.getData()); - webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0)); - CnSocketUtil.quitSend(param); + failComm.add(socketDataMsg.getData()); + webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1)); + completeJudgment(param); break; case RE_OPERATE: @@ -840,7 +833,14 @@ public class SocketDevResponseService { dataMsg.setCode(SourceResponseCodeEnum.SUCCESS.getCode()); for (SourceCompareDev sourceCompareDev : info) { - dataMsg.setData(sourceCompareDev.getDevName() + splitTag + sourceCompareDev.getLineNum() + SocketManager.valueTypeMap.get(sourceCompareDev.getDesc()) + "校验结果:" + (sourceCompareDev.getIsQualified() ? "合格" : "不合格")); + + String temStr = ""; + if("VRMS".equals(sourceCompareDev.getDesc())){ + temStr = "电压"; + }else if("IRMS".equals(sourceCompareDev.getDesc())){ + temStr = "电流"; + } + dataMsg.setData(sourceCompareDev.getDevName() + splitTag + sourceCompareDev.getLineNum() + temStr + "校验结果:" + (sourceCompareDev.getIsQualified() ? "合格" : "不合格")); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(dataMsg)); } @@ -849,6 +849,7 @@ public class SocketDevResponseService { webSocketVO.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue()); webSocketVO.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue()); webSocketVO.setCode(SourceResponseCodeEnum.PHASE_CHECK_FAIL.getCode()); + webSocketVO.setData(SourceResponseCodeEnum.PHASE_CHECK_FAIL.getMessage()); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); return; } @@ -1227,8 +1228,7 @@ public class SocketDevResponseService { SocketManager.valueTypeMap.clear(); SocketManager.clockMap.clear(); successComm.clear(); - successDevComm.clear(); - failDevComm.clear(); + FormalTestManager.stopFlag = false; FormalTestManager.hasStopFlag = false; FormalTestManager.stopTime = 0; 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 1634dd25..16db405f 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 @@ -16,6 +16,9 @@ import java.util.concurrent.ConcurrentHashMap; public class FormalTestManager { + /** + * key:设备ip,value:当前设备下面的通道序号 + */ public static Map> devMapMonitorNum = new ConcurrentHashMap<>(); /** @@ -31,11 +34,11 @@ public class FormalTestManager { /** - * 装置名称 + * key:设备ip,value:装置名称 */ public static Map devNameMapComm = new HashMap<>(); /** - * 装置id + * key:设备ip,value:装置id */ public static Map devIdMapComm = new HashMap<>();