package com.ruoyi.quartz.task; 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.service.IHikClientService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * @Description: 同步设备状态任务 * @ClassName: syncDeviceStateTask * @Author: 刘苏义 * @Date: 2023年10月08日11:06:42 **/ @Component("syncTask") public class syncDeviceStateTask { @Resource IArdCamerasService iArdCamerasService; @Resource IHikClientService iHikClientService; public void cameraState() { List 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); } } } }