From 14ef518bd511b29a70c4ddeac5160d4ae34dd6e1 Mon Sep 17 00:00:00 2001 From: gqh Date: Sat, 8 Oct 2022 15:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=9C=BA=E5=BA=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/__init__.py | 1 - sf_base/security/group_security.xml | 22 ++++++ sf_base/security/ir.model.access.csv | 24 +++--- sf_base/views/menu_view.xml | 86 +++++++++++----------- sf_base/views/mrs_base_view.xml | 93 ++++++++++++++++++++++++ sf_bf_connect/__init__.py | 2 - sf_mrs_sync/data/sf_cron.xml | 4 +- sf_mrs_sync/models/res_config_setting.py | 3 +- sf_mrs_sync/models/sf_sync_common.py | 59 +++++++++++++-- 9 files changed, 225 insertions(+), 69 deletions(-) diff --git a/sf_base/models/__init__.py b/sf_base/models/__init__.py index e53038fc..27b447be 100644 --- a/sf_base/models/__init__.py +++ b/sf_base/models/__init__.py @@ -1,3 +1,2 @@ - from. import sf_base from. import sf_common diff --git a/sf_base/security/group_security.xml b/sf_base/security/group_security.xml index fdbc3ae5..c32538c7 100644 --- a/sf_base/security/group_security.xml +++ b/sf_base/security/group_security.xml @@ -1,5 +1,27 @@ + + 员工 + 1 + + + + 管理 + 2 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index 2ac30253..6df5e07e 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -1,17 +1,17 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_mrs_machine_tool,mrs_machine_tool,model_mrs_machine_tool,base.group_user,1,0,0,0 -access_mrs_cutting_tool_category,mrs_cutting_tool_category,model_mrs_cutting_tool_category,base.group_user,1,0,0,0 -access_mrs_machine_tool_type,mrs_machine_tool_type,model_mrs_machine_tool_type,base.group_user,1,0,0,0 -access_mrs_cutting_tool_type,mrs_cutting_tool_type,model_mrs_cutting_tool_type,base.group_user,1,0,0,0 -access_mrs_machine_brand,mrs_machine_brand,model_mrs_machine_brand,base.group_user,1,0,0,0 -access_mrs_machine_brand_tags,mrs_machine_brand_tags,model_mrs_machine_brand_tags,base.group_user,1,0,0,0 -access_mrs_machine_tool_type_control_system,mrs_machine_tool_type_control_system,model_mrs_machine_tool_type_control_system,base.group_user,1,0,0,0 +access_mrs_machine_tool,mrs_machine_tool,model_mrs_machine_tool,base.group_user,1,1,1,1 +access_mrs_cutting_tool_category,mrs_cutting_tool_category,model_mrs_cutting_tool_category,base.group_user,1,1,1,1 +access_mrs_machine_tool_type,mrs_machine_tool_type,model_mrs_machine_tool_type,base.group_user,1,1,1,1 +access_mrs_cutting_tool_type,mrs_cutting_tool_type,model_mrs_cutting_tool_type,base.group_user,1,1,1,1 +access_mrs_machine_brand,mrs_machine_brand,model_mrs_machine_brand,base.group_user,1,1,1,1 +access_mrs_machine_brand_tags,mrs_machine_brand_tags,model_mrs_machine_brand_tags,base.group_user,1,1,1,1 +access_mrs_machine_tool_type_control_system,mrs_machine_tool_type_control_system,model_mrs_machine_tool_type_control_system,base.group_user,1,1,1,1 -access_mrs_processing_order,mrs_processing_order,model_mrs_processing_order,base.group_user,1,0,0,0 -access_mrs_production_process,mrs_production_process,model_mrs_production_process,base.group_user,1,0,0,0 -access_mrs_production_materials,mrs_production_materials,model_mrs_production_materials,base.group_user,1,0,0,0 -access_mrs_materials_model,mrs_materials_model,model_mrs_materials_model,base.group_user,1,0,0,0 -access_mrs_processing_technology,mrs_processing_technology,model_mrs_processing_technology,base.group_user,1,0,0,0 +access_mrs_processing_order,mrs_processing_order,model_mrs_processing_order,base.group_user,1,1,1,1 +access_mrs_production_process,mrs_production_process,model_mrs_production_process,base.group_user,1,1,1,1 +access_mrs_production_materials,mrs_production_materials,model_mrs_production_materials,base.group_user,1,1,1,1 +access_mrs_materials_model,mrs_materials_model,model_mrs_materials_model,base.group_user,1,1,1,1 +access_mrs_processing_technology,mrs_processing_technology,model_mrs_processing_technology,base.group_user,1,1,1,1 diff --git a/sf_base/views/menu_view.xml b/sf_base/views/menu_view.xml index dd83e9ea..927cbce1 100644 --- a/sf_base/views/menu_view.xml +++ b/sf_base/views/menu_view.xml @@ -2,35 +2,43 @@ - - - - - - - - - + + + + + + + + + + + - --> @@ -53,10 +59,8 @@ groups="base.group_system"/>--> id="menu_mrs_production_process" name="表面工艺" parent="menu_mrs_production_process_1" - sequence="2" + sequence="1" action="mrs_production_process" - - /> @@ -64,7 +68,7 @@ groups="base.group_system"/>--> id="menu_mrs_production_materials" name="材料" parent="menu_mrs_production_materials_1" - sequence="2" + sequence="1" action="mrs_production_materials" @@ -73,7 +77,7 @@ groups="base.group_system"/>--> id="menu_mrs_materials_model" name="材料型号" parent="menu_mrs_production_materials_1" - sequence="2" + sequence="1" action="mrs_materials_model" @@ -84,13 +88,10 @@ groups="base.group_system"/>--> id="menu_mrs_processing_technology" name="加工工艺" parent="menu_mrs_production_process_1" - sequence="2" + sequence="1" action="mrs_processing_technology"/> - - - --> + sequence="0"/> - - - \ No newline at end of file diff --git a/sf_base/views/mrs_base_view.xml b/sf_base/views/mrs_base_view.xml index b5d4797d..6894df01 100644 --- a/sf_base/views/mrs_base_view.xml +++ b/sf_base/views/mrs_base_view.xml @@ -312,4 +312,97 @@

