From 93d55781a50b0108f7cffc7bf60bace751ca0241 Mon Sep 17 00:00:00 2001 From: pengyuthon Date: Thu, 18 Dec 2025 13:57:29 +0800 Subject: [PATCH] 1 --- yuthon_will_task/data/will_task_time_data.xml | 2 +- yuthon_will_task/models/yuthon_dates_task.py | 2 +- yuthon_will_task/models/yuthon_will_task.py | 42 +++++++++---------- 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/yuthon_will_task/data/will_task_time_data.xml b/yuthon_will_task/data/will_task_time_data.xml index 18e5f33ed..bc34e541b 100644 --- a/yuthon_will_task/data/will_task_time_data.xml +++ b/yuthon_will_task/data/will_task_time_data.xml @@ -5,7 +5,7 @@ 定时任务:日程任务提醒 code - model.will_task_time() + model.add_comment() 1 diff --git a/yuthon_will_task/models/yuthon_dates_task.py b/yuthon_will_task/models/yuthon_dates_task.py index a1de3d2c2..fd722be71 100644 --- a/yuthon_will_task/models/yuthon_dates_task.py +++ b/yuthon_will_task/models/yuthon_dates_task.py @@ -14,7 +14,7 @@ class YuthonDatesTask(models.Model): _description = "日程任务" reminder_time = fields.Datetime(string='提醒时间') - yuthon_will_task_id = fields.Many2one('yuthon.will.task', string='关联日程管理') + yuthon_will_task_id = fields.Many2one('yuthon.will.task', string='日程') employee_ids = fields.Many2many('hr.employee', string='提醒人员') task_state = fields.Selection([('to_do', '待提醒'), ('done', '已提醒')], string='状态') diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index aa0bd80a5..53bf37f6b 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -174,25 +174,26 @@ class YuthonWillTask(models.Model): return timedelta.max def add_comment(self): - employee_list = [] - now = datetime.now() - timedelta(hours=8) - now_truncated = now.replace(second=0, microsecond=0) - for task in self.env['yuthon.dates.task'].search([('task_state', '=', 'to_do')]): - will_id = task.yuthon_will_task_id - reminder_truncated = task.reminder_time.replace(second=0, microsecond=0) - if reminder_truncated == now_truncated: - task.task_state = 'done' - for employee_id in task.employee_ids: - employee_list.append(employee_id) - for employee_id in employee_list: - url = f'https://oa.thtzjt.com/webh5#/journey?id={will_id.id}' - data_name = "事项名称: " + will_id.name + '\n' - data_user_ids = '参与人: ' + ', '.join(will_id.employee_ids.mapped('name')) + '\n' - data_employee_id = ('司机:' + ', '.join(will_id.employee_ids2.mapped('name')) + '\n') if will_id.employee_ids2 else '' - data_nota = ('备注:' + will_id.remarks) if will_id.remarks else ('') + '\n' - data = data_name + data_user_ids + data_nota + data_employee_id - self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task', user_id=employee_id.wecom_userid, title="日程事项提醒", description=data, - url=url, btntxt="详细信息") + "日程定时任务提醒" + now = fields.datetime.now() + timedelta(hours=8) + _logger.info(f'定时任务已执行:当前提醒时间:{now}') + dates_task_ids = self.env['yuthon.dates.task'].search([('task_state', '=', 'to_do'), ('reminder_time', '<', fields.datetime.now() + timedelta(days=1))]) + for task in dates_task_ids: + _logger.info(f'任务实际小时:{task.reminder_time.hour}:{task.reminder_time.minute}\n 当前提醒小时:{now.hour}:{now.minute}') + if task.reminder_time.minute == now.minute and task.reminder_time.hour == now.hour: + will_id = task.yuthon_will_task_id + for employee_id in will_id.employee_ids: + url = f'https://oa.thtzjt.com/webh5#/journey?id={will_id.id}' + data_name = "事项名称: " + task.yuthon_will_task_id.name + '\n' + data_user_ids = '参与人: ' + ', '.join(will_id.employee_ids.mapped('name')) + '\n' + data_employee_id = ('司机:' + ', '.join(will_id.employee_ids2.mapped('name')) + '\n') if will_id.employee_ids2 else '' + data_nota = ('备注:' + will_id.remarks) if will_id.remarks else ('') + '\n' + data = data_name + data_user_ids + data_nota + data_employee_id + self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task', user_id=employee_id.wecom_userid, title="日程事项提醒", description=data, + url=url, btntxt="详细信息") + self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task', user_id="18562027762", title="日程事项提醒", description=data, + url=url, btntxt="详细信息") + return True def button_add_comment(self): self.add_comment() @@ -216,9 +217,6 @@ class YuthonWillTask(models.Model): self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task', user_id=employee_id.wecom_userid, title="日程事项提醒", description="事项名称: " + self.name + '\t' + '该事项已取消', url=url, btntxt="详细信息") - # for record in self: - # partner_ids = record.employee_ids.user_id.partner_id.ids - # record.with_context(lang=record.env.lang)._message_auto_subscribe_notify(partner_ids, 'yuthon_will_task.mail_action_yuthon_will_task_add_comment') return { 'type': 'ir.actions.client', 'tag': 'display_notification',