diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 42a392e2..b9209d57 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -870,6 +870,11 @@ class SfMaintenanceEquipmentTool(models.Model): _description = '机床刀位' equipment_id = fields.Many2one('maintenance.equipment', string='设备') + + code = fields.Char('机床刀位号') + name = fields.Char('刀位号', compute='_compute_name') + + # 待删除字段 product_template_id = fields.Many2one('product.template', string='功能刀具名称', domain="[('categ_type', '=', '刀具')]") image_1920 = fields.Binary('图片', related='product_template_id.image_1920') @@ -882,9 +887,6 @@ class SfMaintenanceEquipmentTool(models.Model): life_value_max = fields.Char('最大寿命值') alarm_value = fields.Char('报警值') used_value = fields.Char('已使用值') - code = fields.Char('机床刀位号') - - name = fields.Char('', compute='_compute_name') @api.depends('code') def _compute_name(self): diff --git a/sf_manufacturing/views/sf_maintenance_equipment.xml b/sf_manufacturing/views/sf_maintenance_equipment.xml index a2d9437d..b398f994 100644 --- a/sf_manufacturing/views/sf_maintenance_equipment.xml +++ b/sf_manufacturing/views/sf_maintenance_equipment.xml @@ -1,7 +1,7 @@ - + 设备增加刀具库位table sf_manufacturing_equipment.form maintenance.equipment @@ -13,17 +13,6 @@ - - - - - - - - - - - diff --git a/sf_tool_management/__init__.py b/sf_tool_management/__init__.py index fb05df81..ea8e8e0b 100644 --- a/sf_tool_management/__init__.py +++ b/sf_tool_management/__init__.py @@ -1,6 +1,7 @@ # -*-coding:utf-8-*- from . import models from . import wizard +from . import controllers from odoo import api, SUPERUSER_ID diff --git a/sf_tool_management/__manifest__.py b/sf_tool_management/__manifest__.py index e334c32a..faf3927b 100644 --- a/sf_tool_management/__manifest__.py +++ b/sf_tool_management/__manifest__.py @@ -16,6 +16,7 @@ 'security/ir.model.access.csv', 'wizard/wizard_view.xml', 'views/tool_base_views.xml', + 'views/sf_maintenance_equipment.xml', 'views/menu_view.xml', 'views/tool_material_search.xml', ], diff --git a/sf_tool_management/controllers/__init__.py b/sf_tool_management/controllers/__init__.py new file mode 100644 index 00000000..e046e49f --- /dev/null +++ b/sf_tool_management/controllers/__init__.py @@ -0,0 +1 @@ +from . import controllers diff --git a/sf_tool_management/controllers/controllers.py b/sf_tool_management/controllers/controllers.py new file mode 100644 index 00000000..0e60a57f --- /dev/null +++ b/sf_tool_management/controllers/controllers.py @@ -0,0 +1,56 @@ +# -*- 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) diff --git a/sf_tool_management/models/maintenance_equipment.py b/sf_tool_management/models/maintenance_equipment.py index f5371a3f..1f42430c 100644 --- a/sf_tool_management/models/maintenance_equipment.py +++ b/sf_tool_management/models/maintenance_equipment.py @@ -1,9 +1,22 @@ -from odoo import models, api +from odoo import models, api, fields class SfMaintenanceEquipmentTool(models.Model): _inherit = 'maintenance.equipment.tool' + functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool.entity', '功能刀具名称') + + image = fields.Binary('图片', related='functional_tool_name_id.image') + tool_code = fields.Char('功能刀具编码', related='functional_tool_name_id.code') + functional_tool_type = fields.Char('功能刀具类型', related='functional_tool_name_id.sf_cutting_tool_type_id.name') + tool_groups = fields.Char('刀具组', related='functional_tool_name_id.tool_groups_id.name') + diameter = fields.Integer('直径(mm)', related='functional_tool_name_id.functional_tool_diameter') + knife_tip_r_angle = fields.Float('刀尖R角(mm)', related='functional_tool_name_id.knife_tip_r_angle') + life_value_max = fields.Integer('最大寿命值(min)', related='functional_tool_name_id.max_lifetime_value') + alarm_value = fields.Integer('报警值(min)', related='functional_tool_name_id.alarm_value') + used_value = fields.Integer('已使用值(min)', related='functional_tool_name_id.used_value') + tool_install_time = fields.Datetime('机内装刀时间') + @api.model_create_multi def create(self, vals_list): tools = super().create(vals_list) diff --git a/sf_tool_management/views/sf_maintenance_equipment.xml b/sf_tool_management/views/sf_maintenance_equipment.xml new file mode 100644 index 00000000..fd863a84 --- /dev/null +++ b/sf_tool_management/views/sf_maintenance_equipment.xml @@ -0,0 +1,32 @@ + + + + + sf_manufacturing_equipment.form + maintenance.equipment + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index 396aa703..9f1a1aae 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -41,7 +41,7 @@ class ToolChangeRequirementInformation(models.TransientModel): replacement_tool_setting_length = fields.Float(string='待换刀具总长度(mm)', required=True) replacement_extension_length = fields.Float(string='待换刀具伸出长(mm)') replacement_effective_length = fields.Float(string='待换刀具有效长(mm)') - replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], requirded=True, + replacement_tool_coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], required=True, string='待换刀具粗/中/精', default='3') replacement_max_lifetime_value = fields.Integer(string='待换刀具最大寿命值(min)')