From 31a703952cd89fbdccc0e4d021d88b8bd3a87c23 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Thu, 24 Oct 2024 17:32:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=80=E5=94=AE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=92=8C=E5=B7=A5=E5=8D=95=E6=B6=88=E6=81=AF=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_message/models/sf_message_sale.py | 9 ++++++++- sf_message/models/sf_message_workorder.py | 11 +++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/sf_message/models/sf_message_sale.py b/sf_message/models/sf_message_sale.py index bf5704e7..9907dbc9 100644 --- a/sf_message/models/sf_message_sale.py +++ b/sf_message/models/sf_message_sale.py @@ -162,4 +162,11 @@ class SFMessageSale(models.Model): def _recover_sale_time_warning_func(self): sale_order_done = self.sudo().search([('state', 'in', ['sale']), ('delivery_status', '=', 'full')]) sale_order_overdue = sale_order_done.filtered(lambda x: x.delivery_warning in ['overdue', 'warning']) - sale_order_overdue.write({'delivery_warning': 'normal'}) + if sale_order_overdue: + sale_order_overdue.write({'delivery_warning': 'normal'}) + message_queue_ids = self.env["jikimo.message.queue"].sudo().search([ + ("message_status", "=", "pending"), + ("res_id", "in", [item.id for item in sale_order_overdue]) + ]) + if message_queue_ids: + message_queue_ids.write({'message_status': 'cancel'}) diff --git a/sf_message/models/sf_message_workorder.py b/sf_message/models/sf_message_workorder.py index dbf65499..1786a796 100644 --- a/sf_message/models/sf_message_workorder.py +++ b/sf_message/models/sf_message_workorder.py @@ -69,7 +69,7 @@ class SFMessageWork(models.Model): search_condition = [ ('delivery_warning', '=', 'warning')] if bussiness_node in template_names['预警'] else [ ('delivery_warning', '=', 'overdue')] - record = self.sudo().search(search_condition + [('id', '=', int(item.res_id))]) + record = self.sudo().search(search_condition + [('id', '=', int(message_queue_id.res_id))]) if record: i += 1 if i >= 1: @@ -164,4 +164,11 @@ class SFMessageWork(models.Model): def _recover_time_warning_func(self): workorder_done = self.env['mrp.workorder'].search([("state", "in", ["done", "rework", "cancel"])]) workorder_overdue = workorder_done.filtered(lambda x: x.delivery_warning in ['overdue', 'warning']) - workorder_overdue.write({'delivery_warning': 'normal'}) + if workorder_overdue: + workorder_overdue.write({'delivery_warning': 'normal'}) + message_queue_ids = self.env["jikimo.message.queue"].sudo().search([ + ("message_status", "=", "pending"), + ("res_id", "in", [item.id for item in workorder_overdue]) + ]) + if message_queue_ids: + message_queue_ids.write({'message_status': 'cancel'})