puzhibing
2025-06-19 b31091da56446f57d21c41d009ce7b55a70a9789
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java
@@ -197,8 +197,10 @@
      upWarnMsgOperationInfoDao.save(upWarnMsgOperationInfo);
      //修改报警处理结果
      UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(upWarnMsgOperationInfo.getInfoId());
      upWarnMsgAdptInfo.setResult(upWarnMsgOperationInfo.getResult());
      upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
      if(null != upWarnMsgAdptInfo){
         upWarnMsgAdptInfo.setResult(upWarnMsgOperationInfo.getResult());
         upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
      }
   }
   
   
@@ -213,22 +215,26 @@
      upWarnMsgFileListAck.setInferiorPlatformId(inferiorPlatformId);
      upWarnMsgFileListAck.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
      upWarnMsgFileListAckDao.save(upWarnMsgFileListAck);
      //修改报警处理结果
      //修改报警附件数据
      UPWarnMsgAdptInfo upWarnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(upWarnMsgFileListAck.getInfoId());
      StringJoiner joiner = new StringJoiner(",");
      upWarnMsgFileListAck.getFileList().forEach(file->{
         if(file.getFileType() == 0x00){
            joiner.add(file.getFileUrl());
         }
      });
      upWarnMsgAdptInfo.setPicUrl(joiner.toString());
      if(upWarnMsgFileListAck.getFileList().size() > 0){
         StringJoiner joiner = new StringJoiner(",");
         upWarnMsgFileListAck.getFileList().forEach(file->{
            if(file.getFileType() == 0x00){
               joiner.add(file.getFileUrl());
            }
         });
         upWarnMsgAdptInfo.setPicUrl(joiner.toString());
      }else{
         upWarnMsgAdptInfo.setPicUrl("*");
      }
      upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
   }
   
   
   
   /**
    * 定时任务督办报警请求
    * 定时任务督办报警请求和附件请求
    */
   public void taskUrgeTodo() {
      List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIsAndLevelNotNullAndPushTimeBefore(0x00, LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)));
@@ -237,11 +243,13 @@
         //海康威视直接走接口
         if(25439966 == inferiorPlatformId){
            try {
               if("***".equals(upWarnMsgAdptInfo.getPicUrl())){
               if(!StringUtils.hasLength(upWarnMsgAdptInfo.getPicUrl())){
                  FindPicturesByAlarmIdRequest findPicturesByAlarmIdRequest = new FindPicturesByAlarmIdRequest();
                  findPicturesByAlarmIdRequest.setAlarmId(upWarnMsgAdptInfo.getInfoId());
                  long warnTime = upWarnMsgAdptInfo.getWarnTime();
                  findPicturesByAlarmIdRequest.setAlarmTime(LocalDateTime.ofEpochSecond(warnTime, 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                  String format = LocalDateTime.ofEpochSecond(warnTime, 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
                  format = format.replace(" ", "T") + "+08:00";
                  findPicturesByAlarmIdRequest.setAlarmTime(format);
                  String pictures = Artemis.findPicturesByAlarmId(findPicturesByAlarmIdRequest);
                  JSONObject jsonObject = JSONObject.parseObject(pictures);
                  Integer code = jsonObject.getInteger("code");
@@ -253,22 +261,33 @@
                        String url = jsonObject1.getString("url");
                        joiner.add(url);
                     }
                     upWarnMsgAdptInfo.setPicUrl(joiner.toString());
                     upWarnMsgAdptInfo.setPicUrl(joiner.length() > 0 ? joiner.toString() : "*");
                     upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);
                  }
               }
            }catch (Exception e){
               e.printStackTrace();
            }
         }
         //请求报警附件(川标协议)
         if(enterprise.contains(inferiorPlatformId) && !StringUtils.hasLength(upWarnMsgAdptInfo.getPicUrl())){
            DOWNWarnMsgFileListReq downWarnMsgFileListReq = new DOWNWarnMsgFileListReq();
            downWarnMsgFileListReq.setVehicleNo(upWarnMsgAdptInfo.getVehicleNo());
            downWarnMsgFileListReq.setVehicleColor(upWarnMsgAdptInfo.getVehicleColor());
            downWarnMsgFileListReq.setDataType(DataType.DOWN_WARN_MSG_FILELIST_REQ.getCode());
            downWarnMsgFileListReq.setDataLength(32);
            downWarnMsgFileListReq.setInfoId(upWarnMsgAdptInfo.getInfoId());
            byte[] body = downWarnMsgFileListReq.encode();
            OuterPacket out = new OuterPacket(DataType.DOWN_WARN_MSG.getCode(), inferiorPlatformId, body);
            //获取从链路通道
            Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
            if (null != channel && channel.isActive()) {
               channel.writeAndFlush(out);
               log.info("报警附件目录请求({}):{}", DataType.DOWN_WARN_MSG_FILELIST_REQ.getCode(), JSON.toJSONString(downWarnMsgFileListReq));
            }
         }
         
         down_warn_msg_urge_todo_req(upWarnMsgAdptInfo);
//         down_warn_msg_urge_todo_req(upWarnMsgAdptInfo);
      }
   }
   
@@ -326,11 +345,21 @@
               }
               upWarnMsgAdptInfo.setInfoId(data.getAlarmId());
               upWarnMsgAdptInfo.setLevel(getLevel(data.getLevel()));
               if(null != data.getLatitude()){
                  upWarnMsgAdptInfo.setLongitude(data.getLatitude().intValue() * 10);
               }
               if(null != data.getLongitude()){
                  upWarnMsgAdptInfo.setLatitude(data.getLongitude().intValue());
//               if(null != data.getLatitude()){
//                  upWarnMsgAdptInfo.setLongitude(data.getLatitude().intValue() * 10);
//               }
//               if(null != data.getLongitude()){
//                  upWarnMsgAdptInfo.setLatitude(data.getLongitude().intValue());
//               }
               //调用获取实时定位数据
               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{
                  return;
               }
               if(null != data.getHeight()){
                  upWarnMsgAdptInfo.setAltitude(data.getHeight().intValue() / 10);
@@ -355,10 +384,12 @@
               
               //获取报警抓拍图片
               if(data.getPicNum() > 0){
                  upWarnMsgAdptInfo.setPicUrl("***");
                  FindPicturesByAlarmIdRequest findPicturesByAlarmIdRequest = new FindPicturesByAlarmIdRequest();
                  findPicturesByAlarmIdRequest.setAlarmId(data.getAlarmId());
                  findPicturesByAlarmIdRequest.setAlarmTime(data.getAlarmTime());
                  long warnTime = upWarnMsgAdptInfo.getWarnTime();
                  String format = LocalDateTime.ofEpochSecond(warnTime, 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
                  format = format.replace(" ", "T") + "+08:00";
                  findPicturesByAlarmIdRequest.setAlarmTime(format);
                  String pictures = Artemis.findPicturesByAlarmId(findPicturesByAlarmIdRequest);
                  JSONObject jsonObject1 = JSONObject.parseObject(pictures);
                  Integer code = jsonObject1.getInteger("code");
@@ -372,6 +403,8 @@
                     }
                     upWarnMsgAdptInfo.setPicUrl(joiner.toString());
                  }
               }else{
                  upWarnMsgAdptInfo.setPicUrl("*");
               }
               upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo);