@@ -192,40 +218,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -240,6 +234,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index 1b2520cc..2cb292e1 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -622,6 +622,8 @@ class ResMrpWorkOrder(models.Model):
if workorder.state != 'done':
is_production_id = False
if is_production_id == True and self.name == '解除装夹':
+ for workorder in self.production_id.workorder_ids:
+ workorder.rfid_code = None
for move_raw_id in self.production_id.move_raw_ids:
move_raw_id.quantity_done = move_raw_id.product_uom_qty
self.production_id.button_mark_done1()
diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py
index 66bf6e14..d3e7bbad 100644
--- a/sf_mrs_connect/models/sync_common.py
+++ b/sf_mrs_connect/models/sync_common.py
@@ -91,20 +91,21 @@ class sfProductionMaterials(models.Model):
result = json.loads(r['result'])
if result['status'] == 1:
for item in result['production_materials_yesterday_list']:
- if item:
- materials = self.search(
- [("materials_no", '=', item['materials_no'], ('active', 'in', [True, False]))])
- if materials:
- materials.name = item['name']
- materials.remark = item['remark']
- materials.active = item['active']
- else:
- self.create({
- "name": item['name'],
- "materials_no": item['materials_no'],
- "remark": item['remark'],
- "active": item['active'],
- })
+ for item in result['production_materials_all_list']:
+ if item:
+ materials = self.search(
+ [("materials_no", '=', item['materials_no']), ('active', 'in', [True, False])])
+ if not materials:
+ self.create({
+ "name": item['name'],
+ "materials_no": item['materials_no'],
+ "remark": item['remark'],
+ "active": item['active'],
+ })
+ else:
+ materials.name = item['name']
+ materials.remark = item['remark']
+ materials.active = item['active']
else:
raise ValidationError("材料认证未通过")
@@ -822,9 +823,9 @@ class MachineToolType(models.Model):
control_system = self.env['sf.machine.control_system'].search(
[('code', '=', item['control_system_id'])])
brand = self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])])
- jg_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['jg_image_id'])])
- lq_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['lq_image_id'])])
- category = self.env['sf.machine_tool.category'].search([('code', '=', item['machine_tool_category'])])
+ jg_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['jg_image_id'])]).ids
+ lq_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['lq_image_id'])]).ids
+ category = self.env['sf.machine_tool.category'].search([('code', '=', item['machine_tool_category']), ('active', '=', True)], limit=1)
if not machine_tool_type:
self.create({
@@ -904,8 +905,8 @@ class MachineToolType(models.Model):
"tool_perimeter_diameter_max": item['tool_perimeter_diameter_max'],
"T_tool_time": item['T_tool_time'],
"C_tool_time": item['C_tool_time'],
- "jg_image_id": jg_image_id.ids,
- "lq_image_id": lq_image_id.ids,
+ "jg_image_id": jg_image_id,
+ "lq_image_id": lq_image_id,
})
else:
@@ -986,8 +987,9 @@ class MachineToolType(models.Model):
"tool_perimeter_diameter_max": item['tool_perimeter_diameter_max'],
"T_tool_time": item['T_tool_time'],
"C_tool_time": item['C_tool_time'],
- "jg_image_id": jg_image_id.ids,
- "lq_image_id": lq_image_id.ids,
+
+ "jg_image_id": jg_image_id,
+ "lq_image_id": lq_image_id,
})
else:
@@ -2437,400 +2439,40 @@ class CuttingToolBasicParameters(models.Model):
result = json.loads(r['result'])
if result['status'] == 1:
if 'basic_parameters_integral_tool' in result['cutting_tool_basic_parameters_all_list']:
- 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']), ('active', 'in', [True, False])])
- if not integral_tool:
- self.create({
- 'name': integral_tool_item['name'],
- 'code': integral_tool_item['code'],
- 'cutting_tool_type': '整体式刀具',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', integral_tool_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- 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'],
- })
- if 'basic_parameters_blade' in result['cutting_tool_basic_parameters_all_list']:
- 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']), ('active', 'in', [True, False])])
- if not blade:
- self.create({
- 'name': blade_item['name'],
- 'code': blade_item['code'],
- 'cutting_tool_type': '刀片',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', blade_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- 'chip_breaker_type_code': blade_item['chip_breaker_type_code'],
- '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'],
- })
- else:
- self.write({
- 'name': integral_tool_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'],
- 'chip_breaker_type_code': blade_item['chip_breaker_type_code'],
- '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'],
- })
- if 'basic_parameters_chuck' in result['cutting_tool_basic_parameters_all_list']:
- 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']), ('active', 'in', [True, False])])
- if not chuck:
- self.create({
- 'name': chuck_item['name'],
- 'code': chuck_item['code'],
- 'cutting_tool_type': '夹头',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', chuck_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- 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'],
- 'cooling_jacket': chuck_item['cooling_sleeve_model'],
- 'active': chuck_item['active'],
- })
- if 'basic_parameters_cutter_arbor' in result['cutting_tool_basic_parameters_all_list']:
- 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']), ('active', 'in', [True, False])])
- if not cutter_arbor:
- self.create({
- 'name': cutter_arbor_item['name'],
- 'code': cutter_arbor_item['code'],
- 'cutting_tool_type': '刀杆',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', cutter_arbor_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- 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'],
- })
- if 'basic_parameters_cutter_head' in result['cutting_tool_basic_parameters_all_list']:
- 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']), ('active', 'in', [True, False])])
- if not cutter_head:
- self.create({
- 'name': cutter_head_item['name'],
- 'code': cutter_head_item['code'],
- 'cutting_tool_type': '刀盘',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', cutter_head_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- 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'],
- })
- if 'basic_parameters_knife_handle' in result['cutting_tool_basic_parameters_all_list']:
- 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']), ('active', 'in', [True, False])])
- if not knife_handle:
- self.create({
- 'name': knife_handle_item['name'],
- 'code': knife_handle_item['code'],
- 'cutting_tool_type': '刀柄',
- 'taper_shank_model': knife_handle_item['taper_shank_model'],
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', knife_handle_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- 'active': knife_handle_item['active'],
- })
- else:
- self.write({
- 'name': knife_handle_item['name'],
- 'taper_shank_model': knife_handle_item['taper_shank_model'],
- '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'],
- 'active': knife_handle_item['active'],
- })
- else:
- raise ValidationError("刀具物料基本参数认证未通过")
-
- def sync_cutting_tool_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 'basic_parameters_integral_tool' in result['cutting_tool_basic_parameters_yesterday_list']:
- basic_parameters_integral_tool_list = json.loads(
- result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
- if not integral_tool:
- self.create({
- 'name': integral_tool_item['name'],
- 'code': integral_tool_item['code'],
- 'cutting_tool_type': '整体式刀具',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', integral_tool_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- else:
- if integral_tool_item['active'] is False:
- integral_tool.write({'active': False})
+ if result['cutting_tool_basic_parameters_all_list']['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']), ('active', 'in', [True, False])])
+ if not integral_tool:
+ self.create({
+ 'name': integral_tool_item['name'],
+ 'code': integral_tool_item['code'],
+ 'cutting_tool_type': '整体式刀具',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [(
+ 'code', '=', integral_tool_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ })
else:
self.write({
'name': integral_tool_item['name'],
@@ -2852,47 +2494,46 @@ class CuttingToolBasicParameters(models.Model):
'cutting_depth': integral_tool_item['cutting_depth_max'],
'active': integral_tool_item['active'],
})
- if 'basic_parameters_blade' in result['cutting_tool_basic_parameters_yesterday_list']:
- basic_parameters_blade_list = json.loads(
- result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_blade'])
- if basic_parameters_blade_list:
- for blade_item in basic_parameters_blade_list:
- blade = self.search([('code', '=', blade_item['code']), ('active', 'in', [True, False])])
- if not blade:
- self.create({
- 'name': blade_item['name'],
- 'code': blade_item['code'],
- 'cutting_tool_type': '刀片',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', blade_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- 'chip_breaker_type_code': blade_item['chip_breaker_type_code'],
- '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'],
- })
- else:
- if blade_item['active'] is False:
- blade.write({'active': False})
+ if 'basic_parameters_blade' in result['cutting_tool_basic_parameters_all_list']:
+ if result['cutting_tool_basic_parameters_all_list']['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']), ('active', 'in', [True, False])])
+ if not blade:
+ self.create({
+ 'name': blade_item['name'],
+ 'code': blade_item['code'],
+ 'cutting_tool_type': '刀片',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', blade_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ 'chip_breaker_type_code': blade_item['chip_breaker_type_code'],
+ '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'],
+ })
else:
self.write({
'name': blade_item['name'],
@@ -2919,38 +2560,37 @@ class CuttingToolBasicParameters(models.Model):
'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'],
+ })
+ if 'basic_parameters_chuck' in result['cutting_tool_basic_parameters_all_list']:
+ if result['cutting_tool_basic_parameters_all_list']['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']), ('active', 'in', [True, False])])
+ if not chuck:
+ self.create({
+ 'name': chuck_item['name'],
+ 'code': chuck_item['code'],
+ 'cutting_tool_type': '夹头',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', chuck_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
})
- if 'basic_parameters_chuck' in result['cutting_tool_basic_parameters_yesterday_list']:
- basic_parameters_chuck_list = json.loads(
- result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_chuck'])
- if basic_parameters_chuck_list:
- for chuck_item in basic_parameters_chuck_list:
- chuck = self.search([('code', '=', chuck_item['code']), ('active', 'in', [True, False])])
- if not chuck:
- self.create({
- 'name': chuck_item['name'],
- 'code': chuck_item['code'],
- 'cutting_tool_type': '夹头',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', chuck_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- else:
- if chuck_item['active'] is False:
- chuck.write({'active': False})
else:
self.write({
'name': chuck_item['name'],
@@ -2966,51 +2606,50 @@ class CuttingToolBasicParameters(models.Model):
'weight': chuck_item['weight'],
'max_load_capacity': chuck_item['load_capacity_max'],
'cooling_jacket': chuck_item['cooling_sleeve_model'],
+ 'active': chuck_item['active'],
+ })
+ if 'basic_parameters_cutter_arbor' in result['cutting_tool_basic_parameters_all_list']:
+ if result['cutting_tool_basic_parameters_all_list']['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']), ('active', 'in', [True, False])])
+ if not cutter_arbor:
+ self.create({
+ 'name': cutter_arbor_item['name'],
+ 'code': cutter_arbor_item['code'],
+ 'cutting_tool_type': '刀杆',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', cutter_arbor_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
})
- if 'basic_parameters_cutter_arbor' in result['cutting_tool_basic_parameters_yesterday_list']:
- basic_parameters_cutter_arbor_list = json.loads(
- result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
- if not cutter_arbor:
- self.create({
- 'name': cutter_arbor_item['name'],
- 'code': cutter_arbor_item['code'],
- 'cutting_tool_type': '刀杆',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', cutter_arbor_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- else:
- if cutter_arbor_item['active'] is False:
- cutter_arbor.write({'active': False})
else:
self.write({
'name': cutter_arbor_item['name'],
@@ -3038,44 +2677,43 @@ class CuttingToolBasicParameters(models.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'],
+ })
+ if 'basic_parameters_cutter_head' in result['cutting_tool_basic_parameters_all_list']:
+ if result['cutting_tool_basic_parameters_all_list']['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']), ('active', 'in', [True, False])])
+ if not cutter_head:
+ self.create({
+ 'name': cutter_head_item['name'],
+ 'code': cutter_head_item['code'],
+ 'cutting_tool_type': '刀盘',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', cutter_head_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
})
- if 'basic_parameters_cutter_head' in result['cutting_tool_basic_parameters_yesterday_list']:
- basic_parameters_cutter_head_list = json.loads(
- result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
- if not cutter_head:
- self.create({
- 'name': cutter_head_item['name'],
- 'code': cutter_head_item['code'],
- 'cutting_tool_type': '刀盘',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', cutter_head_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- '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'],
- })
- else:
- if cutter_head_item['active'] is False:
- cutter_head.write({'active': False})
else:
self.write({
'name': cutter_head_item['name'],
@@ -3096,48 +2734,406 @@ class CuttingToolBasicParameters(models.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'],
+ })
+ if 'basic_parameters_knife_handle' in result['cutting_tool_basic_parameters_all_list']:
+ if result['cutting_tool_basic_parameters_all_list']['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']), ('active', 'in', [True, False])])
+ if not knife_handle:
+ self.create({
+ 'name': knife_handle_item['name'],
+ 'code': knife_handle_item['code'],
+ 'cutting_tool_type': '刀柄',
+ 'taper_shank_model': knife_handle_item['taper_shank_model'],
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', knife_handle_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ 'active': knife_handle_item['active'],
})
- if 'basic_parameters_knife_handle' in result['cutting_tool_basic_parameters_yesterday_list']:
- basic_parameters_knife_handle_list = json.loads(
- result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
- if not knife_handle:
- self.create({
- 'name': knife_handle_item['name'],
- 'code': knife_handle_item['code'],
- 'cutting_tool_type': '刀柄',
- 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
- [('code', '=', knife_handle_item['standard_library_code'].replace("JKM", result[
- 'factory_short_name']))]).id,
- 'total_length': knife_handle_item['total_length'],
- 'taper_shank_model': knife_handle_item['taper_shank_model'],
- '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'],
- 'active': knife_handle_item['active'],
- })
- else:
- if knife_handle_item['active'] is False:
- knife_handle.write({'active': False})
else:
self.write({
'name': knife_handle_item['name'],
+ 'taper_shank_model': knife_handle_item['taper_shank_model'],
+ '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'],
+ 'active': knife_handle_item['active'],
+ })
+ else:
+ raise ValidationError("刀具物料基本参数认证未通过")
+
+ def sync_cutting_tool_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 'basic_parameters_integral_tool' in result['cutting_tool_basic_parameters_yesterday_list']:
+ if result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_integral_tool']:
+ basic_parameters_integral_tool_list = json.loads(
+ result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
+ if not integral_tool:
+ self.create({
+ 'name': integral_tool_item['name'],
+ 'code': integral_tool_item['code'],
+ 'cutting_tool_type': '整体式刀具',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [(
+ 'code', '=', integral_tool_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ })
+ else:
+ 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'],
+ })
+ if 'basic_parameters_blade' in result['cutting_tool_basic_parameters_yesterday_list']:
+ if result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_blade']:
+ basic_parameters_blade_list = json.loads(
+ result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_blade'])
+ if basic_parameters_blade_list:
+ for blade_item in basic_parameters_blade_list:
+ blade = self.search([('code', '=', blade_item['code']), ('active', 'in', [True, False])])
+ if not blade:
+ self.create({
+ 'name': blade_item['name'],
+ 'code': blade_item['code'],
+ 'cutting_tool_type': '刀片',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', blade_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ 'chip_breaker_type_code': blade_item['chip_breaker_type_code'],
+ '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'],
+ })
+ else:
+ 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'],
+ 'chip_breaker_type_code': blade_item['chip_breaker_type_code'],
+ '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'],
+ })
+ if 'basic_parameters_chuck' in result['cutting_tool_basic_parameters_yesterday_list']:
+ if result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_chuck']:
+ basic_parameters_chuck_list = json.loads(
+ result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_chuck'])
+ if basic_parameters_chuck_list:
+ for chuck_item in basic_parameters_chuck_list:
+ chuck = self.search([('code', '=', chuck_item['code']), ('active', 'in', [True, False])])
+ if not chuck:
+ self.create({
+ 'name': chuck_item['name'],
+ 'code': chuck_item['code'],
+ 'cutting_tool_type': '夹头',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', chuck_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ })
+ else:
+ 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'],
+ })
+ if 'basic_parameters_cutter_arbor' in result['cutting_tool_basic_parameters_yesterday_list']:
+ if result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_cutter_arbor']:
+ basic_parameters_cutter_arbor_list = json.loads(
+ result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
+ if not cutter_arbor:
+ self.create({
+ 'name': cutter_arbor_item['name'],
+ 'code': cutter_arbor_item['code'],
+ 'cutting_tool_type': '刀杆',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', cutter_arbor_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ })
+ else:
+ 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'],
+ })
+ if 'basic_parameters_cutter_head' in result['cutting_tool_basic_parameters_yesterday_list']:
+ if result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_cutter_head']:
+ basic_parameters_cutter_head_list = json.loads(
+ result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
+ if not cutter_head:
+ self.create({
+ 'name': cutter_head_item['name'],
+ 'code': cutter_head_item['code'],
+ 'cutting_tool_type': '刀盘',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', cutter_head_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
+ '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'],
+ })
+ else:
+ 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'],
+ })
+ if 'basic_parameters_knife_handle' in result['cutting_tool_basic_parameters_yesterday_list']:
+ if result['cutting_tool_basic_parameters_yesterday_list']['basic_parameters_knife_handle']:
+ basic_parameters_knife_handle_list = json.loads(
+ result['cutting_tool_basic_parameters_yesterday_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']), ('active', 'in', [True, False])])
+ if not knife_handle:
+ self.create({
+ 'name': knife_handle_item['name'],
+ 'code': knife_handle_item['code'],
+ 'cutting_tool_type': '刀柄',
+ 'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
+ [('code', '=', knife_handle_item['standard_library_code'].replace("JKM", result[
+ 'factory_short_name']))]).id,
'total_length': knife_handle_item['total_length'],
'taper_shank_model': knife_handle_item['taper_shank_model'],
'flange_shank_length': knife_handle_item['flange_length'],
@@ -3156,6 +3152,32 @@ 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'],
+ 'active': knife_handle_item['active'],
})
+ else:
+ 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'],
+ 'taper_shank_model': knife_handle_item['taper_shank_model'],
+ '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("刀具物料基本参数认证未通过")