diff --git a/yuthon_hr_attendance/__manifest__.py b/yuthon_hr_attendance/__manifest__.py index 788d2bfa4..de0873e4c 100644 --- a/yuthon_hr_attendance/__manifest__.py +++ b/yuthon_hr_attendance/__manifest__.py @@ -21,6 +21,7 @@ 'data/attendance_code_data.xml', 'data/attendance_time_data.xml', 'data/attendance_month_date.xml', + 'data/clean_message_log_cron.xml', 'data/mail_template.xml', 'report/go_approval_report.xml', 'report/go_approval_templates.xml', diff --git a/yuthon_hr_attendance/data/clean_message_log_cron.xml b/yuthon_hr_attendance/data/clean_message_log_cron.xml new file mode 100644 index 000000000..be225ff45 --- /dev/null +++ b/yuthon_hr_attendance/data/clean_message_log_cron.xml @@ -0,0 +1,19 @@ + + + + + + 每天清理7天前的消息提醒日志 + + code + model.action_clean_old_logs() + + 1 + days + -1 + + + + + + diff --git a/yuthon_hr_attendance/models/yuthon_vacation_reports.py b/yuthon_hr_attendance/models/yuthon_vacation_reports.py index 1fa4ae16b..0a39659e2 100644 --- a/yuthon_hr_attendance/models/yuthon_vacation_reports.py +++ b/yuthon_hr_attendance/models/yuthon_vacation_reports.py @@ -3701,6 +3701,26 @@ class AttendanceMessageLog(models.Model): } } + def action_clean_old_logs(self): + """清理7天前的消息提醒日志记录(定时任务和手动按钮共用)""" + # 计算截止日期:当前时间往前推7天 + deadline = fields.Datetime.now() - timedelta(days=7) + # 搜索所有提醒时间早于截止日期的记录 + old_logs = self.search([('update_date', '<', deadline)]) + count = len(old_logs) + # 批量删除 + old_logs.sudo().unlink() + # 返回清理结果通知(定时任务调用时自动忽略返回值) + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'title': '清理完成', + 'message': f'已删除 {count} 条7天前的日志记录', + 'type': 'success', + } + } + @api.depends('employee_id') def _compute_shift_id(self): for rec in self: diff --git a/yuthon_hr_attendance/views/attendance_message_log.xml b/yuthon_hr_attendance/views/attendance_message_log.xml index 2b4269b1a..c9bae9193 100644 --- a/yuthon_hr_attendance/views/attendance_message_log.xml +++ b/yuthon_hr_attendance/views/attendance_message_log.xml @@ -4,6 +4,9 @@ attendance.message.log +
+