diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/TbMsg.java b/common/message/src/main/java/org/thingsboard/server/common/msg/TbMsg.java index ed23e099fc..879c10ed5e 100644 --- a/common/message/src/main/java/org/thingsboard/server/common/msg/TbMsg.java +++ b/common/message/src/main/java/org/thingsboard/server/common/msg/TbMsg.java @@ -22,6 +22,7 @@ import lombok.AccessLevel; import lombok.Data; import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.EntityId; @@ -296,4 +297,15 @@ public final class TbMsg implements Serializable { public boolean isValid() { return getCallback().isMsgValid(); } + + public long getMetaDataTs() { + String tsStr = metaData.getValue("ts"); + if (!StringUtils.isEmpty(tsStr)) { + try { + return Long.parseLong(tsStr); + } catch (NumberFormatException ignored) { + } + } + return ts; + } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultAlarmQueryRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultAlarmQueryRepository.java index 3b2201b741..1aaf590afd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultAlarmQueryRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultAlarmQueryRepository.java @@ -290,27 +290,6 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository { StringBuilder permissionsQuery = new StringBuilder(); ctx.addUuidParameter("permissions_tenant_id", tenantId.getId()); permissionsQuery.append(" a.tenant_id = :permissions_tenant_id and ea.tenant_id = :permissions_tenant_id "); -/* - No need to check the customer id, because we already use entity id list that passed security check when we were evaluating the data query. - */ -// if (customerId != null && !customerId.isNullUid()) { -// ctx.addUuidParameter("permissions_customer_id", customerId.getId()); -// ctx.addUuidParameter("permissions_device_customer_id", customerId.getId()); -// ctx.addUuidParameter("permissions_asset_customer_id", customerId.getId()); -// ctx.addUuidParameter("permissions_user_customer_id", customerId.getId()); -// ctx.addUuidParameter("permissions_entity_view_customer_id", customerId.getId()); -// permissionsQuery.append(" and ("); -// permissionsQuery.append("(a.originator_type = '").append(EntityType.DEVICE.ordinal()).append("' and exists (select 1 from device cd where cd.id = a.originator_id and cd.customer_id = :permissions_device_customer_id))"); -// permissionsQuery.append(" or "); -// permissionsQuery.append("(a.originator_type = '").append(EntityType.ASSET.ordinal()).append("' and exists (select 1 from asset ca where ca.id = a.originator_id and ca.customer_id = :permissions_device_customer_id))"); -// permissionsQuery.append(" or "); -// permissionsQuery.append("(a.originator_type = '").append(EntityType.CUSTOMER.ordinal()).append("' and exists (select 1 from customer cc where cc.id = a.originator_id and cc.id = :permissions_customer_id))"); -// permissionsQuery.append(" or "); -// permissionsQuery.append("(a.originator_type = '").append(EntityType.USER.ordinal()).append("' and exists (select 1 from tb_user cu where cu.id = a.originator_id and cu.customer_id = :permissions_user_customer_id))"); -// permissionsQuery.append(" or "); -// permissionsQuery.append("(a.originator_type = '").append(EntityType.ENTITY_VIEW.ordinal()).append("' and exists (select 1 from entity_view cv where cv.id = a.originator_id and cv.customer_id = :permissions_entity_view_customer_id))"); -// permissionsQuery.append(")"); -// } return permissionsQuery.toString(); } diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java index f2d81804fd..b67662dfe7 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java @@ -164,6 +164,7 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode