package com.zhgd.xmgl.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.call.HikvisionCall; import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig; import com.zhgd.xmgl.modules.project.mapper.ProjectVideoConfigMapper; import com.zhgd.xmgl.modules.project.service.ProgressTaskService; import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper; import lombok.extern.slf4j.Slf4j; import net.javacrumbs.shedlock.core.SchedulerLock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.List; /** * 视频设备(监控点)定时任务 */ @Slf4j @RestController @RequestMapping("xmgl/task") public class VideoItemTask { @Autowired HikvisionCall hikvisionCall; @Autowired AsyncHikvision asyncHikvision; @Autowired ProgressTaskService progressTaskService; @Autowired VideoItemMapper videoItemMapper; @Autowired ProjectVideoConfigMapper projectVideoConfigMapper; /** * 定时获取录像完整性结果 */ @SchedulerLock(name = "manageAlarmData", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) @Scheduled(cron = "0 0 0/1 * * ?") public void manageAlarmData() { log.info("定时获取录像完整性结果任务开始"); HashMap map = new HashMap<>(); map.put("videoType", 3); //List videoItemConfigBos = videoItemMapper.selectDeviceDetailAndProjectSnList(map); //videoItemMapper.selectList(new LambdaQueryWrapper() // .eq(VideoItem::getProjectSn, )); //hikvisionCall.getCameraOnline(); } /** * 定时获取视频质量诊断结果 */ @SchedulerLock(name = "addVqdForHikvision", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) @Scheduled(cron = "0 0 0/1 * * ?") public void addVqdForHikvision() { log.info("定时获取视频质量诊断结果任务开始"); List projectVideoConfigs = projectVideoConfigMapper.selectList(new LambdaQueryWrapper() .eq(ProjectVideoConfig::getVideoType, 3)); for (ProjectVideoConfig projectVideoConfig : projectVideoConfigs) { asyncHikvision.addVqdForHikvision(projectVideoConfig); } } }