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; 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); } } 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); } } 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; } 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>