From b21c92d19682e27b50313bffabcad3f892c365ba Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 15 Jul 2025 17:12:38 +0800 Subject: [PATCH 1/3] =?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/wizard/soong_workflow_comment_wizard.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 8d3006cb3..f5e0995c5 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -224,13 +224,8 @@ class SoongWorkflowCommentWizard(models.TransientModel): # 根据勾选的条件设置域条件(只勾选一个) if is_automatic and record_id.department_id: # 按当前申请人自动匹配-本部门(保留部门和公司条件) - # 获取当前部门及其上一级部门ID - department_ids = [record_id.department_id.id] - if record_id.department_id.parent_id: - department_ids.append(record_id.department_id.parent_id.id) - department_domain = ['|'] * (len(department_ids) - 1) - for dep_id in department_ids: - department_domain.extend([('department_id', '=', dep_id), ('department_ids', 'in', dep_id)]) + department_domain = ['|', ('department_id', '=', record_id.department_id.id), + ('department_ids', 'in', record_id.department_id.id)] company_domain = [('company_id', '=', record_id.company_id.id)] if hasattr(record_id, 'company_id') else [] From 0389f433124e7c03322d98f784e8021c5e9b78c0 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 15 Jul 2025 18:22:38 +0800 Subject: [PATCH 2/3] =?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 --- .../wizard/soong_workflow_comment_wizard.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index f5e0995c5..516ae3530 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -290,15 +290,24 @@ class SoongWorkflowCommentWizard(models.TransientModel): self.ensure_one() cx = self.env.context.copy() or {} record_id = self.env[self.res_model].search([('id', '=', self.res_id)]) + is_admin = self.env.user.has_group('soong_workflow.group_soong_workflow_manager') + if self.node_btn_name == '转交': self_node_id = record_id.workflow_id.node_ids.search( [('name', '=', record_id.state), ('workflow_id', '=', record_id.workflow_id.id)]) - # 查找当前节点的登录人审批记录 + query_user_id = self.env.user.id + if is_admin and record_id: + if hasattr(record_id, 'user_id') and record_id.user_id: + query_user_id = record_id.user_id.id + elif hasattr(record_id, 'users_id') and record_id.users_id: + query_user_id = record_id.users_id.id + + # 查询审批记录(使用确定的用户ID) current_node_log = self.sudo().env["soong.workflow.log"].search( [("model", "=", self.res_model), ("res_id", "=", self.res_id), ("node_id", "=", self.node_btn_id.node_id.id), - ("done_by", "=", self.env.user.id)] + ("done_by", "=", query_user_id)] ) # 创建或更新当前用户的审批记录 if not current_node_log: @@ -308,7 +317,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): "res_id": self.res_id, "node_id": self.node_btn_id.node_id.id, "workflow_id": self.node_btn_id.workflow_id.id, - "done_by": self.env.user.id, + "done_by": query_user_id, "node_btn_name": "0", "node_btn_id": self.node_btn_id.id, "lase_click_date": fields.Datetime.now(), @@ -396,7 +405,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): "res_id": self.res_id, "node_id": next_node_id.id, "workflow_id": self.node_btn_id.workflow_id.id, - "done_by": self.employee_ids.user_id.id if self.employee_ids else self.env.user.id, + "done_by": self.employee_ids.user_id.id if self.employee_ids else query_user_id, "node_btn_name": "0", "lase_click_date": fields.Datetime.now(), "approval_state": "1", # 待审批 From 58aa256700425382151173b5bb1a63cf2f7b81b1 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 15 Jul 2025 18:35:39 +0800 Subject: [PATCH 3/3] =?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/wizard/soong_workflow_comment_wizard.py | 1 + 1 file changed, 1 insertion(+) diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 516ae3530..2b08e30be 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -358,6 +358,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): ("model", "=", self.res_model), ("res_id", "=", self.res_id), ("node_id", "=", next_node_id.id), + ('node_btn_name', '!=', '1'), ("done_by", "=", employee.user_id.id) ])