diff --git a/scripts/admin-test-env-modules/README.md b/scripts/admin-test-env-modules/README.md index d6e427cc7..695d3ee28 100644 --- a/scripts/admin-test-env-modules/README.md +++ b/scripts/admin-test-env-modules/README.md @@ -121,6 +121,12 @@ node scripts/admin-test-env-acceptance.mjs --gateway --ove node scripts/admin-test-env-acceptance.mjs --modules merchant-qualification-fixture,orders,inbound-measurement,phase3-container-loading,phase3-loading,phase3-container-overview,phase3-pda-convergence,phase3-evidence-gate,phase3-customs,phase3-loading-finalize ``` +整票库位块专项可在只跑 `orders,inbound-measurement` 时追加 +`--verify-pallet-location-guide true`。它在测量提交后核对 +`palletLocationGuide` 计数、每槽 `blockId/slotNo/reservationId/locationCode/slotStatus`、 +称重结果按 `weightResultId` 显式绑定槽位,并真实验证删除图片后原 reservation/location +保留且转为 `RESERVED_EMPTY`。脚本只观测自然出现的共享 A0;不会为制造普通位不足批量停用库位。 + 只验证真实集装箱号晚补门禁时,使用正式可选参数 `LATE_CONTAINER_GATE_ONLY=1` 并仍从总入口执行 `phase3-loading`。该模式使用本轮 marker 独立造数,固定验证无号 push、订舱关联、整份预装确认、PDA claim/batch、无号 complete `A0409`、LOADING 阶段首次补号和补号后 complete 受理;随后允许后台命令停在 `CABINET_EVIDENCE/A0409`,以证明柜号门禁已经消失且下一门禁来自未上传的五类柜级证据。该模式不继续完整报关或 LOADED 链,也不得与完整链同时解释为同一终态验收。 ```powershell diff --git a/scripts/admin-test-env-modules/inbound-measurement-box-code-contract.test.mjs b/scripts/admin-test-env-modules/inbound-measurement-box-code-contract.test.mjs index d89ddff9c..10cd931d5 100644 --- a/scripts/admin-test-env-modules/inbound-measurement-box-code-contract.test.mjs +++ b/scripts/admin-test-env-modules/inbound-measurement-box-code-contract.test.mjs @@ -60,6 +60,16 @@ test('demo package keeps pallet pages bounded and historical snapshots read-only assert.match(measurementTests, /detailUsesStoredPalletSnapshotAfterCandidateBecomesUnavailable/) }) +test('opt-in HTTP acceptance verifies whole-ticket slot identity and delete-to-empty semantics', () => { + assert.match(source, /verifyPalletLocationGuide/) + assert.match(source, /expectedWeightResultIds\.every/) + assert.match(source, /asId\(row\.reservationId\) === asId\(slot\.reservationId\)/) + assert.match(source, /\['RESERVED_EMPTY', 'BOUND', 'TRANSFERRED', 'RELEASED'\]/) + assert.match(source, /deleteSucceeded/) + assert.match(source, /retainedSlot\?\.slotStatus === 'RESERVED_EMPTY'/) + assert.match(source, /不批量停用普通库位制造容量不足/) +}) + test('approval freezes measurement and requires quantity weight and volume conservation', () => { assert.match(source, /审核进入WAIT_SPLIT后箱码尺寸与图片快照不可再覆盖/) assert.match(measurementTests, /approvedMeasurementCannotBeResubmittedOrMutateFrozenTotals/)