企业 制造 / 质检

Odoo 企业版制造质检为什么能按耗料工序精准落点:quality point 域、lot 过滤与下一检查路由

quality_mrp_workorder 的重点不是多几个检查项,而是把质检点和工序、成品 lot、失败弹窗与下一检查跳转串成一条真正跟着生产走的链。

企业 制造
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 3 阅读

制造质检最容易做坏的地方,就是检查点明明建了很多,现场却始终觉得“它和工序没关系”。

quality_mrp_workorder 的设计恰恰是在解决这个问题。QualityPoint._get_domain_for_production() 在父类域基础上又加了一层 operation_id = False 的 Domain 组合,说明系统会很明确地区分“适用于整个生产单的质检点”和“绑定到具体工序的质检点”,避免两个世界互相串线。

约束 _check_measure_frequency_type() 也很有代表性:只要是带 operation_id 的 work order 质检点,就不允许 on_demand。这不是限制用户自由,而是因为工序质检本来就要求跟着流程节点触发;如果还允许按需随便点,会破坏工单推进语义。

真正决定现场体验的是 do_measure()_next()。当检查与 workorder_id 绑定时,测量完成后不会简单停在当前记录,而会继续求下一检查;若当前检查失败且带 warning / failure message,则 _next() 返回的是一个失败向导窗口,同时把 next_check_id 也塞回动作结果里。换句话说,失败并不意味着链路断掉,而是“先处理失败,再知道下一步去哪”。

stock_lot._get_quality_check_domain() 又补上了 lot 维度:除了父类域外,还允许 finished_lot_ids 命中当前成品 lot。测试里关于 component consumed in operation 和 compute lot quality checks 的场景,本质都在验证:质检不是抽象挂在 MO 上,而是能跟着具体工序与具体 lot 落下去。

另外一个很容易忽略的小细节是 _check_to_unlink():只要检查挂在 workorder 上,就不允许按普通逻辑被删掉。因为工序内质检一旦参与了流程推进,它就不再是可有可无的临时数据。

所以企业版制造质检做得好的地方,不是“检查项多”,而是让质检点、工序、lot、失败弹窗和下一检查之间共享同一条流程上下文

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。