from odoo import models, fields, api, _ class SFMessageWork(models.Model): _name = 'mrp.workorder' _inherit = ['mrp.workorder', 'jikimo.message.dispatch'] @api.depends('production_availability', 'blocked_by_workorder_ids.state') def _compute_state(self): super(SFMessageWork, self)._compute_state() if self.state == 'ready' and self.routing_type == '装夹预调': self.add_queue('工单已下发通知') def _get_message(self, message_queue_ids): contents = [] product_id = [] for message_queue_id in message_queue_ids: if message_queue_id.message_template_id.name == '工单已下发通知': content = message_queue_id.message_template_id.content mrp_workorder_line = self.env['mrp.workorder'].search([('id', '=', int(message_queue_id.res_id))]) mrp_workorder_list = self.env['mrp.workorder'].search( [('product_id', '=', mrp_workorder_line.product_id.id), ('state', '=', 'ready'), ('routing_type', '=', '装夹预调')]) if len(mrp_workorder_list) > 0 and mrp_workorder_line.product_id.id not in product_id: url = message_queue_id.message_template_id.get_url(int(message_queue_id.res_id)) + "&active_id=1" content = content.replace('{{product_id}}', mrp_workorder_line.product_id.name).replace( '{{number}}', str(len(mrp_workorder_list))).replace( '{{part_number}}', mrp_workorder_line.part_number if mrp_workorder_line.part_number else "").replace( '{{request_url}}', url) product_id.append(mrp_workorder_line.product_id.id) contents.append(content) return contents