# -*- coding: utf-8 -*- import logging import json import base64 from odoo import http from odoo.http import request class Manufacturing_Connect(http.Controller): @http.route('/AutoDeviceApi/MachineToolLibrary', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False, cors="*") def get_equipment_tool_Info(self, **kw): """ 机床刀库实时信息 :param kw: :return: """ logging.info('get_equipment_tool_Info:%s' % kw) try: datas = request.httprequest.data ret = json.loads(datas) ret = json.loads(ret['result']) logging.info('DeviceId:%s' % ret) equipment = request.env['maintenance.equipment'].sudo().search([('name', '=', ret['DeviceId'])]) res = {'Succeed': True, 'Datas': []} if equipment: for item in equipment: data = [] for equipment_tool_id in item.product_template_ids: functional_tool_id = self.env['sf.functional.cutting.tool.entity'].sudo().search( [('code', '=', equipment_tool_id.tool_code)]) alarm_time = None if functional_tool_id.functional_tool_status == '报警': alarm_time = self.env['sf.functional.tool.warning'].sudo().search( [('code', '=', equipment_tool_id.tool_code)]).alarm_time equipment_tool = { 'RfidCode': None, 'ToolId': equipment_tool_id.code, 'ToolName': equipment_tool_id.functional_tool_name_id.name, 'MaxLife': equipment_tool_id.life_value_max, 'UseLife': equipment_tool_id.used_value, 'AddDatetime': equipment_tool_id.tool_install_time, 'State': functional_tool_id.functional_tool_status, 'WarnDate': alarm_time if alarm_time else False } data.append(equipment_tool) res['Datas'].append({ 'DeviceId': item.name, 'Data': data }) except Exception as e: res = {'Succeed': False, 'ErrorCode': 202, 'Error': e} logging.info('get_equipment_tool_Info error:%s' % e) return json.JSONEncoder().encode(res) @http.route('/AutoDeviceApi/ToolGroups', type='json', auth='none', methods=['GET', 'POST'], csrf=False, cors="*") def get_functional_tool_groups_Info(self, **kw): """ 刀具组接口 :param kw: :return: """ logging.info('get_functional_tool_groups_Info:%s' % kw) try: datas = request.httprequest.data ret = json.loads(datas) ret = json.loads(ret['result']) logging.info('DeviceId:%s' % ret) functional_tools = request.env['sf.functional.cutting.tool.entity'].sudo().search([]) res = {'Succeed': True, 'Datas': []} if functional_tools: for item in functional_tools: res['Datas'].append({ 'GroupName': item.tool_groups_id.name, 'ToolId': item.code, 'ToolName': item.name }) except Exception as e: res = {'Succeed': False, 'ErrorCode': 202, 'Error': e} logging.info('get_functional_tool_groups_Info error:%s' % e) return json.JSONEncoder().encode(res)