+ + #------------------机床注册------------------ + + + search.mrs.machine_tool + mrs.machine_tool + + + + + + + + + tree.mrs.machine_tool + mrs.machine_tool + + + + + + + + + + + + form.mrs.machine_tool + mrs.machine_tool + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + 机床注册 + ir.actions.act_window + mrs.machine_tool + tree,form + +

+ [机床注册] +

+

+

+
+
\ No newline at end of file diff --git a/sf_bf_connect/__init__.py b/sf_bf_connect/__init__.py index f719d7e8..50ed18aa 100644 --- a/sf_bf_connect/__init__.py +++ b/sf_bf_connect/__init__.py @@ -1,3 +1 @@ # -*-coding:utf-8-*- -from . import models -from . import controllers diff --git a/sf_mrs_sync/data/sf_cron.xml b/sf_mrs_sync/data/sf_cron.xml index 6131b340..993e519b 100644 --- a/sf_mrs_sync/data/sf_cron.xml +++ b/sf_mrs_sync/data/sf_cron.xml @@ -80,10 +80,10 @@ - 同步资源库机床 + 同步注册机床 code - model.sync_machine_tool() + model.enroll_machine_tool() 1 days -1 diff --git a/sf_mrs_sync/models/res_config_setting.py b/sf_mrs_sync/models/res_config_setting.py index c1991a56..4cf815e3 100644 --- a/sf_mrs_sync/models/res_config_setting.py +++ b/sf_mrs_sync/models/res_config_setting.py @@ -22,10 +22,11 @@ class ResConfigSettings(models.TransientModel): self.env['mrs.machine.brand.tags'].sync_all_machine_brand_tags() self.env['mrs.machine_tool.type.control_system'].sync_all_machine_tool_type_control_system() self.env['mrs.machine.brand'].sync_all_machine_brand() - self.env['mrs.machine_tool'].sync_all_machine_tool() + # self.env['mrs.machine_tool'].sync_all_machine_tool() self.env['mrs.machine_tool.type'].sync_all_machine_tool_type() self.env['mrs.cutting_tool.category'].sync_all_cutting_tool_category() self.env['mrs.cutting_tool.type'].sync_all_cutting_tool_type() + return _logger.info("同步资源库成功") @api.model def get_values(self): diff --git a/sf_mrs_sync/models/sf_sync_common.py b/sf_mrs_sync/models/sf_sync_common.py index 2beb3af4..262c3a84 100644 --- a/sf_mrs_sync/models/sf_sync_common.py +++ b/sf_mrs_sync/models/sf_sync_common.py @@ -5,6 +5,8 @@ from odoo import models from odoo.exceptions import ValidationError import logging from odoo.addons.sf_base.commons.common import Common + +from odoo.http import request from .res_config_setting import ResConfigSettings _logger = logging.getLogger(__name__) @@ -18,7 +20,7 @@ class MrsProductionMaterials(models.Model): # 定时同步每日材料 def sync_production_materials(self): - #配置中获取token + # 配置中获取token sf_sync_config = self.env['res.config.settings'].get_values() token = sf_sync_config['token'] mrs_secret_key = sf_sync_config['mrs_secret_key'] @@ -35,11 +37,11 @@ class MrsProductionMaterials(models.Model): brand = self.env['mrs.production.materials'].search( [("materials_no", '=', item['materials_no'])]) if brand: - brand.id=item['id'], - brand.name= item['name'], - brand.materials_no= item['materials_no'], - brand.remark= item['remark'], - brand.active= item['active'] + brand.id = item['id'], + brand.name = item['name'], + brand.materials_no = item['materials_no'], + brand.remark = item['remark'], + brand.active = item['active'] else: self.env['mrs.production.materials'].create({ "id": item['id'], @@ -491,6 +493,49 @@ class MachineTool(models.Model): _inherit = 'mrs.machine_tool' _description = '机床' url = '/api/machine_tool/list' + crea_url = '/api/machine_tool/create' + + # 注册同步机床 + def enroll_machine_tool(self): + sf_sync_config = self.env['res.config.settings'].get_values() + token = sf_sync_config['token'] + mrs_secret_key = sf_sync_config['mrs_secret_key'] + headers = Common.get_headers(self, token, mrs_secret_key) + strurl = sf_sync_config['mrs_url'] + self.crea_url + objs_all = request.env['mrs.machine_tool'].sudo().search([]) + machine_tool_list = [] + if objs_all: + for item in objs_all: + val = { + 'id': item.id, + 'name': item.name, + 'code': item.code, + 'precision': item.precision, + 'knife_type': item.knife_type, + 'registration_date': str(item.registration_date), + 'number_of_knife_library': item.number_of_knife_library, + 'rotate_speed': item.rotate_speed, + 'number_of_axles': item.number_of_axles, + 'control_system_id': item.control_system_id.id, + # 'type_id': item.type_id.id, + # 'brand_id': item.brand_id.id, + 'factory_id': item.factory_id.id, + 'supplier_id': item.supplier_id.id, + 'x_axis': item.x_axis, + 'y_axis': item.y_axis, + 'z_axis': item.z_axis, + 'b_axis': item.b_axis, + 'c_axis': item.c_axis, + 'state': item.state, + 'active': item.active + } + machine_tool_list.append(val) + kw = json.dumps(machine_tool_list, ensure_ascii=False) + print(type(kw)) + r = requests.post(strurl, json=kw, data=None, headers=headers) + print(r) + else: + raise _logger.info("没有注册机床") # 定时同步机床 def sync_machine_tool(self): @@ -816,7 +861,7 @@ class CuttingToolType(models.Model): else: raise ValidationError("认证未通过") - # 同步所有刀具型号 + # 同步所有刀具型号 def sync_all_cutting_tool_type(self): sf_sync_config = self.env['res.config.settings'].get_values() token = sf_sync_config['token']