From c0126d94fa6cf74cfa8dd29f5eba9d19e6bb2714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Mon, 9 Mar 2026 20:48:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E8=AE=AE=E5=90=8C=E6=AD=A5=E6=97=A5?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- room/models/room_booking.py | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/room/models/room_booking.py b/room/models/room_booking.py index c05173032..3bce9b906 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -305,22 +305,37 @@ class RoomBooking(models.Model): @api.model_create_multi def create(self, vals_list): - for vals in vals_list: + bookings = super().create(vals_list) + for booking in bookings: + # 提取参会人员ID列表 + room_users_ids = [] + if booking.room_users_ids: + room_users_ids = booking.room_users_ids.ids + + # 提取当前经办人ID列表 + self_users_ids = [] + if booking.self_users_ids: + self_users_ids = booking.self_users_ids.ids + + # 根据参会人员查找对应的员工 + employee_records = self.env['hr.employee'] + if room_users_ids: + employee_records = self.env['hr.employee'].search([('user_id', 'in', room_users_ids)]) + self.env['yuthon.will.task'].create({ - 'name': vals['name'], - 'start_date': datetime.strptime(vals['start_datetime'], '%Y-%m-%d %H:%M:%S').date(), + 'name': booking.name, + 'start_date': booking.start_datetime.date(), 'task_type': 'meet', 'priority': 'important', - 'room_booking_id': self.id, - 'employee_ids': [ - (6, 0, self.env['hr.employee'].search([('user_id', 'in', vals['room_users_ids'])]).ids)], + 'room_booking_id': booking.id, + 'employee_ids': [(6, 0, employee_records.ids)], 'task_state': 'will', - 'address': self.env['room.room'].browse(vals['room_id']).name, - 'remarks': vals.get('meeting_data', ''), - 'users_ids': [(6, 0, vals['room_users_ids'])], - 'self_users_ids': [(6, 0, vals['self_users_ids'])], + 'address': booking.room_id.name if booking.room_id else '', + 'remarks': booking.meeting_data or '', + 'users_ids': [(6, 0, room_users_ids)], + 'self_users_ids': [(6, 0, self_users_ids)], }) - return super().create(vals_list) + return bookings # @api.model # def create(self, vals):