diff --git a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py index 8e0c9850e..3c5c871cb 100644 --- a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py +++ b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py @@ -278,17 +278,17 @@ class HrAttendanceDetail(models.Model): '保存相关的企业微信的原始打卡信息失败,异常:{0},数据信息{1},异常详情:{2}'.format(str(e), str(data), str(traceback.format_exc()))) # 将取回来的数据进行组织整理写入到考勤表中 - employee_ids = self.env['hr.employee'].search([('use_user_type', '=', 'labor')]) + employee_ids = self.sudo().env['hr.employee'].search([('use_user_type', '=', 'labor')]) employee_list = [emp.name for emp in employee_ids] - user_obj = self.env['res.users'].search([('name', 'not in', ['Administrator', '李鹏宇'] + employee_list)]) - # user_obj = self.env['res.users'].search([('company_id.name', '=', '天河物管')]) + user_obj = self.sudo().env['res.users'].search([('name', 'not in', ['Administrator', '李鹏宇'] + employee_list), + ('employee_id.contract_id', '!=', False)]).sorted('id') # 暂时先用for循环,如果后期加大频率,需改成并发 total_users = len(user_obj) remaining_users = total_users for user in user_obj: # 判断是否是微信用户 if user.oauth_uid: - _logger.info("{} id:{},总:{},剩:{},已:{},{}".format(user.name, user.id, total_users, remaining_users, total_users-remaining_users ,user.employee_ids.company_id.name)) + _logger.info("{} id:{},总:{},剩:{},已:{},{}".format(user.name, user.id, total_users, remaining_users, total_users-remaining_users ,user.company_id.name)) remaining_users -= 1 for current_date in self.sudo().divide_time_range_fixed(start_time, now_time): self.sudo()._do_save_wx_attendance_data(user, current_date)