Fix '0/0 usage' notification
This commit is contained in:
parent
f11ee730b5
commit
6c58f06507
@ -19,10 +19,10 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.notification.info.EntitiesLimitNotificationInfo;
|
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.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.EntitiesLimitNotificationRuleTriggerConfig;
|
||||||
import org.thingsboard.server.common.data.notification.rule.trigger.config.NotificationRuleTriggerType;
|
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.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.entity.EntityCountService;
|
||||||
import org.thingsboard.server.dao.tenant.TbTenantProfileCache;
|
import org.thingsboard.server.dao.tenant.TbTenantProfileCache;
|
||||||
import org.thingsboard.server.dao.tenant.TenantService;
|
import org.thingsboard.server.dao.tenant.TenantService;
|
||||||
@ -48,6 +48,9 @@ public class EntitiesLimitTriggerProcessor implements NotificationRuleTriggerPro
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
long currentCount = entityCountService.countByTenantIdAndEntityType(trigger.getTenantId(), trigger.getEntityType());
|
long currentCount = entityCountService.countByTenantIdAndEntityType(trigger.getTenantId(), trigger.getEntityType());
|
||||||
|
if (currentCount == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
trigger.setLimit(limit);
|
trigger.setLimit(limit);
|
||||||
trigger.setCurrentCount(currentCount);
|
trigger.setCurrentCount(currentCount);
|
||||||
return (int) (limit * triggerConfig.getThreshold()) == currentCount; // strict comparing not to send notification on each new entity
|
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())
|
.entityType(trigger.getEntityType())
|
||||||
.currentCount(trigger.getCurrentCount())
|
.currentCount(trigger.getCurrentCount())
|
||||||
.limit(trigger.getLimit())
|
.limit(trigger.getLimit())
|
||||||
.percents((int) (((float)trigger.getCurrentCount() / trigger.getLimit()) * 100))
|
.percents((int) (((float) trigger.getCurrentCount() / trigger.getLimit()) * 100))
|
||||||
.tenantId(trigger.getTenantId())
|
.tenantId(trigger.getTenantId())
|
||||||
.tenantName(tenantService.findTenantById(trigger.getTenantId()).getName())
|
.tenantName(tenantService.findTenantById(trigger.getTenantId()).getName())
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user