1.新增刀具物料参数的同步接口及方法

2.修改刀具物料参数的适配刀片型号及适配刀柄型号字段类型及新增刀柄长度,刀柄直径,法兰直径,动平衡等级,适配夹头型号,适用锁紧螺母型号,编码字段
This commit is contained in:
jinling.yang
2023-12-28 16:27:40 +08:00
parent 51b67c0dcd
commit a9c2d1aa5c
9 changed files with 768 additions and 216 deletions

View File

@@ -6,6 +6,7 @@ class ToolMaterialsBasicParameters(models.Model):
_description = '刀具物料基本参数' _description = '刀具物料基本参数'
name = fields.Char('物料号', size=50) name = fields.Char('物料号', size=50)
code = fields.Char('编码', size=50)
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具标准库') standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具标准库')
cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型', cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型',
store=True) store=True)
@@ -73,11 +74,8 @@ class ToolMaterialsBasicParameters(models.Model):
is_cooling_hole = fields.Boolean('有无冷却孔') is_cooling_hole = fields.Boolean('有无冷却孔')
locating_slot_code = fields.Char('定位槽代号', size=20) locating_slot_code = fields.Char('定位槽代号', size=20)
installing_structure = fields.Char('安装结构', size=20) installing_structure = fields.Char('安装结构', size=20)
blade_ids = fields.Many2many( blade_id = fields.Many2one(
'sf.cutting.tool.type', 'sf.cutting_tool.standard.library',
relation='basic_param_pad_blade_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀片')]", domain="[('cutting_tool_material_id.name', '=', '刀片')]",
string='适配刀片型号' # 使用空列表作为默认值 string='适配刀片型号' # 使用空列表作为默认值
) )
@@ -91,13 +89,17 @@ class ToolMaterialsBasicParameters(models.Model):
interface_diameter = fields.Float('接口直径(mm)') interface_diameter = fields.Float('接口直径(mm)')
# 刀柄参数 # 刀柄参数
flange_shank_length = fields.Float('法兰柄长(mm)') flange_shank_length = fields.Float('法兰柄长(mm)')
flange_diameter = fields.Float('法兰直径(mm)')
handle_external_diameter = fields.Float('柄部外径(mm)') handle_external_diameter = fields.Float('柄部外径(mm)')
handle_inside_diameter = fields.Float('柄部内径(mm)') handle_inside_diameter = fields.Float('柄部内径(mm)')
dynamic_balance_class = fields.Char('动平衡等级')
min_clamping_diameter = fields.Float('最小夹持直径(mm)') min_clamping_diameter = fields.Float('最小夹持直径(mm)')
max_clamping_diameter = fields.Float('最大夹持直径(mm)') max_clamping_diameter = fields.Float('最大夹持直径(mm)')
clamping_mode = fields.Char('夹持方式', size=20) clamping_mode = fields.Char('夹持方式', size=20)
max_load_capacity = fields.Float('最大负载能力(kg)') max_load_capacity = fields.Float('最大负载能力(kg)')
taper = fields.Integer('锥度(°)') taper = fields.Integer('锥度(°)')
shank_length = fields.Float('刀柄长度(mm)', digits=(3, 2))
shank_diameter = fields.Float('刀柄直径(mm)')
tool_changing_time = fields.Integer('换刀时间(s)') tool_changing_time = fields.Integer('换刀时间(s)')
standard_rotate_speed = fields.Integer('标准转速(n/min)') standard_rotate_speed = fields.Integer('标准转速(n/min)')
max_rotate_speed = fields.Integer('最大转速(n/min)') max_rotate_speed = fields.Integer('最大转速(n/min)')
@@ -108,6 +110,13 @@ class ToolMaterialsBasicParameters(models.Model):
is_quick_cutting = fields.Boolean('可高速切削', default=False) is_quick_cutting = fields.Boolean('可高速切削', default=False)
is_drill_hole = fields.Boolean('可钻孔', default=False) is_drill_hole = fields.Boolean('可钻孔', default=False)
is_safe_lock = fields.Boolean('有无安全锁', default=False) is_safe_lock = fields.Boolean('有无安全锁', default=False)
chuck_id = fields.Many2one(
'sf.cutting_tool.standard.library',
domain="[('cutting_tool_material_id.name', '=', '夹头')]",
string='适配夹头型号' # 使用空列表作为默认值
)
nut = fields.Char('适用锁紧螺母型号')
# 夹头参数 # 夹头参数
er_size_model = fields.Char('ER尺寸型号', size=20) er_size_model = fields.Char('ER尺寸型号', size=20)
outer_diameter = fields.Float('外径(mm)') outer_diameter = fields.Float('外径(mm)')
@@ -118,11 +127,8 @@ class ToolMaterialsBasicParameters(models.Model):
clamping_length = fields.Float('夹持长度(mm)') clamping_length = fields.Float('夹持长度(mm)')
clamping_tolerance = fields.Char('夹持公差(mm)', size=20) clamping_tolerance = fields.Char('夹持公差(mm)', size=20)
cooling_jacket = fields.Char('适用冷却套型号', size=50) cooling_jacket = fields.Char('适用冷却套型号', size=50)
handle_ids = fields.Many2many( handle_id = fields.Many2one(
'sf.cutting.tool.type', 'sf.cutting_tool.standard.library',
relation='basic_param_chuck_handle_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀柄')]", domain="[('cutting_tool_material_id.name', '=', '刀柄')]",
string='适用刀柄型号' string='适用刀柄型号'
) )

