| | |
| | | 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; |
| | |
| | | inputStream = new ByteArrayInputStream(os.toByteArray()); |
| | | |
| | | } |
| | | picData = ossService.uploadImages(inputStream, extension,0); |
| | | picData = ossService.uploadImages(inputStream, extension, 0); |
| | | } catch (Exception e) { |
| | | 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); |
| | | } |
| | | } catch (ParseException e) { |
| | | System.out.println("保存报警数据失败:" + e.getMessage()); |
| | | } else { |
| | | videoAlarmReport.setId(list.get(0).getId()); |
| | | this.updateById(videoAlarmReport); |
| | | } |
| | | } catch (ParseException e) { |
| | | System.out.println("保存报警数据失败:" + e.getMessage()); |
| | | // e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | @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); |