| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.dto.media.Media; |
| | | import com.ycl.dto.media.PictureZoomParameter; |
| | | import com.ycl.dto.videoAlarm.AlarmDataParam; |
| | | import com.ycl.dto.videoAlarm.AlarmParam; |
| | | import com.ycl.dto.videoAlarm.CameraInfParam; |
| | | import com.ycl.entity.videoAlarm.VideoAlarmReport; |
| | | import com.ycl.mapper.videoAlarm.VideoAlarmReportMapper; |
| | | import com.ycl.service.videoAlarm.IVideoAlarmReportService; |
| | | import com.ycl.utils.MediaFileUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.xml.bind.DatatypeConverter; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.InputStream; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.Instant; |
| | |
| | | @Service |
| | | public class VideoAlarmReportServiceImpl extends ServiceImpl<VideoAlarmReportMapper, VideoAlarmReport> implements IVideoAlarmReportService { |
| | | |
| | | private MediaFileUtil mediaFileUtil; |
| | | |
| | | @Autowired |
| | | public void setMediaFileUtil(MediaFileUtil mediaFileUtil) { |
| | | this.mediaFileUtil = mediaFileUtil; |
| | | } |
| | | |
| | | @Override |
| | | public void save(AlarmParam alarmParam) { |
| | | if (alarmParam != null && alarmParam.getAlarmData().size() > 0) { |
| | | CameraInfParam cameraInf = alarmParam.getCameraInf(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); |
| | | String picData = "{}"; |
| | | 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(); |
| | | String picData = ""; |
| | | String[] strings = alarmParam.getPicData().split(","); |
| | | String extension = "jpg"; |
| | | |
| | | 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(); |
| | | baseMapper.insert(videoAlarmReport); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | byte[] data = DatatypeConverter.parseBase64Binary(strings[1]); |
| | | InputStream inputStream = new ByteArrayInputStream(data); |
| | | try { |
| | | picData = mediaFileUtil.savePicture(inputStream, extension); |
| | | |
| | | 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(); |
| | | baseMapper.insert(videoAlarmReport); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |