Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具基础信息生成产品模板

This commit is contained in:
jinling.yang
2023-06-15 16:14:50 +08:00
9 changed files with 678 additions and 229 deletions

View File

@@ -7,6 +7,16 @@ from odoo.exceptions import UserError
from datetime import datetime
# 功能刀具物料
class CuttingToolMaterial(models.Model):
_name = 'sf.cutting.tool.material'
_description = '刀具物料'
code = fields.Char('编码')
name = fields.Char('名称')
remark = fields.Char('备注')
# 功能刀具
class FunctionalCuttingTool(models.Model):
_name = 'sf.functional.cutting.tool'
@@ -53,6 +63,8 @@ class IntegralCuttingTool(models.Model):
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 整体式刀具类型字段,关联整体式刀具类型对象
integral_model_number = fields.Many2one('sf.integral.cutting.tool.model', '整体式刀具类型')
# 增加品牌、总长度(mm)、柄部长度(mm)、刃部长度(mm)、直径(mm)、刃数、前角(°)、后角(°)、主偏角(°)、材料型号、配对螺母(mm)、适用夹头型号、适用范围、图片、创建人、创建时间等字段
@@ -80,6 +92,8 @@ class IntegralCuttingToolModel(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Text('备注')
@@ -90,10 +104,12 @@ class Blade(models.Model):
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀片类型字段,关联刀片类型对象
blade_model_number = fields.Many2one('sf.blade.model', '刀片类型')
# 编码、型号名称、刀片类型、品牌、长度L(mm)、宽度D(mm)、高度T(mm)、顶角(°)、前角(°)、后角(°)、主偏角(°)、R角(°)、材料型号、加工硬度、配对螺母(mm)、适用刀杆/刀盘型号、刀尖半径(mm)、图片、创建人、创建时间字段
brand = fields.Many2one('sf.machine.brand', '品牌',)
brand = fields.Many2one('sf.machine.brand', '品牌', )
length = fields.Float('长度L(mm)')
width = fields.Float('宽度D(mm)')
height = fields.Float('高度T(mm)')
@@ -120,6 +136,8 @@ class BladeModel(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀片类型字段,关联刀片对象
blade_ids = fields.One2many('sf.blade', 'blade_model_number', '刀片类型')
remark = fields.Text('备注')
@@ -132,6 +150,8 @@ class CutterBar(models.Model):
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀杆类型字段,关联刀杆类型对象
cutter_bar_model_number = fields.Many2one('sf.cutter.bar.model', '刀杆类型')
# 品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间
@@ -158,6 +178,8 @@ class CutterBarModel(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Text('备注')
@@ -168,6 +190,8 @@ class CutterPad(models.Model):
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀盘类型字段,关联刀盘类型对象
cutter_pad_model_number = fields.Many2one('sf.cutter.pad.model', '刀盘类型')
# 增加品牌、C柄径(mm)、L总长(mm)、材料型号、刃数、D刃径(mm)、适用刀片型号、配对扳手(mm)、配备螺丝(mm)、刀尖圆角半径、精度等级、硬度(°)、适用范围、图片、创建人、创建时间
@@ -194,6 +218,8 @@ class CutterPadModel(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Text('备注')
@@ -204,6 +230,8 @@ class Handle(models.Model):
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 刀柄类型字段,关联刀柄类型对象
handle_model_number = fields.Many2one('sf.handle.model', '刀柄类型')
# 增加、刀柄类型、品牌、L(mm)、L1(mm)、D1(mm)、重量(kg)、材料型号、本体精度(mm)、配对螺母(mm)、适用夹头型号、夹持范围(mm)、检测精度、检测硬度、标准转速、图片、创建人、创建时间
@@ -230,6 +258,8 @@ class HandleModel(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Text('备注')
@@ -237,9 +267,12 @@ class HandleModel(models.Model):
class Chuck(models.Model):
_name = 'sf.chuck'
_description = '夹头'
_rec_name = 'code'
code = fields.Char('编码')
name = fields.Char('型号名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
# 夹头类型字段,关联夹头类型对象
chuck_model_number = fields.Many2one('sf.chuck.model', '夹头类型')
# 增加品牌、精度(mm)、外径(mm)、内径(mm)、高度(mm)、材料型号、配对螺母(mm)、适用刀柄型号、夹持范围(mm)、特性、图片、创建人、创建时间
@@ -263,5 +296,6 @@ class ChuckModel(models.Model):
code = fields.Char('编码')
name = fields.Char('名称')
# 关联刀具物料
cutting_tool_material = fields.Many2one('sf.cutting.tool.material', '刀具物料')
remark = fields.Text('备注')

View File

@@ -29,7 +29,7 @@ access_sf_handle,sf.handle,model_sf_handle,base.group_user,1,1,1,1
access_sf_handle_model,sf.handle.model,model_sf_handle_model,base.group_user,1,1,1,1
access_sf_chuck,sf.chuck,model_sf_chuck,base.group_user,1,1,1,1
access_sf_chuck_model,sf.chuck.model,model_sf_chuck_model,base.group_user,1,1,1,1
access_sf_cutting_tool_material,sf.cutting.tool.material,model_sf_cutting_tool_material,base.group_user,1,1,1,1
access_sf_fixture_setting_element,sf_fixture_setting_element,model_sf_fixture_setting_element,base.group_user,1,1,1,1
access_sf_setting_element_type,sf_setting_element_type,model_sf_setting_element_type,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
29 access_sf_chuck sf.chuck model_sf_chuck base.group_user 1 1 1 1
30 access_sf_chuck_model sf.chuck.model model_sf_chuck_model base.group_user 1 1 1 1
31 access_sf_fixture_setting_element access_sf_cutting_tool_material sf_fixture_setting_element sf.cutting.tool.material model_sf_fixture_setting_element model_sf_cutting_tool_material base.group_user 1 1 1 1
32 access_sf_setting_element_type access_sf_fixture_setting_element sf_setting_element_type sf_fixture_setting_element model_sf_setting_element_type model_sf_fixture_setting_element base.group_user 1 1 1 1
33 access_sf_fixture_clamping_element access_sf_setting_element_type sf_fixture_clamping_element sf_setting_element_type model_sf_fixture_clamping_element model_sf_setting_element_type base.group_user 1 1 1 1
34 access_sf_clamping_element_type access_sf_fixture_clamping_element sf_clamping_element_type sf_fixture_clamping_element model_sf_clamping_element_type model_sf_fixture_clamping_element base.group_user 1 1 1 1
35 access_sf_fixture_tool_setting access_sf_clamping_element_type sf_fixture_tool_setting sf_clamping_element_type model_sf_fixture_tool_setting model_sf_clamping_element_type base.group_user 1 1 1 1

View File

@@ -8,7 +8,7 @@
<menuitem id="menu_sf_functional_fixture_list_2"
name="夹具"
parent="menu_sf_base"
sequence="6"
sequence="70"
/>
<!-- <menuitem id="menu_sf_functional_fixture_list_3"-->

View File

@@ -100,17 +100,15 @@
<field name="res_model">sf.chuck.model</field>
<field name="view_mode">tree,form</field>
</record>
<!-- 刀具物料action -->
<record id="action_sf_cutting_tool_material" model="ir.actions.act_window">
<field name="name">刀具物料</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.cutting.tool.material</field>
<field name="view_mode">tree,form</field>
</record>
<!-- 刀具 -->
<!-- <menuitem -->
<!-- id="menu_sf_cutting_tool" -->
<!-- parent="mrp.menu_mrp_configuration" -->
<!-- name="刀具" -->
<!-- sequence="3" -->
<!-- /> -->
<!-- 功能刀具 -->
<!-- parent="menu_sf_cutting_tool" -->
<!-- 功能刀具 -->
<menuitem
id="menu_sf_functional_cutting_tool"
parent="menu_sf_base"
@@ -118,21 +116,15 @@
sequence="3"
action="action_sf_functional_cutting_tool"
/>
<!-- --><!-- 刀具物料 -->
<!-- <menuitem -->
<!-- id="menu_sf_cutting_tool_material" -->
<!-- parent="menu_sf_cutting_tool" -->
<!-- name="刀具物料" -->
<!-- sequence="1" -->
<!-- /> -->
<!-- 刀具物料 -->
<menuitem
id="menu_sf_cutting_tool_material"
parent="menu_sf_base"
name="刀具物料"
sequence="1"
action="action_sf_cutting_tool_material"
/>
<!-- --><!-- 刀头 -->
<!-- <menuitem -->
<!-- id="menu_sf_cutting_tool_head" -->
<!-- parent="menu_sf_cutting_tool" -->
<!-- name="刀头" -->
<!-- sequence="2" -->
<!-- /> -->
<!-- 整体式刀具 -->
<menuitem
@@ -238,7 +230,5 @@
sequence="64"
action="action_sf_cutting_tool_clamp_head_type"
/>
</data>
</odoo>

View File

@@ -1,6 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<!-- 刀具物料tree view -->
<record id="view_cutting_tool_material_tree" model="ir.ui.view">
<field name="name">sf.cutting.tool.material.tree</field>
<field name="model">sf.cutting.tool.material</field>
<field name="arch" type="xml">
<tree string="刀具物料">
<field name="code"/>
<field name="name"/>
<field name="remark"/>
</tree>
</field>
</record>
<!-- 刀具物料form view -->
<record id="view_cutting_tool_material_form" model="ir.ui.view">
<field name="name">sf.cutting.tool.material.form</field>
<field name="model">sf.cutting.tool.material</field>
<field name="arch" type="xml">
<form string="刀具物料">
<sheet>
<group col='1'>
<group string='基本信息'>
<group>
<field name="code"/>
<field name="name"/>
</group>
<group>
<field name="remark"/>
</group>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- 功能刀具tree view -->
<record id="view_functional_cutting_tool_tree" model="ir.ui.view">
<field name="name">sf.functional.cutting.tool.tree</field>
@@ -97,6 +131,7 @@
<field name="name"/>
<field name="integral_model_number"/>
<field name="brand"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>
@@ -110,6 +145,8 @@
<field name="blade_length"/>
<field name="diameter"/>
<field name="blade_number"/>
<field name="chuck_model" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="front_angle"/>
@@ -121,12 +158,12 @@
<group string='其他信息'>
<group>
<field name="nut"/>
<field name="chuck_model"/>
</group>
<group>
<field name="scope"/>
</group>
</group>
</group>
</sheet>
</form>
@@ -160,6 +197,7 @@
<field name="name"/>
<field name="blade_model_number"/>
<field name="brand" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>
@@ -173,7 +211,8 @@
<field name="height"/>
<field name="top_angle"/>
<field name="front_angle"/>
<field name="rear_angle"/>
<field name="cutter_bar" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
<field name="cutter_pad" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="main_included_angle"/>
@@ -181,15 +220,12 @@
<field name="material_model"/>
<field name="hardness"/>
<field name="radius"/>
<field name="rear_angle"/>
</group>
</group>
<group string='其他信息'>
<group>
<field name="nut"/>
<field name="cutter_bar" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="cutter_pad" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
</group>
</group>
@@ -225,6 +261,9 @@
<field name="name"/>
<field name="cutter_bar_model_number"/>
<field name="brand"/>
<field name="cutting_tool_material"/>
<field name="blade" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>
@@ -253,7 +292,6 @@
</group>
<group>
<field name="scope"/>
<field name="blade"/>
</group>
</group>
@@ -291,6 +329,9 @@
<field name="name"/>
<field name="cutter_pad_model_number"/>
<field name="brand"/>
<field name="cutting_tool_material"/>
<field name="blade" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>
@@ -318,7 +359,6 @@
</group>
<group>
<field name="scope"/>
<field name="blade"/>
</group>
</group>
</group>
@@ -355,6 +395,9 @@
<field name="name"/>
<field name="handle_model_number"/>
<field name="brand"/>
<field name="cutting_tool_material"/>
<field name="chuck_model" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>
@@ -380,7 +423,6 @@
<group string='其他信息'>
<group>
<field name="nut"/>
<field name="chuck_model"/>
</group>
<!-- <group> -->
<!-- <field name="scope"/> -->
@@ -421,6 +463,9 @@
<field name="name"/>
<field name="chuck_model_number"/>
<field name="brand"/>
<field name="cutting_tool_material"/>
<field name="handle_model" widget="many2many_tags" options="{'no_create': True, 'no_quick_create': True}"/>
</group>
<group>
<field name="image" nolabel="1" widget="image"/>
@@ -443,7 +488,6 @@
<group string='其他信息'>
<group>
<field name="nut"/>
<field name="handle_model"/>
</group>
<!-- <group> -->
<!-- <field name="scope"/> -->
@@ -513,6 +557,7 @@
<group>
<field name="code"/>
<field name="name"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="remark"/>
@@ -546,7 +591,7 @@
<group>
<field name="code"/>
<field name="name"/>
<field name="blade_ids"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="remark"/>
@@ -580,6 +625,7 @@
<group>
<field name="code"/>
<field name="name"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="remark"/>
@@ -613,6 +659,7 @@
<group>
<field name="code"/>
<field name="name"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="remark"/>
@@ -647,6 +694,7 @@
<group>
<field name="code"/>
<field name="name"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="remark"/>
@@ -680,6 +728,7 @@
<group>
<field name="code"/>
<field name="name"/>
<field name="cutting_tool_material"/>
</group>
<group>
<field name="remark"/>
@@ -689,7 +738,5 @@
</form>
</field>
</record>
</data>
</odoo>

View File

@@ -86,8 +86,8 @@
<group>
<!--整体式刀具-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_brand_id"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')],'required': [('cutting_tool', '=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_total_length"/>
<field name="cutting_tool_parameter_shank_length"/>
<field name="cutting_tool_parameter_blade_length"/>
@@ -98,7 +98,9 @@
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
<field name="cutting_tool_parameter_material_model"/>
<field name="cutting_tool_parameter_material_model_id"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')],'required': [('cutting_tool', '=', '整体式刀具')]}"/>
/>
<field name="cutting_tool_parameter_front_angle"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_rear_angle"
@@ -107,15 +109,15 @@
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
<field name="cutting_tool_parameter_chuck_model" widget="many2many_tags"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_chuck_model_ids" widget="many2many_tags"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')],'required': [('cutting_tool', '=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_scope"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
</group>
<!--刀片-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<field name="cutting_tool_parameter_brand_id"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')],'required': [('cutting_tool', '=', '刀片')]}"/>
<field name="cutting_tool_parameter_top_angle"/>
<field name="cutting_tool_parameter_front_angle"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
@@ -124,11 +126,11 @@
<field name="cutting_tool_parameter_main_included_angle"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<field name="cutting_tool_parameter_r_angle"/>
<field name="cutting_tool_parameter_working_hardness"/>
<field name="cutting_tool_parameter_working_hardness" attrs="{'required': [('cutting_tool', '=', '刀片')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}">
<field name="cutting_tool_parameter_material_model"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<field name="cutting_tool_parameter_material_model_id"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')],'required': [('cutting_tool', '=', '刀片')]}"/>
<label for="cutting_tool_parameter_length" string="尺寸[mm]"/>
<div class="o_address_format">
<label for="cutting_tool_parameter_length" string="长度L"/>
@@ -143,27 +145,27 @@
<field name="cutting_tool_parameter_radius"/>
<field name="cutting_tool_parameter_nut"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<field name="cutting_tool_parameter_cutter_bar" widget="many2many_tags"/>
<field name="cutting_tool_parameter_cutter_pad" widget="many2many_tags"/>
<field name="cutting_tool_parameter_cutter_bar_ids" widget="many2many_tags" attrs="{'required': [('cutting_tool', '=', '刀片')]}"/>
<field name="cutting_tool_parameter_cutter_pad_ids" widget="many2many_tags" attrs="{'required': [('cutting_tool', '=', '刀片')]}"/>
</group>
<!--刀杆/刀盘-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', 'not in', ['刀杆','刀盘'])]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
<field name="cutting_tool_parameter_brand_id"
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])],'required': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
<field name="cutting_tool_parameter_c_diameter"/>
<field name="cutting_tool_parameter_d_diameter"/>
<field name="cutting_tool_parameter_l_total_length"/>
<field name="cutting_tool_parameter_wrench"/>
<field name="cutting_tool_parameter_screw"/>
<field name="cutting_tool_parameter_blade" widget="many2many_tags"/>
<field name="cutting_tool_parameter_blade_ids" widget="many2many_tags"/>
<field name="cutting_tool_parameter_scope"
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', 'not in', ['刀杆','刀盘'])]}">
<field name="cutting_tool_parameter_material_model"
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
<field name="cutting_tool_parameter_material_model_id"
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])],'required': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
<field name="cutting_tool_parameter_rounded_corner"/>
<field name="cutting_tool_parameter_accuracy_level"/>
<field name="cutting_tool_parameter_blade_number"
@@ -172,8 +174,8 @@
</group>
<!--刀柄-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
<field name="cutting_tool_parameter_brand_id"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')],'required': [('cutting_tool', '=', '刀柄')]}"/>
<field name="cutting_tool_parameter_handle_length"/>
<field name="cutting_tool_parameter_length1"/>
<field name="cutting_tool_parameter_diameter1"/>
@@ -183,20 +185,20 @@
<field name="cutting_tool_parameter_clamping_range"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
<field name="cutting_tool_parameter_weight"/>
<field name="cutting_tool_parameter_chuck_model" widget="many2many_tags"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
<field name="cutting_tool_parameter_chuck_model_ids" widget="many2many_tags"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')],'required': [('cutting_tool', '=', '刀柄')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}">
<field name="cutting_tool_parameter_material_model"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
<field name="cutting_tool_parameter_material_model_id"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')],'required': [('cutting_tool', '=', '刀柄')]}"/>
<field name="cutting_tool_parameter_detection_accuracy"/>
<field name="cutting_tool_parameter_detection_hardness"/>
<field name="cutting_tool_parameter_standard_speed"/>
</group>
<!--夹头-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '夹头')]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
<field name="cutting_tool_parameter_brand_id"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')],'required': [('cutting_tool', '=', '夹头')]}"/>
<field name="cutting_tool_parameter_outer_diameter"/>
<field name="cutting_tool_parameter_inner_diameter"/>
<field name="cutting_tool_parameter_accuracy"/>
@@ -204,20 +206,17 @@
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
<field name="cutting_tool_parameter_clamping_range"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
<field name="cutting_tool_parameter_handle_model" widget="many2many_tags"
<field name="cutting_tool_parameter_handle_model_ids" widget="many2many_tags"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '夹头')]}">
<field name="cutting_tool_parameter_material_model"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
<field name="cutting_tool_parameter_material_model_id"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')],'required': [('cutting_tool', '=', '夹头')]}"/>
<field name="cutting_tool_parameter_height" string="高度[mm]"
attrs="{'invisible': [('cutting_tool', '!=', '夹头')]}"/>
<field name="cutting_tool_parameter_feature"/>
</group>
</group>
<group attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
<field name="cutting_tool_parameter_image"/>
</group>
</page>
</xpath>
</field>

