|  |  |  | 
|---|
|  |  |  | 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.dhsdk.service.IDhClientService; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | IArdCamerasService iArdCamerasService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | IHikClientService iHikClientService; | 
|---|
|  |  |  | IHikClientService hikClientService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | IDhClientService dhClientService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | IVtduService vtduService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | IMediaService mediaService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 同步相机在线状态 | 
|---|
|  |  |  | 
|---|
|  |  |  | * 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 { | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | iArdCamerasService.updateArdCameras(camera); | 
|---|
|  |  |  | boolean onLineOld = "1".equals(camera.getState()); | 
|---|
|  |  |  | if (onLineNew != onLineOld) { | 
|---|
|  |  |  | if (onLineNew) { | 
|---|
|  |  |  | camera.setState("1"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | camera.setState("0"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | iArdCamerasService.updateArdCameras(camera); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception ex) { | 
|---|
|  |  |  | log.error("同步相机在线状态异常:" + ex.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | log.error("融云在线接口异常:" + ex.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 同步流媒体 | 
|---|
|  |  |  | * 刘苏义 | 
|---|
|  |  |  | * 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|