package com.ycl.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.sun.jna.ptr.IntByReference; import com.ycl.dto.video.Camera; import com.ycl.dto.video.PageResult; import com.ycl.entity.video.VideoPoint; import com.ycl.service.video.impl.IVideoPointService; import com.ycl.util.VideoUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.io.File; import java.util.ArrayList; import java.util.List; /** * 同步海康视频 */ @Component public class SynchronizeHKVideo { @Autowired private IVideoPointService videoPointService; @Autowired private VideoUtil videoUtil; ////////////////////////////////外网服务屏蔽内容//////////////////////////////// // @Scheduled(cron = "0 */5 * * * ?") // 每5分钟执行 @Scheduled(cron = "0 0 1 * * ?") @Transactional(rollbackFor = Exception.class) public void scheduledTask() { // System.out.println("海康:开始执行"); findVideoList(1, 5); } private void findVideoList(Integer pageNo, Integer pageSize) { try { PageResult pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0"); if (pageResult.getTotal() > 0) { if (pageResult.getList().size() > 0) { saveVideoFromCamera(pageResult.getList()); if (pageResult.getList().size() >= pageSize) { findVideoList(pageNo + 1, pageSize); } } } } catch (Exception ex) { System.out.println("海康:" + ex.getMessage()); } } private void saveVideoFromCamera(List list) { for (Camera c : list) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(VideoPoint::getPlatResourceId, c.getCameraIndexCode()); List pointList = videoPointService.list(queryWrapper); if (pointList.size() == 0) { VideoPoint videoPoint = new VideoPoint(); videoPoint.setType(1); videoPoint.setName(c.getName()); videoPoint.setLatitude(Double.valueOf(c.getLatitude())); videoPoint.setLongitude(Double.valueOf(c.getLatitude())); videoPoint.setPlatResourceId(c.getCameraIndexCode()); videoPoint.setCode(c.getDeviceIndexCode()); videoPoint.setAddress(c.getInstallPlace()); videoPoint.setEquipmentBrand("海康"); videoPoint.setEquipmentModel(c.getCameraTypeName()); videoPointService.save(videoPoint); } } } }