diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 97239f0e8..9ca435e68 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -964,53 +964,34 @@ class HrAttendance(models.Model): method_name='executive_day_remind_out', is_executive=True) def card_in_comment(self, employee_id, planning_name): - data = "您的班次是{}\n还有5分钟上班,记得打卡".format(planning_name) url = '#小程序://天投云/XttsPpKg3MEpY7h' + content_item = [{"key": "班次", "value": planning_name}, {"key": "类型", "value": "上班"}] try: self.sudo().env["wecom.apps"].sync_send_message_textcard( - category='att', - user_id=employee_id.wecom_userid, - description=data, - title="打卡提醒", - url=url, - btntxt="详细信息" - ) + category='att', user_id=employee_id.wecom_userid, + description="记得打卡", title="打卡提醒", + url=url, btntxt="详细信息", content_item=content_item,) except Exception as e: _logger.error(f"上班打卡提醒发送失败:员工={employee_id.name}, 错误={e}") - def test_card_in_comment(self): - data = "您的班次是\n还有5分钟上班,记得打卡" - url = '#小程序://天投云/XttsPpKg3MEpY7h' - self.sudo().env["wecom.apps"].sync_send_message_textcard( - category='att', - user_id='18562027762', - description=data, - title="打卡提醒", - url=url, - btntxt="详细信息" - ) - def card_out_comment(self, employee_id, planning_name): - data = f"您的班次是{planning_name}\n您该下班了,记得打卡" url = '#小程序://天投云/XttsPpKg3MEpY7h' + content_item = [{"key": "班次", "value": planning_name}, {"key": "类型", "value": "下班"}] try: self.sudo().env["wecom.apps"].sync_send_message_textcard( - category='att', - user_id=employee_id.wecom_userid, - description=data, - title="打卡提醒", - url=url, - btntxt="详细信息" - ) + category='att', user_id=employee_id.wecom_userid, + description="记得打卡", title="打卡提醒", + url=url, btntxt="详细信息", content_item=content_item, ) except Exception as e: _logger.error(f"下班打卡提醒发送失败:员工={employee_id.name}, 错误={e}") - def test(self): - data = "您的班次是还有5分钟上班,记得打卡" - url = '#小程序://天投云/XttsPpKg3MEpY7h' - self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id='18562027762', - description=data, title="打卡提醒", - url=url, btntxt="详细信息") + def test_card(self): + content_item = [{"key": "班次", "value": "测试行政"}, {"key": "类型", "value": "下班"}] + self.sudo().env["wecom.apps"].sync_send_message_textcard( + category='att', user_id='18562027762', + description="记得打卡", title="打卡提醒", + content_item=content_item, ) + def update_abnormal(self): attendance_ids = self.env["hr.attendance"].browse( diff --git a/yuthon_wechat/models/wecom_apps.py b/yuthon_wechat/models/wecom_apps.py index a3d4d5c8a..df942d456 100644 --- a/yuthon_wechat/models/wecom_apps.py +++ b/yuthon_wechat/models/wecom_apps.py @@ -96,7 +96,7 @@ class WeComApps(models.Model): return True, result_data return False, result_data - def sync_send_message_textcard(self, category='default', user_id=None, title="", description="", url="", btntxt="详情"): + def sync_send_message_textcard(self, content_item='', category='default', user_id=None, title="", description="", url="", btntxt="详情"): """ touser 否 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 toparty 否 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数 @@ -156,6 +156,7 @@ class WeComApps(models.Model): "page": "pages/clock_in/clock_in", "title": "打卡提醒", "description": description, + "content_item": content_item }, } else: