Skip to content

Commit 6805d76

Browse files
authored
fix: Judgment execution logic (#4073)
1 parent d5ef8f3 commit 6805d76

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

apps/application/flow/workflow_manage.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -544,10 +544,16 @@ def get_answer_text_list(self):
544544
return [[item.to_dict() for item in r] for r in result]
545545

546546
@staticmethod
547-
def dependent_node(up_node_id, node):
547+
def dependent_node(edge, node):
548+
up_node_id = edge.sourceNodeId
548549
if not node.node_chunk.is_end():
549550
return False
550551
if node.id == up_node_id:
552+
if node.context.get('branch_id', None):
553+
if edge.sourceAnchorId == f"{node.id}_{node.context.get('branch_id', None)}_right":
554+
return True
555+
else:
556+
return False
551557
if node.type == 'form-node':
552558
if node.context.get('form_data', None) is not None:
553559
return True
@@ -560,9 +566,11 @@ def dependent_node_been_executed(self, node_id):
560566
@param node_id: 需要判断的节点id
561567
@return:
562568
"""
563-
up_node_id_list = [edge.sourceNodeId for edge in self.flow.edges if edge.targetNodeId == node_id]
564-
return all([any([self.dependent_node(up_node_id, node) for node in self.node_context]) for up_node_id in
565-
up_node_id_list])
569+
up_edge_list = [edge for edge in self.flow.edges if edge.targetNodeId == node_id]
570+
return all(
571+
[any([self.dependent_node(edge, node) for node in self.node_context if node.id == edge.sourceNodeId]) for
572+
edge in
573+
up_edge_list])
566574

567575
def get_next_node_list(self, current_node, current_node_result):
568576
"""

0 commit comments

Comments
 (0)