96 lines
4.2 KiB
Python
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": "添加成功"}
|