diff --git a/apps/application/flow/workflow_manage.py b/apps/application/flow/workflow_manage.py index f8e1931ebec..40fe97fbc5a 100644 --- a/apps/application/flow/workflow_manage.py +++ b/apps/application/flow/workflow_manage.py @@ -676,9 +676,17 @@ def get_next_node_list(self, current_node, current_node_result): self.get_node_cls_by_id(edge.targetNodeId, self.get_up_node_id_list(edge.targetNodeId))) else: for edge in self.flow.edges: - if edge.sourceNodeId == current_node.id and self.dependent_node_been_executed(edge.targetNodeId): - node_list.append( - self.get_node_cls_by_id(edge.targetNodeId, self.get_up_node_id_list(edge.targetNodeId))) + if edge.sourceNodeId == current_node.id: + next_node = [node for node in self.flow.nodes if node.id == edge.targetNodeId] + if len(next_node) == 0: + continue + if next_node[0].properties.get('condition', "AND") == 'AND': + if self.dependent_node_been_executed(edge.targetNodeId): + node_list.append( + self.get_node_cls_by_id(edge.targetNodeId, self.get_up_node_id_list(edge.targetNodeId))) + else: + node_list.append( + self.get_node_cls_by_id(edge.targetNodeId, self.get_up_node_id_list(edge.targetNodeId))) return node_list def get_reference_field(self, node_id: str, fields: List[str]): diff --git a/ui/src/workflow/common/NodeContainer.vue b/ui/src/workflow/common/NodeContainer.vue index 15f7ea58c80..6f388b0c15b 100644 --- a/ui/src/workflow/common/NodeContainer.vue +++ b/ui/src/workflow/common/NodeContainer.vue @@ -44,8 +44,8 @@ placement="bottom-start" > - - + +