‘liusuyi’
2023-05-31 3280739f26b778b59e2588d8f08012c31f79174b
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/PatrolInspectionTask.java
@@ -7,9 +7,12 @@
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
import com.ruoyi.inspect.domain.ArdVideoInspectTask;
import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
import com.ruoyi.inspect.service.IArdVideoInspectRecordService;
import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -33,13 +36,14 @@
    IArdVideoInspectTaskService ardVideoInspectTaskService;
    @Resource
    IArdAlarmpointsWellService ardAlarmpointsWellService;
    @Resource
    IArdVideoInspectRecordService ardVideoInspectRecordService;
    @Resource
    IArdCamerasService ardCamerasService;
    @Resource
    IHikClientService hikClientService;
    public void scanRun() {
    public void scanRun(){
        /*扫描所有可执行任务1-时间满足2-自动*/
        log.info("开始扫描所有可执行任务");
        ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
@@ -87,7 +91,7 @@
                        {
                            /*控制相机巡检成功,开始录像*/
                            cmd.setEnable(true);//启动录像
                            hikClientService.record(cmd);
                            hikClientService.recordToMinio(cmd);
                            /*更新任务当前步骤id和步骤启动时间*/
                            ArdVideoInspectTask avit=new ArdVideoInspectTask();
                            avit.setId(videoInspectTask.getId());
@@ -105,7 +109,7 @@
                            .map(ArdVideoInspectTaskStep::getRecordingTime)
                            .findFirst();
                    if (recordingTime.isPresent()) {
                        System.out.println("找到了匹配的对象,名称为: " + recordingTime.get());
                        System.out.println("找到了匹配的recordingTime: " + recordingTime.get());
                        /*获取到当前步骤的持续时间*/
                        Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
                        Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate,recordingTime.get());
@@ -118,13 +122,24 @@
                            cmd.setChannelNum(channel);
                            cmd.setOperator("sys_patrol_inspect");
                            cmd.setEnable(false);//停止录像
                            String record = hikClientService.record(cmd);
                            String uuid = UUID.randomUUID().toString().replace("-", "");
                            String time = new SimpleDateFormat("yyyyMMdd").format(new Date());
                            String recordName = cameraId + "/" + time + "/" + uuid + ".mp4";
                            cmd.setRecordBucketName("record");
                            cmd.setRecordObjectName(recordName);
                            String url= MinioClientSingleton.domainUrl+ "/" +cmd.getRecordBucketName()+ "/"+recordName;
                            hikClientService.recordToMinio(cmd);
                            /*更新巡检记录*/
                            ArdVideoInspectRecord ardVideoInspectRecord=new ArdVideoInspectRecord();
                            ardVideoInspectRecord.setStepId(currentStepId);
                            ardVideoInspectRecord.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,currentStepStartDate));
                            ardVideoInspectRecord.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,currentStepStopDate));
                            ardVideoInspectRecord.setRecordFilePath(record);
                            ardVideoInspectRecordService.insertArdVideoInspectRecord(ardVideoInspectRecord);
                            log.info(record);
                        }
                    } else {
                        System.out.println("未找到匹配的对象");
                        System.out.println("未找到匹配的recordingTime");
                    }
                }