优化
This commit is contained in:
@@ -2,38 +2,38 @@ SET NAMES utf8mb4;
|
||||
USE baiyue_firstleg;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
query_no VARCHAR(40) NOT NULL,
|
||||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '当前产品客户ID',
|
||||
ocean_booking_id BIGINT UNSIGNED NOT NULL,
|
||||
container_booking_id BIGINT UNSIGNED NULL,
|
||||
container_scope_id BIGINT UNSIGNED GENERATED ALWAYS AS (COALESCE(container_booking_id,0)) STORED,
|
||||
carrier_code VARCHAR(16) NOT NULL COMMENT 'MATSON/SML/ZIM/COSCO/EMC/HEDE',
|
||||
tracking_type VARCHAR(32) NOT NULL COMMENT 'BOOKING_NO/BILL_OF_LADING/CONTAINER_NO',
|
||||
tracking_no VARCHAR(128) NOT NULL,
|
||||
official_url VARCHAR(500) NOT NULL,
|
||||
access_mode VARCHAR(32) NOT NULL COMMENT 'PUBLIC_FORM/HCAPTCHA/DYNAMIC_IFRAME',
|
||||
status VARCHAR(24) NOT NULL COMMENT 'READY/MANUAL_REQUIRED/SUCCESS',
|
||||
window_started_at DATETIME(3) NOT NULL,
|
||||
attempt_count INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
next_allowed_at DATETIME(3) NOT NULL,
|
||||
last_attempt_at DATETIME(3) NULL,
|
||||
last_success_at DATETIME(3) NULL,
|
||||
source_updated_at DATETIME(3) NULL,
|
||||
expires_at DATETIME(3) NULL,
|
||||
result_port_schedule_id BIGINT UNSIGNED NULL,
|
||||
last_attempt_status VARCHAR(24) NULL,
|
||||
manual_reason VARCHAR(1000) NULL,
|
||||
last_error_code VARCHAR(64) NULL,
|
||||
last_error_message VARCHAR(1000) NULL,
|
||||
remark VARCHAR(1000) NULL,
|
||||
created_by BIGINT UNSIGNED NOT NULL,
|
||||
created_by_name VARCHAR(64) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
updated_by BIGINT UNSIGNED NOT NULL,
|
||||
updated_by_name VARCHAR(64) NULL,
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
version INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '船司官网查询任务ID',
|
||||
query_no VARCHAR(40) NOT NULL COMMENT '船司官网查询任务编号',
|
||||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
ocean_booking_id BIGINT UNSIGNED NOT NULL COMMENT '关联海运订舱ID',
|
||||
container_booking_id BIGINT UNSIGNED NULL COMMENT '指定查询的柜次ID;整票订舱查询时为空',
|
||||
container_scope_id BIGINT UNSIGNED GENERATED ALWAYS AS (COALESCE(container_booking_id,0)) STORED COMMENT '柜次唯一作用域计算值;整票订舱查询固定为0',
|
||||
carrier_code VARCHAR(16) NOT NULL COMMENT '船公司编码:MATSON美森、SML森罗、ZIM以星、COSCO中远海运、EMC长荣、HEDE合德',
|
||||
tracking_type VARCHAR(32) NOT NULL COMMENT '官网跟踪类型:BOOKING_NO订舱号、BILL_OF_LADING提单号、CONTAINER_NO箱号',
|
||||
tracking_no VARCHAR(128) NOT NULL COMMENT '提交至船公司官网的跟踪号码',
|
||||
official_url VARCHAR(500) NOT NULL COMMENT '船公司官网查询入口地址快照',
|
||||
access_mode VARCHAR(32) NOT NULL COMMENT '官网访问方式:PUBLIC_FORM公开表单、HCAPTCHA人机校验、DYNAMIC_IFRAME动态页面',
|
||||
status VARCHAR(24) NOT NULL COMMENT '任务状态:READY可查询、MANUAL_REQUIRED需人工处理、SUCCESS已取得有效结果',
|
||||
window_started_at DATETIME(3) NOT NULL COMMENT '当前三天查询窗口起始时间',
|
||||
attempt_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '当前查询窗口已执行次数;最多3次',
|
||||
next_allowed_at DATETIME(3) NOT NULL COMMENT '频控规则允许的下次查询时间',
|
||||
last_attempt_at DATETIME(3) NULL COMMENT '最近一次查询尝试时间',
|
||||
last_success_at DATETIME(3) NULL COMMENT '最近一次取得有效结果时间',
|
||||
source_updated_at DATETIME(3) NULL COMMENT '船公司官网展示的结果更新时间',
|
||||
expires_at DATETIME(3) NULL COMMENT '当前最近有效结果过期时间;到期后仍保留但标记过期',
|
||||
result_port_schedule_id BIGINT UNSIGNED NULL COMMENT '最近有效结果对应的船期记录ID',
|
||||
last_attempt_status VARCHAR(24) NULL COMMENT '最近查询尝试状态快照',
|
||||
manual_reason VARCHAR(1000) NULL COMMENT '需要人工查询或录入的原因',
|
||||
last_error_code VARCHAR(64) NULL COMMENT '最近查询失败错误码',
|
||||
last_error_message VARCHAR(1000) NULL COMMENT '最近查询失败错误说明',
|
||||
remark VARCHAR(1000) NULL COMMENT '平台内部备注',
|
||||
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID',
|
||||
created_by_name VARCHAR(64) NULL COMMENT '创建操作人姓名快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '任务创建时间',
|
||||
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID',
|
||||
updated_by_name VARCHAR(64) NULL COMMENT '最后修改操作人姓名快照',
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '任务最后更新时间',
|
||||
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_carrier_schedule_query_no (query_no),
|
||||
UNIQUE KEY uk_carrier_schedule_query_scope
|
||||
@@ -57,21 +57,21 @@ CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query (
|
||||
) ENGINE=InnoDB COMMENT='六家船公司官网查询任务与三天窗口频控';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_attempt (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
query_id BIGINT UNSIGNED NOT NULL,
|
||||
window_attempt_no INT UNSIGNED NOT NULL,
|
||||
carrier_code VARCHAR(16) NOT NULL,
|
||||
access_mode VARCHAR(32) NOT NULL,
|
||||
official_url VARCHAR(500) NOT NULL,
|
||||
attempt_status VARCHAR(24) NOT NULL,
|
||||
coverage_gap TINYINT(1) NOT NULL DEFAULT 0,
|
||||
coverage_gap_code VARCHAR(64) NULL,
|
||||
manual_reason VARCHAR(1000) NULL,
|
||||
error_code VARCHAR(64) NULL,
|
||||
error_message VARCHAR(1000) NULL,
|
||||
operator_id BIGINT UNSIGNED NOT NULL,
|
||||
operator_name VARCHAR(64) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '船司官网查询尝试ID',
|
||||
query_id BIGINT UNSIGNED NOT NULL COMMENT '所属船司官网查询任务ID',
|
||||
window_attempt_no INT UNSIGNED NOT NULL COMMENT '当前三天窗口内的尝试序号;取值1至3',
|
||||
carrier_code VARCHAR(16) NOT NULL COMMENT '本次尝试的船公司编码快照',
|
||||
access_mode VARCHAR(32) NOT NULL COMMENT '本次尝试的官网访问方式快照',
|
||||
official_url VARCHAR(500) NOT NULL COMMENT '本次尝试使用的官网地址快照',
|
||||
attempt_status VARCHAR(24) NOT NULL COMMENT '尝试结果:MANUAL_REQUIRED需人工处理、SUCCESS成功、FAILED失败',
|
||||
coverage_gap TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否存在自动化覆盖缺口:0否、1是',
|
||||
coverage_gap_code VARCHAR(64) NULL COMMENT '自动化覆盖缺口编码',
|
||||
manual_reason VARCHAR(1000) NULL COMMENT '转人工处理原因',
|
||||
error_code VARCHAR(64) NULL COMMENT '查询失败错误码',
|
||||
error_message VARCHAR(1000) NULL COMMENT '查询失败错误说明',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '执行本次尝试的操作人ID',
|
||||
operator_name VARCHAR(64) NULL COMMENT '执行操作人姓名快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '尝试记录创建时间',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_carrier_schedule_attempt_query (query_id,created_at,id),
|
||||
CONSTRAINT fk_carrier_schedule_attempt_query FOREIGN KEY (query_id) REFERENCES fl_carrier_schedule_query(id),
|
||||
@@ -81,17 +81,17 @@ CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_attempt (
|
||||
) ENGINE=InnoDB COMMENT='船司官网查询尝试不可变审计';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_history (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
query_id BIGINT UNSIGNED NOT NULL,
|
||||
action VARCHAR(24) NOT NULL,
|
||||
from_version INT UNSIGNED NULL,
|
||||
to_version INT UNSIGNED NOT NULL,
|
||||
reason VARCHAR(1000) NULL,
|
||||
before_snapshot JSON NULL,
|
||||
after_snapshot JSON NOT NULL,
|
||||
operator_id BIGINT UNSIGNED NOT NULL,
|
||||
operator_name VARCHAR(64) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '船司查询任务历史ID',
|
||||
query_id BIGINT UNSIGNED NOT NULL COMMENT '所属船司官网查询任务ID',
|
||||
action VARCHAR(24) NOT NULL COMMENT '历史动作:CREATE创建、ATTEMPT执行查询、MANUAL_RESULT录入人工结果',
|
||||
from_version INT UNSIGNED NULL COMMENT '变更前任务版本;创建时为空',
|
||||
to_version INT UNSIGNED NOT NULL COMMENT '变更后任务版本',
|
||||
reason VARCHAR(1000) NULL COMMENT '操作原因或说明',
|
||||
before_snapshot JSON NULL COMMENT '变更前任务数据快照;创建时为空',
|
||||
after_snapshot JSON NOT NULL COMMENT '变更后任务数据快照',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
|
||||
operator_name VARCHAR(64) NULL COMMENT '操作人姓名快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '历史记录创建时间',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_carrier_schedule_history_query (query_id,created_at,id),
|
||||
CONSTRAINT fk_carrier_schedule_history_query FOREIGN KEY (query_id) REFERENCES fl_carrier_schedule_query(id),
|
||||
@@ -99,16 +99,16 @@ CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_history (
|
||||
) ENGINE=InnoDB COMMENT='船司查询任务不可变历史';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_operation (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
query_id BIGINT UNSIGNED NULL,
|
||||
operator_id BIGINT UNSIGNED NOT NULL,
|
||||
operation VARCHAR(24) 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,
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '船司查询写操作幂等记录ID',
|
||||
query_id BIGINT UNSIGNED NULL COMMENT '关联查询任务ID;创建任务落库前允许为空',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '发起写操作的平台操作人ID',
|
||||
operation VARCHAR(24) NOT NULL COMMENT '幂等写操作类型',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端写操作幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '规范化请求内容SHA-256摘要;用于识别同键不同请求',
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'PROCESSING' COMMENT '处理状态:PROCESSING处理中、SUCCESS成功',
|
||||
result_json JSON NULL COMMENT '成功结果JSON快照;供幂等重放返回',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||||
completed_at DATETIME(3) NULL COMMENT '写操作成功完成时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_carrier_schedule_operation (operator_id,idempotency_key),
|
||||
KEY idx_carrier_schedule_operation_query (query_id,created_at,id),
|
||||
|
||||
Reference in New Issue
Block a user