From 7dd5ff90845b48412125ed1905ca44fc6d3aba05 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: Thu, 26 Mar 2026 15:07:50 +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 --- room/models/room_booking.py | 9 ---- yuthon_issue/models/inherit_room_booking.py | 12 +++++- yuthon_issue/views/inherit_room_booking.xml | 1 + .../models/inherit_room_booking.py | 42 +++++++++++++++---- 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/room/models/room_booking.py b/room/models/room_booking.py index 0ac336d11..2779656a2 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -184,15 +184,6 @@ class RoomBooking(models.Model): 'user_type': 'insiders', 'sign_type': 'no', }) - # 缺少逻辑 - # for external in self.other_user_ids: - # self.env['room.meeting.sign'].create({ - # 'room_booking_id': self.id, - # 'partner_name': external.name, - # 'user_type': 'outsiders', - # 'sign_type': 'no', - # }) - event = self.env['calendar.event'].create({ 'name': self.name, 'start': self.start_datetime, diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index 7d13c3c6e..a5a4a6fac 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -152,7 +152,16 @@ class RoomBooking(models.Model): if line.attendees_ids: for employee in line.attendees_ids: remind_user_ids.add(employee.user_id.id) - + # 列席群组 + for line in booking.issue_meeting_line_ids: + if line.users_role_group_ids: + role_group_roles = line.users_role_group_ids.mapped('user_role_ids') + role_employees = self.env['hr.employee'].search([ + '|', + ('user_role_id', 'in', role_group_roles.ids), + ('user_role_ids', 'in', role_group_roles.ids) + ]) + remind_user_ids.add(role_employees.mapped('user_id.id')) # ⑥ 主持人 if booking.host and booking.host.user_id: remind_user_ids.add(booking.host.user_id.id) @@ -243,6 +252,7 @@ class IssueMeetingLine(models.Model): 'employee_id', string='列席人员' ) + users_role_group_ids = fields.Many2many(comodel_name="soong.user.role.group", string="列席群组") is_sanda = fields.Boolean(string="三重一大") decision_results = fields.Selection([('agree', '通过'), ('disagree', '重新上会'), ('rejected', '驳回')], string="决策结果") decision_details = fields.Text(string="决策详情") diff --git a/yuthon_issue/views/inherit_room_booking.xml b/yuthon_issue/views/inherit_room_booking.xml index f6b70fea1..0b8563bcc 100644 --- a/yuthon_issue/views/inherit_room_booking.xml +++ b/yuthon_issue/views/inherit_room_booking.xml @@ -28,6 +28,7 @@ + diff --git a/yuthon_will_task/models/inherit_room_booking.py b/yuthon_will_task/models/inherit_room_booking.py index 00b387b5a..2809e9964 100644 --- a/yuthon_will_task/models/inherit_room_booking.py +++ b/yuthon_will_task/models/inherit_room_booking.py @@ -27,18 +27,42 @@ class InheritRoomBooking(models.Model): def create(self, vals): new_record = super(InheritRoomBooking, self).create(vals) employee_list = [] - if new_record.room_users_ids: - for user in new_record.room_users_ids: + booking = new_record + # ① 组织者 + if booking.organizer_id: + employee_list.append(booking.organizer_id.id) + # ② 记录人 + if booking.user_id.employee_id: + employee_list.append(booking.user_id.employee_id.id) + # ③ 出席人员 + if booking.room_users_ids: + for user in booking.room_users_ids: if user.employee_id: employee_list.append(user.employee_id.id) + # ④ 议题传达人 + for line in booking.issue_meeting_line_ids: + if line.employee_id: + employee_list.append(line.employee_id.id) + # ⑤ 列席人员 + for line in booking.issue_meeting_line_ids: + if line.attendees_ids: + employee_list.extend(line.attendees_ids.ids) + # ⑥ 列席角色群组 + for line in booking.issue_meeting_line_ids: + if line.users_role_group_ids: + role_group_roles = line.users_role_group_ids.mapped('user_role_ids') + role_employees = self.env['hr.employee'].search([ + '|', + ('user_role_id', 'in', role_group_roles.ids), + ('user_role_ids', 'in', role_group_roles.ids) + ]) + employee_list.extend(role_employees.ids) + # ⑦ 主持人 + if booking.host: + employee_list.append(booking.host.id) - if new_record.recorder_ids: - employee_list.extend(new_record.recorder_ids.ids) - - if new_record.host: - employee_list.append(new_record.host.id) + # 去重 employee_list = list(set(employee_list)) - def get_hour_selection(datetime_obj): if not datetime_obj: return None @@ -71,6 +95,8 @@ class InheritRoomBooking(models.Model): start_date = start_datetime.date() request_hour_from = get_hour_selection(new_record.start_datetime) request_hour_to = get_hour_selection(new_record.stop_datetime) + + # ====================== 创建任务 ====================== task_id = self.env['yuthon.will.task'].sudo().create({ 'name': new_record.name, 'employee_ids': [(6, 0, employee_list)],