init
This commit is contained in:
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
>
|
||||
> 本文档描述该服务的**当前代码流程**,按调用入口到出口的完整链路展开,包括主流程、分流流程、补缺口流程、回滚流程和详细的规则匹配机制。
|
||||
>
|
||||
> 需求标准来源:`C:\work\gitlab\shopee\ttx-project-doc\集波\SHOPEE_010_出库集波V1.2.docx`,当前同步到 V1.4 口径:`wave_rule.waveType` 与 `shipment_header.orderStructure` 包含关系、同一 `groupKey` 集波约束、字段匹配字典规则。
|
||||
> 需求标准来源:`C:\work\gitlab\shopee\ttx-project-doc\集波\SHOPEE_010_出库集波V1.2.docx`,当前同步到 V1.4 口径:`wave_rule.waveType` 与 `shipment_header.orderStructure` 包含关系、同一 `groupKey` 集波约束、字段匹配字典规则、`Max SKU Pieces Per Order` / `Mix Mode Max SKU Pieces Filter` 标准要求、`multi_attr_list` 全包含匹配要求。
|
||||
|
||||
---
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
| 规则类型匹配 | `wave_rule.waveType` 通过 `resolveMatchedOrderStructures` 转换为可抓的 `orderStructure` 集合 |
|
||||
| 字段匹配 | 通过 `WAVE_RULE_FIELD_MATCHING` 字典追加 `wave_rule` 字段与 `shipment_header` 字段的 `IN/EQ/LE` 条件 |
|
||||
| 同波约束 | 首次抓单会先按最早候选单解析 `groupKey`;补缺口时按当前 `shopee_wave.groupKey` 过滤,保证同一 Shopee 波次只集相同 `groupKey` |
|
||||
| V1.4 新增 SKU 件数过滤 | `Max SKU Pieces Per Order`、`Mix Mode Max SKU Pieces Filter` 是 docx 标准要求;当前 `WaveRule` 域和匹单 SQL 未见对应落地字段,列为待实现 |
|
||||
|
||||
**三种分流入口:**
|
||||
|
||||
@@ -143,6 +144,12 @@ hasDifferentActiveShipmentType(warehouseCode, workstationId, shipmentType)
|
||||
- 拒绝时记录系统处理日志,并返回 `MSG_WRM_0014`。
|
||||
- 该校验位于 Redis 锁之前,避免无效请求占用集波锁。
|
||||
|
||||
### 3.4 工作站出库类型权限
|
||||
|
||||
标准要求:登录工作站时按用户权限控制可选择的出库类型,配置后工作站只能下拉选择该用户有权限的单据类型。
|
||||
|
||||
当前实现/待实现:`WaveRuleMatchService` 已做同一工作站不同出库类型隔离;用户与出库类型的权限绑定仍是 TODO,不能在本文档中描述为已落地。
|
||||
|
||||
---
|
||||
|
||||
## 4. 一波一单分流流程
|
||||
@@ -215,6 +222,7 @@ for each WaveRule:
|
||||
| 当前状态 | 普通批量集波已过滤 `pickType=2` |
|
||||
| 待实现 | 独立分流入口、一单一波一槽口、内部波次运行 |
|
||||
| 补单 | 后续仍按“不走补单逻辑”处理 |
|
||||
| 取号 | 标准要求推拣货任务使用上游同步的 Shopee 波次号,WES 不走取号逻辑 |
|
||||
|
||||
---
|
||||
|
||||
@@ -314,6 +322,7 @@ appendWaveTypeOrderStructureFilter(sql, params, rule)
|
||||
- `wave_rule.waveType` 是规则侧单选类型,不直接等值匹配订单结构,而是通过上表转换成可包含的订单结构集合。
|
||||
- `appendWaveTypeOrderStructureFilter` 同时用于普通批量候选和一波一单候选,保证入口一致。
|
||||
- 未识别的 `waveType` 不追加订单结构条件;此场景通常表示规则数据异常,应通过规则主数据维护修正。
|
||||
- docx 中同时出现 `SSSQ` 与 `SSSQ(Same SKU same Qty)` 两个名称,其中编码 `2` 映射到 `MSAQ`;命名含义按 docx 待确认,当前实现按编码表执行。
|
||||
|
||||
### 6.4 订单池 SQL 基础条件
|
||||
|
||||
@@ -356,6 +365,8 @@ WHERE warehouseCode = :warehouseCode
|
||||
| 2 | `matchRuleCells` | `currentWaveRule` 为空 且 `waveRule` 逗号分隔匹配 rule.code | 中 |
|
||||
| 3 | `matchEmptyCells` | `currentWaveRule` 和 `waveRule` 均为空 | 兜底 |
|
||||
|
||||
标准要求:分播墙明细界面中 `wcs_sorting_wall_cell.waveRule` 取值来自 `wave_rule`,支持多选,多个规则中间用逗号隔开。当前 `matchRuleCells` 通过逗号拆分匹配当前规则编码。
|
||||
|
||||
### 7.2 格口抢占
|
||||
|
||||
```
|
||||
@@ -439,6 +450,8 @@ bindShipmentShopeeWave(warehouseCode, shipmentIds, shopeeWaveCode)
|
||||
|
||||
正式接口契约确认后,只需补齐 `requestShopeeWaveBind` 的真实调用;当前不再保留柔性拒单解析方法。
|
||||
|
||||
标准要求补充:销售 `create_picking_task`、RTS-MTO 下发/变更等上游链路需要带入或校验 Shopee 波次号;当前服务侧保留统一合波校验入口,真实 create_picking_task / RTS-MTO 接口契约仍待接入验证。
|
||||
|
||||
---
|
||||
|
||||
## 9. 内部波次创建与运行
|
||||
@@ -470,6 +483,8 @@ addShipmentsToInternalWave(shipmentIds, waveId)
|
||||
|
||||
库存不足踢单由 `wms-wave` 回池链路处理:回池时清空出库单头 `shopeeWave/waveRule`,不记录 `kickOutWave`;上游撤单接口仍需在回池链路接入。
|
||||
|
||||
标准要求:库存分配优先按效期/先到期先出与 FIFO,其次按工作站点位与库存点位半径最小,同半径内低层货位优先;库存不足单据需踢单并通知上游撤单。当前本文只记录集波服务入口与回池清理口径,库存最优分配和上游撤单通知不应描述为 `WaveRuleMatchService` 已完成。
|
||||
|
||||
---
|
||||
|
||||
## 10. 回滚机制
|
||||
@@ -582,6 +597,8 @@ calcCellNeedQty(warehouseCode, rule, cell, shopeeWaveCode)
|
||||
|
||||
`isFlowPickCellFull`:单品单件 + `countShopeeShipments >= maxShipments`
|
||||
|
||||
标准要求:Flow Pick 包含 SSSQ、MSSQ 规则;RTS/MTO 下发单据因按行拆单,也按 Flow Pick 处理。当前服务中的满槽换箱判断以单品单件规则为主,RTS/MTO Flow Pick 细分触发口径按 docx 待确认。
|
||||
|
||||
### 12.2 流程
|
||||
|
||||
```
|
||||
@@ -684,7 +701,16 @@ changeFlowPickWave(workstation, cell, rule):
|
||||
**规则字段(16):**
|
||||
`channelId`, `fulfillmentChainId`, `orderSize`, `skuSizeType`, `categoryLevel1Id`, `shopGroup`, `shopId`, `urgentFlag`, `outerPackaging`, `outerPackagingId`, `deliveryRegion`, `fragile`, `liquid`, `highValue`, `battery`, `danger`
|
||||
|
||||
### 13.5 执行流程
|
||||
### 13.5 V1.4 新增/待确认匹单字段
|
||||
|
||||
| 标准字段/规则 | 标准要求 | 当前实现/待实现 |
|
||||
|---------------|----------|-----------------|
|
||||
| `Max SKU Pieces Per Order` | 单订单任一 SKU 件数大于规则阈值时,该订单排除出当前 wave rule,转给低优先级的大件数规则 | 当前 `WaveRule` 域与 `appendRuleFieldMatching` 未见对应字段/SQL,待实现 |
|
||||
| `Mix Mode Max SKU Pieces Filter` | 仅 Mix-mode/MSAQ 规则生效,排除单 SKU 件数过高的混合订单,避免混合波次槽位过度丰富 | 当前未见对应字段/SQL,待实现 |
|
||||
| SKU 主档字段匹配 | docx 要求 API 列为 SKU 的规则字段需与单据所有明细 SKU 主档字段匹配,全部匹配才能进该规则 | 当前字段匹配 SQL 只处理单头/扩展字段;明细 SKU 全量匹配待实现或待接入 |
|
||||
| `multi_attr_list` | docx 要求多值字段用逗号存储时必须全包含;按示例,规则 `A,B,C` 可匹配单据 `A,B`,规则 `B,C` 不匹配单据 `A,B` | 当前 `channelId/fulfillmentChainId` 逗号字段按任一值命中;全包含方向按 docx 待确认,当前待调整 |
|
||||
|
||||
### 13.6 执行流程
|
||||
|
||||
```
|
||||
resolveRuleFieldMappings(warehouseCode)
|
||||
@@ -842,8 +868,12 @@ fillShortageCells
|
||||
| 上墙优先级 | `findEnabledRules` 按 `wavePriority desc, id asc`;高优先级不足 `maxShipments` 仍优先消费 | 已落地 |
|
||||
| 抓单优先级 | `priority desc`、`cutOffTime asc`、`purchaseTime asc`、`orderTime asc`、`id asc` | 已落地 |
|
||||
| `wave_rule.maxShipments` | `resolveShipmentLimit` 使用规则级 `maxShipments`,默认 30 | 已落地 |
|
||||
| `wcs_sorting_wall_cell.waveRule` 多选 | 逗号分隔匹配当前规则编码 | 已落地 |
|
||||
| `WAVE_RULE_FIELD_MATCHING` | `appendRuleFieldMatching` 按字典追加 `IN/EQ/LE` 条件 | 已落地 |
|
||||
| `kickOutWave` 过滤 | `appendKickOutFilter` 对同一 Shopee 波次过滤已拒单 | 已落地 |
|
||||
| `Max SKU Pieces Per Order` | 标准字段已同步到文档,当前未见字段/SQL | 待实现 |
|
||||
| `Mix Mode Max SKU Pieces Filter` | 标准字段已同步到文档,当前未见字段/SQL | 待实现 |
|
||||
| `multi_attr_list` 全包含 | 当前逗号字段按任一值命中;docx 示例方向已记录 | 待调整,按 docx 待确认 |
|
||||
|
||||
### 15.2 waveType/orderStructure 标准映射
|
||||
|
||||
@@ -860,10 +890,13 @@ fillShortageCells
|
||||
| 标准需求点 | 当前实现状态 | 后续落点 |
|
||||
|------------|--------------|----------|
|
||||
| Shopee 合波校验真实接口 | `requestShopeeWaveBind` 为预留入口,当前只保留整批成功/失败契约 | 接口契约明确后补真实调用 |
|
||||
| create_picking_task / RTS-MTO 上游校验 | 标准要求与 Shopee 波次获取、合波校验衔接;当前仅有服务侧统一预留入口 | 真实接口契约确认后接入 |
|
||||
| 库存不足踢单通知上游撤单 | 当前由回池链路清空 `shopeeWave/waveRule`,上游撤单接口仍待接入 | `wms-wave` 回池链路 |
|
||||
| 计划任务轮询补单 | 原 `pollReplenishment/pollReplenishmentOnce` 已删除;当前补缺口在首次集波入口 `fillShortageCells` 执行 | 如需后台轮询,需恢复独立计划任务入口 |
|
||||
| 推拣货任务一单一波一槽口 | 普通批量已过滤 `pickType=2`,独立分流入口当前未保留 | 待恢复 `pickType=2 + shopeeWave` 专用分流 |
|
||||
| Flow Pick 封箱/换箱接口 | 本地流程已有占位方法,真实 ESS/AGV 接口未接入 | `requestFlowPickSealBox` / `requestFlowPickChangeBox` / `handleFlowPickChangeWaveFailure` |
|
||||
| 工作站用户权限控制出库类型 | 当前只校验工作站启用、仓库和不同出库类型隔离 | 用户权限与出库类型绑定仍待实现 |
|
||||
| 库存最优分配策略 | docx 要求效期/FIFO、工作站/库存半径、低层货位优先 | 属库存分配链路,本文不标记为 `WaveRuleMatchService` 已落地 |
|
||||
|
||||
## 附录:TODO 清单(代码内标注)
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
# 出库集波规则匹配 API 文档
|
||||
|
||||
> 对应实现:`WaveRuleMatchController#findBestMatchedRule` → `WaveRuleMatchService#findBestMatchedRuleByWorkStationAndOutboundType`
|
||||
>
|
||||
> 需求标准来源:`C:\work\gitlab\shopee\ttx-project-doc\集波\SHOPEE_010_出库集波V1.2.docx`(V1.4,2026-06-04 逻辑修改 / 匹单字段逻辑更新)。
|
||||
>
|
||||
> 需求标准来源:`SHOPEE_010_出库集波V1.2.docx`,已同步 V1.4「匹单字段逻辑更新」口径;未落地项在本文中明确标记为“标准要求/当前实现/待实现”。
|
||||
|
||||
---
|
||||
|
||||
@@ -11,7 +15,7 @@
|
||||
1. 根据**工作站 + 出库类型**找出当前可用的分播墙格口
|
||||
2. 按规则优先级查找订单池中符合条件的出库单
|
||||
3. 完成 Shopee 波次绑定、ESS 校验、内部波次创建与运行
|
||||
4. 返回「格口 + 命中规则 + 波次」的分配结果
|
||||
4. 当前实现成功后返回 `ResponseMessageFactory.success()`,不返回「格口 + 命中规则 + 波次」明细
|
||||
|
||||
---
|
||||
|
||||
@@ -50,6 +54,23 @@ POST wms/automation/waveRuleMatch/findBestMatchedRule
|
||||
| `RTS` | RTS 出库 | 标准批量集波 |
|
||||
| `RT` | RT 出库 | 一波一单,不使用 Shopee 波次号,走库内流程 |
|
||||
|
||||
### 标准要求补充
|
||||
|
||||
- `wave_rule.wavePriority` 先决定上墙优先级,`maxShipments` 决定抓单数量;即使高优规则订单不足,也要优先匹高优规则的单。
|
||||
- 同一规则内抓单优先级按 `shipment_header.priority` 降序、`cutOffTime` 升序、`purchaseTime` 升序、`orderTime` 升序。
|
||||
- `shipment_header.orderStructure` 若为空,出库单下发后需自动分析并写回:`SSSQ=1`、`SSAQ=2`、`MSAQ=3`。
|
||||
- `wave_rule.waveType` 与 `shipment_header.orderStructure` 按 docx 表格做包含关系匹配,表中命名/编码有歧义处保留原文并按 docx 待确认。
|
||||
- 匹单还要求 `shipment_header.groupKey` 一致才能集在一起。
|
||||
- `multi_attr_list` 采用全包含匹配:规则值 `A,B,C` 对单据 `A,B` 可匹配;规则值 `B,C` 对单据 `A,B` 不匹配。
|
||||
- `wcs_sorting_wall_cell.waveRule` 支持多选,多个规则逗号分隔。
|
||||
- 工作站选择出库类型受用户权限控制,同一工作站不混做不同出库类型。
|
||||
- 仅抓正常单据,取消/挂起/异常单不抓。
|
||||
- `shipment_header.pickType=1/0` 仅允许在订单池 `100` 状态切换。
|
||||
- `XSCK`、`MTO`、`RTS`、`RT` 的 `ticketType` 映射按 docx 口径分别为:销售任务 `1` / 销售订单 `2`,MTO 任务 `5` / MTO 订单 `4`,RTS `3`,RT `6`。
|
||||
- 推拣货任务标准要求为:上游同步 wave 号段,WES 不走取号逻辑,1 拣货单 1 波次 1 槽口,不走补单。
|
||||
- Flow Pick 标准要求覆盖 `SSSQ/MSSQ` 以及 RTS/MTO 下发单据;满槽换箱换波走 Flow Pick 换箱接口。
|
||||
- 集波后需按单据类型取得 `shopee_wave` 并请求上游校验:销售 create_picking_task 走 3.2.7,RTS/MTO 走 3.3.6;失败订单后续通过补单/踢单处理。
|
||||
|
||||
---
|
||||
|
||||
## 响应
|
||||
@@ -74,6 +95,10 @@ POST wms/automation/waveRuleMatch/findBestMatchedRule
|
||||
}
|
||||
```
|
||||
|
||||
> 标准要求:返回格口 + 命中规则 + 波次分配明细。
|
||||
>
|
||||
> 当前实现:成功时通常仅返回 `ResponseMessageFactory.success()`,不保证返回上述明细;若调用链未产出分配结果,请以 success 为准。
|
||||
|
||||
| 响应字段 | 类型 | 说明 |
|
||||
|----------|------|------|
|
||||
| `shipmentId` | Long | 已集波出库单 ID |
|
||||
@@ -113,6 +138,7 @@ POST wms/automation/waveRuleMatch/findBestMatchedRule
|
||||
| `MSG_WRM_0010` | 当前规则下无可匹配出库单 | 订单池无符合条件的出库单 |
|
||||
| `MSG_WRM_0011` | 规则或工作站为空 | 内部校验 |
|
||||
| `MSG_WRM_0012` | 工作站正在集波中 | Redis 锁获取失败,同一工作站同一出库类型正在集波 |
|
||||
| `MSG_WRM_0014` | 工作站已有其它出库类型作业 | 同一工作站已存在其它 `shipmentType` 的占用格口/波次 |
|
||||
|
||||
---
|
||||
|
||||
@@ -125,9 +151,11 @@ POST /findBestMatchedRule
|
||||
│
|
||||
├─ 2. 工作站校验 (存在 / 启用 / 仓库匹配)
|
||||
│
|
||||
├─ 3. Redis 锁 (仓库+工作站+出库类型, 防重复集波)
|
||||
├─ 3. 同工作站出库类型隔离 (不允许一个工作站混做不同 shipmentType)
|
||||
│
|
||||
├─ 4. 查询启用波次规则 (按 wavePriority desc)
|
||||
├─ 4. Redis 锁 (仓库+工作站+出库类型, 防重复集波)
|
||||
│
|
||||
├─ 5. 查询启用波次规则 (按 wavePriority desc)
|
||||
│
|
||||
├─ [分支 A] 一波一单
|
||||
│ └─ assignSingleShipmentWaves
|
||||
@@ -139,22 +167,22 @@ POST /findBestMatchedRule
|
||||
│
|
||||
└─ [分支 C] 空格口首次分配 (逐规则按优先级循环)
|
||||
│
|
||||
├─ 5. 查可用格口 (三层级):
|
||||
├─ 6. 查可用格口 (三层级):
|
||||
│ ├─ sameCurRuleCells — currentWaveRule 同当前规则
|
||||
│ ├─ ruleCells — waveRule 配置匹配当前规则
|
||||
│ └─ emptyCells — 完全空闲格口
|
||||
│
|
||||
├─ 6. 按规则查询出库单:
|
||||
├─ 7. 按规则查询出库单:
|
||||
│ ├─ 一波一单候选项 (pickType=1 / ticketType 任务 / RT)
|
||||
│ └─ 批量集波候选项 (排除一波一单)
|
||||
│
|
||||
├─ 7. 创建内部波次 (WaveService#createInternalWave)
|
||||
├─ 8. 创建内部波次 (WaveService#createInternalWave)
|
||||
│
|
||||
├─ 8. 格口循环处理:
|
||||
├─ 9. 格口循环处理:
|
||||
│ ├─ 已有波次号 → 补单缺口判断
|
||||
│ └─ 无波次号 → 抢占 Shopee 波次号 (acquireUnusedShopeeWave)
|
||||
│
|
||||
├─ 9. assignToCell:
|
||||
├─ 10. assignToCell:
|
||||
│ ├─ pickCellShipmentIds — 按格口缺口截断候选单
|
||||
│ ├─ ensureCellReadyForWave — 先抢占格口 (USED)
|
||||
│ ├─ bindShipmentShopeeWave — ESS 绑定校验
|
||||
@@ -162,7 +190,7 @@ POST /findBestMatchedRule
|
||||
│ │ └─ 失败 → 写入 kickOutWave, 同波次后续过滤
|
||||
│ └─ addShipmentsToInternalWave → WaveService#run
|
||||
│
|
||||
└─ 10. 成功返回 ResponseMessageFactory.success(),不返回格口分配明细
|
||||
└─ 11. 成功返回 ResponseMessageFactory.success(),不返回格口分配明细
|
||||
```
|
||||
|
||||
---
|
||||
@@ -179,6 +207,19 @@ POST /findBestMatchedRule
|
||||
- 同购买时间按 `orderTime` 越早越优先
|
||||
- 同时间按 `id` 升序兜底
|
||||
|
||||
### V1.4 标准要求与当前实现
|
||||
|
||||
| 标准要求 | 当前实现/待实现 |
|
||||
|----------|-----------------|
|
||||
| 修改历史 V1.4:匹单字段逻辑更新 | 本文按 docx V1.4 同步 `waveType/orderStructure`、`groupKey`、规则字段匹配和新增字段说明 |
|
||||
| `wave_rule` 字段按 WES 小驼峰与 base 字段命名规范维护 | 当前规则域已包含 `waveType`、`wavePriority`、`maxShipments` 及多项规则属性;主数据字段命名以代码和迁移为准 |
|
||||
| 新增/强调 `Max SKU Pieces Per Order` | 标准要求:单订单任一 SKU 件数超过阈值时排除本规则;当前 `WaveRule`/匹单 SQL 未见对应规则字段,待实现 |
|
||||
| 新增/强调 `Mix Mode Max SKU Pieces Filter` | 标准要求:仅 Mix-mode/MSAQ 规则使用,用于排除单 SKU 件数过高的混合订单;当前未见对应匹单实现,待实现 |
|
||||
| 出库单 `orderStructure` 为空时自动分析 | 当前由订单明细分析后写入 `shipment_header.orderStructure`:`SSSQ=1`、`SSAQ=2`、`MSAQ=3` |
|
||||
| 工作站出库类型权限控制 | 标准要求:登录工作站按用户权限下拉可选出库类型;当前服务已做同工作站不同出库类型隔离,用户权限绑定仍为待实现 |
|
||||
| Shopee 波次号获取与上游合波校验 | 当前 `acquireUnusedShopeeWave` 抢占 `shopee_wave` 未使用号段;`requestShopeeWaveBind` 是上游校验预留入口,create_picking_task / RTS-MTO 真实接口契约仍待接入 |
|
||||
| 库存最优分配与库存不足踢单 | 标准要求:效期/FIFO、工作站与库存点位半径优先、同半径低层货位优先;当前集波入口只触发 `WaveService#run`,库存不足踢单回池与上游撤单通知仍需在库存/回池链路接入 |
|
||||
|
||||
### 格口分配优先级
|
||||
|
||||
| 优先级 | 格口类型 | 条件 |
|
||||
@@ -187,6 +228,8 @@ POST /findBestMatchedRule
|
||||
| 2 | `ruleCells` | `currentWaveRule` 为空且 `waveRule` 匹配当前规则 |
|
||||
| 3(兜底) | `emptyCells` | `currentWaveRule` 和 `waveRule` 均为空 |
|
||||
|
||||
> 标准要求:`wcs_sorting_wall_cell.waveRule` 支持分播墙明细界面多选,一个格口可绑定多个 `wave_rule`,多个规则用逗号分隔存储;当前匹配按逗号拆分后判断是否包含当前规则编码。
|
||||
|
||||
### 一波一单处理
|
||||
|
||||
以下单据类型按一波一单处理(每次集波只取 1 单,创建独立内部波次):
|
||||
@@ -198,6 +241,15 @@ POST /findBestMatchedRule
|
||||
| MTO 任务 | `ticketType=5` | 一波一单 |
|
||||
| RT | `ticketType=6` | 不使用 Shopee 波次号 |
|
||||
|
||||
### 订单结构与 Flow Pick
|
||||
|
||||
| 项 | 标准要求 | 当前实现/说明 |
|
||||
|----|----------|---------------|
|
||||
| `waveType/orderStructure` 包含关系 | 按 docx 表:`SSSQ(1)->SSSQ(1)`、`MSSQ(5)->SSSQ(1)`、`SSAQ(4)->SSSQ/SSAQ(1/2)`、`SSSQ(Same SKU same Qty)(2)->MSAQ(3)`、`MSAQ(3)->SSSQ/SSAQ/MSAQ(1/2/3)` | 当前通过 `appendWaveTypeOrderStructureFilter` 固定过滤。`SSSQ(Same SKU same Qty)` 与 `SSSQ` 命名相近,按 docx 待确认 |
|
||||
| `groupKey` | 同一 Shopee 波次只能集相同 `shipment_header.groupKey` 特征值订单 | 当前首次抓单按首个候选单确定 `groupKey`,补单按 `shopee_wave.groupKey` 过滤 |
|
||||
| Flow Pick | 标准定义:SSSQ/MSSQ 为 Flow Pick,RTS/MTO 下发单据也按 Flow Pick 处理 | 当前已有 Flow Pick 换箱换波本地流程与接口占位,真实 ESS/AGV 接口待接入 |
|
||||
| 推拣货任务 | 上游推送 Shopee 波次号,WES 不走取号逻辑;1 拣货任务 / 1 波次 / 1 槽口;不走补单 | 当前普通批量已过滤 `pickType=2`,专用分流入口待恢复 |
|
||||
|
||||
### 字段匹配
|
||||
|
||||
通过数据字典 `WAVE_RULE_FIELD_MATCHING` 配置出库单字段与规则字段的匹配关系:
|
||||
@@ -213,11 +265,17 @@ POST /findBestMatchedRule
|
||||
- **出库单字段**(30+):`shipmentType`、`ticketType`、`pickType`、`sourcePlatform`、`sourceErp`、`route`、`carrierCode`、`shipToCountry`、`userDef1-8` 等
|
||||
- **规则字段**(16):`channelId`、`fulfillmentChainId`、`orderSize`、`skuSizeType`、`categoryLevel1Id`、`shopGroup`、`shopId`、`urgentFlag`、`outerPackaging`、`deliveryRegion`、`fragile`、`liquid`、`highValue`、`battery`、`danger` 等
|
||||
|
||||
补充口径:
|
||||
|
||||
- 标准要求:只对 `wave_rule` 中对应订单类型列标记 `Y` 的字段做匹配;SKU 来源字段需与单据所有明细 SKU 主档字段全部匹配。
|
||||
- 标准要求:`multi_attr_list` 多值字段匹配时按 docx 示例为“规则值全包含单据值”,例如规则 `A,B,C` 可匹配单据 `A,B`,规则 `B,C` 不匹配单据 `A,B`;该包含方向按 docx 待确认。
|
||||
- 当前实现:逗号多值字段目前按任一值命中生成条件,`multi_attr_list` 全包含匹配仍待调整。
|
||||
|
||||
### 并发控制
|
||||
|
||||
Redis 分布式锁,锁 Key:`wave_rule_match:{warehouseCode}:{workstationId}:{shipmentType}`
|
||||
|
||||
同一工作站 + 同一出库类型同时只有一个请求能进入集波流程。
|
||||
同一工作站 + 同一出库类型同时只有一个请求能进入集波流程;同一工作站如果已有其它出库类型作业,入口直接拒绝,避免混做。
|
||||
|
||||
### 异常过滤
|
||||
|
||||
@@ -250,7 +308,7 @@ Redis 分布式锁,锁 Key:`wave_rule_match:{warehouseCode}:{workstationId}:
|
||||
|
||||
| 表名 | 说明 | 关键字段 |
|
||||
|------|------|----------|
|
||||
| `wave_rule` | 波次规则 | `code`, `waveType`, `wavePriority`, `maxShipments`, `status`, `channelId`, `shopId` 等 |
|
||||
| `wave_rule` | 波次规则 | `code`, `waveType`, `wavePriority`, `maxShipments`, `status`, `channelId`, `shopId` 等;V1.4 标准新增 `Max SKU Pieces Per Order`、`Mix Mode Max SKU Pieces Filter` 待实现 |
|
||||
| `shopee_wave` | Shopee 波次号段 | `code`, `waveType`, `warehouseCode`, `pickType`, `groupKey`, `flow_pick`, `status` (100=未使用, 200=使用中, 900=使用完成) |
|
||||
| `shipment_header` | 出库单头 | `shopeeWave`, `kickOutWave`, `ticketType`, `pickType`, `groupKey`, `orderStructure`, `waveId` |
|
||||
| `wcs_sorting_wall_cell` | 分播墙格口 | `waveRule`, `currentWaveRule`, `shopeeWaveCode`, `useStatus` |
|
||||
|
||||
Reference in New Issue
Block a user