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):