From 3c4a2b58b1c52d1f558ce390b7545a6ec81809b9 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Thu, 22 Feb 2024 18:12:51 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E5=88=80=E5=85=B7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/controllers/controllers.py | 2 +- sf_tool_management/controllers/controllers.py | 96 +++++++++---------- sf_tool_management/models/base.py | 2 +- .../models/maintenance_equipment.py | 27 ++++++ sf_tool_management/models/mrp_workorder.py | 3 +- .../views/sf_maintenance_equipment.xml | 1 + 6 files changed, 79 insertions(+), 52 deletions(-) diff --git a/sf_base/controllers/controllers.py b/sf_base/controllers/controllers.py index 80d28a8b..ca600580 100644 --- a/sf_base/controllers/controllers.py +++ b/sf_base/controllers/controllers.py @@ -22,7 +22,7 @@ class Manufacturing_Connect(http.Controller): ret = json.loads(datas) # ret = json.loads(ret['result']) logging.info('DeviceId:%s' % ret) - tool_groups = request.env['sf.tool.groups'].sudo().search([('active', '=', True)]) + tool_groups = request.env['sf.tool.groups'].sudo().search([]) res = {'Succeed': True, 'Datas': []} if tool_groups: diff --git a/sf_tool_management/controllers/controllers.py b/sf_tool_management/controllers/controllers.py index 6c3ec0c5..3e687798 100644 --- a/sf_tool_management/controllers/controllers.py +++ b/sf_tool_management/controllers/controllers.py @@ -8,53 +8,53 @@ from odoo.http import request class Manufacturing_Connect(http.Controller): - @http.route('/AutoDeviceApi/GetToolInfo', type='json', auth='none', 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.get('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/GetToolInfo', type='json', auth='none', 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.get('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/ToolGroup', type='json', auth='none', methods=['GET', 'POST'], csrf=False, cors="*") @@ -70,7 +70,7 @@ class Manufacturing_Connect(http.Controller): 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([('active', '=', True)]) + functional_tools = request.env['sf.functional.cutting.tool.entity'].sudo().search([]) res = {'Succeed': True, 'Datas': []} if functional_tools: diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index d43d6ea7..a4e374c6 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -734,7 +734,7 @@ class CAMWorkOrderProgramKnifePlan(models.Model): 撤回装刀申请 :return: """ - self.env['sf.functional.tool.assembly'].search( + self.env['sf.functional.tool.assembly'].sudo().search( [('assembly_order_code', '=', self.sf_functional_tool_assembly_id.assembly_order_code), ('loading_task_source', '=', '0')]).unlink() diff --git a/sf_tool_management/models/maintenance_equipment.py b/sf_tool_management/models/maintenance_equipment.py index 4b5fe89e..3c1eec9e 100644 --- a/sf_tool_management/models/maintenance_equipment.py +++ b/sf_tool_management/models/maintenance_equipment.py @@ -1,5 +1,8 @@ +import json +import requests from odoo import models, api, fields from odoo.exceptions import ValidationError +from odoo.addons.sf_base.commons.common import Common class SfMaintenanceEquipmentTool(models.Model): @@ -29,6 +32,30 @@ class SfMaintenanceEquipmentTool(models.Model): return tools +class SfMaintenanceEquipment(models.Model): + _inherit = 'maintenance.equipment' + _description = '设备机床刀库' + + # ==========机床当前刀库实时信息接口========== + def register_equipment_tool(self): + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + sf_secret_key = sf_sync_config['sf_secret_key'] + headers = Common.get_headers(self, token, sf_secret_key) + strurl = "https://x24467i973.zicp.fun/AutoDeviceApi/GetToolInfos" + val = { + "DeviceId": self.name + } + kw = json.dumps(val, ensure_ascii=False) + r = requests.get(strurl, json={}, data={'kw': kw, 'token': token}, headers=headers) + ret = r.json() + print(ret) + if r == 200: + return "机床当前刀库实时信息指令发送成功" + else: + raise ValidationError("机床当前刀库实时信息指令发送失败") + + class StockLot(models.Model): _inherit = 'stock.lot' diff --git a/sf_tool_management/models/mrp_workorder.py b/sf_tool_management/models/mrp_workorder.py index 47185516..9bb638e7 100644 --- a/sf_tool_management/models/mrp_workorder.py +++ b/sf_tool_management/models/mrp_workorder.py @@ -11,12 +11,11 @@ class CNCprocessing(models.Model): # ==========MES装刀指令接口========== def register_cnc_processing(self, cnc_processing): - create_url = '/AutoDeviceApi/ToolLoadInstruct' sf_sync_config = self.env['res.config.settings'].get_values() token = sf_sync_config['token'] sf_secret_key = sf_sync_config['sf_secret_key'] headers = Common.get_headers(self, token, sf_secret_key) - strurl = sf_sync_config['sf_url'] + create_url + strurl = "https://x24467i973.zicp.fun/AutoDeviceApi/ToolLoadInstruct" val = { 'DeviceId': cnc_processing.workorder_id.machine_tool_name, 'RfidCode': None, diff --git a/sf_tool_management/views/sf_maintenance_equipment.xml b/sf_tool_management/views/sf_maintenance_equipment.xml index fd863a84..dbdafe1e 100644 --- a/sf_tool_management/views/sf_maintenance_equipment.xml +++ b/sf_tool_management/views/sf_maintenance_equipment.xml @@ -9,6 +9,7 @@ +