This commit is contained in:
曾志威
2026-06-10 10:49:04 +08:00
parent c477b380cf
commit b842476c80
4 changed files with 195 additions and 2 deletions
@@ -59,6 +59,20 @@
| 已绑波次格口补缺口 | 空闲格口已绑定 `shopeeWaveCode``currentWaveRule` 匹配当前规则 | 按 `low_threshold/maxShipments` 计算缺口后补单 |
| 空格口首次分配 | 其他普通批量候选单 | 按规则优先级逐规则匹配,先抢占格口,再绑定 Shopee 波次,再创建并运行内部波次 |
### PDF 补充:WMS 出库 vendor 交互范围
来源:`WMS出库流程.pdf`。该 PDF 主要是 vendor 视角交互时序图,可抽取文字较少;以下只同步与集波/拣货任务边界相关的口径。
| PDF 流程 | 创建源 | PDF 说明 | 与当前 `WaveRuleMatchService` 的关系 |
|----------|--------|----------|-------------------------------------|
| 销售出库自动化 `SubPickingTask` | Shopee | `RunWave` 生成的拣货任务占到自动化区时,拆分 normal 拣货任务和自动化拣货任务;自动化部分下发 vendor,vendor 执行 WMS 创建的任务,不能混合拣货 | 与当前内部波次创建、运行和 Shopee picking task 调用方向相关;自动化任务下发属于 `wms-api/edi-shopee/vendor` 链路,本文不标记为本服务已完全落地 |
| 销售出库自动化 `Order` | vendor | 订单预命中自动化区时,WMS 下发给 vendor;vendor 合并多个订单后创建并执行混合拣货任务 | 属 vendor 创建任务链路,不是当前服务的首次集波直接创建内部波次逻辑 |
| RTS 需求池模式 | vendor | RTS 需求到自动化区后下发需求给 vendor,由 vendor 按需求创建并执行拣货任务 | 属 `wms-api/edi-shopee/vendor` 需求池链路;当前服务只按 `ticketType=3` 参与集波匹单/接口类型分流 |
| MTO 需求池模式 | vendor | MTO 需求到自动化区后下发需求给 vendor,由 vendor 按需求创建并执行拣货任务 | 属 `wms-api/edi-shopee/vendor` 需求池链路;当前服务只按 `ticketType=4/5` 参与集波匹单/接口类型分流 |
| MTO 非需求池模式 | Shopee | 库存占用到自动化库位后拆分 `PickingTask`,下发任务给 vendor,不能混合拣货 | 与 Shopee 创建任务方向相关;任务拆分和下发细节不在当前服务内闭环 |
PDF 名词口径:`波次ID` 约等于 WMS 拣货任务;`PickingTask` 通常对应多个业务订单,可由多个拣货员执行,vendor 不感知多拣货员层;`SubPickingTask` 用于任务过大或跨区拆分,本次交互中一个销售出库波次 ID 对应一个 `SubPickingTask`
---
## 2. 入口与总流程
@@ -874,6 +888,9 @@ fillShortageCells
| `Max SKU Pieces Per Order` | 标准字段已同步到文档,当前未见字段/SQL | 待实现 |
| `Mix Mode Max SKU Pieces Filter` | 标准字段已同步到文档,当前未见字段/SQL | 待实现 |
| `multi_attr_list` 全包含 | 当前逗号字段按任一值命中;docx 示例方向已记录 | 待调整,按 docx 待确认 |
| `wave_rule` 字段命名规范 | WES 小驼峰 + base 逻辑创建自定义字段 / 时间 / 用户等字段 | 标准要求已在 docx 强调;当前主数据字段命名仍以代码与迁移为准 |
| `shipment_header.pickType` 手工拣选切换 | 仅订单池 `100` 状态可更新为 `1/0` | 当前服务侧仅有按单拣选过滤,界面/接口切换待接入 |
| `ticketType` 映射 | XSCK=1/2、MTO=5/4、RTS=3、RT=6 | 当前文档已在 13.3 详细列出,按此口径匹配 |
### 15.2 waveType/orderStructure 标准映射
@@ -3,8 +3,6 @@
> 对应实现:`WaveRuleMatchController#findBestMatchedRule` → `WaveRuleMatchService#findBestMatchedRuleByWorkStationAndOutboundType`
>
> 需求标准来源:`C:\work\gitlab\shopee\ttx-project-doc\集波\SHOPEE_010_出库集波V1.2.docx`V1.42026-06-04 逻辑修改 / 匹单字段逻辑更新)。
>
> 需求标准来源:`SHOPEE_010_出库集波V1.2.docx`,已同步 V1.4「匹单字段逻辑更新」口径;未落地项在本文中明确标记为“标准要求/当前实现/待实现”。
---
Binary file not shown.
+178
View File
@@ -0,0 +1,178 @@
# WMS 出库流程文档
> 来源:`C:\work\gitlab\shopee\ttx-project-doc\集波\WMS出库流程.pdf`
>
> 说明:本稿为 PDF 独立整理版,主要覆盖 vendor 交互视角的出库流程。PDF 共 6 页,图示较多、可抽取文字较少,因此以下内容以“PDF补充 / 待代码确认 / 当前实现”方式标注边界,避免误写成 `WaveRuleMatchService` 已完全落地。
---
## 1. 文档范围
这份文档只描述 PDF 中出现的 WMS 出库流程,不替代现有集波接口文档,也不展开 `WaveRuleMatchService` 的规则匹配细节。
重点关注三类边界:
| 关注点 | 说明 |
|---|---|
| 任务创建 | WMS 创建任务还是 vendor 创建任务 |
| 任务拆分 | WaveID、PickingTask、SubPickingTask 的关系 |
| 下游交互 | WMS-api、WMS-automation、iWMS、vendor 自动化系统之间的任务流转 |
---
## 2. 术语表
| 术语 | PDF补充 | 待代码确认 / 当前实现 |
|---|---|---|
| `WMS-api` | WMS 对外接口层 | 对应具体接口契约时再落到 API 文档 |
| `WMS-automation` | 自动化流程层 | 属任务分流和自动化作业链路 |
| `iWMS` | WMS 内部作业系统 / 核心执行层 | PDF 中作为内部系统名出现 |
| `vendor` | 外部自动化系统 | 负责接收任务、创建任务、执行任务 |
| `WaveID` | 约等于 WMS 拣货任务 | 一次只生成一个拣货任务 |
| `PickingTask` | 通常对应多个业务订单 | vendor 不感知多拣货员层 |
| `SubPickingTask` | 任务过大或跨区时的拆分单元 | 一个销售出库波次 ID 对应一个 SubPickingTask |
| `Prehit` | 预命中自动化区 | PDF 术语,具体落点待进一步确认 |
| `RTS` | RTS 业务线 | 需求池模式主要走 vendor 创建任务链路 |
| `MTO` | MTO 业务线 | 同时存在需求池与非需求池两类流程 |
---
## 3. 总体链路
```mermaid
flowchart TB
A["WMS 出库流程 PDF"]
B["Shopee 创建任务"]
C["Vendor 创建任务"]
A --> B
A --> C
B --> B1["销售出库自动化 SubPickingTask"]
B --> B2["MTO 非需求池模式"]
C --> C1["销售出库自动化 Order"]
C --> C2["RTS 需求池模式"]
C --> C3["MTO 需求池模式"]
```
PDF 的主线可以拆成两类:
| 类别 | PDF补充 | 当前实现/边界 |
|---|---|---|
| Shopee 创建任务 | 销售出库自动化 `SubPickingTask`、MTO 非需求池模式 | 属于 WMS 创建任务后再下发 vendor 的链路,不是当前集波匹单本身 |
| Vendor 创建任务 | 销售出库自动化 `Order`、RTS 需求池模式、MTO 需求池模式 | 属于 vendor 侧按需求/订单创建和执行任务的链路 |
---
## 4. 五类出库流程
### 4.1 销售出库自动化 SubPickingTask
| 项 | 内容 |
|---|---|
| 创建源 | Shopee |
| PDF补充 | `RunWave` 生成的拣货任务进入自动化区后,会拆成 normal 拣货任务和自动化拣货任务;自动化部分下发给 vendor |
| 任务关系 | 一个销售出库波次 ID 对应一个 `SubPickingTask` |
| 执行方式 | vendor 执行 WMS 创建的拣货任务,不能混合拣货 |
| 当前实现 | 与 `WaveRuleMatchService` 只存在上下游关系,不属于该服务直接创建任务的职责 |
### 4.2 销售出库自动化 Order
| 项 | 内容 |
|---|---|
| 创建源 | vendor |
| PDF补充 | 订单预命中自动化区时,WMS 下发给 vendor |
| 执行方式 | vendor 合并多个订单后,创建并执行自己的混合拣货任务 |
| 任务边界 | 属 vendor 创建任务链路 |
| 当前实现 | 需要看 `wms-api / edi-shopee / vendor` 链路,不应写成当前集波服务已完成 |
### 4.3 RTS 需求池模式
| 项 | 内容 |
|---|---|
| 创建源 | vendor |
| PDF补充 | RTS 需求到自动化区后,WMS 下发需求给 vendor |
| 执行方式 | vendor 按需求创建并执行任务 |
| 任务边界 | 属需求池链路 |
| 当前实现 | 当前集波服务只按 `ticketType` 做入口分流和匹单,不负责 vendor 侧任务创建 |
### 4.4 MTO 需求池模式
| 项 | 内容 |
|---|---|
| 创建源 | vendor |
| PDF补充 | MTO 需求到自动化区后,WMS 下发需求给 vendor |
| 执行方式 | vendor 按需求创建并执行任务 |
| 任务边界 | 属需求池链路 |
| 当前实现 | 与 RTS 一样,属于下游任务执行链路 |
### 4.5 MTO 非需求池模式
| 项 | 内容 |
|---|---|
| 创建源 | Shopee |
| PDF补充 | 库存占用到自动化库位后,拆分 `PickingTask` 并下发给 vendor |
| 执行方式 | 不允许混合拣货 |
| 任务关系 | 更接近 WMS 生成任务后交给 vendor 执行 |
| 当前实现 | 与销售自动化 SubPickingTask 类似,属于任务下发与执行链路,不是当前集波匹单核心 |
---
## 5. 关键流程要点
### 5.1 任务粒度
PDF 的核心口径是:
- `WaveID` 基本等于 WMS 拣货任务。
- 一次只生成一个拣货任务。
- `PickingTask` 可以对应多个业务订单。
- `PickingTask` 可能由多个拣货员执行,但 vendor 不需要感知多拣货员层。
- `SubPickingTask` 用于任务过大或跨区拆分。
### 5.2 混拣限制
PDF 强调两类限制:
- vendor 执行 WMS 创建的任务时,不能混合拣货。
- 自动化区拆分出来的任务,按既定任务边界执行,不在 vendor 侧再做混合。
### 5.3 任务分层
PDF 可理解为两层:
| 层级 | 说明 |
|---|---|
| WMS 创建任务层 | 负责生成 `WaveID` / `PickingTask` / `SubPickingTask`,再决定是否下发 vendor |
| vendor 执行任务层 | 负责接收任务、创建任务、执行任务、回传状态 |
---
## 6. 与当前集波服务的关系
这部分只做边界说明,避免把 PDF 的 vendor 流程写进 `WaveRuleMatchService` 本体。
| 范围 | PDF补充 | 当前实现 |
|---|---|---|
| 集波入口 | 先匹单、再分流、再生成后续任务 | `WaveRuleMatchService` 负责入口与规则匹配 |
| 订单/波次分流 | 按销售、RTS、MTO 等业务线区分 | 当前服务已按 `pickType``ticketType``waveType` 等规则做分流 |
| vendor 任务创建 | WMS 下发到 vendorvendor 再创建/执行任务 | 当前服务不负责 vendor 侧任务拆分和执行 |
| 取消/缺货/补单 | PDF 体现为上下游任务流转的一部分 | 当前服务只覆盖自己能控制的集波和补缺口边界 |
### 当前实现
`WaveRuleMatchService` 现阶段更适合归类为“集波入口与规则匹配服务”,而不是“vendor 出库任务全链路服务”。
### 待代码确认
PDF 中涉及 `create_picking_task``bind_picking_task``complete_picking_task``cancel_*` 等任务生命周期接口时,应落到对应 `wms-api / edi-shopee / vendor` 接口文档,不应在本流程文档里写成该服务已实现。
---
## 7. 结论
这份 PDF 主要补充的是“任务如何被拆分并交给 vendor 执行”,而不是“集波规则如何匹单”。
因此,最合适的归档方式是:
- 本文件作为 `WMS出库流程.pdf` 的独立流程文档。
- 现有 `WaveRuleMatchService` 文档继续只描述集波服务自身。
- API 文档只保留接口契约和入参出参,不混写 vendor 任务执行细节。