1、修改夹装单元数修改成装夹单元数;2、重构产品的夹具物料信息(进行中);3、完善夹具物料的同步功能;

This commit is contained in:
yuxianghui
2024-01-04 17:44:22 +08:00
parent ce69127250
commit 57f5d138e8
5 changed files with 258 additions and 194 deletions

View File

@@ -16,7 +16,7 @@ class BasicParametersFixture(models.Model):
weight = fields.Float('重量(mm)', digits=(16, 2))
orientation_dish_diameter = fields.Float('定位盘直径(mm)', digits=(16, 2))
clamping_diameter = fields.Float('装夹直径(mm)', digits=(16, 2))
clamping_num = fields.Selection([('1', '1'), ('2', '2'), ('4', '4'), ('6', '6'), ('8', '8')], string='装单元数')
clamping_num = fields.Selection([('1', '1'), ('2', '2'), ('4', '4'), ('6', '6'), ('8', '8')], string='单元数')
chucking_power_max = fields.Float('最大夹持力(KN)', digits=(16, 2))
repeated_positioning_accuracy = fields.Char('重复定位精度(mm)', size=20)
boolean_transposing_hole = fields.Boolean('是否有转位孔')

View File

@@ -32,6 +32,7 @@ class FixtureModel(models.Model):
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型", required=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌")
model_file = fields.Binary(string="3D模型图")
status = fields.Boolean('状态')
active = fields.Boolean('有效', default=False)
zero_chuck_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',

View File

