From 51a8675859c50ce8db339b20f2c3cf697001797f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Fri, 21 Nov 2025 20:53:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/hr_attendance_detail_wechat.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py index 9779901fd..7a386a80a 100644 --- a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py +++ b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py @@ -174,17 +174,14 @@ class HrAttendanceDetail(models.Model): checkin_times = [rec.checkin_time + timedelta(hours=8) for rec in attendance_records if rec.checkin_time] # 3. 确定有效上下班时间 check_in_end = self.float_to_datetime(current_data, template.check_in_end) - check_in_start = self.float_to_datetime(current_data, template.check_in_start) if template.check_in_start > template.check_in_end: - valid_checkins = [ - t for t in checkin_times - if check_in_end <= t <= check_in_start - ] + check_in_start = self.float_to_datetime(current_data, template.check_in_start) - relativedelta(days=1) else: - valid_checkins = [ - t for t in checkin_times - if check_in_start <= t <= check_in_end - ] + check_in_start = self.float_to_datetime(current_data, template.check_in_start) + valid_checkins = [ + t for t in checkin_times + if check_in_start <= t <= check_in_end + ] # 上班时间:在上班范围内的最小打卡时间 check_in_time = min(valid_checkins) - timedelta(hours=8) if valid_checkins else None check_out_start = self.float_to_datetime(current_data, template.check_out_start)