diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteHikDeviceService.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java similarity index 56% rename from ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteHikDeviceService.java rename to ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java index 0baa5659..95929d84 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteHikDeviceService.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java @@ -1,15 +1,17 @@ package org.dromara.sis.api; +import org.dromara.sis.api.domain.RemoteSdkChannel; import org.dromara.sis.api.domain.RemoteSisDeviceChannel; import org.dromara.sis.api.domain.RemoteSisDeviceManage; import java.util.List; -public interface RemoteHikDeviceService { +public interface RemoteDeviceService { /** * 查询所有的海康设备信息 + * * @return 返回海康设备列表 */ List queryHikDevices(); @@ -17,6 +19,7 @@ public interface RemoteHikDeviceService { /** * 更新设备在线状态 + * * @param item 设备信息 * @return 返回是否操作成功 */ @@ -24,6 +27,7 @@ public interface RemoteHikDeviceService { /** * 查询设备通道信息 + * * @param deviceIp 设备ip * @return 返回通道列表 */ @@ -31,8 +35,32 @@ public interface RemoteHikDeviceService { /** * 更新设备通道在线状态 + * * @param deviceIp 设备ip * @return 返回是否成功 */ Boolean updateDeviceChannelState(String deviceIp, Integer onLineState); + + /** + * 根据ip列表删除设备通道 + * + * @param list ip列表 + * @return 返回删除条数 + */ + Integer deleteByChannelIps(List list); + + /** + * 批量写入设备通道 + * + * @param insertData 写入数据 + * @return 返回写入条数 + */ + Boolean insertChannel(List insertData); + + /** + * 更新设备通道信息 + * @param updateData 更新数据 + * @return 返回更新成功数量 + */ + Integer updateChannelInfo(List updateData); } diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSdkChannel.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSdkChannel.java index a2ab7a48..25422584 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSdkChannel.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSdkChannel.java @@ -5,6 +5,23 @@ import lombok.Data; @Data public class RemoteSdkChannel { + + private Long deviceId; + + private String nvrIp; + + private Integer nvrPort; + + private String nvrAccount; + + private String nvrPwd; + + private String nvrFactoryNo; + + private Long groupId; + + private String tenantId; + /** * 通道id */ diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java index 02253ef8..8cd5247b 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java @@ -62,4 +62,9 @@ public class RemoteSisDeviceManage { * 设备组id */ private Long groupId; + + /** + * 租户编号 + */ + private String tenantId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java new file mode 100644 index 00000000..8b495801 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java @@ -0,0 +1,106 @@ +package org.dromara.sis.dubbo; + +import cn.hutool.core.util.StrUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.api.RemoteDeviceService; +import org.dromara.sis.api.domain.RemoteSdkChannel; +import org.dromara.sis.api.domain.RemoteSisDeviceChannel; +import org.dromara.sis.api.domain.RemoteSisDeviceManage; +import org.dromara.sis.domain.SisDeviceChannel; +import org.dromara.sis.domain.SisDeviceManage; +import org.dromara.sis.domain.covert.CommonBeanCovert; +import org.dromara.sis.sdk.hik.HikSdkConstans; +import org.dromara.sis.service.ISisDeviceChannelService; +import org.dromara.sis.service.ISisDeviceManageService; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 海康设备远程服务调用 + * + * @author lxj + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class RemoteDeviceServiceImpl implements RemoteDeviceService { + + private final ISisDeviceManageService deviceManageService; + private final ISisDeviceChannelService deviceChannelService; + + @Override + public List queryHikDevices() { + List sisDeviceManages = deviceManageService.queryHikDevices(); + return CommonBeanCovert.INSTANCE.entity2Remote(sisDeviceManages); + } + + @Override + public Boolean updateDeviceState(RemoteSisDeviceManage item) { + return deviceManageService.updateDeviceState(CommonBeanCovert.INSTANCE.Remote2Entity(item)); + } + + @Override + public List queryDeviceChannels(String deviceIp) { + List channels = deviceChannelService.queryByDeviceIp(deviceIp); + return CommonBeanCovert.INSTANCE.channelEntity2Remote(channels); + } + + @Override + public Boolean updateDeviceChannelState(String deviceIp, Integer onLineState) { + return deviceChannelService.updateDeviceChannelState(deviceIp, onLineState); + } + + @Override + public Integer deleteByChannelIps(List list) { + return deviceChannelService.deleteByChannelIps(list); + } + + @Override + public Boolean insertChannel(List insertData) { + List list = insertData.stream().map(item -> { + SisDeviceChannel channel = new SisDeviceChannel(); + // 通道设备信息 + channel.setDeviceIp(item.getChannelIp()); + channel.setDevicePort(Integer.valueOf(item.getChannelPort())); + channel.setDeviceAccount(item.getChannelAccount()); + // 目前没发获取通道设备厂商,默认跟着录像机走 + channel.setFactoryNo(item.getNvrFactoryNo()); + channel.setChannelNo(HikSdkConstans.DEFAULT_CHANNEL); + channel.setChannelState(item.getChannelStatus()); + if (StrUtil.isNotEmpty(item.getChannelPwd())) { + channel.setDevicePwd(item.getChannelPwd()); + } + // nvr 设备信息 + channel.setNvrIp(item.getNvrIp()); + channel.setNvrPort(HikSdkConstans.DEFAULT_RTSP_PORT); + channel.setNvrAccount(item.getNvrAccount()); + channel.setNvrPwd(item.getNvrPwd()); + channel.setNvrFactoryNo(item.getNvrFactoryNo()); + channel.setNvrChannelNo(item.getChannelId() + HikSdkConstans.DEFAULT_CHANNEL_PREFX); + + // 系统设备信息 + // 将设备id 更改为nvr的设备id + channel.setDeviceId(item.getDeviceId()); + channel.setGroupId(item.getGroupId()); + channel.setChannelName(item.getChannelName()); + channel.setChannelNo(item.getChannelId() + HikSdkConstans.DEFAULT_CHANNEL_PREFX); + channel.setTenantId(item.getTenantId()); + return channel; + }).toList(); + return deviceChannelService.batchInsert(list); + } + + @Override + public Integer updateChannelInfo(List updateData) { + int num = 0; + for (RemoteSisDeviceChannel item : updateData) { + Boolean b = deviceChannelService.updateDeviceChannelState(item.getDeviceIp(), item.getChannelState()); + if (b) { + num++; + } + } + return num; + } +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteHikDeviceServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteHikDeviceServiceImpl.java deleted file mode 100644 index a5944f8e..00000000 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteHikDeviceServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.dromara.sis.dubbo; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.dromara.sis.api.RemoteHikDeviceService; -import org.dromara.sis.api.domain.RemoteSisDeviceChannel; -import org.dromara.sis.api.domain.RemoteSisDeviceManage; -import org.dromara.sis.domain.SisDeviceChannel; -import org.dromara.sis.domain.SisDeviceManage; -import org.dromara.sis.domain.covert.CommonBeanCovert; -import org.dromara.sis.service.ISisDeviceChannelService; -import org.dromara.sis.service.ISisDeviceManageService; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * 海康设备远程服务调用 - * - * @author lxj - */ -@Slf4j -@Component -@RequiredArgsConstructor -public class RemoteHikDeviceServiceImpl implements RemoteHikDeviceService { - - private final ISisDeviceManageService deviceManageService; - private final ISisDeviceChannelService deviceChannelService; - - @Override - public List queryHikDevices() { - List sisDeviceManages = deviceManageService.queryHikDevices(); - return CommonBeanCovert.INSTANCE.entity2Remote(sisDeviceManages); - } - - @Override - public Boolean updateDeviceState(RemoteSisDeviceManage item) { - return deviceManageService.updateDeviceState(CommonBeanCovert.INSTANCE.Remote2Entity(item)); - } - - @Override - public List queryDeviceChannels(String deviceIp) { - List channels = deviceChannelService.queryByDeviceIp(deviceIp); - return CommonBeanCovert.INSTANCE.channelEntity2Remote(channels); - } - - @Override - public Boolean updateDeviceChannelState(String deviceIp, Integer onLineState) { - return deviceChannelService.updateDeviceChannelState(deviceIp, onLineState); - } -} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java index 8773a9fa..a44cd638 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikAlarmCallBack.java @@ -8,14 +8,18 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.property.api.RemoteFloorService; -import org.dromara.property.api.domain.vo.RemoteFloorVo; -import org.dromara.sis.domain.vo.*; +import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.domain.vo.SisAuthGroupRefVo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.domain.vo.SisDeviceBindRefVo; import org.dromara.sis.sdk.e8.E8PlatformApi; import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; import org.dromara.sis.sdk.hik.HCNetSDK; -import org.dromara.sis.sdk.hik.HikApiService; import org.dromara.sis.sdk.huawei.HuaWeiBoxApi; -import org.dromara.sis.service.*; +import org.dromara.sis.service.ISisAccessControlService; +import org.dromara.sis.service.ISisAuthGroupRefService; +import org.dromara.sis.service.ISisAuthRecordService; +import org.dromara.sis.service.ISisDeviceBindRefService; import org.springframework.stereotype.Component; import java.io.FileNotFoundException; @@ -23,7 +27,9 @@ import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Collection; +import java.util.Date; +import java.util.List; import static org.dromara.sis.sdk.hik.HCNetSDK.*; @@ -35,10 +41,8 @@ public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 { private final HuaWeiBoxApi huaWeiBoxApi; private final ISisAuthRecordService authRecordService; private final ISisAuthGroupRefService authGroupRefService; - private final ISisElevatorInfoService elevatorInfoService; private final ISisDeviceBindRefService deviceBindRefService; private final ISisAccessControlService accessControlService; - private final ISisElevatorFloorRefService elevatorFloorRefService; private final E8PlatformApi e8PlatformApi; @DubboReference @@ -330,7 +334,7 @@ public class HikAlarmCallBack implements HCNetSDK.FMSGCallBack_V31 { } Date now = new Date(); - if(DateUtil.compare(now, authRecord.getEndDate()) > 0){ + if (DateUtil.compare(now, authRecord.getEndDate()) > 0) { log.info("当前人脸已过期,暂不处理。"); return true; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikDevWorkStateCallBack.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikDevWorkStateCallBack.java index 80121069..26e6e007 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikDevWorkStateCallBack.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/hik/calback/HikDevWorkStateCallBack.java @@ -24,6 +24,7 @@ public class HikDevWorkStateCallBack implements HCNetSDK.DEV_WORK_STATE_CB { } lpWorkState.read(); log.info(JSON.toJSONString(lpWorkState)); + log.info("海康sdk心跳信息上报, tda = {}", JSON.toJSONString(lpWorkState)); return true; } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java index 5bb6b362..76130014 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java @@ -60,6 +60,14 @@ public interface ISisDeviceChannelService { */ Boolean insert(SisDeviceChannel channel); + /** + * 批量写入通道信息 + * + * @param list 批量写入通道信息 + * @return 返回写入数量 + */ + Boolean batchInsert(List list); + /** * 修改设备通道管理 * @@ -77,6 +85,21 @@ public interface ISisDeviceChannelService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 通过设备ids 删除设备通道信息 + * + * @param deviceIds 设备ids + * @return 返回删除数量 + */ + Integer deleteByDeviceIds(List deviceIds); + + /** + * 通过通道ip删除设备通道 + * + * @param list ip列表 + */ + Integer deleteByChannelIps(List list); + /** * 查询设备通道树 * @@ -87,13 +110,6 @@ public interface ISisDeviceChannelService { void handleHikDeviceChannel(SisDeviceManageBo bo); - /** - * 通过设备ids 删除设备通道信息 - * - * @param deviceIds 设备ids - * @return 返回删除数量 - */ - Integer deleteByDeviceIds(List deviceIds); SisDeviceChannel queryByChannelIp(String channelIp); @@ -107,8 +123,11 @@ public interface ISisDeviceChannelService { /** * 更新设备状态 + * * @param deviceIp 设备ip * @return 返回是否操作成功 */ Boolean updateDeviceChannelState(String deviceIp, Integer onLineState); + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceChannelServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceChannelServiceImpl.java index f09bfe08..e24d642e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceChannelServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceChannelServiceImpl.java @@ -123,6 +123,11 @@ public class SisDeviceChannelServiceImpl implements ISisDeviceChannelService { return baseMapper.insert(channel) > 0; } + @Override + public Boolean batchInsert(List list) { + return baseMapper.insertBatch(list); + } + /** * 修改设备通道管理 * @@ -302,6 +307,13 @@ public class SisDeviceChannelServiceImpl implements ISisDeviceChannelService { return baseMapper.delete(lqw); } + @Override + public Integer deleteByChannelIps(List list) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(SisDeviceChannel::getDeviceIp, list); + return baseMapper.delete(lqw); + } + @Override public List queryByDeviceIp(String deviceIp) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/HikDeviceCheckStateTask.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/HikDeviceCheckStateTask.java index 4c0ba39e..749a6c4b 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/HikDeviceCheckStateTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/sis/HikDeviceCheckStateTask.java @@ -5,9 +5,10 @@ import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; import com.aizuda.snailjob.client.job.core.dto.JobArgs; import com.aizuda.snailjob.client.model.ExecuteResult; import com.aizuda.snailjob.common.log.SnailJobLog; +import com.alibaba.fastjson2.JSONObject; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; -import org.dromara.sis.api.RemoteHikDeviceService; +import org.dromara.sis.api.RemoteDeviceService; import org.dromara.sis.api.RemoteHikSdkService; import org.dromara.sis.api.domain.RemoteSdkChannel; import org.dromara.sis.api.domain.RemoteSisDeviceChannel; @@ -15,8 +16,7 @@ import org.dromara.sis.api.domain.RemoteSisDeviceManage; import org.dromara.sis.api.enums.DeviceTypeEnum; import org.springframework.stereotype.Component; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -31,7 +31,7 @@ import java.util.stream.Collectors; public class HikDeviceCheckStateTask { @DubboReference - private RemoteHikDeviceService remoteHikDeviceService; + private RemoteDeviceService remoteDeviceService; @DubboReference private RemoteHikSdkService remoteHikSdkService; @@ -44,7 +44,7 @@ public class HikDeviceCheckStateTask { * @throws InterruptedException */ public ExecuteResult jobExecute(JobArgs jobArgs) throws InterruptedException { - List device = remoteHikDeviceService.queryHikDevices(); + List device = remoteDeviceService.queryHikDevices(); if (CollUtil.isEmpty(device)) { SnailJobLog.REMOTE.info("需要同步的hik设备数量为0,任务执行结束"); return ExecuteResult.success(); @@ -76,17 +76,71 @@ public class HikDeviceCheckStateTask { */ private void updateDeviceChannelStatus(RemoteSisDeviceManage sisDeviceManage) { // 查询设备通道信息 - List ls = remoteHikDeviceService.queryDeviceChannels(sisDeviceManage.getDeviceIp()); + List ls = remoteDeviceService.queryDeviceChannels(sisDeviceManage.getDeviceIp()); SnailJobLog.REMOTE.info("设备[{}]本地通道数量={}", sisDeviceManage.getDeviceIp(), ls.size()); List sdkChannels = remoteHikSdkService.getDeviceChannel(sisDeviceManage.getDeviceIp()); SnailJobLog.REMOTE.info("设备[{}]sdk通道数量={}", sisDeviceManage.getDeviceIp(), sdkChannels.size()); Map data1 = ls.stream().collect(Collectors.toMap(RemoteSisDeviceChannel::getDeviceIp, item -> item)); Map data2 = sdkChannels.stream().collect(Collectors.toMap(RemoteSdkChannel::getChannelIp, item -> item)); + Set keys = new HashSet<>(data1.size() + data2.size()); + keys.addAll(data1.keySet()); + keys.addAll(data2.keySet()); + // 在data1 不在data2 的数据 -- 删除本体通道 + List deleteData = new ArrayList<>(data1.size()); + // 在data2有 data1中没有的数据 -- 写入本地通道 + List insertData = new ArrayList<>(data1.size()); + // 在2个集合中都存在的数据 -- 更新本地通道 + List updateData = new ArrayList<>(data1.size()); + keys.forEach(item -> { + RemoteSisDeviceChannel remoteSisDeviceChannel = data1.get(item); + RemoteSdkChannel remoteSdkChannel = data2.get(item); + if (remoteSisDeviceChannel == null) { + if (remoteSdkChannel != null) { + remoteSdkChannel.setDeviceId(sisDeviceManage.getId()); + remoteSdkChannel.setNvrIp(sisDeviceManage.getDeviceIp()); + remoteSdkChannel.setNvrPort(sisDeviceManage.getDevicePort()); + remoteSdkChannel.setNvrAccount(sisDeviceManage.getDeviceAccount()); + remoteSdkChannel.setNvrPwd(sisDeviceManage.getDevicePwd()); + remoteSdkChannel.setNvrFactoryNo(sisDeviceManage.getFactoryNo()); + remoteSdkChannel.setGroupId(sisDeviceManage.getGroupId()); + remoteSdkChannel.setTenantId(sisDeviceManage.getTenantId()); + // 写入 + insertData.add(remoteSdkChannel); + } + } else { + if (remoteSdkChannel == null) { + // 删除 + deleteData.add(remoteSisDeviceChannel); + } else { + // 更新 + if (!Objects.equals(remoteSdkChannel.getChannelStatus(), remoteSisDeviceChannel.getChannelState())) { + updateData.add(remoteSisDeviceChannel); + } + } + } + }); + // 开始执行更新操作 + if (!deleteData.isEmpty()) { + List delList = deleteData.stream().map(RemoteSisDeviceChannel::getDeviceIp).toList(); + int num = remoteDeviceService.deleteByChannelIps(delList); + SnailJobLog.REMOTE.info("删除通道完成,删除数量={}", num); + SnailJobLog.REMOTE.info("删除的通道列表={}", JSONObject.toJSONString(delList)); + } + // 开始写入操作 + if (!insertData.isEmpty()) { + Boolean result = remoteDeviceService.insertChannel(insertData); + SnailJobLog.REMOTE.info("写入通道信息完成,result={}", result); + } + // 开始更新操作 + if (!updateData.isEmpty()) { + Integer i = remoteDeviceService.updateChannelInfo(updateData); + SnailJobLog.REMOTE.info("更新通道完成,通道数量={},完成数量={}", updateData.size(), i); + } } @@ -104,16 +158,17 @@ public class HikDeviceCheckStateTask { if (item.getDeviceStatus() != onLineState) { SnailJobLog.REMOTE.info("设备[{}]在线状态变更,开始更新状态。 old={},new ={} ", item.getDeviceIp(), item.getDeviceStatus(), onLineState); item.setDeviceStatus(onLineState); - Boolean result = remoteHikDeviceService.updateDeviceState(item); + Boolean result = remoteDeviceService.updateDeviceState(item); SnailJobLog.REMOTE.info("设备[{}]在线状态变更,状态更新完成。 result={} ", item.getDeviceIp(), result); // 监测当前设备是否存在通道,如果有则跟新通道信息 - List ls = remoteHikDeviceService.queryDeviceChannels(item.getDeviceIp()); + List ls = remoteDeviceService.queryDeviceChannels(item.getDeviceIp()); if (CollUtil.isNotEmpty(ls)) { - Boolean r1 = remoteHikDeviceService.updateDeviceChannelState(item.getDeviceIp(), onLineState); + Boolean r1 = remoteDeviceService.updateDeviceChannelState(item.getDeviceIp(), onLineState); SnailJobLog.REMOTE.info("设备通道[{}]在线状态变更,状态更新完成。 result={} ", item.getDeviceIp(), r1); } } return isLogin; } + }