新增刀具及刀具型号联动展示相关字段并显示对应信息,不同刀具的页面布局

This commit is contained in:
jinling.yang
2023-06-14 19:22:52 +08:00
11 changed files with 1732 additions and 103 deletions

View File

@@ -19,6 +19,8 @@
"views/menu_view.xml",
"views/tool_base_views.xml",
"views/tool_base_menu.xml",
'views/fixture_base_view.xml',
'views/menu_fixture_view.xml',
],
'demo': [

View File

@@ -1,5 +1,6 @@
from . import base
from . import common
from . import tool_base
from . import fixture_base

View File

@@ -0,0 +1,240 @@
from odoo import models, fields
'''============================定位元件型号====================================='''
class FixtureSettingElement(models.Model):
_name = 'sf.fixture.setting.element'
_description = "定位元件型号"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="型号名称", readonly=True)
setting_ele_type_id = fields.Many2one('sf.setting.element.type', string="定位元件类型", readonly=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
length = fields.Char(string='长度(mm)', readonly=True)
width = fields.Char(string='宽度(mm)', readonly=True)
height = fields.Char(string='高度(mm)', readonly=True)
diameter = fields.Char(string='直径(mm)', readonly=True)
material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
hardness = fields.Char(string='硬度(°)', readonly=True)
chucking_power = fields.Char(string='夹持力', readonly=True)
surface_treatment = fields.Char(string='表面处理', readonly=True)
accuracy_grade = fields.Char(string='精度等级', readonly=True)
picture = fields.Binary(string="图片", readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''=============================定位原件类型============================================='''
class SettingElementType(models.Model):
_name = 'sf.setting.element.type'
_description = "定位原件类型"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string='定位原件类型', readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''==============================夹紧元件型号=============================================='''
class FixtureClampingElement(models.Model):
_name = 'sf.fixture.clamping.element'
_description = "夹紧元件型号"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="型号名称", readonly=True)
clamping_ele_type_id = fields.Many2one('sf.clamping.element.type', string="夹紧元件类型", readonly=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
length = fields.Char(string='长度(mm)', readonly=True)
width = fields.Char(string='宽度(mm)', readonly=True)
height = fields.Char(string='高度(mm)', readonly=True)
diameter = fields.Char(string='直径(mm)', readonly=True)
material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
hardness = fields.Char(string='硬度(°)', readonly=True)
chucking_power = fields.Char(string='夹持力', readonly=True)
surface_treatment = fields.Char(string='夹持方式', readonly=True)
accuracy_grade = fields.Char(string='精度等级', readonly=True)
picture = fields.Binary(string="图片", readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''============================夹紧元件类型======================================='''
# 夹紧元件类型
class ClampingElementType(models.Model):
_name = "sf.clamping.element.type"
_description = "夹紧元件类型"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(name='夹紧元件类型', readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''=========================对刀夹具型号====================================='''
class FixtureToolSetting(models.Model):
_name = 'sf.fixture.tool.setting'
_description = "对刀夹具型号"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="型号名称", readonly=True)
tool_setting_type_id = fields.Many2one('sf.tool.setting.type', string="对刀夹具类型", readonly=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
length = fields.Char(string='长度(mm)', readonly=True)
width = fields.Char(string='宽度(mm)', readonly=True)
height = fields.Char(string='高度(mm)', readonly=True)
diameter = fields.Char(string='直径(mm)', readonly=True)
material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
hardness = fields.Char(string='硬度(°)', readonly=True)
chucking_power = fields.Char(string='夹持力', readonly=True)
clamp_mode = fields.Char(string='夹持方式', readonly=True)
accuracy_grade = fields.Char(string='精度等级', readonly=True)
max_clamp_diameter = fields.Char('最大夹持直接(mm)', readonly=True)
picture = fields.Binary(string="图片", readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''===========================对刀夹具类型=========================================='''
class ToolSettingType(models.Model):
_name = 'sf.tool.setting.type'
_description = "对刀夹具类型"
code = fields.Char('编码', readonly=True)
name = fields.Char(string='对刀夹具类型', readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''==========================定位装置型号======================================='''
class FixtureLocatingDevice(models.Model):
_name = 'sf.fixture.locating.device'
_description = "定位装置型号"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="型号名称", readonly=True)
locating_device_type_id = fields.Many2one('sf.locating.device.type', string="定位装置类型", readonly=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
length = fields.Char(string='长度(mm)', readonly=True)
width = fields.Char(string='宽度(mm)', readonly=True)
height = fields.Char(string='高度(mm)', readonly=True)
diameter = fields.Char(string='直径(mm)', readonly=True)
material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
weight = fields.Char(string='重量(kg)', readonly=True)
accuracy_grade = fields.Char(string='精度等级', readonly=True)
locate_mode_ids = fields.Many2many('sf.locating.device.locate.mode', string='定位装置定位方式', readonly=True)
max_bearing_capacity = fields.Char(string='最大承载力', readonly=True)
picture = fields.Binary(string="图片", readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''==============================定位装置类型================================'''
# 定位装置型号
class LocatingDeviceType(models.Model):
_name = 'sf.locating.device.type'
_description = "定位装置类型"
code = fields.Char('编码', readonly=True)
name = fields.Char(string='定位装置类型', readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''============================定位装置定位方式========================================'''
# 定位装置定位方式
class LocatingDeviceLocateMode(models.Model):
_name = 'sf.locating.device.locate.mode'
_description = "定位装置定位方式"
code = fields.Char('编码', readonly=True)
name = fields.Char('定位方式', readonly=True)
name_id = fields.Many2many('sf.fixture.locating.device', string='定位装置', readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''===========================导向元件型号===================================='''
class FixtureGuideElement(models.Model):
_name = 'sf.fixture.guide.element'
_description = "导向元件型号"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="型号名称", readonly=True)
guide_ele_type_id = fields.Many2one('sf.guide.element.type', string="导向元件类型", readonly=True)
brand_id = fields.Many2one('sf.machine.brand', string="品牌", readonly=True)
length = fields.Char(string='长度(mm)', readonly=True)
width = fields.Char(string='宽度(mm)', readonly=True)
height = fields.Char(string='高度(mm)', readonly=True)
diameter = fields.Char(string='直径(mm)', readonly=True)
material_type_id = fields.Many2one('sf.materials.model', string='材料型号', readonly=True)
weight = fields.Char(string='重量', readonly=True)
accuracy_grade = fields.Char(string='精度等级', readonly=True)
guide_ele_guide_mode_id = fields.Many2many('sf.guide.element.guide.mode', string='导向元件导向方式', readonly=True)
scope_of_application = fields.Char(string='适用范围', readonly=True)
guide_ele_way_to_install_id = fields.Many2many('sf.guide.element.way.to.install', string='导向元件安装方式',
readonly=True)
picture = fields.Binary(string="图片", readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''=============================导向元件类型============================================'''
class GuideElementType(models.Model):
_name = 'sf.guide.element.type'
_description = "导向元件类型"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="导向元件类型", readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''================================导向元件导向方式=========================================='''
class GuideElementGuideMode(models.Model):
_name = 'sf.guide.element.guide.mode'
_description = "导向元件导向方式"
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="导向元件导向方式", readonly=True)
name_id = fields.Many2many('sf.fixture.guide.element', string='导向元件', readonly=True)
comment = fields.Text(string='备注', readonly=True)
'''=============================导向元件安装方式==========================================='''
class GuideElementWayToInstall(models.Model):
_name = 'sf.guide.element.way.to.install'
_description = '导向元件安装方式'
code = fields.Char(string='编码', readonly=True)
name = fields.Char(string="导向元件安装方式", readonly=True)
name_id = fields.Many2many('sf.fixture.guide.element', string='导向元件', readonly=True)
comment = fields.Text(string='备注', readonly=True)

View File

@@ -31,6 +31,18 @@ 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_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
access_sf_fixture_clamping_element,sf_fixture_clamping_element,model_sf_fixture_clamping_element,base.group_user,1,1,1,1
access_sf_clamping_element_type,sf_clamping_element_type,model_sf_clamping_element_type,base.group_user,1,1,1,1
access_sf_fixture_tool_setting,sf_fixture_tool_setting,model_sf_fixture_tool_setting,base.group_user,1,1,1,1
access_sf_tool_setting_type,sf_tool_setting_type,model_sf_tool_setting_type,base.group_user,1,1,1,1
access_sf_fixture_locating_device,sf_fixture_locating_device,model_sf_fixture_locating_device,base.group_user,1,1,1,1
access_sf_locating_device_type,sf_locating_device_type,model_sf_locating_device_type,base.group_user,1,1,1,1
access_sf_locating_device_locate_mode,sf_locating_device_locate_mode,model_sf_locating_device_locate_mode,base.group_user,1,1,1,1
access_sf_fixture_guide_element,sf_fixture_guide_element,model_sf_fixture_guide_element,base.group_user,1,1,1,1
access_sf_guide_element_type,sf_guide_element_type,model_sf_guide_element_type,base.group_user,1,1,1,1
access_sf_guide_element_guide_mode,sf_guide_element_guide_mode,model_sf_guide_element_guide_mode,base.group_user,1,1,1,1
access_sf_guide_element_way_to_install,sf_guide_element_way_to_install,model_sf_guide_element_way_to_install,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
31 access_sf_fixture_setting_element sf_fixture_setting_element model_sf_fixture_setting_element base.group_user 1 1 1 1
32 access_sf_setting_element_type sf_setting_element_type model_sf_setting_element_type base.group_user 1 1 1 1
33 access_sf_fixture_clamping_element sf_fixture_clamping_element model_sf_fixture_clamping_element base.group_user 1 1 1 1
34 access_sf_clamping_element_type sf_clamping_element_type model_sf_clamping_element_type base.group_user 1 1 1 1
35 access_sf_fixture_tool_setting sf_fixture_tool_setting model_sf_fixture_tool_setting base.group_user 1 1 1 1
36 access_sf_tool_setting_type sf_tool_setting_type model_sf_tool_setting_type base.group_user 1 1 1 1
37 access_sf_fixture_locating_device sf_fixture_locating_device model_sf_fixture_locating_device base.group_user 1 1 1 1
38 access_sf_locating_device_type sf_locating_device_type model_sf_locating_device_type base.group_user 1 1 1 1
39 access_sf_locating_device_locate_mode sf_locating_device_locate_mode model_sf_locating_device_locate_mode base.group_user 1 1 1 1
40 access_sf_fixture_guide_element sf_fixture_guide_element model_sf_fixture_guide_element base.group_user 1 1 1 1
41 access_sf_guide_element_type sf_guide_element_type model_sf_guide_element_type base.group_user 1 1 1 1
42 access_sf_guide_element_guide_mode sf_guide_element_guide_mode model_sf_guide_element_guide_mode base.group_user 1 1 1 1
43 access_sf_guide_element_way_to_install sf_guide_element_way_to_install model_sf_guide_element_way_to_install base.group_user 1 1 1 1
44
45
46
47
48

View File

@@ -0,0 +1,681 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- ======================================定位元件型号view视图================================================== -->
<record id="sf_fixture_setting_element_view_tree" model="ir.ui.view">
<field name="name">定位元件型号</field>
<field name="model">sf.fixture.setting.element</field>
<field name="arch" type="xml">
<tree string="定位元件型号">
<field name="code"/>
<field name="name"/>
<field name="setting_ele_type_id"/>
<field name="brand_id"/>
<field name="picture" widget="image"/>
</tree>
</field>
</record>
<record id="sf_fixture_setting_element_view_form" model="ir.ui.view">
<field name="name">定位元件型号</field>
<field name="model">sf.fixture.setting.element</field>
<field name="arch" type="xml">
<form string="定位元件型号">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name"/>
<field name="setting_ele_type_id"/>
<field name="brand_id"/>
</group>
<group>
<field name="picture" widget="image" nolabel="1"/>
</group>
</group>
<group string="参数">
<group>
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
</group>
<group>
<field name="material_type_id"/>
<field name="hardness"/>
<field name="surface_treatment"/>
<field name="accuracy_grade"/>
<field name="chucking_power"/>
</group>
</group>
<group string="其他">
<group>
<field name="comment"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_fixture_setting_element_view_act" model="ir.actions.act_window">
<field name="name">定位元件型号</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.fixture.setting.element</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ======================================定位原件类型================================================== -->
<record id="sf_setting_element_type_view_tree" model="ir.ui.view">
<field name="name">定位原件类型</field>
<field name="model">sf.setting.element.type</field>
<field name="arch" type="xml">
<tree string="定位原件类型">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_setting_element_type_view_form" model="ir.ui.view">
<field name="name">定位元件类型</field>
<field name="model">sf.setting.element.type</field>
<field name="arch" type="xml">
<form string="定位元件类型">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_setting_element_type_view_act" model="ir.actions.act_window">
<field name="name">定位元件类型</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.setting.element.type</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ======================================夹紧元件型号================================================== -->
<record id="sf_fixture_clamping_element_view_tree" model="ir.ui.view">
<field name="name">夹紧元件型号</field>
<field name="model">sf.fixture.clamping.element</field>
<field name="arch" type="xml">
<tree string="夹紧元件型号">
<field name="code"/>
<field name="name"/>
<field name="clamping_ele_type_id"/>
<field name="brand_id"/>
<field name="picture" widget="image"/>
</tree>
</field>
</record>
<record id="sf_fixture_clamping_element_view_form" model="ir.ui.view">
<field name="name">夹紧元件型号</field>
<field name="model">sf.fixture.clamping.element</field>
<field name="arch" type="xml">
<form string="夹紧元件型号">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name"/>
<field name="clamping_ele_type_id"/>
<field name="brand_id"/>
</group>
<group>
<field name="picture" widget="image" nolabel="1"/>
</group>
</group>
<group string="参数">
<group>
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
</group>
<group>
<field name="material_type_id"/>
<field name="hardness"/>
<field name="chucking_power"/>
<field name="surface_treatment"/>
<field name="accuracy_grade"/>
</group>
</group>
<group string="其他">
<group>
<field name="comment"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_fixture_clamping_element_view_act" model="ir.actions.act_window">
<field name="name">夹紧元件型号</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.fixture.clamping.element</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ======================================夹紧元件类型================================================== -->
<record id="sf_clamping_element_type_view_tree" model="ir.ui.view">
<field name="name">夹紧元件类型</field>
<field name="model">sf.clamping.element.type</field>
<field name="arch" type="xml">
<tree string="夹紧元件类型">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_clamping_element_type_view_form" model="ir.ui.view">
<field name="name">夹紧元件类型</field>
<field name="model">sf.clamping.element.type</field>
<field name="arch" type="xml">
<form string="夹紧元件类型">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_clamping_element_type_view_act" model="ir.actions.act_window">
<field name="name">夹紧元件类型</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.clamping.element.type</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ===================================对刀夹具型号view视图============================================ -->
<record id="sf_fixture_tool_setting_view_tree" model="ir.ui.view">
<field name="name">对刀夹具型号</field>
<field name="model">sf.fixture.tool.setting</field>
<field name="arch" type="xml">
<tree string="对刀夹具型号">
<field name="code"/>
<field name="name"/>
<field name="tool_setting_type_id"/>
<field name="brand_id"/>
<field name="picture" widget="image"/>
</tree>
</field>
</record>
<record id="sf_fixture_tool_setting_view_form" model="ir.ui.view">
<field name="name">对刀夹具型号</field>
<field name="model">sf.fixture.tool.setting</field>
<field name="arch" type="xml">
<form string="对刀夹具型号">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name"/>
<field name="tool_setting_type_id"/>
<field name="brand_id"/>
</group>
<group>
<field name="picture" widget="image" nolabel="1"/>
</group>
</group>
<group string="参数">
<group>
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
<field name="hardness"/>
</group>
<group>
<field name="clamp_mode"/>
<field name="accuracy_grade"/>
<field name="max_clamp_diameter"/>
<field name="material_type_id"/>
<field name="chucking_power"/>
</group>
</group>
<group string="其他">
<group>
<field name="comment"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_fixture_tool_setting_view_act" model="ir.actions.act_window">
<field name="name">对刀夹具型号</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.fixture.tool.setting</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ==================================对刀夹具类型view视图=============================================== -->
<record id="sf_tool_setting_type_view_tree" model="ir.ui.view">
<field name="name">对刀夹具类型</field>
<field name="model">sf.tool.setting.type</field>
<field name="arch" type="xml">
<tree string="对刀夹具类型">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_tool_setting_type_view_form" model="ir.ui.view">
<field name="name">对刀夹具类型</field>
<field name="model">sf.tool.setting.type</field>
<field name="arch" type="xml">
<form string="对刀夹具类型">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_tool_setting_type_view_act" model="ir.actions.act_window">
<field name="name">对刀夹具类型</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.tool.setting.type</field>
<field name="view_mode">tree,form</field>
</record>
<!-- =================================定位装置型号view视图==================================== -->
<record id="sf_fixture_locating_device_view_tree" model="ir.ui.view">
<field name="name">定位装置型号</field>
<field name="model">sf.fixture.locating.device</field>
<field name="arch" type="xml">
<tree string="定位装置型号">
<field name="code"/>
<field name="name"/>
<field name="locating_device_type_id"/>
<field name="brand_id"/>
<field name="picture" widget="image"/>
</tree>
</field>
</record>
<record id="sf_fixture_locating_device_view_form" model="ir.ui.view">
<field name="name">定位装置型号</field>
<field name="model">sf.fixture.locating.device</field>
<field name="arch" type="xml">
<form string="定位装置型号">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name"/>
<field name="locating_device_type_id"/>
<field name="brand_id"/>
</group>
<group>
<field name="picture" widget="image" nolabel="1"/>
</group>
</group>
<group string="参数">
<group>
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
</group>
<group>
<field name="material_type_id"/>
<field name="weight"/>
<field name="max_bearing_capacity"/>
<field name="accuracy_grade"/>
<field name="locate_mode_ids"/>
</group>
</group>
<group string="其他">
<group>
<field name="comment"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_fixture_locating_device_view_act" model="ir.actions.act_window">
<field name="name">定位装置型号</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.fixture.locating.device</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ==========================================定位装置类型view视图=============================================== -->
<record id="sf_locating_device_type_view_tree" model="ir.ui.view">
<field name="name">定位装置类型</field>
<field name="model">sf.locating.device.type</field>
<field name="arch" type="xml">
<tree string="定位装置类型">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_locating_device_type_view_form" model="ir.ui.view">
<field name="name">定位装置类型</field>
<field name="model">sf.locating.device.type</field>
<field name="arch" type="xml">
<form string="定位装置类型">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_locating_device_type_view_act" model="ir.actions.act_window">
<field name="name">定位装置类型</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.locating.device.type</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ====================================定位装置定位方式view视图========================================== -->
<record id="sf_locating_device_locate_mode_view_tree" model="ir.ui.view">
<field name="name">定位装置定位方式</field>
<field name="model">sf.locating.device.locate.mode</field>
<field name="arch" type="xml">
<tree string="定位装置定位方式">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_locating_device_locate_mode_view_form" model="ir.ui.view">
<field name="name">定位装置定位方式</field>
<field name="model">sf.locating.device.locate.mode</field>
<field name="arch" type="xml">
<form string="定位装置定位方式">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name_id"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_locating_device_locate_mode_view_act" model="ir.actions.act_window">
<field name="name">定位装置定位方式</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.locating.device.locate.mode</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ======================================导向元件view视图=========================================== -->
<record id="sf_fixture_guide_element_view_tree" model="ir.ui.view">
<field name="name">导向元件型号</field>
<field name="model">sf.fixture.guide.element</field>
<field name="arch" type="xml">
<tree string="导向元件型号">
<field name="code"/>
<field name="name"/>
<field name="guide_ele_type_id"/>
<field name="brand_id"/>
<field name="picture" widget="image"/>
</tree>
</field>
</record>
<record id="sf_fixture_guide_element_view_form" model="ir.ui.view">
<field name="name">导向元件型号</field>
<field name="model">sf.fixture.guide.element</field>
<field name="arch" type="xml">
<form string="导向元件型号">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name"/>
<field name="guide_ele_type_id"/>
<field name="brand_id"/>
</group>
<group>
<field name="picture" widget="image" nolabel="1"/>
</group>
</group>
<group string="参数">
<group>
<field name="length"/>
<field name="width"/>
<field name="height"/>
<field name="diameter"/>
<field name="guide_ele_way_to_install_id"/>
</group>
<group>
<field name="material_type_id"/>
<field name="accuracy_grade"/>
<field name="weight"/>
<field name="scope_of_application"/>
<field name="guide_ele_guide_mode_id"/>
</group>
</group>
<group string="其他">
<group>
<field name="comment"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_fixture_guide_element_view_act" model="ir.actions.act_window">
<field name="name">导向元件型号</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.fixture.guide.element</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ========================================导向元件类型view视图==================================== -->
<record id="sf_guide_element_type_view_tree" model="ir.ui.view">
<field name="name">导向元件类型</field>
<field name="model">sf.guide.element.type</field>
<field name="arch" type="xml">
<tree string="定位原件类型">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_guide_element_type_view_form" model="ir.ui.view">
<field name="name">导向元件类型</field>
<field name="model">sf.guide.element.type</field>
<field name="arch" type="xml">
<form string="定位元件类型">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_guide_element_type_view_act" model="ir.actions.act_window">
<field name="name">导向元件类型</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.guide.element.type</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ==========================================导向元件导向方式view视图======================================== -->
<record id="sf_guide_element_guide_mode_view_tree" model="ir.ui.view">
<field name="name">导向元件导向方式</field>
<field name="model">sf.guide.element.guide.mode</field>
<field name="arch" type="xml">
<tree string="导向元件导向方式">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_guide_element_guide_mode_view_form" model="ir.ui.view">
<field name="name">导向元件导向方式</field>
<field name="model">sf.guide.element.guide.mode</field>
<field name="arch" type="xml">
<form string="导向元件导向方式">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name_id"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_guide_element_guide_mode_view_act" model="ir.actions.act_window">
<field name="name">导向元件导向方式</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.guide.element.guide.mode</field>
<field name="view_mode">tree,form</field>
</record>
<!-- ==========================================导向元件安装方式view视图============================================== -->
<record id="sf_guide_element_way_to_install_view_tree" model="ir.ui.view">
<field name="name">导向元件安装方式</field>
<field name="model">sf.guide.element.way.to.install</field>
<field name="arch" type="xml">
<tree string="导向元件导向方式">
<field name="code"/>
<field name="name"/>
</tree>
</field>
</record>
<record id="sf_guide_element_way_to_install_view_form" model="ir.ui.view">
<field name="name">导向元件安装方式</field>
<field name="model">sf.guide.element.way.to.install</field>
<field name="arch" type="xml">
<form string="导向元件导向方式">
<sheet>
<group string="基本信息">
<group>
<field name="code"/>
<field name="name_id"/>
</group>
<group>
<field name="name"/>
</group>
</group>
<group string="其他">
<field name="comment"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_guide_element_way_to_install_view_act" model="ir.actions.act_window">
<field name="name">导向元件安装方式</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.guide.element.way.to.install</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>

View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--<menuitem id="menu_sf_functional_fixture_list_1"-->
<!-- name="功能夹具列表"-->
<!-- sequence="0"-->
<!-- />-->
<menuitem id="menu_sf_functional_fixture_list_2"
name="夹具"
parent="menu_sf_base"
sequence="6"
/>
<!-- <menuitem id="menu_sf_functional_fixture_list_3"-->
<!-- name="类型列表"-->
<!-- parent="menu_sf_functional_fixture_list_1"-->
<!-- sequence="0"-->
<!-- />-->
<menuitem id="menu_sf_fixture_setting_element_1"
name="定位元件型号"
parent="menu_sf_functional_fixture_list_2"
sequence="0"
action="sf_fixture_setting_element_view_act"
/>
<menuitem id="menu_sf_setting_element_type_1"
name="定位元件类型"
parent="menu_sf_functional_fixture_list_2"
sequence="10"
action="sf_setting_element_type_view_act"
/>
<menuitem id="menu_sf_fixture_clamping_element_1"
name="夹紧元件型号"
parent="menu_sf_functional_fixture_list_2"
sequence="2"
action="sf_fixture_clamping_element_view_act"
/>
<menuitem id="menu_sf_clamping_element_type_1"
name="夹紧元件类型"
parent="menu_sf_functional_fixture_list_2"
sequence="12"
action="sf_clamping_element_type_view_act"
/>
<menuitem id="menu_sf_fixture_tool_setting_1"
name="对刀夹具型号"
parent="menu_sf_functional_fixture_list_2"
sequence="4"
action="sf_fixture_tool_setting_view_act"
/>
<menuitem id="menu_sf_tool_setting_type_1"
name="对刀夹具类型"
parent="menu_sf_functional_fixture_list_2"
sequence="14"
action="sf_tool_setting_type_view_act"
/>
<menuitem id="menu_sf_fixture_locating_device_1"
name="定位装置型号"
parent="menu_sf_functional_fixture_list_2"
sequence="6"
action="sf_fixture_locating_device_view_act"
/>
<menuitem id="menu_sf_locating_device_type_1"
name="定位装置型号"
parent="menu_sf_functional_fixture_list_2"
sequence="16"
action="sf_locating_device_type_view_act"
/>
<menuitem id="menu_sf_locating_device_locate_mode_1"
name="定位装置定位方式"
parent="menu_sf_functional_fixture_list_2"
sequence="18"
action="sf_locating_device_locate_mode_view_act"
/>
<menuitem id="menu_sf_fixture_guide_element_1"
name="导向元件型号"
parent="menu_sf_functional_fixture_list_2"
sequence="8"
action="sf_fixture_guide_element_view_act"
/>
<menuitem id="menu_sf_guide_element_type_1"
name="导向元件类型"
parent="menu_sf_functional_fixture_list_2"
sequence="20"
action="sf_guide_element_type_view_act"
/>
<menuitem id="menu_sf_guide_element_guide_mode_1"
name="导向元件导向方式"
parent="menu_sf_functional_fixture_list_2"
sequence="22"
action="sf_guide_element_guide_mode_view_act"
/>
<menuitem id="menu_sf_guide_element_way_to_install_1"
name="导向元件安装方式"
parent="menu_sf_functional_fixture_list_2"
sequence="24"
action="sf_guide_element_way_to_install_view_act"
/>
</odoo>

View File

@@ -18,13 +18,27 @@
<field name='categ_type' invisible="1"/>
<field name="embryo_model_type_id" string="模型类型"
attrs="{'invisible': ['|',('categ_type', '!=', '坯料'),('categ_type', '=', False)]}"/>
<field name="materials_id" string="材料" attrs="{'invisible': [('categ_type', '=', '表面工艺')]}"/>
<field name="materials_id" string="材料"
attrs="{'invisible': ['|',('categ_type', '=', '表面工艺'),('categ_type', '=', '刀具')]}"/>
<field name="materials_type_id" string="型号"
domain="[('materials_id', '=', materials_id)]"
attrs="{'invisible': [('categ_type', '=', '表面工艺')]}"/>
attrs="{'invisible': ['|',('categ_type', '=', '表面工艺'),('categ_type', '=', '刀具')]}"/>
<field name="server_product_process_parameters_id" string="表面工艺参数"
options="{'no_create': True}"
attrs="{'invisible': ['|',('categ_type', '!=', '表面工艺'),('categ_type', '=', False)]}"/>
<field name="cutting_tool" attrs="{'invisible': [('categ_type', '!=', '刀具')]}"/>
<field name="integral_cutting_tool_type_id"
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="blade_type_id"
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}"/>
<field name="cutter_bar_type_id"
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀杆')]}"/>
<field name="cutter_pad_type_id"
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀盘')]}"/>
<field name="handle_type_id"
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}"/>
<field name="chuck_type_id"
attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '夹头')]}"/>
</field>
<xpath expr="//label[@for='volume']" position="before">
@@ -51,21 +65,15 @@
<div class="o_address_format">
<label for="model_long" string="长"/>
<field name="model_long" class="o_address_zip"/>
<!-- <span>&amp;nbsp;</span>-->
<label for="model_width" string="宽"/>
<field name="model_width" class="o_address_zip"/>
<!-- <span>&amp;nbsp;</span>-->
<label for="model_height" string="高"/>
<field name="model_height" class="o_address_zip"/>
</div>
<!-- <field name="model_long" string="长[mm]"/>-->
<!-- <field name="model_width" string="宽[mm]"/>-->
<!-- <field name="model_height" string="高[mm]"/>-->
<field name="model_volume" string="体积[mm³]"/>
<field name="product_model_type_id" string="模型类型"/>
<field name="model_processing_panel" placeholder="例如R,U" string="加工面板"/>
<field name="model_machining_precision"/>
<!-- <field name="model_surface_process_ids" string="表面工艺"/>-->
<field name="model_process_parameters_ids" string="表面工艺参数" widget="many2many_tags"
options="{'no_create': True}"/>
<field name="model_remark" string="备注说明"/>
@@ -74,52 +82,141 @@
</page>
</xpath>
<xpath expr="//page[last()-1]" position="after">
<page string="刀具物料参数">
<page string="刀具物料参数" attrs="{'invisible': [('categ_type', '!=', '刀具')]}">
<group>
<group>
<div>
<field name="cutting_tool_parameter_brand"/>
<field name="cutting_tool_parameter_total_length"/>
<field name="cutting_tool_parameter_shank_length"/>
<field name="cutting_tool_parameter_blade_length"/>
<field name="cutting_tool_parameter_diameter"/>
<field name="cutting_tool_parameter_blade_number"/>
<field name="cutting_tool_parameter_front_angle"/>
<field name="cutting_tool_parameter_rear_angle"/>
<field name="cutting_tool_parameter_main_included_angle"/>
<field name="cutting_tool_parameter_material_model"/>
<field name="cutting_tool_parameter_nut"/>
<field name="cutting_tool_parameter_chuck_model"/>
<field name="cutting_tool_parameter_scope"/>
<field name="cutting_tool_parameter_image"/>
</div>
<div>
<field name="cutting_tool_parameter_length"/>
<field name="cutting_tool_parameter_width"/>
<field name="cutting_tool_parameter_height"/>
<field name="cutting_tool_parameter_top_angle"/>
<field name="cutting_tool_parameter_hardness"/>
<field name="cutting_tool_parameter_cutter_bar"/>
<field name="cutting_tool_parameter_cutter_pad"/>
<field name="cutting_tool_parameter_radius"/>
</div>
<div>
<field name="cutting_tool_parameter_c_diameter"/>
<field name="cutting_tool_parameter_total_length"/>
<field name="cutting_tool_parameter_d_diameter"/>
<field name="cutting_tool_parameter_blade"/>
<field name="cutting_tool_parameter_wrench"/>
<field name="cutting_tool_parameter_screw"/>
<field name="cutting_tool_parameter_hardness"/>
</div>
<div>
<field name="cutting_tool_parameter_accuracy"/>
<field name="cutting_tool_parameter_diameter"/>
<field name="cutting_tool_parameter_inner_diameter"/>
<field name="cutting_tool_parameter_handle_model"/>
<field name="cutting_tool_parameter_feature"/>
</div>
<!--整体式刀具-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_total_length"/>
<field name="cutting_tool_parameter_shank_length"/>
<field name="cutting_tool_parameter_blade_length"/>
<field name="cutting_tool_parameter_diameter"/>
<field name="cutting_tool_parameter_nut"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_blade_number"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '整体式刀具')]}">
<field name="cutting_tool_parameter_material_model"/>
<field name="cutting_tool_parameter_front_angle"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_rear_angle"
attrs="{'invisible': [('cutting_tool', '!=', '整体式刀具')]}"/>
<field name="cutting_tool_parameter_main_included_angle"
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_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_top_angle"/>
<field name="cutting_tool_parameter_front_angle"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<field name="cutting_tool_parameter_rear_angle"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<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"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀片')]}">
<field name="cutting_tool_parameter_material_model"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<label for="cutting_tool_parameter_length" string="尺寸[mm]"/>
<div class="o_address_format">
<label for="cutting_tool_parameter_length" string="长度L"/>
<field name="cutting_tool_parameter_length" class="o_address_zip"/>
<label for="cutting_tool_parameter_width" string="宽度D"/>
<field name="cutting_tool_parameter_width" class="o_address_zip"/>
<label for="cutting_tool_parameter_height" string="高度T"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
<field name="cutting_tool_parameter_height" class="o_address_zip"
attrs="{'invisible': [('cutting_tool', '!=', '刀片')]}"/>
</div>
<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"/>
</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_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_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_rounded_corner"/>
<field name="cutting_tool_parameter_accuracy_level"/>
<field name="cutting_tool_parameter_blade_number"
attrs="{'invisible': [('cutting_tool', 'not in', ['刀杆','刀盘'])]}"/>
<field name="cutting_tool_parameter_hardness"/>
</group>
<!--刀柄-->
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}">
<field name="cutting_tool_parameter_brand"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
<field name="cutting_tool_parameter_handle_length"/>
<field name="cutting_tool_parameter_length1"/>
<field name="cutting_tool_parameter_diameter1"/>
<field name="cutting_tool_parameter_body_accuracy"/>
<field name="cutting_tool_parameter_nut"
attrs="{'invisible': [('cutting_tool', '!=', '刀柄')]}"/>
<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', '!=', '刀柄')]}"/>
</group>
<group attrs="{'invisible': ['|',('categ_type', '!=', '刀具'),('cutting_tool', '!=', '刀柄')]}">
<field name="cutting_tool_parameter_material_model"
attrs="{'invisible': [('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_outer_diameter"/>
<field name="cutting_tool_parameter_inner_diameter"/>
<field name="cutting_tool_parameter_accuracy"/>
<field name="cutting_tool_parameter_nut"
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"
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_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>

View File

@@ -50,55 +50,75 @@ class ResProductTemplate(models.Model):
model_code = fields.Char('模型编码')
is_bfm = fields.Boolean('业务平台是否自动创建', default=False)
cutting_tool = fields.Selection([
('整体式刀具', '整体式刀具'),
('刀片', '刀片'),
('刀杆', '刀杆'),
('刀盘', '刀盘'),
('刀柄', '刀柄'),
('夹头', '夹头')], string='刀具')
# 关联整体式刀具型号
integral_cutting_tool_type_id = fields.Many2one('sf.integral.cutting.tool', '整体式刀具型号')
# 关联刀片型号
blade_type_id = fields.Many2one('sf.blade', '刀片型号')
# 关联刀杆型号
cutter_bar_type_id = fields.Many2one('sf.cutter.bar', '刀杆型号')
# 关联刀盘型号
cutter_pad_type_id = fields.Many2one('sf.cutter.pad', '刀盘型号')
# 关联刀柄型号
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_total_length = fields.Float('总长度(mm)')
cutting_tool_parameter_shank_length = fields.Float('柄部长度(mm)')
cutting_tool_parameter_blade_length = fields.Float('刃部长度(mm)')
cutting_tool_parameter_diameter = fields.Float('直径(mm)')
cutting_tool_parameter_total_length = fields.Float('总长度[mm]')
cutting_tool_parameter_shank_length = fields.Float('柄部长度[mm]')
cutting_tool_parameter_blade_length = fields.Float('刃部长度[mm]')
cutting_tool_parameter_diameter = fields.Float('直径[mm]')
cutting_tool_parameter_blade_number = fields.Integer('刃数')
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_nut = fields.Float('配对螺母(mm)')
cutting_tool_parameter_nut = fields.Float('配对螺母[mm]')
# 适用夹头型号可以多选
cutting_tool_parameter_chuck_model = 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)')
cutting_tool_parameter_height = fields.Float('高度T(mm)')
cutting_tool_parameter_length = fields.Float('长度L[mm]')
cutting_tool_parameter_width = fields.Float('宽度D[mm])')
cutting_tool_parameter_height = fields.Float('高度T[mm]')
cutting_tool_parameter_top_angle = fields.Float('顶角(°)')
cutting_tool_parameter_top_angle = fields.Float('R角(°)')
cutting_tool_parameter_hardness = fields.Char('加工硬度')
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_radius = fields.Float('刀尖半径(mm)')
cutting_tool_parameter_radius = fields.Float('刀尖半径[mm]')
# 刀杆/刀盘参数
cutting_tool_parameter_c_diameter = fields.Float('C柄径(mm)')
cutting_tool_parameter_total_length = fields.Float('L总长(mm)')
cutting_tool_parameter_d_diameter = fields.Float('D刃径(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_wrench = fields.Float('配对扳手(mm)')
cutting_tool_parameter_screw = fields.Float('配备螺丝(mm)')
cutting_tool_parameter_accuracy = fields.Char('精度等级')
cutting_tool_parameter_wrench = fields.Float('配对扳手[mm]')
cutting_tool_parameter_screw = fields.Float('配备螺丝[mm]')
cutting_tool_parameter_accuracy_level = fields.Char('精度等级')
cutting_tool_parameter_rounded_corner = fields.Float('刀尖圆角半径[mm]')
cutting_tool_parameter_hardness = fields.Char('硬度(°)')
# 刀柄参数
cutting_tool_parameter_handle_length = fields.Float('L(mm)')
cutting_tool_parameter_length1 = fields.Float('L1(mm)')
cutting_tool_parameter_diameter1 = fields.Float('D1(mm)')
cutting_tool_parameter_handle_length = fields.Float('L[mm]')
cutting_tool_parameter_length1 = fields.Float('L1[mm]')
cutting_tool_parameter_diameter1 = fields.Float('D1[mm]')
cutting_tool_parameter_weight = fields.Float('重量(kg)')
cutting_tool_parameter_body_accuracy = fields.Float('本体精度(mm)')
cutting_tool_parameter_clamping_range = fields.Float('夹持范围(mm)')
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_standard_speed = fields.Float('标准转速')
# 夹头参数
cutting_tool_parameter_accuracy = fields.Float('精度(mm)')
cutting_tool_parameter_diameter = fields.Float('外径(mm)')
cutting_tool_parameter_inner_diameter = fields.Float('内径(mm)')
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_feature = fields.Char('特性')
@@ -109,28 +129,6 @@ class ResProductTemplate(models.Model):
else:
return self.env.ref('sf_dlm.product_uom_cubic_millimeter')
# model_file = fields.Binary('模型文件')
# 坯料的库存路线设置
# def _get_routes(self, route_type):
# route_manufacture = self.env.ref('mrp.route_warehouse0_manufacture', raise_if_not_found=False).sudo()
# route_mto = self.env.ref('stock.route_warehouse0_mto', raise_if_not_found=False).sudo()
# route_purchase = self.env.ref('purchase_stock.route_warehouse0_buy', raise_if_not_found=False).sudo()
# if route_manufacture and route_mto:
# # 外协
# if route_type == 'subcontract':
# route_subcontract = self.env.ref('mrp_subcontracting.route_resupply_subcontractor_mto',
# raise_if_not_found=False).sudo()
# return [route_mto.id, route_purchase.id, route_subcontract.id]
# elif route_type == 'purchase':
# # 采购
# return [route_mto.id, route_purchase.id]
# else:
# return [route_mto.id, route_manufacture.id]
# return []
# route_ids = fields.Many2many(default=lambda self: self._get_route())
# 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品
def product_create(self, product_id, item, order_id, order_number, i):
copy_product_id = product_id.with_user(self.env.ref("base.user_admin")).copy()
@@ -314,6 +312,112 @@ class ResProductTemplate(models.Model):
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
@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
@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
@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
@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
@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
class ResMrpBom(models.Model):
_inherit = 'mrp.bom'
@@ -393,9 +497,6 @@ class ResMrpBom(models.Model):
[('categ_id.type', '=', '原材料'), ('materials_type_id', '=', product.materials_type_id.id)])
return raw_bom
# @api.constrains('type')
# def _check_type(self):
# category = self.env['product.category'].search(

View File

@@ -285,4 +285,48 @@
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
</record>
<record model="ir.cron" id="sf_cron29">
<field name="name">同步资源库夹紧元件型号</field>
<field name="model_id" ref="model_sf_fixture_clamping_element"/>
<field name="state">code</field>
<field name="code">model.sync_fixture_clamping_element()</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_cron30">
<field name="name">同步资源库夹紧元件类型</field>
<field name="model_id" ref="model_sf_clamping_element_type"/>
<field name="state">code</field>
<field name="code">model.sync_clamping_element_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_cron31">
<field name="name">同步资源库导向元件类型</field>
<field name="model_id" ref="model_sf_guide_element_type"/>
<field name="state">code</field>
<field name="code">model.sync_guide_element_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_cron31">
<field name="name">同步资源库导向元件导向方式</field>
<field name="model_id" ref="model_sf_guide_element_guide_mode"/>
<field name="state">code</field>
<field name="code">model.sync_guide_element_guide_mode()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
</record>
</odoo>

View File

@@ -130,6 +130,15 @@ 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("同步资源库导向元件导向方式")
except Exception as e:
_logger.info("捕获错误信息:%s" % e)
raise ValidationError("数据错误导致同步失败,请联系管理员")

View File

@@ -2768,3 +2768,339 @@ class SyncChuckModel(models.Model):
print('同步夹头类型列表成功')
else:
raise ValidationError("认证未通过")
'''=========================================夹紧元件类型==============================================='''
class sfClampingElementType(models.Model):
_inherit = 'sf.clamping.element.type'
_description = '夹紧元件类型'
url = '/api/mrs_clamping_element_type/list'
# 定时同步每日夹紧元件类型
def sync_clamping_element_type(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'])
if result['status'] == 1:
for item in result['mrs_clamping_element_type_yesterday_list']:
if item:
brand = self.env['sf.clamping.element.type'].search(
[("code", '=', item['code'])])
if brand:
brand.name = item['name'],
brand.code = item['code'],
brand.comment = item['comment']
else:
self.env['sf.clamping.element.type'].create({
"name": item['name'],
"code": item['code'],
"comment": item['comment']
})
else:
raise ValidationError("认证未通过")
# 同步所有夹紧元件类型
def sync_all_clamping_element_type(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'])
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_clamping_element_type_all_list']:
if item:
brand = self.env['sf.clamping.element.type'].search(
[("code", '=', item['code'])])
if not brand:
self.env['sf.clamping.element.type'].create({
"name": item['name'],
"code": item['code'],
"comment": item['comment']
})
else:
raise ValidationError("认证未通过")
'''=================================夹紧元件型号============================================='''
class sfFixtureClampingElement(models.Model):
_inherit = 'sf.fixture.clamping.element'
_description = '夹紧元件型号'
url = '/api/mrs_fixture_clamping_element/list'
# 定时同步夹紧元件型号
def sync_fixture_clamping_element(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'])
if result['status'] == 1:
for item in result['mrs_fixture_clamping_element_yesterday_list']:
brand = self.env['sf.fixture.clamping.element'].search(
[("code", '=', item['code'])])
if brand:
brand.code = item['code'],
brand.name = item['name'],
brand.length = item['length'],
brand.width = item['width'],
brand.height = item['height'],
brand.diameter = item['diameter'],
brand.hardness = item['hardness'],
brand.chucking_power = item['chucking_power'],
brand.surface_treatment = item['surface_treatment'],
brand.accuracy_grade = item['accuracy_grade'],
# brand.picture = item['picture'].encode('utf-8'),
brand.picture = base64.b64decode(item['picture']),
brand.comment = item['comment'],
brand.brand_id = self.env['sf.machine.brand'].search(
[('code', '=', item['brand_id'])]).id,
brand.material_type_id = self.env['sf.materials.model'].search(
[('materials_no', '=', item['material_type_id'])]).id,
brand.clamping_ele_type_id = self.env['sf.clamping.element.type'].search(
[('code', '=', item['clamping_ele_type_id'])]).id
else:
self.env['sf.fixture.clamping.element'].create({
"code": item['code'],
"name": item['name'],
"length": item['length'],
"width": item['width'],
"height": item['height'],
"diameter": item['diameter'],
"hardness": item['hardness'],
"chucking_power": item['chucking_power'],
"surface_treatment": item['surface_treatment'],
"accuracy_grade": item['accuracy_grade'],
'picture': base64.b64decode(item['picture']),
# "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(
[('materials_no', '=', item['material_type_id'])]).id,
"clamping_ele_type_id": self.env['sf.clamping.element.type'].search(
[('code', '=', item['clamping_ele_type_id'])]).id,
})
else:
raise ValidationError("认证未通过")
# 同步所有夹紧元件型号
def sync_all_fixture_clamping_element(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)
if result['status'] == 1:
for item in result['mrs_fixture_clamping_element_all_list']:
brand = self.env['sf.fixture.clamping.element'].search(
[("code", '=', item['code'])])
if not brand:
self.env['sf.fixture.clamping.element'].create({
"code": item['code'],
"name": item['name'],
"length": item['length'],
"width": item['width'],
"height": item['height'],
"diameter": item['diameter'],
"hardness": item['hardness'],
"chucking_power": item['chucking_power'],
"surface_treatment": item['surface_treatment'],
"accuracy_grade": item['accuracy_grade'],
# "picture": item['picture'].encode('utf-8'),
'picture': base64.b64decode(item['picture']),
"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(
[('materials_no', '=', item['material_type_id'])]).id,
"clamping_ele_type_id": self.env['sf.clamping.element.type'].search(
[('code', '=', item['clamping_ele_type_id'])]).id,
})
else:
raise ValidationError("认证未通过")
'''===================================导向元件类型=========================================='''
class sfGuideElementType(models.Model):
_inherit = 'sf.guide.element.type'
_description = '导向元件类型'
url = '/api/mrs_guide_element_type/list'
# 定时同步每日导向元件类型
def sync_guide_element_type(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'])
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_guide_element_type_yesterday_list']:
if item:
brand = self.env['sf.guide.element.type'].search(
[("code", '=', item['code'])])
if brand:
brand.name = item['name'],
brand.code = item['code'],
brand.comment = item['comment']
else:
self.env['sf.guide.element.type'].create({
"name": item['name'],
"code": item['code'],
"comment": item['comment']
})
else:
raise ValidationError("认证未通过")
# 同步所有导向元件类型
def sync_all_guide_element_type(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'])
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_guide_element_type_all_list']:
if item:
brand = self.env['sf.guide.element.type'].search(
[("code", '=', item['code'])])
if not brand:
self.env['sf.guide.element.type'].create({
"name": item['name'],
"code": item['code'],
"comment": item['comment']
})
# guide_element_type = self.env['sf.guide.element.type'].search([('code', '=', code)])
# tags = self.env['sf.tag'].search([('name', '=', 'new_tag_name')])
# guide_element_type.write({'tag_ids': [(6, 0, tags.ids)]})
else:
raise ValidationError("认证未通过")
'''===================================导向元件导向方式=========================================='''
class sfGuideElementGuideMode(models.Model):
_inherit = 'sf.guide.element.guide.mode'
_description = '导向元件导向方式'
url = '/api/mrs_guide_element_guide_mode/list'
# 定时同步每日导向元件导向方式
def sync_guide_element_guide_mode(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'])
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_guide_element_guide_mode_yesterday_list']:
name_id_list = []
if item.get('guide_ele_guide_mode_id'):
for i in item.get('guide_ele_guide_mode_id'):
name_id_list.append(self.env['sf.fixture.guide.element'].search(
[("code", '=', i)]).id)
if item:
brand = self.env['sf.guide.element.guide.mode'].search(
[("code", '=', item['code'])])
if brand:
brand.name = item['name'],
brand.code = item['code'],
brand.comment = item['comment']
brand.name_id = name_id_list
else:
self.env['sf.guide.element.guide.mode'].create({
"name": item['name'],
"code": item['code'],
"comment": item['comment'],
"name_id": name_id_list
})
else:
raise ValidationError("认证未通过")
# 同步所有导向元件导向方式
def sync_all_guide_element_guide_mode(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'])
if result['status'] == 1:
_logger.info('result:%s' % result)
for item in result['mrs_guide_element_guide_mode_all_list']:
name_id_list = []
if item.get('guide_ele_guide_mode_id'):
for i in item.get('guide_ele_guide_mode_id'):
name_id_list.append(self.env['sf.fixture.guide.element'].search(
[("code", '=', i)]).id)
if item:
brand = self.env['sf.guide.element.guide.mode'].search(
[("code", '=', item['code'])])
if not brand:
self.env['sf.guide.element.guide.mode'].create({
"name": item['name'],
"code": item['code'],
"comment": item['comment'],
"name_id": name_id_list
})
else:
raise ValidationError("认证未通过")