zhanghua
2024-10-09 b11443475114cacb529130a04d45c7c9981ff375
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
@@ -26,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;
@@ -147,37 +148,38 @@
                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 = ossService.uploadImages(inputStream, extension);
                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("保存报警数据失败---图片上传失败:" + e.getMessage());
//                    e.printStackTrace();
                }
            }
            List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
@@ -211,12 +213,29 @@
                        this.updateById(videoAlarmReport);
                    }
                } catch (ParseException e) {
                    e.printStackTrace();
                    System.out.println("保存报警数据失败:" + e.getMessage());
//                    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);