25 changed files with 249 additions and 37 deletions
@ -0,0 +1,15 @@ |
|||||
|
package org.thingsboard.server.service.telemetry.cmd.v2; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import org.thingsboard.server.common.data.query.EntityDataQuery; |
||||
|
|
||||
|
@Data |
||||
|
public class EntityDataCmd { |
||||
|
|
||||
|
private final int cmdId; |
||||
|
private final EntityDataQuery query; |
||||
|
private final EntityHistoryCmd historyCmd; |
||||
|
private final LatestValueCmd latestCmd; |
||||
|
private final TimeSeriesCmd tsCmd; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
package org.thingsboard.server.service.telemetry.cmd.v2; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class EntityDataUnsubscribeCmd { |
||||
|
|
||||
|
private final int cmdId; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package org.thingsboard.server.service.telemetry.cmd.v2; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import org.thingsboard.server.common.data.page.PageData; |
||||
|
import org.thingsboard.server.common.data.query.EntityData; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Data |
||||
|
public class EntityDataUpdate { |
||||
|
|
||||
|
private final int cmdId; |
||||
|
private final PageData<EntityData> data; |
||||
|
private final List<EntityData> update; |
||||
|
private int errorCode; |
||||
|
private String errorMsg; |
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
package org.thingsboard.server.service.telemetry.cmd.v2; |
||||
|
|
||||
|
import org.thingsboard.server.common.data.kv.Aggregation; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class EntityHistoryCmd { |
||||
|
|
||||
|
private List<String> keys; |
||||
|
private long startTs; |
||||
|
private long endTs; |
||||
|
private long interval; |
||||
|
private int limit; |
||||
|
private Aggregation agg; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
package org.thingsboard.server.service.telemetry.cmd.v2; |
||||
|
|
||||
|
import org.thingsboard.server.common.data.query.EntityKey; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class LatestValueCmd { |
||||
|
|
||||
|
private List<EntityKey> keys; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
package org.thingsboard.server.service.telemetry.cmd.v2; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class TimeSeriesCmd { |
||||
|
|
||||
|
private List<String> keys; |
||||
|
private long startTs; |
||||
|
private long timeWindow; |
||||
|
private long interval; |
||||
|
private int limit; |
||||
|
private String agg; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
import lombok.Getter; |
||||
|
|
||||
|
public class EntityCountQuery { |
||||
|
|
||||
|
@Getter |
||||
|
private final EntityFilter entityFilter; |
||||
|
|
||||
|
public EntityCountQuery(EntityFilter entityFilter) { |
||||
|
this.entityFilter = entityFilter; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import org.thingsboard.server.common.data.id.EntityId; |
||||
|
|
||||
|
import java.util.Map; |
||||
|
|
||||
|
@Data |
||||
|
public class EntityData { |
||||
|
|
||||
|
private final EntityId entityId; |
||||
|
private final Map<EntityKeyType, Map<String, TsValue>> latest; |
||||
|
private final Map<String, TsValue[]> timeseries; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import org.thingsboard.server.common.data.page.SortOrder; |
||||
|
|
||||
|
@Data |
||||
|
public class EntityDataPageLink { |
||||
|
|
||||
|
private final int pageSize; |
||||
|
private final int page; |
||||
|
private final SortOrder sortOrder; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
import lombok.Getter; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class EntityDataQuery extends EntityCountQuery { |
||||
|
|
||||
|
@Getter |
||||
|
private final EntityDataPageLink pageLink; |
||||
|
@Getter |
||||
|
private final List<EntityKey> entityFields; |
||||
|
@Getter |
||||
|
private final List<EntityKey> latestValues; |
||||
|
|
||||
|
public EntityDataQuery(EntityFilter entityFilter, EntityDataPageLink pageLink, List<EntityKey> entityFields, List<EntityKey> latestValues) { |
||||
|
super(entityFilter); |
||||
|
this.pageLink = pageLink; |
||||
|
this.entityFields = entityFields; |
||||
|
this.latestValues = latestValues; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,6 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
public interface EntityFilter { |
||||
|
|
||||
|
EntityFilterType getType(); |
||||
|
} |
||||
@ -0,0 +1,21 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
public enum EntityFilterType { |
||||
|
SINGLE_ENTITY("singleEntity"), |
||||
|
ENTITY_LIST("entityList"), |
||||
|
ENTITY_NAME("entityName"); |
||||
|
// stateEntity = 'stateEntity',
|
||||
|
// assetType = 'assetType',
|
||||
|
// deviceType = 'deviceType',
|
||||
|
// entityViewType = 'entityViewType',
|
||||
|
// relationsQuery = 'relationsQuery',
|
||||
|
// assetSearchQuery = 'assetSearchQuery',
|
||||
|
// deviceSearchQuery = 'deviceSearchQuery',
|
||||
|
// entityViewSearchQuery = 'entityViewSearchQuery'
|
||||
|
|
||||
|
private final String label; |
||||
|
|
||||
|
EntityFilterType(String label) { |
||||
|
this.label = label; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,6 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
public class EntityKey { |
||||
|
private EntityKeyType type; |
||||
|
private String key; |
||||
|
} |
||||
@ -0,0 +1,9 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
public enum EntityKeyType { |
||||
|
CLIENT_ATTRIBUTE, |
||||
|
SHARED_ATTRIBUTE, |
||||
|
SERVER_ATTRIBUTE, |
||||
|
TIMESERIES, |
||||
|
ENTITY_FIELD; |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import org.thingsboard.server.common.data.id.EntityId; |
||||
|
|
||||
|
@Data |
||||
|
public class SingleEntityFilter implements EntityFilter { |
||||
|
@Override |
||||
|
public EntityFilterType getType() { |
||||
|
return EntityFilterType.SINGLE_ENTITY; |
||||
|
} |
||||
|
|
||||
|
private EntityId singleEntity; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
package org.thingsboard.server.common.data.query; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
@Data |
||||
|
public class TsValue { |
||||
|
|
||||
|
private final long ts; |
||||
|
private final String value; |
||||
|
} |
||||
Loading…
Reference in new issue