考勤机人脸
This commit is contained in:
@@ -58,11 +58,16 @@ class AttendanceIotUser(models.Model):
|
|||||||
'user_id': f'{r.employee_id.mobile_phone}',
|
'user_id': f'{r.employee_id.mobile_phone}',
|
||||||
'name': r.employee_id.name
|
'name': r.employee_id.name
|
||||||
}
|
}
|
||||||
if r.employee_id.avatar_image:
|
if r.employee_id.compress_image:
|
||||||
raw = r.employee_id.avatar_image
|
raw = r.employee_id.compress_image
|
||||||
b64 = base64.b64encode(raw).decode('ascii')
|
# compress_image 可能是原图 bytes,也可能是 base64 bytes,需要兼容
|
||||||
# 设备要求:base64 字符串 + URL 编码,不要 data:image/... 前缀
|
try:
|
||||||
face_template = urllib.parse.quote(b64, encoding='utf-8')
|
b64 = raw.decode('ascii') # 已经是 base64 文本
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
b64 = base64.b64encode(raw).decode('ascii') # 原图 bytes,编码
|
||||||
|
# 设备要求:data:image/jpeg;base64, + base64 再 URL 编码
|
||||||
|
face_template = urllib.parse.quote(
|
||||||
|
f"data:image/jpeg;base64,{b64}", encoding='utf-8')
|
||||||
add_value.update({'face_template': face_template})
|
add_value.update({'face_template': face_template})
|
||||||
self.env['iot.message'].create([{
|
self.env['iot.message'].create([{
|
||||||
'name': '增加用户',
|
'name': '增加用户',
|
||||||
@@ -84,11 +89,16 @@ class AttendanceIotUser(models.Model):
|
|||||||
'user_id': f'{record.employee_id.mobile_phone}',
|
'user_id': f'{record.employee_id.mobile_phone}',
|
||||||
'name': record.employee_id.name
|
'name': record.employee_id.name
|
||||||
}
|
}
|
||||||
if record.employee_id.avatar_image:
|
if record.employee_id.compress_image:
|
||||||
raw = record.employee_id.avatar_image
|
raw = record.employee_id.compress_image
|
||||||
b64 = base64.b64encode(raw).decode('ascii')
|
# compress_image 可能是原图 bytes,也可能是 base64 bytes,需要兼容
|
||||||
# 设备要求:base64 字符串 + URL 编码,不要 data:image/... 前缀
|
try:
|
||||||
face_template = urllib.parse.quote(b64, encoding='utf-8')
|
b64 = raw.decode('ascii') # 已经是 base64 文本
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
b64 = base64.b64encode(raw).decode('ascii') # 原图 bytes,编码
|
||||||
|
# 设备要求:data:image/jpeg;base64, + base64 再 URL 编码
|
||||||
|
face_template = urllib.parse.quote(
|
||||||
|
f"data:image/jpeg;base64,{b64}", encoding='utf-8')
|
||||||
update_value.update({'face_template': face_template})
|
update_value.update({'face_template': face_template})
|
||||||
_logger.info(f"action_update_iot_info--{update_value}")
|
_logger.info(f"action_update_iot_info--{update_value}")
|
||||||
self.env['iot.message'].create([{
|
self.env['iot.message'].create([{
|
||||||
|
|||||||
Reference in New Issue
Block a user