From 9bee1836ddf0a93952c8ecc5910661b99e32a5fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Thu, 22 Jan 2026 17:44:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=8F=E7=BA=AC=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constants/DeviceAttributes.java | 26 ++++++++++++++++++- .../device/service/dto/DockDetailDTO.java | 9 +++++++ .../device/service/impl/BufferDeviceImpl.java | 9 +++++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceAttributes.java b/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceAttributes.java index 52e97dc..c305796 100644 --- a/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceAttributes.java +++ b/src/main/java/com/ruoyi/device/domain/model/thingsboard/constants/DeviceAttributes.java @@ -135,7 +135,29 @@ public class DeviceAttributes { ); + public static final AttributeKey Latitude = AttributeKey.of( + "latitude", + Double.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).doubleValue(); + } + return Double.parseDouble(value.toString()); + } + ); + public static final AttributeKey Longitude = AttributeKey.of( + "longitude", + Double.class, + value -> { + if (value == null) return null; + if (value instanceof Number) { + return ((Number) value).doubleValue(); + } + return Double.parseDouble(value.toString()); + } + ); // // // 空调状态 - Integer @@ -182,7 +204,9 @@ public class DeviceAttributes { DOCK_SN, SUB_DEVICE_SN, MODE_CODE, - Firmware_Version + Firmware_Version, + Latitude, + Longitude ); } diff --git a/src/main/java/com/ruoyi/device/service/dto/DockDetailDTO.java b/src/main/java/com/ruoyi/device/service/dto/DockDetailDTO.java index 7ba70da..aa93c86 100644 --- a/src/main/java/com/ruoyi/device/service/dto/DockDetailDTO.java +++ b/src/main/java/com/ruoyi/device/service/dto/DockDetailDTO.java @@ -140,5 +140,14 @@ public class DockDetailDTO implements Serializable /** Y轴夹状态 */ private String yAxisClampStatus; + /** + *纬度 + */ + private String latitude; + /** + * 经度 + */ + private String longitude; + } 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 824e32c..89eb992 100644 --- a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java @@ -307,6 +307,15 @@ public class BufferDeviceImpl implements IBufferDeviceService telemetryMap.get(DeviceTelemetry.HUMIDITY) .ifPresent(telemetryValue -> dto.setCabinHumidity(telemetryValue.getValue())); + // 赋予经纬度 + // 纬度 + attributeMap.get(DeviceAttributes.Latitude) + .ifPresent(latitude -> dto.setLatitude(latitude.toString())); + + // 经度 + attributeMap.get(DeviceAttributes.Longitude) + .ifPresent(longitude -> dto.setLongitude(longitude.toString())); + return dto; }