From 39f423dd28fbfd4fdb1b5e0df6c55dabb198e69e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 17 Jan 2026 15:36:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 2 +- .../thingsboard/GatewayDeviceIterator.java | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 0ebefc6..41a3375 100644 --- a/readme.md +++ b/readme.md @@ -1 +1 @@ -dddddddda +ddddddddddda diff --git a/src/main/java/com/ruoyi/device/domain/model/thingsboard/GatewayDeviceIterator.java b/src/main/java/com/ruoyi/device/domain/model/thingsboard/GatewayDeviceIterator.java index 4620b4d..17c2cc5 100644 --- a/src/main/java/com/ruoyi/device/domain/model/thingsboard/GatewayDeviceIterator.java +++ b/src/main/java/com/ruoyi/device/domain/model/thingsboard/GatewayDeviceIterator.java @@ -1,5 +1,7 @@ package com.ruoyi.device.domain.model.thingsboard; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.thingsboard.rest.client.RestClient; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.page.PageData; @@ -20,12 +22,15 @@ import java.util.stream.Collectors; */ public class GatewayDeviceIterator implements Iterable> { + private static final Logger log = LoggerFactory.getLogger(GatewayDeviceIterator.class); + private final RestClient client; private final int pageSize; public GatewayDeviceIterator(RestClient client, int pageSize) { this.client = client; this.pageSize = pageSize; + log.debug("初始化网关设备迭代器,页大小: {}", pageSize); } @Override @@ -68,12 +73,23 @@ public class GatewayDeviceIterator implements Iterable> { */ private void loadNextBatch() { nextBatch = null; + int skippedPages = 0; + int totalDevicesScanned = 0; + + log.debug("开始加载下一批网关设备"); // 循环直到找到至少一个网关设备,或者没有更多页 while (hasMorePages && (nextBatch == null || nextBatch.isEmpty())) { + int currentPageNumber = pageLink.getPage(); + // 获取当前页数据 + log.debug("正在获取第 {} 页设备数据,页大小: {}", currentPageNumber, pageSize); PageData currentPage = client.getTenantDevices("", pageLink); + int pageDeviceCount = currentPage.getData().size(); + totalDevicesScanned += pageDeviceCount; + log.debug("第 {} 页返回 {} 个设备", currentPageNumber, pageDeviceCount); + // 转换为DeviceInfo列表,并过滤出网关设备 nextBatch = currentPage.getData().stream() .filter(device -> { @@ -93,13 +109,32 @@ public class GatewayDeviceIterator implements Iterable> { )) .collect(Collectors.toList()); + int gatewayCount = nextBatch != null ? nextBatch.size() : 0; + log.debug("第 {} 页过滤后得到 {} 个网关设备", currentPageNumber, gatewayCount); + + // 如果当前页没有网关设备,记录跳过 + if (gatewayCount == 0) { + skippedPages++; + log.debug("第 {} 页没有网关设备,继续查找下一页", currentPageNumber); + } + // 准备下一页 if (currentPage.hasNext()) { pageLink = pageLink.nextPageLink(); } else { hasMorePages = false; + log.debug("已到达最后一页,总共扫描 {} 个设备,跳过 {} 个空页", totalDevicesScanned, skippedPages); } } + + // 输出最终结果日志 + if (nextBatch != null && !nextBatch.isEmpty()) { + log.info("成功加载 {} 个网关设备,共扫描 {} 个设备,跳过 {} 个空页", + nextBatch.size(), totalDevicesScanned, skippedPages); + } else { + log.info("没有找到更多网关设备,共扫描 {} 个设备,跳过 {} 个空页", + totalDevicesScanned, skippedPages); + } } }; }