Browse Source

Merge pull request #8232 from imbeacon/fix/alarm-assignment-sorting

[3.5] Fix/alarm assignment sorting
pull/8236/head
Andrew Shvayka 4 years ago
committed by GitHub
parent
commit
73b35a9e8c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultAlarmQueryRepository.java
  2. 1
      dao/src/test/java/org/thingsboard/server/dao/service/BaseAlarmServiceTest.java

6
dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultAlarmQueryRepository.java

@ -148,6 +148,10 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository {
} }
EntityDataSortOrder sortOrder = pageLink.getSortOrder(); EntityDataSortOrder sortOrder = pageLink.getSortOrder();
if (sortOrder != null && EntityKeyType.ALARM_FIELD.equals(sortOrder.getKey().getType()) && ASSIGNEE_KEY.equalsIgnoreCase(sortOrder.getKey().getKey())) {
sortOrder = new EntityDataSortOrder(new EntityKey(EntityKeyType.ALARM_FIELD, ASSIGNEE_EMAIL_KEY), sortOrder.getDirection());
}
List<EntityKey> alarmFields = new ArrayList<>(); List<EntityKey> alarmFields = new ArrayList<>();
for (EntityKey key : query.getAlarmFields()) { for (EntityKey key : query.getAlarmFields()) {
if (EntityKeyType.ALARM_FIELD.equals(key.getType()) && ASSIGNEE_KEY.equalsIgnoreCase(key.getKey())) { if (EntityKeyType.ALARM_FIELD.equals(key.getType()) && ASSIGNEE_KEY.equalsIgnoreCase(key.getKey())) {
@ -265,6 +269,8 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository {
} }
if (pageLink.getAssigneeId() != null) { if (pageLink.getAssigneeId() != null) {
addAndIfNeeded(wherePart, addAnd);
addAnd = true;
ctx.addUuidParameter("assigneeId", pageLink.getAssigneeId().getId()); ctx.addUuidParameter("assigneeId", pageLink.getAssigneeId().getId());
wherePart.append(" a.assignee_id = :assigneeId"); wherePart.append(" a.assignee_id = :assigneeId");
} }

1
dao/src/test/java/org/thingsboard/server/dao/service/BaseAlarmServiceTest.java

@ -267,6 +267,7 @@ public abstract class BaseAlarmServiceTest extends AbstractServiceTest {
pageLink.setPage(0); pageLink.setPage(0);
pageLink.setPageSize(10); pageLink.setPageSize(10);
pageLink.setAssigneeId(tenantUser.getId()); pageLink.setAssigneeId(tenantUser.getId());
pageLink.setSortOrder(new EntityDataSortOrder(new EntityKey(EntityKeyType.ALARM_FIELD, "assignee")));
PageData<AlarmData> assignedAlarms = alarmService.findAlarmDataByQueryForEntities(tenantId, toQuery(pageLink), Collections.singletonList(created.getOriginator())); PageData<AlarmData> assignedAlarms = alarmService.findAlarmDataByQueryForEntities(tenantId, toQuery(pageLink), Collections.singletonList(created.getOriginator()));
Assert.assertNotNull(assignedAlarms.getData()); Assert.assertNotNull(assignedAlarms.getData());

Loading…
Cancel
Save