aijinhui
2023-12-14 af3b68eeca07a30967754dc1a61b8def9efe188c
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueTaskExecutor.java
@@ -15,21 +15,22 @@
import com.ruoyi.alarm.tube.service.IArdAlarmTubeService;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.device.camera.service.ICameraSdkService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
 * @ClassName QueueTaskExecutor
 * @Description: 队列任务执行器
 * @Description: 队列任务执行器-----弃用
 * @Author 刘苏义
 * @Date 2023/6/29 21:10
 * @Version 1.0
 */
@Component
@Slf4j(topic = "guideQueue")
public class QueueTaskExecutor {
    @Resource
@@ -39,14 +40,14 @@
    @Resource
    IArdAlarmRadarPumpService ardAlarmRadarPumpService;
    @Resource
    IHikClientService hikClientService;
    ICameraSdkService cameraSdkService;
    @Resource
    IArdAlarmTubeService ardAlarmTubeService;
    @Resource
    IArdAlarmExternalService ardAlarmExternalService;
    @Resource
    IArdAlarmAccessService ardAlarmAccessService;
    public void processTask(GuideTask guideTask) {
        try {
            CameraCmd cmd = new CameraCmd();
@@ -56,19 +57,35 @@
            cmd.setOperator(guideTask.getAlarmType());
            cmd.setExpired(30);
            cmd.setRecordBucketName("record");
            cmd.setRecordObjectName("alarm_" + guideTask.getAlarmId());
            Map<String, Double> ptzMap = new HashMap<>();
            ptzMap.put("p", guideTask.getGuidePTZ().getP());
            ptzMap.put("t", guideTask.getGuidePTZ().getT());
            ptzMap.put("z", guideTask.getGuidePTZ().getZ());
            cmd.setPtzMap(ptzMap);
            if (guideTask.getRecordSn().equals(1)) {
                cmd.setRecordObjectName("alarm_" + guideTask.getAlarmId() + "_1");
            } else {
                cmd.setRecordObjectName("alarm_" + guideTask.getAlarmId() + "_2");
            }
            log.debug("开始引导");
            boolean guideRes = hikClientService.guideTargetPosition(cmd);
            boolean guideRes = false;
            if (cmd.getPtzMap().get("p") != null) {
                //p值存在 优先引导ptz
                guideRes = cameraSdkService.setPtz(cmd);
            } else {
                guideRes = cameraSdkService.guideTargetPosition(cmd);
            }
            if (guideRes) {
                log.debug("引导成功");
                hikClientService.controlLock(cmd);//上锁
                hikClientService.recordStart(cmd);//开始录像
                cameraSdkService.controlLock(cmd);//上锁
                cameraSdkService.recordStart(cmd);//开始录像
                try {
                    Thread.sleep(30000);
                } catch (InterruptedException e) {
                    log.info("当前任务ID" + guideTask.getAlarmId() + "线程被终止");
                }
                String url = hikClientService.recordStopToMinio(cmd);//停止录像返回url
                String url = cameraSdkService.recordStopToMinio(cmd);//停止录像返回url
                if (StringUtils.isNotEmpty(url)) {
                    switch (guideTask.getAlarmType()) {
                        case "sys_tube_leak":
@@ -96,6 +113,7 @@
                                ardAlarmRadarFire.setRecordUrl2(url);
                            }
                            ardAlarmRadarFireService.updateArdAlarmRadarFire(ardAlarmRadarFire);
                            break;
                        case "sys_radar_pump":
                            ArdAlarmRadarPump ardAlarmRadarPump = new ArdAlarmRadarPump();
                            ardAlarmRadarPump.setId(guideTask.getAlarmId());
@@ -125,4 +143,4 @@
            log.info("线程任务异常:" + ex.getMessage());
        }
    }
}
}