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