装置通讯检测

This commit is contained in:
2024-12-18 16:19:11 +08:00
parent 786586e40c
commit 97e009c84c
2 changed files with 131 additions and 51 deletions

View File

@@ -56,6 +56,34 @@ public class SocketDevResponseService {
*/ */
Map<String, String> devNameMap = new HashMap<>(); Map<String, String> devNameMap = new HashMap<>();
/**
* 所有装置通道信息
*/
List<String> moniterIdListComm = new ArrayList<>();
/**
* 成功结束的装置
*/
List<String> successComm = new ArrayList<>();
/**
* 装置名称
*/
Map<String, String> devNameMapComm = new HashMap<>();
/**
* 所有装置通道信息
*/
List<String> moniterIdListXieyi = new ArrayList<>();
/**
* 成功结束的装置
*/
List<String> successXieyi = new ArrayList<>();
/**
* 装置名称
*/
Map<String, String> devNameMapXieyi = new HashMap<>();
public void deal(PreDetectionParam param, String msg) { public void deal(PreDetectionParam param, String msg) {
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg); SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId()); SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId());
@@ -71,9 +99,7 @@ public class SocketDevResponseService {
case SUCCESS: case SUCCESS:
//通讯校验成功 //通讯校验成功
webSocketHandler.sendMsgToUser(userKey, msg); webSocketHandler.sendMsgToUser(userKey, msg);
Channel channel = SocketManager.getChannelByUserId(userKey);
channel.close();
SocketManager.removeUser(userKey);
break; break;
case UNPROCESSED_BUSINESS: case UNPROCESSED_BUSINESS:
break; break;
@@ -91,10 +117,9 @@ public class SocketDevResponseService {
} }
} }
private Map<String, Map<String, Integer>> reloverMap = new HashMap<>();
private void devComm(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) { private void devComm(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
@@ -105,18 +130,25 @@ public class SocketDevResponseService {
case SUCCESS: case SUCCESS:
//通讯校验成功 //通讯校验成功
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg); webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
String mId = JSON.parseObject(msg).get("data").toString();
successComm.add(mId);
System.out.println(successComm.size()+"====="+moniterIdListComm.size());
if (successComm.size() == moniterIdListComm.size()) {
//开始进行协议校验 //开始进行协议校验
/* List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds()); List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
Map<String, List<PreDetection>> map = new HashMap(1); Map<String, List<PreDetection>> map = new HashMap(1);
map.put("deviceList", devList); map.put("deviceList", devList);
String jsonString = JSON.toJSONString(map); String jsonString = JSON.toJSONString(map);
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue()); socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
socketMsg.setData(jsonString); socketMsg.setData(jsonString);
String json = JSON.toJSONString(socketMsg);*/ String json = JSON.toJSONString(socketMsg);
//
System.out.println("开始协议校验++++++++++"); System.out.println("开始协议校验++++++++++");
//SocketManager.sendMsg(s,json); SocketManager.sendMsg(s, json);
}
break; break;
case UNPROCESSED_BUSINESS: case UNPROCESSED_BUSINESS:
@@ -135,7 +167,10 @@ public class SocketDevResponseService {
socketMsg.setRequestId("quit"); socketMsg.setRequestId("quit");
socketMsg.setOperateCode("QUIT_FUNEND$01"); socketMsg.setOperateCode("QUIT_FUNEND$01");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg)); SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
socketMsg.setOperateCode("QUIT_FUNEND$02");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
socketMsg.setOperateCode("QUIT_FUNEND$03");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
break; break;
default: default:
WebSocketVO webSocketVO = new WebSocketVO(); WebSocketVO webSocketVO = new WebSocketVO();
@@ -148,16 +183,32 @@ public class SocketDevResponseService {
private void devXieyi(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) { private void devXieyi(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode()); SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
SocketMsg socketMsg = new SocketMsg();
String s = param.getUserPageId() + handlerStr;
switch (dictDataEnumByCode) { switch (dictDataEnumByCode) {
case SUCCESS: case SUCCESS:
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg); webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
String s = param.getUserPageId() + handlerStr; System.out.println(successXieyi.size()+"====="+moniterIdListXieyi.size());
String mId = JSON.parseObject(msg).get("data").toString();
successXieyi.add(mId);
if (successXieyi.size() == moniterIdListXieyi.size()) {
//开始相序校验
}
break; break;
case UNPROCESSED_BUSINESS: case UNPROCESSED_BUSINESS:
break; break;
case RE_OPERATE: case RE_OPERATE:
//发起关闭操作 //发起关闭操作
//发起关闭操作
socketMsg.setRequestId("quit");
socketMsg.setOperateCode("QUIT_FUNEND$01");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
socketMsg.setOperateCode("QUIT_FUNEND$02");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
socketMsg.setOperateCode("QUIT_FUNEND$03");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
break; break;
default: default:
WebSocketVO webSocketVO = new WebSocketVO(); WebSocketVO webSocketVO = new WebSocketVO();
@@ -450,6 +501,7 @@ public class SocketDevResponseService {
/** /**
* 计算是否合格 * 计算是否合格
*
* @param split * @param split
* @param data * @param data
* @param name 指标名称 * @param name 指标名称
@@ -509,4 +561,25 @@ public class SocketDevResponseService {
} }
/**
* 初始化集合
*/
public void initList(PreDetectionParam param) {
this.moniterIdListComm = new ArrayList<>();
this.successComm = new ArrayList<>();
this.devNameMapComm = new HashMap<>();
this.moniterIdListXieyi = new ArrayList<>();
this.successXieyi = new ArrayList<>();
this.devNameMapXieyi = new HashMap<>();
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
this.moniterIdListComm = pqDevList.stream().flatMap(x -> x.getMonitorList().stream())
.map(PreDetection.MonitorListDTO::getLineId)
.collect(Collectors.toList());
}
} }

View File

@@ -4,6 +4,7 @@ package com.njcn.gather.detection.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.gather.detection.handler.SocketDevResponseService;
import com.njcn.gather.detection.handler.SocketSourceResponseService; import com.njcn.gather.detection.handler.SocketSourceResponseService;
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum; import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
import com.njcn.gather.detection.pojo.param.PreDetectionParam; import com.njcn.gather.detection.pojo.param.PreDetectionParam;
@@ -45,6 +46,8 @@ public class PreDetectionServiceImpl implements PreDetectionService {
private final IPqSourceService pqSourceService; private final IPqSourceService pqSourceService;
private final IPqScriptDtlsService pqScriptDtlsService; private final IPqScriptDtlsService pqScriptDtlsService;
private final SocketDevResponseService socketDevResponseService;
@Value("${socket.source.ip}") @Value("${socket.source.ip}")
private String ip; private String ip;
@@ -124,6 +127,10 @@ public class PreDetectionServiceImpl implements PreDetectionService {
@Override @Override
public boolean startTest(PreDetectionParam param) { public boolean startTest(PreDetectionParam param) {
socketDevResponseService.initList(param);
Runnable runnable = new Runnable() { Runnable runnable = new Runnable() {
@Override @Override
public void run() { public void run() {