fix(consignment): 匹配弹窗改用寄卖单号,客服界面不再展示内部仓库号
问题:内部寄售库存匹配弹窗显示的是「寄卖单号 INV26091711253394」——候选现货走的 是另一个查询 listActiveConsignmentInventoriesForMatching,它没 join 提报单, sourceSubmissionNo 取不到,前端就回退显示内部仓库号;客服拿这个号去寄卖仓库又搜不到。 - 匹配候选查询补 LEFT JOIN consignment_submissions 带出 source_submission_no; 该查询原本是 SELECT * 且列名无前缀,而 consignment_submissions 同样有 status/game_name/category_id,加 join 会让条件变成 ambiguous column 直接 500, 故列名统一加 ci. 前缀并显式列字段(加静态守卫测试钉住) - 客服界面只展示寄卖单号:匹配弹窗候选卡片、工单寄售标识、工单详情、寄卖仓库列表与详情 全部去掉内部仓库号;手工入库现货写「客服手工入库(无提报单号)」, 历史老单写「老单无提报单号」,不再抛内部编号 - 内部仓库号保留:数据/接口/按它搜索都还在,撤销解绑等链路未动 真实库验证:仓库层候选查询与 checkWorkOrderInventoryMatches 都带出了寄卖单号。临时数据已清理。
This commit is contained in:
@@ -96,10 +96,13 @@ const EVIDENCE_CAPTION_STYLE = { fontSize: 12, color: '#8c8c8c' } as const
|
||||
|
||||
/**
|
||||
* 寄卖单号 = 来源提报单号(卖家提报时生成的提报单号就是唯一寄卖单号)。
|
||||
* 客服手工入库的现货没有来源提报,回退显示内部仓库号,保证客服对单口径一致。
|
||||
*
|
||||
* 对外只展示这个号:内部仓库号 INV… 仍然保留在数据与搜索里(按它搜得到),
|
||||
* 但客服界面上不再出现,避免"一件货两个号"再次把人对晕。
|
||||
* 客服手工入库的现货没有提报单,就明确写出来,不给一串内部编号。
|
||||
*/
|
||||
function resolveConsignmentNo(record: ConsignmentInventory) {
|
||||
return record.sourceSubmissionNo || record.inventoryNo
|
||||
return record.sourceSubmissionNo || '客服手工入库'
|
||||
}
|
||||
|
||||
/** 关联工单状态文案(后端 giftWorkOrderStatus:in_progress / pending_acceptance / accepted 等) */
|
||||
@@ -393,13 +396,6 @@ export default function ConsignmentInventoryPanel() {
|
||||
{resolveConsignmentNo(record)}
|
||||
</Text>
|
||||
</Space>
|
||||
{record.sourceSubmissionNo ? (
|
||||
<div>
|
||||
<Text type="secondary" style={{ fontSize: 11, color: '#bfbfbf' }}>
|
||||
仓库号 {record.inventoryNo}
|
||||
</Text>
|
||||
</div>
|
||||
) : null}
|
||||
<div style={{ marginTop: 2 }}>
|
||||
{record.sourceType === 'worker_portal' ? (
|
||||
<Tag color="purple" style={{ fontSize: 11, padding: '0 4px' }}>
|
||||
@@ -1300,11 +1296,6 @@ export default function ConsignmentInventoryPanel() {
|
||||
</Text>
|
||||
)}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label="仓库号">
|
||||
<Text type="secondary" copyable>
|
||||
{viewingItem.inventoryNo}
|
||||
</Text>
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label="当前状态">
|
||||
{viewingItem.status === 'in_stock' ? (
|
||||
<Tag color="green">在库待匹配</Tag>
|
||||
|
||||
@@ -181,11 +181,13 @@ function getConsignmentFulfillment(row: WorkOrder): ConsignmentFulfillmentInfo |
|
||||
}
|
||||
|
||||
/**
|
||||
* 寄卖单号 = 来源提报单号(提报单号即寄卖单号)。
|
||||
* 历史老单的 consignment 没有 sourceSubmissionNo,回退到内部仓库号 inventoryNo。
|
||||
* 寄卖单号 = 来源提报单号(提报单号即寄卖单号),客服界面只认这一个号。
|
||||
*
|
||||
* 内部仓库号 INV… 仍留在数据里(`info.inventoryNo`,撤销/解绑链路还在用),
|
||||
* 只是不再展示;历史老单没有 sourceSubmissionNo 时明确写出来,不给内部编号。
|
||||
*/
|
||||
function resolveConsignmentNo(info: ConsignmentFulfillmentInfo) {
|
||||
return info.sourceSubmissionNo || info.inventoryNo || ''
|
||||
return info.sourceSubmissionNo || (info.inventoryNo ? '老单无提报单号' : '')
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3025,13 +3027,10 @@ export default function WorkOrdersPanel() {
|
||||
<Tag color="gold">【部分匹配 / 高配充低配】</Tag>
|
||||
)}
|
||||
<Typography.Text style={{ fontSize: 12, fontWeight: 500 }}>
|
||||
寄卖单号 {inv.sourceSubmissionNo || inv.inventoryNo}
|
||||
{inv.sourceSubmissionNo
|
||||
? `寄卖单号 ${inv.sourceSubmissionNo}`
|
||||
: '客服手工入库(无提报单号)'}
|
||||
</Typography.Text>
|
||||
{inv.sourceSubmissionNo ? (
|
||||
<Typography.Text type="secondary" style={{ fontSize: 12 }}>
|
||||
仓库号 {inv.inventoryNo}
|
||||
</Typography.Text>
|
||||
) : null}
|
||||
</Space>
|
||||
|
||||
<div style={{ marginTop: 4 }}>
|
||||
|
||||
Reference in New Issue
Block a user