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; }