From 3d4eeb82dd61f8951616dece2425e870116bc23d Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 04 四月 2025 15:56:37 +0800
Subject: [PATCH] 提交最终版本和配置线上环境

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java |   55 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 32 insertions(+), 23 deletions(-)

diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
index 42c2f6e..43f6387 100644
--- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
+++ b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
@@ -1,12 +1,10 @@
 package com.ruoyi.dataInterchange.server;
 
 import com.alibaba.fastjson.JSON;
+import com.ruoyi.dataInterchange.dao.UPExgMsgRealLocationDao;
 import com.ruoyi.dataInterchange.dao.UPWarnMsgAdptInfoDao;
 import com.ruoyi.dataInterchange.dao.UPWarnMsgUrgeTodoAckDao;
-import com.ruoyi.dataInterchange.model.DOWNWarnMsgUrgeTodoReq;
-import com.ruoyi.dataInterchange.model.UPWarnMsgAdptInfo;
-import com.ruoyi.dataInterchange.model.UPWarnMsgUrgeTodoAck;
-import com.ruoyi.dataInterchange.model.WarnMsg;
+import com.ruoyi.dataInterchange.model.*;
 import com.ruoyi.dataInterchange.model.enu.DataType;
 import com.ruoyi.dataInterchange.netty.client.ChannelMap;
 import com.ruoyi.dataInterchange.util.jtt809.common.Jtt809Util;
@@ -16,6 +14,7 @@
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandlerContext;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -40,8 +39,19 @@
 	@Resource
 	private UPWarnMsgAdptInfoDao upWarnMsgAdptInfoDao;
 	
+	@Resource
+	private RedisTemplate redisTemplate;
+	
+	@Resource
+	private UPExgMsgRealLocationDao upExgMsgRealLocationDao;
+	
 	
 	public void up_warn_msg(ChannelHandlerContext ctx, OuterPacket out) {
+		if (!redisTemplate.hasKey("login:" + out.getGnsscenterId())) {
+			log.error("链路还未登录校验,拒绝连接");
+			ctx.close();
+			return;
+		}
 		WarnMsg warnMsg = getWarnMsg(out);
 		DataType dataType = DataType.getDataType(warnMsg.getDataType());
 		switch (dataType) {
@@ -52,18 +62,6 @@
 			case UP_WARN_MSG_ADPT_INFO:
 				log.info("上报报警信息({}):{}", DataType.UP_WARN_MSG_ADPT_INFO.getCode(), out);
 				up_warn_msg_adpt_info(ctx, out.getGnsscenterId(), warnMsg);
-				break;
-			case UP_CTRL_MSG_MONITOR_VEHICLE_ACK:
-				log.info("车辆单向监听应答消息({}):{}", DataType.UP_CTRL_MSG_MONITOR_VEHICLE_ACK.getCode(), out);
-				break;
-			case UP_CTRL_MSG_TAKE_PHOTO_ACK:
-				log.info("车辆牌照应答消息({}):{}", DataType.UP_CTRL_MSG_TAKE_PHOTO_ACK.getCode(), out);
-				break;
-			case UP_CTRL_MSG_TEXT_INFO_ACK:
-				log.info("下发车辆报文应答消息({}):{}", DataType.UP_CTRL_MSG_TEXT_INFO_ACK.getCode(), out);
-				break;
-			case UP_CTRL_MSG_EMERGENCY_MONITORING_ACK:
-				log.info("车辆应急接入监管平台应答消息({}):{}", DataType.UP_CTRL_MSG_EMERGENCY_MONITORING_ACK.getCode(), out);
 				break;
 			default:
 				break;
@@ -127,6 +125,13 @@
 		upWarnMsgAdptInfo.setResult(0x00);
 		upWarnMsgAdptInfo.setInferiorPlatformId(inferiorPlatformId);
 		upWarnMsgAdptInfo.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
+		UPExgMsgRealLocation upExgMsgRealLocation = upExgMsgRealLocationDao.findByVehicleNoOrderByCreateTimeDesc(upWarnMsgAdptInfo.getVehicleNo());
+		if (null != upExgMsgRealLocation) {
+			GnssData gnssData = upExgMsgRealLocation.getGnssData();
+			upWarnMsgAdptInfo.setSpeed(gnssData.getVec1());
+			upWarnMsgAdptInfo.setLongitude(gnssData.getLon());
+			upWarnMsgAdptInfo.setLatitude(gnssData.getLat());
+		}
 		upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
 	}
 	
@@ -135,7 +140,7 @@
 	 * 定时任务督办报警请求
 	 */
 	public void taskUrgeTodo() {
-		List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIs(0x00);
+		List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIsAndPushTimeBefore(0x00, LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
 		for (UPWarnMsgAdptInfo upWarnMsgAdptInfo : list) {
 			down_warn_msg_urge_todo_req(upWarnMsgAdptInfo);
 		}
@@ -146,19 +151,23 @@
 	 * 报警督办请求
 	 */
 	public void down_warn_msg_urge_todo_req(UPWarnMsgAdptInfo upWarnMsgAdptInfo) {
+		if (!redisTemplate.hasKey("login:" + upWarnMsgAdptInfo.getInferiorPlatformId())) {
+			log.error("链路还未登录校验,拒绝连接");
+			return;
+		}
 		int inferiorPlatformId = upWarnMsgAdptInfo.getInferiorPlatformId();
 		DOWNWarnMsgUrgeTodoReq downWarnMsgUrgeTodoReq = new DOWNWarnMsgUrgeTodoReq().build(upWarnMsgAdptInfo);
-		log.info("报警督办请求({}):{}", DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode(), JSON.toJSONString(downWarnMsgUrgeTodoReq));
+		downWarnMsgUrgeTodoReq.setDataType(DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode());
+		downWarnMsgUrgeTodoReq.setDataLength(92);
 		byte[] body = downWarnMsgUrgeTodoReq.encode();
-		OuterPacket out = new OuterPacket(DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode(), body);
+		OuterPacket out = new OuterPacket(DataType.DOWN_WARN_MSG.getCode(), body);
 		//获取从链路通道
 		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
 		if (null != channel && channel.isActive()) {
 			channel.writeAndFlush(out);
-		} else {
-			channel = ChannelMap.getServerChannel(inferiorPlatformId);
-			channel.writeAndFlush(out);
+			log.info("报警督办请求({}):{}", DataType.DOWN_WARN_MSG_URGE_TODO_REQ.getCode(), JSON.toJSONString(downWarnMsgUrgeTodoReq));
 		}
-		
+		upWarnMsgAdptInfo.setPushTime(LocalDateTime.now().plusDays(7).toEpochSecond(ZoneOffset.ofHours(8)));
+		upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
 	}
 }

--
Gitblit v1.7.1