diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 9a2ebea18..718947bdc 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -505,17 +505,6 @@ class SoongWorkflowCommentWizard(models.TransientModel): ]) for other_node_log in other_node_logs: other_node_log.unlink() - # 印章分组审批:章内串审,删除同章其他人的待办 - if getattr(current_node_log, 'stamp_id', False): - same_stamp_logs = self.sudo().env["soong.workflow.log"].search( - [("model", "=", self.res_model), - ("res_id", "=", self.res_id), - ("id", "!=", current_node_log.id), - ("node_id", "=", self.node_btn_id.node_id.id), - ("stamp_id", "=", current_node_log.stamp_id.id), - ("approval_state", "in", ['0', '1']), - ]) - same_stamp_logs.unlink() # 印章分组审批:模型有 type_stamp_ids 字段且转交目标是「印章管理员」节点 record_has_stamps = hasattr(record_id, 'type_stamp_ids') and bool(record_id.type_stamp_ids) @@ -911,6 +900,29 @@ class SoongWorkflowCommentWizard(models.TransientModel): key=lambda r: (not r.lase_click_date, r.lase_click_date or False, r.id) )[-1] if record_id.log_ids else None all_user = True if last_log and last_log.done_by == current_user else False + + current_node_log = self.sudo().env["soong.workflow.log"].search( + [ + ("model", "=", self.res_model), + ("res_id", "=", self.res_id), + ("done_by", "=", query_user_id), + ("node_id", "=", self.node_btn_id.node_id.id), + ], + order="create_date DESC", + limit=1 + ) + # 印章分组审批:章内串审,删除同章其他人的待办 + if getattr(current_node_log, 'stamp_id', False): + same_stamp_logs = self.sudo().env["soong.workflow.log"].search( + [("model", "=", self.res_model), + ("res_id", "=", self.res_id), + ("id", "!=", current_node_log.id), + ("node_id", "=", self.node_btn_id.node_id.id), + ("stamp_id", "=", current_node_log.stamp_id.id), + ("approval_state", "in", ['0', '1']), + ]) + same_stamp_logs.unlink() + if last_log: same_name_logs = record_id.log_ids.filtered( lambda log: log.name == last_log.name and log.node_btn_name == '4' and log.id != last_log.id