diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 51dfb22d7..d406f8656 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -53,8 +53,21 @@ class SoongWorkflowRecord(models.Model): def _compute_part_of_department(self): user_employee = self._get_valid_employee_for_user() active_department = user_employee.department_id + parent_department = active_department.parent_id + # 递归获取父部门的所有子部门 + def get_all_children(departments): + all_children = self.env['hr.department'] + for department in departments: + children = department.child_ids + all_children += children + if children: + all_children += get_all_children(children) + return all_children + # 父部门及其所有子部门 + related_departments = parent_department + get_all_children(parent_department) + for employee in self: - employee.member_of_department = employee.department_id == active_department + employee.member_of_department = employee.department_id in related_departments def _get_valid_employee_for_user(self): user = self.env.user