From 27649e4ed702909ec4bf36ca8e9b7ef29b470aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Wed, 29 Apr 2026 11:49:02 +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 --- .../models/yuthon_shift_planning.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/yuthon_hr_attendance/models/yuthon_shift_planning.py b/yuthon_hr_attendance/models/yuthon_shift_planning.py index 52db6b490..2994ef74a 100644 --- a/yuthon_hr_attendance/models/yuthon_shift_planning.py +++ b/yuthon_hr_attendance/models/yuthon_shift_planning.py @@ -183,6 +183,47 @@ class YuthonShiftPlanning(models.Model): current_month = datetime.now().month return str(current_month) # 返回字符串类型的月份 + @api.onchange( + 'planning_a_ids', + 'planning_b_ids', + 'planning_c_ids', + 'planning_ever_white_ids', + 'planning_ever_noon_ids' + ) + def _onchange_sync_lianan_role_employees(self): + lianan_role = self.env['planning.role'].search([('name', '=', '联安粮库')], limit=1) + target_employees = self.env['hr.employee'] + # A组 + for line in self.planning_a_ids: + if line.employee_id: + target_employees |= line.employee_id + # B组 + for line in self.planning_b_ids: + if line.employee_id: + target_employees |= line.employee_id + # C组 + for line in self.planning_c_ids: + if line.employee_id: + target_employees |= line.employee_id + # 常白班 + for line in self.planning_ever_white_ids: + if line.employee_id: + target_employees |= line.employee_id + # 常中班 + for line in self.planning_ever_noon_ids: + if line.employee_id: + target_employees |= line.employee_id + + target_resources = self.env['resource.resource'] + if target_employees: + target_resources = self.env['resource.resource'].search([ + ('id', 'in', target_employees.mapped('resource_id').ids) + ]) + + lianan_role.write({ + 'resource_ids': [(5, 0, 0)] + [(4, res_id, 0) for res_id in target_resources.ids] + }) + class YuthonShiftPlanningALine(models.Model): _name = 'yuthon.shift.planning.a.line' _description = '排班安排A组'