diff --git a/yuthon_base/controllers/phone.py b/yuthon_base/controllers/phone.py index afd68b5e1..eb8654903 100644 --- a/yuthon_base/controllers/phone.py +++ b/yuthon_base/controllers/phone.py @@ -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, diff --git a/yuthon_catering/data/catering_time.xml b/yuthon_catering/data/catering_time.xml index 587d73655..a6bcad612 100644 --- a/yuthon_catering/data/catering_time.xml +++ b/yuthon_catering/data/catering_time.xml @@ -1,19 +1,19 @@ - - - 定时任务:餐饮收集任务 - - code - model.catering_task() - - - 1 - weeks - - -1 - - + + + + + + + + + + + + + + 定时任务:餐饮通知 diff --git a/yuthon_catering/models/yuthon_catering.py b/yuthon_catering/models/yuthon_catering.py index 0ae223ff9..f911c02b9 100644 --- a/yuthon_catering/models/yuthon_catering.py +++ b/yuthon_catering/models/yuthon_catering.py @@ -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, # 消息内容 diff --git a/yuthon_catering/views/yuthon_catering.xml b/yuthon_catering/views/yuthon_catering.xml index 98a1f46e1..c4b003ef9 100644 --- a/yuthon_catering/views/yuthon_catering.xml +++ b/yuthon_catering/views/yuthon_catering.xml @@ -9,7 +9,7 @@
diff --git a/yuthon_wechat/models/wecom_apps.py b/yuthon_wechat/models/wecom_apps.py index fc584147d..e02012038 100644 --- a/yuthon_wechat/models/wecom_apps.py +++ b/yuthon_wechat/models/wecom_apps.py @@ -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',