diff --git a/sf_base/commons/common.py b/sf_base/commons/common.py index d146ce3c..f99d6563 100644 --- a/sf_base/commons/common.py +++ b/sf_base/commons/common.py @@ -4,10 +4,15 @@ import time import hashlib + + + class Common(models.Model): _name = 'sf.sync.common' _description = u'公用类' + + def get_headers(self,token, secret_key): ''' 获取requests中的heardes参数 diff --git a/sf_base/models/base.py b/sf_base/models/base.py index a5dec8e4..8b79ab1a 100644 --- a/sf_base/models/base.py +++ b/sf_base/models/base.py @@ -45,7 +45,21 @@ class MachineBrand(models.Model): class MachineTool(models.Model): _name = 'sf.machine_tool' _description = '机床' - MTcode = fields.Char("编码") + + def get_no(self): + partner = self.env['sf.machine_tool'].sudo().search( + [('MTcode', '!=', '')], + limit=1, + order="id desc") + if not partner: + num = "%04d" % 1 + + else: + m = int(partner.MTcode) + 1 + num = "%04d" % m + return num + + MTcode = fields.Char("编码", default=get_no) code = fields.Char('行业编码') name = fields.Char('名称') knife_type = fields.Selection( @@ -148,11 +162,12 @@ class MachineTool(models.Model): 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.crea_url - objs_all = request.env['sf.machine_tool'].sudo().search([]) + objs_all = self.env['sf.machine_tool'].search([('MTcode', '=', self.MTcode)]) machine_tool_list = [] if objs_all: for item in objs_all: val = { + 'MTcode': item.MTcode, 'factory_token': token, 'id': item.id, 'name': item.name, @@ -179,10 +194,12 @@ class MachineTool(models.Model): machine_tool_list.append(val) # kw = machine_tool_list kw = json.dumps(machine_tool_list, ensure_ascii=False) - r = requests.post(strurl, json={}, data={'kw': kw}, headers=headers) + r = requests.post(strurl, json={}, data={'kw': kw, 'token': token}, headers=headers) + ret = r.json() + self.code = ret['code'] print(r) if r == 200: - raise ValidationError("机床注册成功") + return "机床注册成功" else: raise ValidationError("没有注册机床信息") @@ -247,4 +264,3 @@ class CuttingToolType(models.Model): brand_id = fields.Many2one('sf.machine.brand', string='品牌') remark = fields.Text('备注') active = fields.Boolean('有效', default=True) - diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 2f4286ce..d51a6f89 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -4,7 +4,6 @@ import logging from datetime import datetime from dateutil.relativedelta import relativedelta from odoo import api, fields, models, SUPERUSER_ID, _ -from odoo.addons.sf_base.commons.common import Common class ResMrpWorkOrder(models.Model): diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py index 55b3e66c..fec87d75 100644 --- a/sf_mrs_connect/models/res_config_setting.py +++ b/sf_mrs_connect/models/res_config_setting.py @@ -31,6 +31,7 @@ class ResConfigSettings(models.TransientModel): self.env['sf.machine.control_system'].sync_all_machine_tool_type_control_system() _logger.info("同步资源库控制系统") # self.env['sf.machine_tool'].sync_all_machine_tool() + # _logger.info("同步机床行业编码") self.env['sf.machine_tool.type'].sync_all_machine_tool_type() _logger.info("同步资源库机床型号") self.env['sf.cutting_tool.category'].sync_all_cutting_tool_category()