View File

@@ -69,7 +69,7 @@ class ResProductTemplate(models.Model):
handle_type_id = fields.Many2one('sf.handle', '刀柄型号')
# 关联夹头型号
chuck_type_id = fields.Many2one('sf.chuck', '夹头型号')
cutting_tool_parameter_brand = fields.Many2one('sf.machine.brand', '品牌')
cutting_tool_parameter_brand_id = fields.Many2one('sf.machine.brand', '品牌')
# 整体式刀具参数
cutting_tool_parameter_total_length = fields.Float('总长度[mm]')
cutting_tool_parameter_shank_length = fields.Float('柄部长度[mm]')
@@ -79,12 +79,11 @@ class ResProductTemplate(models.Model):
cutting_tool_parameter_front_angle = fields.Float('前角(°)')
cutting_tool_parameter_rear_angle = fields.Float('后角(°)')
cutting_tool_parameter_main_included_angle = fields.Float('主偏角(°)')
cutting_tool_parameter_material_model = fields.Many2one('sf.materials.model', '材料型号')
cutting_tool_parameter_material_model_id = fields.Many2one('sf.materials.model', '材料型号')
cutting_tool_parameter_nut = fields.Float('配对螺母[mm]')
# 适用夹头型号可以多选
cutting_tool_parameter_chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号')
cutting_tool_parameter_chuck_model_ids = fields.Many2many('sf.chuck', string='适用夹头型号')
cutting_tool_parameter_scope = fields.Char('适用范围')
cutting_tool_parameter_image = fields.Binary('图片')
# 刀片参数
cutting_tool_parameter_length = fields.Float('长度L[mm]')
cutting_tool_parameter_width = fields.Float('宽度D[mm])')
@@ -92,14 +91,14 @@ class ResProductTemplate(models.Model):
cutting_tool_parameter_top_angle = fields.Float('顶角(°)')
cutting_tool_parameter_r_angle = fields.Float('R角(°)')
cutting_tool_parameter_working_hardness = fields.Char('加工硬度')
cutting_tool_parameter_cutter_bar = fields.Many2many('sf.cutter.bar', string='适用刀杆型号')
cutting_tool_parameter_cutter_pad = fields.Many2many('sf.cutter.pad', string='适用刀盘型号')
cutting_tool_parameter_cutter_bar_ids = fields.Many2many('sf.cutter.bar', string='适用刀杆型号')
cutting_tool_parameter_cutter_pad_ids = fields.Many2many('sf.cutter.pad', string='适用刀盘型号')
cutting_tool_parameter_radius = fields.Float('刀尖半径[mm]')
# 刀杆/刀盘参数
cutting_tool_parameter_c_diameter = fields.Float('C柄径[mm]')
cutting_tool_parameter_l_total_length = fields.Float('L总长[mm]')
cutting_tool_parameter_d_diameter = fields.Float('D刃径[mm]')
cutting_tool_parameter_blade = fields.Many2many('sf.blade', string='适用刀片型号')
cutting_tool_parameter_blade_ids = fields.Many2many('sf.blade', string='适用刀片型号')
cutting_tool_parameter_wrench = fields.Float('配对扳手[mm]')
cutting_tool_parameter_screw = fields.Float('配备螺丝[mm]')
cutting_tool_parameter_accuracy_level = fields.Char('精度等级')
@@ -113,15 +112,187 @@ class ResProductTemplate(models.Model):
cutting_tool_parameter_body_accuracy = fields.Float('本体精度[mm]')
cutting_tool_parameter_clamping_range = fields.Float('夹持范围[mm]')
cutting_tool_parameter_detection_accuracy = fields.Float('检测精度')
cutting_tool_parameter_detection_hardness = fields.Char('检测硬度')
cutting_tool_parameter_detection_hardness = fields.Float('检测硬度')
cutting_tool_parameter_standard_speed = fields.Float('标准转速')
# 夹头参数
cutting_tool_parameter_accuracy = fields.Float('精度[mm]')
cutting_tool_parameter_outer_diameter = fields.Float('外径[mm]')
cutting_tool_parameter_inner_diameter = fields.Float('内径[mm]')
cutting_tool_parameter_handle_model = fields.Many2many('sf.handle.model', string='适用刀柄型号')
cutting_tool_parameter_handle_model_ids = fields.Many2many('sf.handle.model', string='适用刀柄型号')
cutting_tool_parameter_feature = fields.Char('特性')
# image_1920 = fields.Image(related='cutting_tool_parameter_image', store=True,
# domain=[('cutting_tool_parameter_image', '!=', False)])
# @api.constrains('cutting_tool_parameter_length',)
# def _check_length_or_width(self):
# for record in self:
# if record.cutting_tool == '刀片':
# if record.cutting_tool_parameter_length <= 0 \
# and record.cutting_tool_parameter_width <= 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
#
#
# @api.constrains('cutting_tool_parameter_length',
# 'cutting_tool_parameter_width')
# def _check_length_or_width(self):
# for record in self:
# if record.cutting_tool == '刀片':
# if record.cutting_tool_parameter_length <= 0 \
# and record.cutting_tool_parameter_width <= 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# # if self.cutting_tool == '刀片':
# # if self.cutting_tool_parameter_length == 0 \
# # or self.cutting_tool_parameter_width == 0:
# # raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_height')
# def _check_height(self):
# if self.cutting_tool == '刀片':
# if self.cutting_tool_parameter_height <= 0:
# raise ValueError('该产品中高度不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_top_angle')
# def _check_top_angle(self):
# if self.cutting_tool == '刀片':
# if self.cutting_tool_parameter_top_angle <= 0:
# raise ValueError('该产品中顶角不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_r_angle')
# def _check_r_angle(self):
# if self.cutting_tool == '刀片':
# if self.cutting_tool_parameter_r_angle <= 0:
# raise ValueError('该产品中R角不能为零请确认并重新输入')
#
# @api.constrains('cutting_tool_parameter_radius')
# def _check_radius(self):
# if self.cutting_tool == '刀片':
# if self.cutting_tool_parameter_radius <= 0:
# raise ValueError('该产品中刀尖半径不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_handle_length',
# 'cutting_tool_parameter_length1',
# 'cutting_tool_parameter_diameter1')
# # 'cutting_tool_parameter_body_accuracy',
# # 'cutting_tool_parameter_detection_accuracy',
# # 'cutting_tool_parameter_detection_hardness')
# def _check_handle(self):
# for record in self:
# if record.cutting_tool == '刀柄':
# if record.cutting_tool_parameter_handle_length == 0 \
# or record.cutting_tool_parameter_diameter1 == 0 \
# or record.cutting_tool_parameter_length1 == 0:
# # or record.cutting_tool_parameter_detection_accuracy == 0 \
# # or record.cutting_tool_parameter_detection_hardness == 0 \
# # or record.cutting_tool_parameter_body_accuracy == 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# # if self.cutting_tool == '刀柄':
# # if self.cutting_tool_parameter_handle_length == 0 \
# # or self.cutting_tool_parameter_diameter1 == 0 \
# # or self.cutting_tool_parameter_length1 == 0 \
# # or self.cutting_tool_parameter_detection_accuracy == 0 \
# # or self.cutting_tool_parameter_detection_hardness == 0 \
# # or self.cutting_tool_parameter_body_accuracy == 0:
# # raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_weight')
# def _check_weight(self):
# if self.cutting_tool == '刀柄':
# if self.cutting_tool_parameter_weight == 0:
# raise ValueError('该产品中重量不能为零,请确认并重新输入!')
# @api.constrains('cutting_tool_parameter_c_diameter',
# 'cutting_tool_parameter_l_total_length',
# 'cutting_tool_parameter_d_diameter',
# 'cutting_tool_parameter_wrench',
# 'cutting_tool_parameter_screw',
# 'cutting_tool_parameter_rounded_corner',
# 'cutting_tool_parameter_hardness')
# def _check_angle(self):
# if self.cutting_tool in ['刀杆', '刀盘']:
# if self.cutting_tool_parameter_c_diameter == 0 \
# or self.cutting_tool_parameter_l_total_length == 0 \
# or self.cutting_tool_parameter_d_diameter == 0 \
# or self.cutting_tool_parameter_wrench == 0 \
# or self.cutting_tool_parameter_screw == 0 \
# or self.cutting_tool_parameter_rounded_corner == 0 \
# or self.cutting_tool_parameter_hardness:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# @api.constrains('cutting_tool_parameter_c_diameter',
# 'cutting_tool_parameter_l_total_length',
# 'cutting_tool_parameter_diameter1')
# def _check_angle(self):
# for record in self:
# if record.cutting_tool == '整体式刀具' or record.cutting_tool == '刀片':
# if record.cutting_tool_parameter_c_diameter == 0 \
# or record.cutting_tool_parameter_l_total_length == 0 \
# or record.cutting_tool_parameter_diameter1 == 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# @api.constrains('cutting_tool_parameter_outer_diameter',
# 'cutting_tool_parameter_inner_diameter',
# 'cutting_tool_parameter_body_accuracy',
# 'cutting_tool_parameter_handle_length',
# 'cutting_tool_parameter_length1',
# 'cutting_tool_parameter_diameter1')
# def _check_angle(self):
# for record in self:
# if record.cutting_tool == '整体式刀具' or record.cutting_tool == '刀片':
# if record.cutting_tool_parameter_front_angle == 0 \
# or record.cutting_tool_parameter_rear_angle == 0 \
# or record.cutting_tool_parameter_main_included_angle == 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# @api.constrains('cutting_tool_parameter_front_angle',
# 'cutting_tool_parameter_rear_angle',
# 'cutting_tool_parameter_main_included_angle')
# def _check_angle(self):
# for record in self:
# if record.cutting_tool == '整体式刀具' or record.cutting_tool == '刀片':
# if record.cutting_tool_parameter_front_angle <= 0 \
# or record.cutting_tool_parameter_rear_angle <= 0 \
# or record.cutting_tool_parameter_main_included_angle <= 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_total_length',
# 'cutting_tool_parameter_shank_length',
# 'cutting_tool_parameter_blade_length',
# 'cutting_tool_parameter_diameter')
# def _check_length(self):
# for record in self:
# if record.cutting_tool == '整体式刀具':
# if record.cutting_tool_parameter_total_length <= 0 \
# or record.cutting_tool_parameter_shank_length <= 0 \
# or record.cutting_tool_parameter_blade_length <= 0 \
# or record.cutting_tool_parameter_diameter <= 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# @api.constrains('cutting_tool_parameter_total_length',
# 'cutting_tool_parameter_shank_length',
# 'cutting_tool_parameter_blade_length',
# 'cutting_tool_parameter_diameter')
# def _check_length(self):
# for record in self:
# if record.cutting_tool == '整体式刀具':
# if record.cutting_tool_parameter_total_length == 0 \
# or record.cutting_tool_parameter_shank_length == 0 \
# or record.cutting_tool_parameter_blade_length == 0 \
# or record.cutting_tool_parameter_diameter == 0:
# raise ValueError('该产品中有字段不能为零,请确认并重新输入!')
# @api.constrains('cutting_tool_parameter_blade_number')
# def _check_blade_number(self):
# if self.cutting_tool in ['整体式刀具', '刀杆', '刀盘']:
# if self.cutting_tool_parameter_blade_number <= 0:
# raise ValueError('该产品中刃数不能为零,请确认并重新输入!')
#
# @api.constrains('cutting_tool_parameter_nut')
# def _check_nut(self):
# if self.cutting_tool in ['整体式刀具', '刀片', '刀柄', '夹头']:
# if self.cutting_tool_parameter_nut <= 0:
# raise ValueError('该产品中配对螺母不能为零,请确认并重新输入!')
def _get_volume_uom_id_from_ir_config_parameter(self):
product_length_in_feet_param = self.env['ir.config_parameter'].sudo().get_param('product.volume_in_cubic_feet')
if product_length_in_feet_param == '1':
@@ -175,12 +346,13 @@ class ResProductTemplate(models.Model):
# product_id.product_tmpl_id.active = False
return copy_product_id
# def get_production_process_id(self, surface_process_code):
# production_process_ids = []
# for item in surface_process_code:
# production_process = self.env['sf.production.process'].search([('process_encode', '=', item)])
# production_process_ids.append(production_process.id)
# return [(6, 0, production_process_ids)]
def _get_ids(self, param):
type_ids = []
if not param:
return []
for item in param:
type_ids.append(item.id)
return [(6, 0, type_ids)]
def get_process_parameters_id(self, process_parameters_code):
process_parameters_ids = []
@@ -311,112 +483,119 @@ class ResProductTemplate(models.Model):
base64_data = base64.b64encode(image_data)
return base64_data
@api.onchange('integral_cutting_tool_type_id')
def _get_integral_cutting_tool_type_info(self):
for item in self:
item.cutting_tool_parameter_brand = item.integral_cutting_tool_type_id.brand.id
item.cutting_tool_parameter_total_length = item.integral_cutting_tool_type_id.total_length
item.cutting_tool_parameter_shank_length = item.integral_cutting_tool_type_id.shank_length
item.cutting_tool_parameter_blade_length = item.integral_cutting_tool_type_id.blade_length
item.cutting_tool_parameter_diameter = item.integral_cutting_tool_type_id.diameter
item.cutting_tool_parameter_nut = item.integral_cutting_tool_type_id.control_system_id
item.cutting_tool_parameter_blade_number = item.integral_cutting_tool_type_id.blade_number
item.cutting_tool_parameter_material_model = item.integral_cutting_tool_type_id.material_model.id
item.cutting_tool_parameter_front_angle = item.integral_cutting_tool_type_id.front_angle
item.cutting_tool_parameter_rear_angle = item.integral_cutting_tool_type_id.rear_angle
item.cutting_tool_parameter_main_included_angle = item.integral_cutting_tool_type_id.main_included_angle
item.cutting_tool_parameter_chuck_model = item.integral_cutting_tool_type_id.chuck_model.id
item.cutting_tool_parameter_scope = item.integral_cutting_tool_type_id.scope
if self.integral_cutting_tool_type_id:
for item in self:
item.cutting_tool_parameter_brand_id = item.integral_cutting_tool_type_id.brand.id
item.cutting_tool_parameter_total_length = item.integral_cutting_tool_type_id.total_length
item.cutting_tool_parameter_shank_length = item.integral_cutting_tool_type_id.shank_length
item.cutting_tool_parameter_blade_length = item.integral_cutting_tool_type_id.blade_length
item.cutting_tool_parameter_diameter = item.integral_cutting_tool_type_id.diameter
item.cutting_tool_parameter_nut = item.integral_cutting_tool_type_id.nut
item.cutting_tool_parameter_blade_number = item.integral_cutting_tool_type_id.blade_number
item.cutting_tool_parameter_material_model_id = item.integral_cutting_tool_type_id.material_model.id
item.cutting_tool_parameter_front_angle = item.integral_cutting_tool_type_id.front_angle
item.cutting_tool_parameter_rear_angle = item.integral_cutting_tool_type_id.rear_angle
item.cutting_tool_parameter_main_included_angle = item.integral_cutting_tool_type_id.main_included_angle
item.cutting_tool_parameter_chuck_model_ids = self._get_ids(
item.integral_cutting_tool_type_id.chuck_model)
item.cutting_tool_parameter_scope = item.integral_cutting_tool_type_id.scope
item.image_1920 = '' if not item.integral_cutting_tool_type_id.image else item.integral_cutting_tool_type_id.image
@api.onchange('blade_type_id')
def _get_blade_type_info(self):
for item in self:
item.cutting_tool_parameter_brand = item.blade_type_id.brand.id
item.cutting_tool_parameter_top_angle = item.blade_type_id.top_angle
item.cutting_tool_parameter_front_angle = item.blade_type_id.front_angle
item.cutting_tool_parameter_rear_angle = item.blade_type_id.rear_angle
item.cutting_tool_parameter_main_included_angle = item.blade_type_id.main_included_angle
item.cutting_tool_parameter_r_angle = item.blade_type_id.r_angle
item.cutting_tool_parameter_working_hardness = item.blade_type_id.hardness
item.cutting_tool_parameter_material_model = item.blade_type_id.material_model.id
item.cutting_tool_parameter_length = item.blade_type_id.length
item.cutting_tool_parameter_width = item.blade_type_id.width
item.cutting_tool_parameter_height = item.blade_type_id.height
item.cutting_tool_parameter_radius = item.blade_type_id.radius
item.cutting_tool_parameter_nut = item.blade_type_id.nut
item.cutting_tool_parameter_cutter_bar = item.blade_type_id.cutter_bar.id
item.cutting_tool_parameter_cutter_pad = item.blade_type_id.cutter_pad.id
if self.blade_type_id:
for item in self:
item.cutting_tool_parameter_brand_id = item.blade_type_id.brand.id
item.cutting_tool_parameter_top_angle = item.blade_type_id.top_angle
item.cutting_tool_parameter_front_angle = item.blade_type_id.front_angle
item.cutting_tool_parameter_rear_angle = item.blade_type_id.rear_angle
item.cutting_tool_parameter_main_included_angle = item.blade_type_id.main_included_angle
item.cutting_tool_parameter_r_angle = item.blade_type_id.r_angle
item.cutting_tool_parameter_working_hardness = item.blade_type_id.hardness
item.cutting_tool_parameter_material_model_id = item.blade_type_id.material_model.id
item.cutting_tool_parameter_length = item.blade_type_id.length
item.cutting_tool_parameter_width = item.blade_type_id.width
item.cutting_tool_parameter_height = item.blade_type_id.height
item.cutting_tool_parameter_radius = item.blade_type_id.radius
item.cutting_tool_parameter_nut = item.blade_type_id.nut
item.cutting_tool_parameter_cutter_bar_ids = self._get_ids(item.blade_type_id.cutter_bar)
item.cutting_tool_parameter_cutter_pad_ids = self._get_ids(item.blade_type_id.cutter_pad)
item.image_1920 = '' if not item.blade_type_id.image else item.blade_type_id.image
@api.onchange('cutter_bar_type_id')
def _get_cutter_bar_type_info(self):
for item in self:
item.cutting_tool_parameter_brand = item.cutter_bar_type_id.brand.id
item.cutting_tool_parameter_c_diameter = item.cutter_bar_type_id.c_diameter
item.cutting_tool_parameter_d_diameter = item.cutter_bar_type_id.d_diameter
item.cutting_tool_parameter_l_total_length = item.cutter_bar_type_id.total_length
item.cutting_tool_parameter_wrench = item.cutter_bar_type_id.wrench
item.cutting_tool_parameter_screw = item.cutter_bar_type_id.screw
item.cutting_tool_parameter_blade = item.cutter_bar_type_id.blade.id
item.cutting_tool_parameter_scope = item.cutter_bar_type_id.scope
item.cutting_tool_parameter_material_model = item.cutter_bar_type_id.material_model.id
item.cutting_tool_parameter_rounded_corner = item.cutter_bar_type_id.radius
item.cutting_tool_parameter_accuracy_level = item.cutter_bar_type_id.accuracy
item.cutting_tool_parameter_blade_number = item.cutter_bar_type_id.blade_number
item.cutting_tool_parameter_hardness = item.cutter_bar_type_id.hardness
if self.cutter_bar_type_id:
for item in self:
item.cutting_tool_parameter_brand_id = item.cutter_bar_type_id.brand.id
item.cutting_tool_parameter_c_diameter = item.cutter_bar_type_id.c_diameter
item.cutting_tool_parameter_d_diameter = item.cutter_bar_type_id.d_diameter
item.cutting_tool_parameter_l_total_length = item.cutter_bar_type_id.total_length
item.cutting_tool_parameter_wrench = item.cutter_bar_type_id.wrench
item.cutting_tool_parameter_screw = item.cutter_bar_type_id.screw
item.cutting_tool_parameter_blade_ids = self._get_ids(item.cutter_bar_type_id.blade)
item.cutting_tool_parameter_scope = item.cutter_bar_type_id.scope
item.cutting_tool_parameter_material_model_id = item.cutter_bar_type_id.material_model.id
item.cutting_tool_parameter_rounded_corner = item.cutter_bar_type_id.radius
item.cutting_tool_parameter_accuracy_level = item.cutter_bar_type_id.accuracy
item.cutting_tool_parameter_blade_number = item.cutter_bar_type_id.blade_number
item.cutting_tool_parameter_hardness = item.cutter_bar_type_id.hardness
item.image_1920 = '' if not item.cutter_bar_type_id.image else item.cutter_bar_type_id.image
@api.onchange('cutter_pad_type_id')
def _get_cutter_pad_type_info(self):
for item in self:
item.cutting_tool_parameter_brand = item.cutter_pad_type_id.brand.id
item.cutting_tool_parameter_c_diameter = item.cutter_pad_type_id.c_diameter
item.cutting_tool_parameter_d_diameter = item.cutter_pad_type_id.d_diameter
item.cutting_tool_parameter_l_total_length = item.cutter_pad_type_id.total_length
item.cutting_tool_parameter_wrench = item.cutter_pad_type_id.wrench
item.cutting_tool_parameter_screw = item.cutter_pad_type_id.screw
item.cutting_tool_parameter_blade = item.cutter_pad_type_id.blade.id
item.cutting_tool_parameter_scope = item.cutter_pad_type_id.scope
item.cutting_tool_parameter_material_model = item.cutter_pad_type_id.material_model.id
item.cutting_tool_parameter_rounded_corner = item.cutter_pad_type_id.radius
item.cutting_tool_parameter_accuracy_level = item.cutter_pad_type_id.accuracy
item.cutting_tool_parameter_blade_number = item.cutter_pad_type_id.blade_number
item.cutting_tool_parameter_hardness = item.cutter_pad_type_id.hardness
if self.cutter_pad_type_id:
for item in self:
item.cutting_tool_parameter_brand_id = item.cutter_pad_type_id.brand.id
item.cutting_tool_parameter_c_diameter = item.cutter_pad_type_id.c_diameter
item.cutting_tool_parameter_d_diameter = item.cutter_pad_type_id.d_diameter
item.cutting_tool_parameter_l_total_length = item.cutter_pad_type_id.total_length
item.cutting_tool_parameter_wrench = item.cutter_pad_type_id.wrench
item.cutting_tool_parameter_screw = item.cutter_pad_type_id.screw
item.cutting_tool_parameter_blade_ids = item.cutter_pad_type_id.blade.id
item.cutting_tool_parameter_scope = item.cutter_pad_type_id.scope
item.cutting_tool_parameter_material_model_id = item.cutter_pad_type_id.material_model.id
item.cutting_tool_parameter_rounded_corner = item.cutter_pad_type_id.radius
item.cutting_tool_parameter_accuracy_level = item.cutter_pad_type_id.accuracy
item.cutting_tool_parameter_blade_number = item.cutter_pad_type_id.blade_number
item.cutting_tool_parameter_hardness = item.cutter_pad_type_id.hardness
item.image_1920 = '' if not item.cutter_pad_type_id.image else item.cutter_pad_type_id.image
@api.onchange('handle_type_id')
def _get_handle_type_info(self):
for item in self:
item.cutting_tool_parameter_brand = item.handle_type_id.brand.id
item.cutting_tool_parameter_handle_length = item.handle_type_id.length
item.cutting_tool_parameter_length1 = item.handle_type_id.length1
item.cutting_tool_parameter_diameter1 = item.handle_type_id.diameter1
item.cutting_tool_parameter_body_accuracy = item.handle_type_id.body_accuracy
item.cutting_tool_parameter_nut = item.handle_type_id.nut
item.cutting_tool_parameter_clamping_range = item.handle_type_id.clamping_range
item.cutting_tool_parameter_weight = item.handle_type_id.weight
item.cutting_tool_parameter_material_model = item.handle_type_id.material_model.id
item.cutting_tool_parameter_chuck_model = item.handle_type_id.chuck_model.id
item.cutting_tool_parameter_detection_accuracy = item.handle_type_id.detection_accuracy
item.cutting_tool_parameter_detection_hardness = item.handle_type_id.detection_hardness
item.cutting_tool_parameter_standard_speed = item.handle_type_id.standard_speed
if self.handle_type_id:
for item in self:
item.cutting_tool_parameter_brand_id = item.handle_type_id.brand.id
item.cutting_tool_parameter_handle_length = item.handle_type_id.length
item.cutting_tool_parameter_length1 = item.handle_type_id.length1
item.cutting_tool_parameter_diameter1 = item.handle_type_id.diameter1
item.cutting_tool_parameter_body_accuracy = item.handle_type_id.body_accuracy
item.cutting_tool_parameter_nut = item.handle_type_id.nut
item.cutting_tool_parameter_clamping_range = item.handle_type_id.clamping_range
item.cutting_tool_parameter_weight = item.handle_type_id.weight
item.cutting_tool_parameter_material_model_id = item.handle_type_id.material_model.id
item.cutting_tool_parameter_chuck_model_ids = self._get_ids(item.handle_type_id.chuck_model)
item.cutting_tool_parameter_detection_accuracy = item.handle_type_id.detection_accuracy
item.cutting_tool_parameter_detection_hardness = item.handle_type_id.detection_hardness
item.cutting_tool_parameter_standard_speed = item.handle_type_id.standard_speed
item.image_1920 = '' if not item.handle_type_id.image else item.handle_type_id.image
@api.onchange('chuck_type_id')
def _get_chuck_type_info(self):
for item in self:
item.cutting_tool_parameter_brand = item.chuck_type_id.brand.id
item.cutting_tool_parameter_outer_diameter = item.chuck_type_id.diameter
item.cutting_tool_parameter_inner_diameter = item.chuck_type_id.inner_diameter
item.cutting_tool_parameter_accuracy = item.chuck_type_id.accuracy
item.cutting_tool_parameter_nut = item.chuck_type_id.nut
item.cutting_tool_parameter_clamping_range = item.chuck_type_id.clamping_range
item.cutting_tool_parameter_handle_model = item.chuck_type_id.handle_model.id
item.cutting_tool_parameter_material_model = item.chuck_type_id.material_model.id
item.cutting_tool_parameter_height = item.chuck_type_id.height
item.cutting_tool_parameter_feature = item.chuck_type_id.detection_accuracy
item.cutting_tool_parameter_detection_hardness = item.chuck_type_id.detection_hardness
item.cutting_tool_parameter_standard_speed = item.chuck_type_id.standard_speed
if self.chuck_type_id:
for item in self:
item.cutting_tool_parameter_brand_id = item.chuck_type_id.brand.id
item.cutting_tool_parameter_outer_diameter = item.chuck_type_id.diameter
item.cutting_tool_parameter_inner_diameter = item.chuck_type_id.inner_diameter
item.cutting_tool_parameter_accuracy = item.chuck_type_id.accuracy
item.cutting_tool_parameter_nut = item.chuck_type_id.nut
item.cutting_tool_parameter_clamping_range = item.chuck_type_id.clamping_range
item.cutting_tool_parameter_handle_model_ids = self._get_ids(item.chuck_type_id.handle_model)
item.cutting_tool_parameter_material_model_id = item.chuck_type_id.material_model.id
item.cutting_tool_parameter_height = item.chuck_type_id.height
item.cutting_tool_parameter_feature = item.chuck_type_id.feature
item.image_1920 = '' if not item.chuck_type_id.image else item.chuck_type_id.image
class ResMrpBom(models.Model):
_inherit = 'mrp.bom'

View File

@@ -51,6 +51,11 @@ class ResConfigSettings(models.TransientModel):
_logger.info("定时同步每日整体式刀具类型列表...")
# self.env['sf.integral.cutting.tool'].sync_integral_cutting_tool()
_logger.info("同步整体式刀具类型完成")
_logger.info("同步每日刀具物料...")
self.env['sf.cutting.tool.material'].sync_cutting_tool_material()
_logger.info("同步每日刀具物料完成")
_logger.info("同步所有刀具物料...")
self.env['sf.cutting.tool.material'].sync_all_cutting_tool_material()
_logger.info("同步每日刀片类型列表...")
self.env['sf.blade.model'].sync_blade_model()
_logger.info("同步每日刀片类型完成")
@@ -130,14 +135,14 @@ class ResConfigSettings(models.TransientModel):
self.env['sf.functional.cutting.tool'].sync_all_functional_cutting_tool()
_logger.info("同步所有功能刀具列表完成")
self.env['sf.fixture.clamping.element'].sync_all_fixture_clamping_element()
_logger.info("同步资源库夹紧元件型号")
self.env['sf.clamping.element.type'].sync_all_clamping_element_type()
_logger.info("同步资源库夹紧元件类型")
self.env['sf.guide.element.type'].sync_all_guide_element_type()
_logger.info("同步资源库导向元件类型")
self.env['sf.guide.element.guide.mode'].sync_all_guide_element_guide_mode()
_logger.info("同步资源库导向元件导向方式")
# self.env['sf.fixture.clamping.element'].sync_all_fixture_clamping_element()
# _logger.info("同步资源库夹紧元件型号")
# self.env['sf.clamping.element.type'].sync_all_clamping_element_type()
# _logger.info("同步资源库夹紧元件类型")
# self.env['sf.guide.element.type'].sync_all_guide_element_type()
# _logger.info("同步资源库导向元件类型")
# self.env['sf.guide.element.guide.mode'].sync_all_guide_element_guide_mode()
# _logger.info("同步资源库导向元件导向方式")
except Exception as e:
_logger.info("捕获错误信息:%s" % e)

