添加对数据属性为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()
.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<String, Object> metDeviceRealData = devLinkMetDataService.getMetDeviceRealData("3269");
Map<String, String> metDeviceRealData = devLinkMetDataService.getMetDeviceRealData("3269");
devLinkMetDataService.setData(metDeviceRealData);
}
}

View File

@ -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<String,Object> getMetDeviceRealData(String deviceId){
public Map<String,String> 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<String, Object> propertiesMap = new HashMap<>();
Map<String, String> 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<String, Object> metDeviceRealData = devLinkRealTimeDataService.getMetDeviceRealData("3269");
System.err.println(metDeviceRealData);
Map<String, String> metDeviceRealData = devLinkRealTimeDataService.getMetDeviceRealData("3270");
// System.err.println(metDeviceRealData);
}
}

View File

@ -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 = "光合有效辐射")