From c470935cc5f230c16da321bf91c193309d4249e3 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Mon, 18 Mar 2024 17:15:34 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=88=A0=E9=99=A4=E5=A4=B9=E5=85=B7?= =?UTF-8?q?=E5=9E=8B=E5=8F=B7=E5=90=8C=E6=AD=A5=E6=8E=A5=E5=8F=A3=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=A4=B9=E5=85=B7=E5=9E=8B=E5=8F=B7=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=9A=84=E6=95=B0=E6=8D=AE=EF=BC=9B2?= =?UTF-8?q?=E3=80=81=E6=96=B0=E5=A2=9E=E5=A4=B9=E5=85=B7=E5=9E=8B=E5=8F=B7?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=8F=82=E6=95=B0=E6=A8=A1=E5=9E=8B=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=AE=8C=E6=88=90=E5=A4=B9?= =?UTF-8?q?=E5=85=B7=E5=9E=8B=E5=8F=B7=E5=9F=BA=E6=9C=AC=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E5=90=8C=E6=AD=A5=EF=BC=9B3=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=88=80=E5=85=B7=E7=AE=A1=E7=90=86=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E5=AD=90=E8=8F=9C=E5=8D=95=E5=90=8D=E7=A7=B0=EF=BC=9B?= =?UTF-8?q?4=E3=80=81=E5=85=B3=E9=97=AD=E5=88=80=E5=85=B7=E7=89=A9?= =?UTF-8?q?=E6=96=99=E6=90=9C=E7=B4=A2=E6=A8=A1=E5=9E=8Bform=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E7=9A=84=E6=B3=A8=E5=86=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/basic_parameters_fixture.py | 145 +++++----------- sf_mrs_connect/models/res_config_setting.py | 2 + sf_mrs_connect/models/sync_common.py | 156 +++++++++--------- sf_tool_management/views/menu_view.xml | 8 +- .../views/tool_material_search.xml | 8 +- 5 files changed, 133 insertions(+), 186 deletions(-) diff --git a/sf_base/models/basic_parameters_fixture.py b/sf_base/models/basic_parameters_fixture.py index 1333d01f..e9469355 100644 --- a/sf_base/models/basic_parameters_fixture.py +++ b/sf_base/models/basic_parameters_fixture.py @@ -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']} diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py index 5919e5c7..7c10f8b1 100644 --- a/sf_mrs_connect/models/res_config_setting.py +++ b/sf_mrs_connect/models/res_config_setting.py @@ -60,6 +60,8 @@ class ResConfigSettings(models.TransientModel): _logger.info("同步联装类型完成") self.env['sf.fixture.model'].sync_all_fixture_model() _logger.info("同步夹具型号完成") + self.env['sf.fixture.materials.basic.parameters'].sync_all_fixture_materials_basic_parameters() + _logger.info("同步夹具型号基本信息完成") self.env['sf.functional.fixture.type'].sync_all_functional_fixture_type() _logger.info("同步夹具型号类型完成") self.env['sf.machine_tool.type'].sync_all_machine_tool_type() diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 210194db..5cbfa8ec 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -50,6 +50,10 @@ class MrStaticResourceDataSync(models.Model): logging.info("联装类型已每日同步成功") self.env['sf.fixture.model'].sync_fixture_model_yesterday() logging.info("夹具型号已每日同步成功") + self.env['sf.fixture.materials.basic.parameters'].sync_fixture_materials_basic_parameters_yesterday() + logging.info("夹具型号基本参数已每日同步成功") + self.env['sf.functional.fixture.type'].sync_fixture_materials_basic_parameters_yesterday() + logging.info("夹具型号基本参数已每日同步成功") self.env['sf.functional.fixture.type'].sync_functional_fixture_type_yesterday() logging.info("功能夹具类型已每日同步成功") self.env['sf.cutting.tool.material'].sync_cutting_tool_material_yesterday() @@ -1476,7 +1480,6 @@ class SyncFixtureModel(models.Model): for item in result['fixture_model_yesterday_list']: if item: fixture_model = self.search([("code", '=', item['code']), ('active', 'in', [True, False])]) - fixture_materials = self.env['sf.fixture.materials.basic.parameters'] val = { "name": item['name'], "code": item['code'], @@ -1490,48 +1493,10 @@ class SyncFixtureModel(models.Model): "active": item['active'], } if not fixture_model: - fixture_model = self.create(val) - fixture_material_name = fixture_model.fixture_material_id.name - if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘': - fixture_materials.create_fixture_materials(item['zero_chuck_ids'], fixture_model) - elif item['zero_tray_ids'] and fixture_material_name == '零点托盘': - fixture_materials.create_fixture_materials(item['zero_tray_ids'], fixture_model) - elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具': - fixture_materials.create_fixture_materials(item['pneumatic_fixture_ids'], fixture_model) - elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具': - fixture_materials.create_fixture_materials(item['jaw_vice_fixture_ids'], fixture_model) - elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具': - fixture_materials.create_fixture_materials(item['magnet_fixture_ids'], fixture_model) - elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具': - fixture_materials.create_fixture_materials(item['adapter_board_fixture_ids'], - fixture_model) - elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘': - fixture_materials.create_fixture_materials(item['scroll_chuck_ids'], fixture_model) + self.create(val) else: fixture_model.write(val) - fixture_material_name = fixture_model.fixture_material_id.name - if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘': - fixture_materials.write_fixture_materials(item['zero_chuck_ids'], fixture_material_name) - elif item['zero_tray_ids'] and fixture_material_name == '零点托盘': - fixture_materials.write_fixture_materials(item['zero_tray_ids'], fixture_material_name) - elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具': - fixture_materials.write_fixture_materials(item['pneumatic_fixture_ids'], - fixture_material_name) - elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具': - fixture_materials.write_fixture_materials(item['jaw_vice_fixture_ids'], - fixture_material_name) - elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具': - fixture_materials.write_fixture_materials(item['magnet_fixture_ids'], - fixture_material_name) - elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具': - fixture_materials.write_fixture_materials(item['adapter_board_fixture_ids'], - fixture_material_name) - elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘': - fixture_materials.write_fixture_materials(item['scroll_chuck_ids'], - fixture_material_name) - else: - self.env['sf.fixture.materials.basic.parameters'].sudo().search( - [('fixture_model_id', '=', fixture_model.id)]).unlink() + else: raise ValidationError("夹具型号认证未通过") @@ -1549,7 +1514,6 @@ class SyncFixtureModel(models.Model): for item in result['fixture_model_all_list']: if item: fixture_model = self.search([('code', '=', item['code']), ('active', 'in', [True, False])]) - fixture_materials = self.env['sf.fixture.materials.basic.parameters'] val = { "name": item['name'], "code": item['code'], @@ -1563,48 +1527,84 @@ class SyncFixtureModel(models.Model): "active": item['active'], } if not fixture_model: - fixture_model = self.create(val) - fixture_material_name = fixture_model.fixture_material_id.name - if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘': - fixture_materials.create_fixture_materials(item['zero_chuck_ids'], fixture_model) - elif item['zero_tray_ids'] and fixture_material_name == '零点托盘': - fixture_materials.create_fixture_materials(item['zero_tray_ids'], fixture_model) - elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具': - fixture_materials.create_fixture_materials(item['pneumatic_fixture_ids'], fixture_model) - elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具': - fixture_materials.create_fixture_materials(item['jaw_vice_fixture_ids'], fixture_model) - elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具': - fixture_materials.create_fixture_materials(item['magnet_fixture_ids'], fixture_model) - elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具': - fixture_materials.create_fixture_materials(item['adapter_board_fixture_ids'], - fixture_model) - elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘': - fixture_materials.create_fixture_materials(item['scroll_chuck_ids'], fixture_model) + self.create(val) else: fixture_model.write(val) - fixture_material_name = fixture_model.fixture_material_id.name - if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘': - fixture_materials.write_fixture_materials(item['zero_chuck_ids'], fixture_model) - elif item['zero_tray_ids'] and fixture_material_name == '零点托盘': - fixture_materials.write_fixture_materials(item['zero_tray_ids'], fixture_model) - elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具': - fixture_materials.write_fixture_materials(item['pneumatic_fixture_ids'], fixture_model) - elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具': - fixture_materials.write_fixture_materials(item['jaw_vice_fixture_ids'], fixture_model) - elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具': - fixture_materials.write_fixture_materials(item['magnet_fixture_ids'], fixture_model) - elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具': - fixture_materials.write_fixture_materials(item['adapter_board_fixture_ids'], - fixture_model) - elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘': - fixture_materials.write_fixture_materials(item['scroll_chuck_ids'], fixture_model) - else: - self.env['sf.fixture.materials.basic.parameters'].sudo().search( - [('fixture_model_id', '=', fixture_model.id)]).unlink() else: raise ValidationError("夹具型号认证未通过") +class SyncfixtureMaterialsBasicParameters(models.Model): + _inherit = 'sf.fixture.materials.basic.parameters' + _description = '同步夹具型号基本参数列表' + + url = '/api/fixture_parameters/list' + + # 定时同步夹具型号基本信息 + def sync_fixture_materials_basic_parameters_yesterday(self): + config = self.env['res.config.settings'].get_values() + headers = Common.get_headers(self, config['token'], config['sf_secret_key']) + strUrl = config['sf_url'] + self.url + r = requests.post(strUrl, json={}, data=None, headers=headers) + r = r.json() + result = json.loads(r['result']) + if result['status'] == 1: + if result.get('fixture_parameters_yesterday_list'): + all_list = result.get('fixture_parameters_yesterday_list') + if all_list.get('zero_chuck_all_list'): + self._write_or_create(all_list.get('zero_chuck_yesterday_list'), '零点卡盘') + if all_list.get('zero_tray_all_list'): + self._write_or_create(all_list.get('zero_tray_yesterday_list'), '零点托盘') + if all_list.get('pneumatic_fixture_all_list'): + self._write_or_create(all_list.get('pneumatic_fixture_yesterday_list'), '气动夹具') + if all_list.get('jaw_vice_all_list'): + self._write_or_create(all_list.get('jaw_vice_yesterday_list'), '虎钳夹具') + if all_list.get('magnet_fixture_all_list'): + self._write_or_create(all_list.get('magnet_fixture_yesterday_list'), '磁吸夹具') + if all_list.get('adapter_board_all_list'): + self._write_or_create(all_list.get('adapter_board_yesterday_list'), '转接板(锁板)夹具') + if all_list.get('scroll_chuck_all_list'): + self._write_or_create(all_list.get('scroll_chuck_yesterday_list'), '三爪卡盘') + else: + raise ValidationError("夹具型号基本参数认证未通过") + + # 定时同步所有夹具型号基本信息 + def sync_all_fixture_materials_basic_parameters(self): + config = self.env['res.config.settings'].get_values() + headers = Common.get_headers(self, config['token'], config['sf_secret_key']) + strUrl = config['sf_url'] + self.url + r = requests.post(strUrl, json={}, data=None, headers=headers) + r = r.json() + result = json.loads(r['result']) + if result['status'] == 1: + if result.get('fixture_parameters_all_list'): + all_list = result.get('fixture_parameters_all_list') + if all_list.get('zero_chuck_all_list'): + self._write_or_create(all_list.get('zero_chuck_all_list'), '零点卡盘') + if all_list.get('zero_tray_all_list'): + self._write_or_create(all_list.get('zero_tray_all_list'), '零点托盘') + if all_list.get('pneumatic_fixture_all_list'): + self._write_or_create(all_list.get('pneumatic_fixture_all_list'), '气动夹具') + if all_list.get('jaw_vice_all_list'): + self._write_or_create(all_list.get('jaw_vice_all_list'), '虎钳夹具') + if all_list.get('magnet_fixture_all_list'): + self._write_or_create(all_list.get('magnet_fixture_all_list'), '磁吸夹具') + if all_list.get('adapter_board_all_list'): + self._write_or_create(all_list.get('adapter_board_all_list'), '转接板(锁板)夹具') + if all_list.get('scroll_chuck_all_list'): + self._write_or_create(all_list.get('scroll_chuck_all_list'), '三爪卡盘') + else: + raise ValidationError("夹具型号基本参数认证未通过") + + def _write_or_create(self, fixture_parameters_list, material_name): + for item in fixture_parameters_list: + if item: + basic_parameters = self.search([('code', '=', item.get('code')), ('active', 'in', [True, False])]) + if not basic_parameters: + self.create(self._get_basic_parameters_list(item, material_name)) + else: + basic_parameters.write(self._get_basic_parameters_list(item, material_name)) + class SyncFunctionalFixtureType(models.Model): _inherit = 'sf.functional.fixture.type' _description = '同步功能夹具类型列表' diff --git a/sf_tool_management/views/menu_view.xml b/sf_tool_management/views/menu_view.xml index c1fc939b..ea2e0fbd 100644 --- a/sf_tool_management/views/menu_view.xml +++ b/sf_tool_management/views/menu_view.xml @@ -10,8 +10,8 @@ @@ -34,7 +34,7 @@ sf.tool.material.search
-
-
+ + +

@@ -62,7 +62,7 @@ -