添加功能
This commit is contained in:
@@ -27,18 +27,5 @@
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="to_do_process_reminders_task" model="ir.cron">
|
||||
<field name="name">定时任务:待办提醒</field>
|
||||
<field name="model_id" ref="model_soong_workflow"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.to_do_process_reminders()</field>
|
||||
<field eval="False" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 08:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -853,62 +853,6 @@ class SoongWorkflowRecord(models.Model):
|
||||
|
||||
return super(SoongWorkflowRecord, self).get_view(view_id, view_type, **options)
|
||||
|
||||
def to_do_process_reminders(self):
|
||||
workflow_records = self.env['soong.workflow.record'].search([
|
||||
('approve_state', 'in', ['pending', 'end']),
|
||||
('reclaim_state', '=', False),
|
||||
('employee_ids', '!=', False),
|
||||
('is_to_do', '=', True)
|
||||
])
|
||||
employee_tasks = {}
|
||||
|
||||
for record in workflow_records:
|
||||
try:
|
||||
biz_record = self.env[record.res_model].browse(record.res_id)
|
||||
if hasattr(biz_record, 'urgency_level') and biz_record.urgency_level:
|
||||
urgency_level = biz_record.urgency_level
|
||||
else:
|
||||
urgency_level = 'normal'
|
||||
task_type = 'urgent' if urgency_level in ('urgent', 'emergency') else 'normal'
|
||||
|
||||
for emp in record.employee_ids:
|
||||
emp_id = emp.id
|
||||
if emp_id not in employee_tasks:
|
||||
employee_tasks[emp_id] = {'urgent': 0, 'normal': 0, 'employee': emp}
|
||||
employee_tasks[emp_id][task_type] += 1
|
||||
except exceptions.MissingError as e:
|
||||
error_msg = str(e).strip()
|
||||
if "记录不存在或已删除" in error_msg:
|
||||
continue
|
||||
|
||||
# 只给叶华锋发消息
|
||||
for emp_id, task_data in employee_tasks.items():
|
||||
emp = task_data['employee']
|
||||
urgent_count = task_data['urgent']
|
||||
normal_count = task_data['normal']
|
||||
msg_parts = []
|
||||
if urgent_count > 0:
|
||||
msg_parts.append(f'特急任务{urgent_count}条')
|
||||
if normal_count > 0:
|
||||
msg_parts.append(f'常规待办{normal_count}条')
|
||||
if not msg_parts:
|
||||
continue
|
||||
reminder_msg = (
|
||||
f"您好,截至今日17:30,您有 {','.join(msg_parts)} 尚未处理,"
|
||||
"请及时登录系统完成办理。感谢配合!"
|
||||
)
|
||||
menu_id = self.env['ir.ui.menu'].search([('name', '=', '待办流程')], limit=1)
|
||||
target_url = f'https://oa.thtzjt.com/web#action=4378&model=soong.workflow.record&view_type=list&cids=2-1-3-4&menu_id={menu_id.id}'
|
||||
url = self.sudo().env["wecom.apps"].generate_oauth_login_url(target_url, emp.user_id.id)
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(
|
||||
category='notice',
|
||||
user_id=emp.wecom_userid,
|
||||
title='【待办流程提醒】',
|
||||
description=reminder_msg,
|
||||
url=url,
|
||||
btntxt="查看详情"
|
||||
)
|
||||
|
||||
# def get_department_employees(self, department_id):
|
||||
# valid_user_ids = set()
|
||||
# employee_ids = self.sudo().env['hr.employee'].search([('department_id', '=', department_id.id)])
|
||||
|
||||
Reference in New Issue
Block a user