添加对数据属性为null处理

This commit is contained in:
mi9688
2024-11-14 15:54:04 +08:00
parent fb5d6c8b58
commit f846f7aa6d
3 changed files with 46 additions and 27 deletions

View File

@ -29,31 +29,33 @@ public class DevLinkMetDataService extends DevLinkRealTimeDataService {
//封装数据 //封装数据
public DeviceRealtimedataMeteorology setData(Map<String, Object> propertiesMap){ public DeviceRealtimedataMeteorology setData(Map<String, String> propertiesMap){
DeviceRealtimedataMeteorology build = DeviceRealtimedataMeteorology.builder() DeviceRealtimedataMeteorology build = DeviceRealtimedataMeteorology.builder()
.deviceId(Long.parseLong(propertiesMap.get("deviceId").toString())) .deviceId(propertiesMap.get("deviceId"))
.airTemp(new BigDecimal(propertiesMap.get("airTemp").toString())) .airTemp(toBigDecimalValue(propertiesMap.get("airTemp")))
.airHumi(new BigDecimal(propertiesMap.get("airHumi").toString())) .airHumi(toBigDecimalValue(propertiesMap.get("airHumi")))
.windSpeed(new BigDecimal(propertiesMap.get("windSpeed").toString())) .windSpeed(toBigDecimalValue(propertiesMap.get("windSpeed")))
.windDir(new BigDecimal(propertiesMap.get("windDir").toString())) .windDir(toBigDecimalValue(propertiesMap.get("windDir")))
.airPre(new BigDecimal(propertiesMap.get("airPre").toString())) .airPre(toBigDecimalValue(propertiesMap.get("airPre")))
.guangzhao(Long.parseLong(propertiesMap.get("guangzhao").toString())) .guangzhao(toBigDecimalValue(propertiesMap.get("guangzhao")))
.fushe(new BigDecimal(propertiesMap.get("fushe").toString())) .fushe(toBigDecimalValue(propertiesMap.get("fushe")))
.sumRain(new BigDecimal(propertiesMap.get("sumRain").toString())) .sumRain(toBigDecimalValue(propertiesMap.get("sumRain")))
.sumRain(new BigDecimal(propertiesMap.get("sumRain").toString())) .sumRain(toBigDecimalValue(propertiesMap.get("sumRain")))
.insRain(new BigDecimal(propertiesMap.get("insRain").toString())) .insRain(toBigDecimalValue(propertiesMap.get("insRain")))
.dayRain(new BigDecimal(propertiesMap.get("dayRain").toString())) .dayRain(toBigDecimalValue(propertiesMap.get("dayRain")))
.zhengfa(new BigDecimal(propertiesMap.get("zhengfa").toString())) .zhengfa(toBigDecimalValue(propertiesMap.get("zhengfa")))
.soilTemp(new BigDecimal(propertiesMap.get("soilTemp").toString())) .soilTemp(toBigDecimalValue(propertiesMap.get("soilTemp")))
.soilHumi(new BigDecimal(propertiesMap.get("soilHumi").toString())) .soilHumi(toBigDecimalValue(propertiesMap.get("soilHumi")))
.build(); .build();
System.err.println(build); System.err.println(build);
return build; return build;
} }
public static void main(String[] args) { public static void main(String[] args) {
DevLinkMetDataService devLinkMetDataService = new DevLinkMetDataService(); DevLinkMetDataService devLinkMetDataService = new DevLinkMetDataService();
Map<String, Object> metDeviceRealData = devLinkMetDataService.getMetDeviceRealData("3269"); Map<String, String> metDeviceRealData = devLinkMetDataService.getMetDeviceRealData("3269");
devLinkMetDataService.setData(metDeviceRealData); devLinkMetDataService.setData(metDeviceRealData);
} }
} }

View File