@@ -41,6 +41,10 @@
<field name="fixture_model_id" string="型号" placeholder="请选择"
attrs="{'invisible': [('categ_type', '!=', '夹具')]}"
domain="[('fixture_material_id','=',fixture_material_id)]"/>
<field name="specification_fixture_id" string="规格" placeholder="请选择"
attrs="{'invisible': [('categ_type', '!=', '夹具')]}"
domain="[('fixture_model_id','=',fixture_model_id)]"/>
<field name="name" position="attributes">
<attribute name="attrs">{'readonly': [('categ_id', '!=', False)]}</attribute>
</field>
@@ -89,8 +93,7 @@
</field>
</record>
<record model="ir.ui.view" id="view_product_template_only_form_inherit_sf">
<record model="ir.ui.view" id="view_product_template_form_inherit_sf">
<field name="name">product.template.only.form.inherit.sf</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
@@ -101,7 +104,15 @@
<field name="default_code" position="replace">
<field name='default_code' invisible="1"/>
</field>
<xpath expr="//page[@name='variants']" position="before">
</field>
</record>
<record model="ir.ui.view" id="view_product_template_only_form_inherit_sf">
<field name="name">product.template.only.form.inherit.sf</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="sf_dlm_management.view_sale_product_template_form_inherit_sf"/>
<field name="arch" type="xml">
<xpath expr="//page[1]" position="after">
<page string="刀具物料参数"
attrs="{'invisible': [('categ_type', '!=', '刀具')],'readonly': [('categ_type', '=', '刀具')]}">
<group>
@@ -483,64 +494,41 @@
</notebook>
</page>
<page string="夹具物料参数" attrs="{'invisible': [('categ_type', '!=', '夹具')]}">
<group attrs='{"invisible": [("fixture_material_type","not in",("气动夹具","转接板(锁板)夹具","磁吸夹具","虎钳夹具","零点卡盘","零点托盘"))]}'>
<group>
<group>
<field name="brand_id"/>
<field name="fixture_multi_mounting_type_id" options="{'no_create': True}"/>
<label for="tool_length" string="尺寸(mm)"/>
<div class="o_address_format">
<label for="tool_length" string="长"/>
<field name="tool_length" class="o_address_zip"
options="{'format': false}"/>
<!-- <span>&amp;nbsp;</span>-->
<label for="tool_width" string="宽"/>
<field name="tool_width" class="o_address_zip"
options="{'format': false}"/>
<!-- <span>&amp;nbsp;</span>-->
<label for="tool_height" string="高"/>
<field name="tool_height" class="o_address_zip"
options="{'format': false}"/>
</div>
<field name="tool_weight"></field>
<label for="fixture_clamp_workpiece_length_max" string="夹持工件最大尺寸(mm)"
attrs='{"invisible": [("fixture_material_type","in",("零点卡盘","零点托盘"))]}'/>
<div class="o_address_format"
attrs='{"invisible": [("fixture_material_type","in",("零点卡盘","零点托盘"))]}'>
<label for="fixture_clamp_workpiece_length_max" string="长"/>
<field name="fixture_clamp_workpiece_length_max" class="o_address_zip"
options="{'format': false}"
attrs="{'required': [('fixture_material_type', 'in',('气动夹具','转接板(锁板)夹具','磁吸夹具','虎钳夹具'))]}"/>
<!-- <span>&amp;nbsp;</span>-->
<label for="fixture_clamp_workpiece_width_max" string="宽"/>
<field name="fixture_clamp_workpiece_width_max" class="o_address_zip"
options="{'format': false}"
attrs="{'required': [('fixture_material_type', 'in',('气动夹具','转接板(锁板)夹具','磁吸夹具','虎钳夹具'))]}"/>
<!-- <span>&amp;nbsp;</span>-->
<label for="fixture_clamp_workpiece_height_max" string="高"/>
<field name="fixture_clamp_workpiece_height_max" class="o_address_zip"
options="{'format': false}"
attrs="{'required': [('fixture_material_type', 'in',('气动托盘','转接板(锁板)夹具','磁吸夹具','虎钳夹具'))]}"/>
</div>
<field name="fixture_clamp_workpiece_diameter_max"
attrs="{'invisible': [('fixture_material_type','in',('零点卡盘','零点托盘'))],'required': [('fixture_material_type', 'in',('气动夹具','转接板(锁板)夹具','磁吸夹具','虎钳夹具'))]}"/>
<field name="fixture_maximum_carrying_weight"></field>
<field name="fixture_maximum_clamping_force"></field>
<field name="brand_id" placeholder="请选择"/>
<field name="multi_mounting_type_id" placeholder="请选择"/>
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="diameter"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘', '零点托盘', '三爪卡盘'])]}"/>
<field name="weight"/>
<field name="chucking_power_max"/>
<field name="carrying_capacity_max"/>
<field name="rigidity"/>
<field name="materials_model_id" placeholder="请选择"/>
</group>
<group>
<field name="materials_type_id" options="{'no_create': True}"/>
<field name="fixture_clamping_way"
attrs='{"invisible": [("fixture_material_type","not in",("气动夹具","磁吸夹具","虎钳夹具"))]}'/>
<field name="fixture_port_type"
attrs='{"invisible": [("fixture_material_type","not in",("气动夹具","磁吸夹具","虎钳夹具"))]}'/>
<field name="fixture_through_hole_size"
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)夹具"))]}'/>
<field name="fixture_screw_size"
attrs='{"invisible": [("fixture_material_type","!=",("转接板(锁板)夹具"))]}'/>
<field name="fixture_driving_way"
attrs='{"invisible": [("fixture_material_type","not in",("虎钳夹具","零点卡盘","零点托盘"))]}'/>
<field name="fixture_apply_machine_tool_type_ids" options="{'no_create': True}"
widget="many2many_tags"
attrs='{"invisible": [("fixture_material_type","not in",("零点卡盘","零点托盘"))]}'/>
<field name="clamping_diameter" string="装夹直径(mm)"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘','零点托盘'])]}"/>
<field name="clamping_num" placeholder="请选择" string="装夹单元数"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘','零点托盘'])]}"/>
<field name="repeated_positioning_accuracy" placeholder="请输入重复定位孔精度" string=""
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘','零点托盘'])]}"/>
<field name="orientation_dish_diameter"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘'])]}"/>
<field name="boolean_transposing_hole"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘'])]}"/>
<field name="connector_diameter" placeholder="请选择"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点托盘'])]}"/>
<field name="way_to_install" placeholder="请选择"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点托盘'])]}"/>
<field name="type_of_drive" placeholder="请选择"
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点托盘'])]}"/>
<field name="unlocking_method" placeholder="请选择"/>
<field name="boolean_chip_blowing_function"/>
<field name="machine_tool_type_id" placeholder="请选择"/>
</group>
</group>
</page>

View File

