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