diff --git a/sf_base/models/basic_parameters_fixture.py b/sf_base/models/basic_parameters_fixture.py index 57d55bde..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('是否有转位孔') @@ -65,4 +65,177 @@ class BasicParametersFixture(models.Model): # '三爪卡盘' 字段 mounting_hole_depth = fields.Float('安装孔深度(mm)', digits=(16, 2)) - centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2)) \ No newline at end of file + centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2)) + + def _json_zero_chuck_param(self, obj): + zero_chuck_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'diameter': obj['diameter'], + 'weight': obj['weight'], + 'orientation_dish_diameter': obj['orientation_dish_diameter'], + 'clamping_diameter': obj['clamping_diameter'], + 'clamping_num': obj['clamping_num'], + 'chucking_power_max': obj['chucking_power_max'], + 'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'], + 'boolean_transposing_hole': obj['boolean_transposing_hole'], + 'unlocking_method': obj['unlocking_method'], + 'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'rigidity': obj['rigidity'], + 'materials_model_id': obj['materials_model_id'], + 'machine_tool_type_id': obj['machine_tool_type_id'], + }) + return zero_chuck_param_str + + def _json_zero_tray_param(self, obj): + zero_tray_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'diameter': obj['diameter'], + 'weight': obj['weight'], + 'clamping_diameter': obj['clamping_diameter'], + 'connector_diameter': obj['connector_diameter'], + 'chucking_power_max': obj['chucking_power_max'], + 'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'], + 'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'], + 'way_to_install': obj['way_to_install'], + 'type_of_drive': obj['type_of_drive'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'materials_model_id': obj['materials_model_id'], + 'rigidity': obj['rigidity'], + }) + return zero_tray_param_str + + def _json_pneumatic_fixture_param(self, obj): + pneumatic_fixture_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'weight': obj['weight'], + 'gripper_length_min': obj['gripper_length_min'], + 'gripper_width_min': obj['gripper_width_min'], + 'gripper_height_min': obj['gripper_height_min'], + 'gripper_diameter_min': obj['gripper_diameter_min'], + 'gripper_length_max': obj['gripper_length_max'], + 'gripper_width_max': obj['gripper_width_max'], + 'gripper_height_max': obj['gripper_height_max'], + 'gripper_diameter_max': obj['gripper_diameter_max'], + 'chucking_power_max': obj['chucking_power_max'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'rated_air_pressure': obj['rated_air_pressure'], + 'materials_model_id': obj['materials_model_id'], + 'rigidity': obj['rigidity'], + 'interface_materials_model_id': obj['interface_materials_model_id'], + 'type_of_drive': obj['type_of_drive'], + }) + return pneumatic_fixture_param_str + + def _json_jaw_vice_fixture_param(self, obj): + jaw_vice_fixture_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'weight': obj['weight'], + 'gripper_length_min': obj['gripper_length_min'], + 'gripper_width_min': obj['gripper_width_min'], + 'gripper_height_min': obj['gripper_height_min'], + 'gripper_diameter_min': obj['gripper_diameter_min'], + 'gripper_length_max': obj['gripper_length_max'], + 'gripper_width_max': obj['gripper_width_max'], + 'gripper_height_max': obj['gripper_height_max'], + 'gripper_diameter_max': obj['gripper_diameter_max'], + 'chucking_power_max': obj['chucking_power_max'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'transverse_groove': obj['transverse_groove'], + 'longitudinal_fitting_groove': obj['longitudinal_fitting_groove'], + 'materials_model_id': obj['materials_model_id'], + 'rigidity': obj['rigidity'], + 'interface_materials_model_id': obj['interface_materials_model_id'], + 'type_of_drive': obj['type_of_drive'], + }) + return jaw_vice_fixture_param_str + + def _json_magnet_fixture_param(self, obj): + magnet_fixture_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'height_tolerance_value': obj['height_tolerance_value'], + 'weight': obj['weight'], + 'gripper_length_min': obj['gripper_length_min'], + 'gripper_width_min': obj['gripper_width_min'], + 'gripper_height_min': obj['gripper_height_min'], + 'gripper_diameter_min': obj['gripper_diameter_min'], + 'gripper_length_max': obj['gripper_length_max'], + 'gripper_width_max': obj['gripper_width_max'], + 'gripper_height_max': obj['gripper_height_max'], + 'gripper_diameter_max': obj['gripper_diameter_max'], + 'rated_adsorption_force': obj['rated_adsorption_force'], + 'magnetic_field_height': obj['magnetic_field_height'], + 'magnetic_pole_plate_grinding_allowance': obj['magnetic_pole_plate_grinding_allowance'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'materials_model_id': obj['materials_model_id'], + 'rigidity': obj['rigidity'], + 'interface_materials_model_id': obj['interface_materials_model_id'], + 'type_of_drive': obj['type_of_drive'], + }) + return magnet_fixture_param_str + + def _json_adapter_board_fixture_param(self, obj): + adapter_board_fixture_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'weight': obj['weight'], + 'gripper_length_min': obj['gripper_length_min'], + 'gripper_width_min': obj['gripper_width_min'], + 'gripper_height_min': obj['gripper_height_min'], + 'gripper_diameter_min': obj['gripper_diameter_min'], + 'gripper_length_max': obj['gripper_length_max'], + 'gripper_width_max': obj['gripper_width_max'], + 'gripper_height_max': obj['gripper_height_max'], + 'gripper_diameter_max': obj['gripper_diameter_max'], + 'chucking_power_max': obj['chucking_power_max'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'materials_model_id': obj['materials_model_id'], + 'rigidity': obj['rigidity'], + 'screw_size': obj['screw_size'], + 'via_hole_diameter': obj['via_hole_diameter'], + 'type_of_drive': obj['type_of_drive'], + }) + return adapter_board_fixture_param_str + + def _json_scroll_chuck_param(self, obj): + scroll_chuck_param_str = (0, '', { + 'name': obj['name'], + 'length': obj['length'], + 'width': obj['width'], + 'height': obj['height'], + 'diameter': obj['diameter'], + 'weight': obj['weight'], + 'gripper_length_min': obj['gripper_length_min'], + 'gripper_width_min': obj['gripper_width_min'], + 'gripper_height_min': obj['gripper_height_min'], + 'gripper_diameter_min': obj['gripper_diameter_min'], + 'gripper_length_max': obj['gripper_length_max'], + 'gripper_width_max': obj['gripper_width_max'], + 'gripper_height_max': obj['gripper_height_max'], + 'gripper_diameter_max': obj['gripper_diameter_max'], + 'chucking_power_max': obj['chucking_power_max'], + 'carrying_capacity_max': obj['carrying_capacity_max'], + 'materials_model_id': obj['materials_model_id'], + 'rigidity': obj['rigidity'], + 'mounting_hole_depth': obj['mounting_hole_depth'], + 'centering_diameter': obj['centering_diameter'], + 'type_of_drive': obj['type_of_drive'], + }) + return scroll_chuck_param_str 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 b1bd8751..9628e1c2 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 + + + @@ -485,64 +496,106 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 285d43f0..333da9aa 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,124 @@ 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)) + + @api.onchange('specification_fixture_id') + def _onchange_specification_fixture_id(self): + if self.specification_fixture_id: + self.length = self.specification_fixture_id.length + self.width = self.specification_fixture_id.width + self.height = self.specification_fixture_id.height + self.weight = self.specification_fixture_id.weight + self.diameter = self.specification_fixture_id.diameter + self.orientation_dish_diameter = self.specification_fixture_id.orientation_dish_diameter + self.clamping_diameter = self.specification_fixture_id.clamping_diameter + self.clamping_num = self.specification_fixture_id.clamping_num + self.chucking_power_max = self.specification_fixture_id.chucking_power_max + self.repeated_positioning_accuracy = self.specification_fixture_id.repeated_positioning_accuracy + self.boolean_transposing_hole = self.specification_fixture_id.boolean_transposing_hole + self.unlocking_method = self.specification_fixture_id.unlocking_method + self.boolean_chip_blowing_function = self.specification_fixture_id.boolean_chip_blowing_function + self.carrying_capacity_max = self.specification_fixture_id.carrying_capacity_max + self.rigidity = self.specification_fixture_id.rigidity + self.materials_model_id = self.specification_fixture_id.materials_model_id + self.machine_tool_type_id = self.specification_fixture_id.machine_tool_type_id + self.connector_diameter = self.specification_fixture_id.connector_diameter + self.way_to_install = self.specification_fixture_id.way_to_install + self.type_of_drive = self.specification_fixture_id.type_of_drive + self.gripper_length_min = self.specification_fixture_id.gripper_length_min + self.gripper_width_min = self.specification_fixture_id.gripper_width_min + self.gripper_height_min = self.specification_fixture_id.gripper_height_min + self.gripper_diameter_min = self.specification_fixture_id.gripper_diameter_min + self.gripper_length_max = self.specification_fixture_id.gripper_length_max + self.gripper_width_max = self.specification_fixture_id.gripper_width_max + self.gripper_height_max = self.specification_fixture_id.gripper_height_max + self.gripper_diameter_max = self.specification_fixture_id.gripper_diameter_max + self.rated_air_pressure = self.specification_fixture_id.rated_air_pressure + self.interface_materials_model_id = self.specification_fixture_id.interface_materials_model_id + self.transverse_groove = self.specification_fixture_id.transverse_groove + self.longitudinal_fitting_groove = self.specification_fixture_id.longitudinal_fitting_groove + self.height_tolerance_value = self.specification_fixture_id.height_tolerance_value + self.rated_adsorption_force = self.specification_fixture_id.rated_adsorption_force + self.magnetic_field_height = self.specification_fixture_id.magnetic_field_height + self.magnetic_pole_plate_grinding_allowance = self.specification_fixture_id.magnetic_pole_plate_grinding_allowance + self.screw_size = self.specification_fixture_id.screw_size + self.via_hole_diameter = self.specification_fixture_id.via_hole_diameter + self.mounting_hole_depth = self.specification_fixture_id.mounting_hole_depth + self.centering_diameter = self.specification_fixture_id.centering_diameter + + 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: diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 9f5721a5..80ac3811 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -791,7 +791,7 @@ class FunctionalToolAssembly(models.Model): L_D_number = fields.Float(string='L/D值(mm)', readonly=True) hiding_length = fields.Float(string='避空长(mm)', readonly=True) - functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False) + # functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False) tool_loading_person = fields.Char(string='装刀人', readonly=True) tool_loading_time = fields.Datetime(string='装刀时间', readonly=True) remark = fields.Char(string='备注说明', readonly=True) diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml index 42bb103b..62c0f0eb 100644 --- a/sf_tool_management/views/tool_base_views.xml +++ b/sf_tool_management/views/tool_base_views.xml @@ -878,7 +878,7 @@ - + @@ -937,7 +936,6 @@ 'default_new_former':new_former, 'default_use_tool_time':use_tool_time, 'default_reason_for_applying':reason_for_applying, - 'default_functional_tool_cutting_type':functional_tool_cutting_type, }" attrs="{'invisible': [('assemble_status', '!=', '0')]}" class="btn-primary"/> @@ -1116,7 +1114,7 @@ - + diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index f98da62e..a8b10fd1 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -330,7 +330,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel): L_D_number = fields.Float(string='L/D值(mm)', compute='_compute_l_d_number') hiding_length = fields.Float(string='避空长(mm)') - functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False) + # functional_tool_cutting_type = fields.Char(string='功能刀具切削类型', readonly=False) @api.onchange('integral_code_id') def _onchange_after_assembly_functional_tool_diameter(self): diff --git a/sf_tool_management/wizard/wizard_view.xml b/sf_tool_management/wizard/wizard_view.xml index 7b3d2ab5..7586a513 100644 --- a/sf_tool_management/wizard/wizard_view.xml +++ b/sf_tool_management/wizard/wizard_view.xml @@ -190,7 +190,7 @@ - +