‘liusuyi’
2023-10-13 8456b0bbb9d1536ebb0b2dc476be736bdd5fb82c
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
@@ -1,15 +1,24 @@
package com.ruoyi.quartz.task;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.core.domain.entity.SysUser;
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.channel.domain.ArdChannel;
import com.ruoyi.device.hiksdk.service.IHikClientService;
import com.ruoyi.media.domain.Items;
import com.ruoyi.media.domain.JsonsRoot;
import com.ruoyi.media.domain.Vtdu;
import com.ruoyi.media.service.IMediaService;
import com.ruoyi.media.service.IVtduService;
import com.ruoyi.rongcloud.service.RongCloudService;
import com.ruoyi.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@@ -29,6 +38,10 @@
    IArdCamerasService iArdCamerasService;
    @Resource
    IHikClientService iHikClientService;
    @Resource
    IVtduService vtduService;
    @Resource
    IMediaService mediaService;
    /**
     * 同步相机在线状态
@@ -36,21 +49,26 @@
     * 2023/10/8 14:54:41
     */
    public void cameraState() {
        List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
        for (ArdCameras camera : ardCameras) {
            CameraCmd cmd = new CameraCmd();
            cmd.setCameraId(camera.getId());
            boolean onLineNew = iHikClientService.isOnLine(cmd);//相机实时状态
            boolean onLineOld = "1".equals(camera.getState());//相机历史状态
            //当状态发生变化时,更新实时状态
            if (onLineNew != onLineOld) {
                if (onLineNew) {
                    camera.setState("1");
                } else {
                    camera.setState("0");
        try {
            List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
            for (ArdCameras camera : ardCameras) {
                CameraCmd cmd = new CameraCmd();
                cmd.setCameraId(camera.getId());
                boolean onLineNew = iHikClientService.isOnLine(cmd);//相机实时状态
                boolean onLineOld = "1".equals(camera.getState());//相机历史状态
                //当状态发生变化时,更新实时状态
                if (onLineNew != onLineOld) {
                    if (onLineNew) {
                        camera.setState("1");
                    } else {
                        camera.setState("0");
                    }
                    iArdCamerasService.updateArdCameras(camera);
                }
                iArdCamerasService.updateArdCameras(camera);
            }
        } catch (Exception ex) {
            log.error("同步相机在线状态异常:" + ex.getMessage());
        }
    }
@@ -80,4 +98,19 @@
            log.error("融云在线接口异常:" + ex.getMessage());
        }
    }
    /**
     * 同步流媒体
     * 刘苏义
     * 2023/10/13 14:13:53
     */
    public void vtdu() {
        List<String> nameList = mediaService.getNameList();
        List<Vtdu> vtdus = vtduService.selectVtduList(new Vtdu());
        for (Vtdu vtdu : vtdus) {
            if (!nameList.contains(vtdu.getName())) {
                mediaService.addPath(vtdu.getName(),vtdu.getRtspSource(),vtdu.getMode(),vtdu.getIsCode());
            }
        }
    }
}