wl
2022-12-13 3cf5e9483f60c94d29df1a79bc0c1ca910ca46ef
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);
    }
}