From 5bed1b7f072b4de5518ae2aeeea0260e91999f93 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: Thu, 11 Jun 2026 11:00:16 +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 --- yuthon_issue/models/issue_library.py | 22 ++++++++++++------- .../soong_workflow_comment_wizard_inherit.py | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py index 7eea5915a..777595b19 100644 --- a/yuthon_issue/models/issue_library.py +++ b/yuthon_issue/models/issue_library.py @@ -114,14 +114,20 @@ class IssueLibrary(models.Model): is_push_depart = fields.Boolean(string="部门推送") is_meeting = fields.Boolean(string="已过会", compute='_compute_meeting', store=True) - def log_avoidance(self, avoid_user, avoid_comment=''): - """记录回避信息""" - self.env['issue.library.avoid.line'].create({ - 'issue_library_id': self.id, - 'avoid_user_id': avoid_user.id, - 'avoid_date': fields.Datetime.now() + timedelta(hours=8), - 'avoid_comment': avoid_comment, - }) + def log_avoidance(self, avoid_employee_ids, avoid_comment=''): + """记录回避信息,已存在的回避人不重复创建""" + for employee_id in avoid_employee_ids: + existing = self.env['issue.library.avoid.line'].search([ + ('issue_library_id', '=', self.id), + ('avoid_user_id', '=', employee_id.user_id.id), + ], limit=1) + if not existing: + self.env['issue.library.avoid.line'].create({ + 'issue_library_id': self.id, + 'avoid_user_id': employee_id.user_id.id, + 'avoid_date': fields.Datetime.now() + timedelta(hours=8), + 'avoid_comment': avoid_comment, + }) def correction_confirm(self): for rec in self: diff --git a/yuthon_issue/wizard/soong_workflow_comment_wizard_inherit.py b/yuthon_issue/wizard/soong_workflow_comment_wizard_inherit.py index 3bb7b7e79..25b5d52cc 100644 --- a/yuthon_issue/wizard/soong_workflow_comment_wizard_inherit.py +++ b/yuthon_issue/wizard/soong_workflow_comment_wizard_inherit.py @@ -10,6 +10,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): 'wizard_id', 'issue_id', string='议题过滤') avoid_issue_ids = fields.Many2many('issue.library', 'soong_comment_wizard_avoid_issue_rel', 'wizard_id', 'issue_id', string='回避议题') + avoid_employee_ids = fields.Many2many('hr.employee', 'employee_ids_avoid_rel', 'custom_id', 'employee_id', string="回避人员",) avoid_comment = fields.Char(string='回避意见') @api.depends('avoid_comment') @@ -31,4 +32,4 @@ class SoongWorkflowCommentWizard(models.TransientModel): if not self.is_avoid or not self.avoid_issue_ids: return for issue in self.avoid_issue_ids: - issue.log_avoidance(self.env.user, self.avoid_comment or '') + issue.log_avoidance(self.avoid_employee_ids, self.avoid_comment or '')