From 0b67232201ab65e546cedb9ab07ce19a8ff8618e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 26 May 2026 18:08:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/models/soong_workflow_mixin.py | 13 +++++-------- .../wizard/soong_workflow_comment_wizard.py | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 224639672..6e2826182 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -115,14 +115,11 @@ class SoongWorkflowMixin(models.AbstractModel): has_done = record.log_ids.search(domain_hide_done) has_user_approved = False - if record.log_ids: - approved_log = record.log_ids.filtered( - lambda l: l.done_by == self.env.user - and l.approval_state == '2' - and l.node_btn_name != '1' - ) - if approved_log: - has_user_approved = True + user_logs = record.log_ids.filtered( + lambda l: l.done_by == self.env.user and l.node_btn_name != '1' + ) + if user_logs: + has_user_approved = all(log.approval_state == '2' for log in user_logs) # 如果有日志,取【第一个节点】的经办人 == 当前登录人 → 隐藏 (归档待办的除外) has_first_user = False diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index d4ddd52bc..a18b78ef0 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -621,7 +621,16 @@ class SoongWorkflowCommentWizard(models.TransientModel): if self.node_btn_name == '加签': - current_node_log = record_id.log_ids[-1] + current_node_log = self.sudo().env["soong.workflow.log"].search( + [ + ("model", "=", self.res_model), + ("res_id", "=", self.res_id), + ("done_by", "=", self.env.user.id), + ("approval_state", 'in', ['0','1']), + ], + order="create_date DESC", + limit=1 + ) current_node_log.write({ "comment": self.comment, "approval_state": "2", # 已完成 @@ -705,9 +714,8 @@ class SoongWorkflowCommentWizard(models.TransientModel): last_sign_log = log_obj.search([ ("model", "=", self.res_model), ("res_id", "=", self.res_id), - ("node_id", "=", node_id), ("name", "!=", "加签"), - ], order="create_date DESC", limit=1) + ], order="lase_click_date DESC")[0] # 如果没有加签日志,直接跳过 if not last_sign_log: @@ -734,7 +742,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): "model": self.res_model, "res_id": self.res_id, "workflow_id": self.node_btn_id.workflow_id.id, - "node_id": node_id, + "node_id": last_sign_log.node_id.id, "done_by": last_sign_user.id, "approval_state": "0", "create_date": fields.Datetime.now(),