MRP物料需求计划展开与EOQ计算器
这个工具解决什么问题
把散落在多张表里的信息合到一处,是这类工具最直接的收益。
很多工厂排产靠经验拍脑袋,成品要装配了才发现下层芯片、载板还在海上漂。本工具把「成品要多少」自动换算成「每个料号每一周该补多少、最晚哪天必须下发补单指令」,并能识别因提前期过长导致「现在不补单就必然缺料」的关键物料。它把 MRP 的逐层展开、净需求、计划订单下达,以及 EOQ/ROP 补货基线一次性算清,输出可直接交给采购与计划员执行的周度行动清单,避免装配停线与积压并存。适用于离散制造、半导体封测、电子组装等有多级 BOM 的场景。
输入数据格式
数据文件 mrp_bom.csv,列顺序为:level、parent、child、qty_per、lead_time_days、on_hand、on_order、allocated、safety_stock、min_lot、lot_multiple、unit_cost、order_cost、hold_rate。
示例首行:0,-,FG-A,1,7,100,0,0,0,1,1,200.0,500.0,0.25
示例输出(真实运行结果节选)
================================================================================ MRP 物料需求计划展开与 EOQ 计算器 —— 示例输出报告 时间基准:第 1 周起算日 2026-10-05 ================================================================================ 【一、期量标准表】各料号提前期 / 库存 / 安全库存 / EOQ / ROP -------------------------------------------------------------------------------- 料号 层级 提前期天 现有库存 安全库存 EOQ ROP -------------------------------------------------------------------------------- FG-A 0 7 100 0 249.8 60.0 PCB-B 1 14 100 20 272.2 115.0 CASE-E 1 10 200 10 497.0 77.9 IC-C 1 28 80 50 1988.0 810.0 CAP-D 2 7 500 100 5585.7 400.0 SCREW-F 2 3 1000 200 7211.1 264.3 【二、逐料号周度计划表】(单位:件;预计可用为周末结存) ================================================================================ 料号 FG-A (层级0 提前期7天 最小起订1 批量倍数1 单位成本200.0 每次订货费用500.0) 周次 W1 W2 W3 W4 W5 W6 W7 W8 毛需
一句话
从成品独立需求出发逐层展开 BOM,按周做净需求与时间桶排程,并给出经济订货批量 EOQ 与再订货点 ROP,自动标出必须立即补单的长交期料号。
运行环境与快速开始
纯 Python 标准库,Python 3.8+ 即可,无任何第三方依赖。
进入工具目录后执行,自动生成示例 CSV 并输出报告
python mrp_netting.py
输入数据格式
mrp_bom.csv(每个 BOM 行一项下层物料及其属性): · level 层级:0=成品,1=直接组件,2=二级零件 · parent 父件料号:成品填 - · child 子件料号 · qty_per 单位用量:每单位父件消耗多少子件 · lead_time_days 采购/制造提前期(天) · on_hand 现有库存、on_order 在途数量、allocated 已分配、safety_stock 安全库存 · min_lot 最小起订量、lot_multiple 批量倍数 · unit_cost 单位成本、order_cost 每次订货费用、hold_rate 年持有成本率
mrp_demand.csv
· item 成品料号、due_week 需求周次(1~8)、qty 需求量
输出说明
① 期量标准表(提前期/库存/安全库存/EOQ/ROP);② 逐料号周度计划表(毛需求/预计入库/预计可用/净需求/计划接收/计划下达);③ 缺料预警清单(料号、周次、缺口数量、最晚补单日);④ 本周采购行动清单(各料号补单量与费用);⑤ 结论。
算法口径(关键公式)
· 逐层展开:上层计划订单下达量 × qty_per = 下层毛需求,并按父件提前期向前偏移到期。 · 单周时间桶:预计可用初值 = on_hand − allocated − safety_stock;净需求 = max(0, 毛需求 − 可用);计划订单接收按「最小起订量 + 向上取批量倍数」;计划订单下达 = 接收按提前期前移。 · EOQ = √(2·D·S / H),D = 8 周需求合计 ×(52/8),S = order_cost,H = unit_cost × hold_rate。 · ROP = 平均周需求 ×(lead_time_days/7) + safety_stock。 · 缺料判定:计划订单下达周 < 第 1 周(即无法在需求周前按时下达)记为缺口,须立即补单。
参数与调整点
WEEKS = 8 # 计划跨度(周),可按订单可见期改 12/13 WEEK_START = date(2026,10,5) # 第 1 周周一,用于推算最晚补单日 SEED = 20260912 # 固定随机种子,保证示例可复现
可调参数与计算口径
脚本顶部集中了主要阈值与常量:SEED=20260912、WEEKS=8、BOM_CSV=os.path.join(HERE, 'mrp_bom.csv')、DEM_CSV=os.path.join(HERE, 'mrp_demand.csv')、REPORT=os.path.join(HERE, '示例输出报告.txt')。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:mrp_bom.csv、mrp_demand.csv、示例输出报告.txt。
工具中出现的字段与提示
- MRP 物料需求计划展开与 EOQ 计算器 —— 示例输出报告
- 时间基准:第 1 周起算日 {}
- 【一、期量标准表】各料号提前期 / 库存 / 安全库存 / EOQ / ROP
- 提前期天
- 现有库存
- 安全库存
- 【二、逐料号周度计划表】(单位:件;预计可用为周末结存)
- 预计入库
- 预计可用
- 计划接收
- 计划下达
- 【三、缺料预警清单】计划订单下达周<=0 即无法按时满足,须立即补单
- 缺口数量
- 最晚补单周
- 最晚补单日
- 已超期,须立即补单
- 本批需求无缺料预警。
- 【四、采购行动清单】本周(第1周)应当下达的补单
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:mrp_netting.py。
下载 MRP物料需求计划展开与EOQ计算器 工具包(zip)
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 14 列:level、parent、child、qty_per、lead_time_days、on_hand、on_order、allocated。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
跑完最该关注哪几项?
报告按 一、期量标准表、二、逐料号周度计划表、三、缺料预警清单、四、采购行动清单、五、结论 等部分组织,其中判定结论与建议部分直接对应下一步动作。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
同分类的其它工具
所属分类 MES与生产管理工具包,也可回到 工具资源包下载页 按分类查找。





