制造现场最常见的抱怨之一是:“为什么点完工还被系统拦住?”如果你开了企业版质量模块,这不是意外,而是主链路设计。
这篇文章主要参考:
enterprise/quality_mrp/models/mrp_production.pyenterprise/quality_mrp/models/quality.py
一、MO 完工前,先过质量闸门
mrp.production.pre_button_mark_done() 在父类处理后,会继续检查 _check_qc_status()。只要 check_ids 里还有 quality_state = 'none',系统就不会让制造单顺利完工。从普通界面进入会直接抛错,从某些 wizard 场景进入则改成 warning notification。企业版不是把质量做成旁路,而是把它放在完工前的硬闸门位置。
二、MO 回单后,质检不是“沿用旧的”而是重建
_action_confirm_mo_backorders() 执行完父类逻辑后,会对原料和成品 move 重新调用质检创建逻辑。这意味着当制造单拆成 backorder 后,质量检查会根据新的 move 事实重新挂上,而不是继续沿用旧 check。
三、取消 MO 时,未完成检查要一起清掉
action_cancel() 会把 quality_state == 'none' 的检查删除。既然制造单取消了,那些尚未形成质量结论的检查记录也不应继续悬挂;但已经形成结果的记录仍然保留事实。
四、结论
企业版制造质检不是附属看板,而是 MO 生命周期的一部分。完工能不能过、拆回单后怎么续、取消后清不清,都已经被质量逻辑接管了关键节点。
DISCUSSION
评论区