diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmService.java index 65302222fc..e250cca7bc 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmService.java @@ -225,14 +225,14 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb } @Override - public List unassignDeletedUserAlarms(TenantId tenantId, User user) { + public List unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs) { List totalAlarmIds = new ArrayList<>(); List alarmIds; do { alarmIds = alarmService.findAlarmIdsByAssigneeId(tenantId, user.getId(), 100); for (AlarmId alarmId : alarmIds) { log.trace("[{}] Unassigning alarm {} userId {}", tenantId, alarmId.getId(), user.getId().getId()); - AlarmApiCallResult result = alarmSubscriptionService.unassignAlarm(user.getTenantId(), alarmId, System.currentTimeMillis()); + AlarmApiCallResult result = alarmSubscriptionService.unassignAlarm(user.getTenantId(), alarmId, unassignTs); Alarm alarm = result.getAlarm(); if (!result.isSuccessful()) { continue; @@ -268,7 +268,7 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb log.trace("[{}] DeleteEntityEvent handler: {}", event.getTenantId(), event); EntityId entityId = event.getEntityId(); if (EntityType.USER.equals(entityId.getEntityType())) { - housekeeper.unassignDeletedUserAlarms(event.getTenantId(), (User) event.getEntity()); + housekeeper.unassignDeletedUserAlarms(event.getTenantId(), (User) event.getEntity(), event.getTs()); } } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/TbAlarmService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/TbAlarmService.java index c5eb6714ef..24af55f38b 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/TbAlarmService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/TbAlarmService.java @@ -41,7 +41,7 @@ public interface TbAlarmService { AlarmInfo unassign(Alarm alarm, long unassignTs, User user) throws ThingsboardException; - List unassignDeletedUserAlarms(TenantId tenantId, User user); + List unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs); Boolean delete(Alarm alarm, User user); } diff --git a/application/src/main/java/org/thingsboard/server/service/housekeeper/InMemoryHouseKeeperServiceService.java b/application/src/main/java/org/thingsboard/server/service/housekeeper/InMemoryHouseKeeperServiceService.java index ad3bff921e..1e4d23ac15 100644 --- a/application/src/main/java/org/thingsboard/server/service/housekeeper/InMemoryHouseKeeperServiceService.java +++ b/application/src/main/java/org/thingsboard/server/service/housekeeper/InMemoryHouseKeeperServiceService.java @@ -66,10 +66,10 @@ public class InMemoryHouseKeeperServiceService implements HouseKeeperService { } @Override - public ListenableFuture> unassignDeletedUserAlarms(TenantId tenantId, User user) { + public ListenableFuture> unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs) { log.debug("[{}][{}] unassignDeletedUserAlarms submitting, pending queue size: {} ", tenantId, user.getId().getId(), queueSize.get()); queueSize.incrementAndGet(); - ListenableFuture> future = executor.submit(() -> alarmService.unassignDeletedUserAlarms(tenantId, user)); + ListenableFuture> future = executor.submit(() -> alarmService.unassignDeletedUserAlarms(tenantId, user, unassignTs)); Futures.addCallback(future, new FutureCallback<>() { @Override public void onSuccess(List alarmIds) { diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/housekeeper/HouseKeeperService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/housekeeper/HouseKeeperService.java index 41f6136c90..62f53e0f41 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/housekeeper/HouseKeeperService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/housekeeper/HouseKeeperService.java @@ -24,6 +24,6 @@ import java.util.List; public interface HouseKeeperService { - ListenableFuture> unassignDeletedUserAlarms(TenantId tenantId, User user); + ListenableFuture> unassignDeletedUserAlarms(TenantId tenantId, User user, long unassignTs); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/eventsourcing/DeleteEntityEvent.java b/dao/src/main/java/org/thingsboard/server/dao/eventsourcing/DeleteEntityEvent.java index 6277b7910b..7d0499e8aa 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/eventsourcing/DeleteEntityEvent.java +++ b/dao/src/main/java/org/thingsboard/server/dao/eventsourcing/DeleteEntityEvent.java @@ -28,4 +28,7 @@ public class DeleteEntityEvent { private final EntityId entityId; private final EdgeId edgeId; private final T entity; + + @Builder.Default + private final long ts = System.currentTimeMillis(); }