fix: 过滤null的数据不发送

main
huangfeng 1 year ago
parent 2f2b7e6880
commit 75b8ac0433

@ -22,18 +22,25 @@ public class AssetItem {
public static AssetItem fromData(Map<String, Object> map, String timeField,
I2relation relation, List<SyncFieldsInfo> fieldList) {
AssetItem root = new AssetItem();
root.setAssetCode(relation.getSensorid());
List<AttributeItem> list = new ArrayList<>();
for (SyncFieldsInfo field : fieldList) {
if (relation.getSensorindex().equals(field.getSensorindex())) {
AttributeItem item = AttributeItem.fromData(map, field);
list.add(item);
if (item != null) {
list.add(item);
}
}
}
root.setAttributeList(list);
LocalDateTime time = (LocalDateTime) map.get(timeField);
root.setTimestamp(time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
return root;
if (list.size() > 0) {
AssetItem root = new AssetItem();
root.setAssetCode(relation.getSensorid());
root.setAttributeList(list);
LocalDateTime time = (LocalDateTime) map.get(timeField);
root.setTimestamp(time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
return root;
} else {
return null;
}
}
}

@ -16,18 +16,22 @@ public class AssetList {
public static AssetList fromData(List<Map<String, Object>> dataList, String timeField,
List<I2relation> relationList, List<SyncFieldsInfo> fieldList) {
AssetList root = new AssetList();
List<AssetItem> list = new ArrayList<>();
if (relationList.size() > 1){
int a = 1;
}
for (Map<String, Object> map : dataList) {
for (I2relation relation : relationList) {
AssetItem item = AssetItem.fromData(map, timeField, relation, fieldList);
list.add(item);
if (item != null) {
list.add(item);
}
}
}
root.setAssetList(list);
return root;
if (list.size() > 0) {
AssetList root = new AssetList();
root.setAssetList(list);
return root;
} else {
return null;
}
}
}

@ -14,9 +14,14 @@ public class AttributeItem {
Object dataValue;
public static AttributeItem fromData(Map<String, Object> map, SyncFieldsInfo field) {
AttributeItem root = new AttributeItem();
root.setAttributeCode(field.getDestFieldName());
root.setDataValue(map.get(field.getFieldName()));
return root;
Object value = map.get(field.getFieldName());
if (value != null) {
AttributeItem root = new AttributeItem();
root.setAttributeCode(field.getDestFieldName());
root.setDataValue(value);
return root;
} else {
return null;
}
}
}

@ -110,8 +110,10 @@ public class MqttService {
} else {
count = dataList.size();
AssetList assetList = AssetList.fromData(dataList, table.getFieldName(), relationList, fieldList);
String json = JSONUtil.object2Json(assetList);
mqttUtil.publish2MQTT(json);
if (assetList != null) {
String json = JSONUtil.object2Json(assetList);
mqttUtil.publish2MQTT(json);
}
Map<String, Object> lastMap = dataList.get(count - 1);
LocalDateTime locdate = (LocalDateTime) lastMap.get(table.getFieldName());

Loading…
Cancel
Save