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 变更时双向同步到员工的主/辅助角色字段"""