From fd071f321fb967f36cf795fc40b4f2e87e89e69d Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 12 十二月 2022 22:38:24 +0800
Subject: [PATCH] 预警研判

---
 ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 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 25df2b8..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
@@ -2,6 +2,7 @@
 
 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;
@@ -55,10 +56,10 @@
             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[] strings = alarmParam.getPicData().split(",");
                 String extension = "jpg";
 
-                byte[] data = DatatypeConverter.parseBase64Binary(strings[1]);
+                byte[] data = DatatypeConverter.parseBase64Binary(alarmParam.getPicData());
                 InputStream inputStream = new ByteArrayInputStream(data);
                 try {
                     picData = mediaFileUtil.savePicture(inputStream, extension);
@@ -67,14 +68,13 @@
                 }
             }
             List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
-//                for (int i = 0; i < alarmParam.getAlarmData().size(); i++) {
+
             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())
@@ -83,16 +83,26 @@
                         .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType())
                         .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject()))
                         .build();
-                videoAlarmReports.add(videoAlarmReport);
+                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();
             }
-//                }
-            this.saveBatch(videoAlarmReports, videoAlarmReports.size());
-
-            violationsService.saveFromVideo(videoAlarmReports);
-
         }
     }
+
+    private List<VideoAlarmReport> getByAlarmId(String alarmId) {
+        LambdaQueryWrapper<VideoAlarmReport> queryWrapper = new LambdaQueryWrapper<VideoAlarmReport>().eq(VideoAlarmReport::getAlarmId, alarmId);
+        return this.list(queryWrapper);
+    }
 }

--
Gitblit v1.8.0