From 57f5d138e8cdb45f55438720fb63f6f99b6afdb2 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Thu, 4 Jan 2024 17:44:22 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E5=A4=B9=E8=A3=85?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=95=B0=E4=BF=AE=E6=94=B9=E6=88=90=E8=A3=85?= =?UTF-8?q?=E5=A4=B9=E5=8D=95=E5=85=83=E6=95=B0=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BA=A7=E5=93=81=E7=9A=84=E5=A4=B9=E5=85=B7?= =?UTF-8?q?=E7=89=A9=E6=96=99=E4=BF=A1=E6=81=AF(=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=B8=AD)=EF=BC=9B3=E3=80=81=E5=AE=8C=E5=96=84=E5=A4=B9?= =?UTF-8?q?=E5=85=B7=E7=89=A9=E6=96=99=E7=9A=84=E5=90=8C=E6=AD=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/basic_parameters_fixture.py | 2 +- sf_base/models/fixture.py | 1 + .../product_template_management_view.xml | 104 ++++---- sf_manufacturing/models/product_template.py | 96 +++++-- sf_mrs_connect/models/sync_common.py | 249 ++++++++++-------- 5 files changed, 258 insertions(+), 194 deletions(-) diff --git a/sf_base/models/basic_parameters_fixture.py b/sf_base/models/basic_parameters_fixture.py index ad696831..a1b1a9a6 100644 --- a/sf_base/models/basic_parameters_fixture.py +++ b/sf_base/models/basic_parameters_fixture.py @@ -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('是否有转位孔') diff --git a/sf_base/models/fixture.py b/sf_base/models/fixture.py index d6455550..c1591745 100644 --- a/sf_base/models/fixture.py +++ b/sf_base/models/fixture.py @@ -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', diff --git a/sf_dlm_management/views/product_template_management_view.xml b/sf_dlm_management/views/product_template_management_view.xml index 737d56db..a072fc28 100644 --- a/sf_dlm_management/views/product_template_management_view.xml +++ b/sf_dlm_management/views/product_template_management_view.xml @@ -41,6 +41,10 @@ + + {'readonly': [('categ_id', '!=', False)]} @@ -89,8 +93,7 @@ - - + product.template.only.form.inherit.sf product.template @@ -101,7 +104,15 @@ - + + + + + product.template.only.form.inherit.sf + product.template + + + @@ -483,64 +494,41 @@ - + - - - - - - - - - - + + + + + + + + + + + diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 285d43f0..d5d5a9ed 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -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 = '设备' diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index fe7bd12e..bb4b631f 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -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: