From 3dfd8acaa30d13a8fb740ed539a0463c91ae5851 Mon Sep 17 00:00:00 2001 From: lijiuwei Date: Tue, 12 Aug 2025 10:56:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E4=B8=8A=E7=BA=A7=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UpstreamClientController.java | 7 +- .../inspect/tcpserver/tcp/NettyClient.java | 80 +++++++++---------- 2 files changed, 40 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/inspect/tcpserver/controller/UpstreamClientController.java b/src/main/java/com/inspect/tcpserver/controller/UpstreamClientController.java index e830b56..1ef5138 100644 --- a/src/main/java/com/inspect/tcpserver/controller/UpstreamClientController.java +++ b/src/main/java/com/inspect/tcpserver/controller/UpstreamClientController.java @@ -3,7 +3,6 @@ package com.inspect.tcpserver.controller; import com.alibaba.fastjson.JSONObject; import com.inspect.tcpserver.domain.AjaxResult; import com.inspect.tcpserver.tcp.NettyClient; -import com.inspect.tcpserver.util.Color; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.MDC; @@ -35,6 +34,8 @@ public class UpstreamClientController { */ @PostMapping("sendMsg") public AjaxResult sendMsg(String uuid, @RequestBody String data) { + log.info("sendMsg: " + data); + if (StringUtils.isBlank(data)) { return AjaxResult.fail("500", "消息为空"); } @@ -42,6 +43,7 @@ public class UpstreamClientController { try { JSONObject.parseObject(data); } catch (Exception e) { + log.error("error", e); return AjaxResult.fail("500", "消息体解析失败"); } @@ -49,11 +51,10 @@ public class UpstreamClientController { data = data.replaceAll("sendCode", "SendCode"); data = data.replaceAll("receiveCode", "ReceiveCode"); data = data.replaceAll("type", "Type"); - log.info("###### 会话:{}, 巡视主机客户端接收到消息, 发送到上级 ######\n{}", uuid, data); nettyClient.sendJsonMessage(uuid, data); return AjaxResult.success(); } catch (Exception e) { - log.error(Color.RED + "###### 会话:{}, 客户端发送消息捕获异常:{} ######" + Color.END, uuid, e.getMessage()); + log.error("error", e); return AjaxResult.fail(500, "发送消息异常"); } } diff --git a/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java b/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java index ccc6078..e0bc8d7 100644 --- a/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java +++ b/src/main/java/com/inspect/tcpserver/tcp/NettyClient.java @@ -138,7 +138,8 @@ public class NettyClient { //发送消息 public void sendMsgToUpper(boolean request, String uuid, String xml) { - if (client != null && !StringUtil.isNullOrEmpty(xml)) { + log.info("###### 会话:{}, 向上级系统发送消息:{} ######\n{}", uuid, xml); + if (client != null) { ByteBuf byteBuf = Unpooled.copiedBuffer(xml, CharsetUtil.UTF_8); int length = byteBuf.readableBytes(); ByteBuf allBuf = Unpooled.buffer(length + ConfigType.dataLength); @@ -233,7 +234,6 @@ public class NettyClient { case RobotType.robotFz: case RobotType.robotIr: case RobotType.robotPtz: -// json = downXml2Json.RobotControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, RobotControl.class); break; case UAVType.uav: @@ -241,31 +241,24 @@ public class NettyClient { case UAVType.uavKz: case UAVType.uavYt: case UAVType.nest: -// json = downXml2Json.UavControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, RobotControl.class); break; case TaskType.taskControl: -// json = downXml2Json.BaseControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, BaseControl.class); break; case TaskType.taskSend: -// json = downXml2Json.TaskSendControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, TaskSendControl.class); break; case TaskType.lendonTask: -// json = downXml2Json.LinkageTaskControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, LinkageTaskControl.class); break; case TaskType.taskArea: -// json = downXml2Json.AreaControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, AreaControl.class); break; case ModelType.modelSync: -// json = downXml2Json.BaseControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, BaseControl.class); break; case QueryType.queryResult: -// json = downXml2Json.ResultControlXml2Json(xml); json = downXml2Json.DownStreamJson2Xml(binaryModel.uuid, binaryModel.id, xml, ResultControl.class); break; default: @@ -287,7 +280,7 @@ public class NettyClient { Result body = ajaxResultResponseEntity.getBody(); if (null == body) { - log.error("接收上级系统下发的指令,转发到应用业务端处理后,返回的响应体为空"); + log.info("接收上级系统下发的指令,转发到应用业务端处理后,返回的响应体为空"); return; } @@ -295,6 +288,11 @@ public class NettyClient { String msg = body.getMsg(); String data = body.getData(); + if (StringUtils.isBlank(data)) { + log.info("接收上级系统下发的指令,转发到应用业务端处理后,返回的内容为空"); + return; + } + log.info("接收到上级系统下发指令,转发到巡视主机,成功,返回code:{},msg:{},data:{}", bodyCode, msg, data); // 响应巡视主机 @@ -461,17 +459,16 @@ public class NettyClient { public void sendRegisterToUpper() { String xml = createRegHeart(false); - log.info("send register xml to upperServer: {}", xml); + log.info("###### 向上级系统发送注册消息 ######"); sendMsgToUpper(true, "", xml); } public void sendHeartbeatToUpper() { String xml = createRegHeart(true); - log.info("send heartbeat xml to upperServer: {}", xml); + log.info("###### 向上级系统发送心跳消息 ######"); sendMsgToUpper(true, "", xml); } - /** * 处理身份 * 处理sendcode 为本机 @@ -495,6 +492,16 @@ public class NettyClient { public void sendJsonMessage(String uuid, String json) { JSONObject obj = JSONObject.parseObject(json); if (obj != null) { + if(obj.get("device_file_path") != null) { + String response = createDownResponse(obj); + String xml = upJson2Xml.UpStreamJson2Xml(response, ModelControl.class); + xml = xml.replaceAll(deviceAlias, alias); + + log.info("###### 会话:{}, 向上级系统发送点位模型上报指令 ######", uuid); + sendMsgToUpper(true, uuid, xml); + return; + } + // 处理身份 obj = handleIdentity(obj); json = obj.toJSONString(); @@ -502,84 +509,69 @@ public class NettyClient { String xml = null; switch (type) { case PushType.environment: -// xml = upJson2Xml.EnvironmentControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, EnvironmentControl.class); - log.info("###### 会话:{}, 向上级系统发送环境数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送环境数据 ######", uuid); break; case PushType.alarm: -// xml = upJson2Xml.AlarmControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, AlarmControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视设备异常告警数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视设备异常告警数据 ######", uuid); break; case PushType.analysisAlarm: -// xml = upJson2Xml.AnalysisControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, AnalysisControl.class); - log.info("###### 会话:{}, 向上级系统发送告警数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送告警数据 ######", uuid); break; case PushType.location: -// xml = upJson2Xml.LocationControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, LocationControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视设备坐标 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视设备坐标 ######", uuid); break; case PushType.monitor: -// xml = upJson2Xml.MonitorControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, MonitorControl.class); - log.info("###### 会话:{}, 向上级系统发送静默监视告警数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送静默监视告警数据 ######", uuid); break; case PushType.nestRunning: -// xml = upJson2Xml.NestRunningJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, NestRunningControl.class); - log.info("###### 会话:{}, 向上级系统发送无人机机巢运行数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送无人机机巢运行数据 ######", uuid); break; case PushType.nestState: -// xml = upJson2Xml.NestStateJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, NestStateControl.class); - log.info("###### 会话:{}, 向上级系统发送无人机机巢状态数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送无人机机巢状态数据 ######", uuid); break; case PushType.patrolDeviceState: -// xml = upJson2Xml.PatrolDeviceStateControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, PatrolDeviceStateControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视设备状态数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视设备状态数据 ######", uuid); break; case PushType.patrolDeviceRunning: -// xml = upJson2Xml.PatrolDeviceRunningControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, PatrolDeviceRunningControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视设备运行数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视设备运行数据 ######", uuid); break; case PushType.result: -// xml = upJson2Xml.TaskResultControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, TaskResultControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视结果 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视结果 ######", uuid); break; case PushType.taskState: -// xml = upJson2Xml.TaskStateControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, TaskStateControl.class); - log.info("###### 会话:{}, 向上级系统发送任务状态数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送任务状态数据 ######", uuid); break; case PushType.total: -// xml = upJson2Xml.ReportControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, ReportControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视设备统计信息上报 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视设备统计信息上报 ######", uuid); break; case PushType.route: -// xml = upJson2Xml.RouteControlJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, RouteControl.class); - log.info("###### 会话:{}, 向上级系统发送巡视路线 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送巡视路线 ######", uuid); break; case SystemType.system: -// xml = upJson2Xml.ModelJson2Xml(json); xml = upJson2Xml.UpStreamJson2Xml(json, ModelControl.class); - log.info("###### 会话:{}, 向上级系统发送系统数据 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送系统数据 ######", uuid); break; case ModelType.modelUpdate: -// xml = upJson2Xml.UpdateModelJson2Xml(json); - //xml = up.ModelJson2Xml(json, UpdateModelControl.class); xml = upJson2Xml.UpStreamJson2Xml(json, UpdateModelControl.class); - log.info("###### 会话:{}, 向上级系统发送模型更新上报指令 ######\n{}", uuid, xml); + log.info("###### 会话:{}, 向上级系统发送模型更新上报指令 ######", uuid); break; default: log.info("###### 会话:{}, 应用向上级系统发送消息, 类型: [{}] 不在处理范围内, 不予处理 ######", uuid, type); } + if (!StringUtils.isEmpty(xml)) { // 将设备别名转换为上级别名 xml = xml.replaceAll(deviceAlias, alias);