diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 3748dfb84..bdcdc56bb 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -76,8 +76,6 @@ class HrAttendance(models.Model): @api.constrains("check_in") def _check_in_out(self): for record in self: - _logger.info('----------打卡取值验证--------') - _logger.info(f"当前员工姓名为{record.employee_id.name}, 当前日期为{record.current_data}") reminder_id = self.env['message.reminder.tasks'].search([('name', '=', record.employee_id.name), ('state', '=', 'todo'), ('type', '=', 'work'), ('current_data', '=', record.current_data)], limit=1) @@ -87,8 +85,6 @@ class HrAttendance(models.Model): @api.constrains("check_out") def _check_out_in(self): for record in self: - _logger.info('----------打卡取值验证--------') - _logger.info(f"当前员工姓名为{record.employee_id.name}, 当前日期为{record.current_data}") if record.shift_name in ['夜班', '旧晚(旧区府晚班)']: current_data = record.current_data + timedelta(days=1) else: diff --git a/yuthon_hr_attendance/models/message_reminder_tasks.py b/yuthon_hr_attendance/models/message_reminder_tasks.py index c8c066ccf..bc2b14d31 100644 --- a/yuthon_hr_attendance/models/message_reminder_tasks.py +++ b/yuthon_hr_attendance/models/message_reminder_tasks.py @@ -124,9 +124,21 @@ class MessageReminderTasks(models.Model): shift_name = '行政班次' for rt, rtype in zip(reminder_times, reminder_types): + current_data_val = rt.date() + + # ================== 加了这里:判断是否已存在 ================== + exists = self.env['message.reminder.tasks'].search([ + ('name', '=', emp_name), + ('current_data', '=', current_data_val), + ('type', '=', rtype), + ], limit=1) + if exists: + continue # 已存在,跳过不创建 + # ============================================================== + task_vals = { 'name': emp_name, - 'current_data': rt.date(), + 'current_data': current_data_val, 'department': emp_department, 'company': emp_company, 'shift_name': shift_name, @@ -169,12 +181,24 @@ class MessageReminderTasks(models.Model): shift_name = template.planning_name for rt, rtype in zip(r_times, r_types): + current_data_val = (rt + timedelta(hours=8)).date() + + # ================== 加了这里:判断是否已存在 ================== + exists = self.env['message.reminder.tasks'].search([ + ('name', '=', employee.name), + ('current_data', '=', current_data_val), + ('type', '=', rtype), + ], limit=1) + if exists: + continue # 已存在,跳过不创建 + # ============================================================== + task_plan_vals = { 'name': employee.name, 'department': employee.department_id.name, 'company': employee.company_id.name, 'shift_name': shift_name, - 'current_data': (rt + timedelta(hours=8)).date(), + 'current_data': current_data_val, 'type': rtype, 'reminder_time': fields.Datetime.to_string(rt), }