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, public static AssetItem fromData(Map<String, Object> map, String timeField,
I2relation relation, List<SyncFieldsInfo> fieldList) { I2relation relation, List<SyncFieldsInfo> fieldList) {
AssetItem root = new AssetItem();
root.setAssetCode(relation.getSensorid());
List<AttributeItem> list = new ArrayList<>(); List<AttributeItem> list = new ArrayList<>();
for (SyncFieldsInfo field : fieldList) { for (SyncFieldsInfo field : fieldList) {
if (relation.getSensorindex().equals(field.getSensorindex())) { if (relation.getSensorindex().equals(field.getSensorindex())) {
AttributeItem item = AttributeItem.fromData(map, field); AttributeItem item = AttributeItem.fromData(map, field);
list.add(item); if (item != null) {
list.add(item);
}
} }
} }
root.setAttributeList(list); if (list.size() > 0) {
LocalDateTime time = (LocalDateTime) map.get(timeField); AssetItem root = new AssetItem();
root.setTimestamp(time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); root.setAssetCode(relation.getSensorid());
return root; 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, public static AssetList fromData(List<Map<String, Object>> dataList, String timeField,
List<I2relation> relationList, List<SyncFieldsInfo> fieldList) { List<I2relation> relationList, List<SyncFieldsInfo> fieldList) {
AssetList root = new AssetList();
List<AssetItem> list = new ArrayList<>(); List<AssetItem> list = new ArrayList<>();
if (relationList.size() > 1){
int a = 1;
}
for (Map<String, Object> map : dataList) { for (Map<String, Object> map : dataList) {
for (I2relation relation : relationList) { for (I2relation relation : relationList) {
AssetItem item = AssetItem.fromData(map, timeField, relation, fieldList); AssetItem item = AssetItem.fromData(map, timeField, relation, fieldList);
list.add(item); if (item != null) {
list.add(item);
}
} }
} }
root.setAssetList(list); if (list.size() > 0) {
return root; AssetList root = new AssetList();
root.setAssetList(list);
return root;
} else {
return null;
}
} }
} }

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

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

Loading…
Cancel
Save