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/resources/mapper/caseHandler/BaseCaseMapper.xml | 43 +++++++++++----------
ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java | 7 +++
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java | 1
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java | 2
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java | 32 ++++++++++-----
5 files changed, 53 insertions(+), 32 deletions(-)
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
index 79ba342..6e80c0d 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -42,7 +42,7 @@
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import sun.util.resources.cldr.dyo.LocaleNames_dyo;
+
import javax.annotation.Resource;
import java.math.BigDecimal;
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
index 40f34f5..b3e236a 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -63,6 +63,7 @@
baseCaseService.save(baseCase);
violations.setId(baseCase.getId());
violations.setVideoAlarmReportId(videoAlarmReport.getId());
+ violations.setVideoPointId(videoPoint.getId());
baseMapper.insert(violations);
}
}
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);
+ }
}
diff --git a/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java b/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java
index c3abe5f..8e0e8a1 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java
@@ -17,7 +17,14 @@
private String picData;
private String grade;
private String address;
+ private String algoName;
+ private String platResourceId;
+ private String videoCode;
@JsonFormat(timezone = "GMT",pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime alarmTime;
+
+ @JsonFormat(timezone = "GMT",pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime currentAlarmTime;
+
}
diff --git a/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml b/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
index 0c4512f..bbea396 100644
--- a/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
@@ -229,16 +229,20 @@
</select>
<select id="selectVideoInspection" resultType="com.ycl.vo.casePool.BaseCaseVO">
- SELECT t1.id as baseId,
+ SELECT t1.id as baseId,
t1.`code`,
t3.`name`,
t3.url_address,
t3.longitude,
t3.latitude,
t4.pic_data,
- t5.`name` as grade,
+ t5.`name` as grade,
t3.address,
- t1.alarm_time as alarmTime
+ t3.plat_resource_id as platResourceId,
+ t3.code as videoCode,
+ t1.alarm_time as alarmTime,
+ t1.alarm_time as currentAlarmTime,
+ t4.algo_name as algoName
FROM ums_base_case t1
LEFT JOIN ums_violations t2 ON t1.id = t2.id
LEFT JOIN ums_video_point t3 on t2.video_point_id = t3.id
@@ -251,7 +255,8 @@
<select id="selectRegisterCount" resultType="java.lang.Long">
select count(1)
from ums_base_case
- where state in(2,6) and to_days(create_time) = TO_DAYS(now());
+ where state in (2, 6)
+ and to_days(create_time) = TO_DAYS(now());
</select>
<select id="dayCount" resultType="java.lang.Integer">
@@ -295,7 +300,7 @@
<where>
t1.category=1
<if test="beginTime !=''and beginTime!=null and endTime!=''and endTime!=null">
- and t1.create_time BETWEEN #{beginTime}
+ and t1.create_time BETWEEN #{beginTime}
AND #{endTime}
</if>
@@ -303,27 +308,25 @@
</select>
<select id="areaCount" resultType="com.ycl.vo.cockpit.enforcementEvents.VideoAndAreaVO">
- SELECT
- t2.region_name,
- COUNT( 1 ) AS count
+ SELECT t2.region_name,
+ COUNT(1) AS count
FROM
`ums_base_case` t1
- LEFT JOIN ums_sccg_region t2 ON t1.street_id = t2.id
+ LEFT JOIN ums_sccg_region t2
+ ON t1.street_id = t2.id
GROUP BY
street_id
</select>
<select id="selectDelayVOList" resultType="com.ycl.dto.cockpitManage.DelayDO">
- SELECT
- t1.`code`,
- t3.description,
- t2.start_time,
- t2.end_time,
- t2.limit_time
- FROM
- `ums_base_case` t1
- LEFT JOIN ums_dispose_record t2 ON t1.id = t2.base_case_id
- LEFT JOIN ums_violations t3 on t1.id=t3.id
- WHERE t2.workflow_config_step_id IN (1,2)
+ SELECT t1.`code`,
+ t3.description,
+ t2.start_time,
+ t2.end_time,
+ t2.limit_time
+ FROM `ums_base_case` t1
+ LEFT JOIN ums_dispose_record t2 ON t1.id = t2.base_case_id
+ LEFT JOIN ums_violations t3 on t1.id = t3.id
+ WHERE t2.workflow_config_step_id IN (1, 2)
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0