From bacc3ee522a876a75061d5c1ede33387b333cb27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Fri, 10 Jul 2026 10:20:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=867=E5=A4=A9=E5=89=8D=E7=9A=84?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8F=90=E9=86=92=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_hr_attendance/__manifest__.py | 1 + .../data/clean_message_log_cron.xml | 19 ++++++++++++++++++ .../models/yuthon_vacation_reports.py | 20 +++++++++++++++++++ .../views/attendance_message_log.xml | 3 +++ 4 files changed, 43 insertions(+) create mode 100644 yuthon_hr_attendance/data/clean_message_log_cron.xml 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 47e01c600..812645476 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 +
+