1
aijinhui
2023-10-08 f6d9ad89c20eb9c9f4e27bd65c13ed6b66c56900
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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> 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);
            }
        }
    }
}