fix(loading): remove ISO container validation across PDA fulfillment

This commit is contained in:
2026-10-23 11:12:36 +08:00
parent c38f1758c5
commit 9c19980736
22 changed files with 215 additions and 162 deletions
+2
View File
@@ -451,6 +451,8 @@ plan/item 版本、分配箱数及总数投影全部零漂移。脚本不从当
`phase3-pda-convergence` 同时回查 `/tasks/pending` 与稳定 task detail:两者的 `workflowStatus`、`itemCount`、`pendingItemCount` 必须来自同一任务明细事实。全拣任务必须在两处均为 `AWAITING_REVIEW`,可执行证据 GET,但派生 `actions=[]`,不得重复发送 batch;操作历史必须恰有一次有效 `BATCH`。若 pending 仍按 assignment 返回 `IN_PROGRESS`,该轮以真实 HTTP 失败阻断,不由脚本或前端改写状态。
`phase3-container-loading` 使用非 ISO 柜号 `JZXH10231043` 验证关联与预装确认,PDA 领取前再纠正为本轮 `TEST-…-NOISO` 柜号,继续完成拣货、五类合成装柜证据及装柜完成,保留空号拒绝和作业后禁改校验;不修改既有实际作业单。跨服务接收须按本轮来源柜及最终柜号另行回查,不能仅凭 PDA 完成视为海外消费通过。
部署后需要定向验证该完整链时,模块顺序固定为:
```powershell
@@ -175,7 +175,8 @@ export async function run(context) {
if (!selectedChannel) return
const channelName = selectedChannel.channelName
const primaryRequirement = { containerType: '40HQ', containerKind: 'FCL', capacityCbm: 68, maxWeightKg: 19500 }
const realContainerNo = iso6346ContainerNumber(`${context.marker}-initial`)
// 使用曾在推送 PDA 时被 ISO 规则拒绝的柜号,覆盖关联到确认的真实链路。
const realContainerNo = 'JZXH10231043'
const wrongContainerNo = `TST-${suffix}-02`.slice(0, 64)
const bookingAgent = await resolveOceanBookingAgent(context, MODULE, 'MATSON', OPTIONS)
context.assert(MODULE, '放舱订舱使用真实启用供应商', null,
@@ -638,7 +639,8 @@ export async function run(context) {
`${PDA}/tasks/${taskId}/inventory-snapshot?warehouseId=${encodeURIComponent(warehouseId)}`)
const beforeReplacementSnapshot = context.apiSuccess(MODULE, '换柜号前读取 PDA 稳定库存快照',
beforeReplacementSnapshotResponse, '', OPTIONS)
const replacementContainerNo = iso6346ContainerNumber(`${context.marker}-replacement`)
// 纠错后仍保留非 ISO 格式,确保完成及跨服务事件不会重新加回校验。
const replacementContainerNo = `TEST-${context.marker}-NOISO`.slice(0, 64)
const replacementResponse = await request(context, 'PATCH',
`${FIRST_LEG}/loading-plans/${planId}/transport?warehouseId=${encodeURIComponent(warehouseId)}`, {
containerNo: replacementContainerNo, voyageNo: `V-${suffix}`.slice(0, 64),