diff --git a/deploy/sql/头程数据库统一增量-MySQL8.sql b/deploy/sql/头程数据库统一增量-MySQL8.sql index 495cf4b1f..44e4b4200 100644 --- a/deploy/sql/头程数据库统一增量-MySQL8.sql +++ b/deploy/sql/头程数据库统一增量-MySQL8.sql @@ -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)'); diff --git a/order/src/test/java/com/baiyue/order/controller/OrderDeclarationUpdateContractTest.java b/order/src/test/java/com/baiyue/order/controller/OrderDeclarationUpdateContractTest.java index 49094568d..170c3529a 100644 --- a/order/src/test/java/com/baiyue/order/controller/OrderDeclarationUpdateContractTest.java +++ b/order/src/test/java/com/baiyue/order/controller/OrderDeclarationUpdateContractTest.java @@ -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 map(Object value) { return (Map) value; } }