This commit is contained in:
2026-08-06 18:34:52 +08:00
parent d2e3fef8f8
commit 74db8e165d
10 changed files with 717 additions and 43 deletions
@@ -162,6 +162,24 @@ JOIN wh_warehouse warehouse
ON DUPLICATE KEY UPDATE
tenant_id = VALUES(tenant_id);
-- 国内固定作业仓必须启用收货能力,FBA 目的地址仍不得创建作业能力。
INSERT INTO wh_service_capability (
id, tenant_id, warehouse_id, capability_code, capability_name, enabled, cutoff_time,
description, created_by, created_at, updated_by, updated_at, deleted, version
)
VALUES
(193000000000400001,0,193000000000200001,'RECEIVING','头程收货',1,'16:00:00',
'义乌仓头程订单收货能力',NULL,CURRENT_TIMESTAMP(3),NULL,CURRENT_TIMESTAMP(3),0,0),
(193000000000400002,0,193000000000200002,'RECEIVING','头程收货',1,'16:00:00',
'东莞仓头程订单收货能力',NULL,CURRENT_TIMESTAMP(3),NULL,CURRENT_TIMESTAMP(3),0,0)
ON DUPLICATE KEY UPDATE
capability_name = VALUES(capability_name),
enabled = VALUES(enabled),
cutoff_time = VALUES(cutoff_time),
description = VALUES(description),
deleted = 0,
updated_at = CURRENT_TIMESTAMP(3);
DROP TEMPORARY TABLE IF EXISTS tmp_wh_fba_public_master_data;
CREATE TEMPORARY TABLE tmp_wh_fba_public_master_data (
warehouse_id_seed BIGINT UNSIGNED NOT NULL,
@@ -655,6 +673,16 @@ BEGIN
) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '固定平台仓地址父子解析失败';
END IF;
IF (SELECT COUNT(*)
FROM wh_service_capability capability
WHERE capability.tenant_id = 0
AND capability.warehouse_id IN (193000000000200001,193000000000200002)
AND capability.capability_code = 'RECEIVING'
AND capability.enabled = 1
AND capability.deleted = 0) <> 2 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '国内固定作业仓收货能力写入校验失败';
END IF;
END//
DELIMITER ;
CALL verify_wh_fixed_platform_warehouse();
@@ -97,6 +97,21 @@ class WarehouseSchemaContractTest {
.contains("idx_wh_express_tenant_status");
}
@Test
void shouldSeedReceivingCapabilityForDomesticOperatingWarehouses() throws IOException {
String masterData = read("warehouse-public-master-data.sql");
String unified = Files.readString(Path.of("..", "deploy", "sql", "头程数据库统一增量-MySQL8.sql"));
for (String sql : java.util.List.of(masterData, unified)) {
assertThat(sql)
.contains("193000000000200001,'RECEIVING','头程收货',1")
.contains("193000000000200002,'RECEIVING','头程收货',1")
.contains("国内固定作业仓收货能力写入校验失败")
.contains("warehouse.warehouse_type = 'FBA'")
.contains("FBA公共地址不得创建平台作业能力");
}
}
private static String read(String file) throws IOException {
return Files.readString(Path.of("src/main/resources/db", file));
}