From 2d5bb9694f5ddeb4ac8e397348602f178101fb1e Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Wed, 18 Dec 2024 15:17:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E7=BD=AE=E9=80=9A=E8=AE=AF=E6=A3=80?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/SocketDevResponseService.java | 43 ++++++++++++++++--- .../handler/SocketSourceResponseService.java | 5 ++- .../pojo/enums/SourceOperateCodeEnum.java | 3 ++ .../pojo/enums/SourceResponseCodeEnum.java | 7 +++ .../socket/cilent/NettyDevClientHandler.java | 2 +- .../device/mapper/mapping/PqDevMapper.xml | 6 ++- .../device/device/pojo/vo/PreDetection.java | 2 +- 7 files changed, 57 insertions(+), 11 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 c8b609e3..7815e8af 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 @@ -47,6 +47,25 @@ public class SocketDevResponseService { case YJC_SBTXJY: devComm(socketDataMsg,param,msg); break; + case QUITE: + SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode()); + String userKey = param.getUserPageId()+handlerStr; + switch (dictDataEnumByCode){ + case SUCCESS: + //通讯校验成功 + webSocketHandler.sendMsgToUser(userKey, msg); + Channel channel = SocketManager.getChannelByUserId(userKey); + channel.close(); + SocketManager.removeUser(userKey); + break; + case UNPROCESSED_BUSINESS: + break; + + default: + WebSocketVO webSocketVO = new WebSocketVO(); + break; + } + break; case YJC_XYJY: devXieyi(socketDataMsg,param,msg); break; @@ -70,25 +89,35 @@ public class SocketDevResponseService { //通讯校验成功 webSocketHandler.sendMsgToUser(param.getUserPageId(), msg); //开始进行协议校验 - List devList = iPqDevService.getDevInfo(param.getDevIds()); + /* List devList = iPqDevService.getDevInfo(param.getDevIds()); Map> map = new HashMap(1); map.put("deviceList", devList); String jsonString = JSON.toJSONString(map); socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue()); socketMsg.setData(jsonString); - String json = JSON.toJSONString(socketMsg); - SocketManager.sendMsg(s,json); + String json = JSON.toJSONString(socketMsg);*/ + // + System.out.println("开始协议校验++++++++++"); + //SocketManager.sendMsg(s,json); break; case UNPROCESSED_BUSINESS: break; + + case DEV_ERROR: + webSocketHandler.sendMsgToUser(param.getUserPageId(), msg); + + break; + case DEV_TARGET: + webSocketHandler.sendMsgToUser(param.getUserPageId(), msg); + + break; case RE_OPERATE: //发起关闭操作 - //SocketMsg socketMsg = new SocketMsg(); - // socketMsg.setRequestId("quit"); - // socketMsg.setOperateCode("QUIT_FUNEND$01"); - // SocketManager.sendMsg(s,JSON.toJSONString(socketMsg)); + socketMsg.setRequestId("quit"); + socketMsg.setOperateCode("QUIT_FUNEND$01"); + SocketManager.sendMsg(s,JSON.toJSONString(socketMsg)); break; default: 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 8ea3d125..e03fcb62 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 @@ -81,7 +81,10 @@ public class SocketSourceResponseService { webSocketHandler.sendMsgToUser(param.getUserPageId(), msg); String s = param.getUserPageId() + "_dev"; //开始设备通讯检测 - NettyClient.socketClient(ip, port, param.getUserPageId(), new NettyDevClientHandler(param, socketDevResponseService)); + Channel channel = SocketManager.getChannelByUserId(s); + if(channel==null || !channel.isActive()){ + NettyClient.socketClient(ip, port, param.getUserPageId(), new NettyDevClientHandler(param, socketDevResponseService)); + } List devList = iPqDevService.getDevInfo(param.getDevIds()); Map> map = new HashMap(1); map.put("deviceList", devList); diff --git a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java index c21f1da8..b670c1aa 100644 --- a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java @@ -33,6 +33,9 @@ public enum SourceOperateCodeEnum { YJC_XYJY("yjc_xyjy", "预检测_协议校验"), YJC_XUJY("YJC_xujy", "预检测_相序校验"), + + QUITE("quit","预监测_关闭设备通讯检测") + ; private String value; diff --git a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceResponseCodeEnum.java b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceResponseCodeEnum.java index b98e288d..64146b2c 100644 --- a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceResponseCodeEnum.java +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceResponseCodeEnum.java @@ -25,7 +25,14 @@ public enum SourceResponseCodeEnum { UNABLE_TO_RESPOND(10529, "源状态有误,无法响应报文(例如源处于输出状态,无法响应初始化报文)"), + //通讯模块 + DEV_ERROR(10550,"设备连接异常"), + DEV_TARGET(10551,"设备触发报告异常"), RE_OPERATE(10552,"重复的初始化操作"), + COMMUNICATION_ERR(10553,"通讯模块通讯异常"), + DATA_RESOLVE(10554,"报文解析异常"), + + //自定义前端展示消息 SOCKET_ERROR(20000,"连接服务端失败") 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 68f67eb0..a62e3020 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 @@ -63,7 +63,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler { */ @Override public void channelInactive(ChannelHandlerContext ctx) { - System.out.println("客户端重新连接成功"); + //System.out.println("客户端断线"); //SocketManager.addUser(webUser,ctx.channel()); } diff --git a/device/src/main/java/com/njcn/gather/device/device/mapper/mapping/PqDevMapper.xml b/device/src/main/java/com/njcn/gather/device/device/mapper/mapping/PqDevMapper.xml index fd01e2cd..328c7bbc 100644 --- a/device/src/main/java/com/njcn/gather/device/device/mapper/mapping/PqDevMapper.xml +++ b/device/src/main/java/com/njcn/gather/device/device/mapper/mapping/PqDevMapper.xml @@ -12,6 +12,8 @@ + + AND d.Id in diff --git a/device/src/main/java/com/njcn/gather/device/device/pojo/vo/PreDetection.java b/device/src/main/java/com/njcn/gather/device/device/pojo/vo/PreDetection.java index c0ff816f..2e29b491 100644 --- a/device/src/main/java/com/njcn/gather/device/device/pojo/vo/PreDetection.java +++ b/device/src/main/java/com/njcn/gather/device/device/pojo/vo/PreDetection.java @@ -34,7 +34,7 @@ public class PreDetection { /** * 装置ip */ - @JSONField(name = "devIP", serialize = false) + @JSONField(name = "devIP") private String devIP; /**