Browse Source

fixed telemetry update handling for all keys

pull/13025/head
dashevchenko 1 year ago
parent
commit
3f13fbd23f
  1. 27
      application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionService.java

27
application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbLocalSubscriptionService.java

@ -343,13 +343,28 @@ public class DefaultTbLocalSubscriptionService implements TbLocalSubscriptionSer
s -> { s -> {
TbTimeSeriesSubscription sub = (TbTimeSeriesSubscription) s; TbTimeSeriesSubscription sub = (TbTimeSeriesSubscription) s;
List<TsKvEntry> updateData = null; List<TsKvEntry> updateData = null;
for (TsKvEntry kv : data) { if (sub.isAllKeys()) {
if (sub.getKeyStates().containsKey((kv.getKey()))) { if (sub.isLatestValues()) {
if (!sub.isLatestValues() || kv.getTs() > sub.getKeyStates().get(kv.getKey())) { for (TsKvEntry kv : data) {
if (updateData == null) { if (!sub.getKeyStates().containsKey((kv.getKey())) || kv.getTs() > sub.getKeyStates().get(kv.getKey())) {
updateData = new ArrayList<>(); if (updateData == null) {
updateData = new ArrayList<>();
}
updateData.add(kv);
}
}
} else {
updateData = data;
}
} else {
for (TsKvEntry kv : data) {
if (sub.getKeyStates().containsKey((kv.getKey()))) {
if (!sub.isLatestValues() || kv.getTs() > sub.getKeyStates().get(kv.getKey())) {
if (updateData == null) {
updateData = new ArrayList<>();
}
updateData.add(kv);
} }
updateData.add(kv);
} }
} }
} }

Loading…
Cancel
Save