|
|
|
@ -21,6 +21,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.thingsboard.common.util.JacksonUtil; |
|
|
|
import org.thingsboard.server.cluster.TbClusterService; |
|
|
|
import org.thingsboard.server.common.data.DataConstants; |
|
|
|
import org.thingsboard.server.common.data.EntityType; |
|
|
|
@ -34,8 +35,6 @@ import org.thingsboard.server.common.data.id.CustomerId; |
|
|
|
import org.thingsboard.server.common.data.id.EntityId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.common.data.kv.AttributeKvEntry; |
|
|
|
import org.thingsboard.server.common.data.kv.DataType; |
|
|
|
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.TbMsgDataType; |
|
|
|
@ -170,7 +169,7 @@ public class EntityActionService { |
|
|
|
metaData.putValue(DataConstants.SCOPE, scope); |
|
|
|
if (attributes != null) { |
|
|
|
for (AttributeKvEntry attr : attributes) { |
|
|
|
addKvEntry(entityNode, attr); |
|
|
|
JacksonUtil.addKvEntry(entityNode, attr); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (actionType == ActionType.ATTRIBUTES_DELETED) { |
|
|
|
@ -246,27 +245,11 @@ public class EntityActionService { |
|
|
|
element.put("ts", entry.getKey()); |
|
|
|
ObjectNode values = element.putObject("values"); |
|
|
|
for (TsKvEntry tsKvEntry : entry.getValue()) { |
|
|
|
addKvEntry(values, tsKvEntry); |
|
|
|
JacksonUtil.addKvEntry(values, tsKvEntry); |
|
|
|
} |
|
|
|
result.add(element); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void addKvEntry(ObjectNode entityNode, KvEntry kvEntry) throws Exception { |
|
|
|
if (kvEntry.getDataType() == DataType.BOOLEAN) { |
|
|
|
kvEntry.getBooleanValue().ifPresent(value -> entityNode.put(kvEntry.getKey(), value)); |
|
|
|
} else if (kvEntry.getDataType() == DataType.DOUBLE) { |
|
|
|
kvEntry.getDoubleValue().ifPresent(value -> entityNode.put(kvEntry.getKey(), value)); |
|
|
|
} else if (kvEntry.getDataType() == DataType.LONG) { |
|
|
|
kvEntry.getLongValue().ifPresent(value -> entityNode.put(kvEntry.getKey(), value)); |
|
|
|
} else if (kvEntry.getDataType() == DataType.JSON) { |
|
|
|
if (kvEntry.getJsonValue().isPresent()) { |
|
|
|
entityNode.set(kvEntry.getKey(), json.readTree(kvEntry.getJsonValue().get())); |
|
|
|
} |
|
|
|
} else { |
|
|
|
entityNode.put(kvEntry.getKey(), kvEntry.getValueAsString()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|