fix(consignment): 售后立案回落到供货卖家,修内部现货单立不了案
补货款时排查"只认接单人"的地方,发现同类第三处:售后立案的责任人取 work_orders.assigned_worker_id,取不到就报 worker_missing(界面 409「请指定已验收的责任 打手或拼单份额」)。内部现货履约的寄卖单没有接单人,于是这类单子连售后都立不了案; 而货款修好后钱已结算给供货卖家,担责人本来就该是他。 - 抽出共享查询 getConsignmentSupplierByWorkOrderWithClient() (consignment-supplier-repo.ts):工单 material_json.consignment.inventoryId 或库存 bound_work_order_id → 库存 → 提报单,货款结算与售后立案共用同一份口径 - 售后在找不到接单人时回落到供货卖家,并在验收快照里标记 consignmentSupplier 与提报单号留痕 - 加测试钉住:售后必须先认寄卖关系再判定 worker_missing;取卖家的 SQL 只有一处实现 真实库验证(内部现货履约,接单人为空):反查供货卖家 workerId=3 正确; 售后立案成功且责任人 worker_id=3。临时数据残留 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` |
|
||||
| 本批提交(批次 R,同一提交内含本文档,故不写自身 hash) | 批次 R:售后立案回落到供货卖家;抽共享"从工单找供货卖家"查询 | `consignment-supplier-repo.ts`、`after-sales-repo.ts`、`consignment-deposit-repo.ts` |
|
||||
| 本批提交(批次 Q,同一提交内含本文档,故不写自身 hash) | 批次 Q:验收结算补寄卖货款给供货卖家;修指派打手线报酬 100 倍单位错 | `consignment-deposit-repo.ts`、`work-order-settlement-repo.ts`、`consignment-fulfillment-service.ts` |
|
||||
| 本批提交(批次 P,同一提交内含本文档,故不写自身 hash) | 批次 P:确认加好友/上传赠送截图恢复为卖家操作,客服兜底 | `consignment-item-stage.ts`、`consignment-worker-service.ts`、`worker-acceptance-service.ts` |
|
||||
| 本批提交(批次 O,同一提交内含本文档,故不写自身 hash) | 批次 O:文件链接去掉签名与有效期(修客服端凭证裂图),寄卖出参统一归一化 | `file-storage-service.ts`、`routes/files.ts`、`consignment-admin-service.ts` |
|
||||
@@ -287,6 +288,30 @@
|
||||
前端在"部分匹配"候选上先 `modal.confirm` 危险确认,再带 `allowPartial: true` 重试,高配充低配的合法玩法保留但不可误触。
|
||||
3. ⏳ 匹配下推 SQL + 批量匹配接口 + 工单列表角标(P2-8)未做:当前仍是"取全量在库 → 内存比对"。
|
||||
|
||||
### 批次 R · 售后立案也认寄卖关系(本轮)
|
||||
|
||||
补货款时顺手排查"只认接单人"的地方,发现同类第三处:**售后立案**。
|
||||
|
||||
`createAfterSalesCase` 里责任人取 `work_orders.assigned_worker_id`,取不到就
|
||||
`failureReason: 'worker_missing'` → 客服界面上是 409「请指定已验收的责任打手或拼单份额」。
|
||||
内部现货履约的寄卖单**没有接单人**,于是这类单子**连售后都立不了案**;
|
||||
而货款修好后,钱已经结算给供货卖家了,担责的人本来就该是他。
|
||||
|
||||
**改法**:把"从工单反查供货卖家"抽成共享查询
|
||||
`getConsignmentSupplierByWorkOrderWithClient()`(`consignment-supplier-repo.ts`),
|
||||
货款结算与售后立案共用同一份口径(工单 `material_json.consignment.inventoryId`
|
||||
或库存 `bound_work_order_id` → 库存 → 提报单),售后在找不到接单人时回落到供货卖家,
|
||||
并在验收快照里标记 `consignmentSupplier: true` 与提报单号留痕。
|
||||
|
||||
**真实库验证**(内部现货履约,接单人为空):
|
||||
|
||||
| 步骤 | 结果 |
|
||||
| --- | --- |
|
||||
| 从工单反查供货卖家 | `workerId=3`、结算价 12400、提报单号正确 ✅(不是无关的打手 4) |
|
||||
| 售后立案 | ✅ 成功,`case_no=VERIFY-AS-…`,责任人 `worker_id=3`(供货卖家) |
|
||||
|
||||
临时数据已清理(残留 0)。至此"寄卖单没有接单人"这一类坑的三处(货款、售后、卖家按钮)都已收口。
|
||||
|
||||
### 批次 Q · 补上寄卖**货款**结算(本轮)
|
||||
|
||||
**问题(用户对账发现)**:工单 #100171 验收完成时,卖家钱包只有两笔——发布押金 -20 又 +20。
|
||||
|
||||
Reference in New Issue
Block a user