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": "添加成功"}