先说结论:WES 异常波次来了——波次已下发到拣选员手里,中途发现有问题订单,90% 的情况不要动整个波次,只处理那几个问题订单本身——拆单踢出去,或者原地挂起。整波重排看起来最"彻底",实际上是我见过的波次事故里最贵的处置方式。这篇讲标准处置流程,一共 7 步,每一步都对应一个具体的系统动作,照着做就行。
WES 异常波次到底是什么
先把概念对齐,免得后面鸡同鸭讲。
波次(wave)就是 WES 把一批订单按某种规则攒到一起,一次性下发拣选。所谓 WES 异常波次,指的是波次已经 release、拣选任务已经下发、拣选员已经在路上,这时候冒出来的问题:某一单的库存对不上、某一单地址被客户临时改了、某几个 SKU 被质量部门锁了、某大客户的订单优先级突然提到最高。
注意区分两种东西:一种是订单层面的异常(就那一两个单有问题),另一种是波次层面的异常(分波规则错了,比如把不该合在一起的单合在一起了)。这两种的处理天差地别。大部分现场看到的都是订单异常,但一慌起来就去动整波——这个坑我见过三次。
为什么中途处置这么难:三个锁死的约束
讲分步做法之前,先理解你在跟什么作对。波次一旦下发,就有三个东西锁死了:拣选路径(拣选员已经在路上,抽掉几单路径就变了,不重新下发任务,单子和系统就对不上)、容器占用(一箱对几单,拆掉一单,sort 环节要重算格口)、发运时点(波次卡着截单和车辆预约排的,整波重排意味着重新分波、下发、打单,时间按小时算,而干线车可不等人)。
这三个约束加起来,结论就是开篇那句话:动整波的代价,几乎永远大于只处理问题单的代价。
分步做法:7 步处置清单
这是我每次上线前夜 checklist 里必有的一页。真出事了,按这个顺序走,一步都不要跳。
第 1 步:先定性,30 秒内判断是订单异常还是波次异常。 打开波次监控,看异常订单的数量和分布。异常单占波次总单量的比例如果很小(比如一个 200 单的波次里坏了 3 单),直接定性为订单异常。如果超过两成,或者问题出在分波规则本身(比如把需要温控的单和普通单混进了一个波次),才定性为波次异常。这个判断必须在 30 秒内做完,不要开会讨论。
第 2 步:冻结问题订单,禁止它继续往下流。 在 WES 里把问题订单的状态手动置为 hold(挂起)。这一步的目的是防止它被拣选员拣出来、防止它被打包装箱。动作要快——每晚一分钟,就多一分它被拣出来的风险。
第 3 步:查库存和锁定的真实状态。 问题订单 hold 住之后,立刻查三件事:① 该订单 SKU 的可用库存到底有没有;② 有没有被质量、财务或其他部门锁;③ 锁定的原因、谁能解锁、多久能解。这三件事查清楚之前,不做任何拆单或重排的决定。这个坑我见过三次——有人看库存显示有 50 个就直接重排了,结果那 50 个是被质量锁的,拣选员跑到库位上一个都拿不走,整波白跑一趟。
第 4 步:对照四象限决策表,选处置动作。 根据"问题单紧急程度 × 问题可解性"选:拆单、挂起、整波重排、手工干预四选一(见下一节)。
第 5 步:执行拆单/挂起,并同步更新拣选任务。 如果选拆单:在 WES 里把问题订单从当前波次摘除,生成一个新的波次或并入下一个待发波次。同时,已经下发到拣选员手持终端的任务必须重新下发或增量更新——这是最容易漏的一步。只在系统里拆了单、没更新终端任务,拣选员照旧单拣,现场和系统就分叉了。
第 6 步:重算分拣格口和容器分配。 问题单摘除后,sort 墙的格口、分拣标签、周转箱的对应关系都要重算。打印出来的分拣标签如果已经贴了,作废重打,不要手改。
第 7 步:记录异常原因,关闭环路。 在工单或异常日志里记下:哪个单、什么问题、怎么处置的、谁批准的。没有这一步,同样的异常下个月还会再来一遍。

