7.6 KiB
7.6 KiB
WMS 出库流程文档
来源:
C:\work\gitlab\shopee\ttx-project-doc\集波\WMS出库流程.pdf说明:本稿为 PDF 独立整理版,主要覆盖 vendor 交互视角的出库流程。PDF 共 6 页,图示较多、可抽取文字较少,因此以下内容以“PDF补充 / 待代码确认 / 当前实现”方式标注边界,避免误写成
WaveRuleMatchService已完全落地。名词口径:
vendor是当前项目 / WES-WMS 实现侧,Shopee是需要调用或接收交互的外部接口方。
1. 文档范围
这份文档只描述 PDF 中出现的 WMS 出库流程,不替代现有集波接口文档,也不展开 WaveRuleMatchService 的规则匹配细节。
重点关注三类边界:
| 关注点 | 说明 |
|---|---|
| 任务创建 | 调用 Shopee 外部接口还是当前项目 vendor 侧创建任务 |
| 任务拆分 | WaveID、PickingTask、SubPickingTask 的关系 |
| 接口交互 | WMS-api、WMS-automation、iWMS、Shopee 外部接口之间的任务流转 |
2. 术语表
| 术语 | PDF补充 | 待代码确认 / 当前实现 |
|---|---|---|
WMS-api |
WMS 对外接口层 | 对应具体接口契约时再落到 API 文档 |
WMS-automation |
自动化流程层 | 属任务分流和自动化作业链路 |
iWMS |
WMS 内部作业系统 / 核心执行层 | PDF 中作为内部系统名出现 |
vendor |
当前项目 / WES-WMS 实现侧 | 负责接收任务、创建任务、执行任务 |
WaveID |
约等于 WMS 拣货任务 | 一次只生成一个拣货任务 |
PickingTask |
通常对应多个业务订单 | 当前项目 vendor 侧不需要感知多拣货员层 |
SubPickingTask |
任务过大或跨区时的拆分单元 | 一个销售出库波次 ID 对应一个 SubPickingTask |
Prehit |
预命中自动化区 | PDF 术语,具体落点待进一步确认 |
RTS |
RTS 业务线 | 需求池模式主要走当前项目 vendor 侧创建任务链路 |
MTO |
MTO 业务线 | 同时存在需求池与非需求池两类流程 |
3. 总体链路
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 非需求池模式 |
属于与 Shopee 外部接口交互后当前项目 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补充 | 订单预命中自动化区时,由当前项目 vendor 侧接收/组织任务 |
| 执行方式 | 当前项目 vendor 侧合并多个订单后,创建并执行混合拣货任务 |
| 任务边界 | 属当前项目 vendor 侧创建任务链路 |
| 当前实现 | 需要看 wms-api / edi-shopee 对 Shopee 外部接口的链路,不应写成当前集波服务已完成 |
4.3 RTS 需求池模式
| 项 | 内容 |
|---|---|
| 创建源 | vendor |
| PDF补充 | RTS 需求到自动化区后,由当前项目 vendor 侧承接需求 |
| 执行方式 | 当前项目 vendor 侧按需求创建并执行任务 |
| 任务边界 | 属需求池链路 |
| 当前实现 | 当前集波服务只按 ticketType 做入口分流和匹单,不负责完整的 vendor 侧任务创建 |
4.4 MTO 需求池模式
| 项 | 内容 |
|---|---|
| 创建源 | vendor |
| PDF补充 | MTO 需求到自动化区后,由当前项目 vendor 侧承接需求 |
| 执行方式 | 当前项目 vendor 侧按需求创建并执行任务 |
| 任务边界 | 属需求池链路 |
| 当前实现 | 与 RTS 一样,属于下游任务执行链路 |
4.5 MTO 非需求池模式
| 项 | 内容 |
|---|---|
| 创建源 | Shopee |
| PDF补充 | 库存占用到自动化库位后,拆分 PickingTask 并下发到当前项目 vendor 侧 |
| 执行方式 | 不允许混合拣货 |
| 任务关系 | 更接近与 Shopee 外部接口交互后由当前项目 vendor 侧执行 |
| 当前实现 | 与销售自动化 SubPickingTask 类似,属于任务下发与执行链路,不是当前集波匹单核心 |
5. 关键流程要点
5.1 任务粒度
PDF 的核心口径是:
WaveID基本等于 WMS 拣货任务。- 一次只生成一个拣货任务。
PickingTask可以对应多个业务订单。PickingTask可能由多个拣货员执行,但当前项目 vendor 侧不需要感知多拣货员层。SubPickingTask用于任务过大或跨区拆分。
5.2 混拣限制
PDF 强调两类限制:
- 当前项目 vendor 侧执行 WMS 创建的任务时,不能混合拣货。
- 自动化区拆分出来的任务,按既定任务边界执行,不在当前项目 vendor 侧再做混合。
5.3 任务分层
PDF 可理解为两层:
| 层级 | 说明 |
|---|---|
| Shopee 外部接口交互层 | 负责调用或接收 WaveID / PickingTask / SubPickingTask 相关任务 |
| 当前项目 vendor 执行层 | 负责接收任务、创建任务、执行任务、回传状态 |
6. 与当前集波服务的关系
这部分只做边界说明,避免把 PDF 的完整 vendor 流程写进 WaveRuleMatchService 本体。
| 范围 | PDF补充 | 当前实现 |
|---|---|---|
| 集波入口 | 先匹单、再分流、再生成后续任务 | WaveRuleMatchService 负责入口与规则匹配 |
| 订单/波次分流 | 按销售、RTS、MTO 等业务线区分 | 当前服务已按 pickType、ticketType、waveType 等规则做分流 |
| vendor 任务创建 | 当前项目 vendor 侧创建/执行任务,并按接口要求与 Shopee 交互 | 当前服务不负责完整的 vendor 侧任务拆分和执行 |
| 取消/缺货/补单 | PDF 体现为上下游任务流转的一部分 | 当前服务只覆盖自己能控制的集波和补缺口边界 |
当前实现
WaveRuleMatchService 现阶段更适合归类为“集波入口与规则匹配服务”,而不是“vendor 出库任务全链路服务”。
待代码确认
PDF 中涉及 create_picking_task、bind_picking_task、complete_picking_task、cancel_* 等任务生命周期接口时,应落到对应 wms-api / edi-shopee 对 Shopee 的接口文档,不应在本流程文档里写成该服务已实现。
7. 结论
这份 PDF 主要补充的是“任务如何被拆分,并由当前项目 vendor 侧执行或调用 Shopee 接口”,而不是“集波规则如何匹单”。
因此,最合适的归档方式是:
- 本文件作为
WMS出库流程.pdf的独立流程文档。 - 现有
WaveRuleMatchService文档继续只描述集波服务自身。 - API 文档只保留接口契约和入参出参,不混写完整 vendor 任务执行细节。