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()); } } }