This commit is contained in:
pengyuthon
2026-03-04 15:35:26 +08:00
parent 06fa165e5a
commit dc9c0791b2
5 changed files with 29 additions and 44 deletions
+1
View File
@@ -67,6 +67,7 @@ class YuThonPhone(http.Controller):
employee_id = request.env['hr.employee'].sudo().search([('user_id.id', '=', kw.get('user_id'))])
data = {
'name': employee_id.name,
'employee_id': employee_id.id,
'company_id': employee_id.company_id.name,
# 'image': employee_id.image_128, # 后面改成url
'mobile_phone': employee_id.mobile_phone,
+14 -14
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<record forcecreate="True" id="yuthon_catering_time" model="ir.cron">
<field name="name">定时任务:餐饮收集任务</field>
<field name="model_id" ref="model_yuthon_catering"/>
<field name="state">code</field>
<field name="code">model.catering_task()</field>
<field eval="True" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">weeks</field>
<field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 00:00:00')"/>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
<data>
<!-- <record forcecreate="True" id="yuthon_catering_time" model="ir.cron">-->
<!-- <field name="name">定时任务:餐饮收集任务</field>-->
<!-- <field name="model_id" ref="model_yuthon_catering"/>-->
<!-- <field name="state">code</field>-->
<!-- <field name="code">model.catering_task()</field>-->
<!-- <field eval="True" name="active"/>-->
<!-- <field name="user_id" ref="base.user_root"/>-->
<!-- <field name="interval_number">1</field>-->
<!-- <field name="interval_type">weeks</field>-->
<!-- <field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 00:00:00')"/>-->
<!-- <field name="numbercall">-1</field>-->
<!-- <field eval="False" name="doall"/>-->
<!-- </record>-->
<record forcecreate="True" id="yuthon_task_catering_time" model="ir.cron">
<field name="name">定时任务:餐饮通知</field>
<field name="model_id" ref="model_yuthon_catering"/>
+12 -28
View File
@@ -26,30 +26,18 @@ class YuthonCatering(models.Model):
], default='unconfirmed', string='状态')
def task_catering(self):
current_date = fields.Date.today()
is_work = self._process_shift_days(current_date)
if is_work:
company_main = self.env["res.company"].search(
[("name", "=", "集团本部")],
limit=1
employee_ids = self.env['yuthon.catering.conf'].search([])[0].employee_ids
for emp in employee_ids:
url = f"https://phone.thtzjt.com/phone/Restaurant/{emp.id}"
self.sudo().env["wecom.apps"].sync_send_message_textcard(
category='can',
user_id=emp.wecom_userid,
title="餐饮通知",
description="这是明天的餐饮,请及时确认",
url=url,
btntxt="详细信息"
)
catering_conf = self.env["yuthon.catering.conf"].search(
[("company_id", "=", company_main.id)]
)
for conf in catering_conf:
for employee in conf.employee_ids:
emp_id = employee.id
url = f"https://phone.thtzjt.com/phone/Restaurant/{emp_id}"
if not employee.wecom_userid:
continue
self.sudo().env["wecom.apps"].sync_send_message_textcard(
category='can',
user_id=employee.wecom_userid,
title="餐饮通知",
description="这是明天的餐饮,请及时确认",
url=url,
btntxt="详细信息"
)
def task_conf(self):
tomorrow = fields.Date.today() + timedelta(days=1)
@@ -315,14 +303,10 @@ class YuthonCatering(models.Model):
target_url = f'https://phone.thtzjt.com/phone/Restaurant/{users_id}'
# 发送消息,使用指定的格式
if hasattr(self.env["wecom.apps"], 'sync_send_message_textcard'):
# 构造消息内容
description = f"您有{len(data['records'])}条待办未处理,请及时登OA系统处理,谢谢配合"
# 设置消息标题
title = "餐饮登记提醒"
# 调用企业微信API发送消息卡片
self.env["wecom.apps"].sync_send_message_textcard(
category='oa', # 消息类别为OA
# 获取员工的企业微信ID或登录名
category='can', # 消息类别为OA
user_id=employee.wecom_userid if hasattr(employee, 'wecom_userid') else employee.user_id.login if employee.user_id else '',
title=title, # 消息标题
description=description, # 消息内容
+1 -1
View File
@@ -9,7 +9,7 @@
<tree string="餐饮" editable="top">
<header>
<button name="batch_remind_catering" string="批量提醒" type="object" class="btn btn-primary"/>
<!-- <button name="test_1" string="test" type="object" class="btn btn-primary"/>-->
<button name="task_catering" string="test" type="object" class="btn btn-primary"/>
</header>
<field name="date"/>
<field name="state"/>
+1 -1
View File
@@ -162,7 +162,7 @@ class WeComApps(models.Model):
"btntxt": btntxt
},
}
elif category in ['task', 'att_ok', 'salary']:
elif category in ['task', 'att_ok', 'salary', 'can']:
data = {
'touser': user_id,
'msgtype': 'textcard',