@@ -486,28 +486,6 @@ class ResProductMo(models.Model):
string='适用刀柄型号'
)
# 夹具参数
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料")
fixture_model_id = fields.Many2one('sf.fixture.model', string="夹具型号")
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name')
fixture_multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
fixture_clamping_way = fields.Char(string="装夹方式")
fixture_port_type = fields.Char(string="接口类型")
fixture_model_file = fields.Binary(string="3D模型图")
fixture_clamp_workpiece_length_max = fields.Integer(string="夹持工件长度max(mm)")
fixture_clamp_workpiece_width_max = fields.Integer(string="夹持工件宽度max(mm)")
fixture_clamp_workpiece_height_max = fields.Integer(string="夹持工件高度max(mm)")
fixture_clamp_workpiece_diameter_max = fields.Float(string="夹持工件直径max(mm)", digits=(16, 6))
fixture_maximum_carrying_weight = fields.Float(string="最大承载重量(kg)", digits=(16, 4))
fixture_maximum_clamping_force = fields.Integer(string="最大夹持力(n)")
fixture_driving_way = fields.Char(string="驱动方式")
fixture_apply_machine_tool_type_ids = fields.Many2many('sf.machine_tool.type', 'rel_product_machine_tool_type',
string="适用机床型号")
fixture_through_hole_size = fields.Integer(string="过孔大小(mm)")
fixture_screw_size = fields.Integer(string="螺牙大小(mm)")
# 注册状态
register_state = fields.Selection([('未注册', '未注册'), ('已注册', '已注册'), ('注册失败', '注册失败')],
string='注册状态', default='未注册')
@@ -826,6 +804,80 @@ class ResProductMo(models.Model):
return base64_data
class ResProductFixture(models.Model):
_inherit = 'product.template'
_description = '夹具产品信息'
fixture_model_id = fields.Many2one('sf.fixture.model', '夹具型号')
specification_fixture_id = fields.Many2one('sf.fixture.materials.basic.parameters', '夹具规格')
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", required=True)
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name')
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型", required=True)
model_file = fields.Binary(string="3D模型图")
# 夹具物料基本参数
# length = fields.Float('长度(mm)', digits=(16, 2))
# width = fields.Float('宽度(mm)', digits=(16, 2))
# height = fields.Float('高度(mm)', digits=(16, 2))
diameter = fields.Float('直径(mm)', digits=(16, 2))
# '零点卡盘' 字段
weight = fields.Float('重量(mm)', digits=(16, 2))
orientation_dish_diameter = fields.Float('定位盘直径(mm)', digits=(16, 2))
clamping_diameter = fields.Float('装夹直径(mm)', digits=(16, 2))
clamping_num = fields.Selection([('1', '1'), ('2', '2'), ('4', '4'), ('6', '6'), ('8', '8')], string='装夹单元数')
chucking_power_max = fields.Float('最大夹持力(KN)', digits=(16, 2))
repeated_positioning_accuracy = fields.Char('重复定位精度(mm)', size=20)
boolean_transposing_hole = fields.Boolean('是否有转位孔')
unlocking_method = fields.Selection(
[('手动', '手动'), ('气动', '气动'), ('液压', '液压'), ('电动', '电动'), ('其他', '其他')], string='解锁方式')
boolean_chip_blowing_function = fields.Boolean('是否有吹屑功能')
carrying_capacity_max = fields.Float('最大承载重量(kg)', digits=(16, 2))
rigidity = fields.Integer('硬度HRC')
materials_model_id = fields.Many2one('sf.materials.model', '夹具材质')
machine_tool_type_id = fields.Many2one('sf.machine_tool.type', '适用机床型号')
# ’零点托盘‘ 字段
connector_diameter = fields.Selection([('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('8', '8')],
string='连接头直径(mm)')
way_to_install = fields.Selection(
[('接口式', '接口式'), ('螺栓固定', '螺栓固定'), ('磁吸式', '磁吸式'), ('其他', '其他')], string='安装方式')
type_of_drive = fields.Selection(
[('气动式', '气动式'), ('液压式', '液压式'), ('机械式', '机械式'), ('电动式', '电动式'), ('其他', '其他')],
string='驱动方式')
# ’气动夹具‘ 字段
gripper_length_min = fields.Float('夹持工件最小长度(mm)', digits=(16, 2))
gripper_width_min = fields.Float('夹持工件最小宽度(mm)', digits=(16, 2))
gripper_height_min = fields.Float('夹持工件最小高度(mm)', digits=(16, 2))
gripper_diameter_min = fields.Float('夹持工件最小直径(mm)', digits=(16, 2))
gripper_length_max = fields.Float('夹持工件最大长度(mm)', digits=(16, 2))
gripper_width_max = fields.Float('夹持工件最大宽度(mm)', digits=(16, 2))
gripper_height_max = fields.Float('夹持工件最大高度(mm)', digits=(16, 2))
gripper_diameter_max = fields.Float('夹持工件最大直径(mm)', digits=(16, 2))
rated_air_pressure = fields.Float('额定气压(Mpa)', digits=(16, 2))
interface_materials_model_id = fields.Many2one('sf.materials.model', '接口类型')
# ‘虎钳夹具' 字段
transverse_groove = fields.Float('横向配合槽n(mm)', digits=(16, 2))
longitudinal_fitting_groove = fields.Float('纵向配合槽l(mm)', digits=(16, 2))
# '磁吸夹具' 字段
height_tolerance_value = fields.Char('高度公差(mm)')
rated_adsorption_force = fields.Float('额定吸附力(N/cm²)', digits=(16, 2))
magnetic_field_height = fields.Float('磁场高度(mm)', digits=(16, 2))
magnetic_pole_plate_grinding_allowance = fields.Float('磁极板磨削余量(mm)', digits=(16, 2))
# '转接板(锁板)夹具' 字段
screw_size = fields.Float('螺牙大小(mm)', digits=(16, 2))
via_hole_diameter = fields.Float('过孔直径(mm)', digits=(16, 2))
# '三爪卡盘' 字段
mounting_hole_depth = fields.Float('安装孔深度(mm)', digits=(16, 2))
centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2))
class SfMaintenanceEquipmentAndProductTemplate(models.Model):
_inherit = 'maintenance.equipment'
_description = '设备'

