|
|
|
@ -37,7 +37,6 @@ import org.thingsboard.server.common.data.id.RuleNodeId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
|
import org.thingsboard.server.common.data.page.PageLink; |
|
|
|
import org.thingsboard.server.common.data.page.TimePageLink; |
|
|
|
import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; |
|
|
|
import org.thingsboard.server.common.data.relation.EntityRelation; |
|
|
|
import org.thingsboard.server.common.data.relation.RelationTypeGroup; |
|
|
|
@ -458,13 +457,13 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<RuleChainImportResult> importTenantRuleChains(TenantId tenantId, RuleChainData ruleChainData, boolean overwrite) { |
|
|
|
public List<RuleChainImportResult> importTenantRuleChains(TenantId tenantId, RuleChainData ruleChainData, RuleChainType type, boolean overwrite) { |
|
|
|
List<RuleChainImportResult> importResults = new ArrayList<>(); |
|
|
|
setRandomRuleChainIds(ruleChainData); |
|
|
|
resetRuleNodeIds(ruleChainData.getMetadata()); |
|
|
|
resetRuleChainMetadataTenantIds(tenantId, ruleChainData.getMetadata()); |
|
|
|
if (overwrite) { |
|
|
|
List<RuleChain> persistentRuleChains = findAllTenantRuleChains(tenantId); |
|
|
|
List<RuleChain> persistentRuleChains = findAllTenantRuleChains(tenantId, type); |
|
|
|
for (RuleChain ruleChain : ruleChainData.getRuleChains()) { |
|
|
|
ComponentLifecycleEvent lifecycleEvent; |
|
|
|
Optional<RuleChain> persistentRuleChainOpt = persistentRuleChains.stream().filter(rc -> rc.getName().equals(ruleChain.getName())).findFirst(); |
|
|
|
@ -544,19 +543,19 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private List<RuleChain> findAllTenantRuleChains(TenantId tenantId) { |
|
|
|
private List<RuleChain> findAllTenantRuleChains(TenantId tenantId, RuleChainType type) { |
|
|
|
PageLink pageLink = new PageLink(DEFAULT_PAGE_SIZE); |
|
|
|
return findAllTenantRuleChainsRecursive(tenantId, new ArrayList<>(), pageLink); |
|
|
|
return findAllTenantRuleChainsRecursive(tenantId, new ArrayList<>(), type, pageLink); |
|
|
|
} |
|
|
|
|
|
|
|
private List<RuleChain> findAllTenantRuleChainsRecursive(TenantId tenantId, List<RuleChain> accumulator, PageLink pageLink) { |
|
|
|
PageData<RuleChain> persistentRuleChainData = findTenantRuleChainsByType(tenantId, RuleChainType.CORE, pageLink); |
|
|
|
private List<RuleChain> findAllTenantRuleChainsRecursive(TenantId tenantId, List<RuleChain> accumulator, RuleChainType type, PageLink pageLink) { |
|
|
|
PageData<RuleChain> persistentRuleChainData = findTenantRuleChainsByType(tenantId, type, pageLink); |
|
|
|
List<RuleChain> ruleChains = persistentRuleChainData.getData(); |
|
|
|
if (!CollectionUtils.isEmpty(ruleChains)) { |
|
|
|
accumulator.addAll(ruleChains); |
|
|
|
} |
|
|
|
if (persistentRuleChainData.hasNext()) { |
|
|
|
return findAllTenantRuleChainsRecursive(tenantId, accumulator, pageLink.nextPageLink()); |
|
|
|
return findAllTenantRuleChainsRecursive(tenantId, accumulator, type, pageLink.nextPageLink()); |
|
|
|
} |
|
|
|
return accumulator; |
|
|
|
} |
|
|
|
@ -616,7 +615,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<RuleChain> findRuleChainsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink) { |
|
|
|
public PageData<RuleChain> findRuleChainsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, PageLink pageLink) { |
|
|
|
log.trace("Executing findRuleChainsByTenantIdAndEdgeId, tenantId [{}], edgeId [{}], pageLink [{}]", tenantId, edgeId, pageLink); |
|
|
|
Validator.validateId(tenantId, "Incorrect tenantId " + tenantId); |
|
|
|
Validator.validateId(edgeId, "Incorrect edgeId " + edgeId); |
|
|
|
|