289 lines
21 KiB
SQL
289 lines
21 KiB
SQL
SET NAMES utf8mb4;
|
|
USE baiyue_firstleg;
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_container (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '整柜报关聚合ID',
|
|
loading_plan_id BIGINT UNSIGNED NOT NULL COMMENT '已完成装柜计划ID;报关柜级聚合唯一键',
|
|
container_booking_id BIGINT UNSIGNED NOT NULL COMMENT '物理货柜ID',
|
|
status VARCHAR(40) NOT NULL COMMENT '报关状态:WAITING_CUSTOMER_DOCUMENTS待资料、READY_TO_START可开始、DECLARING申报中、COMPLETED已完成',
|
|
started_by BIGINT UNSIGNED NULL COMMENT '开始报关操作人ID',
|
|
started_by_name VARCHAR(64) NULL COMMENT '开始报关操作人名称快照',
|
|
started_at DATETIME(3) NULL COMMENT '开始报关时间',
|
|
completed_by BIGINT UNSIGNED NULL COMMENT '完成报关操作人ID',
|
|
completed_by_name VARCHAR(64) NULL COMMENT '完成报关操作人名称快照',
|
|
completed_at DATETIME(3) NULL COMMENT '报关完成时间',
|
|
broker_submitted_by BIGINT UNSIGNED NULL COMMENT '已将客户确认结果发送给报关行的操作人ID',
|
|
broker_submitted_by_name VARCHAR(64) NULL COMMENT '发送报关行操作人名称快照',
|
|
broker_submitted_at DATETIME(3) 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 '聚合更新时间',
|
|
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
PRIMARY KEY(id),
|
|
UNIQUE KEY uk_customs_container_plan(loading_plan_id),
|
|
UNIQUE KEY uk_customs_container_booking(container_booking_id),
|
|
KEY idx_customs_container_status(status,updated_at),
|
|
CONSTRAINT chk_customs_container_status CHECK(status IN
|
|
('WAITING_CUSTOMER_DOCUMENTS','READY_TO_START','DECLARING','COMPLETED'))
|
|
) ENGINE=InnoDB COMMENT='装柜完成后的整柜出口报关聚合';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_broker_submission (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '首次发送报关行批次ID',
|
|
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
|
|
loading_plan_id BIGINT UNSIGNED NOT NULL COMMENT '装柜计划ID快照',
|
|
batch_no VARCHAR(64) NOT NULL COMMENT '首次发送报关行批次号',
|
|
status VARCHAR(16) NOT NULL COMMENT '发送状态:SENT已发送',
|
|
source_version INT UNSIGNED NOT NULL COMMENT '发送时整柜报关聚合版本',
|
|
source_snapshot_json JSON NOT NULL COMMENT '发送时冻结资料版本与覆盖范围快照',
|
|
sent_by BIGINT UNSIGNED NOT NULL COMMENT '首次发送操作人ID',
|
|
sent_by_name VARCHAR(64) NULL COMMENT '首次发送操作人名称快照',
|
|
sent_at DATETIME(3) NOT NULL COMMENT '首次发送时间',
|
|
version INT UNSIGNED NOT NULL DEFAULT 1 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_customs_broker_submission_container(customs_container_id),
|
|
UNIQUE KEY uk_customs_broker_submission_batch(batch_no),
|
|
KEY idx_customs_broker_submission_plan(loading_plan_id,sent_at),
|
|
CONSTRAINT fk_customs_broker_submission_container FOREIGN KEY(customs_container_id) REFERENCES fl_customs_container(id),
|
|
CONSTRAINT chk_customs_broker_submission_status CHECK(status IN('SENT'))
|
|
) ENGINE=InnoDB COMMENT='冻结退税报关资料首次发送报关行批次事实';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_customer_document (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '客户报送资料ID',
|
|
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户隔离键;只允许关联同客户退税票',
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID',
|
|
file_name VARCHAR(255) NOT NULL COMMENT '文件名称快照',
|
|
file_hash CHAR(64) NOT NULL COMMENT '文件SHA-256摘要',
|
|
content_type VARCHAR(128) NULL COMMENT '文件媒体类型',
|
|
size_bytes BIGINT UNSIGNED NOT NULL COMMENT '文件大小(字节)',
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '资料状态:ACTIVE有效、DELETED已删除',
|
|
uploaded_by BIGINT UNSIGNED NOT NULL COMMENT '上传操作人ID',
|
|
uploaded_at DATETIME(3) NOT NULL COMMENT '上传时间',
|
|
frozen_version INT UNSIGNED NULL COMMENT '开始报关时冻结的资料版本',
|
|
frozen_at DATETIME(3) NULL COMMENT '资料冻结时间',
|
|
deleted_by BIGINT UNSIGNED NULL COMMENT '删除操作人ID',
|
|
deleted_at DATETIME(3) NULL COMMENT '删除时间',
|
|
version INT UNSIGNED NOT NULL DEFAULT 1 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),
|
|
KEY idx_customs_customer_document_container(customs_container_id,status,tenant_id),
|
|
CONSTRAINT fk_customs_customer_document_container FOREIGN KEY(customs_container_id) REFERENCES fl_customs_container(id),
|
|
CONSTRAINT chk_customs_customer_document_status CHECK(status IN('ACTIVE','DELETED')),
|
|
CONSTRAINT chk_customs_customer_document_freeze CHECK((frozen_at IS NULL AND frozen_version IS NULL) OR
|
|
(frozen_at IS NOT NULL AND frozen_version IS NOT NULL))
|
|
) ENGINE=InnoDB COMMENT='客户整份退税报送资料逻辑根';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_customer_document_inbound (
|
|
document_id BIGINT UNSIGNED NOT NULL COMMENT '客户报送资料ID',
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '覆盖入仓单ID',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '覆盖入仓单客户ID',
|
|
order_id BIGINT UNSIGNED NOT NULL COMMENT '覆盖订单ID',
|
|
inbound_code VARCHAR(40) NOT NULL COMMENT '覆盖入仓码快照',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '关联创建时间',
|
|
PRIMARY KEY(document_id,inbound_id),
|
|
KEY idx_customs_document_inbound(inbound_id,tenant_id),
|
|
CONSTRAINT fk_customs_document_inbound_document FOREIGN KEY(document_id) REFERENCES fl_customs_customer_document(id)
|
|
) ENGINE=InnoDB COMMENT='客户报送资料与当前柜退税入仓码多对多关系';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_customer_document_version (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '资料版本记录ID',
|
|
document_id BIGINT UNSIGNED NOT NULL COMMENT '客户报送资料ID',
|
|
document_version INT UNSIGNED NOT NULL COMMENT '资料版本号',
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT '本版本File服务文件ID',
|
|
file_name VARCHAR(255) NOT NULL COMMENT '本版本文件名称快照',
|
|
file_hash CHAR(64) NOT NULL COMMENT '本版本文件SHA-256摘要',
|
|
content_type VARCHAR(128) NULL COMMENT '本版本文件媒体类型',
|
|
size_bytes BIGINT UNSIGNED NOT NULL COMMENT '本版本文件大小(字节)',
|
|
scope_snapshot_json JSON NOT NULL COMMENT '本版本覆盖入仓码范围快照',
|
|
action VARCHAR(24) NOT NULL COMMENT '版本动作:UPLOAD上传、REPLACE替换、SCOPE_CHANGE范围变化、DELETE删除',
|
|
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '版本创建时间',
|
|
PRIMARY KEY(id),
|
|
UNIQUE KEY uk_customs_customer_document_version(document_id,document_version),
|
|
CONSTRAINT fk_customs_customer_document_version FOREIGN KEY(document_id) REFERENCES fl_customs_customer_document(id),
|
|
CONSTRAINT chk_customs_customer_document_version_action CHECK(action IN('UPLOAD','REPLACE','SCOPE_CHANGE','DELETE'))
|
|
) ENGINE=InnoDB COMMENT='客户报送资料文件与覆盖范围不可变版本';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_frozen_document_inbound (
|
|
document_id BIGINT UNSIGNED NOT NULL COMMENT '冻结的客户报送资料ID',
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '冻结覆盖入仓单ID',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '冻结覆盖客户ID',
|
|
order_id BIGINT UNSIGNED NOT NULL COMMENT '冻结覆盖订单ID',
|
|
inbound_code VARCHAR(40) NOT NULL COMMENT '冻结覆盖入仓码快照',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '冻结关联创建时间',
|
|
PRIMARY KEY(document_id,inbound_id),
|
|
CONSTRAINT fk_customs_frozen_document FOREIGN KEY(document_id) REFERENCES fl_customs_customer_document(id)
|
|
) ENGINE=InnoDB COMMENT='开始报关时冻结的客户资料覆盖范围';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_completion_document (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '报关行回执文件ID',
|
|
source_document_id BIGINT UNSIGNED NOT NULL COMMENT '一份冻结客户资料严格对应一份完成文件逻辑根',
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID',
|
|
file_name VARCHAR(255) NOT NULL COMMENT '回执文件名称快照',
|
|
file_hash CHAR(64) NOT NULL COMMENT '完成文件SHA-256摘要',
|
|
content_type VARCHAR(128) NULL COMMENT '完成文件媒体类型',
|
|
size_bytes BIGINT UNSIGNED NOT NULL COMMENT '完成文件大小(字节)',
|
|
uploaded_by BIGINT UNSIGNED NOT NULL COMMENT '上传操作人ID',
|
|
uploaded_by_name VARCHAR(64) NULL COMMENT '上传操作人名称快照',
|
|
uploaded_at DATETIME(3) NOT NULL COMMENT '上传时间',
|
|
version INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '完成文件版本号',
|
|
customer_confirm_status VARCHAR(20) NOT NULL DEFAULT 'PENDING' COMMENT '客户回执确认状态:PENDING/CONFIRMED/REJECTED',
|
|
customer_confirmed_by BIGINT UNSIGNED NULL COMMENT '客户确认人ID',
|
|
customer_confirmed_by_name VARCHAR(64) NULL COMMENT '客户确认人名称快照',
|
|
customer_confirmed_at DATETIME(3) NULL COMMENT '客户确认时间',
|
|
customer_reject_reason VARCHAR(500) 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_customs_completion_source(source_document_id),
|
|
CONSTRAINT fk_customs_completion_source FOREIGN KEY(source_document_id) REFERENCES fl_customs_customer_document(id)
|
|
) ENGINE=InnoDB COMMENT='报关行回执当前版本';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_completion_document_version (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '完成文件版本记录ID',
|
|
completion_document_id BIGINT UNSIGNED NOT NULL COMMENT '报关完成文件ID',
|
|
document_version INT UNSIGNED NOT NULL COMMENT '完成文件版本号',
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT '本版本File服务文件ID',
|
|
file_name VARCHAR(255) NOT NULL COMMENT '本版本文件名称快照',
|
|
file_hash CHAR(64) NOT NULL COMMENT '本版本文件SHA-256摘要',
|
|
content_type VARCHAR(128) NULL COMMENT '本版本文件媒体类型',
|
|
size_bytes BIGINT UNSIGNED 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),
|
|
UNIQUE KEY uk_customs_completion_version(completion_document_id,document_version),
|
|
CONSTRAINT fk_customs_completion_version FOREIGN KEY(completion_document_id) REFERENCES fl_customs_completion_document(id)
|
|
) ENGINE=InnoDB COMMENT='报关完成文件不可变覆盖版本';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_completion_action_history (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '客户回执动作历史ID',
|
|
completion_document_id BIGINT UNSIGNED NOT NULL COMMENT '报关行回执当前版本逻辑根ID',
|
|
receipt_version INT UNSIGNED NOT NULL COMMENT '动作对应的回执文件版本',
|
|
action VARCHAR(16) NOT NULL COMMENT '客户动作:CONFIRM确认、REJECT打回',
|
|
reason VARCHAR(500) 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_customs_completion_action_history(completion_document_id,receipt_version,created_at,id),
|
|
CONSTRAINT fk_customs_completion_action_history_document FOREIGN KEY(completion_document_id) REFERENCES fl_customs_completion_document(id),
|
|
CONSTRAINT chk_customs_completion_action_history_action CHECK(action IN('CONFIRM','REJECT'))
|
|
) ENGINE=InnoDB COMMENT='客户报关行回执确认与打回不可变历史';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_final_document (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '真实报关完税文件ID',
|
|
source_document_id BIGINT UNSIGNED NOT NULL COMMENT '对应冻结客户资料ID',
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID',
|
|
file_name VARCHAR(255) NOT NULL COMMENT '真实报关完税文件名称快照',
|
|
file_hash CHAR(64) NOT NULL COMMENT '真实报关完税文件SHA-256摘要',
|
|
content_type VARCHAR(128) NULL COMMENT '真实报关完税文件媒体类型',
|
|
size_bytes BIGINT UNSIGNED NOT NULL COMMENT '真实报关完税文件大小(字节)',
|
|
uploaded_by BIGINT UNSIGNED NOT NULL COMMENT '上传操作人ID',
|
|
uploaded_by_name VARCHAR(64) NULL COMMENT '上传操作人名称快照',
|
|
uploaded_at DATETIME(3) NOT NULL COMMENT '上传时间',
|
|
version INT UNSIGNED NOT NULL DEFAULT 1 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_customs_final_source(source_document_id),
|
|
CONSTRAINT fk_customs_final_source FOREIGN KEY(source_document_id) REFERENCES fl_customs_customer_document(id)
|
|
) ENGINE=InnoDB COMMENT='真实报关完税文件当前版本';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_container_history (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '报关历史记录ID',
|
|
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
|
|
action VARCHAR(40) NOT NULL COMMENT '报关操作类型',
|
|
from_status VARCHAR(40) NULL COMMENT '变更前报关状态',
|
|
to_status VARCHAR(40) NULL COMMENT '变更后报关状态',
|
|
remark VARCHAR(500) 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_customs_container_history(customs_container_id,created_at,id),
|
|
CONSTRAINT fk_customs_container_history FOREIGN KEY(customs_container_id) REFERENCES fl_customs_container(id)
|
|
) ENGINE=InnoDB COMMENT='整柜报关状态与系统触发历史';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_command (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '报关幂等命令ID',
|
|
actor_id BIGINT UNSIGNED NOT NULL COMMENT '命令操作人ID',
|
|
action VARCHAR(80) NOT NULL COMMENT '命令动作类型',
|
|
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端幂等键',
|
|
request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要',
|
|
status VARCHAR(16) NOT NULL COMMENT '命令状态:PROCESSING处理中、SUCCESS成功',
|
|
result_id BIGINT UNSIGNED NULL COMMENT '命令结果业务记录ID',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '命令创建时间',
|
|
completed_at DATETIME(3) NULL COMMENT '命令完成时间',
|
|
PRIMARY KEY(id),
|
|
UNIQUE KEY uk_customs_command(actor_id,action,idempotency_key),
|
|
CONSTRAINT chk_customs_command_status CHECK(status IN('PROCESSING','SUCCESS'))
|
|
) ENGINE=InnoDB COMMENT='整柜报关写命令幂等事实';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_declaration_batch (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '正式申报批次ID',
|
|
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
|
|
loading_plan_id BIGINT UNSIGNED NOT NULL COMMENT '装柜计划ID快照',
|
|
batch_no VARCHAR(64) NULL COMMENT '平台正式申报批次号',
|
|
status VARCHAR(32) NOT NULL COMMENT '批次状态:READY/SUBMITTED/ACKNOWLEDGED/RESULT_PENDING/CLOSED/CANCELLED',
|
|
source_version INT UNSIGNED NOT NULL COMMENT '创建时整柜报关聚合版本',
|
|
source_snapshot_json JSON NOT NULL COMMENT '提交时资料、回执和确认版本快照',
|
|
customs_entry_no VARCHAR(64) NULL COMMENT '报关单号',
|
|
submitted_by BIGINT UNSIGNED NULL COMMENT '正式申报提交人',
|
|
submitted_by_name VARCHAR(64) NULL COMMENT '正式申报提交人名称快照',
|
|
submitted_at DATETIME(3) NULL COMMENT '正式申报提交时间',
|
|
acknowledged_by BIGINT UNSIGNED NULL COMMENT '报关行确认受理人',
|
|
acknowledged_by_name VARCHAR(64) NULL COMMENT '报关行确认受理人名称快照',
|
|
acknowledged_at DATETIME(3) NULL COMMENT '报关行确认受理时间',
|
|
remark VARCHAR(500) NULL COMMENT '批次说明',
|
|
version INT UNSIGNED NOT NULL DEFAULT 0 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_customs_declaration_batch_container(customs_container_id, id),
|
|
KEY idx_customs_declaration_batch_plan(loading_plan_id,status,created_at),
|
|
CONSTRAINT fk_customs_declaration_batch_container FOREIGN KEY(customs_container_id) REFERENCES fl_customs_container(id),
|
|
CONSTRAINT chk_customs_declaration_batch_status CHECK(status IN ('READY','SUBMITTED','ACKNOWLEDGED','RESULT_PENDING','CLOSED','CANCELLED'))
|
|
) ENGINE=InnoDB COMMENT='整柜正式申报批次事实';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customs_clearance_result (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '海关结果事实ID',
|
|
declaration_batch_id BIGINT UNSIGNED NOT NULL COMMENT '所属正式申报批次ID',
|
|
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
|
|
result_type VARCHAR(32) NOT NULL COMMENT '结果类型:INSPECTION/SUPPLEMENT_REQUIRED/RELEASED/DETAINED/OTHER',
|
|
result_status VARCHAR(16) NOT NULL DEFAULT 'OPEN' COMMENT '结果状态:OPEN/RESOLVED/CANCELLED',
|
|
customs_entry_no VARCHAR(64) NULL COMMENT '报关单号快照',
|
|
occurred_at DATETIME(3) NOT NULL COMMENT '海关事实发生时间',
|
|
resolution VARCHAR(1000) NULL COMMENT '处理结果或异常说明',
|
|
evidence_file_id BIGINT UNSIGNED NULL COMMENT '结果凭证File文件ID',
|
|
recorded_by BIGINT UNSIGNED NOT NULL COMMENT '平台录入人',
|
|
recorded_by_name VARCHAR(64) NULL COMMENT '平台录入人名称快照',
|
|
recorded_at DATETIME(3) NOT NULL COMMENT '平台录入时间',
|
|
previous_result_id BIGINT UNSIGNED NULL COMMENT '前序结果事实ID',
|
|
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),
|
|
KEY idx_customs_clearance_result_batch(declaration_batch_id,occurred_at,id),
|
|
KEY idx_customs_clearance_result_container(customs_container_id, result_type, result_status),
|
|
CONSTRAINT fk_customs_clearance_result_batch FOREIGN KEY(declaration_batch_id) REFERENCES fl_customs_declaration_batch(id),
|
|
CONSTRAINT chk_customs_clearance_result_type CHECK(result_type IN ('INSPECTION','SUPPLEMENT_REQUIRED','RELEASED','DETAINED','OTHER')),
|
|
CONSTRAINT chk_customs_clearance_result_status CHECK(result_status IN ('OPEN','RESOLVED','CANCELLED'))
|
|
) ENGINE=InnoDB COMMENT='正式申报后的海关结果不可变事实';
|
|
|
|
USE baiyue_iam;
|
|
DELETE rp FROM iam_role_permission rp WHERE rp.permission_id IN(5102171,5102173,5102174,5102175);
|
|
DELETE FROM iam_permission WHERE id IN(5102171,5102173,5102174,5102175)
|
|
AND permission_code IN('platform:firstleg:customs:view','platform:firstleg:customs:review','platform:firstleg:customs:submit','platform:firstleg:customs:receipt');
|
|
INSERT INTO iam_permission(id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,
|
|
route_path,http_method,sort_no,status,built_in,deleted) VALUES
|
|
(5102170,0,'PLATFORM','MENU',5102000,'platform:firstleg:customs:list','整柜报关','/first-leg/customs','GET',100,'ACTIVE',1,0),
|
|
(5102172,0,'PLATFORM','BUTTON',5102170,'platform:firstleg:customs:manage','维护整柜报关',NULL,'POST',20,'ACTIVE',1,0)
|
|
ON DUPLICATE KEY UPDATE permission_code=VALUES(permission_code),permission_name=VALUES(permission_name),
|
|
parent_id=VALUES(parent_id),route_path=VALUES(route_path),http_method=VALUES(http_method),status='ACTIVE',deleted=0;
|
|
INSERT IGNORE INTO iam_role_permission(role_id,permission_id,tenant_id)
|
|
SELECT r.id,p.id,0 FROM iam_role r JOIN iam_permission p ON p.tenant_id=0 AND p.app_code='PLATFORM'
|
|
AND p.permission_code IN('platform:firstleg:customs:list','platform:firstleg:customs:manage')
|
|
WHERE r.tenant_id=0 AND r.role_code IN('PLATFORM_ADMIN','ORDER_OPERATOR');
|