From cddcec4225f0ed5a0e10b21d64c1277419a3b7b9 Mon Sep 17 00:00:00 2001
From: yuxianghui <3437689193@qq.com>
Date: Wed, 19 Feb 2025 16:22:00 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B0=83=E6=8B=A8=E5=8D=95?=
=?UTF-8?q?=E7=9A=84=E8=B4=A8=E6=A3=80=E5=AE=8C=E6=88=90=E7=9A=84=E6=B6=88?=
=?UTF-8?q?=E6=81=AF=E9=80=9A=E7=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_message/data/bussiness_node.xml | 5 +++++
sf_message/data/template_data.xml | 12 ++++++++++++
sf_message/models/sf_message_stock_picking.py | 12 +++++++++++-
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/sf_message/data/bussiness_node.xml b/sf_message/data/bussiness_node.xml
index 4003df45..14115e27 100644
--- a/sf_message/data/bussiness_node.xml
+++ b/sf_message/data/bussiness_node.xml
@@ -68,6 +68,11 @@
stock.picking
+
+ 调拨单质检完成提醒
+ stock.picking
+
+
装夹预调工单逾期预警
mrp.workorder
diff --git a/sf_message/data/template_data.xml b/sf_message/data/template_data.xml
index c0e96d99..4d580127 100644
--- a/sf_message/data/template_data.xml
+++ b/sf_message/data/template_data.xml
@@ -252,6 +252,18 @@
### 订单发货提醒:
单号:发料出库单[{{name}}]({{request_url}})
事项:销售订单{{sale_order_name}}已全部产出并入库,请及时发货
+
+
+
+ 调拨单质检完成提醒
+
+ stock.picking
+
+ markdown
+ normal
+ ### {{picking_type_name}}待处理提醒:
+单号:{{name}}
+事项:质量检查已完成
diff --git a/sf_message/models/sf_message_stock_picking.py b/sf_message/models/sf_message_stock_picking.py
index a2c17407..10304cf3 100644
--- a/sf_message/models/sf_message_stock_picking.py
+++ b/sf_message/models/sf_message_stock_picking.py
@@ -9,6 +9,8 @@ class SFMessageStockPicking(models.Model):
_description = "库存调拨"
_inherit = ['stock.picking', 'jikimo.message.dispatch']
+ quality_check_ids = fields.One2many('quality.check', 'picking_id', '质量检测单')
+
@api.model_create_multi
def create(self, vals):
result = super(SFMessageStockPicking, self).create(vals)
@@ -20,7 +22,8 @@ class SFMessageStockPicking(models.Model):
logging.info('add_queue调拨入库 error:%s' % e)
return result
- @api.depends('move_type', 'immediate_transfer', 'move_ids.state', 'move_ids.picking_id')
+ @api.depends('move_type', 'immediate_transfer', 'move_ids.state', 'move_ids.picking_id',
+ 'quality_check_ids.quality_state')
def _compute_state(self):
super(SFMessageStockPicking, self)._compute_state()
try:
@@ -48,6 +51,8 @@ class SFMessageStockPicking(models.Model):
all_ready_or_done = all(picking.state in ['assigned', 'done'] for picking in stock_picking_list)
if all_ready_or_done:
mrp_production.add_queue('工序外协发料通知')
+ if all(qc.quality_state in ['pass', 'fail'] for qc in record.quality_check_ids):
+ record.add_queue('调拨单质检完成提醒')
except Exception as e:
logging.info('add_queue_compute_state error:%s' % e)
@@ -83,6 +88,11 @@ class SFMessageStockPicking(models.Model):
content = self.deal_stock_picking_sfp(message_queue_id)
if content:
contents.append(content)
+ elif message_queue_id.message_template_id.name == '调拨单质检完成提醒':
+ content = message_queue_id.message_template_id.content
+ content = content.replace('{{picking_type_name}}', self.picking_type_id.name).replace(
+ '{{name}}', self.name)
+ contents.append(content)
return contents, message_queue_ids
def get_special_url(self, id, tmplate_name, special_name, model_id):