OUTPUT-005 · SELF-OWNED · CALCULATED

插单不是“多干两小时”。
300 盒进来,必然有 60 分钟落在车次之后。

一条鲜切果切线,08:00 开班,两个车次:14:00 和 19:00。当天已排 8 单,最优顺序也要做到 18:40。这时业务抱来一张 300 盒的急单——它需要 80 分钟,而线上只剩 20 分钟。

作者:LeanEdge · 自有算例(参数全为假定值) · 运行与资料整理:

640 min8 单基线,18:40 收工
+80 min300 盒急单(75 加工 + 5 换型)
60 min必然越线部分
2.45 元每盒插单税

01 真正的卡点:车间怕的不是多干活,是“有一段活落在车之后”

接单的人和排产的人吵的从来不是同一件事。业务说“不就多干一个多小时”;车间心里算的是另一笔账:这单插进来,无论怎么排,都会有一段活落在车次之后。落在线后,就意味着有人要错过车、有客户要缺货、有一笔损失要人认。

这句话以前没人替他们在接单前算出来。所以吵到最后只剩情绪。这个算例只做一件事:把这句“感觉”变成四个数——今天还剩多少分钟、这单要多少分钟、会跨过车次多少分钟、跨过去要花多少钱。

本页是 LeanEdge 自有算例:订单、加工时长、换型时长、车次、缺货损失全部是假定值,用来演示口径。不是任何客户的真实数据,也不构成产能或收益承诺。

02 先把口径定死:四个参数

排产之争多半不是算错,而是口径没写清。把下面四行写出来,讨论就从“我觉得”变成“按这个口径算”。

本次算例使用的全部参数(假定值)
口径本算例取值真实项目里该怎么取
工序与线速单机单工序,4 盒/分钟多线的要按瓶颈工序算,不能拿总产能平均
换型同族换规格 5 min;跨族清洗消毒换刀 25 min按实际 SMED 记录,取中位数而不是最好的一次
车次08:00 开班,14:00 / 19:00 两班车(360 / 660 min)按实际发车时刻,装车提前量单独扣
错过车次的代价按订单缺货损失,735—2,205 元不等;加班 7 元/分钟;等车 380 元;加车 780 元;外协 5.6 元/盒损失必须和销售、客户一起定,不能排产员自己拍

03 基线:8 个单、640 分钟,只剩 20 分钟余量

当天已接的 8 个单(假定值)
单号客户品族加工车次错过损失
S1连锁超市门店A70 min14:001,850 元
S2餐饮连锁中央厨房B65 min14:001,200 元
S3学校团餐配送商A60 min14:00900 元
S4商超门店C75 min19:001,435 元
S5机场贵宾厅C85 min19:002,205 元
S6电商云仓B65 min19:001,120 元
S7便利店加盟D70 min19:001,015 元
S8酒店宴会D55 min19:00735 元

最优顺序是 S1→S3→S2→S6→S4→S5→S7→S8:加工 545 分钟 + 换型 95 分钟 = 640 分钟,18:40 收工。离 19:00 车次(660 分钟)只剩 20 分钟。

这里有个容易被忽略的细节:最优顺序不是按交期先后排的。S3(学校团餐)排在 S2(餐饮中央厨房)前面,因为 S3 与 S1 同族,连排省下 20 分钟换型——这 20 分钟比“谁的交期早半小时”更值钱。8 个单 40,320 种排列全部枚举过,上面这个是真最优,不是拍脑袋。

三面板图:左为8单基线的甘特排程与14:00、19:00车次线;中为插入300盒急单后9单720分钟越线的甘特;右为五种接法的代价柱状图与免费插单容量阶梯
图1|本次实际生成的计算结果图:左=基线 640 min(离 19:00 车次还剩 20 min);中=插单后 720 min,越线 60 min;右=五种接法价签与容量阶跃。点击看大图;参数全为假定值。

04 插单要的不是 75 分钟,是 80 分钟

急单来了:某连锁超市临时促销,300 盒。线速 4 盒/分钟,加工 75 分钟;插在瓜类后面,同族换规格 5 分钟。合计 80 分钟。

加进去之后:9 个单加工 620 分钟 + 换型 100 分钟 = 720 分钟;车次 660 分钟;超 60 分钟。

关键结论只有一句:插单之后,无论怎么排,都必然有 60 分钟的活落在 19:00 之后。这不是效率问题,是减法。

加班救不了。加班只是让人干到 20:00,但车 19:00 就走了。产能是算术约束,车次是物理约束,两者不是一回事——很多厂吵了几年,其实是没分清这两样东西:把“人还能干”当成了“货还能走”。

05 免费容量:60 盒。第 61 盒开始,代价是阶跃的

