From 19c823c2c8df4cceee0d827fb598e7f0d9b69154 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 11 三月 2025 18:57:58 +0800
Subject: [PATCH] 修改809对接bug

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/ExgMsgService.java |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 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 a70a715..a2a4eef 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
@@ -7,7 +7,6 @@
 import com.ruoyi.dataInterchange.netty.client.ChannelMap;
 import com.ruoyi.dataInterchange.util.jtt809.common.Jtt809Util;
 import com.ruoyi.dataInterchange.util.jtt809.packet.common.OuterPacket;
-import com.ruoyi.dataInterchange.wapper.UPConnect;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.Channel;
@@ -17,6 +16,7 @@
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.Iterator;
 
 /**
@@ -129,10 +129,16 @@
 	public void up_exg_msg_register(ChannelHandlerContext ctx, int inferiorPlatformId, UPExgMsg exgMsg) {
 		UPExgMsgRegister upExgMsgRegister = new UPExgMsgRegister().decode(exgMsg);
 		upExgMsgRegister.setInferiorPlatformId(inferiorPlatformId);
-		upExgMsgRegister.setCreateTime(LocalDateTime.now());
-		upExgMsgRegisterDao.save(upExgMsgRegister);
+		upExgMsgRegister.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
+		UPExgMsgRegister register = upExgMsgRegisterDao.findByVehicleNo(upExgMsgRegister.getVehicleNo());
+		if (null == register) {
+			upExgMsgRegisterDao.save(upExgMsgRegister);
+		}
 		//上报驾驶员身份识别信息请求
-		down_exg_msg_report_driver_info(ctx, inferiorPlatformId, upExgMsgRegister.getVehicleNo(), upExgMsgRegister.getVehicleColor());
+		UPExgMsgReportDriverInfoAck byVehicleNo = upExgMsgReportDriverInfoAckDao.findByVehicleNo(upExgMsgRegister.getVehicleNo());
+		if (null == byVehicleNo) {
+			down_exg_msg_report_driver_info(ctx, inferiorPlatformId, upExgMsgRegister.getVehicleNo(), upExgMsgRegister.getVehicleColor());
+		}
 	}
 	
 	/**
@@ -153,10 +159,8 @@
 		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
 		if (null != channel && channel.isActive()) {
 			channel.writeAndFlush(out);
-			channel.flush();
 		} else {
 			ctx.writeAndFlush(out);
-			ctx.flush();
 		}
 	}
 	
@@ -169,7 +173,7 @@
 	public void up_exg_msg_real_location(ChannelHandlerContext ctx, int inferiorPlatformId, UPExgMsg exgMsg) {
 		UPExgMsgRealLocation upExgMsgRealLocation = new UPExgMsgRealLocation().decode(exgMsg);
 		upExgMsgRealLocation.setInferiorPlatformId(inferiorPlatformId);
-		upExgMsgRealLocation.setCreateTime(LocalDateTime.now());
+		upExgMsgRealLocation.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
 		upExgMsgRealLocationDao.save(upExgMsgRealLocation);
 	}
 	
@@ -205,11 +209,9 @@
 		Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
 		if (null != channel && channel.isActive()) {
 			channel.writeAndFlush(out);
-			channel.flush();
 		} else {
-			//重新连接从链路
-			UPConnect ipAndPort = ChannelMap.getIpAndPort(inferiorPlatformId);
-			connectReqService.downConnect(inferiorPlatformId, ipAndPort.getDownLinkIp(), ipAndPort.getDownLinkPort(), ipAndPort.getVerifyCode());
+			channel = ChannelMap.getServerChannel(inferiorPlatformId);
+			channel.writeAndFlush(out);
 		}
 	}
 	
@@ -224,7 +226,7 @@
 	public void up_exg_msg_history_location(ChannelHandlerContext ctx, int inferiorPlatformId, UPExgMsg exgMsg) {
 		UPExgMsgHistoryLocation upExgMsgHistoryLocation = new UPExgMsgHistoryLocation().decode(exgMsg);
 		upExgMsgHistoryLocation.setInferiorPlatformId(inferiorPlatformId);
-		upExgMsgHistoryLocation.setCreateTime(LocalDateTime.now());
+		upExgMsgHistoryLocation.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
 		upExgMsgHistoryLocationDao.save(upExgMsgHistoryLocation);
 	}
 	
@@ -239,7 +241,7 @@
 	public void up_exg_msg_report_driver_info_ack(ChannelHandlerContext ctx, int inferiorPlatformId, UPExgMsg exgMsg) {
 		UPExgMsgReportDriverInfoAck upExgMsgReportDriverInfoAck = new UPExgMsgReportDriverInfoAck().decode(exgMsg);
 		upExgMsgReportDriverInfoAck.setInferiorPlatformId(inferiorPlatformId);
-		upExgMsgReportDriverInfoAck.setCreateTime(LocalDateTime.now());
+		upExgMsgReportDriverInfoAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
 		upExgMsgReportDriverInfoAckDao.save(upExgMsgReportDriverInfoAck);
 	}
 	
@@ -254,8 +256,11 @@
 	public void up_exg_msg_take_ewaybill_ack(ChannelHandlerContext ctx, int inferiorPlatformId, UPExgMsg exgMsg) {
 		UPExgMsgTakeEwayBillAck upExgMsgTakeEwayBillAck = new UPExgMsgTakeEwayBillAck().decode(exgMsg);
 		upExgMsgTakeEwayBillAck.setInferiorPlatformId(inferiorPlatformId);
-		upExgMsgTakeEwayBillAck.setCreateTime(LocalDateTime.now());
-		upExgMsgTakeEwayBillAckDao.save(upExgMsgTakeEwayBillAck);
+		upExgMsgTakeEwayBillAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
+		UPExgMsgTakeEwayBillAck byVehicleNo = upExgMsgTakeEwayBillAckDao.findByVehicleNo(upExgMsgTakeEwayBillAck.getVehicleNo());
+		if (null == byVehicleNo) {
+			upExgMsgTakeEwayBillAckDao.save(upExgMsgTakeEwayBillAck);
+		}
 	}
 	
 }

--
Gitblit v1.7.1