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)],