diff --git a/sf_message/data/bussiness_node.xml b/sf_message/data/bussiness_node.xml
index 14115e27..c6f6546a 100644
--- a/sf_message/data/bussiness_node.xml
+++ b/sf_message/data/bussiness_node.xml
@@ -126,6 +126,11 @@
mrp.production
+
+ 采购申请待处理通知
+ purchase.request
+
+
委外加工采购单提醒
purchase.order
diff --git a/sf_message/data/template_data.xml b/sf_message/data/template_data.xml
index 63e51101..3af63afe 100644
--- a/sf_message/data/template_data.xml
+++ b/sf_message/data/template_data.xml
@@ -339,6 +339,18 @@
事项:请确认委外采购单并处理。
+
+ 采购申请待处理通知
+
+ purchase.request
+
+ markdown
+ normal
+ ### 采购申请待处理提醒:
+单号:[{{name}}]({{request_url}})
+事项:您有一张新的采购申请单待处理。
+
+
外购订单采购单提醒
diff --git a/sf_message/models/__init__.py b/sf_message/models/__init__.py
index 18c6b873..e0fe3787 100644
--- a/sf_message/models/__init__.py
+++ b/sf_message/models/__init__.py
@@ -14,3 +14,4 @@ from . import sf_message_mrp_production_wizard
from . import sf_message_mrp_production_adjust_wizard
from . import sf_message_product
from . import sf_message_quality_check
+from . import sf_message_purchase_request
diff --git a/sf_message/models/sf_message_purchase_request.py b/sf_message/models/sf_message_purchase_request.py
new file mode 100644
index 00000000..eb4b5bdb
--- /dev/null
+++ b/sf_message/models/sf_message_purchase_request.py
@@ -0,0 +1,43 @@
+import logging
+import re
+from odoo import models, fields, api, _
+from urllib.parse import urlencode
+
+
+class SFMessagePurchaseRequest(models.Model):
+ _name = 'purchase.request'
+ _description = "采购申请"
+ _inherit = ['purchase.request', 'jikimo.message.dispatch']
+
+ def write(self, vals):
+ original_state = self.state
+ res = super(SFMessagePurchaseRequest, self).write(vals)
+ if res and vals.get('state') == 'to_approve' and original_state != 'to_approve':
+ self.add_queue('采购申请待处理通知')
+ return res
+
+ def _get_message(self, message_queue_ids):
+ contents = []
+ for message_queue_id in message_queue_ids:
+ if message_queue_id.message_template_id.name == '采购申请待处理通知':
+ content = message_queue_id.message_template_id.content
+ url = self.request_url(int(message_queue_id.res_id))
+ request_line = self.env['purchase.request'].search([('id', '=', int(message_queue_id.res_id))])
+ content = content.replace('{{name}}', request_line.name).replace(
+ '{{request_url}}', url)
+ contents.append(content)
+ return contents, message_queue_ids
+
+ def request_url(self, id):
+ url = self.env['ir.config_parameter'].get_param('web.base.url')
+ action_id = self.env.ref('purchase_request.purchase_request_form_action').id
+ menu_id = self.env.ref('purchase_request.menu_purchase_request_act').id
+ # 查询参数
+ params = {'id': id, 'menu_id': menu_id, 'action': action_id,
+ 'model': 'purchase.request',
+ 'view_type': 'form'}
+ # 拼接查询参数
+ query_string = urlencode(params)
+ # 拼接URL
+ full_url = url + "/web#" + query_string
+ return full_url