Compare commits
1 Commits
develop
...
feature/72
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14f1e4f04a |
@@ -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数据"""
|
||||
|
||||
@@ -49,6 +49,8 @@ class FixtureModel(models.Model):
|
||||
string='磁吸夹具基本参数')
|
||||
magnet_tray_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
|
||||
string='磁吸托盘基本参数')
|
||||
positioning_partition_ids = fields.One2many('sf.fixture.materials.basic.parameters','fixture_model_id',
|
||||
string='定位隔板基本参数')
|
||||
adapter_board_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
|
||||
string='转接板(锁板)夹具基本参数')
|
||||
scroll_chuck_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
|
||||
|
||||
@@ -374,6 +374,34 @@
|
||||
<field name="active" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="positioning_partition_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '定位隔板')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="partition_length_outer"/>
|
||||
<field name="partition_width_outer"/>
|
||||
<field name="partition_length_inner"/>
|
||||
<field name="partition_width_inner"/>
|
||||
<field name="partition_left_margin"/>
|
||||
<field name="partition_bottom_margin"/>
|
||||
<field name="partition_unit_length"/>
|
||||
<field name="partition_unit_width"/>
|
||||
<field name="partition_unit_row_spacing"/>
|
||||
<field name="partition_unit_col_spacing"/>
|
||||
<field name="partition_unit_rows"/>
|
||||
<field name="partition_unit_cols"/>
|
||||
<field name="station_count" readonly="1"/>
|
||||
<field name="partition_base_unit_row_spacing"/>
|
||||
<field name="partition_base_unit_col_spacing"/>
|
||||
<field name="partition_offset_x"/>
|
||||
<field name="partition_offset_y"/>
|
||||
<field name="partition_joint_type"/>
|
||||
<field name="partition_partner_id" options="{'no_create': True}" placeholder="请选择"/>
|
||||
<field name="partition_materials_model_id" options="{'no_create': True}" placeholder="请选择"/>
|
||||
<field name="active" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
<field name="scroll_chuck_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '三爪卡盘')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
|
||||
@@ -658,6 +658,29 @@
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['气吸托盘'])]}"/>
|
||||
<field name="air_way_to_install" string="气吸托盘安装方式"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['气吸托盘'])]}"/>
|
||||
|
||||
<!-- 定位隔板字段 -->
|
||||
<field name="length_outer" string="外框长(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="width_outer" string="外框宽(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="length_inner" string="内框长(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="width_inner" string="内框宽(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="thickness" string="厚度(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="unit_location" string="定位单元位置"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="offset_x" string="X方向偏移(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="offset_y" string="Y方向偏移(mm)"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="materials_model_id_positioning" string="材质"
|
||||
placeholder="请选择" options="{'no_create': True}"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
<field name="station_count" string="定位单元数"
|
||||
attrs="{'readonly': True, 'invisible': [('fixture_material_type', 'not in', ['定位隔板'])]}"/>
|
||||
|
||||
<field name="boolean_chip_blowing_function" string="是否有吹屑功能"
|
||||
attrs="{'invisible': [('fixture_material_type', 'not in', ['零点卡盘','零点托盘','气吸托盘'])]}"/>
|
||||
|
||||
@@ -1235,6 +1235,21 @@ class ResProductFixture(models.Model):
|
||||
magnet_flatness = fields.Char('磁吸托盘平面精度(mm)', size=20)
|
||||
magnet_max_load = fields.Float('磁吸托盘最大负载(kg)', digits=(16, 2))
|
||||
|
||||
# 定位隔板字段
|
||||
length_outer = fields.Float('外框长(mm)', digits=(16, 2))
|
||||
width_outer = fields.Float('外框宽(mm)', digits=(16, 2))
|
||||
length_inner = fields.Float('内框长(mm)', digits=(16, 2))
|
||||
width_inner = fields.Float('内框宽(mm)', digits=(16, 2))
|
||||
thickness = fields.Float('厚度(mm)', digits=(16, 2))
|
||||
|
||||
unit_location = fields.Char('定位单元位置')
|
||||
offset_x = fields.Float('X方向偏移(mm)', digits=(16, 2))
|
||||
offset_y = fields.Float('Y方向偏移(mm)', digits=(16, 2))
|
||||
|
||||
materials_model_id_positioning = fields.Many2one(
|
||||
'sf.materials.model', string='材质', ondelete='set null', index=True)
|
||||
station_count = fields.Integer('定位单元数', readonly=True)
|
||||
|
||||
# ‘气吸托盘’ 字段
|
||||
air_tray_length = fields.Float('气吸托盘长度(mm)', digits=(16, 2))
|
||||
air_tray_width = fields.Float('气吸托盘宽度(mm)', digits=(16, 2))
|
||||
@@ -1262,7 +1277,7 @@ class ResProductFixture(models.Model):
|
||||
|
||||
@api.onchange('specification_fixture_id')
|
||||
def _onchange_specification_fixture_id(self):
|
||||
if self.specification_fixture_id:
|
||||
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
|
||||
@@ -1303,7 +1318,46 @@ class ResProductFixture(models.Model):
|
||||
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
|
||||
|
||||
self.magnet_tray_length = self.specification_fixture_id.magnet_tray_length
|
||||
self.magnet_tray_width = self.specification_fixture_id.magnet_tray_width
|
||||
self.magnet_tray_height = self.specification_fixture_id.magnet_tray_height
|
||||
self.magnet_tray_diameter = self.specification_fixture_id.magnet_tray_diameter
|
||||
self.magnet_tray_weight = self.specification_fixture_id.magnet_tray_weight
|
||||
self.magnet_max_adsorp_length = self.specification_fixture_id.magnet_max_adsorp_length
|
||||
self.magnet_max_adsorp_width = self.specification_fixture_id.magnet_max_adsorp_width
|
||||
self.magnet_max_adsorp_height = self.specification_fixture_id.magnet_max_adsorp_height
|
||||
self.magnet_max_adsorp_diameter = self.specification_fixture_id.magnet_max_adsorp_diameter
|
||||
self.magnet_max_adsorp_force = self.specification_fixture_id.magnet_max_adsorp_force
|
||||
self.magnet_unlocking_method = self.specification_fixture_id.magnet_unlocking_method
|
||||
self.magnet_flatness = self.specification_fixture_id.magnet_flatness
|
||||
self.magnet_max_load = self.specification_fixture_id.magnet_max_load
|
||||
# 定位隔板字段
|
||||
self.length_outer = self.specification_fixture_id.length_outer
|
||||
self.width_outer = self.specification_fixture_id.width_outer
|
||||
self.length_inner = self.specification_fixture_id.length_inner
|
||||
self.width_inner = self.specification_fixture_id.width_inner
|
||||
self.thickness = self.specification_fixture_id.thickness
|
||||
self.unit_location = self.specification_fixture_id.unit_location
|
||||
self.offset_x = self.specification_fixture_id.offset_x
|
||||
self.offset_y = self.specification_fixture_id.offset_y
|
||||
self.materials_model_id_positioning = self.specification_fixture_id.materials_model_id_positioning
|
||||
self.station_count = self.specification_fixture_id.station_count
|
||||
# 气吸托盘字段
|
||||
self.air_tray_length = self.specification_fixture_id.air_tray_length
|
||||
self.air_tray_width = self.specification_fixture_id.air_tray_width
|
||||
self.air_tray_height = self.specification_fixture_id.air_tray_height
|
||||
self.air_tray_diameter = self.specification_fixture_id.air_tray_diameter
|
||||
self.air_tray_weight = self.specification_fixture_id.air_tray_weight
|
||||
self.air_max_adsorp_length = self.specification_fixture_id.air_max_adsorp_length
|
||||
self.air_max_adsorp_width = self.specification_fixture_id.air_max_adsorp_width
|
||||
self.air_max_adsorp_height = self.specification_fixture_id.air_max_adsorp_height
|
||||
self.air_max_adsorp_diameter = self.specification_fixture_id.air_max_adsorp_diameter
|
||||
self.air_max_adsorp_force = self.specification_fixture_id.air_max_adsorp_force
|
||||
self.air_unlocking_method = self.specification_fixture_id.air_unlocking_method
|
||||
self.air_flatness = self.specification_fixture_id.air_flatness
|
||||
self.air_max_load = self.specification_fixture_id.air_max_load
|
||||
self.air_boolean_chip_blowing_function = self.specification_fixture_id.air_boolean_chip_blowing_function
|
||||
self.air_way_to_install = self.specification_fixture_id.air_way_to_install
|
||||
|
||||
class SfMaintenanceEquipmentAndProductTemplate(models.Model):
|
||||
_inherit = 'maintenance.equipment'
|
||||
|
||||
@@ -1615,6 +1615,8 @@ class SyncfixtureMaterialsBasicParameters(models.Model):
|
||||
self._write_or_create(all_list.get('air_tray_yesterday_list'), '气吸托盘')
|
||||
if all_list.get('magnet_tray_all_list'):
|
||||
self._write_or_create(all_list.get('magnet_tray_yesterday_list'), '磁吸托盘')
|
||||
if all_list.get('positioning_partition_all_list'):
|
||||
self._write_or_create(all_list.get('positioning_partition_all_list'), '定位隔板')
|
||||
else:
|
||||
raise ValidationError("夹具型号基本参数认证未通过")
|
||||
|
||||
@@ -1647,6 +1649,8 @@ class SyncfixtureMaterialsBasicParameters(models.Model):
|
||||
self._write_or_create(all_list.get('air_tray_all_list'), '气吸托盘')
|
||||
if all_list.get('magnet_tray_all_list'):
|
||||
self._write_or_create(all_list.get('magnet_tray_all_list'), '磁吸托盘')
|
||||
if all_list.get('positioning_partition_all_list'):
|
||||
self._write_or_create(all_list.get('positioning_partition_all_list'), '定位隔板')
|
||||
else:
|
||||
raise ValidationError("夹具型号基本参数认证未通过")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user