package com.ycl.service.videoAlarm.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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 org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Date; /** * VideoAlarmReportServiceImpl * * @version V1.0 * @author: AI * @date: 2022-09-20 17:36 **/ @Service public class VideoAlarmReportServiceImpl extends ServiceImpl implements IVideoAlarmReportService { @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(); 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(); } } } } }