企业 MPS 补货

Odoo 企业版 MPS 为什么有的格子只是提示、有的格子必须立刻补:提前期、forced replenish 与 launch 状态机

mrp_mps 不只是算一个建议数量。它先结合规则提前期算 procurement_date,再用 to_launch / to_relaunch / to_correct / launched 和 forced_replenish / to_replenish 判断哪个时段该立刻动作。

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

很多人第一次看 Odoo 的主生产计划,会把每个周期格子理解成“一个建议数”。企业版真正复杂的,是格子背后的状态机。

这篇文章主要参考:

  • enterprise/mrp_mps/models/mrp_mps.py

一、MPS 先算数量,再算“是否已经来不及”

get_production_schedule_view_state() 里,系统不只计算 forecast_qtyincoming_qtyreplenish_qty,还会结合 _get_lead_times() 算出 procurement_date = today + lead_time。这个日期的意义是:如果某个周期开始日已经落进提前期窗口,那么理论上现在就该动手了,否则货来不及。

二、状态不只是红绿灯,而是分成四类主状态

_get_forecasts_state() 会给每个格子判:to_launchto_relaunchto_correctlaunched。它们分别对应该补未补、补过但需要重跑、实际补货超过计划、以及当前计划与实际补货已对齐。计划不是只看建议量,更要看执行状态。

三、为什么有的格子会被标成 forced_replenish

在不是 launched / to_correctprocurement_qty > 0 的格子里,系统还会进一步打 to_replenishforced_replenish 标签。前者表示已进入提前期窗口,后者表示当前计划表中最靠前、最该先处理的格子。forced 不是“数量更大”,而是“时间优先级最高”。

四、结论

企业版 MPS 真正厉害的地方,不在算出一个补货数,而在告诉你:这个数到底是可以等等,还是已经因为提前期而必须现在执行。

DISCUSSION

评论区

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