WES 异常波次的四象限处置决策表
这是整篇最值钱的一张表。横轴是"问题单有多急"(是否影响截单),纵轴是"问题能不能快速解决"(能否在本波次截单前搞定)。
| 问题可快速解决 | 问题短期内解决不了 | |
|---|---|---|
| 急单(影响截单) | 手工干预:人工拣选+人工复核,保证这单赶上车,其他单不动 | 拆单:把问题单摘出当前波次,单独处理或并入下一波;本波正常发运 |
| 不急的单 | 挂起:hold 住,等问题解决后并入下一个波次,不打扰当前波次 | 挂起:同上,hold 住等解决;解决不了就取消或改期 |
解释一下为什么这么定:
- 右上格(急但解决不了)→ 拆单:最常见的场景。比如某 SKU 盘点差异导致短货,2 小时内补不上,但波次 1 小时后截单。正确做法是把这单摘出去,本波先发,问题单单独走加急或并入下一波。错的做法是等——等的结果是整波 200 单一起误车。
- 左上格(急且能解决)→ 手工干预:比如地址错了但客户 10 分钟内给了新地址。值得人工介入:打印一张手工拣选单,专人去拣,复核后直接送到打包台插队。不要为了这一单去动系统里的波次结构。
- 左下和右下(不急)→ 挂起:不急的单,hold 住就是最优解。等库存到了、锁定解了,再并入后面的波次。挂起的成本几乎为零。
看到没有:四个格子里,没有一个格子是"整波重排"。整波重排只在一种情况下成立——第 1 步定性为"波次异常",即分波规则本身错了。这时候问题不在某几个单,而在整波的结构。30 多个项目里,我只遇到过两回。
两个真实项目故事
故事一:2022 年,华东某 3PL 仓,旺季。
那天晚上 8 点多,波次已经下了,300 多单,拣选员全在库里。突然发现其中一个大客户的 40 多单地址全部错了——客户 ERP 推送的地址字段串行了。现场主管第一反应是:"把波次撤回来重排!"我当时正好在现场做上线支持,直接拦住了。
算笔账:整波重排,重新分波加重新下发任务,至少 40 分钟;已经拣出来的货要回库或暂存,又是 30 分钟;当晚截单时间是 10 点,干线车 10 点半走。重排完基本就误车了,300 多单全部晚一天。
最后怎么处理的?按上面的清单:40 多单全部 hold,摘出波次,生成一个独立的"异常处理波次";剩下的 260 多单正常走,9 点 40 截单上车。同时联系客户要正确地址,9 点 10 分拿到,异常波次单独拣选打包,赶上了一班 11 点的加班车。两拨货都按时走了,客户甚至没感知到出过问题。
这个案例里,如果当时听了主管的整波重排,损失的是整波 300 单的时效;拆单的代价,只是多处理了一个 40 单的小波次。
故事二:2023 年,华南某电商仓,大促前一周。
这次反过来,是个"看起来该重排"的场景,结果证明不该。波次下了之后,发现某爆款 SKU 系统库存和实物对不上——系统显示 800 个,实物只有 200 个出头。这影响了波次里 90 多个订单。
运营总监拍板整波重排,理由是"90 多单呢,不重排怎么办"。重排花了 50 分钟。新波次下来,拣选员重新走。结果拣到那个爆款 SKU 的库位,还是只有 200 个——因为库存差异这个根本问题根本没解决,重排只是把同样的错误又跑了一遍。那 90 多单最后还是只能拆出来手工处理,白白浪费了 50 分钟,还把不相关的 100 多单也拖晚了。
这个坑我见过三次,每次的剧本都一样:用"重排"去解决一个"数据"问题。重排解决的是"单子怎么组合"的问题,解决不了"货到底有没有"的问题。库存不对、锁定没解、地址是错的——这些重排 100 次也不会自己变好。
一个反常识的判断
说个可能得罪人的结论:为了保一个急单去重排整波,99% 的情况是亏的。
人的直觉是:这个单很重要(大客户、要罚款、老板盯着),所以值得"兴师动众"。但账不是这么算的。整波重排的代价是确定的、全波次承担的:重新分波的时间、任务重新下发的时间、已拣货物的回库或暂存、后面所有单的截单风险。而保住那一个单的收益,只属于那一个单。
正确的姿势永远是:用最小的动作保住那个单——手工干预、单独拣选、插队打包、单独发运。这些动作的成本只发生在那一个单上,不传染给其他单。
什么时候这个判断不成立?剩下那 1%:当你发现不是"一个单有问题",而是"分波规则错了,整波的结构都不对"。比如把必须冷链的单和普通单混进了一个波次——这时候不重排,后面全是错。但注意,这是第 1 步定性为"波次异常"的情况,不是"有个急单"的情况。
常见翻车点:上线前夜 checklist 摘录
最后列几个 checklist 里的常客,都是真实项目里反复出现的:
-
拆了单没更新手持终端任务。 系统里波次变了,拣选员手里还是旧任务,现场和系统分叉。最常见的翻车,没有之一。对策:第 5 步做完,必须在终端上确认任务已刷新。
-
分拣标签贴了又手改。 问题单摘除后格口变了,有人图省事拿笔改标签。月底对账对不上。对策:作废重打,成本几分钱,别省。
-
hold 的单没人跟,最后成了死单。 挂起只是"暂停",不是"解决"。每个 hold 单必须有负责人和跟进时限,超 24 小时未解决自动升级。
-
异常原因没记录。 同样的库存差异下个月再来一遍。第 7 步不是可选项,是必选项。
-
把"波次异常"和"订单异常"搞混。 这是所有翻车里最贵的。对策:出事前 30 秒先定性。
波次执行中的异常,拼的不是系统有多智能,拼的是出事那 30 秒的判断和之后 7 步的执行。判断对了,动作小了,损失就小。先动问题单,再想波次;能不动波次,就别动。
作者:林晓|WMS 实施顾问











