Browse Source

Add ComplexOperation field to EDQS query model and propagate through toNewQuery

- Add keyFiltersOperation field to EdqsQuery base class
- Update EdqsCountQuery and EdqsDataQuery constructors to accept and propagate ComplexOperation
- Propagate keyFiltersOperationOrDefault in both toNewQuery overloads in RepositoryUtils
pull/15394/head
Viacheslav Klimov 7 months ago
parent
commit
ce68c8fca5
Failed to extract signature
  1. 5
      common/edqs/src/main/java/org/thingsboard/server/edqs/query/EdqsCountQuery.java
  2. 5
      common/edqs/src/main/java/org/thingsboard/server/edqs/query/EdqsDataQuery.java
  3. 2
      common/edqs/src/main/java/org/thingsboard/server/edqs/query/EdqsQuery.java
  4. 2
      common/edqs/src/main/java/org/thingsboard/server/edqs/util/RepositoryUtils.java

5
common/edqs/src/main/java/org/thingsboard/server/edqs/query/EdqsCountQuery.java

@ -16,6 +16,7 @@
package org.thingsboard.server.edqs.query; package org.thingsboard.server.edqs.query;
import lombok.Builder; import lombok.Builder;
import org.thingsboard.server.common.data.query.ComplexOperation;
import org.thingsboard.server.common.data.query.EntityFilter; import org.thingsboard.server.common.data.query.EntityFilter;
import java.util.List; import java.util.List;
@ -23,8 +24,8 @@ import java.util.List;
public class EdqsCountQuery extends EdqsQuery { public class EdqsCountQuery extends EdqsQuery {
@Builder @Builder
EdqsCountQuery(EntityFilter entityFilter, boolean hasKeyFilters, List<EdqsFilter> keyFilters) { EdqsCountQuery(EntityFilter entityFilter, boolean hasKeyFilters, List<EdqsFilter> keyFilters, ComplexOperation keyFiltersOperation) {
super(entityFilter, hasKeyFilters, keyFilters); super(entityFilter, hasKeyFilters, keyFilters, keyFiltersOperation);
} }
} }

5
common/edqs/src/main/java/org/thingsboard/server/edqs/query/EdqsDataQuery.java

@ -19,6 +19,7 @@ import lombok.Builder;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.query.ComplexOperation;
import org.thingsboard.server.common.data.query.EntityDataSortOrder; import org.thingsboard.server.common.data.query.EntityDataSortOrder;
import org.thingsboard.server.common.data.query.EntityFilter; import org.thingsboard.server.common.data.query.EntityFilter;
import org.thingsboard.server.common.data.query.EntityKeyType; import org.thingsboard.server.common.data.query.EntityKeyType;
@ -41,10 +42,10 @@ public class EdqsDataQuery extends EdqsQuery {
private final List<DataKey> latestValues; private final List<DataKey> latestValues;
@Builder @Builder
public EdqsDataQuery(EntityFilter entityFilter, List<EdqsFilter> keyFilters, public EdqsDataQuery(EntityFilter entityFilter, List<EdqsFilter> keyFilters, ComplexOperation keyFiltersOperation,
int pageSize, int page, String textSearch, DataKey sortKey, EntityDataSortOrder.Direction sortDirection, int pageSize, int page, String textSearch, DataKey sortKey, EntityDataSortOrder.Direction sortDirection,
List<DataKey> entityFields, List<DataKey> latestValues) { List<DataKey> entityFields, List<DataKey> latestValues) {
super(entityFilter, CollectionsUtil.isNotEmpty(keyFilters), keyFilters); super(entityFilter, CollectionsUtil.isNotEmpty(keyFilters), keyFilters, keyFiltersOperation);
this.pageSize = pageSize; this.pageSize = pageSize;
this.page = page; this.page = page;
this.hasTextSearch = StringUtils.isNotBlank(textSearch); this.hasTextSearch = StringUtils.isNotBlank(textSearch);

2
common/edqs/src/main/java/org/thingsboard/server/edqs/query/EdqsQuery.java

@ -16,6 +16,7 @@
package org.thingsboard.server.edqs.query; package org.thingsboard.server.edqs.query;
import lombok.Data; import lombok.Data;
import org.thingsboard.server.common.data.query.ComplexOperation;
import org.thingsboard.server.common.data.query.EntityFilter; import org.thingsboard.server.common.data.query.EntityFilter;
import java.util.List; import java.util.List;
@ -26,5 +27,6 @@ public abstract class EdqsQuery {
private final EntityFilter entityFilter; private final EntityFilter entityFilter;
private final boolean hasKeyFilters; private final boolean hasKeyFilters;
private final List<EdqsFilter> keyFilters; private final List<EdqsFilter> keyFilters;
private final ComplexOperation keyFiltersOperation;
} }

2
common/edqs/src/main/java/org/thingsboard/server/edqs/util/RepositoryUtils.java

@ -139,6 +139,7 @@ public class RepositoryUtils {
} }
query.entityFilter(oldQuery.getEntityFilter()); query.entityFilter(oldQuery.getEntityFilter());
query.keyFilters(toKeyFilters(oldQuery.getKeyFilters())); query.keyFilters(toKeyFilters(oldQuery.getKeyFilters()));
query.keyFiltersOperation(oldQuery.getKeyFiltersOperationOrDefault());
query.entityFields(toNewKeys(oldQuery.getEntityFields())); query.entityFields(toNewKeys(oldQuery.getEntityFields()));
query.latestValues(toNewKeys(oldQuery.getLatestValues())); query.latestValues(toNewKeys(oldQuery.getLatestValues()));
return query.build(); return query.build();
@ -149,6 +150,7 @@ public class RepositoryUtils {
.entityFilter(oldQuery.getEntityFilter()) .entityFilter(oldQuery.getEntityFilter())
.hasKeyFilters(CollectionsUtil.isNotEmpty(oldQuery.getKeyFilters())) .hasKeyFilters(CollectionsUtil.isNotEmpty(oldQuery.getKeyFilters()))
.keyFilters(toKeyFilters(oldQuery.getKeyFilters())) .keyFilters(toKeyFilters(oldQuery.getKeyFilters()))
.keyFiltersOperation(oldQuery.getKeyFiltersOperationOrDefault())
.build(); .build();
} }

Loading…
Cancel
Save