Browse Source

上报上级系统优化

master
lijiuwei 4 months ago
parent
commit
3dfd8acaa3
2 changed files with 40 additions and 47 deletions
  1. +4
    -3
      src/main/java/com/inspect/tcpserver/controller/UpstreamClientController.java
  2. +36
    -44
      src/main/java/com/inspect/tcpserver/tcp/NettyClient.java

+ 4
- 3
src/main/java/com/inspect/tcpserver/controller/UpstreamClientController.java View File

@ -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, "发送消息异常");
}
}


+ 36
- 44
src/main/java/com/inspect/tcpserver/tcp/NettyClient.java View File

@ -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);


Loading…
Cancel
Save