View File

@@ -277,7 +277,7 @@
<field name="is_cooling_hole" /> <field name="is_cooling_hole" />
<field name="locating_slot_code"/> <field name="locating_slot_code"/>
<field name="installing_structure"/> <field name="installing_structure"/>
<field name="blade_ids" widget="many2many_tags" placeholder="请选择"/> <field name="blade_id" placeholder="请选择"/>
<field name="tool_shim"/> <field name="tool_shim"/>
<field name="cotter_pin"/> <field name="cotter_pin"/>
<field name="pressing_plate"/> <field name="pressing_plate"/>
@@ -300,7 +300,7 @@
<field name="cutting_depth" string="最大切削深度(mm)"/> <field name="cutting_depth" string="最大切削深度(mm)"/>
<field name="main_included_angle" class="du"/> <field name="main_included_angle" class="du"/>
<field name="installing_structure"/> <field name="installing_structure"/>
<field name="blade_ids" widget="many2many_tags" placeholder="请选择"/> <field name="blade_id" placeholder="请选择"/>
<field name="screw"/> <field name="screw"/>
<field name="spanner"/> <field name="spanner"/>
<field name="cutting_blade_model"/> <field name="cutting_blade_model"/>
@@ -356,7 +356,7 @@
<field name="clamping_length"/> <field name="clamping_length"/>
<field name="clamping_tolerance"/> <field name="clamping_tolerance"/>
<field name="max_load_capacity"/> <field name="max_load_capacity"/>
<field name="handle_ids" widget="many2many_tags" placeholder="请选择"/> <field name="handle_id" placeholder="请选择"/>
<field name="cooling_jacket"/> <field name="cooling_jacket"/>
</tree> </tree>
</field> </field>

View File

