Merge branch 'master' of github.com:thingsboard/thingsboard

This commit is contained in:
Igor Kulikov 2022-01-19 17:02:28 +02:00
commit a336bba515
4 changed files with 16 additions and 39 deletions

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -164,6 +164,7 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode<TbCreateAlarmNodeConf
}
private Alarm buildAlarm(TbMsg msg, JsonNode details, TenantId tenantId) {
long ts = msg.getMetaDataTs();
return Alarm.builder()
.tenantId(tenantId)
.originator(msg.getOriginator())
@ -172,9 +173,8 @@ public class TbCreateAlarmNode extends TbAbstractAlarmNode<TbCreateAlarmNodeConf
.propagate(config.isPropagate())
.type(TbNodeUtils.processPattern(this.config.getAlarmType(), msg))
.propagateRelationTypes(relationTypes)
//todo-vp: alarm date should be taken from Message or current Time should be used?
// .startTs(System.currentTimeMillis())
// .endTs(System.currentTimeMillis())
.startTs(ts)
.endTs(ts)
.details(details)
.build();
}

View File

@ -111,21 +111,7 @@ public class TbMsgTimeseriesNode implements TbNode {
}
public static long computeTs(TbMsg msg, boolean ignoreMetadataTs) {
return ignoreMetadataTs ? System.currentTimeMillis() : getTs(msg);
}
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;
return ignoreMetadataTs ? System.currentTimeMillis() : msg.getMetaDataTs();
}
@Override