From 88ffc34a6835b3c1a592fb10334a76c0bf33b36c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Fri, 27 Sep 2024 14:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=94=A8=E5=88=80=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_message/__init__.py | 3 +- sf_message/controllers/__init__.py | 1 + sf_message/controllers/main.py | 39 +++++++++++++++++++++++ sf_message/models/__init__.py | 2 +- sf_mrs_connect/controllers/controllers.py | 3 ++ 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 sf_message/controllers/__init__.py create mode 100644 sf_message/controllers/main.py diff --git a/sf_message/__init__.py b/sf_message/__init__.py index 9a7e03ed..f7209b17 100644 --- a/sf_message/__init__.py +++ b/sf_message/__init__.py @@ -1 +1,2 @@ -from . import models \ No newline at end of file +from . import models +from . import controllers diff --git a/sf_message/controllers/__init__.py b/sf_message/controllers/__init__.py new file mode 100644 index 00000000..deec4a8b --- /dev/null +++ b/sf_message/controllers/__init__.py @@ -0,0 +1 @@ +from . import main \ No newline at end of file diff --git a/sf_message/controllers/main.py b/sf_message/controllers/main.py new file mode 100644 index 00000000..01c5785c --- /dev/null +++ b/sf_message/controllers/main.py @@ -0,0 +1,39 @@ +import json +import requests +import logging +from odoo import http +from odoo.http import request +from odoo.addons.sf_mrs_connect.controllers.controllers import Sf_Mrs_Connect +from odoo.addons.sf_base.commons.common import Common + +_logger = logging.getLogger(__name__) + +class Message_Sf_Mrs_Connect(Sf_Mrs_Connect): + + @http.route('/api/cnc_processing/create', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False, + cors="*") + def get_cnc_processing_create(self, **kw): + res = super(Message_Sf_Mrs_Connect, self).get_cnc_processing_create(**kw) + res = json.loads(res) + if res.get('production_ids'): + try: + productions = request.env['mrp.production'].sudo().search([('id', 'in', res.get('production_ids'))]) + # 过滤programming_state为已编程,tool_state为2的制造订单 + tool_state_valid_productions = productions.filtered(lambda x: x.programming_state == '已编程' and x.tool_state == '2') + if tool_state_valid_productions: + data = { + 'name': tool_state_valid_productions[0].programming_no + } + # 请求cloud接口,发送微信消息推送 + configsettings = request.env['res.config.settings'].sudo().get_values() + config_header = Common.get_headers(self, configsettings['token'], configsettings['sf_secret_key']) + url = '/api/message/invalid_tool_state' + config_url = configsettings['sf_url'] + url + data['token'] = configsettings['token'] + ret = requests.post(config_url, json=data, headers=config_header) + ret = ret.json() + _logger.info('无效用刀异常消息推送接口:%s' % ret) + except Exception as e: + _logger.info('无效用刀异常消息推送接口:%s' % e) + return json.JSONEncoder().encode(res) + diff --git a/sf_message/models/__init__.py b/sf_message/models/__init__.py index e84a0acd..77a7ce17 100644 --- a/sf_message/models/__init__.py +++ b/sf_message/models/__init__.py @@ -6,4 +6,4 @@ from . import sf_message_cam_program from . import sf_message_functional_tool_assembly from . import sf_message_purchase from . import sf_message_workorder -from . import sf_message_functional_tool_dismantle \ No newline at end of file +from . import sf_message_functional_tool_dismantle diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index 699bc35a..7f3c3d83 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -93,6 +93,9 @@ class Sf_Mrs_Connect(http.Controller): pre_workorder.write( {'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())}) productions.write({'programming_state': '已编程', 'work_state': '已编程'}) + res.update({ + 'production_ids': productions.ids + }) return json.JSONEncoder().encode(res) else: res = {'status': 0, 'message': '该制造订单暂未开始'}