@@ -11,7 +11,7 @@
'website': 'https://www.sf.jikimo.com', 'website': 'https://www.sf.jikimo.com',
'depends': ['sf_sale', 'sf_dlm', 'sf_manufacturing'], 'depends': ['sf_sale', 'sf_dlm', 'sf_manufacturing'],
'data': [ 'data': [
'data/stock_data.xml', # 'data/stock_data.xml',
'views/product_template_management_view.xml', 'views/product_template_management_view.xml',
], ],
'demo': [ 'demo': [

View File

@@ -28,13 +28,13 @@
options="{'no_create': True}" options="{'no_create': True}"
attrs="{'invisible': ['|',('categ_type', '!=', '表面工艺'),('categ_type', '=', False)]}"/> attrs="{'invisible': ['|',('categ_type', '!=', '表面工艺'),('categ_type', '=', False)]}"/>
<field name="cutting_tool_material_id" <field name="cutting_tool_material_id"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('categ_id', '!=', False)]}" attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('create_uid', '!=', False)]}"
placeholder="请选择"/> placeholder="请选择"/>
<field name="cutting_tool_model_id" placeholder="请选择" <field name="cutting_tool_model_id" placeholder="请选择"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('categ_id', '!=', False)]}" attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('create_uid', '!=', False)]}"
domain="[('cutting_tool_material_id','=',cutting_tool_material_id)]"/> domain="[('cutting_tool_material_id','=',cutting_tool_material_id)]"/>
<field name="specification_id" placeholder="请选择" <field name="specification_id" placeholder="请选择"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('categ_id', '!=', False)]}" attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('create_uid', '!=', False)]}"
domain="[('standard_library_id','=',cutting_tool_model_id)]"/> domain="[('standard_library_id','=',cutting_tool_model_id)]"/>
<field name="fixture_material_id" attrs="{'invisible': [('categ_type', '!=', '夹具')]}" <field name="fixture_material_id" attrs="{'invisible': [('categ_type', '!=', '夹具')]}"
placeholder="请选择"/> placeholder="请选择"/>
@@ -42,7 +42,7 @@
attrs="{'invisible': [('categ_type', '!=', '夹具')]}" attrs="{'invisible': [('categ_type', '!=', '夹具')]}"
domain="[('fixture_material_id','=',fixture_material_id)]"/> domain="[('fixture_material_id','=',fixture_material_id)]"/>
<field name="name" position="attributes"> <field name="name" position="attributes">
<attribute name="attrs">{'readonly': [('categ_id', '!=', False)]}</attribute> <attribute name="attrs">{'readonly': [('create_uid', '!=', False)]}</attribute>
</field> </field>
</field> </field>
@@ -140,23 +140,6 @@
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('categ_type', '=', '刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('categ_type', '=', '刀具')]}"/>
<field name="cutting_tool_shank_inner_diameter" <field name="cutting_tool_shank_inner_diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('categ_type', '=', '刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')],'readonly': [('categ_type', '=', '刀具')]}"/>
<!-- <field name="materials_type_id" options="{'no_create': True}" string="刀具材质"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"-->
<!-- placeholder="请选择"/>-->
<!-- <field name="tool_hardness" string="刀具硬度(hrc)"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')]}"/>-->
<!-- <field name="materials_type_id" options="{'no_create': True}" string="夹头材质"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}"-->
<!-- placeholder="请选择"/>-->
<!-- <field name="tool_hardness" string="夹头硬度(hrc)"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '夹头')]}"/>-->
<!-- <field name="materials_type_id" options="{'no_create': True}" string="刀柄材质"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"-->
<!-- placeholder="请选择"/>-->
<!-- <field name="tool_hardness" string="刀柄硬度(hrc)"-->
<!-- attrs="{'invisible': [('cutting_tool_type', '!=', '刀柄')]}"/>-->
<field name="cutting_tool_blade_diameter" string="刃部直径(mm)" class="diameter" <field name="cutting_tool_blade_diameter" string="刃部直径(mm)" class="diameter"
attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')],'readonly': [('categ_type', '=', '刀具')]}"/> attrs="{'invisible': [('cutting_tool_type', '!=', '整体式刀具')],'readonly': [('categ_type', '=', '刀具')]}"/>
<field name="cutting_tool_blade_length" <field name="cutting_tool_blade_length"

View File

@@ -6,8 +6,8 @@ import os
from odoo import models, fields, api, _ from odoo import models, fields, api, _
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
from odoo.modules import get_resource_path from odoo.modules import get_resource_path
from OCC.Extend.DataExchange import read_step_file # from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import write_stl_file # from OCC.Extend.DataExchange import write_stl_file
class ResProductMo(models.Model): class ResProductMo(models.Model):

View File

@@ -65,6 +65,8 @@ class ResConfigSettings(models.TransientModel):
_logger.info("同步能力特征库完成") _logger.info("同步能力特征库完成")
self.env['sf.cutting_tool.standard.library'].sync_all_cutting_tool_standard_library() self.env['sf.cutting_tool.standard.library'].sync_all_cutting_tool_standard_library()
_logger.info("同步刀具标准库完成") _logger.info("同步刀具标准库完成")
self.env['sf.tool.materials.basic.parameters'].sync_all_cutting_tool_basic_parameters()
_logger.info("同步刀具物料基本参数完成")
except Exception as e: except Exception as e:
_logger.info("捕获错误信息:%s" % e) _logger.info("捕获错误信息:%s" % e)
raise ValidationError("数据错误导致同步失败,请联系管理员") raise ValidationError("数据错误导致同步失败,请联系管理员")

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
import logging import logging
from odoo.modules import get_resource_path from odoo.modules import get_resource_path
from odoo import fields, models, api from odoo import fields, models, api
from quatotion import readSql, feature_recognize, auto_quatotion # from quatotion import readSql, feature_recognize, auto_quatotion
__author__ = 'jinling.yang' __author__ = 'jinling.yang'
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)

View File

@@ -5,8 +5,8 @@ import os
import json import json
from datetime import datetime from datetime import datetime
import requests import requests
from OCC.Extend.DataExchange import read_step_file # from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import write_stl_file # from OCC.Extend.DataExchange import write_stl_file
from odoo import models, fields, api from odoo import models, fields, api
from odoo.modules import get_resource_path from odoo.modules import get_resource_path
from odoo.exceptions import ValidationError, UserError from odoo.exceptions import ValidationError, UserError