144 lines
6.7 KiB
SQL
144 lines
6.7 KiB
SQL
SET NAMES utf8mb4;
|
|
USE baiyue_firstleg;
|
|
|
|
-- 船期计划日历首版基线。与 fl_port_schedule(港务船期观测)分离。
|
|
CREATE TABLE fl_sailing_channel (
|
|
id BIGINT NOT NULL,
|
|
channel_code VARCHAR(64) NOT NULL,
|
|
channel_name VARCHAR(128) NOT NULL,
|
|
source_type VARCHAR(24) NOT NULL,
|
|
mapped_channel_code VARCHAR(64) NULL,
|
|
default_departure_port_code VARCHAR(32) NULL,
|
|
default_destination_port_code VARCHAR(32) NULL,
|
|
default_cutoff_days TINYINT NOT NULL DEFAULT 3,
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE',
|
|
remark VARCHAR(1000) NULL,
|
|
created_by BIGINT NOT NULL,
|
|
created_by_name VARCHAR(128) NULL,
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
updated_by BIGINT NOT NULL,
|
|
updated_by_name VARCHAR(128) NULL,
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
version INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_fl_sailing_channel_code (channel_code),
|
|
KEY idx_fl_sailing_channel_status (status)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE fl_sailing_template (
|
|
id BIGINT NOT NULL,
|
|
template_no VARCHAR(64) NOT NULL,
|
|
template_name VARCHAR(128) NOT NULL,
|
|
channel_id BIGINT NOT NULL,
|
|
channel_code_snapshot VARCHAR(64) NOT NULL,
|
|
channel_name_snapshot VARCHAR(128) NOT NULL,
|
|
warehouse_id BIGINT NOT NULL,
|
|
warehouse_name_snapshot VARCHAR(128) NULL,
|
|
departure_port_code VARCHAR(32) NOT NULL,
|
|
destination_port_code VARCHAR(32) NOT NULL,
|
|
weekday TINYINT NOT NULL,
|
|
weekday_mask TINYINT NOT NULL DEFAULT 1,
|
|
etd_local_time TIME NOT NULL,
|
|
cutoff_days TINYINT NOT NULL DEFAULT 3,
|
|
cutoff_local_time TIME NOT NULL DEFAULT '18:00:00',
|
|
valid_from DATE NOT NULL,
|
|
valid_to DATE NULL,
|
|
voyage_rule VARCHAR(64) NULL,
|
|
vessel_name VARCHAR(128) NULL,
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE',
|
|
remark VARCHAR(1000) NULL,
|
|
created_by BIGINT NOT NULL,
|
|
created_by_name VARCHAR(128) NULL,
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
updated_by BIGINT NOT NULL,
|
|
updated_by_name VARCHAR(128) NULL,
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
version INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_fl_sailing_template_no (template_no),
|
|
KEY idx_fl_sailing_template_filter (warehouse_id,channel_id,status,weekday),
|
|
CONSTRAINT ck_fl_sailing_template_weekday CHECK (weekday BETWEEN 1 AND 7),
|
|
CONSTRAINT ck_fl_sailing_template_cutoff_days CHECK (cutoff_days BETWEEN 0 AND 30)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE fl_sailing (
|
|
id BIGINT NOT NULL,
|
|
sailing_no VARCHAR(64) NOT NULL,
|
|
template_id BIGINT NULL,
|
|
channel_id BIGINT NOT NULL,
|
|
channel_code_snapshot VARCHAR(64) NOT NULL,
|
|
channel_name_snapshot VARCHAR(128) NOT NULL,
|
|
warehouse_id BIGINT NOT NULL,
|
|
warehouse_name_snapshot VARCHAR(128) NULL,
|
|
departure_port_code VARCHAR(32) NOT NULL,
|
|
destination_port_code VARCHAR(32) NOT NULL,
|
|
vessel_name VARCHAR(128) NULL,
|
|
voyage_no VARCHAR(64) NULL,
|
|
etd_at DATETIME(3) NOT NULL,
|
|
warehouse_cutoff_at DATETIME(3) NOT NULL,
|
|
eta_at DATETIME(3) NULL,
|
|
status VARCHAR(16) NOT NULL DEFAULT 'OPEN',
|
|
source_type VARCHAR(24) NOT NULL DEFAULT 'MANUAL',
|
|
generated_key VARCHAR(192) NULL,
|
|
planned_capacity_cbm DECIMAL(14,3) NULL,
|
|
remark VARCHAR(1000) NULL,
|
|
created_by BIGINT NOT NULL,
|
|
created_by_name VARCHAR(128) NULL,
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
updated_by BIGINT NOT NULL,
|
|
updated_by_name VARCHAR(128) NULL,
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
version INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_fl_sailing_no (sailing_no),
|
|
UNIQUE KEY uk_fl_sailing_generated_key (generated_key),
|
|
UNIQUE KEY uk_fl_sailing_business (warehouse_id,channel_code_snapshot,departure_port_code,destination_port_code,etd_at,voyage_no),
|
|
KEY idx_fl_sailing_calendar (etd_at,warehouse_id,channel_id,status),
|
|
KEY idx_fl_sailing_route (departure_port_code,destination_port_code),
|
|
CONSTRAINT ck_fl_sailing_status CHECK (status IN ('DRAFT','OPEN','CLOSED','DEPARTED','CANCELLED','COMPLETED'))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE fl_sailing_history (
|
|
id BIGINT NOT NULL,
|
|
sailing_id BIGINT NOT NULL,
|
|
action VARCHAR(32) NOT NULL,
|
|
from_status VARCHAR(16) NULL,
|
|
to_status VARCHAR(16) NULL,
|
|
reason VARCHAR(1000) NULL,
|
|
operator_id BIGINT NULL,
|
|
operator_name VARCHAR(128) NULL,
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
PRIMARY KEY (id),
|
|
KEY idx_fl_sailing_history_sailing (sailing_id,created_at,id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
USE baiyue_iam;
|
|
|
|
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
|
|
(5102206,0,'PLATFORM','MENU',5102000,'platform:firstleg:sailing-calendar:list','船期日历','/sailing-calendar','GET',125,'ACTIVE',1,0),
|
|
(5102207,0,'PLATFORM','BUTTON',5102206,'platform:firstleg:sailing-calendar:create','新增船期','/sailing-calendar','POST',10,'ACTIVE',1,0),
|
|
(5102208,0,'PLATFORM','BUTTON',5102206,'platform:firstleg:sailing-calendar:edit','编辑船期','/sailing-calendar','PUT',20,'ACTIVE',1,0),
|
|
(5102209,0,'PLATFORM','BUTTON',5102206,'platform:firstleg:sailing-template:manage','管理渠道与周模板','/sailing-calendar','POST',30,'ACTIVE',1,0),
|
|
(5102210,0,'PLATFORM','BUTTON',5102206,'platform:firstleg:sailing-booking:link','关联订舱','/sailing-calendar','POST',40,'ACTIVE',1,0),
|
|
(5102211,0,'PLATFORM','BUTTON',5102206,'platform:firstleg:sailing-volume:forecast-manage','维护货量预报','/sailing-calendar','POST',50,'ACTIVE',1,0),
|
|
(5102212,0,'PLATFORM','BUTTON',5102206,'platform:firstleg:sailing-volume:exception-reassign','异常重新安排','/sailing-calendar','POST',60,'ACTIVE',1,0)
|
|
ON DUPLICATE KEY UPDATE
|
|
parent_id=VALUES(parent_id), permission_code=VALUES(permission_code), permission_name=VALUES(permission_name),
|
|
route_path=VALUES(route_path), http_method=VALUES(http_method), sort_no=VALUES(sort_no), status='ACTIVE', built_in=1, 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:sailing-calendar:list',
|
|
'platform:firstleg:sailing-calendar:create',
|
|
'platform:firstleg:sailing-calendar:edit',
|
|
'platform:firstleg:sailing-template:manage',
|
|
'platform:firstleg:sailing-booking:link',
|
|
'platform:firstleg:sailing-volume:forecast-manage',
|
|
'platform:firstleg:sailing-volume:exception-reassign'
|
|
)
|
|
WHERE r.tenant_id=0 AND r.role_code IN ('PLATFORM_ADMIN','ORDER_OPERATOR');
|