From bb96cb5c77d9be9b8356533d69ed4e35913e79d8 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Tue, 27 May 2025 20:33:38 +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_workflow_record.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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