From 4341da1a3438d42632d620e6512cf250583c25a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Mon, 30 Jun 2025 08:56:56 +0800 Subject: [PATCH] 1 --- attendance_iot/controllers/kaoqin_test.py | 2 +- attendance_iot/models/attendance_iot_user.py | 5 ++--- attendance_iot/views/attendance_iot_user_views.xml | 11 +++++------ yuthon_hr_attendance/controllers/applet_attendance.py | 7 +------ 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/attendance_iot/controllers/kaoqin_test.py b/attendance_iot/controllers/kaoqin_test.py index b74255e89..d2caba04d 100644 --- a/attendance_iot/controllers/kaoqin_test.py +++ b/attendance_iot/controllers/kaoqin_test.py @@ -76,7 +76,7 @@ class BusController(Controller): iot_device = request.env(user=SUPERUSER_ID)['attendance.iot'].search([('name', '=', sn)], limit=1) if not iot_device: request.env(user=SUPERUSER_ID)["attendance.iot"].create({'name': sn}) - iot_users = request.env(user=SUPERUSER_ID)['attendance.iot.user'].search([('employee_id', '=', employee.id)]) + iot_users = request.env(user=SUPERUSER_ID)['attendance.iot.user'].search([('employee_id', '=', employee.id), ('attendance_iot_id', '=', iot_device.id)]) # employee.write({'image_1920': base64.b64encode(urllib.parse.unquote(vl_photo))}) if not iot_users: request.env(user=SUPERUSER_ID)['attendance.iot.user'].create({ diff --git a/attendance_iot/models/attendance_iot_user.py b/attendance_iot/models/attendance_iot_user.py index 9dd8e2a28..b025343ab 100644 --- a/attendance_iot/models/attendance_iot_user.py +++ b/attendance_iot/models/attendance_iot_user.py @@ -8,7 +8,6 @@ class AttendanceIotUser(models.Model): attendance_iot_id = fields.Many2one('attendance.iot', string="设备号") attendance_address = fields.Char(related='attendance_iot_id.attendance_address', string="设备地址") employee_id = fields.Many2one('hr.employee', string="员工") - department_id = fields.Many2one(related='employee_id.department_id', string="部门") - company_id = fields.Many2one(related='employee_id.company_id', string="公司", store=True) + company_id = fields.Many2one(related='employee_id.company_id', string="公司") id_valid = fields.Date(string="有效日期") - image_1920 = fields.Image("一寸照") + image_1920 = fields.Many2one('ir.attachment', string="一寸照") diff --git a/attendance_iot/views/attendance_iot_user_views.xml b/attendance_iot/views/attendance_iot_user_views.xml index cf4ca2a85..af97a3277 100644 --- a/attendance_iot/views/attendance_iot_user_views.xml +++ b/attendance_iot/views/attendance_iot_user_views.xml @@ -6,13 +6,12 @@ - - + - + - - - + + + diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py index d87ddf2b2..26688d32e 100644 --- a/yuthon_hr_attendance/controllers/applet_attendance.py +++ b/yuthon_hr_attendance/controllers/applet_attendance.py @@ -58,7 +58,7 @@ class AppletAttendance(Controller): card_rice = address_id.card_rice * 0.001 # 打卡范围 if not self.is_within_radius_geopy(att_latitude, att_longitude, latitude, longitude, card_rice): return_data = { - 'data': {"message": "超出范围,不允许打卡", 'state': 'yes', 'state_result': '超出范围'}, + 'data': {"message": "超出范围,不允许打卡", 'state': 'no', 'state_result': '超出范围'}, 'check_in': '未签到', 'check_out': '未签到', 'location': self_address['formatted_address'], @@ -235,7 +235,6 @@ class AppletAttendance(Controller): 'is_early_card': sum(1 for rec in current_attendance if rec.is_early_card), 'is_late_card': sum(1 for rec in current_attendance if rec.is_late_card), 'is_abnormal': sum(1 for rec in current_attendance if rec.is_abnormal), - # !!!!!!!!!! 'is_holiday': sum(1 for rec in current_attendance if rec.is_abnormal), 'is_go_away': sum(1 for rec in current_attendance if rec.is_abnormal), 'is_no_work': sum(1 for rec in current_attendance if rec.is_abnormal), @@ -260,16 +259,12 @@ class AppletAttendance(Controller): for att in attendances: # 获取班次信息 shift_name = att.shift_id.name if att.shift_id else "" - - # 计算标准打卡时间 check_in_start = att.shift_id.template_id.check_in_start if att.shift_id and att.shift_id.template_id else 0 check_out_end = att.shift_id.template_id.check_out_end if att.shift_id and att.shift_id.template_id else 0 - 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) - # 格式化标准时间 standard_check_in_str = f"{start_hour:02d}:{start_minute:02d}" standard_check_out_str = f"{end_hour:02d}:{end_minute:02d}"