diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 97076a551..3a9741a58 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -791,13 +791,6 @@ class HrAttendance(models.Model): else: record.week = False - def _is_within_10min_by_float(self, base_datetime): - # 计算前后10分钟区间 - start_interval = base_datetime - timedelta(minutes=10) - end_interval = base_datetime + timedelta(minutes=10) - current_datetime = datetime.now() - return start_interval <= current_datetime <= end_interval - def _common_card_remind(self, dept_name=None, planning_name=None, is_check_in=True): """ 通用打卡提醒函数(全量使用start_datetime) @@ -817,14 +810,13 @@ class HrAttendance(models.Model): ] planning_slots = self.env['planning.slot'].search(domain) for slot in planning_slots: - start_datetime, end_datetime = self.normal_clock_in_time(slot.template_id, current_date) if is_check_in: is_card = self.env['hr.attendance'].search([('employee_id', '=', slot.employee_id.id), ('check_in', '=', True)]) - if self._is_within_10min_by_float(start_datetime) and not is_card: + if not is_card: self.card_in_comment(slot.employee_id, planning_name) else: is_card = self.env['hr.attendance'].search([('employee_id', '=', slot.employee_id.id), ('check_out', '=', True)]) - if self._is_within_10min_by_float(end_datetime) and not is_card: + if not is_card: self.card_out_comment(slot.employee_id, planning_name) # 保安部 - 早班 @@ -949,41 +941,6 @@ class HrAttendance(models.Model): except Exception as e: _logger.error(f"下班打卡提醒发送失败:员工={employee_id.name}, 错误={e}") - def normal_clock_in_time(self, template, current_data): - """ - :param template: 班次模板 - :param current_data: 打卡日期 - :return: 正常开始上班时间和下班时间 - """ - check_in_start = template.start_time - if template.day2 == '次日': - check_out_end = template.end_time2 - else: - check_out_end = template.end_time - - date = current_data - start_hour = int(check_in_start) - start_minute = int((check_in_start - start_hour) * 60) - end_hour = int(check_out_end) - end_minute = int((check_out_end - end_hour) * 60) - start_datetime = datetime.combine(date, datetime.min.time()).replace( - hour=start_hour, minute=start_minute, second=0, microsecond=0 - ) - if template.day2 == '次日': - end_datetime = datetime.combine(date, datetime.min.time()).replace( - hour=end_hour, minute=end_minute, second=0, microsecond=0 - ) + timedelta(days=1) - else: - end_datetime = datetime.combine(date, datetime.min.time()).replace( - hour=end_hour, minute=end_minute, second=0, microsecond=0 - ) - - if template.planning_name == '中夜': - end_datetime = datetime.combine(date, datetime.min.time()).replace( - hour=22, minute=0, second=0, microsecond=0 - ) - - return start_datetime, end_datetime def update_abnormal(self): attendance_ids = self.env["hr.attendance"].browse(