From b5c7be8de0f502a5fc8d9a33631e7f583e344015 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Fri, 19 Jan 2024 17:26:45 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E6=9C=BA=E5=BA=8A?= =?UTF-8?q?=E5=88=80=E5=85=B7=E7=BB=84=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E5=88=80=E5=85=B7=E7=BB=84=E6=96=B0=E5=BB=BA=E5=92=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E6=96=B0=E5=A2=9E=E9=9B=B6=E4=BB=B6=E7=89=B9?= =?UTF-8?q?=E9=87=87=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=9C=A8=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=AE=A1=E6=A0=B8=E4=B9=8B=E5=90=8E=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=8E=A5=E5=8F=A3=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/tool_base_new.py | 38 +++++++++++++++++++++++++++++++++ sf_quality/models/__init__.py | 1 + sf_quality/models/quality.py | 34 +++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 sf_quality/models/quality.py diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py index 474c46f3..7988dc7a 100644 --- a/sf_base/models/tool_base_new.py +++ b/sf_base/models/tool_base_new.py @@ -1,5 +1,9 @@ # -*- coding: utf-8 -*- +import json +import requests from odoo import fields, models, api +from odoo.exceptions import ValidationError +from odoo.addons.sf_base.commons.common import Common class CuttingToolMaterial(models.Model): @@ -249,3 +253,37 @@ class ToolGroups(models.Model): name = fields.Char('名称') equipment_ids = fields.Many2many('maintenance.equipment', 'ref_maintenance_equipment', string='机台号') remark = fields.Char('备注', size=50) + + # ==========机床刀具组接口========== + def _register_tool_groups(self, obj): + create_url = '/AutoDeviceApi/FeedBackOut' + 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(obj, token, sf_secret_key) + strurl = sf_sync_config['sf_url'] + create_url + device_id = '' + for equipment_id in obj.equipment_ids: + device_id = '%s,%s' % (device_id, equipment_id.name) + val = { + 'DeviceId': device_id, + 'GroupName': obj.name, + } + kw = json.dumps(val, ensure_ascii=False) + r = requests.post(strurl, json={}, data={'kw': kw, 'token': token}, headers=headers) + ret = r.json() + if r == 200: + return "机床刀具组发送成功" + else: + raise ValidationError("机床刀具组发送失败") + + def write(self, vals): + obj = super().write(vals) + self._register_tool_groups(obj) + return obj + + @api.model_create_multi + def create(self, vals_list): + records = super(ToolGroups, self).create(vals_list) + self._register_tool_groups(records) + return records diff --git a/sf_quality/models/__init__.py b/sf_quality/models/__init__.py index 79a87b7d..71468786 100644 --- a/sf_quality/models/__init__.py +++ b/sf_quality/models/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import custom_quality +from . import quality diff --git a/sf_quality/models/quality.py b/sf_quality/models/quality.py new file mode 100644 index 00000000..7382f6be --- /dev/null +++ b/sf_quality/models/quality.py @@ -0,0 +1,34 @@ +import json +import requests +from odoo import fields, models, api +from odoo.exceptions import ValidationError +from odoo.addons.sf_base.commons.common import Common + + +class QualityCheck(models.Model): + _inherit = "quality.check" + _description = '零件特采' + + # ==========零件特采接口========== + def _register_tool_groups(self): + create_url = '/AutoDeviceApi/FeedBackOut' + 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'] + create_url + val = { + 'RfidCode': None, + } + kw = json.dumps(val, ensure_ascii=False) + r = requests.post(strurl, json={}, data={'kw': kw, 'token': token}, headers=headers) + ret = r.json() + if r == 200: + return "零件特采发送成功" + else: + raise ValidationError("零件特采发送失败") + + @api.onchange('quality_state') + def _onchange_quality_state(self): + if self.quality_state in ['pass', 'fail']: + self._register_tool_groups()