From ef17c9920cfeb3b4969f74ee33d5f84a411eea87 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 25 Sep 2024 12:00:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=80=E5=94=AE+=E6=8E=92?= =?UTF-8?q?=E7=A8=8B=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_message/models/sf_message_sale.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/sf_message/models/sf_message_sale.py b/sf_message/models/sf_message_sale.py index fb9d5976..ef94b7fe 100644 --- a/sf_message/models/sf_message_sale.py +++ b/sf_message/models/sf_message_sale.py @@ -28,12 +28,20 @@ class SFMessageSale(models.Model): # 继承并重写jikimo.message.dispatch的_get_message() def _get_message(self, message_queue_ids): res = super(SFMessageSale, self)._get_message(message_queue_ids) - if message_queue_ids.message_template_id.bussiness_node_id.name == '确认接单': - # sale_order = self.env['sale.order'].search([('id', '=', message_queue_ids.model.res_id)]) - sale_order_line = self.env['sale.order.line'].search([('order_id', '=', int(message_queue_ids.res_id))]) - if len(sale_order_line) == 1: - product = sale_order_line[0].product_id.name - elif len(sale_order_line) > 1: - product = '%s...' % sale_order_line[0].product_id.name - res[0] = res[0].replace('{{product_id}}', product) + new_res = [] + processed_messages = set() # 用于跟踪已经处理过的消息 + for item in message_queue_ids: + if item.message_template_id.bussiness_node_id.name == '确认接单': + sale_order_line = self.env['sale.order.line'].search([('order_id', '=', int(item.res_id))]) + if len(sale_order_line) == 1: + product = sale_order_line[0].product_id.name + elif len(sale_order_line) > 1: + product = '%s...' % sale_order_line[0].product_id.name + for message in res: + message_text = message.replace('{{product_id}}', product) + if message_text not in processed_messages: + new_res.append(message_text) + processed_messages.add(message_text) + if new_res: + res = new_res return res