diff --git a/deploy/sql/头程数据库统一增量-MySQL8.sql b/deploy/sql/头程数据库统一增量-MySQL8.sql index 926e50709..62c1e574a 100644 --- a/deploy/sql/头程数据库统一增量-MySQL8.sql +++ b/deploy/sql/头程数据库统一增量-MySQL8.sql @@ -7636,29 +7636,29 @@ END$$ DELIMITER ; CREATE TABLE IF NOT EXISTS fl_loading_cabinet_evidence ( - id BIGINT UNSIGNED NOT NULL, - container_booking_id BIGINT UNSIGNED NOT NULL, - source_task_id BIGINT UNSIGNED NOT NULL, - evidence_type VARCHAR(32) NOT NULL, - file_id BIGINT UNSIGNED NOT NULL, - file_name VARCHAR(255) NOT NULL, - seal_no VARCHAR(64) NULL, - remark VARCHAR(1000) NULL, - status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE', - active_flag TINYINT UNSIGNED NULL DEFAULT 1, - operation_key VARCHAR(128) NOT NULL, - request_hash CHAR(64) NOT NULL, - void_reason VARCHAR(500) NULL, - voided_by BIGINT UNSIGNED NULL, - voided_by_name VARCHAR(128) NULL, - voided_at DATETIME(3) NULL, - version INT NOT NULL DEFAULT 0, - created_by BIGINT UNSIGNED NOT NULL, - created_by_name VARCHAR(128) NULL, - updated_by BIGINT UNSIGNED NOT NULL, - updated_by_name VARCHAR(128) NULL, - created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + id BIGINT UNSIGNED NOT NULL COMMENT '柜次证据记录ID', + container_booking_id BIGINT UNSIGNED NOT NULL COMMENT '证据唯一归属柜次ID', + source_task_id BIGINT UNSIGNED NOT NULL COMMENT '上传来源PDA任务ID,仅用于审计', + evidence_type VARCHAR(32) NOT NULL COMMENT '四步照片或带锁码照类型', + file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID', + file_name VARCHAR(255) NOT NULL COMMENT '文件名称快照', + seal_no VARCHAR(64) NULL COMMENT '带锁码照对应锁码', + remark VARCHAR(1000) NULL COMMENT '证据备注', + status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '证据状态:ACTIVE有效、VOID作废', + active_flag TINYINT UNSIGNED NULL DEFAULT 1 COMMENT '有效唯一标识;作废后置NULL', + operation_key VARCHAR(128) NOT NULL COMMENT '任务范围内幂等操作键', + request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要', + void_reason VARCHAR(500) NULL COMMENT '作废原因', + voided_by BIGINT UNSIGNED NULL COMMENT '作废操作人ID', + voided_by_name VARCHAR(128) NULL COMMENT '作废操作人名称快照', + voided_at DATETIME(3) NULL COMMENT '作废时间', + version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本', + created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID', + created_by_name VARCHAR(128) NULL COMMENT '创建操作人名称快照', + updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID', + updated_by_name VARCHAR(128) NULL COMMENT '最后修改操作人名称快照', + created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间', PRIMARY KEY (id), UNIQUE KEY uk_cabinet_evidence_active (container_booking_id,evidence_type,active_flag), UNIQUE KEY uk_cabinet_evidence_operation (source_task_id,operation_key), diff --git a/firstleg/src/main/resources/db/phase3-loading-delivery-schema.sql b/firstleg/src/main/resources/db/phase3-loading-delivery-schema.sql index 7f9f7f4bc..732d9c6de 100644 --- a/firstleg/src/main/resources/db/phase3-loading-delivery-schema.sql +++ b/firstleg/src/main/resources/db/phase3-loading-delivery-schema.sql @@ -2,29 +2,29 @@ SET NAMES utf8mb4; USE baiyue_firstleg; CREATE TABLE IF NOT EXISTS fl_loading_cabinet_evidence ( - id BIGINT UNSIGNED NOT NULL, - container_booking_id BIGINT UNSIGNED NOT NULL, - source_task_id BIGINT UNSIGNED NOT NULL, - evidence_type VARCHAR(32) NOT NULL, - file_id BIGINT UNSIGNED NOT NULL, - file_name VARCHAR(255) NOT NULL, - seal_no VARCHAR(64) NULL, - remark VARCHAR(1000) NULL, - status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE', - active_flag TINYINT UNSIGNED NULL DEFAULT 1, - operation_key VARCHAR(128) NOT NULL, - request_hash CHAR(64) NOT NULL, - void_reason VARCHAR(500) NULL, - voided_by BIGINT UNSIGNED NULL, - voided_by_name VARCHAR(128) NULL, - voided_at DATETIME(3) NULL, - version INT NOT NULL DEFAULT 0, - created_by BIGINT UNSIGNED NOT NULL, - created_by_name VARCHAR(128) NULL, - updated_by BIGINT UNSIGNED NOT NULL, - updated_by_name VARCHAR(128) NULL, - created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + id BIGINT UNSIGNED NOT NULL COMMENT '柜次证据记录ID', + container_booking_id BIGINT UNSIGNED NOT NULL COMMENT '证据唯一归属柜次ID', + source_task_id BIGINT UNSIGNED NOT NULL COMMENT '上传来源PDA任务ID,仅用于审计', + evidence_type VARCHAR(32) NOT NULL COMMENT '四步照片或带锁码照类型', + file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID', + file_name VARCHAR(255) NOT NULL COMMENT '文件名称快照', + seal_no VARCHAR(64) NULL COMMENT '带锁码照对应锁码', + remark VARCHAR(1000) NULL COMMENT '证据备注', + status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '证据状态:ACTIVE有效、VOID作废', + active_flag TINYINT UNSIGNED NULL DEFAULT 1 COMMENT '有效唯一标识;作废后置NULL', + operation_key VARCHAR(128) NOT NULL COMMENT '任务范围内幂等操作键', + request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要', + void_reason VARCHAR(500) NULL COMMENT '作废原因', + voided_by BIGINT UNSIGNED NULL COMMENT '作废操作人ID', + voided_by_name VARCHAR(128) NULL COMMENT '作废操作人名称快照', + voided_at DATETIME(3) NULL COMMENT '作废时间', + version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本', + created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID', + created_by_name VARCHAR(128) NULL COMMENT '创建操作人名称快照', + updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID', + updated_by_name VARCHAR(128) NULL COMMENT '最后修改操作人名称快照', + created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', + updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间', PRIMARY KEY (id), UNIQUE KEY uk_cabinet_evidence_active (container_booking_id,evidence_type,active_flag), UNIQUE KEY uk_cabinet_evidence_operation (source_task_id,operation_key), diff --git a/firstleg/src/test/java/com/baiyue/firstleg/outbound/dispatch/OutboundDispatchReadMapperContractTest.java b/firstleg/src/test/java/com/baiyue/firstleg/outbound/dispatch/OutboundDispatchReadMapperContractTest.java index 60e9e6f43..45547a994 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/outbound/dispatch/OutboundDispatchReadMapperContractTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/outbound/dispatch/OutboundDispatchReadMapperContractTest.java @@ -58,10 +58,9 @@ class OutboundDispatchReadMapperContractTest { assertThat(sql) .contains("plan.id=#{loadingPlanId}", "plan.container_booking_id=#{containerBookingId}") - .contains("item.loading_plan_id=plan.id", "item.deleted=0") - .contains("evidence.inbound_id=item.inbound_id", "evidence.tenant_id=item.account_id") + .contains("evidence.container_booking_id=plan.container_booking_id") .contains("COUNT(DISTINCT CASE", "evidence.evidence_type") - .doesNotContain("WHERE tenant_id=#{tenantId}", "inbound_id=#{inboundId}"); + .doesNotContain("item.loading_plan_id=plan.id", "evidence.inbound_id", "evidence.tenant_id"); } @Test diff --git a/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java b/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java index 2d234398b..526e2cb4c 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/repository/Phase3FinalUnifiedSqlContractTest.java @@ -45,12 +45,11 @@ class Phase3FinalUnifiedSqlContractTest { .contains("trg_inbound_split_detail_before_update") .contains("trg_inbound_split_detail_before_delete") .contains("CHECK (action_type IN ('CLAIM', 'ASSIGN', 'ITEM_CLAIM', 'ITEM_ASSIGN', 'REVIEW', 'BATCH', 'COMPLETE_LOADING'))") - .contains("phase3_loading_evidence_add_column") - .contains("DROP INDEX uk_loading_evidence_type") - .contains("DROP INDEX uk_loading_evidence_seal") - .contains("ADD KEY idx_loading_evidence_type (tenant_id,inbound_id,evidence_type,status)") - .contains("ADD KEY idx_loading_evidence_seal (tenant_id,seal_no,status)") - .contains("column_name IN ('status','void_reason','voided_by','voided_by_name','voided_at')") + .contains("CREATE TABLE IF NOT EXISTS fl_loading_cabinet_evidence") + .contains("UNIQUE KEY uk_cabinet_evidence_active (container_booking_id,evidence_type,active_flag)") + .contains("UNIQUE KEY uk_cabinet_evidence_operation (source_task_id,operation_key)") + .contains("column_name IN ('container_booking_id','source_task_id','active_flag','operation_key','request_hash')") + .doesNotContain("CREATE TABLE IF NOT EXISTS fl_loading_evidence", "phase3_loading_evidence_add_column") .contains("CALL assert_phase3_final_schema()") .contains("trg_port_schedule_history_before_update") .contains("trg_port_schedule_history_before_delete") @@ -154,7 +153,7 @@ class Phase3FinalUnifiedSqlContractTest { .contains("存在缺失中文注释的业务字段") .doesNotContain("CREATE PROCEDURE upgrade_column_comment"); assertThat(count(sql, "CALL queue_table_comment(")).isEqualTo(144); - assertThat(count(sql, "CALL queue_column_comment(")).isGreaterThanOrEqualTo(2394); + assertThat(count(sql, "CALL queue_column_comment(")).isGreaterThanOrEqualTo(2380); assertThat(sql) .contains("CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'supplier_id'") .contains("CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_fee_detail', 'supplier_name'")