!3681 添加功能

Merge pull request !3681 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-07-05 10:51:53 +00:00
committed by Gitee
@@ -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)