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