diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java index c6526476d2..1565fad175 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java @@ -41,7 +41,6 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.rule.RuleChain; -import org.thingsboard.server.common.data.rule.RuleChainMetaData; import org.thingsboard.server.common.data.rule.RuleChainType; import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.msg.TbMsg; @@ -101,19 +100,9 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS } @Override - public void notifySaveRuleChainMetaData(TenantId tenantId, RuleChain ruleChain, Object... others) { - if (others.length == 0) { - sendEntityNotificationMsg(tenantId, ruleChain.getId(), EdgeEventActionType.UPDATED); - } else { - RuleChain updatedRuleChain = (RuleChain)others[0]; - RuleChainMetaData updatedRuleChainMetaData = (RuleChainMetaData)others[1]; - SecurityUser user = (SecurityUser)others[2]; - logEntityAction(tenantId, updatedRuleChain.getId(), updatedRuleChain, null, ActionType.UPDATED, user, null, updatedRuleChainMetaData); - if (RuleChainType.EDGE.equals(ruleChain.getType())) { - sendEntityNotificationMsg(updatedRuleChain.getTenantId(), updatedRuleChain.getId(), EdgeEventActionType.UPDATED); - } - } - } + public void notifySendMsgToEdgeService(TenantId tenantId, RuleChain ruleChain, EdgeEventActionType edgeEventActionType) { + sendEntityNotificationMsg(tenantId, ruleChain.getId(), edgeEventActionType); + } @Override public void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId, diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java index 49510a4738..009ea26676 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/TbNotificationEntityService.java @@ -57,7 +57,7 @@ public interface TbNotificationEntityService { void notifyDeleteRuleChain(TenantId tenantId, RuleChain ruleChain, List relatedEdgeIds, SecurityUser user); - void notifySaveRuleChainMetaData(TenantId tenantId, RuleChain ruleChain, Object... others); + void notifySendMsgToEdgeService(TenantId tenantId, RuleChain ruleChain, EdgeEventActionType edgeEventActionType); void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId, CustomerId customerId, E entity, diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java index 7291f77f8d..6c4059806f 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; +import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.RuleChainId; @@ -176,16 +177,22 @@ public class DefaultTbRuleChainNotifyService extends AbstractTbEntityService imp ruleChain, user, ActionType.UPDATED, false, null, ruleChainMetaData); if (RuleChainType.EDGE.equals(ruleChain.getType())) { - notificationEntityService.notifySaveRuleChainMetaData(tenantId, ruleChain); - } - - for (RuleChain updatedRuleChain : updatedRuleChains) { - RuleChainMetaData updatedRuleChainMetaData = checkNotNull(ruleChainService.loadRuleChainMetaData(tenantId, - updatedRuleChain.getId())); - notificationEntityService.notifySaveRuleChainMetaData(tenantId, ruleChain, updatedRuleChain, - updatedRuleChainMetaData, user); + notificationEntityService.notifySendMsgToEdgeService(tenantId, ruleChain, EdgeEventActionType.UPDATED); } + updatedRuleChains.forEach(updatedRuleChain -> { + if (RuleChainType.EDGE.equals(ruleChain.getType())) { + notificationEntityService.notifySendMsgToEdgeService(tenantId, updatedRuleChain, EdgeEventActionType.UPDATED); + } else { + try { + RuleChainMetaData updatedRuleChainMetaData = checkNotNull(ruleChainService.loadRuleChainMetaData(tenantId, updatedRuleChain.getId())); + notificationEntityService.notifyCreateOrUpdateOrDelete(tenantId, null, updatedRuleChain.getId(), + updatedRuleChain, user, ActionType.UPDATED, false, null, updatedRuleChainMetaData); + } catch (ThingsboardException e) { + e.printStackTrace(); + } + } + }); return savedRuleChainMetaData; } catch (Exception e) { notificationEntityService.notifyCreateOrUpdateOrDelete(tenantId, null, emptyId(EntityType.RULE_CHAIN),