From 6c58f065078eef3a82c62a422174dbe0e853470d Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Tue, 2 Jan 2024 15:24:59 +0200 Subject: [PATCH] Fix '0/0 usage' notification --- .../rule/trigger/EntitiesLimitTriggerProcessor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/EntitiesLimitTriggerProcessor.java b/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/EntitiesLimitTriggerProcessor.java index 9539b42a43..3716edcaa4 100644 --- a/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/EntitiesLimitTriggerProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/notification/rule/trigger/EntitiesLimitTriggerProcessor.java @@ -19,10 +19,10 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.notification.info.EntitiesLimitNotificationInfo; import org.thingsboard.server.common.data.notification.info.RuleOriginatedNotificationInfo; +import org.thingsboard.server.common.data.notification.rule.trigger.EntitiesLimitTrigger; import org.thingsboard.server.common.data.notification.rule.trigger.config.EntitiesLimitNotificationRuleTriggerConfig; import org.thingsboard.server.common.data.notification.rule.trigger.config.NotificationRuleTriggerType; import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; -import org.thingsboard.server.common.data.notification.rule.trigger.EntitiesLimitTrigger; import org.thingsboard.server.dao.entity.EntityCountService; import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.dao.tenant.TenantService; @@ -48,6 +48,9 @@ public class EntitiesLimitTriggerProcessor implements NotificationRuleTriggerPro return false; } long currentCount = entityCountService.countByTenantIdAndEntityType(trigger.getTenantId(), trigger.getEntityType()); + if (currentCount == 0) { + return false; + } trigger.setLimit(limit); trigger.setCurrentCount(currentCount); return (int) (limit * triggerConfig.getThreshold()) == currentCount; // strict comparing not to send notification on each new entity @@ -59,7 +62,7 @@ public class EntitiesLimitTriggerProcessor implements NotificationRuleTriggerPro .entityType(trigger.getEntityType()) .currentCount(trigger.getCurrentCount()) .limit(trigger.getLimit()) - .percents((int) (((float)trigger.getCurrentCount() / trigger.getLimit()) * 100)) + .percents((int) (((float) trigger.getCurrentCount() / trigger.getLimit()) * 100)) .tenantId(trigger.getTenantId()) .tenantName(tenantService.findTenantById(trigger.getTenantId()).getName()) .build();