From 88b11c72916d5ce1b6bebc060c234af9bbeee300 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 29 三月 2023 17:38:52 +0800
Subject: [PATCH] 功能优化
---
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java | 168 +++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 131 insertions(+), 37 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 e80d31d..cd69ba3 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
@@ -9,6 +9,7 @@
import com.ycl.entity.video.VideoAlarmReport;
import com.ycl.mapper.video.VideoAlarmReportMapper;
import com.ycl.service.caseHandler.IViolationsService;
+import com.ycl.service.oss.OssService;
import com.ycl.service.video.IVideoAlarmReportService;
import com.ycl.utils.MediaFileUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +30,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.function.Consumer;
/**
* VideoAlarmReportServiceImpl
@@ -44,6 +46,9 @@
private IViolationsService violationsService;
@Autowired
+ private OssService ossService;
+
+ @Autowired
public void setMediaFileUtil(MediaFileUtil mediaFileUtil) {
this.mediaFileUtil = mediaFileUtil;
}
@@ -53,9 +58,83 @@
this.violationsService = violationsService;
}
+// @Override
+// public void save(AlarmParam alarmParam) {
+// if (alarmParam != null && alarmParam.getAlarmData() != null) {
+// CameraInfParam cameraInf = alarmParam.getCameraInf();
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+// String picData = "";
+// if (!StringUtils.isEmpty(alarmParam.getPicData())) {
+//// String[] strings = alarmParam.getPicData().split(",");
+// String extension = "jpg";
+//
+// byte[] data = DatatypeConverter.parseBase64Binary(alarmParam.getPicData());
+// InputStream inputStream = new ByteArrayInputStream(data);
+//
+// try {
+// if (!StringUtils.isEmpty(alarmParam.getAlarmData().getAlarmObject().toString())) {
+// String alarmObject = JSON.toJSONString(alarmParam.getAlarmData().getAlarmObject());
+// if (!StringUtils.isEmpty(alarmObject)) {
+// BufferedImage image = ImageIO.read(inputStream);
+//
+// Graphics2D g2 = (Graphics2D) image.getGraphics();
+// g2.setColor(Color.RED);
+// g2.setStroke(new BasicStroke(3.0f));
+// List<AlarmObject> alarmObjects = JSON.parseArray(alarmObject, AlarmObject.class);
+// alarmObjects.forEach(o -> {
+// o.getObjectRect().forEach(rect -> {
+// g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
+// });
+// });
+// ByteArrayOutputStream os = new ByteArrayOutputStream();
+// ImageIO.write(image, extension, os);
+// inputStream = new ByteArrayInputStream(os.toByteArray());
+// }
+// }
+// picData = mediaFileUtil.savePicture(inputStream, extension);
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+// List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
+//
+// 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())
+// .alarmType(alarmData.getAlarmType()).alarmName(alarmData.getAlarmName())
+// .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();
+// }
+// }
+// }
+
@Override
public void save(AlarmParam alarmParam) {
if (alarmParam != null && alarmParam.getAlarmData() != null) {
+// 鍙栧嚭CameraInf
CameraInfParam cameraInf = alarmParam.getCameraInf();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
String picData = "";
@@ -63,65 +142,80 @@
// String[] strings = alarmParam.getPicData().split(",");
String extension = "jpg";
+// 鎸夌収Base64缂栫爜瑙f瀽鏁版嵁
byte[] data = DatatypeConverter.parseBase64Binary(alarmParam.getPicData());
InputStream inputStream = new ByteArrayInputStream(data);
-
try {
- if (!StringUtils.isEmpty(alarmParam.getAlarmData().getAlarmObject().toString())) {
- String alarmObject = JSON.toJSONString(alarmParam.getAlarmData().getAlarmObject());
- if (!StringUtils.isEmpty(alarmObject)) {
- BufferedImage image = ImageIO.read(inputStream);
+// 濡傛灉List<AlarmDataParam>鍚堢悊
+ if (alarmParam.getAlarmData()!=null && alarmParam.getAlarmData().size()!=0) {
- Graphics2D g2 = (Graphics2D)image.getGraphics();
+ BufferedImage image = ImageIO.read(inputStream);
+ Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setColor(Color.RED);
g2.setStroke(new BasicStroke(3.0f));
- List<AlarmObject> alarmObjects = JSON.parseArray(alarmObject, AlarmObject.class);
- alarmObjects.forEach(o -> {
- o.getObjectRect().forEach(rect -> {
- g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
- });
+
+ List<AlarmDataParam> alarmData = alarmParam.getAlarmData();
+
+ alarmData.forEach(new Consumer<AlarmDataParam>() {
+ @Override
+ public void accept(AlarmDataParam alarmDataParam) {
+ List<AlarmObject> alarmObject = alarmDataParam.getAlarmObject();
+ alarmObject.forEach(new Consumer<AlarmObject>() {
+ @Override
+ public void accept(AlarmObject alarmObject) {
+ ObjectRect rect = alarmObject.getObjectRect();
+ g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
+ }
+ });
+ }
});
+
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, extension, os);
- inputStream = new ByteArrayInputStream(os.toByteArray());
- }
+ ByteArrayInputStream inputStream1 = new ByteArrayInputStream(os.toByteArray());
+
}
- picData = mediaFileUtil.savePicture(inputStream, extension);
+ picData = ossService.uploadImages(inputStream, extension);
} catch (Exception e) {
e.printStackTrace();
}
}
List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
- 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) {
+ List<AlarmDataParam> alarmData = alarmParam.getAlarmData();
+ for (AlarmDataParam alarmDatum : alarmData) {
+ List<VideoAlarmReport> list = getByAlarmId(alarmDatum.getAlarmID());
+ try {
+ Date date = sdf.parse(alarmDatum.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(alarmDatum.getAlarmID()).algoType(alarmDatum.getAlgoType())
+ .alarmType(alarmDatum.getAlarmType()).alarmName(alarmDatum.getAlarmName())
+ .algoName(alarmDatum.getAlgoName()).alarmObj(JSON.toJSONString(alarmDatum.getAlarmObject()))
+ .build();
+ if (list.size() == 0) {
- videoAlarmReports.add(videoAlarmReport);
+ videoAlarmReports.add(videoAlarmReport);
- this.saveBatch(videoAlarmReports, videoAlarmReports.size());
+ this.saveBatch(videoAlarmReports, videoAlarmReports.size());
- violationsService.saveFromVideo(videoAlarmReports);
+ violationsService.saveFromVideo(videoAlarmReports);
- } else {
- videoAlarmReport.setId(list.get(0).getId());
- this.updateById(videoAlarmReport);
+ } else {
+ videoAlarmReport.setId(list.get(0).getId());
+ this.updateById(videoAlarmReport);
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
}
- } catch (ParseException e) {
- e.printStackTrace();
}
+
+
}
}
--
Gitblit v1.8.0