Merge pull request !9460 from 李鹏宇/dev
This commit is contained in:
+43
-15
@@ -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
|
||||
|
||||
# ------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user