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:
@@ -43,3 +43,31 @@ test('寄卖货款:接单人就是供货卖家时不重复付款,金额取
|
||||
assert.ok(source.includes('offsetWorkerAfterSalesDebtsWithClient('))
|
||||
assert.ok(source.includes('enqueueDepositUnfreezeWithClient('))
|
||||
})
|
||||
|
||||
test('售后立案:内部现货履约(无接单打手)时要落到供货卖家,否则连案都立不了', async () => {
|
||||
const afterSalesSource = await readFile(
|
||||
new URL('../../repositories/worker-platform/after-sales-repo.ts', import.meta.url),
|
||||
'utf8',
|
||||
)
|
||||
assert.ok(afterSalesSource.includes('getConsignmentSupplierByWorkOrderWithClient('))
|
||||
assert.ok(afterSalesSource.includes('worker_missing'))
|
||||
assert.ok(
|
||||
afterSalesSource.indexOf('getConsignmentSupplierByWorkOrderWithClient(') <
|
||||
afterSalesSource.lastIndexOf("'worker_missing'"),
|
||||
'必须先尝试认寄卖关系,再判定找不到责任人',
|
||||
)
|
||||
})
|
||||
|
||||
test('"从工单找供货卖家"只有一处实现,货款与售后共用', async () => {
|
||||
const supplierRepo = await readFile(
|
||||
new URL('../../repositories/worker-platform/consignment-supplier-repo.ts', import.meta.url),
|
||||
'utf8',
|
||||
)
|
||||
assert.ok(
|
||||
supplierRepo.includes('export async function getConsignmentSupplierByWorkOrderWithClient'),
|
||||
)
|
||||
const depositSource = await readFile(DEPOSIT_REPO, 'utf8')
|
||||
assert.ok(depositSource.includes('getConsignmentSupplierByWorkOrderWithClient('))
|
||||
// 取卖家那段 SQL(含 UNION ALL 兜底)只应存在于共享查询里,别处不要再抄一份
|
||||
assert.equal(depositSource.includes('UNION ALL'), false)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user