From fbca95fbad562df935208cadd0d5bf427fa8a1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Sun, 20 Jul 2025 23:14:11 +0800 Subject: [PATCH] 1 --- yuthon_hr_attendance/controllers/applet_attendance.py | 5 +++-- yuthon_hr_attendance/models/hr_attendance_detail_wechat.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py index bff589df0..25551a422 100644 --- a/yuthon_hr_attendance/controllers/applet_attendance.py +++ b/yuthon_hr_attendance/controllers/applet_attendance.py @@ -196,14 +196,15 @@ class AppletAttendance(Controller): """ _logger.info("-------触发打卡接口/yuthon/att/record---------") res_user_id = request.env(user=SUPERUSER_ID)["res.users"].search([('login', '=', kw.get('user_id'))]) + employee_id = request.env(user=SUPERUSER_ID)["hr.employee"].search([('name', '=', res_user_id.name)]) if res_user_id: request.env(user=SUPERUSER_ID)["hr.attendance.detail"].create({ - 'employee_id': res_user_id.employee_id.id, + 'employee_id': employee_id.id, 'checkin_time': fields.Datetime.now(), 'source': 'mini_programs', }) return_data = {'code': '200', 'message': '打卡成功'} - request.env(user=SUPERUSER_ID)["hr.attendance.detail"].get_hr_attendance_time(kw.get('user_id')) + request.env(user=SUPERUSER_ID)["hr.attendance.detail"].get_hr_attendance_time(res_user_id.login) _logger.info("打卡记录创建成功") else: return_data = {'code': '200', 'message': '未识别到员工'} diff --git a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py index 4161ac8c2..c996ddaa2 100644 --- a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py +++ b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py @@ -240,7 +240,7 @@ class HrAttendanceDetail(models.Model): _logger.error('检查保存之前的数据分析出想要的数据失败,异常:{0},数据信息{1},异常详情:{2}'.format(str(e), str(data), str(traceback.format_exc()))) - def get_hr_attendance_time(self, user_id): + def get_hr_attendance_time(self, login): """ 获取企业微信打卡数据的核心逻辑 :return: 处理结果 @@ -287,7 +287,7 @@ class HrAttendanceDetail(models.Model): # user_obj = self.sudo().env['res.users'].search([('name', 'not in', ['Administrator', '李鹏宇'] + employee_list), # ('employee_id.contract_id', '!=', False)]).sorted('id') # 暂时先用for循环,如果后期加大频率,需改成并发 - user_obj = self.sudo().env['res.users'].search([('login', '=', user_id)]) + user_obj = self.sudo().env['res.users'].search([('login', '=', login)]) total_users = len(user_obj) remaining_users = total_users for user in user_obj: