优化
This commit is contained in:
@@ -214,13 +214,21 @@ export function palletOptionsPath(tenantId, inboundId, keyword = '') {
|
||||
return `/api/platform/v1/first-leg/inbounds/${encodeURIComponent(inboundId)}/weight-pallet-options?${params.toString()}`
|
||||
}
|
||||
|
||||
export function weightPalletOptionRecords(page) {
|
||||
export function normalizeWeightPalletOptionPage(page) {
|
||||
if (!page || Array.isArray(page) || !Array.isArray(page.records)) return null
|
||||
if (!Number.isInteger(Number(page.page)) || Number(page.page) < 1) return null
|
||||
if (!Number.isInteger(Number(page.size)) || Number(page.size) < 1
|
||||
|| Number(page.size) > WEIGHT_PALLET_OPTIONS_PAGE_SIZE) return null
|
||||
if (page.records.length > Number(page.size)) return null
|
||||
return page.records
|
||||
const normalized = Object.fromEntries(['page', 'size', 'total', 'pages']
|
||||
.map((key) => [key, Number(page[key])]))
|
||||
if (!Number.isInteger(normalized.page) || normalized.page < 1) return null
|
||||
if (!Number.isInteger(normalized.size) || normalized.size < 1
|
||||
|| normalized.size > WEIGHT_PALLET_OPTIONS_PAGE_SIZE) return null
|
||||
if (!Number.isInteger(normalized.total) || normalized.total < 0) return null
|
||||
if (!Number.isInteger(normalized.pages) || normalized.pages < 0) return null
|
||||
if (page.records.length > normalized.size) return null
|
||||
return { records: page.records, ...normalized }
|
||||
}
|
||||
|
||||
export function weightPalletOptionRecords(page) {
|
||||
return normalizeWeightPalletOptionPage(page)?.records ?? null
|
||||
}
|
||||
|
||||
async function createUploadedResult(context, target, pallet, image, overrides = {}) {
|
||||
@@ -401,7 +409,12 @@ export async function run(context) {
|
||||
)
|
||||
const palletOptionsPage = context.apiSuccess(MODULE, '分页读取同仓称重托盘候选', palletOptionsResponse,
|
||||
`inboundId=${target.inboundId}`, NEW_CONTRACT_OPTIONS)
|
||||
const palletOptions = weightPalletOptionRecords(palletOptionsPage)
|
||||
const normalizedPalletOptionsPage = normalizeWeightPalletOptionPage(palletOptionsPage)
|
||||
const palletOptions = normalizedPalletOptionsPage?.records ?? null
|
||||
context.assert(MODULE, '托盘候选成功响应为正式分页对象且数字字符串可归一化', palletOptionsResponse,
|
||||
normalizedPalletOptionsPage !== null,
|
||||
`page=${palletOptionsPage?.page ?? 'missing'}, size=${palletOptionsPage?.size ?? 'missing'}, total=${palletOptionsPage?.total ?? 'missing'}, pages=${palletOptionsPage?.pages ?? 'missing'}`,
|
||||
NEW_CONTRACT_OPTIONS)
|
||||
const palletOptionsComplete = Array.isArray(palletOptions) && palletOptions.length > 0
|
||||
&& palletOptions.every(palletSnapshotComplete)
|
||||
context.assert(MODULE, '托盘候选分页受控且包含稳定快照字段', palletOptionsResponse,
|
||||
|
||||
Reference in New Issue
Block a user