Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具物料与夹具物料的反注册

# Conflicts:
#	sf_base/views/base_view.xml
This commit is contained in:
jinling.yang
2023-08-17 18:03:12 +08:00
16 changed files with 1038 additions and 1557 deletions

View File

@@ -132,6 +132,40 @@
<field name="doall" eval="False"/>
</record>
<record model="ir.cron" id="sf_cutting_tool_material">
<field name="name">同步刀具物料</field>
<field name="model_id" ref="model_sf_cutting_tool_material"/>
<field name="state">code</field>
<field name="code">model.sync_cutting_tool_material()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
</record>
<record model="ir.cron" id="sf_cutting_tool_type">
<field name="name">同步刀具类型</field>
<field name="model_id" ref="model_sf_cutting_tool_type"/>
<field name="state">code</field>
<field name="code">model.sync_tool_type()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
</record>
<record model="ir.cron" id="sf_cutting_tool_model">
<field name="name">同步刀具型号</field>
<field name="model_id" ref="model_sf_cutting_tool_model"/>
<field name="state">code</field>
<field name="code">model.sync_tool_model()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
</record>
<record model="ir.cron" id="sf_cron15">
<field name="name">同步功能刀具型号</field>
<field name="model_id" ref="model_sf_functional_cutting_tool"/>
@@ -166,7 +200,7 @@
</record>
<record model="ir.cron" id="sf_multi_mounting_type">
<field name="name">同步联装类型列表</field>
<field name="name">同步联装类型</field>
<field name="model_id" ref="model_sf_multi_mounting_type"/>
<field name="state">code</field>
<field name="code">model.sync_multi_mounting_type()</field>

View File