View File

@@ -649,24 +649,24 @@ class MachineToolType(models.Model):
'machine_tool_picture': image,
"heightened_way": item['heightened_way'],
"workpiece_load": item['workpiece_load'],
#"lead_screw": item['lead_screw'],
# "lead_screw": item['lead_screw'],
"workbench_L": item['workbench_L'],
"workbench_W": item['workbench_W'],
#"guide_rail": item['guide_rail'],
# "guide_rail": item['guide_rail'],
"machine_tool_L": item['machine_tool_L'],
"machine_tool_W": item['machine_tool_W'],
"machine_tool_H": item['machine_tool_H'],
#"feed_speed": item['feed_speed'],
#"tool_speed": item['tool_speed'],
# "feed_speed": item['feed_speed'],
# "tool_speed": item['tool_speed'],
"distance_min": item['distance_min'],
"distance_max": item['distance_max'],
#"taper": item['taper'],
#"torque": item['torque'],
#"motor_power": item['motor_power'],
# "taper": item['taper'],
# "torque": item['torque'],
# "motor_power": item['motor_power'],
"tool_quality_max": item['tool_quality_max'],
"tool_long_max": item['tool_long_max'],
#"tool_diameter_max": item['tool_diameter_max'],
#"tool_diameter_min": item['tool_diameter_min'],
# "tool_diameter_max": item['tool_diameter_max'],
# "tool_diameter_min": item['tool_diameter_min'],
"machine_tool_category": category.id,
'taper_type_id': taper_type_id.id,
"function_type": item['function_type'],
@@ -731,24 +731,24 @@ class MachineToolType(models.Model):
'machine_tool_picture': image,
"heightened_way": item['heightened_way'],
"workpiece_load": item['workpiece_load'],
#"lead_screw": item['lead_screw'],
# "lead_screw": item['lead_screw'],
"workbench_L": item['workbench_L'],
"workbench_W": item['workbench_W'],
#"guide_rail": item['guide_rail'],
# "guide_rail": item['guide_rail'],
"machine_tool_L": item['machine_tool_L'],
"machine_tool_W": item['machine_tool_W'],
"machine_tool_H": item['machine_tool_H'],
#"feed_speed": item['feed_speed'],
#"tool_speed": item['tool_speed'],
# "feed_speed": item['feed_speed'],
# "tool_speed": item['tool_speed'],
"distance_min": item['distance_min'],
"distance_max": item['distance_max'],
#"taper": item['taper'],
#"torque": item['torque'],
#"motor_power": item['motor_power'],
# "taper": item['taper'],
# "torque": item['torque'],
# "motor_power": item['motor_power'],
"tool_quality_max": item['tool_quality_max'],
"tool_long_max": item['tool_long_max'],
#"tool_diameter_max": item['tool_diameter_max'],
#"tool_diameter_min": item['tool_diameter_min'],
# "tool_diameter_max": item['tool_diameter_max'],
# "tool_diameter_min": item['tool_diameter_min'],
"machine_tool_category": category.id,
'taper_type_id': taper_type_id.id,
"function_type": item['function_type'],
@@ -844,24 +844,24 @@ class MachineToolType(models.Model):
'machine_tool_picture': image,
"heightened_way": item['heightened_way'],
"workpiece_load": item['workpiece_load'],
#"lead_screw": item['lead_screw'],
# "lead_screw": item['lead_screw'],
"workbench_L": item['workbench_L'],
"workbench_W": item['workbench_W'],
#"guide_rail": item['guide_rail'],
# "guide_rail": item['guide_rail'],
"machine_tool_L": item['machine_tool_L'],
"machine_tool_W": item['machine_tool_W'],
"machine_tool_H": item['machine_tool_H'],
#"feed_speed": item['feed_speed'],
#"tool_speed": item['tool_speed'],
# "feed_speed": item['feed_speed'],
# "tool_speed": item['tool_speed'],
"distance_min": item['distance_min'],
"distance_max": item['distance_max'],
#"taper": item['taper'],
#"torque": item['torque'],
#"motor_power": item['motor_power'],
# "taper": item['taper'],
# "torque": item['torque'],
# "motor_power": item['motor_power'],
"tool_quality_max": item['tool_quality_max'],
"tool_long_max": item['tool_long_max'],
#"tool_diameter_max": item['tool_diameter_max'],
#"tool_diameter_min": item['tool_diameter_min'],
# "tool_diameter_max": item['tool_diameter_max'],
# "tool_diameter_min": item['tool_diameter_min'],
"machine_tool_category": category.id,
'taper_type_id': taper_type_id.id,
"function_type": item['function_type'],
@@ -903,7 +903,6 @@ class MachineToolType(models.Model):
"jg_image_id": jg_image_id.ids,
"lq_image_id": lq_image_id.ids,
})
else:
machine_tool_type.update({
@@ -927,24 +926,24 @@ class MachineToolType(models.Model):
'machine_tool_picture': image,
"heightened_way": item['heightened_way'],
"workpiece_load": item['workpiece_load'],
#"lead_screw": item['lead_screw'],
# "lead_screw": item['lead_screw'],
"workbench_L": item['workbench_L'],
"workbench_W": item['workbench_W'],
#"guide_rail": item['guide_rail'],
# "guide_rail": item['guide_rail'],
"machine_tool_L": item['machine_tool_L'],
"machine_tool_W": item['machine_tool_W'],
"machine_tool_H": item['machine_tool_H'],
#"feed_speed": item['feed_speed'],
#"tool_speed": item['tool_speed'],
# "feed_speed": item['feed_speed'],
# "tool_speed": item['tool_speed'],
"distance_min": item['distance_min'],
"distance_max": item['distance_max'],
#"taper": item['taper'],
#"torque": item['torque'],
#"motor_power": item['motor_power'],
# "taper": item['taper'],
# "torque": item['torque'],
# "motor_power": item['motor_power'],
"tool_quality_max": item['tool_quality_max'],
"tool_long_max": item['tool_long_max'],
#"tool_diameter_max": item['tool_diameter_max'],
#"tool_diameter_min": item['tool_diameter_min'],
# "tool_diameter_max": item['tool_diameter_max'],
# "tool_diameter_min": item['tool_diameter_min'],
"machine_tool_category": category.id,
'taper_type_id': taper_type_id.id,
"function_type": item['function_type'],
@@ -1459,6 +1458,39 @@ class SyncFixtureModel(models.Model):
for item in result['fixture_model_yesterday_list']:
if item:
fixture_model = self.search([("code", '=', item['code'])])
zero_chuck_list = []
for zero_chuck_id in item['zero_chuck_ids']:
zero_chuck_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_zero_chuck_param(zero_chuck_id))
zero_tray_list = []
for zero_tray_id in item['zero_tray_ids']:
zero_tray_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_zero_tray_param(zero_tray_id))
pneumatic_fixture_list = []
for pneumatic_fixture_id in item['pneumatic_fixture_ids']:
pneumatic_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_pneumatic_fixture_param(
pneumatic_fixture_id))
jaw_vice_fixture_list = []
for jaw_vice_fixture_id in item['jaw_vice_fixture_ids']:
jaw_vice_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_jaw_vice_fixture_param(
jaw_vice_fixture_id))
magnet_fixture_list = []
for magnet_fixture_id in item['magnet_fixture_ids']:
magnet_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_magnet_fixture_param(
magnet_fixture_id))
adapter_board_fixture_list = []
for adapter_board_fixture_id in item['adapter_board_fixture_ids']:
adapter_board_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_adapter_board_fixture_param(
adapter_board_fixture_id))
scroll_chuck_list = []
for scroll_chuck_id in item['scroll_chuck_ids']:
scroll_chuck_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_scroll_chuck_param(
scroll_chuck_id))
if not fixture_model:
self.create({
"name": item['name'],
@@ -1468,56 +1500,35 @@ class SyncFixtureModel(models.Model):
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
[('code', '=', item['multi_mounting_type_code'])]).id,
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
"clamping_way": item['clamping_way'],
"port_type": item['port_type'],
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
"length": item['length'],
"width": item['width'],
"height": item['height'],
"weight": item['weight'],
"clamp_workpiece_length_max": item['clamp_workpiece_length_max'],
"clamp_workpiece_width_max": item['clamp_workpiece_width_max'],
"clamp_workpiece_height_max": item['clamp_workpiece_height_max'],
"clamp_workpiece_diameter_max": item['clamp_workpiece_diameter_max'],
"maximum_carrying_weight": item['maximum_carrying_weight'],
"maximum_clamping_force": item['maximum_clamping_force'],
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids(
item['apply_machine_tool_type_code']),
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
"zero_chuck_ids": zero_chuck_list,
"zero_tray_ids": zero_tray_list,
"pneumatic_fixture_ids": pneumatic_fixture_list,
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
"magnet_fixture_ids": magnet_fixture_list,
"adapter_board_fixture_ids": adapter_board_fixture_list,
"scroll_chuck_ids": scroll_chuck_list,
"status": item['status'],
"active": item['active'],
})
else:
fixture_model.write({
"name": item['name'],
"code": item['code'],
"fixture_material_id": self.env['sf.fixture.material'].search(
[('code', '=', item['fixture_material_code'])]).id,
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
[('code', '=', item['multi_mounting_type_code'])]).id,
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
"clamping_way": item['clamping_way'],
"port_type": item['port_type'],
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
"length": item['length'],
"width": item['width'],
"height": item['height'],
"weight": item['weight'],
"clamp_workpiece_length_max": item['clamp_workpiece_length_max'],
"clamp_workpiece_width_max": item['clamp_workpiece_width_max'],
"clamp_workpiece_height_max": item['clamp_workpiece_height_max'],
"clamp_workpiece_diameter_max": item['clamp_workpiece_diameter_max'],
"maximum_carrying_weight": item['maximum_carrying_weight'],
"maximum_clamping_force": item['maximum_clamping_force'],
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids(
item['apply_machine_tool_type_code']),
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
"zero_chuck_ids": zero_chuck_list,
"zero_tray_ids": zero_tray_list,
"pneumatic_fixture_ids": pneumatic_fixture_list,
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
"magnet_fixture_ids": magnet_fixture_list,
"adapter_board_fixture_ids": adapter_board_fixture_list,
"scroll_chuck_ids": scroll_chuck_list,
"status": item['status'],
"active": item['active'],
})
else:
@@ -1537,6 +1548,39 @@ class SyncFixtureModel(models.Model):
for item in result['fixture_model_all_list']:
if item:
fixture_model = self.search([("code", '=', item['code'])])
zero_chuck_list = []
for zero_chuck_id in item['zero_chuck_ids']:
zero_chuck_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_zero_chuck_param(zero_chuck_id))
zero_tray_list = []
for zero_tray_id in item['zero_tray_ids']:
zero_tray_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_zero_tray_param(zero_tray_id))
pneumatic_fixture_list = []
for pneumatic_fixture_id in item['pneumatic_fixture_ids']:
pneumatic_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_pneumatic_fixture_param(
pneumatic_fixture_id))
jaw_vice_fixture_list = []
for jaw_vice_fixture_id in item['jaw_vice_fixture_ids']:
jaw_vice_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_jaw_vice_fixture_param(
jaw_vice_fixture_id))
magnet_fixture_list = []
for magnet_fixture_id in item['magnet_fixture_ids']:
magnet_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_magnet_fixture_param(
magnet_fixture_id))
adapter_board_fixture_list = []
for adapter_board_fixture_id in item['adapter_board_fixture_ids']:
adapter_board_fixture_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_adapter_board_fixture_param(
adapter_board_fixture_id))
scroll_chuck_list = []
for scroll_chuck_id in item['scroll_chuck_ids']:
scroll_chuck_list.append(
self.env['sf.fixture.materials.basic.parameters']._json_scroll_chuck_param(
scroll_chuck_id))
if not fixture_model:
self.create({
"name": item['name'],
@@ -1546,56 +1590,35 @@ class SyncFixtureModel(models.Model):
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
[('code', '=', item['multi_mounting_type_code'])]).id,
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
"clamping_way": item['clamping_way'],
"port_type": item['port_type'],
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
"length": item['length'],
"width": item['width'],
"height": item['height'],
"weight": item['weight'],
"clamp_workpiece_length_max": item['clamp_workpiece_length_max'],
"clamp_workpiece_width_max": item['clamp_workpiece_width_max'],
"clamp_workpiece_height_max": item['clamp_workpiece_height_max'],
"clamp_workpiece_diameter_max": item['clamp_workpiece_diameter_max'],
"maximum_carrying_weight": item['maximum_carrying_weight'],
"maximum_clamping_force": item['maximum_clamping_force'],
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids(
item['apply_machine_tool_type_code']),
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
"zero_chuck_ids": zero_chuck_list,
"zero_tray_ids": zero_tray_list,
"pneumatic_fixture_ids": pneumatic_fixture_list,
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
"magnet_fixture_ids": magnet_fixture_list,
"adapter_board_fixture_ids": adapter_board_fixture_list,
"scroll_chuck_ids": scroll_chuck_list,
"status": item['status'],
"active": item['active'],
})
else:
fixture_model.write({
"name": item['name'],
"code": item['code'],
"fixture_material_id": self.env['sf.fixture.material'].search(
[('code', '=', item['fixture_material_code'])]).id,
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
[('code', '=', item['multi_mounting_type_code'])]).id,
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
"clamping_way": item['clamping_way'],
"port_type": item['port_type'],
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
"length": item['length'],
"width": item['width'],
"height": item['height'],
"weight": item['weight'],
"clamp_workpiece_length_max": item['clamp_workpiece_length_max'],
"clamp_workpiece_width_max": item['clamp_workpiece_width_max'],
"clamp_workpiece_height_max": item['clamp_workpiece_height_max'],
"clamp_workpiece_diameter_max": item['clamp_workpiece_diameter_max'],
"maximum_carrying_weight": item['maximum_carrying_weight'],
"maximum_clamping_force": item['maximum_clamping_force'],
"materials_model_id": self.env['sf.materials.model'].search(
[('materials_no', '=', item['materials_model_code'])]).id,
"driving_way": item['driving_way'],
"apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids(
item['apply_machine_tool_type_code']),
"through_hole_size": item['through_hole_size'],
"screw_size": item['screw_size'],
"zero_chuck_ids": zero_chuck_list,
"zero_tray_ids": zero_tray_list,
"pneumatic_fixture_ids": pneumatic_fixture_list,
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
"magnet_fixture_ids": magnet_fixture_list,
"adapter_board_fixture_ids": adapter_board_fixture_list,
"scroll_chuck_ids": scroll_chuck_list,
"status": item['status'],
"active": item['active'],
})
else: