diff --git a/yuthon_catering/data/yuthon_catering_cron.xml b/yuthon_catering/data/yuthon_catering_cron.xml index 0c769482d..f84144a17 100644 --- a/yuthon_catering/data/yuthon_catering_cron.xml +++ b/yuthon_catering/data/yuthon_catering_cron.xml @@ -14,5 +14,18 @@ -1 + + 定时任务:自动补全当天餐饮收集数据 + + code + model.cron_fill_today_missing() + + + 1 + days + + -1 + + - \ No newline at end of file + diff --git a/yuthon_catering/models/yuthon_catering.py b/yuthon_catering/models/yuthon_catering.py index e21226ee7..2961ee57e 100644 --- a/yuthon_catering/models/yuthon_catering.py +++ b/yuthon_catering/models/yuthon_catering.py @@ -308,7 +308,7 @@ class YuthonCatering(models.Model): def fill_march6_missing_catering(self): """表3月9日缺失员工的餐饮收集任务数据""" from datetime import date as date_cls - target_date = date_cls(2026, 3, 9) + target_date = date_cls(2026, 3, 10) conf_records = self.env['yuthon.catering.conf'].search([]) if not conf_records: return @@ -330,6 +330,30 @@ class YuthonCatering(models.Model): if create_vals: self.create(create_vals) + def cron_fill_today_missing(self): + """定时任务:自动补全当天缺失的餐饮收集数据,每天晚21:00执行""" + today = fields.Date.today() + conf_records = self.env['yuthon.catering.conf'].search([]) + if not conf_records: + return + employee_ids = conf_records.mapped('employee_ids') + if not employee_ids: + return + create_vals = [] + for employee in employee_ids: + existing = self.search([ + ('employee_id', '=', employee.id), + ('date', '=', today), + ], limit=1) + if not existing: + create_vals.append({ + 'date': today, + 'employee_id': employee.id, + 'state': 'unconfirmed', + }) + if create_vals: + self.create(create_vals) + def batch_generate_catering(self): """批量生成2025-12、2026-01、2026-02的餐饮收集任务数据,排除节假日""" from datetime import date as date_cls diff --git a/yuthon_catering/views/yuthon_catering.xml b/yuthon_catering/views/yuthon_catering.xml index ad8079e85..f7c4fa97a 100644 --- a/yuthon_catering/views/yuthon_catering.xml +++ b/yuthon_catering/views/yuthon_catering.xml @@ -13,7 +13,7 @@