diff --git a/sf_message/__manifest__.py b/sf_message/__manifest__.py
index 0f032a6d..d69c06c1 100644
--- a/sf_message/__manifest__.py
+++ b/sf_message/__manifest__.py
@@ -11,9 +11,10 @@
""",
'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'],
'data': [
- 'data/bussiness_node.xml'
+ 'data/bussiness_node.xml',
+ 'data/cron_data.xml',
],
'test': [
],
diff --git a/sf_message/data/bussiness_node.xml b/sf_message/data/bussiness_node.xml
index 76f3fcb7..fbad5581 100644
--- a/sf_message/data/bussiness_node.xml
+++ b/sf_message/data/bussiness_node.xml
@@ -1,6 +1,7 @@
+
待接单
sale.order
@@ -10,6 +11,17 @@
确认接单
sale.order
+
+
+ 销售订单逾期预警
+ sale.order
+
+
+
+ 销售订单已逾期
+ sale.order
+
+
调拨入库
stock.picking
@@ -26,5 +38,52 @@
坯料采购提醒
purchase.order
+
+ 坯料发料提醒
+ stock.picking
+
+
+
+
+ 工单已下发通知
+ mrp.workorder
+
+
+ 装夹预调工单逾期预警
+ mrp.workorder
+
+
+ 装夹预调工单已逾期
+ mrp.workorder
+
+
+
+ CNC工单逾期预警
+ mrp.workorder
+
+
+ CNC工单已逾期
+ mrp.workorder
+
+
+
+ 解除装夹工单逾期预警
+ mrp.workorder
+
+
+
+ 解除装夹工单已逾期
+ mrp.workorder
+
+
+
+ 表面工艺工单逾期预警
+ mrp.workorder
+
+
+
+ 表面工艺工单已逾期
+ mrp.workorder
+
\ No newline at end of file
diff --git a/sf_message/data/cron_data.xml b/sf_message/data/cron_data.xml
new file mode 100644
index 00000000..f69dce7b
--- /dev/null
+++ b/sf_message/data/cron_data.xml
@@ -0,0 +1,160 @@
+
+
+
+ 销售订单逾期预警
+
+ code
+ model._overdue_warning_func()
+ 1
+ minutes
+ -1
+
+
+
+
+
+
+ 销售订单已逾期
+
+ code
+ model._overdue_func()
+ 1
+ minutes
+ -1
+
+
+
+
+
+
+ 装夹预调工单逾期预警
+
+ code
+ model._overdue_warning_func()
+ 1
+ minutes
+ -1
+
+
+
+
+
+
+ 工单已逾期
+
+ code
+ model._overdue_func()
+ 1
+ minutes
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sf_message/models/sf_message_sale.py b/sf_message/models/sf_message_sale.py
index fb9d5976..85a7fd3e 100644
--- a/sf_message/models/sf_message_sale.py
+++ b/sf_message/models/sf_message_sale.py
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
+import logging
from odoo import models, fields, api, _
@@ -10,6 +11,7 @@ class SFMessageSale(models.Model):
res = super(SFMessageSale, self).create(vals_list)
if res:
try:
+ logging.info('add_queue res:%s' % res)
res.add_queue('待接单')
except Exception as e:
logging.info('add_queue error:%s' % e)
@@ -28,12 +30,29 @@ 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
+
+ # 销售订单逾期预警
+ def _overdue_warning_func(self):
+ sale_order_
+ return 1
+
+ # 销售订单已逾期
+ def _overdue_func(self):
+ return 1