Moved event listener to HouseKeeper service and added method to get representation from AlarmAssignee
This commit is contained in:
parent
4bfe4395f6
commit
64e60d43f0
@ -20,7 +20,6 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.event.TransactionalEventListener;
|
||||
import org.thingsboard.common.util.JacksonUtil;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.User;
|
||||
@ -36,13 +35,11 @@ import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardErrorCode;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.AlarmId;
|
||||
import org.thingsboard.server.common.data.id.EntityId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.id.UserId;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.page.SortOrder;
|
||||
import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent;
|
||||
import org.thingsboard.server.dao.housekeeper.HouseKeeperService;
|
||||
import org.thingsboard.server.service.entitiy.AbstractTbEntityService;
|
||||
|
||||
@ -154,8 +151,7 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
|
||||
AlarmInfo alarmInfo = result.getAlarm();
|
||||
if (result.isModified()) {
|
||||
AlarmAssignee assignee = alarmInfo.getAssignee();
|
||||
String systemComment = String.format("Alarm was assigned by user %s to user %s", user.getTitle(),
|
||||
(assignee.getFirstName() == null || assignee.getLastName() == null) ? assignee.getEmail() : assignee.getFirstName() + " " + assignee.getLastName());
|
||||
String systemComment = String.format("Alarm was assigned by user %s to user %s", user.getTitle(), assignee.getTitle());
|
||||
addSystemAlarmComment(alarmInfo, user, "ASSIGN", systemComment, assignee.getId());
|
||||
notificationEntityService.logEntityAction(alarm.getTenantId(), alarm.getOriginator(), alarmInfo,
|
||||
alarmInfo.getCustomerId(), ActionType.ALARM_ASSIGNED, user);
|
||||
@ -200,15 +196,6 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
|
||||
return totalAlarmIds;
|
||||
}
|
||||
|
||||
@TransactionalEventListener(fallbackExecution = true)
|
||||
public void handleEvent(DeleteEntityEvent<?> event) {
|
||||
log.trace("[{}] DeleteEntityEvent handler: {}", event.getTenantId(), event);
|
||||
EntityId entityId = event.getEntityId();
|
||||
if (EntityType.USER.equals(entityId.getEntityType())) {
|
||||
housekeeper.unassignDeletedUserAlarms(event.getTenantId(), (User) event.getEntity(), event.getTs());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(Alarm alarm, User user) {
|
||||
TenantId tenantId = alarm.getTenantId();
|
||||
|
||||
@ -25,10 +25,14 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.event.TransactionalEventListener;
|
||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.User;
|
||||
import org.thingsboard.server.common.data.id.AlarmId;
|
||||
import org.thingsboard.server.common.data.id.EntityId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent;
|
||||
import org.thingsboard.server.dao.housekeeper.HouseKeeperService;
|
||||
import org.thingsboard.server.service.entitiy.alarm.TbAlarmService;
|
||||
|
||||
@ -65,6 +69,15 @@ public class InMemoryHouseKeeperServiceService implements HouseKeeperService {
|
||||
}
|
||||
}
|
||||
|
||||
@TransactionalEventListener(fallbackExecution = true)
|
||||
public void handleEvent(DeleteEntityEvent<?> event) {
|
||||
log.trace("[{}] DeleteEntityEvent handler: {}", event.getTenantId(), event);
|
||||
EntityId entityId = event.getEntityId();
|
||||
if (EntityType.USER.equals(entityId.getEntityType())) {
|
||||
unassignDeletedUserAlarms(event.getTenantId(), (User) event.getEntity(), event.getTs());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListenableFuture<List<AlarmId>> unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs) {
|
||||
log.debug("[{}][{}] unassignDeletedUserAlarms submitting, pending queue size: {} ", tenantId, user.getId().getId(), queueSize.get());
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.alarm;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -22,6 +23,8 @@ import org.thingsboard.server.common.data.id.UserId;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
|
||||
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@Data
|
||||
@ -34,4 +37,22 @@ public class AlarmAssignee implements Serializable {
|
||||
private final String lastName;
|
||||
private final String email;
|
||||
|
||||
@JsonIgnore
|
||||
public String getTitle() {
|
||||
String title = "";
|
||||
if (isNotEmpty(firstName)) {
|
||||
title += firstName;
|
||||
}
|
||||
if (isNotEmpty(lastName)) {
|
||||
if (!title.isEmpty()) {
|
||||
title += " ";
|
||||
}
|
||||
title += lastName;
|
||||
}
|
||||
if (title.isEmpty()) {
|
||||
title = email;
|
||||
}
|
||||
return title;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user