| | |
| | | package com.ruoyi.quartz.task;
|
| | |
|
| | |
|
| | | import com.ruoyi.common.core.domain.AjaxResult;
|
| | | import com.ruoyi.common.core.domain.entity.SysUser;
|
| | | import com.ruoyi.common.utils.uuid.IdUtils;
|
| | | import com.ruoyi.device.camera.domain.ArdCameras;
|
| | | import com.ruoyi.device.camera.domain.CameraCmd;
|
| | | import com.ruoyi.device.camera.factory.CameraSDK;
|
| | | import com.ruoyi.device.camera.factory.CameraSDKFactory;
|
| | | import com.ruoyi.device.camera.service.IArdCamerasService;
|
| | | import com.ruoyi.device.camera.service.ICameraSdkService;
|
| | | import com.ruoyi.device.channel.domain.ArdChannel;
|
| | | import com.ruoyi.device.channel.service.IArdChannelService;
|
| | | import com.ruoyi.device.channel.service.impl.ArdChannelServiceImpl;
|
| | | 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 com.ruoyi.utils.sdk.dhsdk.service.impl.DhSdkStrategy;
|
| | | import com.ruoyi.utils.sdk.hiksdk.service.impl.HikSdkStrategy;
|
| | | import com.ruoyi.utils.sdk.dhsdk.service.impl.DahuaSDK;
|
| | | import com.ruoyi.utils.sdk.hiksdk.service.impl.HikvisionSDK;
|
| | | import lombok.extern.slf4j.Slf4j;
|
| | | import org.springframework.stereotype.Component;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import java.util.List;
|
| | | import java.util.UUID;
|
| | | import java.util.stream.Collectors;
|
| | |
|
| | | /**
|
| | | * @Description: 同步任务
|
| | |
| | | @Resource
|
| | | IArdCamerasService iArdCamerasService;
|
| | | @Resource
|
| | | HikSdkStrategy hikClientService;
|
| | | @Resource
|
| | | DhSdkStrategy dhClientService;
|
| | | @Resource
|
| | | IVtduService vtduService;
|
| | | @Resource
|
| | | IMediaService mediaService;
|
| | | @Resource
|
| | | private ICameraSdkService cameraSdkService;
|
| | | @Resource
|
| | | private CameraSDKFactory cameraSDKFactory;
|
| | | @Resource
|
| | | private IArdChannelService ardChannelService;
|
| | |
|
| | | /**
|
| | | * 同步相机在线状态
|
| | |
| | | */
|
| | | public void cameraState() {
|
| | | try {
|
| | | ArdCameras ardCamera = new ArdCameras();
|
| | | ArdCameras ardCamera = new ArdCameras();
|
| | | //调用查询方法
|
| | | List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(ardCamera);
|
| | | for (ArdCameras camera : ardCameras) {
|
| | | CameraCmd cmd = new CameraCmd();
|
| | | cmd.setCameraId(camera.getId());
|
| | | boolean onLineNew = false;
|
| | | // 判断是1还是2
|
| | | if (camera.getFactory().equals("1")) {
|
| | | onLineNew = hikClientService.isOnLine(cmd);
|
| | | } else if (camera.getFactory().equals("2")) {
|
| | | onLineNew = dhClientService.isOnLine(cmd);
|
| | | }
|
| | | boolean onLineNew = cameraSdkService.isOnLine(cmd);
|
| | | boolean onLineOld = "1".equals(camera.getState());
|
| | | if (onLineNew != onLineOld) {
|
| | | if (onLineNew) {
|
| | |
| | | }
|
| | | } catch (Exception ex) {
|
| | | log.error("同步相机在线状态异常:" + ex.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * @Author 刘苏义
|
| | | * @Description 同步通道状态实时同步流媒体
|
| | | * @Date 2024/7/9 16:01
|
| | | */
|
| | | public void syncChannelState() {
|
| | | log.debug("定时同步通道任务开始");
|
| | | //获取所有nvr设备
|
| | | List<ArdCameras> ardCamerasList = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
|
| | | if (ardCamerasList.size() > 0) {
|
| | | ardCamerasList.stream()
|
| | | .forEach(ardCameras -> {
|
| | | if (ardCameras.getLoginId() > 0) {
|
| | | //通过SDK获取NVR实际通道
|
| | | CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(ardCameras.getFactory());
|
| | | List<ArdChannel> ardChannelList = cameraSDK.getChannels(ardCameras);
|
| | | //同步通道表
|
| | | ArdChannel ardChannel = new ArdChannel();
|
| | | ardChannel.setDeviceId(ardCameras.getId());
|
| | | List<ArdChannel> ardChannelListDb = ardChannelService.selectArdChannelList(ardChannel);
|
| | | ardChannelService.asyncChannel(ardCameras, ardChannelListDb, ardChannelList);
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | * 刘苏义
|
| | | * 2023/10/13 14:13:53
|
| | | */
|
| | | public void vtdu() {
|
| | |
|
| | | List<Vtdu> vtdus = vtduService.selectVtduList(new Vtdu());
|
| | | for (Vtdu vtdu : vtdus) {
|
| | | boolean nameExist = mediaService.checkNameExist(vtdu.getName());
|
| | | if (!nameExist) {
|
| | | mediaService.addPath(vtdu.getName(), vtdu.getRtspSource(), vtdu.getMode(), vtdu.getIsCode());
|
| | | }
|
| | | }
|
| | | public void syncVtdu() {
|
| | | log.debug("定时同步流媒体任务开始");
|
| | | List<String> nameList = mediaService.getNameList();
|
| | | List<Vtdu> vtduList = vtduService.selectVtduList(new Vtdu());
|
| | | vtduService.asyncVtdu(vtduList, nameList);
|
| | | }
|
| | | }
|
| | | } |