This commit is contained in:
ljmwkx
2024-12-31 13:43:04 +08:00
parent a4526ac799
commit b2bcf8f96d
+18 -17
View File
@@ -34,24 +34,25 @@ class SoongWorkflowRecord(models.Model):
done_by = fields.Many2one(comodel_name="res.users", string="经办人")
is_department_record = fields.Boolean(string="是否是本部门的数据", store=False, search="_search_is_department_record")
def get_department_employees(self, department_id):
valid_user_ids = set()
employee_ids = self.sudo().env['hr.employee'].search([('department_id', '=', department_id.id)])
valid_user_ids.update([user.user_id.id for user in employee_ids if user.user_id])
child_ids = self.sudo().env['hr.department'].search([('parent_id', '=', department_id.id)])
for child in child_ids:
valid_user_ids.update(self.get_department_employees(child))
return valid_user_ids
def _search_is_department_record(self, operator, operand):
def get_department_employees(department_id):
valid_user_ids = set()
employee_ids = self.env['hr.employee'].search([('department_id', '=', department_id.id)])
valid_user_ids.update([user.user_id.id for user in employee_ids if user.user_id])
child_ids = self.env['hr.department'].search([('parent_id', '=', department_id.id)])
for child in child_ids:
valid_user_ids.update(get_department_employees(child))
return valid_user_ids
if self.env.user.has_group('soong_workflow.group_soong_workflow_manager'):
ids = self.sudo().with_context(active_test=False).search([]).ids
else:
ids = []
for department_id in self.env.user.employee_id.department_id:
user_list = get_department_employees(department_id)
for user in user_list:
c_id = self.sudo().with_context(active_test=False).search([("users_ids", "in", user)])
ids.append(c_id)
# if self.env.user.has_group('soong_workflow.group_soong_workflow_manager'):
# ids = self.sudo().with_context(active_test=False).search([]).ids
# else:
ids = []
for department_id in self.env.user.employee_id.department_id:
user_list = self.get_department_employees(department_id)
for user in user_list:
c_id = self.sudo().with_context(active_test=False).search([("users_ids", "in", [user])]).ids
ids += c_id
return [('id', 'in', ids)]
def reclaim_record(self):