diff --git a/src/main/java/com/ruoyi/device/service/impl/SynService.java b/src/main/java/com/ruoyi/device/service/impl/SynService.java index 9f69b04..0d55a6c 100644 --- a/src/main/java/com/ruoyi/device/service/impl/SynService.java +++ b/src/main/java/com/ruoyi/device/service/impl/SynService.java @@ -119,55 +119,11 @@ public class SynService { return false; } - /** - * 建立设备到网关的映射关系 - * 优化策略:先识别所有网关设备,然后为每个网关查询其子设备 - * - * @return 设备ID到网关ID的映射 Map<子设备ID, 网关ID> - */ - private Map buildDeviceToGatewayMap() { - Map deviceToGatewayMap = new HashMap<>(); - try { - // 获取所有设备 - Iterable> allDevices = iThingsBoardDomain.getAllDevices(); - List gatewayDevices = new ArrayList<>(); - - // 第一步:识别所有网关设备 - for (List deviceBatch : allDevices) { - for (DeviceInfo deviceInfo : deviceBatch) { - if (deviceInfo.isGateway()) { - gatewayDevices.add(deviceInfo); - } - } - } - - log.info("发现 {} 个网关设备", gatewayDevices.size()); - - // 第二步:为每个网关查询其子设备,建立映射关系 - for (DeviceInfo gateway : gatewayDevices) { - String gatewayId = gateway.getId(); - List childDeviceIds = iThingsBoardDomain.getGatewayChildDevices(gatewayId); - - for (String childDeviceId : childDeviceIds) { - deviceToGatewayMap.put(childDeviceId, gatewayId); - } - - log.debug("网关 {} 有 {} 个子设备", gateway.getName(), childDeviceIds.size()); - } - - log.info("成功建立设备到网关的映射关系,共 {} 个子设备", deviceToGatewayMap.size()); - - } catch (Exception e) { - log.error("建立设备到网关映射关系失败: {}", e.getMessage(), e); - } - - return deviceToGatewayMap; - } /** * 定时任务:同步基础表数据 - * 执行时间:启动后1分钟开始,每2分钟执行一次(可通过配置文件修改) + * 执行时间:启动后1分钟开始,每10分钟执行一次(可通过配置文件修改) * 配置项:device.schedule.print-devices.initial-delay 初始延迟时间(毫秒) * device.schedule.print-devices.fixed-delay 执行间隔时间(毫秒) * @@ -177,7 +133,7 @@ public class SynService { * 3. 同步非网关的独立设备(机场和无人机) */ @Scheduled(initialDelayString = "${device.schedule.update-devices.initial-delay:60000}", - fixedDelayString = "${device.schedule.update-devices.fixed-delay:120000}") + fixedDelayString = "${device.schedule.update-devices.fixed-delay:600000}") public void updateDevicesScheduled() { try { log.info("========== 开始执行定时任务:同步基础表数据 ==========");