推荐箱型 / 设箱校验 · 业务逻辑梳理

2026-08-10 · 覆盖白场生成、中通专用算法、晚场加单重算(含昆明→店/仓→店按货架重算)、特殊花材按专用箱、供应商设箱校验 · 供产品核对口径

0一句话总览

运营端生成面单时,系统按发货单重量自动推荐每张面单用什么箱;仓库打包时实际设箱与推荐不一致会校验提示。晚场加单后,未出库的面单按新重量整体重算推荐。

1前提配置

配置说明
箱型配置(打包配置)每种箱录入「可装花材重量」(kg)。没录容量的箱不参与推荐
特殊花材专用箱需新增两条配置:蝴蝶兰箱(蝴蝶兰 / 红掌 / 大花蕙兰 共用)、蓝妖箱(蓝色妖姬)。按箱名匹配(先找同名,找不到再找名称包含的),不要求录容量。
特殊花材定义商品名包含:蝴蝶兰、红掌、大花蕙兰、蓝色妖姬。业务前提:到仓时已装箱,仓库只需贴面单,所以不存在装不下的问题。

2白场面单生成(运营端)

1
算可装重量可装重量 = 发货单总重 − 特殊花材重量(特殊花材单独装箱,不占普通箱额度)
2
按物流拆箱普通物流与中通算法不同,见下表;每拆出一箱 = 一张面单,并写上推荐箱型
3
特殊花材追加专用面单专用箱追加面单,不是按种类:蓝色妖姬单独 1 张(蓝妖箱),蝴蝶兰 / 红掌 / 大花蕙兰合并 1 张(蝴蝶兰箱)。即最多 2 张,映射到同一箱的多种花材只算 1 张

两种拆箱算法

物流算法
普通物流
(顺丰等)
最大箱优先:先用容量最大的箱整箱装,剩余零头选能装下的最小箱
中通
(快运/落地/小件)
45kg 逐箱匹配:件数固定为 ceil(总重÷45),与兜底口径一致。每轮取 min(45kg, 剩余重量) 作为一件的重量,选能装下这件的最小箱作推荐,再按 min(45kg, 剩余重量) 扣减剩余重量(箱容量只决定推荐哪个箱,不参与扣减)。所有箱都装不下 45kg 时用最大箱。
普通物流例:180kg,箱型 6 / 70 / 80 / 87 → 87箱 ×2(装 174)+ 零头 6kg → 6箱 ×1,共 3 箱。
中通例:100kg,有容量 60 的 100*60 箱 → 45 + 45 + 10 三件,每件都匹配到 100*60 箱 → 共 3 个 100*60 箱(件数 = ceil(100÷45) = 3,与兜底口径一致)。
兜底:一个可用箱型都没配置时,不推荐箱型,只按固定重量计件数:中通每件 45kg、其他物流每件 60kg(向上取整)。
航邦物流:与普通物流走同一套拆箱算法,无固定重量特判。

3打单 / 电子面单(运单数)

运单数与第 2 节口径完全一致:运单数 = 拆箱得到的箱数 + 特殊花材专用箱数(蓝妖箱、蝴蝶兰箱各至多 1)。中通同样走 45kg 逐箱匹配算法(上例 100kg 中通即 3 单)。补打面单不重新拆箱、不算特殊花材。

4晚场加单重算

触发条件:晚场(18:05 后)加单导致某个打包分组重量变化时,对该分组重算。三种面单的重算单元不同:

面单类型重算单元说明
昆明→店 / 仓→店按货架(发货单)同一货架当天所有订单(含晚场)合并装箱,收货人相同。晚场该货架增重 → 按新合计重量把整货架的面单重排。
城市仓按整仓聚合整个城市仓的普通订单混在一起算箱,维持原粒度,不拆到货架级。

三者的重算步骤一致,如下:

1
已出库的面单不动已出库面单及其箱子维持原样
2
估算已出库带走的重量按已出库面单的箱容量合计(优先实际设的箱,没设箱按推荐箱,默认装满)
3
剩余重量重新拆箱剩余 = 新总重 − 特殊花材重量 − 已出库容量;拆箱算法同白场(中通 45kg 逐箱匹配、普通最大箱优先)
4
未出库面单整体承接新推荐未出库面单(含已设箱的)按顺序套用新箱型序列,不保留原推荐;不够就补新面单,多出来的面单不处理
5
特殊花材追加白场每个专用箱 1 张不变;晚场又新增了某专用箱的花材,再追加 1 张(无论白天是否已有同箱——晚场是新装的箱子)。按明细下单时间分白/晚场,同一阶段同一专用箱只算 1 张,重算幂等不重复追加
推荐变化只打日志,不做留痕/通知;专用箱未配置时晚场跳过追加。
中通晚场例:晚场加单后总重 190kg、其中特殊花材 10kg,已出库 2 个 80 箱(按容量估算带走 160kg)→ 剩余 190−10−160 = 20kg → 未出库部分重拆为 1 个能装下 20kg 的最小箱。

5供应商端设箱校验(仓库打包)

入口行为
小程序拍照打包 / 修改箱型实际箱型 ≠ 推荐箱型 → 拦截弹窗(错误码 6001),确认后可继续。
PDA 扫码枪打包不拦截,仅留痕备注「扫码枪打包,实际箱型与推荐箱型不一致」。
货架列表「设箱有变化」的货架可筛选、有角标提示(小程序端)。
中通面单同样有箱型推荐,设箱校验对中通同样生效

6已知边界