夹具型号相关数据表的优化

This commit is contained in:
陈赓
2025-07-18 16:54:01 +08:00
parent e0c1e27344
commit 14f1e4f04a
6 changed files with 173 additions and 2 deletions

View File

@@ -87,6 +87,31 @@ class BasicParametersFixture(models.Model):
magnet_flatness = fields.Char('磁吸托盘平面精度(mm)', size=20)
magnet_max_load = fields.Float('磁吸托盘最大负载(kg)', digits=(16, 2))
# --- 定位隔板字段 ---
partition_length_outer = fields.Float('外框长度(mm)', digits=(16, 2))
partition_width_outer = fields.Float('外框宽度(mm)', digits=(16, 2))
partition_length_inner = fields.Float('内框长度(mm)', digits=(16, 2))
partition_width_inner = fields.Float('内框宽度(mm)', digits=(16, 2))
partition_left_margin = fields.Float('左边距(mm)', digits=(16, 2))
partition_bottom_margin = fields.Float('下边距(mm)', digits=(16, 2))
partition_unit_length = fields.Float('定位单元长度(mm)', digits=(16, 2))
partition_unit_width = fields.Float('定位单元宽度(mm)', digits=(16, 2))
partition_unit_row_spacing = fields.Float('单元行间距(mm)', digits=(16, 2))
partition_unit_col_spacing = fields.Float('单元列间距(mm)', digits=(16, 2))
partition_unit_rows = fields.Integer('单元行数')
partition_unit_cols = fields.Integer('单元列数')
partition_base_unit_row_spacing = fields.Float('基准单元行间距(mm)', digits=(16, 2))
partition_base_unit_col_spacing = fields.Float('基准单元列间距(mm)', digits=(16, 2))
partition_offset_x = fields.Float('X方向偏移(mm)', digits=(16, 2))
partition_offset_y = fields.Float('Y方向偏移(mm)', digits=(16, 2))
partition_materials_model_id = fields.Many2one('sf.materials.model', '定位隔板材质')
partition_joint_type = fields.Selection([
('bolt', '螺栓连接'),
('magnet', '磁吸连接'),
('snap', '卡扣连接'),
], string='连接方式')
partition_partner_id = fields.Many2one('res.partner', string='供应商/客户')
# ‘气吸托盘’ 字段
air_tray_length = fields.Float('气吸托盘长度(mm)', digits=(16, 2))
air_tray_width = fields.Float('气吸托盘宽度(mm)', digits=(16, 2))
@@ -133,6 +158,8 @@ class BasicParametersFixture(models.Model):
return self._json_scroll_chuck_param(fixture_materials_data)
elif fixture_materials_name == '磁吸托盘':
return self._json_magnet_tray_param(fixture_materials_data)
elif fixture_materials_name == '定位隔板':
return self._json_positioning_partition_param(fixture_materials_data)
elif fixture_materials_name == '气吸托盘':
return self._json_air_tray_param(fixture_materials_data)
return {}
@@ -360,6 +387,39 @@ class BasicParametersFixture(models.Model):
).id if obj.get('materials_model_id') else False,
'active': obj.get('active', True),
}
def _json_positioning_partition_param(self, obj):
"""定位隔板将data数据转换成字段字典"""
return {
'code': obj.get('code'),
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))], limit=1).id,
'name': obj.get('name'),
'partition_length_outer': obj.get('length_outer'),
'partition_width_outer': obj.get('width_outer'),
'partition_length_inner': obj.get('length_inner'),
'partition_width_inner': obj.get('width_inner'),
'partition_left_margin': obj.get('left_margin'),
'partition_bottom_margin': obj.get('bottom_margin'),
'partition_unit_length': obj.get('unit_length'),
'partition_unit_width': obj.get('unit_width'),
'partition_unit_row_spacing': obj.get('unit_row_spacing'),
'partition_unit_col_spacing': obj.get('unit_col_spacing'),
'partition_unit_rows': obj.get('unit_rows'),
'partition_unit_cols': obj.get('unit_cols'),
'partition_base_unit_row_spacing': obj.get('base_unit_row_spacing'),
'partition_base_unit_col_spacing': obj.get('base_unit_col_spacing'),
'partition_offset_x': obj.get('offset_x'),
'partition_offset_y': obj.get('offset_y'),
'partition_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj.get('materials_model_id')), ('active', '=', True)], limit=1).id
if obj.get('materials_model_id') else False,
'partition_partner_id': self.env['res.partner'].sudo().search(
[('name', '=', obj.get('partner_name'))], limit=1).id
if obj.get('partner_name') else False,
'partition_joint_type': obj.get('joint_type'),
'active': obj.get('active', True),
}
def _json_air_tray_param(self, obj):
"""气吸托盘将data数据转换成list数据"""