Pu Zhibing
2025-07-18 fdfa8b3b237d8bba8964bda67364f54c08d79432
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
@@ -60,9 +60,17 @@
   @Resource
   private UPExgMsgRealLocationDao upExgMsgRealLocationDao;
   //走川标的公司
   private List<Integer> enterprise = Arrays.asList(17458936, 43984060, 13914394);
   //固定报警类型
   private List<Integer> warnType = Arrays.asList(0x0201, 0x0202, 0x0301, 0x000B, 0x0012, 0x0203, 0x0208, 0x0002, 0x0211, 0x0212, 0x0214, 0x0213, 0x0215, 0x0217, 0x0307);
   private List<Integer> enterprise = Arrays.asList(17458936,13914394,43984060,25439966);
   //富临报警类型
   private List<Integer> fl_warnType = Arrays.asList(0x0201, 0x0012, 0x0202, 0x0203, 0x0208, 0x0002, 0x0212, 0x0214, 0x0213, 0x0215, 0x0217);
   //均辉报警类型
   private List<Integer> jh_warnType = Arrays.asList(0x0201, 0x0012, 0x0202, 0x0203, 0x0208, 0x0002, 0x0212, 0x0214, 0x0213, 0x0215, 0x0217, 0x0307);
   //出租车报警类型
   private List<Integer> cz_warnType = Arrays.asList(0x0001, 0x0004, 0x0005);
   //公交报警类型
   private List<Integer> gj_warnType = Arrays.asList(0x0002, 0x0212, 0x0214, 0x0213, 0x0215, 0x0217, 0x0001);
   //平安报警类型
   private List<Integer> pa_warnType = Arrays.asList(0x0201, 0x0012, 0x0202, 0x0208, 0x0002, 0x0212, 0x0214, 0x0213, 0x0215, 0x0217, 0x0307);
   
   
   public void up_warn_msg(ChannelHandlerContext ctx, OuterPacket out) {
@@ -75,19 +83,19 @@
      DataType dataType = DataType.getDataType(warnMsg.getDataType());
      switch (dataType) {
         case UP_WARN_MSG_URGE_TODO_ACK:
            log.info("报警督办应答消息({}):{}", DataType.UP_WARN_MSG_URGE_TODO_ACK.getCode(), out);
            log.debug("报警督办应答消息({}):{}", DataType.UP_WARN_MSG_URGE_TODO_ACK.getCode(), out);
            up_warn_msg_urge_todo_ack(ctx, out.getGnsscenterId(), warnMsg);
            break;
         case UP_WARN_MSG_ADPT_INFO:
            log.info("上报报警信息({}):{}", DataType.UP_WARN_MSG_ADPT_INFO.getCode(), out);
            log.debug("上报报警信息({}):{}", DataType.UP_WARN_MSG_ADPT_INFO.getCode(), out);
            up_warn_msg_adpt_info(ctx, out.getGnsscenterId(), warnMsg);
            break;
         case UP_WARN_MSG_OPERATION_INFO:
            log.info("上报报警处理信息({}):{}", DataType.UP_WARN_MSG_OPERATION_INFO.getCode(), out);
            log.debug("上报报警处理信息({}):{}", DataType.UP_WARN_MSG_OPERATION_INFO.getCode(), out);
            up_warn_msg_operation_info(ctx, out.getGnsscenterId(), warnMsg);
            break;
         case UP_WARN_MSG_FILELIST_ACK:
            log.info("报警附件目录请求应答({}):{}", DataType.UP_WARN_MSG_FILELIST_ACK.getCode(), out);
            log.debug("报警附件目录请求应答({}):{}", DataType.UP_WARN_MSG_FILELIST_ACK.getCode(), out);
            up_warn_msg_filelist_ack(ctx, out.getGnsscenterId(), warnMsg);
            break;
         default:
@@ -136,6 +144,7 @@
      upWarnMsgUrgeTodoAck.setInferiorPlatformId(inferiorPlatformId);
      upWarnMsgUrgeTodoAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
      upWarnMsgUrgeTodoAckDao.save(upWarnMsgUrgeTodoAck);
      log.info("报警督办应答消息({}):{}", DataType.UP_WARN_MSG_URGE_TODO_ACK.getCode(), JSON.toJSONString(upWarnMsgUrgeTodoAck));
   }
   /**
@@ -147,8 +156,31 @@
    */
   public void up_warn_msg_adpt_info(ChannelHandlerContext ctx, int inferiorPlatformId, WarnMsg warnMsg) {
      UPWarnMsgAdptInfo upWarnMsgAdptInfo = enterprise.contains(inferiorPlatformId) ? new UPWarnMsgAdptInfo().decode2(warnMsg) : new UPWarnMsgAdptInfo().decode1(warnMsg);
      if(!warnType.contains(upWarnMsgAdptInfo.getWarnType())){
         return;
      switch (inferiorPlatformId) {
         case 17458936:
            if(!fl_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               return;
            }
         case 43984060:
            if(!jh_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               return;
            }
         case 17235341:
            if(!cz_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               return;
            }
         case 82296583:
            if(!cz_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               return;
            }
         case 25439966:
            if(!gj_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               return;
            }
         case 13914394:
            if(!pa_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               return;
            }
      }
      upWarnMsgAdptInfo.setResult(0x00);
      upWarnMsgAdptInfo.setInferiorPlatformId(inferiorPlatformId);
@@ -163,6 +195,7 @@
         }
      }
      upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
      log.info("上报报警信息({}):{}", DataType.UP_WARN_MSG_ADPT_INFO.getCode(), JSON.toJSONString(upWarnMsgAdptInfo));
      
      //请求报警附件(川标协议)
      if(enterprise.contains(inferiorPlatformId)){
@@ -195,6 +228,7 @@
      upWarnMsgOperationInfo.setInferiorPlatformId(inferiorPlatformId);
      upWarnMsgOperationInfo.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
      upWarnMsgOperationInfoDao.save(upWarnMsgOperationInfo);
      log.info("上报报警处理信息({}):{}", DataType.UP_WARN_MSG_OPERATION_INFO.getCode(), JSON.toJSONString(upWarnMsgOperationInfo));
      //修改报警处理结果
      UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(upWarnMsgOperationInfo.getInfoId());
      if(null != upWarnMsgAdptInfo){
@@ -215,6 +249,7 @@
      upWarnMsgFileListAck.setInferiorPlatformId(inferiorPlatformId);
      upWarnMsgFileListAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
      upWarnMsgFileListAckDao.save(upWarnMsgFileListAck);
      log.info("报警附件目录请求应答({}):{}", DataType.UP_WARN_MSG_FILELIST_ACK.getCode(), JSON.toJSONString(upWarnMsgFileListAck));
      //修改报警附件数据
      UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(upWarnMsgFileListAck.getInfoId());
      if(upWarnMsgFileListAck.getFileList().size() > 0){
@@ -287,7 +322,7 @@
            }
         }
         
         down_warn_msg_urge_todo_req(upWarnMsgAdptInfo);
//         down_warn_msg_urge_todo_req(upWarnMsgAdptInfo);
      }
   }
   
@@ -377,7 +412,7 @@
               upWarnMsgAdptInfo.setInfoContent(data.getAlarmInfo());
               upWarnMsgAdptInfo.setInferiorPlatformId(25439966);
               upWarnMsgAdptInfo.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
               if(!warnType.contains(upWarnMsgAdptInfo.getWarnType())){
               if(!gj_warnType.contains(upWarnMsgAdptInfo.getWarnType())){
                  return;
               }
               upWarnMsgAdptInfo.setResult(0x00);