From 9943cfe1f2b6cd9b38612f7775951bd5f13dcaf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Wed, 21 Jan 2026 19:00:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=B5=E6=B1=A0=E7=9A=84?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/thingsboard/constants/DeviceTelemetry.java | 5 ++--- .../ruoyi/device/service/impl/BufferDeviceImpl.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java b/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java index 12fb5e4..86bedd4 100644 --- a/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java +++ b/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceTelemetry.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.device.domain.model.thingsboard.AttributeKey; import com.ruoyi.device.domain.model.thingsboard.TelemetryKey; +import com.ruoyi.device.domain.model.thingsboard.attributes.battery.BatteryInfo; import com.ruoyi.device.domain.model.thingsboard.attributes.psdk.PsdkDevice; import com.ruoyi.device.domain.model.thingsboard.attributes.battery.BatteryData; @@ -305,9 +306,7 @@ public class DeviceTelemetry { ); - /** - * 无人机特有 - */ + /** * 无人机挂载信息 diff --git a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java index 1d67add..b0c3138 100644 --- a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java @@ -173,6 +173,16 @@ public class BufferDeviceImpl implements IBufferDeviceService dto.setPayloadList(payloads); } + // 获取电池SN号 - 从 batteries 数组里面的第一个的 SN号 + TelemetryMap telemetryMap = thingsBoardDomain.getPredefinedDeviceTelemetry(device.getIotDeviceId()); + telemetryMap.get(DeviceTelemetry.BATTERY) + .ifPresent(telemetryValue -> { + var batteryData = telemetryValue.getValue(); + if (batteryData != null && !CollectionUtils.isEmpty(batteryData.getBatteries())) { + String batterySn = batteryData.getBatteries().get(0).getSn(); + dto.setBatterySn(batterySn); + } + }); return dto; }