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
+