Alarm start ts from message ts
This commit is contained in:
parent
66b58549c5
commit
c31ee8e2da
@ -22,6 +22,7 @@ import lombok.AccessLevel;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
import org.thingsboard.server.common.data.id.EntityId;
|
import org.thingsboard.server.common.data.id.EntityId;
|
||||||
@ -296,4 +297,15 @@ public final class TbMsg implements Serializable {
|
|||||||
public boolean isValid() {
|
public boolean isValid() {
|
||||||
return getCallback().isMsgValid();
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -290,27 +290,6 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository {
|
|||||||
StringBuilder permissionsQuery = new StringBuilder();
|
StringBuilder permissionsQuery = new StringBuilder();
|
||||||
ctx.addUuidParameter("permissions_tenant_id", tenantId.getId());
|
ctx.addUuidParameter("permissions_tenant_id", tenantId.getId());
|
||||||
permissionsQuery.append(" a.tenant_id = :permissions_tenant_id and ea.tenant_id = :permissions_tenant_id ");
|
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();
|
return permissionsQuery.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -164,6 +164,7 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode<TbCreateAlarmNodeConf
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Alarm buildAlarm(TbMsg msg, JsonNode details, TenantId tenantId) {
|
private Alarm buildAlarm(TbMsg msg, JsonNode details, TenantId tenantId) {
|
||||||
|
long ts = msg.getMetaDataTs();
|
||||||
return Alarm.builder()
|
return Alarm.builder()
|
||||||
.tenantId(tenantId)
|
.tenantId(tenantId)
|
||||||
.originator(msg.getOriginator())
|
.originator(msg.getOriginator())
|
||||||
@ -172,9 +173,8 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode<TbCreateAlarmNodeConf
|
|||||||
.propagate(config.isPropagate())
|
.propagate(config.isPropagate())
|
||||||
.type(TbNodeUtils.processPattern(this.config.getAlarmType(), msg))
|
.type(TbNodeUtils.processPattern(this.config.getAlarmType(), msg))
|
||||||
.propagateRelationTypes(relationTypes)
|
.propagateRelationTypes(relationTypes)
|
||||||
//todo-vp: alarm date should be taken from Message or current Time should be used?
|
.startTs(ts)
|
||||||
// .startTs(System.currentTimeMillis())
|
.endTs(ts)
|
||||||
// .endTs(System.currentTimeMillis())
|
|
||||||
.details(details)
|
.details(details)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,21 +111,7 @@ public class TbMsgTimeseriesNode implements TbNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static long computeTs(TbMsg msg, boolean ignoreMetadataTs) {
|
public static long computeTs(TbMsg msg, boolean ignoreMetadataTs) {
|
||||||
return ignoreMetadataTs ? System.currentTimeMillis() : getTs(msg);
|
return ignoreMetadataTs ? System.currentTimeMillis() : msg.getMetaDataTs();
|
||||||
}
|
|
||||||
|
|
||||||
public static long getTs(TbMsg msg) {
|
|
||||||
long ts = -1;
|
|
||||||
String tsStr = msg.getMetaData().getValue("ts");
|
|
||||||
if (!StringUtils.isEmpty(tsStr)) {
|
|
||||||
try {
|
|
||||||
ts = Long.parseLong(tsStr);
|
|
||||||
} catch (NumberFormatException ignored) {
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ts = msg.getTs();
|
|
||||||
}
|
|
||||||
return ts;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user