From 4ccfe6d2f87159707a7b583202c4f4c0abb74547 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Sat, 5 Jul 2025 18:51:07 +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 --- .../controllers/applet_attendance.py | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py index 104a52557..bfeb9deec 100644 --- a/yuthon_hr_attendance/controllers/applet_attendance.py +++ b/yuthon_hr_attendance/controllers/applet_attendance.py @@ -74,8 +74,22 @@ class AppletAttendance(Controller): self_address = self.get_address_from_coords(kw['att_latitude'], kw['att_longitude']) _logger.info(f"打卡经度{kw['att_longitude'] }打卡纬度{kw['att_latitude']}__________") _logger.info(f"人员{employee_id.name}地址{self_address['formatted_address']}__________") - address_ids = request.env(user=SUPERUSER_ID)["applet.address"].search([('address_name', '=', employee_id.company_id.name)]) - data = {"message": "超出范围,不允许打卡", 'state': 'no', 'state_result': '超出范围'} + address_ids = request.env(user=SUPERUSER_ID)["applet.address"].search( + [('address_name', '=', employee_id.company_id.name)]) + shift_class = "休息" if not attendance_id.shift_name else f"{attendance_id.shift_name}{start_time_str}-{end_time_str}" + default_state_result = "休息" if not attendance_id.shift_name else "超出范围" + data = { + 'location': '', + 'user_id': user_id.id, + 'state': 'no', # Default to 'no' + 'class': shift_class, + 'state_result': default_state_result, + 'check_in': check_in_html, + 'check_in_status': check_in_status, + 'check_out': check_out_html, + 'check_out_status': check_out_status, + } + for address_id in address_ids: card_rice = address_id.card_rice * 0.001 # 打卡范围 if self.is_within_radius_geopy( @@ -85,18 +99,17 @@ class AppletAttendance(Controller): address_id.longitude, card_rice ): - data = { + data.update({ 'location': '%s' % address_id.address_name, - 'user_id': user_id.id, 'state': 'yes', - 'class': [f"{attendance_id.shift_name}{start_time_str}-{end_time_str}"], - 'state_result': state_result, - 'check_in': check_in_html, - 'check_in_status': check_in_status, - 'check_out': check_out_html, - 'check_out_status': check_out_status, - } + 'state_result': "休息" if not attendance_id.shift_name else state_result, + 'class': "休息" if not attendance_id.shift_name else f"{attendance_id.shift_name}{start_time_str}-{end_time_str}", + }) break + else: + data.update({ + 'location': '%s' % address_id.address_name, + }) return_data = {'data': data, 'code': '200', 'message': 'OK'} return json.dumps(return_data)