package com.ruoyi.alarm.globalAlarm.service.impl;
|
|
import com.ruoyi.alarm.globalAlarm.domain.GuideTask;
|
import com.ruoyi.alarm.radarAlarm.domain.ArdAlarmRadar;
|
import com.ruoyi.alarm.radarAlarm.service.IArdAlarmRadarService;
|
import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube;
|
import com.ruoyi.alarm.tubeAlarm.service.IArdAlarmTubeService;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.device.camera.domain.CameraCmd;
|
import com.ruoyi.device.hiksdk.service.IHikClientService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @ClassName QueueTaskExecutor
|
* @Description: 队列任务执行器
|
* @Author 刘苏义
|
* @Date 2023/6/29 21:10
|
* @Version 1.0
|
*/
|
|
@Component
|
@Slf4j
|
public class QueueTaskExecutor {
|
@Resource
|
IHikClientService hikClientService;
|
@Resource
|
IArdAlarmTubeService ardAlarmTubeService;
|
@Resource
|
IArdAlarmRadarService ardAlarmRadarService;
|
|
public void processTask(GuideTask guideTask) {
|
try {
|
CameraCmd cmd = new CameraCmd();
|
cmd.setCameraId(guideTask.getCameraId());
|
cmd.setChannelNum(guideTask.getNum());
|
boolean guideRes = hikClientService.guideTargetPosition(cmd);
|
if (guideRes) {
|
hikClientService.controlLock(cmd);//上锁
|
cmd.setEnable(true);//开始录像
|
hikClientService.recordToMinio(cmd);//开始录像
|
Thread.sleep(30000);
|
cmd.setEnable(false);//停止录像
|
cmd.setUploadMinio(true);//上传minio
|
String url = hikClientService.recordToMinio(cmd);//停止录像返回url
|
if (StringUtils.isNotEmpty(url)) {
|
switch (guideTask.getAlarmType()) {
|
case "sys_tube_leak":
|
ArdAlarmTube ardAlarmTube = new ArdAlarmTube();
|
ardAlarmTube.setId(guideTask.getAlarmId());
|
ardAlarmTube.setRecordUrl(url);
|
ardAlarmTubeService.updateArdAlarmTube(ardAlarmTube);
|
break;
|
case "sys_radar_move":
|
ArdAlarmRadar ardAlarmRadar = new ArdAlarmRadar();
|
ardAlarmRadar.setId(guideTask.getAlarmId());
|
if (guideTask.getRecordSn().equals(1)) {
|
ardAlarmRadar.setRecordUrl1(url);
|
} else {
|
ardAlarmRadar.setRecordUrl2(url);
|
}
|
ardAlarmRadarService.updateArdAlarmRadar(ardAlarmRadar);
|
break;
|
case "sys_radar_fire":
|
ardAlarmRadar = new ArdAlarmRadar();
|
ardAlarmRadar.setId(guideTask.getAlarmId());
|
if (guideTask.getRecordSn().equals(1)) {
|
ardAlarmRadar.setRecordUrl1(url);
|
} else {
|
ardAlarmRadar.setRecordUrl2(url);
|
}
|
ardAlarmRadarService.updateArdAlarmRadar(ardAlarmRadar);
|
break;
|
}
|
}
|
}
|
} catch (Exception ex) {
|
log.info("自动引导异常:" + ex.getMessage());
|
}
|
}
|
}
|