From 3a8c65c8d15213d0670b5f1cdb6594bb43b5d967 Mon Sep 17 00:00:00 2001
From: yuxianghui <1608204036@qq.com>
Date: Tue, 13 Jun 2023 11:19:06 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3sf=E4=BB=A3=E7=A0=81=E5=86=B2?=
=?UTF-8?q?=E7=AA=81=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_base/__manifest__.py | 2 +
sf_base/models/__init__.py | 1 +
sf_base/models/fixture_base.py | 240 +++++++
sf_base/security/ir.model.access.csv | 14 +-
sf_base/views/fixture_base_view.xml | 681 ++++++++++++++++++++
sf_base/views/menu_fixture_view.xml | 106 +++
sf_mrs_connect/data/ir_cron_data.xml | 44 ++
sf_mrs_connect/models/res_config_setting.py | 9 +
sf_mrs_connect/models/sync_common.py | 336 ++++++++++
9 files changed, 1432 insertions(+), 1 deletion(-)
create mode 100644 sf_base/models/fixture_base.py
create mode 100644 sf_base/views/fixture_base_view.xml
create mode 100644 sf_base/views/menu_fixture_view.xml
diff --git a/sf_base/__manifest__.py b/sf_base/__manifest__.py
index 21f4d41d..2c05e1a2 100644
--- a/sf_base/__manifest__.py
+++ b/sf_base/__manifest__.py
@@ -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': [
diff --git a/sf_base/models/__init__.py b/sf_base/models/__init__.py
index f6e247d2..5b9136ae 100644
--- a/sf_base/models/__init__.py
+++ b/sf_base/models/__init__.py
@@ -1,5 +1,6 @@
from . import base
from . import common
from . import tool_base
+from . import fixture_base
diff --git a/sf_base/models/fixture_base.py b/sf_base/models/fixture_base.py
new file mode 100644
index 00000000..6ca48f71
--- /dev/null
+++ b/sf_base/models/fixture_base.py
@@ -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)
diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv
index b75eee63..ff43d323 100644
--- a/sf_base/security/ir.model.access.csv
+++ b/sf_base/security/ir.model.access.csv
@@ -33,6 +33,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
diff --git a/sf_base/views/fixture_base_view.xml b/sf_base/views/fixture_base_view.xml
new file mode 100644
index 00000000..09cd4b86
--- /dev/null
+++ b/sf_base/views/fixture_base_view.xml
@@ -0,0 +1,681 @@
+
+
+
+
+
+ 定位元件型号
+ sf.fixture.setting.element
+
+
+
+
+
+
+
+
+
+
+
+
+ 定位元件型号
+ sf.fixture.setting.element
+
+
+
+
+
+
+ 定位元件型号
+ ir.actions.act_window
+ sf.fixture.setting.element
+ tree,form
+
+
+
+
+
+
+ 定位原件类型
+ sf.setting.element.type
+
+
+
+
+
+
+
+
+
+ 定位元件类型
+ sf.setting.element.type
+
+
+
+
+
+
+ 定位元件类型
+ ir.actions.act_window
+ sf.setting.element.type
+ tree,form
+
+
+
+
+
+
+
+ 夹紧元件型号
+ sf.fixture.clamping.element
+
+
+
+
+
+
+
+
+
+
+
+
+ 夹紧元件型号
+ sf.fixture.clamping.element
+
+
+
+
+
+
+ 夹紧元件型号
+ ir.actions.act_window
+ sf.fixture.clamping.element
+ tree,form
+
+
+
+
+
+
+
+ 夹紧元件类型
+ sf.clamping.element.type
+
+
+
+
+
+
+
+
+
+ 夹紧元件类型
+ sf.clamping.element.type
+
+
+
+
+
+
+ 夹紧元件类型
+ ir.actions.act_window
+ sf.clamping.element.type
+ tree,form
+
+
+
+
+
+
+ 对刀夹具型号
+ sf.fixture.tool.setting
+
+
+
+
+
+
+
+
+
+
+
+
+ 对刀夹具型号
+ sf.fixture.tool.setting
+
+
+
+
+
+
+ 对刀夹具型号
+ ir.actions.act_window
+ sf.fixture.tool.setting
+ tree,form
+
+
+
+
+
+ 对刀夹具类型
+ sf.tool.setting.type
+
+
+
+
+
+
+
+
+
+ 对刀夹具类型
+ sf.tool.setting.type
+
+
+
+
+
+
+ 对刀夹具类型
+ ir.actions.act_window
+ sf.tool.setting.type
+ tree,form
+
+
+
+
+
+
+ 定位装置型号
+ sf.fixture.locating.device
+
+
+
+
+
+
+
+
+
+
+
+
+ 定位装置型号
+ sf.fixture.locating.device
+
+
+
+
+
+
+ 定位装置型号
+ ir.actions.act_window
+ sf.fixture.locating.device
+ tree,form
+
+
+
+
+
+ 定位装置类型
+ sf.locating.device.type
+
+
+
+
+
+
+
+
+
+ 定位装置类型
+ sf.locating.device.type
+
+
+
+
+
+
+ 定位装置类型
+ ir.actions.act_window
+ sf.locating.device.type
+ tree,form
+
+
+
+
+
+ 定位装置定位方式
+ sf.locating.device.locate.mode
+
+
+
+
+
+
+
+
+
+ 定位装置定位方式
+ sf.locating.device.locate.mode
+
+
+
+
+
+
+ 定位装置定位方式
+ ir.actions.act_window
+ sf.locating.device.locate.mode
+ tree,form
+
+
+
+
+
+ 导向元件型号
+ sf.fixture.guide.element
+
+
+
+
+
+
+
+
+
+
+
+
+ 导向元件型号
+ sf.fixture.guide.element
+
+
+
+
+
+
+ 导向元件型号
+ ir.actions.act_window
+ sf.fixture.guide.element
+ tree,form
+
+
+
+
+
+ 导向元件类型
+ sf.guide.element.type
+
+
+
+
+
+
+
+
+
+ 导向元件类型
+ sf.guide.element.type
+
+
+
+
+
+
+ 导向元件类型
+ ir.actions.act_window
+ sf.guide.element.type
+ tree,form
+
+
+
+
+
+
+ 导向元件导向方式
+ sf.guide.element.guide.mode
+
+
+
+
+
+
+
+
+
+ 导向元件导向方式
+ sf.guide.element.guide.mode
+
+
+
+
+
+
+ 导向元件导向方式
+ ir.actions.act_window
+ sf.guide.element.guide.mode
+ tree,form
+
+
+
+
+
+
+ 导向元件安装方式
+ sf.guide.element.way.to.install
+
+
+
+
+
+
+
+
+
+ 导向元件安装方式
+ sf.guide.element.way.to.install
+
+
+
+
+
+
+ 导向元件安装方式
+ ir.actions.act_window
+ sf.guide.element.way.to.install
+ tree,form
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_base/views/menu_fixture_view.xml b/sf_base/views/menu_fixture_view.xml
new file mode 100644
index 00000000..ab7981c4
--- /dev/null
+++ b/sf_base/views/menu_fixture_view.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_mrs_connect/data/ir_cron_data.xml b/sf_mrs_connect/data/ir_cron_data.xml
index 513d5dee..dd14859d 100644
--- a/sf_mrs_connect/data/ir_cron_data.xml
+++ b/sf_mrs_connect/data/ir_cron_data.xml
@@ -307,4 +307,48 @@
-1
+
+
+ 同步资源库夹紧元件型号
+
+ code
+ model.sync_fixture_clamping_element()
+ 1
+ days
+ -1
+
+
+
+
+ 同步资源库夹紧元件类型
+
+ code
+ model.sync_clamping_element_type()
+ 1
+ days
+ -1
+
+
+
+
+ 同步资源库导向元件类型
+
+ code
+ model.sync_guide_element_type()
+ 1
+ days
+ -1
+
+
+
+
+ 同步资源库导向元件导向方式
+
+ code
+ model.sync_guide_element_guide_mode()
+ 1
+ days
+ -1
+
+
\ No newline at end of file
diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py
index bb996fdf..535c394e 100644
--- a/sf_mrs_connect/models/res_config_setting.py
+++ b/sf_mrs_connect/models/res_config_setting.py
@@ -134,6 +134,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("数据错误导致同步失败,请联系管理员")
diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py
index 601b9212..d5377cf7 100644
--- a/sf_mrs_connect/models/sync_common.py
+++ b/sf_mrs_connect/models/sync_common.py
@@ -2930,3 +2930,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("认证未通过")
+