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_message/models/sf_message_workorder.py b/sf_message/models/sf_message_workorder.py index 9d18e656..6659ab52 100644 --- a/sf_message/models/sf_message_workorder.py +++ b/sf_message/models/sf_message_workorder.py @@ -39,28 +39,6 @@ class SFMessageWork(models.Model): contents.append(content) return contents - @api.depends('cnc_ids.tool_state') - def _compute_tool_state(self): - # 将self的id与tool_state进行保存 - tool_state_dict = {record.id: record.tool_state for record in self} - res = super(SFMessageWork, self)._compute_tool_state() - data = {'name': []} - for record in self: - if tool_state_dict[record.id] != '2' and record.tool_state == '2': - data['name'].append(record.production_id.programming_no) - - if data['name']: - # 请求cloud接口,发送微信消息推送 - configsettings = self.env['res.config.settings'].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) - return res - def request_url(self): we_config_info = self.env['we.config'].sudo().search([], limit=1) redirect_domain = self.env['we.app'].sudo().search([('id', '=', we_config_info.odoo_app_id.id)]).redirect_domain 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': '该制造订单暂未开始'}