| | |
| | | package com.ycl.service.video.impl; |
| | | |
| | | import com.alibaba.druid.util.StringUtils; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.dto.video.AlarmDataParam; |
| | |
| | | |
| | | @Override |
| | | public void save(AlarmParam alarmParam) { |
| | | if (alarmParam != null && alarmParam.getAlarmData().size() > 0) { |
| | | if (alarmParam != null && alarmParam.getAlarmData() != null) { |
| | | CameraInfParam cameraInf = alarmParam.getCameraInf(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); |
| | | String picData = ""; |
| | | String[] strings = alarmParam.getPicData().split(","); |
| | | String extension = "jpg"; |
| | | if (!StringUtils.isEmpty(alarmParam.getPicData())) { |
| | | String[] strings = alarmParam.getPicData().split(","); |
| | | String extension = "jpg"; |
| | | |
| | | byte[] data = DatatypeConverter.parseBase64Binary(strings[1]); |
| | | InputStream inputStream = new ByteArrayInputStream(data); |
| | | try { |
| | | picData = mediaFileUtil.savePicture(inputStream, extension); |
| | | List<VideoAlarmReport> videoAlarmReports = new ArrayList<>(); |
| | | for (int i = 0; i < alarmParam.getAlarmData().size(); i++) { |
| | | AlarmDataParam alarmData = alarmParam.getAlarmData().get(i); |
| | | /******************** 处理图片 **********************/ |
| | | 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()) |
| | | .channel(cameraInf.getChannel()).platResourceId(cameraInf.getPlatResourceID()) |
| | | .picData(picData).alarmTime(instant.atZone(zoneId).toLocalDateTime()) |
| | | .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType()) |
| | | .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject())) |
| | | .build(); |
| | | videoAlarmReports.add(videoAlarmReport); |
| | | |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | byte[] data = DatatypeConverter.parseBase64Binary(strings[1]); |
| | | InputStream inputStream = new ByteArrayInputStream(data); |
| | | try { |
| | | picData = mediaFileUtil.savePicture(inputStream, extension); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | this.saveBatch(videoAlarmReports, videoAlarmReports.size()); |
| | | } |
| | | List<VideoAlarmReport> videoAlarmReports = new ArrayList<>(); |
| | | // for (int i = 0; i < alarmParam.getAlarmData().size(); i++) { |
| | | AlarmDataParam alarmData = alarmParam.getAlarmData(); |
| | | /******************** 处理图片 **********************/ |
| | | try { |
| | | Date date = sdf.parse(alarmData.getAlarmTime()); |
| | | Instant instant = date.toInstant(); |
| | | ZoneId zoneId = ZoneId.systemDefault(); |
| | | |
| | | violationsService.saveFromVideo(videoAlarmReports); |
| | | } catch (Exception e) { |
| | | 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(alarmData.getAlarmID()).algoType(alarmData.getAlgoType()) |
| | | .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject())) |
| | | .build(); |
| | | videoAlarmReports.add(videoAlarmReport); |
| | | |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | // } |
| | | this.saveBatch(videoAlarmReports, videoAlarmReports.size()); |
| | | |
| | | violationsService.saveFromVideo(videoAlarmReports); |
| | | |
| | | } |
| | | } |
| | | } |