Files
gzth/yuthon_hr_attendance/controllers/kaoqin_test.py
T
2024-10-10 19:43:59 +08:00

96 lines
4.2 KiB
Python

from odoo.http import Controller, request, route
from datetime import datetime
from odoo import models, fields, api, http, SUPERUSER_ID, _
class BusController(Controller):
def get_equipment_company(self, sn):
sn_address = {
'RLM-00111018': '地址1',
}
return sn_address[sn]
@route('/api/v1/record/face', methods=['POST'], type='json', auth='none', csrf=False)
def get_model_definitions(self):
"""
用户通过考勤机识别,写入考勤数据
:return:
"""
data = request.httprequest.json['logs'][0]
user_name = data.get('user_name')
employee_id = request.env(user=SUPERUSER_ID)["hr.employee"].search([('name', '=', user_name)])
request.env(user=SUPERUSER_ID)["hr.attendance"].create({
'employee_id': employee_id.id,
'check_in': datetime.strptime(data.get('recog_time'), '%Y-%m-%d %H:%M:%S')
})
print("---------------------------------------------测试成功---------------------------------------")
return {"Result": 0, "Msg": "添加成功"}
# @route('/api/v1/user/inf_photo', methods=['POST'], type='json', auth='public')
# def get_model_definitions(self):
# name = request.jsonrequest.get('sn') # 姓名
# phone = request.jsonrequest.get('content') # 电话
# print(name, phone)
# return {
# "Result": 0,
# "Msg": "更新成功"
# }
#
# # 员工识别接口
# @route('/api/v1/stranger', methods=['POST'], type='json', auth='none')
# def get_model_definitions(self):
# data = request.httprequest.json.get('logs')[0]
# user_name = data['user_name']
# request.env["hr.employee"].create({
# 'name': user_name + 'stranger',
# })
# print("---------------------------------------------测试成功---------------------------------------")
# return {
# "Result": 0,
# "Msg": "更新成功"
# }
@route('/api/v1/addFace', methods=['POST'], type='json', auth='none', csrf=False)
def get_model_kaoqin(self):
"""
获取用户录入考勤机数据,和系统内用户绑定关联
:return:
"""
data = request.httprequest.json
user_name = data.get('name')
# validity_period = datetime.strptime(data.get('validity_period'), '%Y-%m-%d').date()
employee_id = request.env(user=SUPERUSER_ID)["hr.employee"].search([('name', '=', user_name)])
attendance_iot = request.env(user=SUPERUSER_ID)["attendance.iot.manager"]
if not attendance_iot.search([('employee_id', '=', employee_id.id), ('attendance_number', '=', data.get('sn'))]):
employee_id.write({
'image_1920': data.get('photo'),
})
attendance_iot.create({
'data_selection': "api",
'attendance_number': data.get('sn'),
'attendance_address': self.get_equipment_company(data.get('sn')),
'employee_id': employee_id.id,
})
print("---------------------------------------------测试成功---------------------------------------")
return {"Result": 0, "Msg": "添加成功"}
@route('/api/v1/record/face', methods=['POST'], type='json', auth='none', csrf=False)
def get_model_identify(self):
"""
获取上传识别成功记录
:return:
"""
data = request.httprequest.json
user_name = data.get('logs').get('user_id')
employee_id = request.env(user=SUPERUSER_ID)["hr.employee"].search([('user_id', '=', user_name.id)])
attendance_iot = request.env(user=SUPERUSER_ID)["attendance.iot.datas"]
if not attendance_iot.search(
[('employee_id', '=', employee_id.id), ('attendance_number', '=', data.get('sn'))]):
attendance_iot.create({
'attendance_number': data.get('sn'),
'attendance_date': data.get('logs').get('recog_time'),
'employee_id': employee_id.id,
})
print("---------------------------------------------测试成功---------------------------------------")
return {"Result": 0, "Msg": "添加成功"}