Files
jikimo_sf/sf_mrs_connect/models/res_config_setting.py

127 lines
6.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of SmartGo. See LICENSE file for full copyright and licensing details.
import logging
from odoo import api, fields, models
from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__)
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
token = fields.Char(string='TOKEN', default='b811ac06-3f00-11ed-9aed-0242ac110003')
sf_secret_key = fields.Char(string='密钥', default='wBmxej38OkErKhD6')
sf_url = fields.Char(string='访问地址', default='https://sf.cs.jikimo.com')
agv_rcms_url = fields.Char(string='avg_rcms访问地址',
default='http://IP:PORT/rcms/services/rest/hikRpcService/genAgvSchedulingTask')
agv_rcs_url = fields.Char(string='avg_rcs访问地址', default='http://IP:PORT/xxx/agv/agvCallbackService/agvCallback')
model_parser_url = fields.Char('特征识别路径')
ftp_host = fields.Char(string='FTP的ip')
ftp_port = fields.Char(string='FTP端口')
ftp_user = fields.Char(string='FTP用户')
ftp_password = fields.Char(string='FTP密码')
def sf_all_sync(self):
try:
self.env['sf.production.materials'].sync_all_production_materials()
_logger.info("同步资源库材料完成")
self.env['sf.materials.model'].sync_all_materials_model()
_logger.info("同步资源库材料型号完成")
self.env['sf.international.standards'].sync_all_mrs_international_standards()
_logger.info("同步资源库国际标准完成")
self.env['material.apply'].sync_all_material_apply()
_logger.info("同步资源库材料应用完成")
self.env['sf.production.process.category'].sync_all_production_process_category()
_logger.info("同步资源库表面工艺类别完成")
self.env['sf.production.process'].sync_all_production_process()
_logger.info("同步资源库表面工艺完成")
# self.env['sf.processing.technology'].sync_all_processing_technology()
# _logger.info("同步资源库加工工艺")
self.env['sf.machine.brand.tags'].sync_all_machine_brand_tags()
_logger.info("同步资源库品牌类别完成")
self.env['sf.machine.brand'].sync_all_machine_brand()
_logger.info("同步资源库品牌完成")
self.env['sf.machine.control_system'].sync_all_machine_control_system()
_logger.info("同步资源库控制系统完成")
self.env['sf.machine_tool.category'].sync_all_machine_tool_category()
_logger.info("同步资源库机床类型完成")
self.env['sf.production.process.parameter'].sync_all_production_process_parameter()
_logger.info("同步材料型号可选参数完成")
self.env['sf.cutting.tool.material'].sync_all_cutting_tool_material()
_logger.info("同步刀具物料完成")
self.env['sf.cutting.tool.type'].sync_all_tool_type()
_logger.info("同步刀具类型完成")
self.env['sf.functional.cutting.tool.model'].sync_all_functional_cutting_tool_model()
_logger.info("同步功能刀具类型完成")
self.env['sf.fixture.material'].sync_all_fixture_material()
_logger.info("同步夹具物料完成")
self.env['sf.multi_mounting.type'].sync_all_multi_mounting_type()
_logger.info("同步联装类型完成")
self.env['sf.fixture.model'].sync_all_fixture_model()
_logger.info("同步夹具型号完成")
self.env['sf.functional.fixture.type'].sync_all_functional_fixture_type()
_logger.info("同步夹具型号类型完成")
self.env['sf.machine_tool.type'].sync_all_machine_tool_type()
_logger.info("同步功能夹具类型完成")
self.env['maintenance.equipment.image'].sync_all_maintenance_equipment_image()
_logger.info("同步能力特征库完成")
self.env['sf.cutting_tool.standard.library'].sync_all_cutting_tool_standard_library()
_logger.info("同步刀具标准库完成")
self.env['sf.tool.materials.basic.parameters'].sync_all_cutting_tool_basic_parameters()
_logger.info("同步刀具物料基本参数完成")
self.env['sf.cutting.width.depth'].sync_all_cutting_width_depth()
_logger.info("同步刀具物料切削宽度和深度完成")
self.env['sf.cutting.speed'].sync_all_cutting_speed()
_logger.info("同步刀具物料切削速度完成")
self.env['sf.feed.per.tooth'].sync_all_feed_per_tooth()
_logger.info("同步刀具物料每齿走刀量完成")
except Exception as e:
_logger.info("捕获错误信息:%s" % e)
raise ValidationError("数据错误导致同步失败,请联系管理员")
@api.model
def get_values(self):
"""
重载获取参数的方法,参数都存在系统参数中
:return:
"""
values = super(ResConfigSettings, self).get_values()
config = self.env['ir.config_parameter'].sudo()
token = config.get_param('token', default='')
sf_secret_key = config.get_param('sf_secret_key', default='')
sf_url = config.get_param('sf_url', default='')
agv_rcms_url = config.get_param('agv_rcms_url', default='')
agv_rcs_url = config.get_param('agv_rcs_url', default='')
ftp_host = config.get_param('ftp_host', default='')
ftp_port = config.get_param('ftp_port', default='')
ftp_user = config.get_param('ftp_user', default='')
ftp_password = config.get_param('ftp_password', default='')
values.update(
token=token,
sf_secret_key=sf_secret_key,
sf_url=sf_url,
agv_rcms_url=agv_rcms_url,
agv_rcs_url=agv_rcs_url,
ftp_host=ftp_host,
ftp_port=ftp_port,
ftp_user=ftp_user,
ftp_password=ftp_password
)
return values
def set_values(self):
super(ResConfigSettings, self).set_values()
ir_config = self.env['ir.config_parameter'].sudo()
ir_config.set_param("token", self.token or "")
ir_config.set_param("sf_secret_key", self.sf_secret_key or "")
ir_config.set_param("sf_url", self.sf_url or "")
ir_config.set_param("agv_rcms_url", self.agv_rcms_url or "")
ir_config.set_param("agv_rcs_url", self.agv_rcs_url or "")
ir_config.set_param("ftp_host", self.ftp_host or "")
ir_config.set_param("ftp_port", self.ftp_port or "")
ir_config.set_param("ftp_user", self.ftp_user or "")
ir_config.set_param("ftp_password", self.ftp_password or "")