From 4ad32c37e3317fb6cb7cbfb034b53d3220c27db4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 30 五月 2025 17:59:16 +0800
Subject: [PATCH] 优化报警

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/ExgMsgService.java |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/ExgMsgService.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/ExgMsgService.java
index 6ffff42..ea9ab1d 100644
--- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/ExgMsgService.java
+++ b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/ExgMsgService.java
@@ -55,7 +55,7 @@
 	
 	public void up_exg_msg(ChannelHandlerContext ctx, OuterPacket out) {
 		if (!redisTemplate.hasKey("login:" + out.getGnsscenterId())) {
-			log.error("链路还未登录校验,拒绝连接");
+			log.error("链路还未登录校验,拒绝连接:{}", out.getGnsscenterId());
 			ctx.close();
 			return;
 		}
@@ -177,7 +177,7 @@
 		downExgMsgReportDriverInfo.setDataType(DataType.DOWN_EXG_MSG_REPORT_DRIVER_INFO.getCode());
 		downExgMsgReportDriverInfo.setDataLength(0);
 		byte[] body = downExgMsgReportDriverInfo.encode();
-		OuterPacket out = new OuterPacket(DataType.DOWN_EXG_MSG.getCode(), body);
+		OuterPacket out = new OuterPacket(DataType.DOWN_EXG_MSG.getCode(), inferiorPlatformId, body);
 		//获取从链路通道
 		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
 		if (null != channel && channel.isActive()) {
@@ -201,6 +201,11 @@
 		GnssDataVo vo = new GnssDataVo();
 		BeanUtils.copyProperties(upExgMsgRealLocation.getGnssData(), vo);
 		redisTemplate.opsForValue().set("location:" + upExgMsgRealLocation.getVehicleNo(), vo);
+		//查询车辆信息,没有则主动发起请求
+		UPExgMsgRegister msgRegister = upExgMsgRegisterDao.findByVehicleNo(upExgMsgRealLocation.getVehicleNo());
+		if (null == msgRegister) {
+			down_base_msg_vehicle_added(inferiorPlatformId, upExgMsgRealLocation.getVehicleNo(), upExgMsgRealLocation.getVehicleColor());
+		}
 	}
 	
 	
@@ -223,7 +228,7 @@
 	 */
 	public void down_exg_msg_take_ewaybill_req(int inferiorPlatformId, String vehicleNo, int VehicleColor) {
 		if (!redisTemplate.hasKey("login:" + inferiorPlatformId)) {
-			log.error("链路还未登录校验,拒绝连接");
+			log.error("链路还未登录校验,拒绝连接:{}", inferiorPlatformId);
 			return;
 		}
 		DOWNExgMsgTakeEwaybillReq downExgMsgTakeEwaybillReq = new DOWNExgMsgTakeEwaybillReq();
@@ -233,7 +238,7 @@
 		downExgMsgTakeEwaybillReq.setDataLength(0);
 		
 		byte[] body = downExgMsgTakeEwaybillReq.encode();
-		OuterPacket out = new OuterPacket(DataType.DOWN_EXG_MSG.getCode(), body);
+		OuterPacket out = new OuterPacket(DataType.DOWN_EXG_MSG.getCode(), inferiorPlatformId, body);
 		//获取从链路通道
 		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
 		if (null != channel && channel.isActive()) {
@@ -303,4 +308,29 @@
 		}
 	}
 	
+	
+	/**
+	 * 补报车辆静态信息
+	 */
+	public void down_base_msg_vehicle_added(int inferiorPlatformId, String vehicleNo, int VehicleColor) {
+		if (!redisTemplate.hasKey("login:" + inferiorPlatformId)) {
+			log.error("链路还未登录校验,拒绝连接:{}", inferiorPlatformId);
+			return;
+		}
+		DOWNBaseMsgVehicleAdded downBaseMsgVehicleAdded = new DOWNBaseMsgVehicleAdded();
+		downBaseMsgVehicleAdded.setVehicleNo(vehicleNo);
+		downBaseMsgVehicleAdded.setVehicleColor(VehicleColor);
+		downBaseMsgVehicleAdded.setDataType(DataType.DOWN_BASE_MSG_VEHICLE_ADDED.getCode());
+		downBaseMsgVehicleAdded.setDataLength(0);
+		
+		byte[] body = downBaseMsgVehicleAdded.encode();
+		OuterPacket out = new OuterPacket(DataType.DOWN_BASE_MSG.getCode(), inferiorPlatformId, body);
+		//获取从链路通道
+		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
+		if (null != channel && channel.isActive()) {
+			channel.writeAndFlush(out);
+			log.info("补报车辆静态信息请求({}):{}", DataType.DOWN_BASE_MSG_VEHICLE_ADDED.getCode(), JSON.toJSONString(downBaseMsgVehicleAdded));
+		}
+	}
+	
 }

--
Gitblit v1.7.1