fix(firstleg): align dropship pallet sealing contract

This commit is contained in:
2026-09-08 22:34:58 +08:00
parent 4bbcda2a75
commit 0b9cab7c1a
3 changed files with 19 additions and 3 deletions
@@ -17632,6 +17632,18 @@ BEGIN
ADD CONSTRAINT chk_dropship_task_cartons
CHECK (allocated_cartons<=counted_cartons AND counted_cartons<=total_cartons);
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
WHERE constraint_schema='baiyue_firstleg' AND table_name='fl_dropship_pallet'
AND constraint_name='chk_dropship_pallet_status') THEN
ALTER TABLE fl_dropship_pallet DROP CHECK chk_dropship_pallet_status;
END IF;
UPDATE fl_dropship_pallet
SET pallet_status='SEALED'
WHERE pallet_status='COMPLETED';
ALTER TABLE fl_dropship_pallet
ADD CONSTRAINT chk_dropship_pallet_status
CHECK (pallet_status IN ('OPEN','SEALED'));
IF EXISTS (SELECT 1 FROM information_schema.columns
WHERE table_schema='baiyue_firstleg' AND table_name='fl_dropship_pallet_carton'
AND column_name='operation_id')
@@ -41,6 +41,9 @@ class DropshipPalletizationSqlContractTest {
assertThat(unified)
.contains("CREATE PROCEDURE converge_loading_assignment_schema()")
.contains("CREATE PROCEDURE converge_dropship_palletization_schema()")
.contains("ALTER TABLE fl_dropship_pallet DROP CHECK chk_dropship_pallet_status")
.contains("ALTER TABLE fl_dropship_pallet DROP CHECK chk_dropship_pallet_status;\n END IF;\n UPDATE fl_dropship_pallet")
.contains("CHECK (pallet_status IN ('OPEN','SEALED'))")
.contains("CHANGE COLUMN operation_id count_operation_id")
.contains("DROP INDEX uk_loading_item_plan_detail")
.contains("ADD UNIQUE KEY uk_loading_item_plan_assignment (loading_plan_id,active_assignment_key)");
@@ -169,11 +169,12 @@ async function completeDropshipPalletization(context, { inboundId, inboundCode,
const counted = context.apiSuccess(MODULE, `清点第${index + 1}箱并冻结实收SKU数`, countResponse,
`boxCode=${boxCode}`, OPTIONS)
context.assert(MODULE, `第${index + 1}箱清点结果与冻结箱唛一致`, countResponse,
asId(counted?.carton?.cartonId) === asId(resolved?.cartonId)
counted?.carton?.boxCode === resolved?.boxCode
&& Number(counted?.carton?.expectedSkuQuantity) === Number(resolved?.expectedSkuQuantity)
&& Number(counted?.carton?.actualSkuQuantity) === Number(resolved?.expectedSkuQuantity)
&& counted?.carton?.discrepancyStatus === 'MATCHED',
&& counted?.carton?.discrepancyStatus === 'MATCH',
`cartonId=${asId(counted?.carton?.cartonId) || 'missing'}, discrepancy=${counted?.carton?.discrepancyStatus ?? 'missing'}`, OPTIONS)
if (asId(counted?.carton?.cartonId) === asId(resolved?.cartonId)) countedCartons += 1
if (counted?.carton?.boxCode === resolved?.boxCode) countedCartons += 1
if (index === 0) {
context.assert(MODULE, '先扫箱模式将已清点箱暂存为待组托', countResponse,