Merge branch 'master' into develop/2.3
This commit is contained in:
commit
0dea447dfe
@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.thingsboard.server.common.data.BaseData;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.Tenant;
|
import org.thingsboard.server.common.data.Tenant;
|
||||||
import org.thingsboard.server.common.data.id.EntityId;
|
import org.thingsboard.server.common.data.id.EntityId;
|
||||||
@ -274,14 +275,43 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
|
|||||||
public List<RuleNode> getRuleChainNodes(TenantId tenantId, RuleChainId ruleChainId) {
|
public List<RuleNode> getRuleChainNodes(TenantId tenantId, RuleChainId ruleChainId) {
|
||||||
Validator.validateId(ruleChainId, "Incorrect rule chain id for search request.");
|
Validator.validateId(ruleChainId, "Incorrect rule chain id for search request.");
|
||||||
List<EntityRelation> relations = getRuleChainToNodeRelations(tenantId, ruleChainId);
|
List<EntityRelation> relations = getRuleChainToNodeRelations(tenantId, ruleChainId);
|
||||||
List<RuleNode> ruleNodes = relations.stream().map(relation -> ruleNodeDao.findById(tenantId, relation.getTo().getId())).collect(Collectors.toList());
|
List<RuleNode> ruleNodes = new ArrayList<>();
|
||||||
|
for (EntityRelation relation : relations) {
|
||||||
|
RuleNode ruleNode = ruleNodeDao.findById(tenantId, relation.getTo().getId());
|
||||||
|
if (ruleNode != null) {
|
||||||
|
ruleNodes.add(ruleNode);
|
||||||
|
} else {
|
||||||
|
relationService.deleteRelation(tenantId, relation);
|
||||||
|
}
|
||||||
|
}
|
||||||
return ruleNodes;
|
return ruleNodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EntityRelation> getRuleNodeRelations(TenantId tenantId, RuleNodeId ruleNodeId) {
|
public List<EntityRelation> getRuleNodeRelations(TenantId tenantId, RuleNodeId ruleNodeId) {
|
||||||
Validator.validateId(ruleNodeId, "Incorrect rule node id for search request.");
|
Validator.validateId(ruleNodeId, "Incorrect rule node id for search request.");
|
||||||
return relationService.findByFrom(tenantId, ruleNodeId, RelationTypeGroup.RULE_NODE);
|
List<EntityRelation> relations = relationService.findByFrom(tenantId, ruleNodeId, RelationTypeGroup.RULE_NODE);
|
||||||
|
List<EntityRelation> validRelations = new ArrayList<>();
|
||||||
|
for (EntityRelation relation : relations) {
|
||||||
|
boolean valid = true;
|
||||||
|
EntityType toType = relation.getTo().getEntityType();
|
||||||
|
if (toType == EntityType.RULE_NODE || toType == EntityType.RULE_CHAIN) {
|
||||||
|
BaseData entity;
|
||||||
|
if (relation.getTo().getEntityType() == EntityType.RULE_NODE) {
|
||||||
|
entity = ruleNodeDao.findById(tenantId, relation.getTo().getId());
|
||||||
|
} else {
|
||||||
|
entity = ruleChainDao.findById(tenantId, relation.getTo().getId());
|
||||||
|
}
|
||||||
|
if (entity == null) {
|
||||||
|
relationService.deleteRelation(tenantId, relation);
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (valid) {
|
||||||
|
validRelations.add(relation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return validRelations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user