SET NAMES utf8mb4; USE baiyue_firstleg; /* 装柜证据和派送完成;不设置证据完整度门禁,允许后续覆盖编辑。 */ CREATE TABLE IF NOT EXISTS fl_loading_evidence ( id BIGINT UNSIGNED NOT NULL, tenant_id BIGINT UNSIGNED NOT NULL, inbound_id BIGINT UNSIGNED NOT NULL, evidence_type VARCHAR(32) NOT NULL COMMENT 'PHOTO_STEP_1..4/SEAL', file_id BIGINT UNSIGNED NULL COMMENT 'File 服务逻辑文件ID', file_name VARCHAR(255) NULL, seal_no VARCHAR(64) NULL, remark VARCHAR(1000) NULL, version INT NOT NULL DEFAULT 0, created_by BIGINT UNSIGNED NOT NULL, created_by_name VARCHAR(64) NULL, updated_by BIGINT UNSIGNED NOT NULL, updated_by_name VARCHAR(64) 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), PRIMARY KEY (id), UNIQUE KEY uk_loading_evidence_type (tenant_id, inbound_id, evidence_type), KEY idx_loading_evidence_time (tenant_id, inbound_id, updated_at), CONSTRAINT fk_loading_evidence_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id) ) ENGINE=InnoDB COMMENT='订单装柜四步照片和铅封证据'; CREATE TABLE IF NOT EXISTS fl_loading_operation ( id BIGINT UNSIGNED NOT NULL, tenant_id BIGINT UNSIGNED NOT NULL, inbound_id BIGINT UNSIGNED NOT NULL, operator_id BIGINT UNSIGNED NOT NULL, operation VARCHAR(48) NOT NULL, idempotency_key VARCHAR(128) NOT NULL, request_hash CHAR(64) NOT NULL, status VARCHAR(16) NOT NULL DEFAULT 'PROCESSING', result_json JSON NULL, created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), completed_at DATETIME(3) NULL, PRIMARY KEY (id), UNIQUE KEY uk_loading_operation (tenant_id, inbound_id, operator_id, operation, idempotency_key), KEY idx_loading_operation_time (tenant_id, inbound_id, created_at), CONSTRAINT fk_loading_operation_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id) ) ENGINE=InnoDB COMMENT='装柜与派送写操作幂等记录'; CREATE TABLE IF NOT EXISTS fl_loading_pick_task ( id BIGINT UNSIGNED NOT NULL, tenant_id BIGINT UNSIGNED NOT NULL, inbound_id BIGINT UNSIGNED NOT NULL, status VARCHAR(24) NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING/IN_PROGRESS/COMPLETED', version INT NOT NULL DEFAULT 0, expected_count INT UNSIGNED NULL, picked_count INT UNSIGNED NULL, remark VARCHAR(1000) NULL, updated_by BIGINT UNSIGNED NOT NULL, updated_by_name VARCHAR(64) 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), PRIMARY KEY (id), UNIQUE KEY uk_loading_pick_tenant_inbound (tenant_id, inbound_id), KEY idx_loading_pick_status (tenant_id, status, updated_at), CONSTRAINT fk_loading_pick_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id) ) ENGINE=InnoDB COMMENT='PDA拣货任务及结果';