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 @Getter
@Setter @Setter
@ApiModelProperty(position = 21, value = "Alarm assignee first name") @ApiModelProperty(position = 21, value = "Alarm assignee")
private String assigneeFirstName; private AlarmAssignee assignee;
@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;
public AlarmInfo() { public AlarmInfo() {
super(); super();
@ -69,18 +59,14 @@ public class AlarmInfo extends Alarm {
super(alarmInfo); super(alarmInfo);
this.originatorName = alarmInfo.originatorName; this.originatorName = alarmInfo.originatorName;
this.originatorLabel = alarmInfo.originatorLabel; this.originatorLabel = alarmInfo.originatorLabel;
this.assigneeFirstName = alarmInfo.assigneeFirstName; this.assignee = alarmInfo.getAssignee();
this.assigneeLastName = alarmInfo.assigneeLastName;
this.assigneeEmail = alarmInfo.assigneeEmail;
} }
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); super(alarm);
this.originatorName = originatorName; this.originatorName = originatorName;
this.originatorLabel = originatorLabel; this.originatorLabel = originatorLabel;
this.assigneeFirstName = assigneeFirstName; this.assignee = assignee;
this.assigneeLastName = assigneeLastName;
this.assigneeEmail = assigneeEmail;
} }
} }

View File

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

View File

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

View File

@ -17,7 +17,9 @@ package org.thingsboard.server.dao.model.sql;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; 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.alarm.AlarmInfo;
import org.thingsboard.server.common.data.id.UserId;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -47,10 +49,7 @@ public class AlarmInfoEntity extends AbstractAlarmEntity<AlarmInfo> {
AlarmInfo alarmInfo = new AlarmInfo(super.toAlarm()); AlarmInfo alarmInfo = new AlarmInfo(super.toAlarm());
alarmInfo.setOriginatorName(originatorName); alarmInfo.setOriginatorName(originatorName);
alarmInfo.setOriginatorLabel(originatorLabel); alarmInfo.setOriginatorLabel(originatorLabel);
alarmInfo.setAssignee(new AlarmAssignee(new UserId(getAssigneeId()), assigneeFirstName, assigneeLastName, assigneeEmail));
alarmInfo.setAssigneeFirstName(assigneeFirstName);
alarmInfo.setAssigneeLastName(assigneeLastName);
alarmInfo.setAssigneeEmail(assigneeEmail);
return alarmInfo; 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.EntityType;
import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.StringUtils;
import org.thingsboard.server.common.data.alarm.Alarm; 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.AlarmSeverity;
import org.thingsboard.server.common.data.alarm.AlarmStatus; import org.thingsboard.server.common.data.alarm.AlarmStatus;
import org.thingsboard.server.common.data.id.AlarmId; import org.thingsboard.server.common.data.id.AlarmId;
@ -123,9 +124,7 @@ public class AlarmDataAdapter {
AlarmData alarmData = new AlarmData(alarm, entityId); AlarmData alarmData = new AlarmData(alarm, entityId);
alarmData.setOriginatorName(originatorName); alarmData.setOriginatorName(originatorName);
alarmData.setOriginatorLabel(originatorLabel); alarmData.setOriginatorLabel(originatorLabel);
alarmData.setAssigneeFirstName(assigneeFirstName); alarmData.setAssignee(new AlarmAssignee(alarm.getAssigneeId(), assigneeFirstName, assigneeLastName, assigneeEmail));
alarmData.setAssigneeLastName(assigneeLastName);
alarmData.setAssigneeEmail(assigneeEmail);
return alarmData; 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.common.data.query.EntityKeyType;
import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.model.ModelConstants;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
@ -186,6 +187,12 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository {
} }
fromPart.append(LEFT_JOIN_TB_USERS); fromPart.append(LEFT_JOIN_TB_USERS);
EntityDataSortOrder sortOrder = pageLink.getSortOrder(); EntityDataSortOrder sortOrder = pageLink.getSortOrder();
List<EntityKey> queryFields = new ArrayList<>();
for(EntityKey key: query.getAlarmFields()){
if()
}
String textSearchQuery = buildTextSearchQuery(ctx, query.getAlarmFields(), pageLink.getTextSearch()); String textSearchQuery = buildTextSearchQuery(ctx, query.getAlarmFields(), pageLink.getTextSearch());
if (sortOrder != null && sortOrder.getKey().getType().equals(EntityKeyType.ALARM_FIELD)) { if (sortOrder != null && sortOrder.getKey().getType().equals(EntityKeyType.ALARM_FIELD)) {
String sortOrderKey = sortOrder.getKey().getKey(); String sortOrderKey = sortOrder.getKey().getKey();