From 1a860a5eb9d9894963c2cd3e587015ae45a6da48 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Fri, 19 Apr 2024 14:59:19 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=AE=BE=E5=A4=87=E6=9C=BA=E5=BA=8A?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9C=BA=E5=BA=8A=E5=9F=BA=E5=9D=90=E6=A0=87?= =?UTF-8?q?page=E9=A1=B5=E5=8F=8A=E5=85=B6=E5=9F=BA=E6=9C=AC=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=96=B0=E5=A2=9E=E4=B8=BB?= =?UTF-8?q?=E5=8A=A8=E8=8E=B7=E5=8F=96=E5=92=8C=E8=A2=AB=E5=8A=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=9F=BA=E5=9D=90=E6=A0=87=E6=95=B0=E6=8D=AE=E4=B8=AD?= =?UTF-8?q?=E6=8E=A7=E6=8E=A5=E5=8F=A3=EF=BC=88=E6=8E=A5=E5=8F=A3=E5=BE=85?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/controllers/controllers.py | 32 +++++++++++++++ sf_manufacturing/models/product_template.py | 28 +++++++++++++ .../views/sf_maintenance_equipment.xml | 41 +++++++++++++------ 3 files changed, 88 insertions(+), 13 deletions(-) diff --git a/sf_manufacturing/controllers/controllers.py b/sf_manufacturing/controllers/controllers.py index a519d9b0..6ebecc37 100644 --- a/sf_manufacturing/controllers/controllers.py +++ b/sf_manufacturing/controllers/controllers.py @@ -480,3 +480,35 @@ class Manufacturing_Connect(http.Controller): res = {'Succeed': False, 'ErrorCode': 202, 'Error': e} logging.info('AGVDownProduct error:%s' % e) return json.JSONEncoder().encode(res) + + @http.route('/AutoDeviceApi/EquipmentBaseCoordinate', type='json', auth='none', methods=['GET', 'POST'], csrf=False, + cors="*") + def PutEquipmentBaseCoordinate(self, **kw): + """ + 获取机床基坐标 + :param kw: + :return: + """ + logging.info('PutEquipmentBaseCoordinate:%s' % kw) + try: + res = {'Succeed': True} + datas = request.httprequest.data + ret = json.loads(datas) + if 'DeviceId' in ret: + equipment = request.env['maintenance.equipment'].sudo().search('name', '=', ret['DeviceId']) + if equipment: + equipment.sudo().write({ + 'base_coordinate_fixture_model_id': ret['base_coordinate_fixture_model_id'], + 'base_coordinate_g_coordinate': ret['base_coordinate_g_coordinate'], + 'base_coordinate_x': ret['base_coordinate_x'], + 'base_coordinate_y': ret['base_coordinate_y'], + 'base_coordinate_z': ret['base_coordinate_z'], + }) + else: + res = {'Succeed': False, 'ErrorCode': 203, 'Error': 'DeviceId为%s的设备不存在!' % ret['DeviceId']} + else: + res = {'Succeed': False, 'ErrorCode': 201, 'Error': '未传DeviceId字段'} + except Exception as e: + res = {'Succeed': False, 'ErrorCode': 202, 'Error': e} + logging.info('AGVDownProduct error:%s' % e) + return json.JSONEncoder().encode(res) diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 52f1fc9d..16ea429a 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import logging +import requests import base64 import hashlib import os @@ -892,6 +893,33 @@ class SfMaintenanceEquipmentAndProductTemplate(models.Model): vals.append(res) return vals[0] + base_coordinate_fixture_model_id = fields.Many2one('sf.fixture.model', '基坐标卡盘型号', + domain=[('fixture_material_id', '=', '零点卡盘')]) + base_coordinate_g_coordinate = fields.Char('G坐标') + base_coordinate_x = fields.Float('x轴', digits=(12, 3)) + base_coordinate_y = fields.Float('y轴', digits=(12, 3)) + base_coordinate_z = fields.Float('z轴', digits=(12, 3)) + + # ==========获取机床基坐标接口========== + def get_equipment_base_coordinate(self): + headers = {'Authorization': 'Ba F2CF5DCC-1A00-4234-9E95-65603F70CC8A'} + crea_url = "https://x24467i973.zicp.fun/AutoDeviceApi/EquipmentBaseCoordinate" + params = {"DeviceId": self.name} + r = requests.get(crea_url, params=params, headers=headers) + ret = r.json() + logging.info('register_equipment_tool:%s' % ret) + self.write({ + 'base_coordinate_fixture_model_id': ret['base_coordinate_fixture_model_id'], + 'base_coordinate_g_coordinate': ret['base_coordinate_g_coordinate'], + 'base_coordinate_x': ret['base_coordinate_x'], + 'base_coordinate_y': ret['base_coordinate_y'], + 'base_coordinate_z': ret['base_coordinate_z'], + }) + if ret['Succeed']: + return "机床基坐标获取成功" + else: + raise ValidationError("机床基坐标获取失败") + class SfMaintenanceEquipmentTool(models.Model): _name = 'maintenance.equipment.tool' diff --git a/sf_manufacturing/views/sf_maintenance_equipment.xml b/sf_manufacturing/views/sf_maintenance_equipment.xml index b398f994..5ddf59b0 100644 --- a/sf_manufacturing/views/sf_maintenance_equipment.xml +++ b/sf_manufacturing/views/sf_maintenance_equipment.xml @@ -1,23 +1,38 @@ - 设备增加刀具库位table + sf_manufacturing_equipment.form maintenance.equipment - + - - - - - - - - - - + +