|
|
|
@ -35,6 +35,7 @@ import org.thingsboard.server.common.data.kv.JsonDataEntry; |
|
|
|
import org.thingsboard.server.common.data.kv.KvEntry; |
|
|
|
import org.thingsboard.server.common.data.kv.TsKvEntry; |
|
|
|
import org.thingsboard.server.common.msg.TbMsg; |
|
|
|
import org.thingsboard.server.common.msg.TbMsgMetaData; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
@ -108,6 +109,7 @@ public abstract class TbAbstractGetAttributesNode<C extends TbGetAttributesNodeC |
|
|
|
if (!failuresMap.isEmpty()) { |
|
|
|
throw reportFailures(failuresMap); |
|
|
|
} |
|
|
|
TbMsgMetaData msgMetaData = msg.getMetaData().copy(); |
|
|
|
futuresList.stream().filter(Objects::nonNull).forEach(kvEntriesMap -> { |
|
|
|
kvEntriesMap.forEach((keyScope, kvEntryList) -> { |
|
|
|
String prefix = getPrefix(keyScope); |
|
|
|
@ -115,15 +117,15 @@ public abstract class TbAbstractGetAttributesNode<C extends TbGetAttributesNodeC |
|
|
|
if (fetchToData) { |
|
|
|
JacksonUtil.addKvEntry((ObjectNode) msgDataNode, kvEntry, prefix + kvEntry.getKey()); |
|
|
|
} else { |
|
|
|
msg.getMetaData().putValue(prefix + kvEntry.getKey(), kvEntry.getValueAsString()); |
|
|
|
msgMetaData.putValue(prefix + kvEntry.getKey(), kvEntry.getValueAsString()); |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
if (fetchToData) { |
|
|
|
ctx.tellSuccess(TbMsg.transformMsg(msg, msg.getType(), msg.getOriginator(), msg.getMetaData(), JacksonUtil.toString(msgDataNode))); |
|
|
|
ctx.tellSuccess(TbMsg.transformMsg(msg, msg.getType(), msg.getOriginator(), msgMetaData, JacksonUtil.toString(msgDataNode))); |
|
|
|
} else { |
|
|
|
ctx.tellSuccess(msg); |
|
|
|
ctx.tellSuccess(TbMsg.transformMsg(msg, msg.getType(), msg.getOriginator(), msgMetaData, msg.getData())); |
|
|
|
} |
|
|
|
}, t -> ctx.tellFailure(msg, t), ctx.getDbCallbackExecutor()); |
|
|
|
} |
|
|
|
|