修正海外PDA候选验收门禁判断
This commit is contained in:
@@ -96,6 +96,8 @@ test('PDA module covers the container-number receiving contract and excludes out
|
|||||||
assert.match(source, /item\?\.shippingReady === false/)
|
assert.match(source, /item\?\.shippingReady === false/)
|
||||||
assert.match(source, /!expectedSet\.has\(id\(item\?\.containerNo\)\)/)
|
assert.match(source, /!expectedSet\.has\(id\(item\?\.containerNo\)\)/)
|
||||||
assert.match(source, /unexpectedAwaiting=/)
|
assert.match(source, /unexpectedAwaiting=/)
|
||||||
|
assert.match(source, /candidatesByContainer\.get\(containerNo\)\?\.operable === true/)
|
||||||
|
assert.match(source, /candidatesByContainer\.get\(containerNo\)\?\.operable !== true/)
|
||||||
assert.match(source, /missingPickupReady\.length === 0 && unexpectedAwaiting\.length === 0/)
|
assert.match(source, /missingPickupReady\.length === 0 && unexpectedAwaiting\.length === 0/)
|
||||||
assert.doesNotMatch(source, /shippingReady == null|shippingReady !== true/)
|
assert.doesNotMatch(source, /shippingReady == null|shippingReady !== true/)
|
||||||
assert.match(source, /unexpectedHistorical=/)
|
assert.match(source, /unexpectedHistorical=/)
|
||||||
|
|||||||
@@ -321,22 +321,24 @@ async function awaitPickupReadyCandidates(context, token, producers, allProducer
|
|||||||
const known = new Set(allProducers.map((item) => id(item?.containerNo)).filter(nonBlank))
|
const known = new Set(allProducers.map((item) => id(item?.containerNo)).filter(nonBlank))
|
||||||
if (!expected.length) return false
|
if (!expected.length) return false
|
||||||
let response = null
|
let response = null
|
||||||
let seen = new Set()
|
let candidatesByContainer = new Map()
|
||||||
for (let attempt = 1; attempt <= 30; attempt += 1) {
|
for (let attempt = 1; attempt <= 30; attempt += 1) {
|
||||||
response = await context.requestOverseas('GET',
|
response = await context.requestOverseas('GET',
|
||||||
'/api/pda/v1/last-leg/receiving-containers/candidates', undefined, {}, token)
|
'/api/pda/v1/last-leg/receiving-containers/candidates', undefined, {}, token)
|
||||||
const candidateRows = success(response) && Array.isArray(response.body?.data) ? response.body.data : []
|
const candidateRows = success(response) && Array.isArray(response.body?.data) ? response.body.data : []
|
||||||
seen = new Set(candidateRows.map((item) => id(item?.containerNo)).filter(nonBlank))
|
candidatesByContainer = new Map(candidateRows
|
||||||
if (expected.every((containerNo) => seen.has(containerNo))
|
.map((item) => [id(item?.containerNo), item]).filter(([containerNo]) => nonBlank(containerNo)))
|
||||||
&& awaiting.every((containerNo) => !seen.has(containerNo))) break
|
if (expected.every((containerNo) => candidatesByContainer.get(containerNo)?.operable === true)
|
||||||
|
&& awaiting.every((containerNo) => candidatesByContainer.get(containerNo)?.operable !== true)) break
|
||||||
await new Promise((resolve) => setTimeout(resolve, 1000))
|
await new Promise((resolve) => setTimeout(resolve, 1000))
|
||||||
}
|
}
|
||||||
const seenExpected = expected.filter((containerNo) => seen.has(containerNo))
|
const seenExpected = expected.filter((containerNo) => candidatesByContainer.has(containerNo))
|
||||||
const missingPickupReady = expected.filter((containerNo) => !seen.has(containerNo))
|
const missingPickupReady = expected.filter((containerNo) => candidatesByContainer.get(containerNo)?.operable !== true)
|
||||||
const unexpectedAwaiting = awaiting.filter((containerNo) => seen.has(containerNo))
|
const unexpectedAwaiting = awaiting.filter((containerNo) => candidatesByContainer.get(containerNo)?.operable === true)
|
||||||
const unexpectedHistorical = [...seen].filter((containerNo) => !known.has(containerNo))
|
const unexpectedHistorical = [...candidatesByContainer.keys()].filter((containerNo) => !known.has(containerNo))
|
||||||
const targetCorrelated = producers.every((item) => item?.shippingReady === true
|
const targetCorrelated = producers.every((item) => item?.shippingReady === true
|
||||||
&& nonBlank(item?.carrierScheduleQueryId) && seen.has(id(item?.containerNo)))
|
&& nonBlank(item?.carrierScheduleQueryId)
|
||||||
|
&& candidatesByContainer.get(id(item?.containerNo))?.operable === true)
|
||||||
const ready = missingPickupReady.length === 0 && unexpectedAwaiting.length === 0 && targetCorrelated
|
const ready = missingPickupReady.length === 0 && unexpectedAwaiting.length === 0 && targetCorrelated
|
||||||
context.addStep(MODULE, '实际处理柜全部达到PICKUP_READY并进入PDA候选', response, ready,
|
context.addStep(MODULE, '实际处理柜全部达到PICKUP_READY并进入PDA候选', response, ready,
|
||||||
`targetCorrelated=${targetCorrelated}, expected=${expected.join('|')}, awaiting=${awaiting.join('|') || 'none'}, seenExpected=${seenExpected.join('|') || 'none'}, missingPickupReady=${missingPickupReady.join('|') || 'none'}, unexpectedAwaiting=${unexpectedAwaiting.join('|') || 'none'}, unexpectedHistorical=${unexpectedHistorical.join('|') || 'none'}; ${trace(response)}`, OPTIONS)
|
`targetCorrelated=${targetCorrelated}, expected=${expected.join('|')}, awaiting=${awaiting.join('|') || 'none'}, seenExpected=${seenExpected.join('|') || 'none'}, missingPickupReady=${missingPickupReady.join('|') || 'none'}, unexpectedAwaiting=${unexpectedAwaiting.join('|') || 'none'}, unexpectedHistorical=${unexpectedHistorical.join('|') || 'none'}; ${trace(response)}`, OPTIONS)
|
||||||
|
|||||||
Reference in New Issue
Block a user