puzhibing
2025-05-06 4e87f5f570a84621734035217f08882f52809c48
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;
@@ -44,10 +42,13 @@
   @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("链路还未登录校验,拒绝连接");
         log.error("链路还未登录校验,拒绝连接:{}", out.getGnsscenterId());
         ctx.close();
         return;
      }
@@ -124,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);
   }
   
@@ -144,7 +152,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();
@@ -152,7 +160,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_URGE_TODO_REQ.getCode(), body);
      OuterPacket out = new OuterPacket(DataType.DOWN_WARN_MSG.getCode(), inferiorPlatformId, body);
      //获取从链路通道
      Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
      if (null != channel && channel.isActive()) {