fix(acceptance): require FBA pallet label configuration

This commit is contained in:
2026-09-10 21:53:15 +08:00
parent 6fa2260572
commit e531ae9407
2 changed files with 19 additions and 3 deletions
+8 -2
View File
@@ -55,6 +55,12 @@ export function requestedOrderDestinationType(context) {
const value = String(context?.context?.orderDestinationType || 'FBA').trim().toUpperCase()
return ['FBA', 'OVERSEAS', 'PRIVATE'].includes(value) ? value : 'FBA'
}
export function eligibleOrderDestinations(values, destinationType) {
const active = (Array.isArray(values) ? values : []).filter((warehouse) => warehouse?.status === 'ACTIVE')
return destinationType === 'FBA'
? active.filter((warehouse) => String(warehouse?.internalCode || '').trim() !== '')
: active
}
export function approvedInboundReady(orderDetail, taskResponse, tenantId, orderId) {
const summary = orderDetail?.summary
const task = success(taskResponse) ? taskResponse.body?.data : null
@@ -251,13 +257,13 @@ async function loadMasterData(context, merchantToken) {
records(destinationPage).length > 0, `count=${records(destinationPage).length}`)
}
const receivings = records(domesticPage).filter((warehouse) => warehouse?.status === 'ACTIVE')
let destinations = records(destinationPage).filter((warehouse) => warehouse?.status === 'ACTIVE')
let destinations = eligibleOrderDestinations(records(destinationPage), destinationType)
if (Number(destinationPage?.total) > destinations.length) {
const nextResponse = await request(context, 'GET',
`/api/merchant/v1/warehouses?page=2&size=200&status=ACTIVE&warehouseType=${encodeURIComponent(destinationType)}`,
undefined, merchantToken)
const nextPage = context.apiSuccess(MODULE, `Client 查询 ${destinationType} 目的仓第二页`, nextResponse)
destinations = [...destinations, ...records(nextPage).filter((warehouse) => warehouse?.status === 'ACTIVE')]
destinations = [...destinations, ...eligibleOrderDestinations(records(nextPage), destinationType)]
}
if (receivings.length === 0 || (destinationType !== 'PRIVATE' && destinations.length === 0)) {
throw new Error('缺少创建测试订单所需的收货仓或目的仓')