优化
This commit is contained in:
@@ -251,38 +251,45 @@ async function reusablePallets(context, warehouseId) {
|
||||
if (reusablePalletsByWarehouse.has(scopedCacheKey)) return reusablePalletsByWarehouse.get(scopedCacheKey)
|
||||
|
||||
const pallets = []
|
||||
if (allowAnyExistingPallet) {
|
||||
const response = await context.request('GET',
|
||||
`/api/platform/v1/pallets?page=1&size=100&tenantId=0&warehouseId=${encodeURIComponent(warehouseId)}`)
|
||||
const page = context.apiSuccess(MODULE, '查询当前仓库已有可复用托盘', response,
|
||||
`warehouseId=${warehouseId}`, OPTIONS)
|
||||
const candidates = (page?.records || []).filter((item) => asId(item?.warehouseId) === cacheKey
|
||||
&& asId(item?.id) && String(item?.palletCode || '').trim())
|
||||
context.assert(MODULE, '当前仓库至少存在一个可复用托盘', response, candidates.length > 0,
|
||||
`warehouseId=${warehouseId}, matched=${candidates.map((item) => item.palletCode).join('|') || 'missing'}`, OPTIONS)
|
||||
if (candidates.length === 0) return null
|
||||
const selected = candidates.slice(0, 2).map((item) => ({ id: asId(item.id), code: String(item.palletCode) }))
|
||||
reusablePalletsByWarehouse.set(scopedCacheKey, selected)
|
||||
return selected
|
||||
}
|
||||
for (const palletCode of REUSABLE_PALLET_CODES) {
|
||||
const response = await context.request('GET',
|
||||
`/api/platform/v1/pallets?page=1&size=20&tenantId=0&warehouseId=${encodeURIComponent(warehouseId)}&palletCode=${encodeURIComponent(palletCode)}`)
|
||||
const page = context.apiSuccess(MODULE, `查询原有可复用托盘 ${palletCode}`, response,
|
||||
`warehouseId=${warehouseId}`, OPTIONS)
|
||||
const exact = (page?.records || []).find((item) => asId(item?.warehouseId) === cacheKey
|
||||
&& String(item?.palletCode || '') === palletCode && asId(item?.id))
|
||||
context.assert(MODULE, `查询原有称重托盘 ${palletCode}`, response, true,
|
||||
`warehouseId=${warehouseId}, matched=${exact?.palletCode || 'missing'}, fallback=disabled`, OPTIONS)
|
||||
if (!exact) {
|
||||
context.assert(MODULE, '固定称重托盘主数据完整', response, false,
|
||||
`warehouseId=${warehouseId}, missing=${palletCode}`, OPTIONS)
|
||||
return null
|
||||
const missingFixed = []
|
||||
if (!allowAnyExistingPallet) {
|
||||
for (const palletCode of REUSABLE_PALLET_CODES) {
|
||||
const response = await context.request('GET',
|
||||
`/api/platform/v1/pallets?page=1&size=20&tenantId=0&warehouseId=${encodeURIComponent(warehouseId)}&palletCode=${encodeURIComponent(palletCode)}`)
|
||||
const page = context.apiSuccess(MODULE, `查询原有可复用托盘 ${palletCode}`, response,
|
||||
`warehouseId=${warehouseId}`, OPTIONS)
|
||||
const exact = (page?.records || []).find((item) => asId(item?.warehouseId) === cacheKey
|
||||
&& String(item?.palletCode || '') === palletCode && asId(item?.id))
|
||||
context.assert(MODULE, `查询原有称重托盘 ${palletCode}`, response, true,
|
||||
`warehouseId=${warehouseId}, matched=${exact?.palletCode || 'missing'}`, OPTIONS)
|
||||
if (!exact) {
|
||||
missingFixed.push(palletCode)
|
||||
continue
|
||||
}
|
||||
pallets.push({ id: asId(exact.id), code: palletCode })
|
||||
}
|
||||
pallets.push({ id: asId(exact.id), code: palletCode })
|
||||
if (missingFixed.length === 0) {
|
||||
reusablePalletsByWarehouse.set(scopedCacheKey, pallets)
|
||||
return pallets
|
||||
}
|
||||
// 固定称重托盘是环境初始化样本;缺失时降级使用当前仓库已有托盘,测量与计费仍走真实接口。
|
||||
context.addCoverageGap?.(MODULE, 'measurement-pallet-fixture', '固定称重托盘主数据缺失',
|
||||
`warehouseId=${warehouseId}, missing=${missingFixed.join(',')};改用当前仓库已有托盘继续`,
|
||||
'fixture', { blocking: false })
|
||||
}
|
||||
reusablePalletsByWarehouse.set(scopedCacheKey, pallets)
|
||||
return pallets
|
||||
|
||||
const response = await context.request('GET',
|
||||
`/api/platform/v1/pallets?page=1&size=100&tenantId=0&warehouseId=${encodeURIComponent(warehouseId)}`)
|
||||
const page = context.apiSuccess(MODULE, '查询当前仓库已有可复用托盘', response,
|
||||
`warehouseId=${warehouseId}`, OPTIONS)
|
||||
const candidates = (page?.records || []).filter((item) => asId(item?.warehouseId) === cacheKey
|
||||
&& asId(item?.id) && String(item?.palletCode || '').trim())
|
||||
context.assert(MODULE, '当前仓库至少存在一个可复用托盘', response, candidates.length > 0,
|
||||
`warehouseId=${warehouseId}, matched=${candidates.map((item) => item.palletCode).join('|') || 'missing'}`, OPTIONS)
|
||||
if (candidates.length === 0) return null
|
||||
const selected = candidates.slice(0, 2).map((item) => ({ id: asId(item.id), code: String(item.palletCode) }))
|
||||
reusablePalletsByWarehouse.set(scopedCacheKey, selected)
|
||||
return selected
|
||||
}
|
||||
|
||||
function randomlyReusePalletIds(pallets, palletCount, randomValue) {
|
||||
|
||||
Reference in New Issue
Block a user