From 41c64a5680521bf1d41fa6b9caadc55feac68ca3 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 05 六月 2025 16:12:59 +0800 Subject: [PATCH] 优化报警 --- ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java | 78 ++++++++++++++++++++++++++------------ 1 files changed, 53 insertions(+), 25 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 db6c769..1d3791a 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 @@ -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,7 +243,7 @@ //海康威视直接走接口 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(); @@ -255,20 +261,31 @@ 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); } @@ -328,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); @@ -357,7 +384,6 @@ //获取报警抓拍图片 if(data.getPicNum() > 0){ - upWarnMsgAdptInfo.setPicUrl("***"); FindPicturesByAlarmIdRequest findPicturesByAlarmIdRequest = new FindPicturesByAlarmIdRequest(); findPicturesByAlarmIdRequest.setAlarmId(data.getAlarmId()); long warnTime = upWarnMsgAdptInfo.getWarnTime(); @@ -377,6 +403,8 @@ } upWarnMsgAdptInfo.setPicUrl(joiner.toString()); } + }else{ + upWarnMsgAdptInfo.setPicUrl("*"); } upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo); -- Gitblit v1.7.1