把急单量逐档缩下来,每档都重新枚举最优顺序(不是等比缩放):

同一张急单,不同量的实际后果
急单量加工含换型收工现金代价
20 盒5 min18:500
40 盒10 min18:550
60 盒15 min19:00(刚好)0
80 盒20 min19:05770 元
100 盒25 min19:10805 元
120 盒30 min19:15840 元

今天这条线的免费插单容量 = 15 分钟 = 60 盒。从第 61 盒开始,代价不是线性增长,而是阶跃:一步跳到“最便宜那张单错过车次”的 735 元,再叠加加班费。

车间为什么一听插单就炸?因为他们的经验就是这条曲线——不是“多 15 分钟”,是“过线了”。

再补一个反直觉的点:如果这张急单是全新品族(要多一次 25 分钟清洗消毒),免费容量直接归零。545 分钟加工 + 最少 125 分钟换型 = 670 分钟,还没加工就已经超过 660。连 20 盒都塞不进去。插单能不能接,先看品族,再看数量。

06 同一个插单,五种接法,五个价签

这才是本页最想给的东西。插单从来不是“接”或“不接”两个答案,而是五个:

同一张 300 盒急单的五种处理方式(全部枚举后取各自最优)
接法现金代价代价落在谁身上
让损失最低的单次日735 元S8 酒店宴会(735 元缺货损失)
让 19:00 车等 60 分钟800 元等车费 380 + 加班 420
加开 20:30 急车1,200 元车费 780 + 加班 420
急单外协 300 盒1,680 元5.6 元/盒 × 300 盒
拒单3,360 元客户端缺货,本厂不出现金

最贵 3,360 和最便宜 735,差 4.6 倍。但真正该盯的是另外两个数:735 和 800,只差 65 元。

735 的接法,是把损失推给客户——酒店宴会明天没有第二次机会,“次日送”等于这单白做,还搭上关系。800 的接法,是多花 65 元让车等一小时,所有人的货都到。

65 元换一个客户的信任,这道题没有第二种答案。所以:账面最优解和经营最优解,经常不是同一个。算法给你一张价签,不是判决书。

07 把它折算成“每盒多少钱”:插单税 2.45 元

735 元 ÷ 300 盒 = 2.45 元/盒。这就是这张急单的“插单税”,它有两个直接用处:

可以直接抄走的三件事

1)报数,不报情绪。接单前只回三句话:今天剩余产能多少分钟、这单要多少分钟、跨过车次多少分钟。三个数一摆,业务自己会掂量。

2)把“接不接”换成“怎么接”。别问车间“能不能插”,把上面那张五选一的价签推过去让他们挑。人被问“能不能”时只能拒绝,被问“选哪个”时才会动脑。

3)把免费容量写在墙上。今天 60 盒免费,第 61 盒开始算钱。边界不透明,才会天天在 17:55 打遭遇战。

可直接复制的输入格式(交给排产员或任何模型都行):

线体:单机单工序,线速 __ 盒/分钟;开班 08:00;车次 __:__ / __:__(分钟计)。
换型:同族换规格 __ 分钟;跨族清洗换刀 __ 分钟;开班时线上已装的是 __ 族。
已排订单:单号 / 客户 / 品族 / 加工分钟 / 车次 / 错过车次的缺货损失(元)。
急单:数量(盒)/ 品族 / 期望车次。
费用口径:加班 __ 元/分钟;让车等待 __ 元;加开急车 __ 元;外协 __ 元/盒。
要求:① 穷举出最优顺序与收工分钟;② 算出插单量每档(20/40/60/80/100/120 盒)
      的收工时间与现金代价;③ 给出让单/等车/加车/外协/拒单五种接法的价签;
      ④ 指出免费插单容量是几盒,以及换成全新品族时是否归零。

08 怎么复核:这份数是独立复算过的

排产算例最容易出的错,是“顺序换了但换型忘了跟着变”,总数照样算得出来、看起来还很合理。所以这份算例做了独立复核:

共 28 个检查点,28/28 通过。主脚本与复核脚本分别运行、分别输出,数字不一致就不过。

09 边界:这个数不能当承诺

换成你的订单表,先算一次“必然越线多少分钟”

把这几项发我:单号 / 品族 / 加工分钟 / 车次 / 错过损失,以及换型分钟和加班、等车、外协的价。按同一口径免费算一次,回你三个数:今天剩多少分钟、这单要多少、越线多少,外加五种接法的价签。

在知乎私信我,发订单表 ↗ 看其他实际输出案例 ↗

本页是方法演示与自有算例,不是客户案例;人工服务与工具订阅分别办理,价格与权益以对应商品页为准。