@@ -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
|
||||
|
||||
Reference in New Issue
Block a user