wisdomisite-java/src/main/java/com/zhgd/xmgl/task/VideoItemTask.java

71 lines
2.5 KiB
Java
Raw Normal View History

2024-04-02 18:26:22 +08:00
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<String, Object> map = new HashMap<>();
map.put("videoType", 3);
//List<VideoItemConfigBo> videoItemConfigBos = videoItemMapper.selectDeviceDetailAndProjectSnList(map);
//videoItemMapper.selectList(new LambdaQueryWrapper<VideoItem>()
// .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<ProjectVideoConfig> projectVideoConfigs = projectVideoConfigMapper.selectList(new LambdaQueryWrapper<ProjectVideoConfig>()
.eq(ProjectVideoConfig::getVideoType, 3));
for (ProjectVideoConfig projectVideoConfig : projectVideoConfigs) {
asyncHikvision.addVqdForHikvision(projectVideoConfig);
}
}
}