From da8cbe4cce554f719042f7ffcc57d98cbb459483 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 3 Jan 2024 17:41:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=88=80=E5=85=B7=E6=A0=87?= =?UTF-8?q?=E5=87=86=E5=BA=93=E5=90=8C=E6=AD=A56=E4=B8=AA=E7=89=A9?= =?UTF-8?q?=E6=96=99=E7=9A=84=E6=96=B9=E6=B3=95=202.=E5=88=80=E5=85=B7?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=8F=82=E6=95=B0=E7=9A=84=E5=88=83=E6=95=B0?= =?UTF-8?q?=E5=92=8C=E5=88=80=E7=89=87=E7=9A=84=E5=88=83=E6=95=B0=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E5=AD=97=E6=AE=B5=E6=96=B0=E5=A2=9E=E9=80=89=E9=A1=B9?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9Eactive=E5=AD=97=E6=AE=B5=EF=BC=8Cxml?= =?UTF-8?q?=E4=B8=AD=E4=BF=AE=E6=94=B9=E9=80=82=E9=85=8D=E5=88=80=E7=89=87?= =?UTF-8?q?=E5=9E=8B=E5=8F=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/tool_other_features.py | 14 +- sf_base/views/tool_basic_param.xml | 2 +- sf_mrs_connect/models/sync_common.py | 444 +++++++++++++------------- 3 files changed, 239 insertions(+), 221 deletions(-) diff --git a/sf_base/models/tool_other_features.py b/sf_base/models/tool_other_features.py index ab5a4387..305cac39 100644 --- a/sf_base/models/tool_other_features.py +++ b/sf_base/models/tool_other_features.py @@ -14,8 +14,8 @@ class ToolMaterialsBasicParameters(models.Model): # 整体式刀具参数 total_length = fields.Float('总长度(mm)') blade_number = fields.Selection( - [('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')], - string='刃数(个)') + [('0', '0'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')], + string='刃数(个)', default='0') neck_diameter = fields.Float('颈部直径(mm)') neck_length = fields.Float('颈部长度(mm)') handle_diameter = fields.Float('柄部直径(mm)') @@ -47,9 +47,10 @@ class ToolMaterialsBasicParameters(models.Model): ('UNJ全牙型', 'UNJ全牙型'), ('DIN405圆牙型', 'DIN405圆牙型'), ('ACME梯形', 'ACME梯形'), ('石油管螺纹刀片', '石油管螺纹刀片'), ('矮牙ACME梯形', '矮牙ACME梯形'), ('Trapeze30° 103', 'Trapeze30° 103')], string='刀片牙型', default='无') - blade_blade_number = fields.Selection([('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), - ('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')], - string='刀片的刃数(个)') + blade_blade_number = fields.Selection( + [('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), + ('9', '9'), ('10', '10')], + string='刀片的刃数(个)', default='0') main_included_angle = fields.Integer('主偏角(°)') top_angle = fields.Integer('顶角(°)') blade_tip_dip_angle = fields.Integer('刀尖倾角(°)') @@ -75,7 +76,7 @@ class ToolMaterialsBasicParameters(models.Model): locating_slot_code = fields.Char('定位槽代号', size=20) installing_structure = fields.Char('安装结构', size=20) blade_id = fields.Many2one( - 'sf.cutting_tool.standard.library', + 'sf.cutting_tool.standard.library', domain="[('cutting_tool_material_id.name', '=', '刀片')]", string='适配刀片型号' # 使用空列表作为默认值 ) @@ -133,6 +134,7 @@ class ToolMaterialsBasicParameters(models.Model): domain="[('cutting_tool_material_id.name', '=', '刀柄')]", string='适用刀柄型号' ) + active = fields.Boolean(string='有效', default=True) def _json_integral_tool_basic_param(self, obj): integral_tool_basic_param_str = (0, '', { diff --git a/sf_base/views/tool_basic_param.xml b/sf_base/views/tool_basic_param.xml index dfe3eaf7..350c38f1 100644 --- a/sf_base/views/tool_basic_param.xml +++ b/sf_base/views/tool_basic_param.xml @@ -73,7 +73,7 @@ - + diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 321a47fd..05d9186f 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -2123,10 +2123,12 @@ class CuttingToolBasicParameters(models.Model): r = r.json() result = json.loads(r['result']) if result['status'] == 1: - for item in result['cutting_tool_basic_parameters_all_list']: - for integral_tool_item in item['basic_parameters_integral_tool']: + basic_parameters_integral_tool_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_integral_tool']) + if basic_parameters_integral_tool_list: + for integral_tool_item in basic_parameters_integral_tool_list: integral_tool = self.search([('code', '=', integral_tool_item['code'])]) - if integral_tool: + if not integral_tool: self.create({ 'name': integral_tool_item['name'], 'code': integral_tool_item['code'], @@ -2155,7 +2157,6 @@ class CuttingToolBasicParameters(models.Model): else: self.write({ 'name': integral_tool_item['name'], - 'cutting_tool_type': integral_tool_item['cutting_tool_type'], 'total_length': integral_tool_item['total_length'], 'blade_diameter': integral_tool_item['blade_diameter'], 'blade_length': integral_tool_item['blade_length'], @@ -2174,9 +2175,12 @@ class CuttingToolBasicParameters(models.Model): 'cutting_depth': integral_tool_item['cutting_depth_max'], 'active': integral_tool_item['active'], }) - for blade_item in item['basic_parameters_blade']: + basic_parameters_blade_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_blade']) + if basic_parameters_blade_list: + for blade_item in basic_parameters_blade_list: blade = self.search([('code', '=', blade_item['code'])]) - if blade: + if not blade: self.create({ 'name': blade_item['name'], 'code': blade_item['code'], @@ -2186,7 +2190,6 @@ class CuttingToolBasicParameters(models.Model): 'factory_short_name']))]).id, 'length': blade_item['length'], 'thickness': blade_item['thickness'], - 'width': blade_item['width'], 'cutting_blade_length': blade_item['cutting_blade_length'], 'relief_angle': blade_item['relief_angle'], 'blade_tip_circular_arc_radius': blade_item['radius_tip_re'], @@ -2201,10 +2204,8 @@ class CuttingToolBasicParameters(models.Model): 'blade_width': blade_item['blade_width'], 'main_included_angle': blade_item['edge_angle'], 'top_angle': blade_item['top_angle'], - 'blade_tip_dip_angle': blade_item['blade_tip_dip_angle'], - 'side_cutting_edge_angle': blade_item['side_cutting_edge_angle'], 'thread_model': '无' if not blade_item['thread_type'] else blade_item['thread_type'], - 'thread_num': blade_item['thread_num'], + 'thread_num': blade_item['threads_per_inch'], 'blade_tip_height_tolerance': blade_item['tip_height_tolerance'], 'inscribed_circle_tolerance': blade_item['internal_circle_tolerance'], 'thickness_tolerance': blade_item['thickness_tolerance'], @@ -2230,18 +2231,19 @@ class CuttingToolBasicParameters(models.Model): 'blade_width': blade_item['blade_width'], 'main_included_angle': blade_item['edge_angle'], 'top_angle': blade_item['top_angle'], - 'blade_tip_dip_angle': blade_item['blade_tip_dip_angle'], - 'side_cutting_edge_angle': blade_item['side_cutting_edge_angle'], 'thread_model': '无' if not blade_item['thread_type'] else blade_item['thread_type'], - 'thread_num': blade_item['thread_num'], + 'thread_num': blade_item['threads_per_inch'], 'blade_tip_height_tolerance': blade_item['tip_height_tolerance'], 'inscribed_circle_tolerance': blade_item['internal_circle_tolerance'], 'thickness_tolerance': blade_item['thickness_tolerance'], 'active': blade_item['active'], }) - for chuck_item in item['basic_parameters_chuck']: + basic_parameters_chuck_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_chuck']) + if basic_parameters_chuck_list: + for chuck_item in basic_parameters_chuck_list: chuck = self.search([('code', '=', chuck_item['code'])]) - if chuck: + if not chuck: self.create({ 'name': chuck_item['name'], 'code': chuck_item['code'], @@ -2260,9 +2262,6 @@ class CuttingToolBasicParameters(models.Model): 'top_diameter': chuck_item['top_diameter'], 'weight': chuck_item['weight'], 'max_load_capacity': chuck_item['load_capacity_max'], - 'handle_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', chuck_item['fit_knife_handle_code'].replace("JKM", result[ - 'factory_short_name']))]).id, 'cooling_jacket': chuck_item['cooling_sleeve_model'], 'active': chuck_item['active'], }) @@ -2280,15 +2279,15 @@ class CuttingToolBasicParameters(models.Model): 'top_diameter': chuck_item['top_diameter'], 'weight': chuck_item['weight'], 'max_load_capacity': chuck_item['load_capacity_max'], - 'handle_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', chuck_item['fit_knife_handle_code'].replace("JKM", result[ - 'factory_short_name']))]).id, 'cooling_jacket': chuck_item['cooling_sleeve_model'], 'active': chuck_item['active'], }) - for cutter_arbor_item in item['basic_parameters_cutter_arbor']: + basic_parameters_cutter_arbor_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_cutter_arbor']) + if basic_parameters_cutter_arbor_list: + for cutter_arbor_item in basic_parameters_cutter_arbor_list: cutter_arbor = self.search([('code', '=', cutter_arbor_item['code'])]) - if cutter_arbor: + if not cutter_arbor: self.create({ 'name': cutter_arbor_item['name'], 'code': cutter_arbor_item['code'], @@ -2308,11 +2307,11 @@ class CuttingToolBasicParameters(models.Model): 'cutting_depth': cutter_arbor_item['cutting_depth_max'], 'min_machining_aperture': cutter_arbor_item['machining_aperture_min'], 'install_blade_tip_num': cutter_arbor_item['number_blade_installed'], - 'cutting_blade_model': cutter_arbor_item['cutting_blade_model'], 'is_cooling_hole': cutter_arbor_item['is_cooling_hole'], 'locating_slot_code': cutter_arbor_item['locator_slot_code'], - 'installing_structure': cutter_arbor_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( + 'installing_structure': cutter_arbor_item['mounting_structure'], + 'blade_id': False if not cutter_arbor_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( [('code', '=', cutter_arbor_item['fit_blade_model_code'].replace("JKM", result[ 'factory_short_name']))]).id, 'tool_shim': cutter_arbor_item['fit_knife_pad_model'], @@ -2337,11 +2336,11 @@ class CuttingToolBasicParameters(models.Model): 'cutting_depth': cutter_arbor_item['cutting_depth_max'], 'min_machining_aperture': cutter_arbor_item['machining_aperture_min'], 'install_blade_tip_num': cutter_arbor_item['number_blade_installed'], - 'cutting_blade_model': cutter_arbor_item['cutting_blade_model'], 'is_cooling_hole': cutter_arbor_item['is_cooling_hole'], 'locating_slot_code': cutter_arbor_item['locator_slot_code'], - 'installing_structure': cutter_arbor_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( + 'installing_structure': cutter_arbor_item['mounting_structure'], + 'blade_id': False if not cutter_arbor_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( [('code', '=', cutter_arbor_item['fit_blade_model_code'].replace("JKM", result[ 'factory_short_name']))]).id, 'tool_shim': cutter_arbor_item['fit_knife_pad_model'], @@ -2351,9 +2350,12 @@ class CuttingToolBasicParameters(models.Model): 'spanner': cutter_arbor_item['fit_wrench_model'], 'active': cutter_arbor_item['active'], }) - for cutter_head_item in item['basic_parameters_cutter_head']: + basic_parameters_cutter_head_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_cutter_head']) + if basic_parameters_cutter_head_list: + for cutter_head_item in basic_parameters_cutter_head_list: cutter_head = self.search([('code', '=', cutter_head_item['code'])]) - if cutter_head: + if not cutter_head: self.create({ 'name': cutter_head_item['name'], 'code': cutter_head_item['code'], @@ -2369,8 +2371,9 @@ class CuttingToolBasicParameters(models.Model): 'blade_length': cutter_head_item['blade_length'], 'cutting_depth': cutter_head_item['cutting_depth_max'], 'main_included_angle': cutter_head_item['edge_angle'], - 'installing_structure': cutter_head_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( + 'installing_structure': cutter_head_item['mounting_structure'], + 'blade_id': False if not cutter_head_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( [('code', '=', cutter_head_item['fit_blade_model_code'].replace("JKM", result[ 'factory_short_name']))]).id, 'screw': cutter_head_item['fit_screw_model'], @@ -2381,7 +2384,7 @@ class CuttingToolBasicParameters(models.Model): }) else: self.write({ - 'name': cutter_arbor_item['name'], + 'name': cutter_head_item['name'], 'install_blade_tip_num': cutter_head_item['number_blade_installed'], 'blade_diameter': cutter_head_item['blade_diameter'], 'cutter_head_diameter': cutter_head_item['cutter_diameter'], @@ -2390,8 +2393,9 @@ class CuttingToolBasicParameters(models.Model): 'blade_length': cutter_head_item['blade_length'], 'cutting_depth': cutter_head_item['cutting_depth_max'], 'main_included_angle': cutter_head_item['edge_angle'], - 'installing_structure': cutter_head_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( + 'installing_structure': cutter_head_item['mounting_structure'], + 'blade_id': False if not cutter_head_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( [('code', '=', cutter_head_item['fit_blade_model_code'].replace("JKM", result[ 'factory_short_name']))]).id, 'screw': cutter_head_item['fit_screw_model'], @@ -2400,10 +2404,12 @@ class CuttingToolBasicParameters(models.Model): 'locating_slot_code': cutter_head_item['locator_slot_code'], 'active': cutter_head_item['active'], }) - - for knife_handle_item in item['basic_parameters_knife_handle']: + basic_parameters_knife_handle_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_knife_handle']) + if basic_parameters_knife_handle_list: + for knife_handle_item in basic_parameters_knife_handle_list: knife_handle = self.search([('code', '=', knife_handle_item['code'])]) - if knife_handle: + if not knife_handle: self.create({ 'name': knife_handle_item['name'], 'code': knife_handle_item['code'], @@ -2428,9 +2434,6 @@ class CuttingToolBasicParameters(models.Model): 'screw': knife_handle_item['fit_wrench_model'], 'nut': knife_handle_item['fit_nut_model'], 'dynamic_balance_class': knife_handle_item['dynamic_balance_class'], - 'chuck_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', knife_handle_item['fit_chuck_model_code'].replace("JKM", result[ - 'factory_short_name']))]).id, 'active': knife_handle_item['active'], }) else: @@ -2453,9 +2456,6 @@ class CuttingToolBasicParameters(models.Model): 'screw': knife_handle_item['fit_wrench_model'], 'nut': knife_handle_item['fit_nut_model'], 'dynamic_balance_class': knife_handle_item['dynamic_balance_class'], - 'chuck_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', knife_handle_item['fit_chuck_model_code'].replace("JKM", result[ - 'factory_short_name']))]).id, 'active': knife_handle_item['active'], }) else: @@ -2469,10 +2469,12 @@ class CuttingToolBasicParameters(models.Model): r = r.json() result = json.loads(r['result']) if result['status'] == 1: - for item in result['cutting_tool_basic_parameters_yesterday_list']: - for integral_tool_item in item['basic_parameters_integral_tool']: + basic_parameters_integral_tool_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_integral_tool']) + if basic_parameters_integral_tool_list: + for integral_tool_item in basic_parameters_integral_tool_list: integral_tool = self.search([('code', '=', integral_tool_item['code'])]) - if integral_tool: + if not integral_tool: self.create({ 'name': integral_tool_item['name'], 'code': integral_tool_item['code'], @@ -2499,30 +2501,35 @@ class CuttingToolBasicParameters(models.Model): 'active': integral_tool_item['active'], }) else: - self.write({ - 'name': integral_tool_item['name'], - 'cutting_tool_type': integral_tool_item['cutting_tool_type'], - 'total_length': integral_tool_item['total_length'], - 'blade_diameter': integral_tool_item['blade_diameter'], - 'blade_length': integral_tool_item['blade_length'], - 'blade_number': integral_tool_item['blade_number'], - 'neck_length': integral_tool_item['neck_length'], - 'neck_diameter': integral_tool_item['neck_diameter'], - 'handle_diameter': integral_tool_item['shank_diameter'], - 'handle_length': integral_tool_item['shank_length'], - 'blade_tip_diameter': integral_tool_item['tip_diameter'], - 'blade_tip_working_size': integral_tool_item['tip_handling_size'], - 'blade_tip_taper': integral_tool_item['knife_tip_taper'], - 'blade_helix_angle': integral_tool_item['blade_helix_angle'], - 'blade_width': integral_tool_item['blade_width'], - 'blade_depth': integral_tool_item['blade_depth'], - 'pitch': integral_tool_item['pitch'], - 'cutting_depth': integral_tool_item['cutting_depth_max'], - 'active': integral_tool_item['active'], - }) - for blade_item in item['basic_parameters_blade']: + if integral_tool_item['active'] is False: + integral_tool.write({'active': False}) + else: + self.write({ + 'name': integral_tool_item['name'], + 'total_length': integral_tool_item['total_length'], + 'blade_diameter': integral_tool_item['blade_diameter'], + 'blade_length': integral_tool_item['blade_length'], + 'blade_number': integral_tool_item['blade_number'], + 'neck_length': integral_tool_item['neck_length'], + 'neck_diameter': integral_tool_item['neck_diameter'], + 'handle_diameter': integral_tool_item['shank_diameter'], + 'handle_length': integral_tool_item['shank_length'], + 'blade_tip_diameter': integral_tool_item['tip_diameter'], + 'blade_tip_working_size': integral_tool_item['tip_handling_size'], + 'blade_tip_taper': integral_tool_item['knife_tip_taper'], + 'blade_helix_angle': integral_tool_item['blade_helix_angle'], + 'blade_width': integral_tool_item['blade_width'], + 'blade_depth': integral_tool_item['blade_depth'], + 'pitch': integral_tool_item['pitch'], + 'cutting_depth': integral_tool_item['cutting_depth_max'], + 'active': integral_tool_item['active'], + }) + basic_parameters_blade_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_blade']) + if basic_parameters_blade_list: + for blade_item in basic_parameters_blade_list: blade = self.search([('code', '=', blade_item['code'])]) - if blade: + if not blade: self.create({ 'name': blade_item['name'], 'code': blade_item['code'], @@ -2532,7 +2539,6 @@ class CuttingToolBasicParameters(models.Model): 'factory_short_name']))]).id, 'length': blade_item['length'], 'thickness': blade_item['thickness'], - 'width': blade_item['width'], 'cutting_blade_length': blade_item['cutting_blade_length'], 'relief_angle': blade_item['relief_angle'], 'blade_tip_circular_arc_radius': blade_item['radius_tip_re'], @@ -2547,47 +2553,48 @@ class CuttingToolBasicParameters(models.Model): 'blade_width': blade_item['blade_width'], 'main_included_angle': blade_item['edge_angle'], 'top_angle': blade_item['top_angle'], - 'blade_tip_dip_angle': blade_item['blade_tip_dip_angle'], - 'side_cutting_edge_angle': blade_item['side_cutting_edge_angle'], 'thread_model': '无' if not blade_item['thread_type'] else blade_item['thread_type'], - 'thread_num': blade_item['thread_num'], + 'thread_num': blade_item['threads_per_inch'], 'blade_tip_height_tolerance': blade_item['tip_height_tolerance'], 'inscribed_circle_tolerance': blade_item['internal_circle_tolerance'], 'thickness_tolerance': blade_item['thickness_tolerance'], 'active': blade_item['active'], }) else: - self.write({ - 'name': integral_tool_item['name'], - 'length': blade_item['length'], - 'thickness': blade_item['thickness'], - 'width': blade_item['width'], - 'cutting_blade_length': blade_item['cutting_blade_length'], - 'relief_angle': blade_item['relief_angle'], - 'blade_tip_circular_arc_radius': blade_item['radius_tip_re'], - 'inscribed_circle_diameter': blade_item['diameter_inner_circle'], - 'install_aperture_diameter': blade_item['diameter_mounting_hole'], - 'pitch': blade_item['pitch'], - 'chip_breaker_groove': blade_item['is_chip_breaker'], - 'blade_teeth_model': '无' if not blade_item['blade_profile'] else blade_item[ - 'blade_profile'], - 'blade_blade_number': blade_item['blade_number'], - 'cutting_depth': blade_item['cutting_depth_max'], - 'blade_width': blade_item['blade_width'], - 'main_included_angle': blade_item['edge_angle'], - 'top_angle': blade_item['top_angle'], - 'blade_tip_dip_angle': blade_item['blade_tip_dip_angle'], - 'side_cutting_edge_angle': blade_item['side_cutting_edge_angle'], - 'thread_model': '无' if not blade_item['thread_type'] else blade_item['thread_type'], - 'thread_num': blade_item['thread_num'], - 'blade_tip_height_tolerance': blade_item['tip_height_tolerance'], - 'inscribed_circle_tolerance': blade_item['internal_circle_tolerance'], - 'thickness_tolerance': blade_item['thickness_tolerance'], - 'active': blade_item['active'], - }) - for chuck_item in item['basic_parameters_chuck']: + if blade_item['active'] is False: + blade.write({'active': False}) + else: + self.write({ + 'name': blade_item['name'], + 'length': blade_item['length'], + 'thickness': blade_item['thickness'], + 'cutting_blade_length': blade_item['cutting_blade_length'], + 'relief_angle': blade_item['relief_angle'], + 'blade_tip_circular_arc_radius': blade_item['radius_tip_re'], + 'inscribed_circle_diameter': blade_item['diameter_inner_circle'], + 'install_aperture_diameter': blade_item['diameter_mounting_hole'], + 'pitch': blade_item['pitch'], + 'chip_breaker_groove': blade_item['is_chip_breaker'], + 'blade_teeth_model': '无' if not blade_item['blade_profile'] else blade_item[ + 'blade_profile'], + 'blade_blade_number': blade_item['blade_number'], + 'cutting_depth': blade_item['cutting_depth_max'], + 'blade_width': blade_item['blade_width'], + 'main_included_angle': blade_item['edge_angle'], + 'top_angle': blade_item['top_angle'], + 'thread_model': '无' if not blade_item['thread_type'] else blade_item['thread_type'], + 'thread_num': blade_item['threads_per_inch'], + 'blade_tip_height_tolerance': blade_item['tip_height_tolerance'], + 'inscribed_circle_tolerance': blade_item['internal_circle_tolerance'], + 'thickness_tolerance': blade_item['thickness_tolerance'], + 'active': blade_item['active'], + }) + basic_parameters_chuck_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_chuck']) + if basic_parameters_chuck_list: + for chuck_item in basic_parameters_chuck_list: chuck = self.search([('code', '=', chuck_item['code'])]) - if chuck: + if not chuck: self.create({ 'name': chuck_item['name'], 'code': chuck_item['code'], @@ -2606,35 +2613,35 @@ class CuttingToolBasicParameters(models.Model): 'top_diameter': chuck_item['top_diameter'], 'weight': chuck_item['weight'], 'max_load_capacity': chuck_item['load_capacity_max'], - 'handle_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', chuck_item['fit_knife_handle_code'].replace("JKM", result[ - 'factory_short_name']))]).id, 'cooling_jacket': chuck_item['cooling_sleeve_model'], 'active': chuck_item['active'], }) else: - self.write({ - 'name': integral_tool_item['name'], - 'er_size_model': chuck_item['size_model'], - 'min_clamping_diameter': chuck_item['clamping_diameter_min'], - 'max_clamping_diameter': chuck_item['clamping_diameter_max'], - 'outer_diameter': chuck_item['outer_diameter'], - 'inner_diameter': chuck_item['inner_diameter'], - 'run_out_accuracy': chuck_item['run_out_accuracy'], - 'total_length': chuck_item['total_length'], - 'taper': chuck_item['taper'], - 'top_diameter': chuck_item['top_diameter'], - 'weight': chuck_item['weight'], - 'max_load_capacity': chuck_item['load_capacity_max'], - 'handle_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', chuck_item['fit_knife_handle_code'].replace("JKM", result[ - 'factory_short_name']))]).id, - 'cooling_jacket': chuck_item['cooling_sleeve_model'], - 'active': chuck_item['active'], - }) - for cutter_arbor_item in item['basic_parameters_cutter_arbor']: + if chuck_item['active'] is False: + chuck.write({'active': False}) + else: + self.write({ + 'name': chuck_item['name'], + 'er_size_model': chuck_item['size_model'], + 'min_clamping_diameter': chuck_item['clamping_diameter_min'], + 'max_clamping_diameter': chuck_item['clamping_diameter_max'], + 'outer_diameter': chuck_item['outer_diameter'], + 'inner_diameter': chuck_item['inner_diameter'], + 'run_out_accuracy': chuck_item['run_out_accuracy'], + 'total_length': chuck_item['total_length'], + 'taper': chuck_item['taper'], + 'top_diameter': chuck_item['top_diameter'], + 'weight': chuck_item['weight'], + 'max_load_capacity': chuck_item['load_capacity_max'], + 'cooling_jacket': chuck_item['cooling_sleeve_model'], + 'active': chuck_item['active'], + }) + basic_parameters_cutter_arbor_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_cutter_arbor']) + if basic_parameters_cutter_arbor_list: + for cutter_arbor_item in basic_parameters_cutter_arbor_list: cutter_arbor = self.search([('code', '=', cutter_arbor_item['code'])]) - if cutter_arbor: + if not cutter_arbor: self.create({ 'name': cutter_arbor_item['name'], 'code': cutter_arbor_item['code'], @@ -2654,11 +2661,11 @@ class CuttingToolBasicParameters(models.Model): 'cutting_depth': cutter_arbor_item['cutting_depth_max'], 'min_machining_aperture': cutter_arbor_item['machining_aperture_min'], 'install_blade_tip_num': cutter_arbor_item['number_blade_installed'], - 'cutting_blade_model': cutter_arbor_item['cutting_blade_model'], 'is_cooling_hole': cutter_arbor_item['is_cooling_hole'], 'locating_slot_code': cutter_arbor_item['locator_slot_code'], - 'installing_structure': cutter_arbor_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( + 'installing_structure': cutter_arbor_item['mounting_structure'], + 'blade_id': False if not cutter_arbor_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( [('code', '=', cutter_arbor_item['fit_blade_model_code'].replace("JKM", result[ 'factory_short_name']))]).id, 'tool_shim': cutter_arbor_item['fit_knife_pad_model'], @@ -2669,37 +2676,43 @@ class CuttingToolBasicParameters(models.Model): 'active': cutter_arbor_item['active'], }) else: - self.write({ - 'name': cutter_arbor_item['name'], - 'height': cutter_arbor_item['height'], - 'width': cutter_arbor_item['width'], - 'total_length': cutter_arbor_item['total_length'], - 'knife_head_height': cutter_arbor_item['head_length'], - 'knife_head_width': cutter_arbor_item['head_width'], - 'knife_head_length': cutter_arbor_item['head_length'], - 'cutter_arbor_diameter': cutter_arbor_item['arbor_diameter'], - 'main_included_angle': cutter_arbor_item['edge_angle'], - 'relief_angle': cutter_arbor_item['relief_angle'], - 'cutting_depth': cutter_arbor_item['cutting_depth_max'], - 'min_machining_aperture': cutter_arbor_item['machining_aperture_min'], - 'install_blade_tip_num': cutter_arbor_item['number_blade_installed'], - 'cutting_blade_model': cutter_arbor_item['cutting_blade_model'], - 'is_cooling_hole': cutter_arbor_item['is_cooling_hole'], - 'locating_slot_code': cutter_arbor_item['locator_slot_code'], - 'installing_structure': cutter_arbor_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', cutter_arbor_item['fit_blade_model_code'].replace("JKM", result[ - 'factory_short_name']))]).id, - 'tool_shim': cutter_arbor_item['fit_knife_pad_model'], - 'cotter_pin': cutter_arbor_item['fit_pin_model'], - 'pressing_plate': cutter_arbor_item['fit_plate_model'], - 'screw': cutter_arbor_item['fit_screw_model'], - 'spanner': cutter_arbor_item['fit_wrench_model'], - 'active': cutter_arbor_item['active'], - }) - for cutter_head_item in item['basic_parameters_cutter_head']: + if cutter_arbor_item['active'] is False: + cutter_arbor.write({'active': False}) + else: + self.write({ + 'name': cutter_arbor_item['name'], + 'height': cutter_arbor_item['height'], + 'width': cutter_arbor_item['width'], + 'total_length': cutter_arbor_item['total_length'], + 'knife_head_height': cutter_arbor_item['head_length'], + 'knife_head_width': cutter_arbor_item['head_width'], + 'knife_head_length': cutter_arbor_item['head_length'], + 'cutter_arbor_diameter': cutter_arbor_item['arbor_diameter'], + 'main_included_angle': cutter_arbor_item['edge_angle'], + 'relief_angle': cutter_arbor_item['relief_angle'], + 'cutting_depth': cutter_arbor_item['cutting_depth_max'], + 'min_machining_aperture': cutter_arbor_item['machining_aperture_min'], + 'install_blade_tip_num': cutter_arbor_item['number_blade_installed'], + 'is_cooling_hole': cutter_arbor_item['is_cooling_hole'], + 'locating_slot_code': cutter_arbor_item['locator_slot_code'], + 'installing_structure': cutter_arbor_item['mounting_structure'], + 'blade_id': False if not cutter_arbor_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( + [('code', '=', cutter_arbor_item['fit_blade_model_code'].replace("JKM", result[ + 'factory_short_name']))]).id, + 'tool_shim': cutter_arbor_item['fit_knife_pad_model'], + 'cotter_pin': cutter_arbor_item['fit_pin_model'], + 'pressing_plate': cutter_arbor_item['fit_plate_model'], + 'screw': cutter_arbor_item['fit_screw_model'], + 'spanner': cutter_arbor_item['fit_wrench_model'], + 'active': cutter_arbor_item['active'], + }) + basic_parameters_cutter_head_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_cutter_head']) + if basic_parameters_cutter_head_list: + for cutter_head_item in basic_parameters_cutter_head_list: cutter_head = self.search([('code', '=', cutter_head_item['code'])]) - if cutter_head: + if not cutter_head: self.create({ 'name': cutter_head_item['name'], 'code': cutter_head_item['code'], @@ -2715,8 +2728,9 @@ class CuttingToolBasicParameters(models.Model): 'blade_length': cutter_head_item['blade_length'], 'cutting_depth': cutter_head_item['cutting_depth_max'], 'main_included_angle': cutter_head_item['edge_angle'], - 'installing_structure': cutter_head_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( + 'installing_structure': cutter_head_item['mounting_structure'], + 'blade_id': False if not cutter_head_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( [('code', '=', cutter_head_item['fit_blade_model_code'].replace("JKM", result[ 'factory_short_name']))]).id, 'screw': cutter_head_item['fit_screw_model'], @@ -2726,30 +2740,36 @@ class CuttingToolBasicParameters(models.Model): 'active': cutter_head_item['active'], }) else: - self.write({ - 'name': cutter_arbor_item['name'], - 'install_blade_tip_num': cutter_head_item['number_blade_installed'], - 'blade_diameter': cutter_head_item['blade_diameter'], - 'cutter_head_diameter': cutter_head_item['cutter_diameter'], - 'interface_diameter': cutter_head_item['interface_diameter'], - 'total_length': cutter_head_item['total_length'], - 'blade_length': cutter_head_item['blade_length'], - 'cutting_depth': cutter_head_item['cutting_depth_max'], - 'main_included_angle': cutter_head_item['edge_angle'], - 'installing_structure': cutter_head_item['installing_structure'], - 'blade_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', cutter_head_item['fit_blade_model_code'].replace("JKM", result[ - 'factory_short_name']))]).id, - 'screw': cutter_head_item['fit_screw_model'], - 'spanner': cutter_head_item['fit_wrench_model'], - 'is_cooling_hole': cutter_head_item['is_cooling_hole'], - 'locating_slot_code': cutter_head_item['locator_slot_code'], - 'active': cutter_head_item['active'], - }) - - for knife_handle_item in item['basic_parameters_knife_handle']: + if cutter_head_item['active'] is False: + cutter_head.write({'active': False}) + else: + self.write({ + 'name': cutter_head_item['name'], + 'install_blade_tip_num': cutter_head_item['number_blade_installed'], + 'blade_diameter': cutter_head_item['blade_diameter'], + 'cutter_head_diameter': cutter_head_item['cutter_diameter'], + 'interface_diameter': cutter_head_item['interface_diameter'], + 'total_length': cutter_head_item['total_length'], + 'blade_length': cutter_head_item['blade_length'], + 'cutting_depth': cutter_head_item['cutting_depth_max'], + 'main_included_angle': cutter_head_item['edge_angle'], + 'installing_structure': cutter_head_item['mounting_structure'], + 'blade_id': False if not cutter_head_item['fit_blade_model_code'] else self.env[ + 'sf.cutting_tool.standard.library'].search( + [('code', '=', cutter_head_item['fit_blade_model_code'].replace("JKM", result[ + 'factory_short_name']))]).id, + 'screw': cutter_head_item['fit_screw_model'], + 'spanner': cutter_head_item['fit_wrench_model'], + 'is_cooling_hole': cutter_head_item['is_cooling_hole'], + 'locating_slot_code': cutter_head_item['locator_slot_code'], + 'active': cutter_head_item['active'], + }) + basic_parameters_knife_handle_list = json.loads( + result['cutting_tool_basic_parameters_all_list']['basic_parameters_knife_handle']) + if basic_parameters_knife_handle_list: + for knife_handle_item in basic_parameters_knife_handle_list: knife_handle = self.search([('code', '=', knife_handle_item['code'])]) - if knife_handle: + if not knife_handle: self.create({ 'name': knife_handle_item['name'], 'code': knife_handle_item['code'], @@ -2774,35 +2794,31 @@ class CuttingToolBasicParameters(models.Model): 'screw': knife_handle_item['fit_wrench_model'], 'nut': knife_handle_item['fit_nut_model'], 'dynamic_balance_class': knife_handle_item['dynamic_balance_class'], - 'chuck_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', knife_handle_item['fit_chuck_model_code'].replace("JKM", result[ - 'factory_short_name']))]).id, 'active': knife_handle_item['active'], }) else: - self.write({ - 'name': knife_handle_item['name'], - 'total_length': knife_handle_item['total_length'], - 'flange_shank_length': knife_handle_item['flange_length'], - 'flange_diameter': knife_handle_item['flange_diameter'], - 'shank_length': knife_handle_item['shank_length'], - 'shank_diameter': knife_handle_item['shank_diameter'], - 'min_clamping_diameter': knife_handle_item['clamping_diameter_min'], - 'max_clamping_diameter': knife_handle_item['clamping_diameter_max'], - 'clamping_mode': knife_handle_item['clamping_way'], - 'tool_changing_time': knife_handle_item['tool_changing_time'], - 'max_rotate_speed': knife_handle_item['rotate_speed_max'], - 'diameter_slip_accuracy': knife_handle_item['diameter_slip_accuracy'], - 'cooling_model': knife_handle_item['cooling_model'], - 'is_quick_cutting': knife_handle_item['is_quick_cutting'], - 'is_safe_lock': knife_handle_item['is_safe_lock'], - 'screw': knife_handle_item['fit_wrench_model'], - 'nut': knife_handle_item['fit_nut_model'], - 'dynamic_balance_class': knife_handle_item['dynamic_balance_class'], - 'chuck_id': self.env['sf.cutting_tool.standard.library'].search( - [('code', '=', knife_handle_item['fit_chuck_model_code'].replace("JKM", result[ - 'factory_short_name']))]).id, - 'active': knife_handle_item['active'], - }) + if knife_handle_item['active'] is False: + knife_handle.write({'active': False}) + else: + self.write({ + 'name': knife_handle_item['name'], + 'total_length': knife_handle_item['total_length'], + 'flange_shank_length': knife_handle_item['flange_length'], + 'flange_diameter': knife_handle_item['flange_diameter'], + 'shank_length': knife_handle_item['shank_length'], + 'shank_diameter': knife_handle_item['shank_diameter'], + 'min_clamping_diameter': knife_handle_item['clamping_diameter_min'], + 'max_clamping_diameter': knife_handle_item['clamping_diameter_max'], + 'clamping_mode': knife_handle_item['clamping_way'], + 'tool_changing_time': knife_handle_item['tool_changing_time'], + 'max_rotate_speed': knife_handle_item['rotate_speed_max'], + 'diameter_slip_accuracy': knife_handle_item['diameter_slip_accuracy'], + 'cooling_model': knife_handle_item['cooling_model'], + 'is_quick_cutting': knife_handle_item['is_quick_cutting'], + 'is_safe_lock': knife_handle_item['is_safe_lock'], + 'screw': knife_handle_item['fit_wrench_model'], + 'nut': knife_handle_item['fit_nut_model'], + 'dynamic_balance_class': knife_handle_item['dynamic_balance_class'], + }) else: raise ValidationError("刀具物料基本参数认证未通过")