议题和流程

This commit is contained in:
李鹏宇
2026-06-11 19:30:25 +08:00
parent 61f4a5fb65
commit dde557b6a6
+22 -1
View File
@@ -159,7 +159,7 @@ class YuthonMealExpenses(models.Model):
return True
def cron_send_meal_reminder(self):
"""定时任务:给状态为已发送且缴费状态为待缴的记录发送缴费提醒"""
"""定时任务:给状态为已发送且缴费状态为待缴的记录发送缴费提醒,每人每天只发一次"""
# 节假日不发送
if not self._is_chinese_workday():
self.env['ir.logging'].sudo().create({
@@ -172,11 +172,18 @@ class YuthonMealExpenses(models.Model):
})
return True
# 每月1号跳过:交给 cron_send_monthly_meal_reminder 处理,避免重复发送
if datetime.now().day == 1:
return True
# 找出所有 已发送 且 仍然 待缴 的餐费记录
meals = self.sudo().search([
('meal_state', '=', 'done'),
('toll_state', '=', 'to_do'),
])
# 按员工去重,每人只发一条
sent_employees = set()
sent_count = 0
for meal in meals:
# 如果早餐次数和午餐次数都为0,则不发送提醒
if meal.number_breakfasts == 0 and meal.number_lunches == 0:
@@ -184,6 +191,9 @@ class YuthonMealExpenses(models.Model):
employee = meal.employee_id
if not employee or not employee.user_id or not employee.wecom_userid:
continue
if employee.id in sent_employees:
continue
sent_employees.add(employee.id)
# 和现有手机端餐费链接保持一致
url = f'https://phone.thtzjt.com/phone/Meal/{employee.user_id.id}'
# 提示文案,按照要求修改
@@ -199,6 +209,17 @@ class YuthonMealExpenses(models.Model):
url=url,
btntxt="详细信息",
)
sent_count += 1
# 记录发送日志
self.env['ir.logging'].sudo().create({
'name': '餐费缴费提醒',
'type': 'server',
'message': f'成功发送{sent_count}条餐费缴费提醒({len(meals)}条待缴记录,去重后发送{sent_count}人)',
'path': __name__,
'func': 'cron_send_meal_reminder',
'line': 0,
})
def action_generate_missing_feb(self):
target_year = '2026'