diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 01977926..d2613b9a 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -59,7 +59,8 @@ class ResMrpWorkOrder(models.Model): compute='_compute_state', store=True, default='pending', copy=False, readonly=True, recursive=True, index=True, tracking=True) - delivery_warning = fields.Selection([('normal', '正常'), ('warning', '告警'), ('overdue', '逾期')], string='时效') + delivery_warning = fields.Selection([('normal', '正常'), ('warning', '告警'), ('overdue', '逾期')], string='时效', + tracking=True) @api.depends('production_id.manual_quotation') def _compute_manual_quotation(self): @@ -1842,7 +1843,7 @@ class WorkPieceDelivery(models.Model): return is_free else: raise UserError("接驳站暂未反馈站点实时状态,请稍后再试") - + def delivery_avg(self): is_agv_task_dispatch = self.env['ir.config_parameter'].sudo().get_param('is_agv_task_dispatch') if is_agv_task_dispatch: diff --git a/sf_message/data/cron_data.xml b/sf_message/data/cron_data.xml index 736e3e91..9cddd04c 100644 --- a/sf_message/data/cron_data.xml +++ b/sf_message/data/cron_data.xml @@ -13,6 +13,19 @@ + + 检查销售订单是否完成并恢复正常时效 + + code + model._recover_sale_time_warning_func() + 10 + minutes + -1 + + + + + 检查工单是否已逾期预警和逾期 diff --git a/sf_message/models/sf_message_sale.py b/sf_message/models/sf_message_sale.py index 20dc7b4f..bf5704e7 100644 --- a/sf_message/models/sf_message_sale.py +++ b/sf_message/models/sf_message_sale.py @@ -158,3 +158,8 @@ class SFMessageSale(models.Model): if not sale_order_has: message_name = '销售订单逾期预警' if wo.delivery_warning == 'warning' else '销售订单已逾期' wo.add_queue(message_name) + + 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'}) diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index d3ec1aa0..acd1d60c 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -55,7 +55,8 @@ class ReSaleOrder(models.Model): store=True, readonly=False, copy=False, precompute=True, states=READONLY_FIELD_STATES, default=fields.Datetime.now) - delivery_warning = fields.Selection([('normal', '正常'), ('warning', '告警'), ('overdue', '逾期')], string='时效') + delivery_warning = fields.Selection([('normal', '正常'), ('warning', '告警'), ('overdue', '逾期')], string='时效', + tracking=True) # 业务平台分配工厂后在智能工厂先创建销售订单 def sale_order_create(self, company_id, delivery_name, delivery_telephone, delivery_address,