From d399e90a1b526e513c6ba0ff2fc8ba2d41cf1433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Tue, 22 Oct 2024 22:04:18 +0800 Subject: [PATCH] pengyuthon --- .../models/hr_attendance_detail.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/hr_attendance_ext/models/hr_attendance_detail.py b/hr_attendance_ext/models/hr_attendance_detail.py index 5abf1cd48..6eba2507b 100644 --- a/hr_attendance_ext/models/hr_attendance_detail.py +++ b/hr_attendance_ext/models/hr_attendance_detail.py @@ -89,7 +89,7 @@ class HrAttendanceDetail(models.Model): return user_list @staticmethod - def _get_wx_attendance_data(wx_work_checkin_api, userid_limit): + def _get_wx_attendance_data(userid_limit): """ 获取企业微信的打卡信息 :param wx_work_checkin_api: 企业微信api @@ -110,8 +110,8 @@ class HrAttendanceDetail(models.Model): "useridlist": userid_limit } # 重写一个类处理result获取想要的结果 - response = wx_work_checkin_api.http_request_url(data) - return response + + return data @staticmethod def _check_wx_attendance_data(response, userid_limit): @@ -164,14 +164,14 @@ class HrAttendanceDetail(models.Model): mediaids_list = data.get("mediaids", []) if not mediaids_list: return media_list - wx_work_media_api = self.env['wecom.api'].search([('function', '=', 'MEDIA_GET')], limit=1) + for media_id in mediaids_list: data = { "media_id": media_id } try: - response = wx_work_media_api.http_request_url(data) - if response.status_code == 200: + result, response = self.sudo().env["wecom.apps"].sync_media_get(data) + if result: filename = response.headers['Content-Disposition'].split('; ')[2].replace('filename=', '').replace('"', '') wx_work_auth = self.env['auth.oauth.provider'].search([('name', '=', 'Wechat Card')], limit=1) wx_work_image = os.path.join(wx_work_auth.wx_work_image_path, str(filename)) @@ -285,13 +285,12 @@ class HrAttendanceDetail(models.Model): """ # 从用户列表里获取企业微信的用户 user_list = self._get_wx_attendance_user_list() - # 调用企业微信API核心模块 - wx_work_checkin_api = self.env['wecom.api'].search([('function', '=', 'GET_CHECKIN_DATA')], limit=1) # 企业微信获取打卡数据,要求用户分组100,分批获取打卡记录 for userid_limit in utils_list_page(user_list, 100): # 获取企业微信的打卡信息 try: - response = self._get_wx_attendance_data(wx_work_checkin_api, userid_limit) + attendance_data = self._get_wx_attendance_data(userid_limit) + attendance_result, response = self.sudo().env["wecom.apps"].sync_checkin_data(attendance_data) except Exception as e: _logger.error('获取企业微信的打卡信息失败,异常:{0},用户列表{1},异常详情:{2}'.format(str(e), str(userid_limit), str(traceback.format_exc()))) continue