feat(consignment): 寄售仓库在库列表增加通过审核入库时间并在手动匹配中补全时间展示

- 寄售仓库 (ConsignmentInventoryPanel):表格中增加「通过审核入库时间」列并格式化展示,详情弹窗规范化展示入库时间、出库时间与提报时间
- 手动匹配弹窗 (ConsignmentManualMatchModal):候选订单列表展示工单创建时间,顶部横幅与已选概要展示现货入库时间及订单创建时间;从订单匹配现货时展示现货入库时间
- 内部匹配接口与工单拦截:后端 listInventoryMatchableOrders 返回工单创建时间及平台单号;发布拦截弹窗中增加展示现货入库时间
- 验证方式:运行前后端单元测试全部通过,前端 build 校验通过
This commit is contained in:
yml2213
2026-10-08 18:26:53 +08:00
parent 5466783017
commit f5614a1e2b
8 changed files with 162 additions and 8 deletions
@@ -243,6 +243,8 @@ export async function listInventoryMatchableOrders(
orders: Array<{
workOrderId: number
workOrderNo: string
platformOrderId?: string
createdAt?: string
productName: string
status: string
rewardAmountFen: number
@@ -293,6 +295,8 @@ export async function listInventoryMatchableOrders(
return {
workOrderId: Number(order.id),
workOrderNo: order.work_order_no || '',
platformOrderId: order.platform_order_id || '',
createdAt: order.created_at || '',
productName: order.product_name || '',
status: String(order.status || ''),
rewardAmountFen: Number(order.reward_amount || 0),
@@ -103,3 +103,20 @@ test('手动匹配的两个读取接口只读,不改状态', async () => {
assert.ok(routes.includes('listWorkOrderInventoryMatchOptions('))
assert.ok(routes.includes('listInventoryMatchableOrders('))
})
test('库存侧「手动匹配订单」候选列表必须包含创建时间与平台单号', async () => {
const { readFile } = await import('node:fs/promises')
const src = await readFile(
new URL('./consignment-fulfillment-service.ts', import.meta.url),
'utf8',
)
const fnBody = src.slice(src.indexOf('export async function listInventoryMatchableOrders'))
assert.ok(
fnBody.includes('createdAt: order.created_at'),
'listInventoryMatchableOrders 必须透传 order.created_at',
)
assert.ok(
fnBody.includes('platformOrderId: order.platform_order_id'),
'listInventoryMatchableOrders 必须透传 order.platform_order_id',
)
})