From cad8d3cdcb6253ef719bb9c85391df7d90d5ac59 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 21 五月 2025 14:44:55 +0800
Subject: [PATCH] 新增公交的接口对接

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 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 43f6387..4951ede 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
@@ -20,6 +20,7 @@
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -48,7 +49,7 @@
 	
 	public void up_warn_msg(ChannelHandlerContext ctx, OuterPacket out) {
 		if (!redisTemplate.hasKey("login:" + out.getGnsscenterId())) {
-			log.error("链路还未登录校验,拒绝连接");
+			log.error("链路还未登录校验,拒绝连接:{}", out.getGnsscenterId());
 			ctx.close();
 			return;
 		}
@@ -112,6 +113,13 @@
 		upWarnMsgUrgeTodoAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
 		upWarnMsgUrgeTodoAckDao.save(upWarnMsgUrgeTodoAck);
 	}
+
+
+
+
+	//走川标的公司
+	private List<Integer> enterprise = Arrays.asList(17458936, 43984060, 13914394);
+
 	
 	/**
 	 * 上报报警信息
@@ -121,16 +129,20 @@
 	 * @param warnMsg
 	 */
 	public void up_warn_msg_adpt_info(ChannelHandlerContext ctx, int inferiorPlatformId, WarnMsg warnMsg) {
-		UPWarnMsgAdptInfo upWarnMsgAdptInfo = new UPWarnMsgAdptInfo().decode(warnMsg);
+		UPWarnMsgAdptInfo upWarnMsgAdptInfo = enterprise.contains(inferiorPlatformId) ? new UPWarnMsgAdptInfo().decode2(warnMsg) : new UPWarnMsgAdptInfo().decode1(warnMsg);
 		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());
+		if(0 == upWarnMsgAdptInfo.getLongitude()){
+			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());
+			}
+		}else if(2 != upWarnMsgAdptInfo.getLevel()){
+			return;
 		}
 		upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
 	}
@@ -140,7 +152,7 @@
 	 * 定时任务督办报警请求
 	 */
 	public void taskUrgeTodo() {
-		List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIsAndPushTimeBefore(0x00, LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
+		List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIsAndLevelNotNullAndPushTimeBefore(0x00, LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
 		for (UPWarnMsgAdptInfo upWarnMsgAdptInfo : list) {
 			down_warn_msg_urge_todo_req(upWarnMsgAdptInfo);
 		}
@@ -152,7 +164,7 @@
 	 */
 	public void down_warn_msg_urge_todo_req(UPWarnMsgAdptInfo upWarnMsgAdptInfo) {
 		if (!redisTemplate.hasKey("login:" + upWarnMsgAdptInfo.getInferiorPlatformId())) {
-			log.error("链路还未登录校验,拒绝连接");
+			log.error("链路还未登录校验,拒绝连接:{}", upWarnMsgAdptInfo.getInferiorPlatformId());
 			return;
 		}
 		int inferiorPlatformId = upWarnMsgAdptInfo.getInferiorPlatformId();
@@ -160,7 +172,7 @@
 		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.getCode(), body);
+		OuterPacket out = new OuterPacket(DataType.DOWN_WARN_MSG.getCode(), inferiorPlatformId, body);
 		//获取从链路通道
 		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
 		if (null != channel && channel.isActive()) {

--
Gitblit v1.7.1