feat(consignment): 停用客服手动入库,寄卖货源只走平台提报
背景:手动入库是唯一会造出「没有提报单的现货」的入口,这类货没有寄卖单号, 统一状态机/凭证链/搜索/卖家端单号锚定都串不起来,只能在界面回退显示内部仓库号 INV, 正是"一件货两个号"的残留。业务定调:寄卖货源只走「打手平台提报 → 客服审核入库」。 - 前端寄售仓库的「手动入库」入口整块删除(按钮 + 入库弹窗 + 提交逻辑 + 服务函数) - 后端同时挡住,防旧页面缓存或直接调接口绕过: POST /worker-platform/consignment/inventories 返回 409 consignment_manual_inbound_disabled; 死代码一并清掉(服务层原实现、仓库层 createConsignmentInventory) - 提报审核入库路径不受影响,照旧生成内部仓库号 INV 并写 source_submission_id, 即每件货都必然挂着寄卖单号,INV 只作为内部编号存在、界面不展示 真实库验证:接口被拒(409),且「没有提报单的现货行数」前后均为 0。
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
| `632dddc4` | 上一轮:H5 渠道整体下线 + 凭据字段修复 + 状态机封闭(撤销守卫 / 库存绑定唯一性 / 生命周期解绑)+ 押金归属取台账 | 迁移 `079`、`consignment-*` 五个文件、`work-order-*` 三个仓库、两个前端面板 |
|
||||
| `5d11bf20` | 批次 C+D:指派部分成功补偿、凭证核销如实反馈、空规格不放行 + 履约/指派服务端规格复检 | `consignment-fulfillment-service.ts`、`consignment-matching-service.ts`、`consignment-repo.ts`、履约路由、`WorkOrdersPanel.tsx` |
|
||||
| `d6f6219f` | 批次 F1:内部现货履约停在「待加好友」,客服确认后才进赠送冷却 + 备注快捷项 | `work-order-gift-repo.ts`、履约服务、`WorkOrdersPanel.tsx`、`utils/gift-phase.ts` |
|
||||
| 本批提交(批次 M,同一提交内含本文档,故不写自身 hash) | 批次 M:停用客服手动入库(前端入口删除 + 后端 409 守卫),寄卖货源只走平台提报 | `consignment-admin-service.ts`、`consignment-repo.ts`、`ConsignmentInventoryPanel.tsx` |
|
||||
| 本批提交(批次 L,同一提交内含本文档,故不写自身 hash) | 批次 L:匹配弹窗两个动作一律二次确认 + 按钮分区/图标/后果说明,防点错 | `WorkOrdersPanel.tsx` |
|
||||
| 本批提交(批次 K,同一提交内含本文档,故不写自身 hash) | 批次 K:匹配弹窗改用寄卖单号(候选查询补 join),客服界面不再展示内部仓库号 | `consignment-repo.ts`、`WorkOrdersPanel.tsx`、`ConsignmentInventoryPanel.tsx` |
|
||||
| 本批提交(批次 J,同一提交内含本文档,故不写自身 hash) | 批次 J:凭证链可视化(提报凭证 + 赠送凭证),客服审核/仓库面板统一展示 | `consignment-admin-service.ts`、`consignment-repo.ts`、`ConsignmentSubmissionsPanel.tsx`、`ConsignmentInventoryPanel.tsx` |
|
||||
@@ -282,6 +283,28 @@
|
||||
前端在"部分匹配"候选上先 `modal.confirm` 危险确认,再带 `allowPartial: true` 重试,高配充低配的合法玩法保留但不可误触。
|
||||
3. ⏳ 匹配下推 SQL + 批量匹配接口 + 工单列表角标(P2-8)未做:当前仍是"取全量在库 → 内存比对"。
|
||||
|
||||
### 批次 M · 停用客服手动入库(本轮)
|
||||
|
||||
**背景**:手动入库是唯一会造出「没有提报单的现货」的入口,而这类货**没有寄卖单号**,
|
||||
于是全流程(统一状态机、凭证链、搜索、卖家端的单号锚定)都没法用一个号串起来——
|
||||
它只能在界面上回退显示内部仓库号 INV…,正是"一件货两个号"的残留。
|
||||
|
||||
**业务定调**:寄卖货源**只走「打手在平台提报 → 客服审核入库」这一条路**。
|
||||
|
||||
**改法**:
|
||||
|
||||
1. ✅ 前端「寄售仓库」的「手动入库」入口整块删除(按钮 + 入库弹窗 + 提交逻辑 + 服务函数),
|
||||
客服无法再建无提报单的货。
|
||||
2. ✅ 后端同时挡住,避免旧页面缓存或直接调接口绕过:
|
||||
`POST /worker-platform/consignment/inventories` 返回 409 `consignment_manual_inbound_disabled`
|
||||
(保留明确的拒绝而不是静默删除,将来要恢复只需回退这个守卫)。死代码一并清掉:
|
||||
服务层的原实现与仓库层的 `createConsignmentInventory` 都已删除(要恢复从 git 历史取)。
|
||||
3. ✅ 提报审核入库(正常路径)不受影响:它照旧生成内部仓库号 INV… 并写入 `source_submission_id`,
|
||||
即**每件货都必然挂着一个寄卖单号**,INV 只作为内部编号存在、界面不展示。
|
||||
|
||||
**真实库验证**:调用手动入库接口被拒(409 `consignment_manual_inbound_disabled`),
|
||||
且库里「没有提报单的现货行数」前后均为 0(没有偷偷写入)。
|
||||
|
||||
### 批次 L · 匹配弹窗防点错(本轮)
|
||||
|
||||
**问题**:匹配弹窗里「走接单平台指派打手(冻结押金交付)」与「内部现货履约」两个按钮
|
||||
|
||||
Reference in New Issue
Block a user