test(firstleg): align cabinet evidence SQL contracts
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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),
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+6
-7
@@ -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'")
|
||||
|
||||
Reference in New Issue
Block a user