fix overseas PDA producer fixture selection

This commit is contained in:
2026-09-23 19:48:03 +08:00
parent 9c91bc0faa
commit f3755b1348
5 changed files with 16 additions and 20 deletions
@@ -11,7 +11,7 @@ export function buildPendingActions(task) {
async function request(context, method, path, body, headers = {}) {
try {
const response = await fetch(`${context.options.gateway}${path}`, { method,
headers: { Accept: 'application/json', Authorization: `Bearer ${context.pdaToken && /\/pda-loading\/tasks\/\d+/.test(path) ? context.pdaToken : context.token}`,
headers: { Accept: 'application/json', Authorization: `Bearer ${context.pdaToken && /\/pda-loading\/tasks\/(?:\d+|pending)(?:[/?]|$)/.test(path) ? context.pdaToken : context.token}`,
...(body === undefined ? {} : { 'Content-Type': 'application/json; charset=utf-8' }), ...headers },
body: body === undefined ? undefined : JSON.stringify(body), signal: AbortSignal.timeout(60_000) })
const raw = await response.text(); let payload = null
@@ -55,25 +55,8 @@ export async function run(context) {
const pendingResponse = await request(context, 'GET',
`/api/platform/v1/first-leg/pda-loading/tasks/pending?warehouseId=${encodeURIComponent(warehouseId)}&keyword=${encodeURIComponent(containerNo)}`)
const pendingTasks = context.apiSuccess(MODULE, '读取当前操作员 PDA pending 列表', pendingResponse, '', OPTIONS)
const pendingRecords = Array.isArray(pendingTasks) ? pendingTasks
: pendingTasks?.records || pendingTasks?.items || []
let pendingTask = pendingRecords.find((item) => id(item?.taskId || item?.id) === taskId)
if (!pendingTask) {
const currentKeyword = id(taskDetail?.currentContainerNo)
const currentPendingResponse = currentKeyword ? await request(context, 'GET',
`/api/platform/v1/first-leg/pda-loading/tasks/pending?warehouseId=${encodeURIComponent(warehouseId)}&keyword=${encodeURIComponent(currentKeyword)}`) : null
const currentPending = currentPendingResponse
? context.apiSuccess(MODULE, '按任务当前真实柜号回查 PDA pending 列表', currentPendingResponse, '', OPTIONS) : []
const currentRecords = Array.isArray(currentPending) ? currentPending : currentPending?.records || currentPending?.items || []
pendingTask = currentRecords.find((item) => id(item?.taskId || item?.id) === taskId)
}
if (!pendingTask) {
const broadPendingResponse = await request(context, 'GET',
`/api/platform/v1/first-leg/pda-loading/tasks/pending?warehouseId=${encodeURIComponent(warehouseId)}`)
const broadPending = context.apiSuccess(MODULE, '无关键词回查当前操作员 PDA pending 列表', broadPendingResponse, '', OPTIONS)
const broadRecords = Array.isArray(broadPending) ? broadPending : broadPending?.records || broadPending?.items || []
pendingTask = broadRecords.find((item) => id(item?.taskId || item?.id) === taskId)
}
const pendingTask = Array.isArray(pendingTasks)
? pendingTasks.find((item) => id(item?.taskId) === taskId) : null
const unresolvedItems = (taskDetail?.items || []).filter((item) =>
['PENDING', 'PICKING'].includes(item?.itemStatus))
context.assert(MODULE, 'pending 与 detail 使用同一 workflowStatus 和未完成数量事实', pendingResponse,