From a381d90020cd9a553d5b8cdc9aa21ed1031c12a6 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: Mon, 20 Apr 2026 10:42:06 +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_user_role.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/soong_workflow/models/soong_user_role.py b/soong_workflow/models/soong_user_role.py index 5fa79a7e1..4a7632dde 100644 --- a/soong_workflow/models/soong_user_role.py +++ b/soong_workflow/models/soong_user_role.py @@ -98,13 +98,14 @@ class YuthonUserRole(models.Model): @api.onchange('personnel_ids') def _onchange_personnel_ids(self): - for record in self: - for personnel_id in record.personnel_ids: - employee = self.env['hr.employee'].search([('id', '=', personnel_id.id.origin)], limit=1) - if employee: - if self.id.origin != employee.user_role_id.id: - new_user_role_ids = employee.user_role_ids.ids + [self.id.origin] - employee.write({'user_role_ids': [(6, 0, new_user_role_ids)],}) + for personnel_id in self.personnel_ids: + employee = self.env['hr.employee'].browse(personnel_id.id) + if employee: + if self.id not in employee.user_role_ids.ids: + new_user_role_ids = list(set(employee.user_role_ids.ids + [self.id])) + employee.write({ + 'user_role_ids': [(6, 0, new_user_role_ids)], + }) def write(self, vals): """覆盖 write,personnel_ids 变更时双向同步到员工的主/辅助角色字段"""