From 658d156d6e9bf50c5e025d371ae8cac94033ae13 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 04 六月 2025 16:19:14 +0800 Subject: [PATCH] 优化川标报警处理结果逻辑 --- ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/WarnMsgService.java | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 36 insertions(+), 20 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 76582c0..ea77d31 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); + } } @@ -215,20 +217,22 @@ 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()); + } upWarnMsgAdptInfoDao.save(upWarnMsgAdptInfo); } /** - * 定时任务督办报警请求 + * 定时任务督办报警请求和附件请求 */ public void taskUrgeTodo() { List<UPWarnMsgAdptInfo> list = upWarnMsgAdptInfoDao.findByResultIsAndLevelNotNullAndPushTimeBefore(0x00, LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8))); @@ -237,11 +241,12 @@ //海康威视直接走接口 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(); - String format = LocalDateTime.ofEpochSecond(warnTime, 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSS+08:00")); + 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); @@ -258,16 +263,27 @@ 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); } @@ -356,11 +372,11 @@ //获取报警抓拍图片 if(data.getPicNum() > 0){ - upWarnMsgAdptInfo.setPicUrl("***"); FindPicturesByAlarmIdRequest findPicturesByAlarmIdRequest = new FindPicturesByAlarmIdRequest(); findPicturesByAlarmIdRequest.setAlarmId(data.getAlarmId()); long warnTime = upWarnMsgAdptInfo.getWarnTime(); - String format = LocalDateTime.ofEpochSecond(warnTime, 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss.SSS+08:00")); + 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); -- Gitblit v1.7.1