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 - + - - - - - - - - - - + +