# -*- 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/FeedBackOut', 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)