This commit is contained in:
2026-10-20 14:22:53 +08:00
parent 19745e46c1
commit bf2508b6d6
24 changed files with 1222 additions and 88 deletions
@@ -348,16 +348,23 @@ export async function run(context) {
// PICKED_UP; the immutable carrier history therefore contains the eight
// pre-pickup nodes plus EMPTY_RETURNED.
const carrierNodesWithoutInferredPickup = STANDARD_NODES.filter((node) => node !== 'PICKED_UP')
context.assert(MODULE, '拖车业务回写后覆盖十标准实际节点且EMPTY_RETURNED停止', detailResponse,
carrierNodesWithoutInferredPickup.every((node) => actualNodes.has(node)) && finalTask.status === 'STOPPED'
&& finalTask.latestActualNode === 'EMPTY_RETURNED' && finalTask.stopReason === '已还柜'
context.assert(MODULE, '拖车业务回写后覆盖十标准实际节点', detailResponse,
carrierNodesWithoutInferredPickup.every((node) => actualNodes.has(node)),
`actualNodes=${[...actualNodes].join(',')}, missing=${carrierNodesWithoutInferredPickup.filter((node) => !actualNodes.has(node)).join(',')}`,
OPTIONS)
context.assert(MODULE, '还柜终态停止语义与本轮货柜关联', detailResponse,
finalTask.status === 'STOPPED' && finalTask.latestActualNode === 'EMPTY_RETURNED'
&& finalTask.stopReason === '已还柜'
&& id(finalTask.containerBookingId) === id(drayage.containerBookingId),
`actualNodes=${[...actualNodes].join(',')}, status=${finalTask.status}`, OPTIONS)
`status=${finalTask.status}, latest=${finalTask.latestActualNode || 'none'}, `
+ `stopReason=${finalTask.stopReason || 'none'}, taskBooking=${id(finalTask.containerBookingId)}, `
+ `drayageBooking=${id(drayage.containerBookingId)}`, OPTIONS)
const historyResponse = await context.request('GET', `${BASE}/${queryId}/history`)
const history = context.apiSuccess(MODULE, '查询本轮任务不可变历史', historyResponse, `queryId=${queryId}`, OPTIONS)
context.assert(MODULE, '历史包含码头拖车回写节点且结构完整', historyResponse,
Array.isArray(history) && history.every(validHistory)
&& history.filter((item) => item.action === 'MANUAL_NODE').length >= STANDARD_NODES.length - 1,
// 首个标准节点由国内出仓自动写入,PICKED_UP 由码头拖车业务回写,人工补录最多 8 条。
&& history.filter((item) => item.action === 'MANUAL_NODE').length >= STANDARD_NODES.length - 2,
`history=${Array.isArray(history) ? history.length : 'missing'}`, OPTIONS)
}