Skip to content

Commit c9634f9

Browse files
authored
fix: Judgment execution logic (#4072)
1 parent c88d90b commit c9634f9

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
@@ -680,10 +680,16 @@ def get_next_node(self):
680680
return None
681681

682682
@staticmethod
683-
def dependent_node(up_node_id, node):
683+
def dependent_node(edge, node):
684+
up_node_id = edge.sourceNodeId
684685
if not node.node_chunk.is_end():
685686
return False
686687
if node.id == up_node_id:
688+
if node.context.get('branch_id', None):
689+
if edge.sourceAnchorId == f"{node.id}_{node.context.get('branch_id', None)}_right":
690+
return True
691+
else:
692+
return False
687693
if node.type == 'form-node':
688694
if node.context.get('form_data', None) is not None:
689695
return True
@@ -696,9 +702,11 @@ def dependent_node_been_executed(self, node_id):
696702
@param node_id: 需要判断的节点id
697703
@return:
698704
"""
699-
up_node_id_list = [edge.sourceNodeId for edge in self.flow.edges if edge.targetNodeId == node_id]
700-
return all([any([self.dependent_node(up_node_id, node) for node in self.node_context]) for up_node_id in
701-
up_node_id_list])
705+
up_edge_list = [edge for edge in self.flow.edges if edge.targetNodeId == node_id]
706+
return all(
707+
[any([self.dependent_node(edge, node) for node in self.node_context if node.id == edge.sourceNodeId]) for
708+
edge in
709+
up_edge_list])
702710

703711
def get_up_node_id_list(self, node_id):
704712
up_node_id_list = [edge.sourceNodeId for edge in self.flow.edges if edge.targetNodeId == node_id]

0 commit comments

Comments
 (0)