设备状态同步更改

This commit is contained in:
lxj
2025-09-15 19:47:23 +08:00
parent 8eb47ddb11
commit 59b663c654
5 changed files with 64 additions and 6 deletions

View File

@@ -13,6 +13,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.sis.api.RemoteDeviceService;
import org.dromara.sis.api.RemoteHikSdkService;
import org.dromara.sis.api.domain.DeviceStateInfo;
import org.dromara.sis.api.domain.RemoteSdkChannel;
import org.dromara.sis.api.domain.RemoteSisDeviceChannel;
import org.dromara.sis.api.domain.RemoteSisDeviceManage;
@@ -170,18 +171,17 @@ public class HikDeviceCheckStateTask {
public void updateDeviceStatus(RemoteSisDeviceManage item) {
log.info("开始同步设备状态,params={}", item);
// 调用设备登录验证次设备在线
Boolean isLogin = remoteHikSdkService.deviceLogin(item);
int onLineState = isLogin ? 1 : 0;
if (!Objects.equals(item.getDeviceStatus(), onLineState)) {
SnailJobLog.REMOTE.info("设备[{}]在线状态变更,开始更新状态。 old={}new ={} ", item.getDeviceIp(), item.getDeviceStatus(), onLineState);
item.setDeviceStatus(onLineState);
DeviceStateInfo stateInfo = remoteHikSdkService.checkState(item);
if (!Objects.equals(item.getDeviceStatus(), stateInfo.getDeviceState())) {
SnailJobLog.REMOTE.info("设备[{}]在线状态变更,开始更新状态。 old={}new ={} ", item.getDeviceIp(), item.getDeviceStatus(), stateInfo.getDeviceState());
item.setDeviceStatus(stateInfo.getDeviceState());
Boolean result = remoteDeviceService.updateDeviceState(item);
SnailJobLog.REMOTE.info("设备[{}]在线状态变更,状态更新完成。 result={} ", item.getDeviceIp(), result);
// 监测当前设备是否存在通道,如果有则跟新通道信息
List<RemoteSisDeviceChannel> ls = remoteDeviceService.queryDeviceChannels(item.getDeviceIp());
if (CollUtil.isNotEmpty(ls)) {
Boolean r1 = remoteDeviceService.updateDeviceChannelState(item.getDeviceIp(), onLineState);
Boolean r1 = remoteDeviceService.updateDeviceChannelState(item.getDeviceIp(), stateInfo.getDeviceState());
SnailJobLog.REMOTE.info("设备通道[{}]在线状态变更,状态更新完成。 result={} ", item.getDeviceIp(), r1);
}
}