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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.event.TransactionalEventListener;
|
|
||||||
import org.thingsboard.common.util.JacksonUtil;
|
import org.thingsboard.common.util.JacksonUtil;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.User;
|
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.ThingsboardErrorCode;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.AlarmId;
|
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.TenantId;
|
||||||
import org.thingsboard.server.common.data.id.UserId;
|
import org.thingsboard.server.common.data.id.UserId;
|
||||||
import org.thingsboard.server.common.data.page.PageData;
|
import org.thingsboard.server.common.data.page.PageData;
|
||||||
import org.thingsboard.server.common.data.page.PageLink;
|
import org.thingsboard.server.common.data.page.PageLink;
|
||||||
import org.thingsboard.server.common.data.page.SortOrder;
|
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.dao.housekeeper.HouseKeeperService;
|
||||||
import org.thingsboard.server.service.entitiy.AbstractTbEntityService;
|
import org.thingsboard.server.service.entitiy.AbstractTbEntityService;
|
||||||
|
|
||||||
@ -154,8 +151,7 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
|
|||||||
AlarmInfo alarmInfo = result.getAlarm();
|
AlarmInfo alarmInfo = result.getAlarm();
|
||||||
if (result.isModified()) {
|
if (result.isModified()) {
|
||||||
AlarmAssignee assignee = alarmInfo.getAssignee();
|
AlarmAssignee assignee = alarmInfo.getAssignee();
|
||||||
String systemComment = String.format("Alarm was assigned by user %s to user %s", user.getTitle(),
|
String systemComment = String.format("Alarm was assigned by user %s to user %s", user.getTitle(), assignee.getTitle());
|
||||||
(assignee.getFirstName() == null || assignee.getLastName() == null) ? assignee.getEmail() : assignee.getFirstName() + " " + assignee.getLastName());
|
|
||||||
addSystemAlarmComment(alarmInfo, user, "ASSIGN", systemComment, assignee.getId());
|
addSystemAlarmComment(alarmInfo, user, "ASSIGN", systemComment, assignee.getId());
|
||||||
notificationEntityService.logEntityAction(alarm.getTenantId(), alarm.getOriginator(), alarmInfo,
|
notificationEntityService.logEntityAction(alarm.getTenantId(), alarm.getOriginator(), alarmInfo,
|
||||||
alarmInfo.getCustomerId(), ActionType.ALARM_ASSIGNED, user);
|
alarmInfo.getCustomerId(), ActionType.ALARM_ASSIGNED, user);
|
||||||
@ -200,15 +196,6 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
|
|||||||
return totalAlarmIds;
|
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
|
@Override
|
||||||
public Boolean delete(Alarm alarm, User user) {
|
public Boolean delete(Alarm alarm, User user) {
|
||||||
TenantId tenantId = alarm.getTenantId();
|
TenantId tenantId = alarm.getTenantId();
|
||||||
|
|||||||
@ -25,10 +25,14 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.event.TransactionalEventListener;
|
||||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
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.User;
|
||||||
import org.thingsboard.server.common.data.id.AlarmId;
|
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.TenantId;
|
||||||
|
import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent;
|
||||||
import org.thingsboard.server.dao.housekeeper.HouseKeeperService;
|
import org.thingsboard.server.dao.housekeeper.HouseKeeperService;
|
||||||
import org.thingsboard.server.service.entitiy.alarm.TbAlarmService;
|
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
|
@Override
|
||||||
public ListenableFuture<List<AlarmId>> unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs) {
|
public ListenableFuture<List<AlarmId>> unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs) {
|
||||||
log.debug("[{}][{}] unassignDeletedUserAlarms submitting, pending queue size: {} ", tenantId, user.getId().getId(), queueSize.get());
|
log.debug("[{}][{}] unassignDeletedUserAlarms submitting, pending queue size: {} ", tenantId, user.getId().getId(), queueSize.get());
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.common.data.alarm;
|
package org.thingsboard.server.common.data.alarm;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -22,6 +23,8 @@ import org.thingsboard.server.common.data.id.UserId;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
@ -34,4 +37,22 @@ public class AlarmAssignee implements Serializable {
|
|||||||
private final String lastName;
|
private final String lastName;
|
||||||
private final String email;
|
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