Merge branch 'feature/夹具型号同步优化' into feature/夹具型号基本参数同步

This commit is contained in:
yuxianghui
2024-03-18 17:17:10 +08:00
5 changed files with 133 additions and 186 deletions

View File

@@ -68,98 +68,30 @@ class BasicParametersFixture(models.Model):
centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2))
code = fields.Char('编码')
active = fields.Boolean('有效', default=True)
def create_fixture_materials(self, fixture_materials_datas, fixture_model):
fixture_materials_name = fixture_model.fixture_material_id.name
def _get_basic_parameters_list(self, fixture_materials_data, fixture_materials_name):
if fixture_materials_name == '零点卡盘':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_zero_chuck_param(fixture_materials_data, fixture_model))
return self._json_zero_chuck_param(fixture_materials_data)
elif fixture_materials_name == '零点托盘':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_zero_tray_param(fixture_materials_data, fixture_model))
return self._json_zero_tray_param(fixture_materials_data)
elif fixture_materials_name == '气动夹具':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_pneumatic_fixture_param(fixture_materials_data, fixture_model))
return self._json_pneumatic_fixture_param(fixture_materials_data)
elif fixture_materials_name == '虎钳夹具':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_jaw_vice_fixture_param(fixture_materials_data, fixture_model))
return self._json_jaw_vice_fixture_param(fixture_materials_data)
elif fixture_materials_name == '磁吸夹具':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_magnet_fixture_param(fixture_materials_data, fixture_model))
return self._json_magnet_fixture_param(fixture_materials_data)
elif fixture_materials_name == '转接板(锁板)夹具':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_adapter_board_fixture_param(fixture_materials_data, fixture_model))
return self._json_adapter_board_fixture_param(fixture_materials_data)
elif fixture_materials_name == '三爪卡盘':
for fixture_materials_data in fixture_materials_datas:
self.create(self._json_scroll_chuck_param(fixture_materials_data, fixture_model))
return self._json_scroll_chuck_param(fixture_materials_data)
return {}
def write_fixture_materials(self, fixture_materials_datas, fixture_model):
fixture_materials_name = fixture_model.fixture_material_id.name
# cloud夹具物料的code
mrs_fixture_materials_codes = []
for fixture_materials_data in fixture_materials_datas:
mrs_fixture_materials_codes.append(fixture_materials_data.get('code'))
# sf夹具物料的code 判断sf夹具型号关联的夹具物料在同步过来的mrs夹具物料中是否存在不存在则删除
sf_materials_model_codes = self._get_sf_materials_model_codes(fixture_model)
for sf_materials_model_code in sf_materials_model_codes:
if sf_materials_model_code not in mrs_fixture_materials_codes:
self.search([('code', '=', sf_materials_model_code)]).sudo().unlink()
for fixture_materials_data in fixture_materials_datas:
fixture_materials_list = self._get_fixture_materials_list(fixture_materials_data, fixture_materials_name,
fixture_model)
fixture_materials_code = fixture_materials_list.get('code')
# 判断同步过来的mrs刀具物料在sf夹具型号关联的夹具物料中是否存在如果存在则修改如果不存在则创建
if fixture_materials_code in sf_materials_model_codes:
self.search([('code', '=', fixture_materials_code)]).sudo().write(fixture_materials_list)
else:
self.sudo().create(fixture_materials_list)
def _get_sf_materials_model_codes(self, fixture_model):
fixture_materials_name = fixture_model.fixture_material_id.name
if fixture_materials_name == '零点卡盘':
return self._get_sf_materials_model_code(fixture_model.zero_chuck_ids)
elif fixture_materials_name == '零点托盘':
return self._get_sf_materials_model_code(fixture_model.zero_tray_ids)
elif fixture_materials_name == '气动夹具':
return self._get_sf_materials_model_code(fixture_model.pneumatic_fixture_ids)
elif fixture_materials_name == '虎钳夹具':
return self._get_sf_materials_model_code(fixture_model.pneumatic_fixture_ids)
elif fixture_materials_name == '磁吸夹具':
return self._get_sf_materials_model_code(fixture_model.magnet_fixture_ids)
elif fixture_materials_name == '转接板(锁板)夹具':
return self._get_sf_materials_model_code(fixture_model.adapter_board_fixture_ids)
elif fixture_materials_name == '三爪卡盘':
return self._get_sf_materials_model_code(fixture_model.scroll_chuck_ids)
return False
def _get_sf_materials_model_code(self, fixture_materials_ids):
sf_materials_model_codes = []
for fixture_materials_id in fixture_materials_ids:
sf_materials_model_codes.append(fixture_materials_id.code)
return sf_materials_model_codes
def _get_fixture_materials_list(self, fixture_materials_data, fixture_materials_name, fixture_model):
if fixture_materials_name == '零点卡盘':
return self._json_zero_chuck_param(fixture_materials_data, fixture_model)
elif fixture_materials_name == '零点托盘':
return self._json_zero_tray_param(fixture_materials_data, fixture_model)
elif fixture_materials_name == '气动夹具':
return self._json_pneumatic_fixture_param(fixture_materials_data, fixture_model)
elif fixture_materials_name == '虎钳夹具':
return self._json_jaw_vice_fixture_param(fixture_materials_data, fixture_model)
elif fixture_materials_name == '磁吸夹具':
return self._json_magnet_fixture_param(fixture_materials_data, fixture_model)
elif fixture_materials_name == '转接板(锁板)夹具':
return self._json_adapter_board_fixture_param(fixture_materials_data, fixture_model)
elif fixture_materials_name == '三爪卡盘':
return self._json_scroll_chuck_param(fixture_materials_data, fixture_model)
return False
def _json_zero_chuck_param(self, obj, fixture_model):
def _json_zero_chuck_param(self, obj):
"""零点卡盘将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -179,12 +111,14 @@ class BasicParametersFixture(models.Model):
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'machine_tool_type_id': self.env['sf.machine_tool.type'].sudo().search(
[('code', '=', obj['machine_tool_type_id']), ('active', '=', True)]).id}
[('code', '=', obj['machine_tool_type_id']), ('active', '=', True)]).id,
'active': obj['active']}
def _json_zero_tray_param(self, obj, fixture_model):
def _json_zero_tray_param(self, obj):
"""零点托盘将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -201,12 +135,14 @@ class BasicParametersFixture(models.Model):
'carrying_capacity_max': obj['carrying_capacity_max'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity']}
'rigidity': obj['rigidity'],
'active': obj['active']}
def _json_pneumatic_fixture_param(self, obj, fixture_model):
def _json_pneumatic_fixture_param(self, obj):
"""气动夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -228,12 +164,14 @@ class BasicParametersFixture(models.Model):
'rigidity': obj['rigidity'],
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'type_of_drive': obj['type_of_drive']}
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_jaw_vice_fixture_param(self, obj, fixture_model):
def _json_jaw_vice_fixture_param(self, obj):
"""虎钳夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -256,12 +194,14 @@ class BasicParametersFixture(models.Model):
'rigidity': obj['rigidity'],
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'type_of_drive': obj['type_of_drive']}
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_magnet_fixture_param(self, obj, fixture_model):
def _json_magnet_fixture_param(self, obj):
"""磁吸夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -285,12 +225,14 @@ class BasicParametersFixture(models.Model):
'rigidity': obj['rigidity'],
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'type_of_drive': obj['type_of_drive']}
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_adapter_board_fixture_param(self, obj, fixture_model):
def _json_adapter_board_fixture_param(self, obj):
"""转接板(锁板)夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -311,12 +253,14 @@ class BasicParametersFixture(models.Model):
'rigidity': obj['rigidity'],
'screw_size': obj['screw_size'],
'via_hole_diameter': obj['via_hole_diameter'],
'type_of_drive': obj['type_of_drive']}
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_scroll_chuck_param(self, obj, fixture_model):
def _json_scroll_chuck_param(self, obj):
"""转接板(锁板)夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': fixture_model.id,
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
@@ -338,4 +282,5 @@ class BasicParametersFixture(models.Model):
'rigidity': obj['rigidity'],
'mounting_hole_depth': obj['mounting_hole_depth'],
'centering_diameter': obj['centering_diameter'],
'type_of_drive': obj['type_of_drive']}
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}