制造现场最怕的不是发现异常,而是发现异常后还要手工重新描述一遍上下文。企业版 quality_mrp_workorder 的 button_quality_alert() 做的事情,就是把工单位现场已经知道的事实直接交给质量模块。
源码里这一步不是简单打开一个质量警报表单,而是显式注入 default_company_id、default_product_id、default_product_tmpl_id、default_workorder_id、default_production_id、default_workcenter_id。这意味着工单现场点出的异常,天然带着产品、工序、工位和所属制造单。
换句话说,质量模块在这里不是独立收集问题,而是在接收制造现场已经形成的上下文。你不需要先退出 Shop Floor,再去质量模块里重新选生产单和工位;系统已经把制造执行层的事实当作默认上下文传了过去。
这条跨模块链路的价值在于缩短异常闭环。工单操作员看到的问题,不会因为跨到质量模块就丢掉发生位置与发生对象;质量团队随后追根溯源时,也能直接落到具体生产单和工位。
很多实施里之所以觉得质量警报“太重”,其实不是因为功能重,而是因为没有理解这段上下文注入。真正的企业版设计,恰好是在帮你免掉一大段重复录入。
如果质量警报弹窗里字段默认值不对,优先检查工单对象本身的 product_id、production_id、workcenter_id 是否完整,再看是否有自定义动作把原上下文覆盖掉。问题通常发生在桥接层,而不是质量表单层。
DISCUSSION
评论区