diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkMetDataService.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkMetDataService.java index fc05f13..d53ba53 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkMetDataService.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkMetDataService.java @@ -29,31 +29,33 @@ public class DevLinkMetDataService extends DevLinkRealTimeDataService { //封装数据 - public DeviceRealtimedataMeteorology setData(Map propertiesMap){ + public DeviceRealtimedataMeteorology setData(Map propertiesMap){ DeviceRealtimedataMeteorology build = DeviceRealtimedataMeteorology.builder() - .deviceId(Long.parseLong(propertiesMap.get("deviceId").toString())) - .airTemp(new BigDecimal(propertiesMap.get("airTemp").toString())) - .airHumi(new BigDecimal(propertiesMap.get("airHumi").toString())) - .windSpeed(new BigDecimal(propertiesMap.get("windSpeed").toString())) - .windDir(new BigDecimal(propertiesMap.get("windDir").toString())) - .airPre(new BigDecimal(propertiesMap.get("airPre").toString())) - .guangzhao(Long.parseLong(propertiesMap.get("guangzhao").toString())) - .fushe(new BigDecimal(propertiesMap.get("fushe").toString())) - .sumRain(new BigDecimal(propertiesMap.get("sumRain").toString())) - .sumRain(new BigDecimal(propertiesMap.get("sumRain").toString())) - .insRain(new BigDecimal(propertiesMap.get("insRain").toString())) - .dayRain(new BigDecimal(propertiesMap.get("dayRain").toString())) - .zhengfa(new BigDecimal(propertiesMap.get("zhengfa").toString())) - .soilTemp(new BigDecimal(propertiesMap.get("soilTemp").toString())) - .soilHumi(new BigDecimal(propertiesMap.get("soilHumi").toString())) + .deviceId(propertiesMap.get("deviceId")) + .airTemp(toBigDecimalValue(propertiesMap.get("airTemp"))) + .airHumi(toBigDecimalValue(propertiesMap.get("airHumi"))) + .windSpeed(toBigDecimalValue(propertiesMap.get("windSpeed"))) + .windDir(toBigDecimalValue(propertiesMap.get("windDir"))) + .airPre(toBigDecimalValue(propertiesMap.get("airPre"))) + .guangzhao(toBigDecimalValue(propertiesMap.get("guangzhao"))) + .fushe(toBigDecimalValue(propertiesMap.get("fushe"))) + .sumRain(toBigDecimalValue(propertiesMap.get("sumRain"))) + .sumRain(toBigDecimalValue(propertiesMap.get("sumRain"))) + .insRain(toBigDecimalValue(propertiesMap.get("insRain"))) + .dayRain(toBigDecimalValue(propertiesMap.get("dayRain"))) + .zhengfa(toBigDecimalValue(propertiesMap.get("zhengfa"))) + .soilTemp(toBigDecimalValue(propertiesMap.get("soilTemp"))) + .soilHumi(toBigDecimalValue(propertiesMap.get("soilHumi"))) .build(); + + System.err.println(build); return build; } public static void main(String[] args) { DevLinkMetDataService devLinkMetDataService = new DevLinkMetDataService(); - Map metDeviceRealData = devLinkMetDataService.getMetDeviceRealData("3269"); + Map metDeviceRealData = devLinkMetDataService.getMetDeviceRealData("3269"); devLinkMetDataService.setData(metDeviceRealData); } } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkRealTimeDataService.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkRealTimeDataService.java index 34dc435..26f435c 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkRealTimeDataService.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/api/devlink/service/DevLinkRealTimeDataService.java @@ -8,6 +8,8 @@ import com.fastbee.common.utils.DateUtils; import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; + +import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; @@ -22,7 +24,7 @@ public class DevLinkRealTimeDataService { * @param deviceId 设备id * @return 实时数据 */ - public Map getMetDeviceRealData(String deviceId){ + public Map getMetDeviceRealData(String deviceId){ String result = requestDeviceData(deviceId); //解析返回数据 JSONObject jsonObject = JSONUtil.parseObj(result); @@ -37,7 +39,7 @@ public class DevLinkRealTimeDataService { DeviceRealtimedataMeteorology realData = new DeviceRealtimedataMeteorology(); //获取设备各项属性实时数据 //设备属性与值建立map - Map propertiesMap = new HashMap<>(); + Map propertiesMap = new HashMap<>(); propertiesArray.forEach(p -> { Object property = JSONUtil.parseObj(p).get("property"); JSONObject propertyMap = JSONUtil.parseObj(property); @@ -47,17 +49,22 @@ public class DevLinkRealTimeDataService { //属性key String key = propertyMap.get("key").toString(); //属性值 - String value = JSONUtil.parseObj(p).get("value").toString(); + Object value1 = JSONUtil.parseObj(p).get("value"); + String value="" ; + if(value1!=null){ + value = value1.toString(); + } + //TODO 属性值历史数据,是否需要 Object list = JSONUtil.parseObj(p).get("list"); // System.err.print("name:"+name); -// System.err.print("key:"+key); -// System.err.println("------------value:"+value); + System.err.print("key:"+key); + System.err.println("------------value:"+value); //建立属性-值映射关系 propertiesMap.put(key,value); // saveRealData(key,value,realData); }); - propertiesMap.put("status",status); + propertiesMap.put("status",status.toString()); propertiesMap.put("deviceId",deviceId); return propertiesMap; @@ -82,9 +89,16 @@ public class DevLinkRealTimeDataService { return HttpUtil.post(authorization.getBaseUrl() + authorization.getAuth(), jsonStr); } + public BigDecimal toBigDecimalValue(String str) { + if (str == null) { + return null; + } + return new BigDecimal(str); + } + public static void main(String[] args) { DevLinkRealTimeDataService devLinkRealTimeDataService = new DevLinkRealTimeDataService(); - Map metDeviceRealData = devLinkRealTimeDataService.getMetDeviceRealData("3269"); - System.err.println(metDeviceRealData); + Map metDeviceRealData = devLinkRealTimeDataService.getMetDeviceRealData("3270"); +// System.err.println(metDeviceRealData); } } diff --git a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMeteorology.java b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMeteorology.java index bf2ad18..047ea43 100644 --- a/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMeteorology.java +++ b/fastbee-service/fastbee-device-service/src/main/java/com/fastbee/deviceData/domain/DeviceRealtimedataMeteorology.java @@ -1,6 +1,8 @@ package com.fastbee.deviceData.domain; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.*; @@ -22,6 +24,7 @@ import org.apache.poi.hpsf.Decimal; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode(callSuper = true) +@TableName("iot_device_realtimedata_meteorology") public class DeviceRealtimedataMeteorology extends BaseEntity { private static final long serialVersionUID = 1L; @@ -32,7 +35,7 @@ private static final long serialVersionUID = 1L; /** 设备id */ @Excel(name = "设备id") @ApiModelProperty("设备id") - private Long deviceId; + private String deviceId; /** 空气温度 */ @Excel(name = "空气温度") @@ -62,7 +65,7 @@ private static final long serialVersionUID = 1L; /** 光照度 */ @Excel(name = "光照度") @ApiModelProperty("光照度") - private Long guangzhao; + private BigDecimal guangzhao; /** 光合有效辐射 */ @Excel(name = "光合有效辐射")