diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 1e9add9bd..7a69c8c0c 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -173,17 +173,9 @@ class SoongWorkflowRecord(models.Model): 'employee2_ids') def _compute_is_to_do(self): current_uid = self.env.user.id - # 关键修改:不再查users_ids,改为查当前用户对应的hr.employee记录 - current_employee = self.env['hr.employee'].search([('user_id', '=', current_uid)], limit=1) - if not current_employee: - # 若当前用户无对应员工记录,所有记录均为非待办 - for rec in self: - rec.is_to_do = False - return - # 初始化所有记录为非待办(上下文流畅,保留原有初始化逻辑) self.is_to_do = False valid_records = self.filtered( - lambda r: (current_employee.id in r.employee_ids.ids or current_employee.id in r.employee2_ids.ids) + lambda r: (current_uid in r.users_ids.ids) and not r.reclaim_state ) if not valid_records: @@ -228,13 +220,8 @@ class SoongWorkflowRecord(models.Model): def _search_is_to_do(self, operator, value): current_uid = self.env.user.id - current_employee = self.env['hr.employee'].search([('user_id', '=', current_uid)], limit=1) - if not current_employee: - return [('id', '=', False)] base_domain = [ - '|', - ('employee_ids', 'in', [current_employee.id]), - ('employee2_ids', 'in', [current_employee.id]), + ('users_ids', 'in', current_uid), ('reclaim_state', '=', False) ] candidate_records = self.search(base_domain)