!9471 Merge branch 'dev' of <a href="https://gitee.com/jinan-pengyusen-data/gzth">https://gitee.com/jinan-pengyusen-data/gzth</a> into dev_wang
Merge pull request !9471 from 李鹏宇/dev_wang
This commit is contained in:
+46
-50
@@ -303,56 +303,52 @@ class RoomBooking(models.Model):
|
||||
room_name=booking.room_id.name
|
||||
))
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
"""创建会议后同步生成日程"""
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
booking = super(RoomBooking, self).create(vals)
|
||||
# 同步生成yuthon.will.task记录
|
||||
if booking:
|
||||
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
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
self.env['yuthon.will.task'].create({
|
||||
'name': vals['name'],
|
||||
'start_date': vals['start_datetime'].date(),
|
||||
'task_type': 'meet',
|
||||
'priority': 'important',
|
||||
'employee_ids': [(6, 0, self.env['hr.employee'].search([('user_id', 'in', vals['room_users_ids'])]).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'])],
|
||||
})
|
||||
return super().create(vals_list)
|
||||
|
||||
# @api.model
|
||||
# def create(self, vals):
|
||||
#
|
||||
# booking =
|
||||
# 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']
|
||||
#
|
||||
# task_name = booking.name or f'会议_{booking.start_datetime.date()}'
|
||||
#
|
||||
# address = booking.room_id.name if booking.room_id else ''
|
||||
#
|
||||
# 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 = 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)],
|
||||
# })
|
||||
# return super(RoomBooking, self).create(vals)
|
||||
|
||||
# ------------------------------------------------------
|
||||
# CRUD / ORM
|
||||
|
||||
Reference in New Issue
Block a user