diff --git a/sf_message/__manifest__.py b/sf_message/__manifest__.py index 0f032a6d..16b9ad0e 100644 --- a/sf_message/__manifest__.py +++ b/sf_message/__manifest__.py @@ -11,7 +11,7 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sale', 'purchase', 'sf_plan', 'jikimo_message_notify','stock'], + 'depends': ['sale', 'purchase', 'sf_plan', 'jikimo_message_notify','stock', 'sf_manufacturing', 'sf_hr'], 'data': [ 'data/bussiness_node.xml' ], diff --git a/sf_message/models/sf_message_workorder.py b/sf_message/models/sf_message_workorder.py index 2462b3f1..62f513b7 100644 --- a/sf_message/models/sf_message_workorder.py +++ b/sf_message/models/sf_message_workorder.py @@ -1,5 +1,9 @@ from odoo import models, fields, api, _ +import logging, json +import requests +from odoo.addons.sf_base.commons.common import Common +_logger = logging.getLogger(__name__) class SFMessageWork(models.Model): _name = 'mrp.workorder' @@ -31,3 +35,25 @@ class SFMessageWork(models.Model): product_id.append(mrp_workorder_line.product_id.id) 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