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 | 63 +++++++++++++++++-------------- 1 files changed, 35 insertions(+), 28 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 265c9d5..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,26 +1,25 @@ 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; 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; 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; import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.List; /** @@ -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; @@ -111,7 +109,7 @@ public void up_warn_msg_urge_todo_ack(ChannelHandlerContext ctx, int inferiorPlatformId, WarnMsg warnMsg) { UPWarnMsgUrgeTodoAck upWarnMsgUrgeTodoAck = new UPWarnMsgUrgeTodoAck().decode(warnMsg); upWarnMsgUrgeTodoAck.setInferiorPlatformId(inferiorPlatformId); - upWarnMsgUrgeTodoAck.setCreateTime(LocalDateTime.now()); + upWarnMsgUrgeTodoAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8))); upWarnMsgUrgeTodoAckDao.save(upWarnMsgUrgeTodoAck); } @@ -126,7 +124,14 @@ UPWarnMsgAdptInfo upWarnMsgAdptInfo = new UPWarnMsgAdptInfo().decode(warnMsg); upWarnMsgAdptInfo.setResult(0x00); upWarnMsgAdptInfo.setInferiorPlatformId(inferiorPlatformId); - upWarnMsgAdptInfo.setCreateTime(LocalDateTime.now()); + 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,21 +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); - channel.flush(); - } else { - //重新连接从链路 - UPConnect ipAndPort = ChannelMap.getIpAndPort(inferiorPlatformId); - connectReqService.downConnect(inferiorPlatformId, ipAndPort.getDownLinkIp(), ipAndPort.getDownLinkPort(), ipAndPort.getVerifyCode()); + 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