From 2044db864bea04b93e59f2417b7a635a82581ecb Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 13 十二月 2022 11:25:03 +0800
Subject: [PATCH] 视频流地址修改
---
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java | 78 +++++++++++++++++++++++----------------
1 files changed, 46 insertions(+), 32 deletions(-)
diff --git a/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
index 4cac604..3ccd611 100644
--- a/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
@@ -1,6 +1,8 @@
package com.ycl.service.video.impl;
+import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.dto.video.AlarmDataParam;
import com.ycl.dto.video.AlarmParam;
@@ -49,46 +51,58 @@
@Override
public void save(AlarmParam alarmParam) {
- if (alarmParam != null && alarmParam.getAlarmData().size() > 0) {
+ if (alarmParam != null && alarmParam.getAlarmData() != null) {
CameraInfParam cameraInf = alarmParam.getCameraInf();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
String picData = "";
- String[] strings = alarmParam.getPicData().split(",");
- String extension = "jpg";
+ if (!StringUtils.isEmpty(alarmParam.getPicData())) {
+// String[] strings = alarmParam.getPicData().split(",");
+ String extension = "jpg";
- byte[] data = DatatypeConverter.parseBase64Binary(strings[1]);
- InputStream inputStream = new ByteArrayInputStream(data);
- try {
- picData = mediaFileUtil.savePicture(inputStream, extension);
- List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
- for (int i = 0; i < alarmParam.getAlarmData().size(); i++) {
- AlarmDataParam alarmData = alarmParam.getAlarmData().get(i);
- /******************** 澶勭悊鍥剧墖 **********************/
- try {
- Date date = sdf.parse(alarmData.getAlarmTime());
- Instant instant = date.toInstant();
- ZoneId zoneId = ZoneId.systemDefault();
-
- VideoAlarmReport videoAlarmReport = VideoAlarmReport.builder()
- .ip(cameraInf.getIp()).port(cameraInf.getPort())
- .user(cameraInf.getUser()).password(cameraInf.getPassword())
- .channel(cameraInf.getChannel()).platResourceId(cameraInf.getPlatResourceID())
- .picData(picData).alarmTime(instant.atZone(zoneId).toLocalDateTime())
- .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType())
- .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject()))
- .build();
- videoAlarmReports.add(videoAlarmReport);
-
- } catch (ParseException e) {
- e.printStackTrace();
- }
+ byte[] data = DatatypeConverter.parseBase64Binary(alarmParam.getPicData());
+ InputStream inputStream = new ByteArrayInputStream(data);
+ try {
+ picData = mediaFileUtil.savePicture(inputStream, extension);
+ } catch (Exception e) {
+ e.printStackTrace();
}
- this.saveBatch(videoAlarmReports, videoAlarmReports.size());
+ }
+ List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
- violationsService.saveFromVideo(videoAlarmReports);
- } catch (Exception e) {
+ AlarmDataParam alarmData = alarmParam.getAlarmData();
+ List<VideoAlarmReport> list = getByAlarmId(alarmData.getAlarmID());
+ try {
+ Date date = sdf.parse(alarmData.getAlarmTime());
+ Instant instant = date.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+ VideoAlarmReport videoAlarmReport = VideoAlarmReport.builder()
+ .ip(cameraInf.getIp()).port(cameraInf.getPort())
+ .user(cameraInf.getUser()).password(cameraInf.getPassword())
+ .channel(cameraInf.getChannel()).platResourceId(cameraInf.getPlatResourceID())
+ .picData(picData).alarmTime(instant.atZone(zoneId).toLocalDateTime())
+ .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType())
+ .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject()))
+ .build();
+ if (list.size() == 0) {
+
+ videoAlarmReports.add(videoAlarmReport);
+
+ this.saveBatch(videoAlarmReports, videoAlarmReports.size());
+
+ violationsService.saveFromVideo(videoAlarmReports);
+
+ } else {
+ videoAlarmReport.setId(list.get(0).getId());
+ this.updateById(videoAlarmReport);
+ }
+ } catch (ParseException e) {
e.printStackTrace();
}
}
}
+
+ private List<VideoAlarmReport> getByAlarmId(String alarmId) {
+ LambdaQueryWrapper<VideoAlarmReport> queryWrapper = new LambdaQueryWrapper<VideoAlarmReport>().eq(VideoAlarmReport::getAlarmId, alarmId);
+ return this.list(queryWrapper);
+ }
}
--
Gitblit v1.8.0