| | |
| | | package com.ruoyi.inspect.service.impl; |
| | | |
| | | import com.ruoyi.constant.Global; |
| | | import com.ruoyi.device.camera.domain.CameraCmd; |
| | | import com.ruoyi.device.hiksdk.common.GlobalVariable; |
| | | import com.ruoyi.device.hiksdk.service.IHikClientService; |
| | | import com.ruoyi.device.hiksdk.service.impl.HikClientServiceImpl; |
| | | import com.ruoyi.inspect.domain.ArdVideoInspectTask; |
| | | import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @Description: 巡检任务管理 |
| | | * @ClassName: InspectionTaskManager |
| | | * @Author: 刘苏义 |
| | | * @Date: 2023年06月01日10:40 |
| | | * @Version: 1.0 |
| | | **/ |
| | | |
| | | @Component |
| | | @Slf4j(topic = "PatrolInspectionTask") |
| | | public class InspectionTaskManager { |
| | | |
| | | @Resource |
| | | ArdVideoInspectTaskMapper ardVideoInspectTaskMapper; |
| | | @Resource |
| | | private IHikClientService hikClientService; |
| | | |
| | | public static Map<String, InspectionTask> taskMap;//已启动任务map |
| | | |
| | | public InspectionTaskManager() { |
| | | taskMap = new HashMap<>(); |
| | | } |
| | | |
| | | public Map<String, InspectionTask> getTaskMap() { |
| | | return taskMap; |
| | | } |
| | | |
| | | /*启动任务*/ |
| | | public void startInspectionTask(String taskId) { |
| | | if(taskMap.containsKey(taskId)) |
| | | { |
| | | log.info("巡检任务已启动:" + taskId); |
| | | return; |
| | | } |
| | | /*每次启动任务清空任务当前步骤信息*/ |
| | | ArdVideoInspectTask ardVideoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(taskId); |
| | | ardVideoInspectTask.setCurrentStepId(""); |
| | | ardVideoInspectTask.setCurrentStepStartTime(""); |
| | | ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); |
| | | /*将关联的相机录像关闭*/ |
| | | if( Global.task_record.contains(taskId)) |
| | | { |
| | | // Integer userId = GlobalVariable.loginMap.get(ardVideoInspectTask.getCameraId());//获取当前相机的登录ID |
| | | // if( GlobalVariable.user_real_Map.containsKey(userId)) |
| | | // { //当前相机正在录像,则停止录像 |
| | | // CameraCmd cmd = new CameraCmd(); |
| | | // cmd.setCameraId(ardVideoInspectTask.getCameraId()); |
| | | // cmd.setChannelNum(ardVideoInspectTask.getChannel()); |
| | | // cmd.setEnable(false);//停止录像 |
| | | // cmd.setUploadMinio(false); |
| | | // hikClientService.recordToMinio(cmd); |
| | | // } |
| | | Global.task_record.remove(taskId); |
| | | } |
| | | InspectionTask task = new InspectionTask(taskId); |
| | | task.start(); |
| | | taskMap.put(taskId, task); |
| | | log.info("巡检任务启动:" + taskId); |
| | | } |
| | | /*停止任务*/ |
| | | public void stopInspectionTask(String taskId) { |
| | | /*将任务步骤信息清空*/ |
| | | ArdVideoInspectTask ardVideoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(taskId); |
| | | ardVideoInspectTask.setCurrentStepId(""); |
| | | ardVideoInspectTask.setCurrentStepStartTime(""); |
| | | ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask); |
| | | /*将关联的相机录像关闭*/ |
| | | Integer userId = GlobalVariable.loginMap.get(ardVideoInspectTask.getCameraId());//获取当前相机的登录ID |
| | | if( GlobalVariable.user_real_Map.containsKey(userId)) |
| | | { //当前相机正在录像,则停止录像 |
| | | CameraCmd cmd = new CameraCmd(); |
| | | cmd.setCameraId(ardVideoInspectTask.getCameraId()); |
| | | cmd.setChannelNum(ardVideoInspectTask.getChannel()); |
| | | cmd.setEnable(false);//停止录像 |
| | | cmd.setUploadMinio(false); |
| | | hikClientService.recordToMinio(cmd); |
| | | GlobalVariable.user_real_Map.remove(userId); |
| | | } |
| | | InspectionTask task = taskMap.get(taskId); |
| | | if (task != null) { |
| | | task.stop(); |
| | | taskMap.remove(taskId); |
| | | log.info("巡检任务已停止:" + taskId); |
| | | |
| | | } else { |
| | | log.info("找不到指定的巡检任务:" + taskId); |
| | | } |
| | | } |
| | | } |
| | | package com.ruoyi.inspect.service.impl;
|
| | |
|
| | | import com.ruoyi.device.camera.domain.CameraCmd;
|
| | | import com.ruoyi.device.camera.service.ICameraSdkService;
|
| | | import com.ruoyi.utils.sdk.common.GlobalVariable;
|
| | | import com.ruoyi.inspect.domain.ArdVideoInspectTask;
|
| | | import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
|
| | | import lombok.extern.slf4j.Slf4j;
|
| | | import org.springframework.stereotype.Component;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | /**
|
| | | * @Description: 巡检任务管理
|
| | | * @ClassName: InspectionTaskManager
|
| | | * @Author: 刘苏义
|
| | | * @Date: 2023年06月01日10:40
|
| | | * @Version: 1.0
|
| | | **/
|
| | |
|
| | | @Component
|
| | | @Slf4j(topic = "patrolInspectionTask")
|
| | | public class InspectionTaskManager {
|
| | |
|
| | | @Resource
|
| | | ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
|
| | | @Resource
|
| | | private ICameraSdkService cameraSdkService;
|
| | |
|
| | | public static Map<String, InspectionTask> taskMap;//已启动任务map
|
| | |
|
| | | public InspectionTaskManager() {
|
| | | taskMap = new HashMap<>();
|
| | | }
|
| | |
|
| | | public Map<String, InspectionTask> getTaskMap() {
|
| | | return taskMap;
|
| | | }
|
| | |
|
| | | /*启动任务*/
|
| | | public void startInspectionTask(String taskId) {
|
| | | if(taskMap.containsKey(taskId))
|
| | | {
|
| | | log.info("手动巡检任务已启动:" + taskId);
|
| | | return;
|
| | | }
|
| | | /*每次启动任务清空任务当前步骤信息*/
|
| | | ArdVideoInspectTask ardVideoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(taskId);
|
| | | String cameraId = ardVideoInspectTask.getCameraId();
|
| | | /*将当前相机的所有任务当前时间置空*/
|
| | | ardVideoInspectTask=new ArdVideoInspectTask();
|
| | | ardVideoInspectTask.setCameraId(cameraId);
|
| | | List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
|
| | | if(ardVideoInspectTasks.size()>0) {
|
| | | for (ArdVideoInspectTask VideoInspectTask : ardVideoInspectTasks) {
|
| | | VideoInspectTask.setCurrentStepStartTime("");
|
| | | ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(VideoInspectTask);
|
| | | }
|
| | | }
|
| | | /*开启任务*/
|
| | | InspectionTask task = new InspectionTask(taskId);
|
| | | task.start();
|
| | | taskMap.put(taskId, task);
|
| | | log.info("手动巡检任务启动:" + taskId);
|
| | | }
|
| | | /*停止任务*/
|
| | | public void stopInspectionTask(String taskId) {
|
| | |
|
| | | ArdVideoInspectTask ardVideoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(taskId);
|
| | | /*将关联的相机录像关闭*/
|
| | | String cameraId = ardVideoInspectTask.getCameraId();
|
| | | if( GlobalVariable.previewMap.containsKey(cameraId))
|
| | | { //当前相机正在录像,则停止录像
|
| | | CameraCmd cmd = new CameraCmd();
|
| | | cmd.setCameraId(ardVideoInspectTask.getCameraId());
|
| | | cmd.setChanNo(ardVideoInspectTask.getChannel());
|
| | | cameraSdkService.recordStopNotToMinio(cmd);
|
| | | GlobalVariable.previewMap.remove(cameraId);
|
| | | }
|
| | | /*停止任务*/
|
| | | InspectionTask task = taskMap.get(taskId);
|
| | | if (task != null) {
|
| | | task.stop();
|
| | | taskMap.remove(taskId);
|
| | | log.info("手动巡检任务已停止:" + taskId);
|
| | | /*将任务步骤信息清空*/
|
| | | ardVideoInspectTask.setCurrentStepId("");
|
| | | ardVideoInspectTask.setCurrentStepStartTime("");
|
| | | ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
|
| | | } else {
|
| | | log.info("找不到指定的手动巡检任务:" + taskId);
|
| | | }
|
| | | }
|
| | | }
|