fix: keep order declaration schema in unified baseline

This commit is contained in:
2026-09-01 22:30:15 +08:00
parent aa77cece23
commit bc596878d6
2 changed files with 23 additions and 0 deletions
@@ -565,6 +565,7 @@ CREATE TABLE IF NOT EXISTS ord_order (
destination_warehouse_id BIGINT UNSIGNED NULL COMMENT '目的仓逻辑ID',
destination_warehouse_name VARCHAR(128) NOT NULL COMMENT '目的仓名称快照',
expected_ship_date DATE NULL COMMENT '预计发运日期',
expected_arrival_at DATETIME(3) NULL COMMENT '客户申报预计到货时间',
customer_remark VARCHAR(1000) NULL COMMENT '客户可见备注',
pickup_method VARCHAR(24) NULL COMMENT '取货方式',
requested_pickup_at DATETIME(3) NULL COMMENT '客户要求平台上门提货的预约时间',
@@ -574,6 +575,7 @@ CREATE TABLE IF NOT EXISTS ord_order (
receiving_time VARCHAR(128) NULL COMMENT '国内收货仓收货时间快照',
channel_code VARCHAR(64) NULL COMMENT '运输渠道编码',
channel_name VARCHAR(128) NULL COMMENT '下单时运输渠道名称快照;渠道主数据变化不回写',
channel_changed TINYINT(1) NOT NULL DEFAULT 0 COMMENT '订单历史上是否由平台变更过渠道',
carrier_id BIGINT UNSIGNED NULL COMMENT '船司逻辑ID快照',
carrier_name VARCHAR(128) NULL COMMENT '船司名称快照',
tax_mode VARCHAR(24) NULL COMMENT '报关税务方式:BUY_DECLARATION买单、TAX_REFUND退税',
@@ -1733,6 +1735,8 @@ CALL phase1_add_column('ord_order', 'receiving_warehouse_address', "VARCHAR(512)
CALL phase1_add_column('ord_order', 'receiving_time', "VARCHAR(128) NULL COMMENT '国内收货仓收货时间快照'");
CALL phase1_add_column('ord_order', 'channel_code', "VARCHAR(64) NULL COMMENT 'Shipping channel code'");
CALL phase1_add_column('ord_order', 'channel_name', "VARCHAR(128) NULL COMMENT 'Shipping channel snapshot'");
CALL phase1_add_column('ord_order', 'expected_arrival_at', "DATETIME(3) NULL COMMENT '客户申报预计到货时间'");
CALL phase1_add_column('ord_order', 'channel_changed', "TINYINT(1) NOT NULL DEFAULT 0 COMMENT '订单历史上是否由平台变更过渠道'");
CALL phase1_add_column('ord_order', 'tax_mode', "VARCHAR(24) NULL COMMENT 'BUY_DECLARATION or TAX_REFUND'");
CALL phase1_add_column('ord_order', 'container_mode', "VARCHAR(24) NULL COMMENT 'FULL_CONTAINER or LCL'");
CALL phase1_add_column('ord_order', 'customs_inspection', "TINYINT(1) NULL COMMENT 'Whether customs inspection is required'");
@@ -4320,6 +4324,8 @@ CALL unified_assert_column('baiyue_order', 'ord_order', 'carrier_name');
CALL unified_assert_column('baiyue_order', 'ord_order', 'pricing_tax_mode');
CALL unified_assert_column('baiyue_order', 'ord_order', 'inbound_code');
CALL unified_assert_column('baiyue_order', 'ord_order', 'fulfillment_type');
CALL unified_assert_column('baiyue_order', 'ord_order', 'expected_arrival_at');
CALL unified_assert_column('baiyue_order', 'ord_order', 'channel_changed');
CALL unified_assert_column('baiyue_order', 'ord_order_cargo', 'wooden_product');
CALL unified_assert_column('baiyue_firstleg', 'fl_inbound_pallet_allocation', 'warehouse_resource_tenant_id');
CALL unified_assert_column('baiyue_firstleg', 'fl_inbound_order', 'pricing_tax_mode');
@@ -14392,6 +14398,7 @@ CALL queue_column_comment('baiyue_order', 'ord_order', 'carrier_id', '船司逻
CALL queue_column_comment('baiyue_order', 'ord_order', 'carrier_name', '船司名称快照');
CALL queue_column_comment('baiyue_order', 'ord_order', 'channel_code', '运输渠道编码');
CALL queue_column_comment('baiyue_order', 'ord_order', 'channel_name', '下单时运输渠道名称快照;渠道主数据变化不回写');
CALL queue_column_comment('baiyue_order', 'ord_order', 'channel_changed', '订单历史上是否由平台变更过渠道');
CALL queue_column_comment('baiyue_order', 'ord_order', 'completed_at', '完成时间');
CALL queue_column_comment('baiyue_order', 'ord_order', 'container_mode', '装运方式:FULL_CONTAINER整柜、LCL散货拼箱');
CALL queue_column_comment('baiyue_order', 'ord_order', 'created_at', '创建时间');
@@ -14406,6 +14413,7 @@ CALL queue_column_comment('baiyue_order', 'ord_order', 'destination_type', '目
CALL queue_column_comment('baiyue_order', 'ord_order', 'destination_warehouse_id', '目的仓逻辑ID');
CALL queue_column_comment('baiyue_order', 'ord_order', 'destination_warehouse_name', '目的仓名称快照');
CALL queue_column_comment('baiyue_order', 'ord_order', 'expected_ship_date', '预计发运日期');
CALL queue_column_comment('baiyue_order', 'ord_order', 'expected_arrival_at', '客户申报预计到货时间');
CALL queue_column_comment('baiyue_order', 'ord_order', 'express_company', '履约快递公司名称快照');
CALL queue_column_comment('baiyue_order', 'ord_order', 'express_tracking_no', '履约快递单号');
CALL queue_column_comment('baiyue_order', 'ord_order', 'id', '订单ID(雪花ID)');
@@ -8,6 +8,8 @@ import org.springframework.web.bind.annotation.PutMapping;
import org.yaml.snakeyaml.Yaml;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@@ -47,6 +49,19 @@ class OrderDeclarationUpdateContractTest {
assertThat(source).contains("ORDER_DECLARATION_UPDATED_V1", "platform:order:declaration:edit", "A0409");
}
@Test
void unifiedDatabaseEntryContainsDeclarationHeaderColumns() throws Exception {
Path direct = Path.of("deploy", "sql", "头程数据库统一增量-MySQL8.sql");
Path unified = Files.exists(direct) ? direct : Path.of("..", "deploy", "sql", "头程数据库统一增量-MySQL8.sql");
String source = Files.readString(unified, StandardCharsets.UTF_8);
assertThat(source)
.contains("expected_arrival_at DATETIME(3) NULL COMMENT '客户申报预计到货时间'")
.contains("channel_changed TINYINT(1) NOT NULL DEFAULT 0 COMMENT '订单历史上是否由平台变更过渠道'")
.contains("CALL unified_assert_column('baiyue_order', 'ord_order', 'expected_arrival_at')")
.contains("CALL unified_assert_column('baiyue_order', 'ord_order', 'channel_changed')");
}
@SuppressWarnings("unchecked")
private Map<String, Object> map(Object value) { return (Map<String, Object>) value; }
}