View File

@@ -726,7 +726,7 @@ class MachineToolType(models.Model):
[('code', '=', item['machine_tool_id'])]).id
else:
print(item['machine_tool_picture'].encode('utf-8'))
# print(item['machine_tool_picture'].encode('utf-8'))
self.env['sf.machine_tool.type'].create({
"id": item['id'],
"name": item['name'],
@@ -1075,6 +1075,78 @@ class MachineToolCategory(models.Model):
raise ValidationError("认证未通过")
# 同步刀具物料
class sfSyncCutting_tool_Material(models.Model):
_inherit = 'sf.cutting.tool.material'
_description = '刀具物料同步'
url = '/api/mrs_cutting_tool_material/list'
# 定时同步每日刀具物料
def sync_cutting_tool_material(self):
sf_sync_config = self.env['res.config.settings'].get_values()
token = sf_sync_config['token']
sf_secret_key = sf_sync_config['sf_secret_key']
headers = Common.get_headers(self, token, sf_secret_key)
strUrl = sf_sync_config['sf_url'] + self.url
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutting_tool_material_yesterday_list'):
for item in result['mrs_cutting_tool_material_yesterday_list']:
if item:
brand = self.env['sf.cutting.tool.material'].search(
[("code", '=', item['code'])])
if not brand:
self.env['sf.cutting.tool.material'].create({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
})
else:
raise ValidationError("认证未通过")
# 同步所有刀具物料
def sync_all_cutting_tool_material(self):
sf_sync_config = self.env['res.config.settings'].get_values()
token = sf_sync_config['token']
sf_secret_key = sf_sync_config['sf_secret_key']
headers = Common.get_headers(self, token, sf_secret_key)
strUrl = sf_sync_config['sf_url'] + self.url
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutting_tool_material_all_list'):
for item in result['mrs_cutting_tool_material_all_list']:
if item:
brand = self.env['sf.cutting.tool.material'].search(
[("code", '=', item['code'])])
if not brand:
self.env['sf.cutting.tool.material'].create({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
})
# 同步功能刀具列表
class sfSyncFunctional_cutting_tool(models.Model):
_inherit = 'sf.functional.cutting.tool'
@@ -1092,7 +1164,7 @@ class sfSyncFunctional_cutting_tool(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_functional_cutting_tool_yesterday_list'):
for item in result['mrs_functional_cutting_tool_yesterday_list']:
@@ -1300,7 +1372,7 @@ class SyncFunctionalCuttingToolModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_functional_cutting_tool_model_yesterday_list'):
for item in result['mrs_functional_cutting_tool_model_yesterday_list']:
@@ -1333,7 +1405,7 @@ class SyncFunctionalCuttingToolModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_functional_cutting_tool_model_all_list'):
for item in result['mrs_functional_cutting_tool_model_all_list']:
@@ -1374,7 +1446,7 @@ class SyncIntegralCuttingTool(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_integral_cutting_tool_yesterday_list'):
for item in result['mrs_integral_cutting_tool_yesterday_list']:
@@ -1399,6 +1471,8 @@ class SyncIntegralCuttingTool(models.Model):
[("code", '=', item['integral_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
@@ -1422,6 +1496,8 @@ class SyncIntegralCuttingTool(models.Model):
[("code", '=', item['integral_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
@@ -1451,7 +1527,7 @@ class SyncIntegralCuttingTool(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_integral_cutting_tool_all_list'):
for item in result['mrs_integral_cutting_tool_all_list']:
@@ -1476,6 +1552,8 @@ class SyncIntegralCuttingTool(models.Model):
[("code", '=', item['integral_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
@@ -1499,6 +1577,8 @@ class SyncIntegralCuttingTool(models.Model):
[("code", '=', item['integral_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"total_length": item['total_length'],
"shank_length": item['shank_length'],
"blade_length": item['blade_length'],
@@ -1536,7 +1616,7 @@ class SyncIntegralCuttingToolModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_integral_cutting_tool_model_list'):
for item in result['mrs_integral_cutting_tool_model_list']:
@@ -1548,6 +1628,16 @@ class SyncIntegralCuttingToolModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
raise ValidationError("认证未通过")
@@ -1563,7 +1653,7 @@ class SyncIntegralCuttingToolModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_integral_cutting_tool_model_all_list'):
for item in result['mrs_integral_cutting_tool_model_all_list']:
@@ -1575,6 +1665,16 @@ class SyncIntegralCuttingToolModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
raise ValidationError("认证未通过")
@@ -1597,10 +1697,20 @@ class SyncBlade(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_blade_yesterday_list'):
for item in result['mrs_blade_yesterday_list']:
bar_list = []
pad_list = []
if item.get('cutter_bar'):
for i in item.get('cutter_bar'):
bar_list.append(self.env['sf.cutter.bar'].search(
[("code", '=', i)]).id)
if item.get('cutter_pad'):
for j in item.get('cutter_pad'):
pad_list.append(self.env['sf.cutter.pad'].search(
[("code", '=', j)]).id)
if item:
# code, name, blade_model_number, brand, length, width, height, top_angle, front_angle, rear_angle, main_included_angle, r_angle, material_model, hardness, nut, cutter_bar, cutter_pad, radius, image, create_uid, create_date
brand = self.env['sf.blade'].search(
@@ -1617,6 +1727,8 @@ class SyncBlade(models.Model):
[("code", '=', item['blade_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"width": item['width'],
"height": item['height'],
@@ -1629,8 +1741,8 @@ class SyncBlade(models.Model):
[("materials_no", '=', item['material_model'])]).id,
"hardness": item['hardness'],
"nut": item['nut'],
"cutter_bar": item['cutter_bar'],
"cutter_pad": item['cutter_pad'],
"cutter_bar": bar_list,
"cutter_pad": pad_list,
"radius": item['radius'],
"image": image,
})
@@ -1641,6 +1753,8 @@ class SyncBlade(models.Model):
[("code", '=', item['blade_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"width": item['width'],
"height": item['height'],
@@ -1653,8 +1767,8 @@ class SyncBlade(models.Model):
[("materials_no", '=', item['material_model'])]).id,
"hardness": item['hardness'],
"nut": item['nut'],
"cutter_bar": item['cutter_bar'],
"cutter_pad": item['cutter_pad'],
"cutter_bar": bar_list,
"cutter_pad": pad_list,
"radius": item['radius'],
"image": image,
})
@@ -1676,7 +1790,16 @@ class SyncBlade(models.Model):
if result['status'] == 1:
if result.get('mrs_blade_all_list'):
for item in result['mrs_blade_all_list']:
# print('item_image:%s' % item['image'].encode('utf-8)
bar_list = []
pad_list = []
if item.get('cutter_bar'):
for i in item.get('cutter_bar'):
bar_list.append(self.env['sf.cutter.bar'].search(
[("code", '=', i)]).id)
if item.get('cutter_pad'):
for j in item.get('cutter_pad'):
pad_list.append(self.env['sf.cutter.pad'].search(
[("code", '=', j)]).id)
if item:
brand = self.env['sf.blade'].search(
@@ -1693,6 +1816,8 @@ class SyncBlade(models.Model):
[("code", '=', item['blade_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"width": item['width'],
"height": item['height'],
@@ -1705,8 +1830,8 @@ class SyncBlade(models.Model):
[("materials_no", '=', item['material_model'])]).id,
"hardness": item['hardness'],
"nut": item['nut'],
"cutter_bar": item['cutter_bar'],
"cutter_pad": item['cutter_pad'],
"cutter_bar": bar_list,
"cutter_pad": pad_list,
"radius": item['radius'],
"image": image,
})
@@ -1717,6 +1842,8 @@ class SyncBlade(models.Model):
[("code", '=', item['blade_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"width": item['width'],
"height": item['height'],
@@ -1729,8 +1856,8 @@ class SyncBlade(models.Model):
[("materials_no", '=', item['material_model'])]).id,
"hardness": item['hardness'],
"nut": item['nut'],
"cutter_bar": item['cutter_bar'],
"cutter_pad": item['cutter_pad'],
"cutter_bar": bar_list,
"cutter_pad": pad_list,
"radius": item['radius'],
"image": image,
})
@@ -1756,7 +1883,7 @@ class SyncBladeModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_blade_model_yesterday_list'):
for item in result['mrs_blade_model_yesterday_list']:
@@ -1768,12 +1895,16 @@ class SyncBladeModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步每日刀片类型列表成功')
else:
@@ -1790,7 +1921,7 @@ class SyncBladeModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_blade_model_all_list'):
for item in result['mrs_blade_model_all_list']:
@@ -1802,12 +1933,16 @@ class SyncBladeModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步刀片类型列表成功')
else:
@@ -1832,7 +1967,7 @@ class SyncCutterBar(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_bar_yesterday_list'):
for item in result['mrs_cutter_bar_yesterday_list']:
@@ -1857,6 +1992,8 @@ class SyncCutterBar(models.Model):
[("code", '=', item['cutter_bar_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -1880,6 +2017,8 @@ class SyncCutterBar(models.Model):
[("code", '=', item['cutter_bar_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -1910,7 +2049,7 @@ class SyncCutterBar(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_bar_all_list'):
for item in result['mrs_cutter_bar_all_list']:
@@ -1935,6 +2074,8 @@ class SyncCutterBar(models.Model):
[("code", '=', item['cutter_bar_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -1958,6 +2099,8 @@ class SyncCutterBar(models.Model):
[("code", '=', item['cutter_bar_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -1996,7 +2139,7 @@ class SyncCutterBarModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_bar_model_yesterday_list'):
for item in result['mrs_cutter_bar_model_yesterday_list']:
@@ -2008,18 +2151,22 @@ class SyncCutterBarModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步每日刀片类型列表成功')
else:
raise ValidationError("认证未通过")
# 定时同步所有刀杆类型列表
# 同步所有刀杆类型列表
def sync_all_cutter_bar_model(self):
sf_sync_config = self.env['res.config.settings'].get_values()
token = sf_sync_config['token']
@@ -2030,7 +2177,7 @@ class SyncCutterBarModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_bar_model_all_list'):
for item in result['mrs_cutter_bar_model_all_list']:
@@ -2042,12 +2189,16 @@ class SyncCutterBarModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步刀杆类型列表成功')
else:
@@ -2072,7 +2223,7 @@ class SyncCutterPad(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_pad_yesterday_list'):
for item in result['mrs_cutter_pad_yesterday_list']:
@@ -2097,6 +2248,8 @@ class SyncCutterPad(models.Model):
[("code", '=', item['cutter_pad_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -2121,6 +2274,8 @@ class SyncCutterPad(models.Model):
[("code", '=', item['cutter_pad_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -2152,7 +2307,7 @@ class SyncCutterPad(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_pad_all_list'):
for item in result['mrs_cutter_pad_all_list']:
@@ -2177,6 +2332,8 @@ class SyncCutterPad(models.Model):
[("code", '=', item['cutter_pad_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -2201,6 +2358,8 @@ class SyncCutterPad(models.Model):
[("code", '=', item['cutter_pad_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"c_diameter": item['c_diameter'],
"total_length": item['total_length'],
"material_model": self.env['sf.materials.model'].search(
@@ -2240,7 +2399,7 @@ class SyncCutterPadModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_pad_model_yesterday_list'):
for item in result['mrs_cutter_pad_model_yesterday_list']:
@@ -2252,12 +2411,16 @@ class SyncCutterPadModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步每日刀盘类型列表成功')
else:
@@ -2274,7 +2437,7 @@ class SyncCutterPadModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_cutter_pad_model_all_list'):
for item in result['mrs_cutter_pad_model_all_list']:
@@ -2286,12 +2449,16 @@ class SyncCutterPadModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步刀盘类型列表成功')
else:
@@ -2316,7 +2483,7 @@ class SyncHandle(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_handle_yesterday_list'):
for item in result['mrs_handle_yesterday_list']:
@@ -2341,6 +2508,8 @@ class SyncHandle(models.Model):
[("code", '=', item['handle_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"length1": item['length1'],
"diameter1": item['diameter1'],
@@ -2365,6 +2534,8 @@ class SyncHandle(models.Model):
[("code", '=', item['handle_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"length1": item['length1'],
"diameter1": item['diameter1'],
@@ -2396,7 +2567,7 @@ class SyncHandle(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_handle_all_list'):
for item in result['mrs_handle_all_list']:
@@ -2421,6 +2592,8 @@ class SyncHandle(models.Model):
[("code", '=', item['handle_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"length1": item['length1'],
"diameter1": item['diameter1'],
@@ -2445,6 +2618,8 @@ class SyncHandle(models.Model):
[("code", '=', item['handle_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"length": item['length'],
"length1": item['length1'],
"diameter1": item['diameter1'],
@@ -2484,7 +2659,7 @@ class SyncHandleModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_handle_model_yesterday_list'):
for item in result['mrs_handle_model_yesterday_list']:
@@ -2496,12 +2671,16 @@ class SyncHandleModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步每日刀柄类型列表成功')
else:
@@ -2518,7 +2697,7 @@ class SyncHandleModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_handle_model_all_list'):
for item in result['mrs_handle_model_all_list']:
@@ -2530,12 +2709,16 @@ class SyncHandleModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步刀柄类型列表成功')
else:
@@ -2560,7 +2743,7 @@ class SyncChuck(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_chuck_yesterday_list'):
for item in result['mrs_chuck_yesterday_list']:
@@ -2585,6 +2768,8 @@ class SyncChuck(models.Model):
[("code", '=', item['chuck_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"accuracy": item['accuracy'],
"diameter": item['diameter'],
"inner_diameter": item['inner_diameter'],
@@ -2605,6 +2790,8 @@ class SyncChuck(models.Model):
[("code", '=', item['chuck_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"accuracy": item['accuracy'],
"diameter": item['diameter'],
"inner_diameter": item['inner_diameter'],
@@ -2632,7 +2819,7 @@ class SyncChuck(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_chuck_all_list'):
for item in result['mrs_chuck_all_list']:
@@ -2657,6 +2844,8 @@ class SyncChuck(models.Model):
[("code", '=', item['chuck_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"accuracy": item['accuracy'],
"diameter": item['diameter'],
"inner_diameter": item['inner_diameter'],
@@ -2677,6 +2866,8 @@ class SyncChuck(models.Model):
[("code", '=', item['chuck_model_number'])]).id,
"brand": self.env['sf.machine.brand'].search(
[("code", '=', item['brand'])]).id,
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
"accuracy": item['accuracy'],
"diameter": item['diameter'],
"inner_diameter": item['inner_diameter'],
@@ -2712,7 +2903,7 @@ class SyncChuckModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_chuck_model_yesterday_list'):
for item in result['mrs_chuck_model_yesterday_list']:
@@ -2724,12 +2915,16 @@ class SyncChuckModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步每日夹头类型列表成功')
else:
@@ -2746,7 +2941,7 @@ class SyncChuckModel(models.Model):
r = requests.post(strUrl, json={}, data=None, headers=headers)
r = r.json()
result = json.loads(r['result'])
print('result:%s' % result)
# print('result:%s' % result)
if result['status'] == 1:
if result.get('mrs_chuck_model_all_list'):
for item in result['mrs_chuck_model_all_list']:
@@ -2758,20 +2953,22 @@ class SyncChuckModel(models.Model):
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
else:
brand.write({
"name": item['name'],
"code": item['code'],
"remark": item['remark'],
"cutting_tool_material": self.env['sf.cutting.tool.material'].search(
[("code", '=', item['cutting_tool_material'])]).id,
})
print('同步夹头类型列表成功')
else:
raise ValidationError("认证未通过")
'''=========================================夹紧元件类型==============================================='''
@@ -2900,7 +3097,6 @@ class sfFixtureClampingElement(models.Model):
# "picture": item['picture'].encode('utf-8'),
"comment": item['comment'],
'brand_id': self.env['sf.machine.brand'].search(
[('code', '=', item['brand_id'])]).id,
"material_type_id": self.env['sf.materials.model'].search(
@@ -3103,4 +3299,3 @@ class sfGuideElementGuideMode(models.Model):
})
else:
raise ValidationError("认证未通过")