@@ -1835,35 +1835,24 @@ class SfToolType(models.Model):
_logger.info('result:%s' % result)
for item in result['mrs_cutting_tool_type_yesterday_list']:
if item:
brand = self.env['sf.cutting.tool.type'].search(
cutting_tool_type = self.env['sf.cutting.tool.type'].search(
[("code", '=', item['code'])])
if not brand:
if not cutting_tool_type:
self.env['sf.cutting.tool.type'].create({
"name": item['name'],
"code": item['code'],
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"integral_tool_type_code": item['integral_tool_type_code'],
"blade_type_code": item['blade_type_code'],
"bar_type_code": item['bar_type_code'],
"pad_type_code": item['pad_type_code'],
"handle_type_code": item['handle_type_code'],
"chuck_type_code": item['chuck_type_code'],
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"remark": item['remark'],
"active": item['active'],
})
else:
brand.write({
cutting_tool_type.write({
"name": item['name'],
"code": item['code'],
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"integral_tool_type_code": item['integral_tool_type_code'],
"blade_type_code": item['blade_type_code'],
"bar_type_code": item['bar_type_code'],
"pad_type_code": item['pad_type_code'],
"handle_type_code": item['handle_type_code'],
"chuck_type_code": item['chuck_type_code'],
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"remark": item['remark'],
"active": item['active'],
})
else:
@@ -1884,35 +1873,24 @@ class SfToolType(models.Model):
_logger.info('result:%s' % result)
for item in result['mrs_cutting_tool_type_all_list']:
if item:
brand = self.env['sf.cutting.tool.type'].search(
cutting_tool_type = self.env['sf.cutting.tool.type'].search(
[("code", '=', item['code'])])
if not brand:
if not cutting_tool_type:
self.env['sf.cutting.tool.type'].create({
"name": item['name'],
"code": item['code'],
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"integral_tool_type_code": item['integral_tool_type_code'],
"blade_type_code": item['blade_type_code'],
"bar_type_code": item['bar_type_code'],
"pad_type_code": item['pad_type_code'],
"handle_type_code": item['handle_type_code'],
"chuck_type_code": item['chuck_type_code'],
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"remark": item['remark'],
"active": item['active'],
})
else:
brand.write({
cutting_tool_type.write({
"name": item['name'],
"code": item['code'],
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"integral_tool_type_code": item['integral_tool_type_code'],
"blade_type_code": item['blade_type_code'],
"bar_type_code": item['bar_type_code'],
"pad_type_code": item['pad_type_code'],
"handle_type_code": item['handle_type_code'],
"chuck_type_code": item['chuck_type_code'],
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"remark": item['remark'],
"active": item['active'],
})
else:
@@ -1940,276 +1918,124 @@ class SfToolModel(models.Model):
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_cutting_tool_model_yesterday_list']:
mrs_cutting_tool_model_blade_cutter_bar_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_bar_ids'):
for mrs_cutting_tool_model_blade_cutter_bar_id in item[
'mrs_cutting_tool_model_blade_cutter_bar_ids']:
mrs_cutting_tool_model_blade_cutter_bar_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_bar_id)]).id)
mrs_cutting_tool_model_blade_cutter_pad_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_pad_ids'):
for mrs_cutting_tool_model_blade_cutter_pad_id in item[
'mrs_cutting_tool_model_blade_cutter_pad_ids']:
mrs_cutting_tool_model_blade_cutter_pad_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_pad_id)]).id)
mrs_cutting_tool_model_bar_blade_ids_list = []
if item.get('mrs_cutting_tool_model_bar_blade_ids'):
for mrs_cutting_tool_model_bar_blade_id in item['mrs_cutting_tool_model_bar_blade_ids']:
mrs_cutting_tool_model_bar_blade_ids_list.append(self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_bar_blade_id)]).id)
mrs_cutting_tool_model_pad_blade_ids_list = []
if item.get('mrs_cutting_tool_model_pad_blade_ids'):
for mrs_cutting_tool_model_pad_blade_id in item['mrs_cutting_tool_model_pad_blade_ids']:
mrs_cutting_tool_model_pad_blade_ids_list.append(self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_pad_blade_id)]).id)
mrs_cutting_tool_model_handle_chuck_model_ids_list = []
if item.get('mrs_cutting_tool_model_handle_chuck_model_ids'):
for mrs_cutting_tool_model_handle_chuck_model_id in item[
'mrs_cutting_tool_model_handle_chuck_model_ids']:
mrs_cutting_tool_model_handle_chuck_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_handle_chuck_model_id)]).id)
mrs_cutting_tool_model_chuck_handle_model_ids_list = []
if item.get('mrs_cutting_tool_model_chuck_handle_model_ids'):
for mrs_cutting_tool_model_chuck_handle_model_id in item[
'mrs_cutting_tool_model_chuck_handle_model_ids']:
mrs_cutting_tool_model_chuck_handle_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_chuck_handle_model_id)]).id)
if item:
brand = self.env['sf.cutting.tool.model'].search(
[("code", '=', item['code'])])
if item.get('image'):
image = base64.b64decode(item['image'])
else:
image = ''
if not brand:
new_record = self.env['sf.cutting.tool.model'].create({
"name": item['name'],
"code": item['code'],
"mrs_machine_brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['mrs_machine_brand_id'])]).id,
"mrs_materials_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['mrs_materials_model_id'])]).id,
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"mrs_cutting_tool_material_name": item['mrs_cutting_tool_material_name'],
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['mrs_cutting_tool_type_id'])]).id,
"integral_code": item['integral_code'],
"integral_total_length": item['integral_total_length'],
"integral_shank_length": item['integral_shank_length'],
"integral_blade_length": item['integral_blade_length'],
"integral_diameter": item['integral_diameter'],
"integral_blade_number": item['integral_blade_number'],
"integral_front_angle": item['integral_front_angle'],
"integral_rear_angle": item['integral_rear_angle'],
"integral_main_included_angle": item['integral_main_included_angle'],
"integral_nut": item['integral_nut'],
"integral_scope": item['integral_scope'],
"blade_code": item['blade_code'],
"blade_length": item['blade_length'],
"blade_width": item['blade_width'],
"blade_height": item['blade_height'],
"blade_top_angle": item['blade_top_angle'],
"blade_front_angle": item['blade_front_angle'],
"blade_rear_angle": item['blade_rear_angle'],
"blade_main_included_angle": item['blade_main_included_angle'],
"blade_r_angle": item['blade_r_angle'],
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
"bar_blade_number": item['bar_blade_number'],
"bar_d_diameter": item['bar_d_diameter'],
"mrs_cutting_tool_model_bar_blade_ids": mrs_cutting_tool_model_bar_blade_ids_list,
"bar_wrench": item['bar_wrench'],
"bar_screw": item['bar_screw'],
"bar_radius": item['bar_radius'],
"bar_accuracy": item['bar_accuracy'],
"bar_hardness": item['bar_hardness'],
"bar_scope": item['bar_scope'],
"pad_code": item['pad_code'],
"pad_c_diameter": item['pad_c_diameter'],
"pad_total_length": item['pad_total_length'],
"pad_blade_number": item['pad_blade_number'],
"pad_d_diameter": item['pad_d_diameter'],
"mrs_cutting_tool_model_pad_blade_ids": mrs_cutting_tool_model_pad_blade_ids_list,
"pad_wrench": item['pad_wrench'],
"pad_screw": item['pad_screw'],
"pad_radius": item['pad_radius'],
"pad_accuracy": item['pad_accuracy'],
"pad_hardness": item['pad_hardness'],
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
"handle_diameter": item['handle_diameter'],
"handle_flange_length": item['handle_flange_length'],
"handle_flange_diameter": item['handle_flange_diameter'],
"handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
"handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
"handle_jump_accuracy": item['handle_jump_accuracy'],
"handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
"mrs_cutting_tool_model_handle_chuck_model_ids": [
(6, 0, mrs_cutting_tool_model_handle_chuck_model_ids_list)],
"handle_clamping_range": item['handle_clamping_range'],
"handle_detection_accuracy": item['handle_detection_accuracy'],
"handle_detection_hardness": item['handle_detection_hardness'],
"handle_standard_speed": item['handle_standard_speed'],
"chuck_code": item['chuck_code'],
"chuck_accuracy": item['chuck_accuracy'],
"chuck_diameter": item['chuck_diameter'],
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
"hide_integral": item['hide_integral'],
"hide_blade": item['hide_blade'],
"hide_cutter_bar": item['hide_cutter_bar'],
"hide_cutter_pad": item['hide_cutter_pad'],
"hide_handler": item['hide_handler'],
"hide_chuck": item['hide_chuck'],
"hide_model": item['hide_model'],
})
new_record.write({
'mrs_cutting_tool_model_handle_chuck_model_ids': [
(6, 0, [new_record.id] * len(mrs_cutting_tool_model_handle_chuck_model_ids_list))],
})
# many2many_commands = [(0, 0, {'model_id_1': new_record.id, 'model_id_2': related_record_id}) for
# related_record_id in mrs_cutting_tool_model_handle_chuck_model_ids_list]
# new_record.write({
# 'mrs_cutting_tool_model_handle_chuck_model_ids': many2many_commands,
# })
else:
brand.write({
"name": item['name'],
"code": item['code'],
"mrs_machine_brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['mrs_machine_brand_id'])]).id,
"mrs_materials_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['mrs_materials_model_id'])]).id,
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"mrs_cutting_tool_material_name": item['mrs_cutting_tool_material_name'],
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['mrs_cutting_tool_type_id'])]).id,
"integral_code": item['integral_code'],
"integral_total_length": item['integral_total_length'],
"integral_shank_length": item['integral_shank_length'],
"integral_blade_length": item['integral_blade_length'],
"integral_diameter": item['integral_diameter'],
"integral_blade_number": item['integral_blade_number'],
"integral_front_angle": item['integral_front_angle'],
"integral_rear_angle": item['integral_rear_angle'],
"integral_main_included_angle": item['integral_main_included_angle'],
"integral_nut": item['integral_nut'],
"integral_scope": item['integral_scope'],
"blade_code": item['blade_code'],
"blade_length": item['blade_length'],
"blade_width": item['blade_width'],
"blade_height": item['blade_height'],
"blade_top_angle": item['blade_top_angle'],
"blade_front_angle": item['blade_front_angle'],
"blade_rear_angle": item['blade_rear_angle'],
"blade_main_included_angle": item['blade_main_included_angle'],
"blade_r_angle": item['blade_r_angle'],
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
"bar_blade_number": item['bar_blade_number'],
"bar_d_diameter": item['bar_d_diameter'],
"mrs_cutting_tool_model_bar_blade_ids": mrs_cutting_tool_model_bar_blade_ids_list,
"bar_wrench": item['bar_wrench'],
"bar_screw": item['bar_screw'],
"bar_radius": item['bar_radius'],
"bar_accuracy": item['bar_accuracy'],
"bar_hardness": item['bar_hardness'],
"bar_scope": item['bar_scope'],
"pad_code": item['pad_code'],
"pad_c_diameter": item['pad_c_diameter'],
"pad_total_length": item['pad_total_length'],
"pad_blade_number": item['pad_blade_number'],
"pad_d_diameter": item['pad_d_diameter'],
"mrs_cutting_tool_model_pad_blade_ids": mrs_cutting_tool_model_pad_blade_ids_list,
"pad_wrench": item['pad_wrench'],
"pad_screw": item['pad_screw'],
"pad_radius": item['pad_radius'],
"pad_accuracy": item['pad_accuracy'],
"pad_hardness": item['pad_hardness'],
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
"handle_diameter": item['handle_diameter'],
"handle_flange_length": item['handle_flange_length'],
"handle_flange_diameter": item['handle_flange_diameter'],
"handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
"handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
"handle_jump_accuracy": item['handle_jump_accuracy'],
"handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
"mrs_cutting_tool_model_handle_chuck_model_ids": [
(6, 0, mrs_cutting_tool_model_handle_chuck_model_ids_list)],
"handle_clamping_range": item['handle_clamping_range'],
"handle_detection_accuracy": item['handle_detection_accuracy'],
"handle_detection_hardness": item['handle_detection_hardness'],
"handle_standard_speed": item['handle_standard_speed'],
"chuck_code": item['chuck_code'],
"chuck_accuracy": item['chuck_accuracy'],
"chuck_diameter": item['chuck_diameter'],
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
"hide_integral": item['hide_integral'],
"hide_blade": item['hide_blade'],
"hide_cutter_bar": item['hide_cutter_bar'],
"hide_cutter_pad": item['hide_cutter_pad'],
"hide_handler": item['hide_handler'],
"hide_chuck": item['hide_chuck'],
"hide_model": item['hide_model'],
})
brand.write({
'mrs_cutting_tool_model_handle_chuck_model_ids': [
(6, 0, [brand.id] * len(mrs_cutting_tool_model_handle_chuck_model_ids_list))],
})
# many2many_commands = [(0, 0, {'model_id_1': brand.id, 'model_id_2': related_record_id}) for
# related_record_id in mrs_cutting_tool_model_handle_chuck_model_ids_list]
# brand.write({
# 'mrs_cutting_tool_model_handle_chuck_model_ids': many2many_commands,
# })
print('同步所有刀柄类型列表成功')
cutting_tool_model = self.search(
[("code", '=', item['code'])])
if not cutting_tool_model:
self.env['sf.cutting.tool.model'].create({
"name": item['name'],
"code": item['code'],
"brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['brand_code'])]).id,
"material_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['material_model_code'])]).id,
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['cutting_tool_type_code'])]).id,
"tool_length": item['tool_length'],
"tool_width": item['tool_width'],
"tool_height": item['tool_height'],
"tool_thickness": item['tool_thickness'],
"tool_weight": item['tool_weight'],
"coating_material": item['coating_material'],
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
"front_angle": item['front_angle'],
"rear_angle": item['rear_angle'],
"main_included_angle": item['main_included_angle'],
"nut": item['nut'],
"top_angle": item['top_angle'],
"jump_accuracy": item['jump_accuracy'],
"working_hardness": item['working_hardness'],
"blade_diameter": item['blade_diameter'],
"wrench": item['wrench'],
"screw": item['screw'],
"accuracy_level": item['accuracy_level'],
"diameter_max": item['diameter_max'],
"clamping_diameter": item['clamping_diameter'],
"flange_length": item['flange_length'],
'chuck_ids': [(6, 0, [])] if not item.get('chuck_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['chuck_codes']),
'cutter_bar_ids': [(6, 0, [])] if not item.get('cutter_bar_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_bar_codes']),
'cutter_pad_ids': [(6, 0, [])] if not item.get('cutter_pad_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_pad_codes']),
'blade_ids': [(6, 0, [])] if not item.get('blade_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['blade_codes']),
'handle_ids': [(6, 0, [])] if not item.get('handle_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['handle_codes']),
"flange_diameter": item['flange_diameter'],
"outer_diameter": item['outer_diameter'],
"inner_diameter": item['inner_diameter'],
"active": item['active'],
})
else:
cutting_tool_model.write({
"name": item['name'],
"code": item['code'],
"brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['brand_code'])]).id,
"material_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['material_model_code'])]).id,
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['cutting_tool_type_code'])]).id,
"tool_length": item['tool_length'],
"tool_width": item['tool_width'],
"tool_height": item['tool_height'],
"tool_thickness": item['tool_thickness'],
"tool_weight": item['tool_weight'],
"coating_material": item['coating_material'],
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
"front_angle": item['front_angle'],
"rear_angle": item['rear_angle'],
"main_included_angle": item['main_included_angle'],
"nut": item['nut'],
"top_angle": item['top_angle'],
"jump_accuracy": item['jump_accuracy'],
"working_hardness": item['working_hardness'],
"blade_diameter": item['blade_diameter'],
"wrench": item['wrench'],
"screw": item['screw'],
"accuracy_level": item['accuracy_level'],
"diameter_max": item['diameter_max'],
"clamping_diameter": item['clamping_diameter'],
"flange_length": item['flange_length'],
'chuck_ids': [(6, 0, [])] if not item.get('chuck_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['chuck_codes']),
'cutter_bar_ids': [(6, 0, [])] if not item.get('cutter_bar_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_bar_codes']),
'cutter_pad_ids': [(6, 0, [])] if not item.get('cutter_pad_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_pad_codes']),
'blade_ids': [(6, 0, [])] if not item.get('blade_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['blade_codes']),
'handle_ids': [(6, 0, [])] if not item.get('handle_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['handle_codes']),
"flange_diameter": item['flange_diameter'],
"outer_diameter": item['outer_diameter'],
"inner_diameter": item['inner_diameter'],
"active": item['active'],
})
print('同步所有刀柄类型列表成功')
else:
raise ValidationError("认证未通过")
# 同步所有刀具型号列表
# 同步所有刀具型号列表
def sync_all_tool_model(self):
sf_sync_config = self.env['res.config.settings'].get_values()
token = sf_sync_config['token']
@@ -2224,266 +2050,118 @@ class SfToolModel(models.Model):
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_cutting_tool_model_all_list']:
mrs_cutting_tool_model_blade_cutter_bar_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_bar_ids'):
for mrs_cutting_tool_model_blade_cutter_bar_id in item[
'mrs_cutting_tool_model_blade_cutter_bar_ids']:
mrs_cutting_tool_model_blade_cutter_bar_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_bar_id)]).id)
mrs_cutting_tool_model_blade_cutter_pad_ids_list = []
if item.get('mrs_cutting_tool_model_blade_cutter_pad_ids'):
for mrs_cutting_tool_model_blade_cutter_pad_id in item[
'mrs_cutting_tool_model_blade_cutter_pad_ids']:
mrs_cutting_tool_model_blade_cutter_pad_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_blade_cutter_pad_id)]).id)
mrs_cutting_tool_model_bar_blade_ids_list = []
if item.get('mrs_cutting_tool_model_bar_blade_ids'):
for mrs_cutting_tool_model_bar_blade_id in item['mrs_cutting_tool_model_bar_blade_ids']:
mrs_cutting_tool_model_bar_blade_ids_list.append(self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_bar_blade_id)]).id)
mrs_cutting_tool_model_pad_blade_ids_list = []
if item.get('mrs_cutting_tool_model_pad_blade_ids'):
for mrs_cutting_tool_model_pad_blade_id in item['mrs_cutting_tool_model_pad_blade_ids']:
mrs_cutting_tool_model_pad_blade_ids_list.append(self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_pad_blade_id)]).id)
mrs_cutting_tool_model_handle_chuck_model_ids_list = []
if item.get('mrs_cutting_tool_model_handle_chuck_model_ids'):
for mrs_cutting_tool_model_handle_chuck_model_id in item[
'mrs_cutting_tool_model_handle_chuck_model_ids']:
mrs_cutting_tool_model_handle_chuck_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_handle_chuck_model_id)]).id)
mrs_cutting_tool_model_chuck_handle_model_ids_list = []
if item.get('mrs_cutting_tool_model_chuck_handle_model_ids'):
for mrs_cutting_tool_model_chuck_handle_model_id in item[
'mrs_cutting_tool_model_chuck_handle_model_ids']:
mrs_cutting_tool_model_chuck_handle_model_ids_list.append(
self.env['sf.cutting.tool.model'].search(
[("code", '=', mrs_cutting_tool_model_chuck_handle_model_id)]).id)
if item:
brand = self.env['sf.cutting.tool.model'].search(
[("code", '=', item['code'])])
if item.get('image'):
image = base64.b64decode(item['image'])
else:
image = ''
if not brand:
new_record = self.env['sf.cutting.tool.model'].create({
"name": item['name'],
"code": item['code'],
"mrs_machine_brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['mrs_machine_brand_id'])]).id,
"mrs_materials_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['mrs_materials_model_id'])]).id,
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"mrs_cutting_tool_material_name": item['mrs_cutting_tool_material_name'],
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['mrs_cutting_tool_type_id'])]).id,
"integral_code": item['integral_code'],
"integral_total_length": item['integral_total_length'],
"integral_shank_length": item['integral_shank_length'],
"integral_blade_length": item['integral_blade_length'],
"integral_diameter": item['integral_diameter'],
"integral_blade_number": item['integral_blade_number'],
"integral_front_angle": item['integral_front_angle'],
"integral_rear_angle": item['integral_rear_angle'],
"integral_main_included_angle": item['integral_main_included_angle'],
"integral_nut": item['integral_nut'],
"integral_scope": item['integral_scope'],
"blade_code": item['blade_code'],
"blade_length": item['blade_length'],
"blade_width": item['blade_width'],
"blade_height": item['blade_height'],
"blade_top_angle": item['blade_top_angle'],
"blade_front_angle": item['blade_front_angle'],
"blade_rear_angle": item['blade_rear_angle'],
"blade_main_included_angle": item['blade_main_included_angle'],
"blade_r_angle": item['blade_r_angle'],
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
"bar_blade_number": item['bar_blade_number'],
"bar_d_diameter": item['bar_d_diameter'],
"mrs_cutting_tool_model_bar_blade_ids": mrs_cutting_tool_model_bar_blade_ids_list,
"bar_wrench": item['bar_wrench'],
"bar_screw": item['bar_screw'],
"bar_radius": item['bar_radius'],
"bar_accuracy": item['bar_accuracy'],
"bar_hardness": item['bar_hardness'],
"bar_scope": item['bar_scope'],
"pad_code": item['pad_code'],
"pad_c_diameter": item['pad_c_diameter'],
"pad_total_length": item['pad_total_length'],
"pad_blade_number": item['pad_blade_number'],
"pad_d_diameter": item['pad_d_diameter'],
"mrs_cutting_tool_model_pad_blade_ids": mrs_cutting_tool_model_pad_blade_ids_list,
"pad_wrench": item['pad_wrench'],
"pad_screw": item['pad_screw'],
"pad_radius": item['pad_radius'],
"pad_accuracy": item['pad_accuracy'],
"pad_hardness": item['pad_hardness'],
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
"handle_diameter": item['handle_diameter'],
"handle_flange_length": item['handle_flange_length'],
"handle_flange_diameter": item['handle_flange_diameter'],
"handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
"handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
"handle_jump_accuracy": item['handle_jump_accuracy'],
"handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
# "mrs_cutting_tool_model_handle_chuck_model_ids": [(6, 0, mrs_cutting_tool_model_handle_chuck_model_ids_list)],
"handle_clamping_range": item['handle_clamping_range'],
"handle_detection_accuracy": item['handle_detection_accuracy'],
"handle_detection_hardness": item['handle_detection_hardness'],
"handle_standard_speed": item['handle_standard_speed'],
"chuck_code": item['chuck_code'],
"chuck_accuracy": item['chuck_accuracy'],
"chuck_diameter": item['chuck_diameter'],
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
"hide_integral": item['hide_integral'],
"hide_blade": item['hide_blade'],
"hide_cutter_bar": item['hide_cutter_bar'],
"hide_cutter_pad": item['hide_cutter_pad'],
"hide_handler": item['hide_handler'],
"hide_chuck": item['hide_chuck'],
"hide_model": item['hide_model'],
})
new_record.write({
'mrs_cutting_tool_model_handle_chuck_model_ids': [
(6, 0, [new_record.id] * len(mrs_cutting_tool_model_handle_chuck_model_ids_list))],
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"mrs_machine_brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['mrs_machine_brand_id'])]).id,
"mrs_materials_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['mrs_materials_model_id'])]).id,
"mrs_cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['mrs_cutting_tool_material_id'])]).id,
"mrs_cutting_tool_material_name": item['mrs_cutting_tool_material_name'],
"mrs_cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['mrs_cutting_tool_type_id'])]).id,
"integral_code": item['integral_code'],
"integral_total_length": item['integral_total_length'],
"integral_shank_length": item['integral_shank_length'],
"integral_blade_length": item['integral_blade_length'],
"integral_diameter": item['integral_diameter'],
"integral_blade_number": item['integral_blade_number'],
"integral_front_angle": item['integral_front_angle'],
"integral_rear_angle": item['integral_rear_angle'],
"integral_main_included_angle": item['integral_main_included_angle'],
"integral_nut": item['integral_nut'],
"integral_scope": item['integral_scope'],
"blade_code": item['blade_code'],
"blade_length": item['blade_length'],
"blade_width": item['blade_width'],
"blade_height": item['blade_height'],
"blade_top_angle": item['blade_top_angle'],
"blade_front_angle": item['blade_front_angle'],
"blade_rear_angle": item['blade_rear_angle'],
"blade_main_included_angle": item['blade_main_included_angle'],
"blade_r_angle": item['blade_r_angle'],
"blade_hardness": item['blade_hardness'],
"blade_radius": item['blade_radius'],
"blade_nut": item['blade_nut'],
"mrs_cutting_tool_model_blade_cutter_bar_ids":
mrs_cutting_tool_model_blade_cutter_bar_ids_list,
"mrs_cutting_tool_model_blade_cutter_pad_ids":
mrs_cutting_tool_model_blade_cutter_pad_ids_list,
"bar_code": item['bar_code'],
"bar_c_diameter": item['bar_c_diameter'],
"bar_total_length": item['bar_total_length'],
"bar_blade_number": item['bar_blade_number'],
"bar_d_diameter": item['bar_d_diameter'],
"mrs_cutting_tool_model_bar_blade_ids": mrs_cutting_tool_model_bar_blade_ids_list,
"bar_wrench": item['bar_wrench'],
"bar_screw": item['bar_screw'],
"bar_radius": item['bar_radius'],
"bar_accuracy": item['bar_accuracy'],
"bar_hardness": item['bar_hardness'],
"bar_scope": item['bar_scope'],
"pad_code": item['pad_code'],
"pad_c_diameter": item['pad_c_diameter'],
"pad_total_length": item['pad_total_length'],
"pad_blade_number": item['pad_blade_number'],
"pad_d_diameter": item['pad_d_diameter'],
"mrs_cutting_tool_model_pad_blade_ids": mrs_cutting_tool_model_pad_blade_ids_list,
"pad_wrench": item['pad_wrench'],
"pad_screw": item['pad_screw'],
"pad_radius": item['pad_radius'],
"pad_accuracy": item['pad_accuracy'],
"pad_hardness": item['pad_hardness'],
"pad_scope": item['pad_scope'],
"handle_code": item['handle_code'],
"handle_length": item['handle_length'],
"handle_diameter": item['handle_diameter'],
"handle_flange_length": item['handle_flange_length'],
"handle_flange_diameter": item['handle_flange_diameter'],
"handle_clamping_diameter_min": item['handle_clamping_diameter_min'],
"handle_clamping_diameter_max": item['handle_clamping_diameter_max'],
"handle_jump_accuracy": item['handle_jump_accuracy'],
"handle_max_speed": item['handle_max_speed'],
"handle_weight": item['handle_weight'],
"handle_body_accuracy": item['handle_body_accuracy'],
"handle_nut": item['handle_nut'],
"mrs_cutting_tool_model_handle_chuck_model_ids": [
(6, 0, mrs_cutting_tool_model_handle_chuck_model_ids_list)],
"handle_clamping_range": item['handle_clamping_range'],
"handle_detection_accuracy": item['handle_detection_accuracy'],
"handle_detection_hardness": item['handle_detection_hardness'],
"handle_standard_speed": item['handle_standard_speed'],
"chuck_code": item['chuck_code'],
"chuck_accuracy": item['chuck_accuracy'],
"chuck_diameter": item['chuck_diameter'],
"chuck_inner_diameter": item['chuck_inner_diameter'],
"chuck_height": item['chuck_height'],
"chuck_nut": item['chuck_nut'],
"mrs_cutting_tool_model_chuck_handle_model_ids":
mrs_cutting_tool_model_chuck_handle_model_ids_list,
"chuck_clamping_range": item['chuck_clamping_range'],
"chuck_feature": item['chuck_feature'],
"image": image,
"hide_integral": item['hide_integral'],
"hide_blade": item['hide_blade'],
"hide_cutter_bar": item['hide_cutter_bar'],
"hide_cutter_pad": item['hide_cutter_pad'],
"hide_handler": item['hide_handler'],
"hide_chuck": item['hide_chuck'],
"hide_model": item['hide_model'],
})
brand.write({
'mrs_cutting_tool_model_handle_chuck_model_ids': [
(6, 0, [brand.id] * len(mrs_cutting_tool_model_handle_chuck_model_ids_list))],
})
# many2many_commands = [(0, 0, {'model_id_1': brand.id, 'model_id_2': related_record_id}) for
# related_record_id in mrs_cutting_tool_model_handle_chuck_model_ids_list]
# brand.write({
# 'mrs_cutting_tool_model_handle_chuck_model_ids': many2many_commands,
# })
cutting_tool_model = self.search(
[("code", '=', item['code'])])
if not cutting_tool_model:
self.env['sf.cutting.tool.model'].create({
"name": item['name'],
"code": item['code'],
"brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['brand_code'])]).id,
"material_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['material_model_code'])]).id,
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['cutting_tool_type_code'])]).id,
"tool_length": item['tool_length'],
"tool_width": item['tool_width'],
"tool_height": item['tool_height'],
"tool_thickness": item['tool_thickness'],
"tool_weight": item['tool_weight'],
"coating_material": item['coating_material'],
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
"front_angle": item['front_angle'],
"rear_angle": item['rear_angle'],
"main_included_angle": item['main_included_angle'],
"nut": item['nut'],
"top_angle": item['top_angle'],
"jump_accuracy": item['jump_accuracy'],
"working_hardness": item['working_hardness'],
"blade_diameter": item['blade_diameter'],
"wrench": item['wrench'],
"screw": item['screw'],
"accuracy_level": item['accuracy_level'],
"diameter_max": item['diameter_max'],
"clamping_diameter": item['clamping_diameter'],
"flange_length": item['flange_length'],
'chuck_ids': [(6, 0, [])] if not item.get('chuck_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['chuck_codes']),
'cutter_bar_ids': [(6, 0, [])] if not item.get('cutter_bar_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_bar_codes']),
'cutter_pad_ids': [(6, 0, [])] if not item.get('cutter_pad_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_pad_codes']),
'blade_ids': [(6, 0, [])] if not item.get('blade_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['blade_codes']),
'handle_ids': [(6, 0, [])] if not item.get('handle_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['handle_codes']),
"flange_diameter": item['flange_diameter'],
"outer_diameter": item['outer_diameter'],
"inner_diameter": item['inner_diameter'],
"active": item['active'],
})
else:
cutting_tool_model.write({
"name": item['name'],
"code": item['code'],
"brand_id": self.env['sf.machine.brand'].search(
[("code", '=', item['brand_code'])]).id,
"material_model_id": self.env['sf.materials.model'].search(
[("materials_no", '=', item['material_model_code'])]).id,
"cutting_tool_material_id": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material_code'])]).id,
"cutting_tool_type_id": self.env['sf.cutting.tool.type'].search(
[("code", '=', item['cutting_tool_type_code'])]).id,
"tool_length": item['tool_length'],
"tool_width": item['tool_width'],
"tool_height": item['tool_height'],
"tool_thickness": item['tool_thickness'],
"tool_weight": item['tool_weight'],
"coating_material": item['coating_material'],
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
"front_angle": item['front_angle'],
"rear_angle": item['rear_angle'],
"main_included_angle": item['main_included_angle'],
"nut": item['nut'],
"top_angle": item['top_angle'],
"jump_accuracy": item['jump_accuracy'],
"working_hardness": item['working_hardness'],
"blade_diameter": item['blade_diameter'],
"wrench": item['wrench'],
"screw": item['screw'],
"accuracy_level": item['accuracy_level'],
"diameter_max": item['diameter_max'],
"clamping_diameter": item['clamping_diameter'],
"flange_length": item['flange_length'],
'chuck_ids': [(6, 0, [])] if not item.get('chuck_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['chuck_codes']),
'cutter_bar_ids': [(6, 0, [])] if not item.get('cutter_bar_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_bar_codes']),
'cutter_pad_ids': [(6, 0, [])] if not item.get('cutter_pad_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['cutter_pad_codes']),
'blade_ids': [(6, 0, [])] if not item.get('blade_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['blade_codes']),
'handle_ids': [(6, 0, [])] if not item.get('handle_codes') else
self.env['mrs.cutting.tool.dynamic.model'].sudo()._get_cutting_tool_model_ids(
item['handle_codes']),
"flange_diameter": item['flange_diameter'],
"outer_diameter": item['outer_diameter'],
"inner_diameter": item['inner_diameter'],
"active": item['active'],
})
print('同步所有刀具型号列表成功')
else:
raise ValidationError("认证未通过")