制造订单可行性递归校验与库存分配分析工具

0 0 更新时间: 2026-08-02 16:42:03

用于制造业生产管理,递归校验制造订单(OF)的物料可行性。通过分析BOM清单、实时库存与采购收货计划,计算组件缺口,判定订单状态(可行/部分可行/受阻),并支持多订单间的库存智能分配与优先级排序。

安装
npx skills add https://github.com/ArthurFranckPat/projet-ordo-v2 --skill faisabilite-of
技能详情 readonly

生产计划员最怕的“停工待料”,终于有解了

干过制造业生产计划的朋友应该都有过这种体验:月初排产排得信心满满,结果到月底一看,好几个订单卡在物料上,不是缺这个就是缺那个,车间工人闲着没事干,采购那边却忙得焦头烂额。说实话,这种“计划赶不上变化”的窘境,太让人崩溃了。

今天给大家分享一个挺实用的工具——Faisabilité OF,它专门用来帮我们提前判断:一个制造订单到底能不能顺利开工?缺料的话具体缺啥?缺多少?什么时候能补上?这样一来,咱们就能提前想办法,而不是等到最后一刻才被动应对。

它是怎么工作的?

这个工具的核心逻辑其实不复杂,就是递归BOM拆解。啥意思呢?就是你给一个成品订单,它会自动打开它的BOM清单(物料清单),看看这个成品由哪些组件构成。如果某个组件是外购件,就直接对比库存;如果是自制件,那就继续往下拆,看看这个自制件又需要哪些原材料或半成品。就这样一层一层地查下去,直到把所有依赖的物料都检查一遍。

举个简单的例子,假设你要生产100台电机,而电机本身需要外壳、线圈、轴承等零件,其中线圈又需要铜线和绝缘材料。那么这个工具就会先检查线圈的库存够不够,如果不够,再检查铜线和绝缘材料够不够。只要有一层缺料,它就会把缺料信息记录下来。

在代码层面,它通过一个叫 verifier_of 的函数实现递归检查,核心的计算逻辑也很直白:

stock_dispo(article) = STOCK_PHYSIQUE - STOCK_ALLOUE - STOCK_BLOQUE
# 项目模式:加上预计到货
stock_projete(article, date_besoin) = stock_dispo(article) + SUM(QUANTITE_RESTANTE pour DATE_RECEPTION_PREVUE ≤ date_besoin)

这里有个很贴心的设计——它区分了“当前可用库存”和“预计可用库存”。如果你选择projete模式,它会把未来一段时间的采购到货量也算进去。比如某物料现在库存不够,但下周有一批货会到,而且订单交期在下周之后,那它就会认为这个订单是可行的。这样就不会因为短期的缺料而误判订单状态。

三种状态,清清楚楚

检查完之后,它会给出三种状态之一:

  • ✅ FAISABLE(可行):所有物料都齐了,可以放心开工。
  • 🟡 PARTIEL(部分可行):有些物料现在不够,但考虑未来到货后可以满足,或者部分组件缺料,需要等待。
  • 🔴 BLOQUÉ(受阻):有核心物料缺货,而且短期内到不了,订单暂时没法启动。

除了状态,它还会列出一份详细的缺料清单,比如这样:

OF F426-08419 | Article: BDH1050-75 | Qté: 384 | Date fin: 13/03/2026
Statut : 🔴 BLOQUÉ

Composants manquants :
  Article    | Désignation          | Besoin | Dispo | Manque | Récep. prévue
  E7368      | MOTEUR BDH 75W       | 384    | 150   | 234    | 25/03/2026

看到这个报告,你立马就知道:哦,原来缺的是电机,差了234个,要到3月25号才能到货。那这个订单能不能等?如果交期在3月底,那问题不大;如果交期就在3月中旬,那可能就得赶紧找替代方案或者联系客户调整交期了。

多订单并发?也不怕

实际生产中,很少只有一个订单在跑,通常是几十个订单同时进行。这时候就会出现“僧多粥少”的情况——同一批物料,好几个订单都在抢。这个工具内置了一个智能分配算法,它的处理逻辑是这样的:

  1. 先把所有订单按照交期从早到晚排序,交期最紧的优先分配。
  2. 按照这个顺序,依次检查每个订单的可行性,如果可行,就先把对应的库存“虚拟占用”掉。
  3. 如果某个订单因缺料不可行,但后面有个交期稍晚的订单反而完全可行,那就会让后面这个订单“插队”到前面。目的很简单——尽可能多地把能开工的订单都安排上,而不是让一个难题卡住所有后续订单。

这个规则真的挺符合实际生产的管理思路。与其让一个缺料的订单占着库存不放,不如先把那些能顺利生产的订单推上去,保证产线不闲置。

怎么用起来?

使用方式也很直接,只要准备好几份CSV数据文件,然后在命令行里跑一个脚本就行:

python3 .claude/skills/faisabilite-of/scripts/verif_faisabilite.py \
  --data-dir data \
  --of F426-08419,F426-08164 \
  --mode projete

参数说明:

  • --data-dir:指定存放CSV文件的目录
  • --of:要检查的订单号,多个用逗号分隔
  • --modeimmediat只看当前库存,projete考虑未来到货

跑完之后会生成一个汇总报告,统计总共有多少订单可行、多少部分可行、多少受阻,然后每个订单的详细情况也都会列出来。整个过程自动化,省去了人工翻表格对数据的痛苦。

说点实际的感受

我自己在试用这个工具的时候,最大的感受就是——终于不用再手工拉Excel对比库存了。以前每次有客户问“这个单子能不能按时交”,我都得先去查库存表,再查BOM,再算算采购到货时间,折腾半天才能给个模糊的答复。现在直接把订单号扔给脚本,几秒钟就能给出一个明确的结论,而且还会把缺料明细列得清清楚楚,跟客户沟通的时候也更有底气。

当然,这个工具也不是万能的。它对数据的准确性要求比较高,如果库存表没及时更新,或者BOM有误,那结果也会不准。但话说回来,数据准确本身也是生产管理的基本功嘛。

总之,如果你也是搞生产计划或者供应链管理的,这个技能值得一试。它可以帮你提前发现风险,把“停工待料”的隐患消灭在萌芽状态。