!9460 !9459 Merge branch 'dev' of <a href="https://gitee.com/jinan-pengyusen…

Merge pull request !9460 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2026-03-09 10:23:28 +00:00
committed by Gitee
+43 -15
View File
@@ -306,24 +306,52 @@ class RoomBooking(models.Model):
@api.model
def create(self, vals):
"""创建会议后同步生成日程"""
import logging
_logger = logging.getLogger(__name__)
booking = super(RoomBooking, self).create(vals)
# 同步生成yuthon.will.task记录
if booking:
# 提取参会人员(从room_users_ids转换为hr.employee)
employee_records = self.env['hr.employee'].search([('user_id', 'in', booking.room_users_ids.ids)])
# 创建日程记录
self.env['yuthon.will.task'].create({
'name': booking.name,
'start_date': booking.start_datetime.date(),
'task_type': 'meet',
'room_booking_id': booking.id,
'employee_ids': [(6, 0, employee_records.ids)] if employee_records else [(5, 0, 0)],
'task_state': 'will',
'address': booking.room_id.name,
'remarks': booking.meeting_data or '',
'users_ids': [(6, 0, booking.room_users_ids.ids)] if booking.room_users_ids else [(5, 0, 0)],
'self_users_ids': [(6, 0, booking.self_users_ids.ids)] if booking.self_users_ids else [(5, 0, 0)],
})
try:
# 处理所有可能为空的字段
if not booking.start_datetime:
_logger.error('会议开始时间为空,无法创建日程')
return booking
# 提取参会人员(从room_users_ids转换为hr.employee)
employee_records = self.env['hr.employee'].search([('user_id', 'in', booking.room_users_ids.ids)]) if booking.room_users_ids else self.env['hr.employee']
# 确保name字段有值
task_name = booking.name or f'会议_{booking.start_datetime.date()}'
# 确保room_id有值
address = booking.room_id.name if booking.room_id else ''
# 确保meeting_data有值
remarks = booking.meeting_data or ''
# 确保room_users_ids有值
room_users_ids = booking.room_users_ids.ids if booking.room_users_ids else []
# 确保self_users_ids有值
self_users_ids = booking.self_users_ids.ids if booking.self_users_ids else []
# 创建日程记录
task = self.env['yuthon.will.task'].create({
'name': task_name,
'start_date': booking.start_datetime.date(),
'task_type': 'meet',
'room_booking_id': booking.id,
'employee_ids': [(6, 0, employee_records.ids)] if employee_records else [(5, 0, 0)],
'task_state': 'will',
'address': address,
'remarks': remarks,
'users_ids': [(6, 0, room_users_ids)] if room_users_ids else [(5, 0, 0)],
'self_users_ids': [(6, 0, self_users_ids)] if self_users_ids else [(5, 0, 0)],
})
_logger.info('日程创建成功,ID: %s, 会议ID: %s', task.id, booking.id)
except Exception as e:
_logger.error('创建日程失败: %s', str(e))
return booking
# ------------------------------------------------------