Alarm assignee as an object

This commit is contained in:
Andrii Shvaika 2023-02-17 12:37:30 +02:00
parent 8b6950031e
commit f877fdef3f
6 changed files with 25 additions and 43 deletions

View File

@ -44,18 +44,8 @@ public class AlarmInfo extends Alarm {
@Getter
@Setter
@ApiModelProperty(position = 21, value = "Alarm assignee first name")
private String assigneeFirstName;
@Getter
@Setter
@ApiModelProperty(position = 22, value = "Alarm assignee last name")
private String assigneeLastName;
@Getter
@Setter
@ApiModelProperty(position = 23, value = "Alarm assignee email")
private String assigneeEmail;
@ApiModelProperty(position = 21, value = "Alarm assignee")
private AlarmAssignee assignee;
public AlarmInfo() {
super();
@ -69,18 +59,14 @@ public class AlarmInfo extends Alarm {
super(alarmInfo);
this.originatorName = alarmInfo.originatorName;
this.originatorLabel = alarmInfo.originatorLabel;
this.assigneeFirstName = alarmInfo.assigneeFirstName;
this.assigneeLastName = alarmInfo.assigneeLastName;
this.assigneeEmail = alarmInfo.assigneeEmail;
this.assignee = alarmInfo.getAssignee();
}
public AlarmInfo(Alarm alarm, String originatorName, String originatorLabel, String assigneeFirstName, String assigneeLastName, String assigneeEmail) {
public AlarmInfo(Alarm alarm, String originatorName, String originatorLabel, AlarmAssignee assignee) {
super(alarm);
this.originatorName = originatorName;
this.originatorLabel = originatorLabel;
this.assigneeFirstName = assigneeFirstName;
this.assigneeLastName = assigneeLastName;
this.assigneeEmail = assigneeEmail;
this.assignee = assignee;
}
}

View File

@ -52,15 +52,11 @@ public class AlarmData extends AlarmInfo {
if (assigneeUpdate != null) {
if (assigneeUpdate.isDeleted()) {
this.setAssigneeId(null);
this.setAssigneeFirstName(null);
this.setAssigneeLastName(null);
this.setAssigneeEmail(null);
this.setAssignee(null);
} else {
AlarmAssignee assignee = assigneeUpdate.getAssignee();
this.setAssigneeId(assignee.getId());
this.setAssigneeFirstName(assignee.getFirstName());
this.setAssigneeLastName(assignee.getLastName());
this.setAssigneeEmail(assignee.getEmail());
this.setAssignee(assignee);
}
}
return this;

View File

@ -289,10 +289,9 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
alarm.setAssignTs(assignTime);
alarm = alarmDao.save(alarm.getTenantId(), alarm);
AlarmInfo alarmInfo = getAlarmInfo(tenantId, alarm);
return new AlarmOperationResult(alarm, new AlarmAssigneeUpdate(false,
new AlarmAssignee(alarmInfo.getAssigneeId(), alarmInfo.getAssigneeFirstName(),
alarmInfo.getAssigneeLastName(), alarmInfo.getAssigneeEmail())
), new ArrayList<>(getPropagationEntityIds(alarm)));
return new AlarmOperationResult(alarm,
new AlarmAssigneeUpdate(false, alarmInfo.getAssignee()),
new ArrayList<>(getPropagationEntityIds(alarm)));
}
}
});
@ -467,9 +466,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
private AlarmInfo getAlarmInfo(TenantId tenantId, Alarm alarm) {
String originatorName;
String originatorLabel;
String assigneeFirstName = null;
String assigneeLastName = null;
String assigneeEmail = null;
Optional<NameLabelAndCustomerDetails> detailsOpt = entityService.fetchNameLabelAndCustomerDetails(tenantId, alarm.getOriginator());
if (detailsOpt.isPresent() && detailsOpt.get().getName() != null) {
@ -481,13 +477,12 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
originatorLabel = "Deleted";
}
AlarmAssignee assignee = null;
if (alarm.getAssigneeId() != null) {
User assignedUser = userService.findUserById(tenantId, alarm.getAssigneeId());
assigneeFirstName = assignedUser.getFirstName();
assigneeLastName = assignedUser.getLastName();
assigneeEmail = assignedUser.getEmail();
assignee = new AlarmAssignee(assignedUser.getId(), assignedUser.getFirstName(), assignedUser.getLastName(), assignedUser.getEmail());
}
return new AlarmInfo(alarm, originatorName, originatorLabel, assigneeFirstName, assigneeLastName, assigneeEmail);
return new AlarmInfo(alarm, originatorName, originatorLabel, assignee);
}
@Override

View File

@ -17,7 +17,9 @@ package org.thingsboard.server.dao.model.sql;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.alarm.AlarmAssignee;
import org.thingsboard.server.common.data.alarm.AlarmInfo;
import org.thingsboard.server.common.data.id.UserId;
@Data
@EqualsAndHashCode(callSuper = true)
@ -47,10 +49,7 @@ public class AlarmInfoEntity extends AbstractAlarmEntity<AlarmInfo> {
AlarmInfo alarmInfo = new AlarmInfo(super.toAlarm());
alarmInfo.setOriginatorName(originatorName);
alarmInfo.setOriginatorLabel(originatorLabel);
alarmInfo.setAssigneeFirstName(assigneeFirstName);
alarmInfo.setAssigneeLastName(assigneeLastName);
alarmInfo.setAssigneeEmail(assigneeEmail);
alarmInfo.setAssignee(new AlarmAssignee(new UserId(getAssigneeId()), assigneeFirstName, assigneeLastName, assigneeEmail));
return alarmInfo;
}
}

View File

@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.alarm.Alarm;
import org.thingsboard.server.common.data.alarm.AlarmAssignee;
import org.thingsboard.server.common.data.alarm.AlarmSeverity;
import org.thingsboard.server.common.data.alarm.AlarmStatus;
import org.thingsboard.server.common.data.id.AlarmId;
@ -123,9 +124,7 @@ public class AlarmDataAdapter {
AlarmData alarmData = new AlarmData(alarm, entityId);
alarmData.setOriginatorName(originatorName);
alarmData.setOriginatorLabel(originatorLabel);
alarmData.setAssigneeFirstName(assigneeFirstName);
alarmData.setAssigneeLastName(assigneeLastName);
alarmData.setAssigneeEmail(assigneeEmail);
alarmData.setAssignee(new AlarmAssignee(alarm.getAssigneeId(), assigneeFirstName, assigneeLastName, assigneeEmail));
return alarmData;
}

View File

@ -35,6 +35,7 @@ import org.thingsboard.server.common.data.query.EntityKey;
import org.thingsboard.server.common.data.query.EntityKeyType;
import org.thingsboard.server.dao.model.ModelConstants;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@ -186,6 +187,12 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository {
}
fromPart.append(LEFT_JOIN_TB_USERS);
EntityDataSortOrder sortOrder = pageLink.getSortOrder();
List<EntityKey> queryFields = new ArrayList<>();
for(EntityKey key: query.getAlarmFields()){
if()
}
String textSearchQuery = buildTextSearchQuery(ctx, query.getAlarmFields(), pageLink.getTextSearch());
if (sortOrder != null && sortOrder.getKey().getType().equals(EntityKeyType.ALARM_FIELD)) {
String sortOrderKey = sortOrder.getKey().getKey();