@ -8,6 +8,8 @@ import com.fastbee.common.utils.DateUtils;
import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology; import com.fastbee.deviceData.domain.DeviceRealtimedataMeteorology;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -22,7 +24,7 @@ public class DevLinkRealTimeDataService {
* @param deviceId 设备id * @param deviceId 设备id
* @return 实时数据 * @return 实时数据
*/ */
public Map<String,Object> getMetDeviceRealData(String deviceId){ public Map<String,String> getMetDeviceRealData(String deviceId){
String result = requestDeviceData(deviceId); String result = requestDeviceData(deviceId);
//解析返回数据 //解析返回数据
JSONObject jsonObject = JSONUtil.parseObj(result); JSONObject jsonObject = JSONUtil.parseObj(result);
@ -37,7 +39,7 @@ public class DevLinkRealTimeDataService {
DeviceRealtimedataMeteorology realData = new DeviceRealtimedataMeteorology(); DeviceRealtimedataMeteorology realData = new DeviceRealtimedataMeteorology();
//获取设备各项属性实时数据 //获取设备各项属性实时数据
//设备属性与值建立map //设备属性与值建立map
Map<String, Object> propertiesMap = new HashMap<>(); Map<String, String> propertiesMap = new HashMap<>();
propertiesArray.forEach(p -> { propertiesArray.forEach(p -> {
Object property = JSONUtil.parseObj(p).get("property"); Object property = JSONUtil.parseObj(p).get("property");
JSONObject propertyMap = JSONUtil.parseObj(property); JSONObject propertyMap = JSONUtil.parseObj(property);
@ -47,17 +49,22 @@ public class DevLinkRealTimeDataService {
//属性key //属性key
String key = propertyMap.get("key").toString(); 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 属性值历史数据,是否需要 //TODO 属性值历史数据,是否需要
Object list = JSONUtil.parseObj(p).get("list"); Object list = JSONUtil.parseObj(p).get("list");
// System.err.print("name:"+name); // System.err.print("name:"+name);
// System.err.print("key:"+key); System.err.print("key:"+key);
// System.err.println("------------value:"+value); System.err.println("------------value:"+value);
//建立属性-值映射关系 //建立属性-值映射关系
propertiesMap.put(key,value); propertiesMap.put(key,value);
// saveRealData(key,value,realData); // saveRealData(key,value,realData);
}); });
propertiesMap.put("status",status); propertiesMap.put("status",status.toString());
propertiesMap.put("deviceId",deviceId); propertiesMap.put("deviceId",deviceId);
return propertiesMap; return propertiesMap;
@ -82,9 +89,16 @@ public class DevLinkRealTimeDataService {
return HttpUtil.post(authorization.getBaseUrl() + authorization.getAuth(), jsonStr); 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) { public static void main(String[] args) {
DevLinkRealTimeDataService devLinkRealTimeDataService = new DevLinkRealTimeDataService(); DevLinkRealTimeDataService devLinkRealTimeDataService = new DevLinkRealTimeDataService();
Map<String, Object> metDeviceRealData = devLinkRealTimeDataService.getMetDeviceRealData("3269"); Map<String, String> metDeviceRealData = devLinkRealTimeDataService.getMetDeviceRealData("3270");
System.err.println(metDeviceRealData); // System.err.println(metDeviceRealData);
} }
} }

View File

@ -1,6 +1,8 @@
package com.fastbee.deviceData.domain; package com.fastbee.deviceData.domain;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.*;
@ -22,6 +24,7 @@ import org.apache.poi.hpsf.Decimal;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName("iot_device_realtimedata_meteorology")
public class DeviceRealtimedataMeteorology extends BaseEntity public class DeviceRealtimedataMeteorology extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -32,7 +35,7 @@ private static final long serialVersionUID = 1L;
/** 设备id */ /** 设备id */
@Excel(name = "设备id") @Excel(name = "设备id")
@ApiModelProperty("设备id") @ApiModelProperty("设备id")
private Long deviceId; private String deviceId;
/** 空气温度 */ /** 空气温度 */
@Excel(name = "空气温度") @Excel(name = "空气温度")
@ -62,7 +65,7 @@ private static final long serialVersionUID = 1L;
/** 光照度 */ /** 光照度 */
@Excel(name = "光照度") @Excel(name = "光照度")
@ApiModelProperty("光照度") @ApiModelProperty("光照度")
private Long guangzhao; private BigDecimal guangzhao;
/** 光合有效辐射 */ /** 光合有效辐射 */
@Excel(name = "光合有效辐射") @Excel(name = "光合有效辐射")