From c4c1c6cf89781eb06dc02b677a8954fdb2666c43 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 16 七月 2025 22:39:06 +0800 Subject: [PATCH] 添加时间筛选 --- ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java | 128 +++++++++++++++++++++++++----------------- 1 files changed, 75 insertions(+), 53 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 51d7f17..994bcc8 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; @@ -25,6 +26,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; +import java.time.LocalDateTime; import java.time.ZoneId; import java.util.ArrayList; import java.util.Date; @@ -43,6 +45,9 @@ private MediaFileUtil mediaFileUtil; private IViolationsService violationsService; + + @Autowired + private OssService ossService; @Autowired public void setMediaFileUtil(MediaFileUtil mediaFileUtil) { @@ -141,81 +146,98 @@ // 鎸夌収Base64缂栫爜瑙f瀽鏁版嵁 byte[] data = DatatypeConverter.parseBase64Binary(alarmParam.getPicData()); InputStream inputStream = new ByteArrayInputStream(data); - try { // 濡傛灉List<AlarmDataParam>鍚堢悊 - if (alarmParam.getAlarmData()!=null && alarmParam.getAlarmData().size()!=0) { + if (alarmParam.getAlarmData() != null && alarmParam.getAlarmData().size() != 0) { - BufferedImage image = ImageIO.read(inputStream); - Graphics2D g2 = (Graphics2D) image.getGraphics(); - g2.setColor(Color.RED); - g2.setStroke(new BasicStroke(3.0f)); + BufferedImage image = ImageIO.read(inputStream); + Graphics2D g2 = (Graphics2D) image.getGraphics(); + g2.setColor(Color.RED); + g2.setStroke(new BasicStroke(3.0f)); - List<AlarmDataParam> alarmData = alarmParam.getAlarmData(); + 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()); - } - }); - } - }); + 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()); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ImageIO.write(image, extension, os); + inputStream = new ByteArrayInputStream(os.toByteArray()); } - picData = mediaFileUtil.savePicture(inputStream, extension); + picData = ossService.uploadImages(inputStream, extension, 0); } catch (Exception e) { - e.printStackTrace(); + System.out.println("淇濆瓨鎶ヨ鏁版嵁澶辫触---鍥剧墖涓婁紶澶辫触锛�" + e.getMessage()); +// e.printStackTrace(); } } - List<VideoAlarmReport> videoAlarmReports = new ArrayList<>(); + if (!StringUtils.isEmpty(picData)) { + List<VideoAlarmReport> videoAlarmReports = new ArrayList<>(); - 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) { + 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) { + System.out.println("淇濆瓨鎶ヨ鏁版嵁澶辫触锛�" + e.getMessage()); +// e.printStackTrace(); } - } catch (ParseException e) { - e.printStackTrace(); } } - - } } + @Override + public void saveFromHK(HKAlarmParam alarmParam) { + if (alarmParam != null) { + violationsService.saveFromHKVideo(alarmParam); + } + } + + @Override + public List<VideoAlarmReport> findByChannelAndAlarmNameAndTime(String channel, String alarmName, LocalDateTime alarmTime) { + + LambdaQueryWrapper<VideoAlarmReport> queryWrapper = new LambdaQueryWrapper<VideoAlarmReport>() + .eq(VideoAlarmReport::getChannel, channel).eq(VideoAlarmReport::getAlarmName, alarmName) + .between(VideoAlarmReport::getAlarmTime, alarmTime.plusMinutes(-3), alarmTime.plusMinutes(3)); + return this.list(queryWrapper); + } + private List<VideoAlarmReport> getByAlarmId(String alarmId) { LambdaQueryWrapper<VideoAlarmReport> queryWrapper = new LambdaQueryWrapper<VideoAlarmReport>().eq(VideoAlarmReport::getAlarmId, alarmId); return this.list(queryWrapper); -- Gitblit v1.8.0