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