-- ===================================================================== -- deploy/integration/postgres-init/02-basicdata-schema.sql -- 联调栈基础数据表:admin-api 只读(`C-10`)。 -- -- 权威口径:表与列直接取自 admin-api 实体 -- com.gzzn.omms.adminapi.domain.secondary.entity.baiscdata / .schedule -- 的 @Table / @Column 注解,不改名、不合并、不按 SIS 标签重排。 -- 基础数据数据集见 docs/requirements.md「查询侧(admin-api)的数据面」。 -- 本 schema 是 admin-api 联调的唯一测试承载;`REF_MASTER` 的物理形态 -- 仍待 `Q22` 定稿,定稿前不以本表冒充。 -- -- 为什么独立 schema 而不是 public: -- public 由应用 Flyway 管辖,docker-entrypoint 先在里面建表会让首次 -- migrate 命中「非空 schema 无 history 表」而失败(baselineOnMigrate=false)。 -- admin-api 侧用 secondary URL 的 currentSchema=basicdata,public 解析表名。 -- -- 执行环境:docker-entrypoint-initdb.d,仅空卷首启时以 msgx_dev 运行; -- admin_reader 角色由 01-admin-reader.sql 先建。 -- ===================================================================== CREATE SCHEMA IF NOT EXISTS basicdata; COMMENT ON SCHEMA basicdata IS '联调栈基础数据(admin-api 实体口径,只读;表列取自 admin-api secondary 实体注解)。'; GRANT USAGE ON SCHEMA basicdata TO admin_reader; ALTER DEFAULT PRIVILEGES FOR ROLE msgx_dev IN SCHEMA basicdata GRANT SELECT ON TABLES TO admin_reader; SET search_path = basicdata; -- ① 国家 SYS_COUNTRY(admin-api SysCountry) CREATE TABLE sys_country ( COUNTRY_ID BIGINT NOT NULL PRIMARY KEY, COUNTRY_CODE VARCHAR(16), COUNTRY_NAME_CHN VARCHAR(64), COUNTRY_NAME_ENG VARCHAR(64), OPERATE SMALLINT ); -- ② 城市 SYS_CITY(SysCity) CREATE TABLE sys_city ( CITY_ID BIGINT NOT NULL PRIMARY KEY, CITY_CODE VARCHAR(16), CITY_ICCDE VARCHAR(16), CITY_NAME_CHN VARCHAR(64), CITY_NAME_ENG VARCHAR(64), COUNTRY_ID BIGINT, MAIN_CITY_TAG NUMERIC(18,0), OPERATE NUMERIC(18,0), TEL_CITY_CODE VARCHAR(16) ); -- ③ 机场集团 SYS_AIRPORTGROUP(SysAirportGroup) CREATE TABLE sys_airportgroup ( AIRPORT_GROUP_ID BIGINT NOT NULL PRIMARY KEY, AIRPORT_GROUP_CODE VARCHAR(16), AIRPORT_GROUP_NAME VARCHAR(64) ); -- ④ 机场 SYS_AIRPORT(SysAirport;haul/operate 为无注解字段,列名即字段名) CREATE TABLE sys_airport ( AIRPORT_ID BIGINT NOT NULL PRIMARY KEY, AIRPORT_CODE VARCHAR(16), AIRPORT_CODE_CAA VARCHAR(16), AIRPORT_CODE_IATA VARCHAR(16), AIRPORT_CODE_ICAO VARCHAR(16), AIRPORT_GROUP_ID BIGINT, AIRPORT_NAME_CHN VARCHAR(64), AIRPORT_NAME_ENG VARCHAR(64), BRIEF_NAME_CHN VARCHAR(64), BRIEF_NAME_CHN_COPY VARCHAR(64), BRIEF_NAME_ENG VARCHAR(64), CITY_ID BIGINT, HAUL VARCHAR(8), HOST_FLAG NUMERIC(18,0), INTERNATIONAL_FLAG NUMERIC(18,0), OPERATE NUMERIC(18,0) ); -- ⑤ 航空集团 SYS_AIRLINEGROUP(SysAirlineGroup) CREATE TABLE sys_airlinegroup ( AIRLINE_GROUP_ID BIGINT NOT NULL PRIMARY KEY, AIRLINE_GROUP_CODE VARCHAR(16), AIRLINE_GROUP_NAME VARCHAR(64), AIRLINE_GROUP_CODE_CAA VARCHAR(16), AIRLINE_GROUP_CODE_IATA VARCHAR(16), AIRLINE_GROUP_CODE_ICAO VARCHAR(16) ); -- ⑥ 航空公司 SYS_AIRLINE(SysAirline;code/namc/name/operate 为无注解字段) CREATE TABLE sys_airline ( AIRLINE_ID BIGINT NOT NULL PRIMARY KEY, AIRLINE_CODE VARCHAR(16), AIRLINE_CODE_CAA VARCHAR(16), AIRLINE_CODE_IATA VARCHAR(16), AIRLINE_CODE_ICAO VARCHAR(16), AIRLINE_GROUP_ID BIGINT, AIRLINE_NAME VARCHAR(64), AIRLINE_NAME_ENG VARCHAR(64), BRIEF_NAME_CHN VARCHAR(64), BRIEF_NAME_ENG VARCHAR(64), CODE VARCHAR(16), COUNTRY_ID BIGINT, HOST_FLAG NUMERIC(18,0), INTERNATIONAL_FLAG NUMERIC(18,0), NAMC VARCHAR(64), NAME VARCHAR(64), OPERATE NUMERIC(18,0), PARENT_AIRLINE_ID BIGINT ); -- ⑦ 机型分组 SYS_AIRCRAFTTYPEGROUP(SysAircrafttypeGroup) CREATE TABLE sys_aircrafttypegroup ( AIRCRAFTTYPEGROUP_ID BIGINT NOT NULL PRIMARY KEY, AIRCRAFTTYPEGROUP_CODE VARCHAR(16), AIRCRAFTTYPEGROUP_NAME VARCHAR(64) ); -- ⑧ 机型 SYS_AIRCRAFTTYPE(SysAircrafttype;chap/operate/transitstoptime 无注解) CREATE TABLE sys_aircrafttype ( AIRCRAFT_TYPE_CODE VARCHAR(16) NOT NULL PRIMARY KEY, AIRCRAFT_HEIGHT NUMERIC(18,4), AIRCRAFT_LENGTH NUMERIC(18,4), AIRCRAFT_TYPE_CODE_CAA VARCHAR(16), AIRCRAFT_TYPE_CODE_IATA VARCHAR(16), AIRCRAFT_TYPE_CODE_ICAO VARCHAR(16), AIRCRAFT_TYPE_NAME VARCHAR(64), AIRCRAFT_WIDTH NUMERIC(18,4), AIRCRAFTTYPEGROUP_ID BIGINT, CHAP VARCHAR(16), MAX_AIRBRIDGES NUMERIC(18,0), MAX_FREIGHT_WEIGHT NUMERIC(18,4), MAX_PASSENGERS NUMERIC(18,0), MAX_TAKEOFF_WEIGHT NUMERIC(18,4), OPERATE NUMERIC(18,0), TRANSITSTOPTIME NUMERIC(18,0) ); -- ⑨ 机号 SYS_AIRCRAFT(SysAircraft;operate/owid 无注解) CREATE TABLE sys_aircraft ( AIRCRAFT_ID BIGINT NOT NULL PRIMARY KEY, AIRCRAFT_NUMBER VARCHAR(32), AIRCRAFT_OWNER_CODE VARCHAR(16), AIRCRAFT_TYPE_CODE VARCHAR(16), AIRLINE_CODE VARCHAR(16), MAX_AIRBRIDGES NUMERIC(18,0), MAX_FREIGHT_WEIGHT NUMERIC(18,4), MAX_PASSENGERS NUMERIC(18,0), MAX_TAKEOFF_WEIGHT NUMERIC(18,4), OPERATE NUMERIC(18,0), OWID NUMERIC(18,0) ); -- ⑩ 航班类型 SYS_FLIGHT_TYPE(SysFlightType;Byte 映射 SMALLINT) CREATE TABLE sys_flight_type ( FLIGHT_TYPE_CODE VARCHAR(8) NOT NULL PRIMARY KEY, FLIGHT_TYPE_CAA_CODE VARCHAR(8), FLIGHT_TYPE_NAME VARCHAR(64), C_TAG VARCHAR(8), VIP_TAG VARCHAR(8), FLIGHT_TYPE_NAME_CN VARCHAR(64), OPERATE SMALLINT ); -- ⑪ 航班外部状态码 SYS_FLIGHT_STATUS(SysFlightStatus) CREATE TABLE sys_flight_status ( STTC VARCHAR(16) NOT NULL PRIMARY KEY, ABNS VARCHAR(64), STDC VARCHAR(64), STTD VARCHAR(8) ); -- ⑫ 航班代理单位 SYS_FLIGHTAGENT(SysFlightAgent) CREATE TABLE sys_flightagent ( FLIGHTAGENT_ID VARCHAR(32) NOT NULL PRIMARY KEY, FLIGHTAGENT_NAME VARCHAR(64), OGID VARCHAR(32) ); -- ⑬ 延误异常定义 FIMS_FLIGHTSTATUS_DEFINITION(FimsFlightStatusDefinition) CREATE TABLE fims_flightstatus_definition ( FLIGHTSTATUSDEF_REC_ID BIGINT NOT NULL PRIMARY KEY, FLIGHT_STATUS VARCHAR(16), FLIGHT_STATUS_TYPE VARCHAR(16), FLIGHT_STATUS_DESC VARCHAR(128), ENABLED_FLAG VARCHAR(16), DCOD VARCHAR(16), DCDN BIGINT, DDES VARCHAR(128), DDSC VARCHAR(128), OPERATE SMALLINT ); -- ⑭ 航站楼 ORMS_TERMINAL(OrmsTerminal;operate 无注解) CREATE TABLE orms_terminal ( TERMINAL_CODE VARCHAR(16) NOT NULL PRIMARY KEY, OPERATE NUMERIC(18,0), TERMINAL_NAME VARCHAR(64) ); -- ⑮ 航站楼区域 ORMS_TERMINALAREA(OrmsTerminalarea) CREATE TABLE orms_terminalarea ( TERMINAL_AREA_CODE VARCHAR(16) NOT NULL PRIMARY KEY, ROUTE_TYPE VARCHAR(8), TERMINAL_AREA_NAME VARCHAR(64), TERMINAL_CODE VARCHAR(16) ); -- ⑯ 机位类型 ORMS_STANDTYPE(OrmsStandType) CREATE TABLE orms_standtype ( STAND_TYPE VARCHAR(32) NOT NULL PRIMARY KEY, STAND_TYPE_DESC VARCHAR(64) ); -- ⑰ 机位 ORMS_STAND(OrmsStand;ddgt/digt/maxflightnum/operate/satc/stml 无注解) CREATE TABLE orms_stand ( STAND_CODE VARCHAR(16) NOT NULL PRIMARY KEY, CURRENT_FLIGHT_ID BIGINT, DDGT VARCHAR(16), DIGT VARCHAR(16), FSTAND_CODE VARCHAR(16), ICON_LENGTH NUMERIC(18,4), ICON_WIDTH NUMERIC(18,4), LSTAND_CODE VARCHAR(16), MAX_PERMIT NUMERIC(18,0), MAXFLIGHTNUM NUMERIC(18,0), OPERATE NUMERIC(18,0), PIER_CODE VARCHAR(16), POS_X NUMERIC(18,4), POS_Y NUMERIC(18,4), RSTAND_CODE VARCHAR(16), SATC VARCHAR(16), STAND_AREA_CODE VARCHAR(16), STAND_LAYOUTED NUMERIC(18,0), STAND_LENGTH NUMERIC(18,4), STAND_NAME VARCHAR(64), STAND_ORDER NUMERIC(18,0), STAND_STATUS NUMERIC(18,0), STAND_TYPE VARCHAR(16), STAND_WIDTH NUMERIC(18,4), STML VARCHAR(16), TERMINAL_AREA_CODE VARCHAR(16) ); -- ⑱ 机位廊桥 ORMS_STAND_AIRBRIDGE(OrmsStandAirbridge + OrmsStandAirbridgePK) CREATE TABLE orms_stand_airbridge ( STAND_CODE VARCHAR(16) NOT NULL, AIRBRIDGE_CODE VARCHAR(16) NOT NULL, PRIMARY KEY (STAND_CODE, AIRBRIDGE_CODE) ); -- ⑲ 登机门 ORMS_GATE(OrmsGate;gtml/operate 无注解) CREATE TABLE orms_gate ( GATE_CODE VARCHAR(16) NOT NULL PRIMARY KEY, ACTION_ORDER NUMERIC(18,0), GATE_CATEGORY VARCHAR(8), GATE_NAME VARCHAR(64), GATE_STATUS NUMERIC(18,0), GATE_TYPE VARCHAR(8), GTML VARCHAR(16), ICON_LENGTH NUMERIC(18,4), ICON_WIDTH NUMERIC(18,4), OPERATE NUMERIC(18,0), PIER_CODE VARCHAR(16), POS_X NUMERIC(18,4), POS_Y NUMERIC(18,4), STAND_LAYOUTED NUMERIC(18,0), TERMINAL_AREA_CODE VARCHAR(16) ); -- ⑳ 行李滑槽 ORMS_CHUT(OrmsChut;bcat/btml/operate 无注解) CREATE TABLE orms_chut ( CHUT_CODE VARCHAR(16) NOT NULL PRIMARY KEY, BCAT VARCHAR(16), BTML VARCHAR(16), CHUT_LENGTH NUMERIC(18,4), CHUT_NAME VARCHAR(64), CHUT_STATUS VARCHAR(8), OPERATE NUMERIC(18,0) ); -- ㉑ 值机柜台 ORMS_CHECKINDESK(OrmsCheckindesk;ccat/ctra/operate 无注解) CREATE TABLE orms_checkindesk ( CHECKINDESK_CODE VARCHAR(16) NOT NULL PRIMARY KEY, CCAT VARCHAR(16), CHECKIN_GROUP_CODE VARCHAR(16), CHECKINDESK_NAME VARCHAR(64), CHECKINDESK_STATUS VARCHAR(8), CHUT_CODE VARCHAR(16), CTRA VARCHAR(8), NEXTCHECKINDESK_CODE VARCHAR(16), OPERATE NUMERIC(18,0), TERMINAL_AREA_CODE VARCHAR(16) ); -- ㉒ 值机岛 ORMS_CHECKIN_GROUP(CheckinGroup) CREATE TABLE orms_checkin_group ( CHECKIN_GROUP_CODE VARCHAR(16) NOT NULL PRIMARY KEY, CHECKIN_GROUP_NAME VARCHAR(64) ); -- ㉓ 行李转盘 ORMS_CAROUSEL(OrmsCarousel;bcls 无注解) CREATE TABLE orms_carousel ( CAROUSEL_CODE VARCHAR(16) NOT NULL PRIMARY KEY, ACTION_ORDER NUMERIC(18,0), BCLS VARCHAR(16), CAROUSEL_NAME VARCHAR(64), CAROUSEL_STATUS VARCHAR(32), ICON_LENGTH NUMERIC(18,4), ICON_WIDTH NUMERIC(18,4), POS_X NUMERIC(18,4), POS_Y NUMERIC(18,4), STAND_LAYOUTED NUMERIC(18,0), TERMINAL_AREA_CODE VARCHAR(16) ); -- ㉔ 季度计划 FIMS_FLIGHTSCHD_SEASON(FimsFlightschdSeason;remarks 无注解) -- 供数方待定(`Q25`),本轮只建空表,不造数。 CREATE TABLE fims_flightschd_season ( SEASONFLIGHT_ID BIGINT NOT NULL PRIMARY KEY, AIRCRAFT_TYPE_CODE VARCHAR(16), AIRLINE_ID BIGINT, ARRI_OR_DEPT VARCHAR(4), ARRIVAL_TIME VARCHAR(8), DEPARTURE_TIME VARCHAR(8), END_AIRPORT VARCHAR(16), END_DATE DATE, FLIGHT_NUMBER VARCHAR(16), FLIGHT_TASK VARCHAR(16), FLIGHT_TYPE_CODE VARCHAR(8), FLYING_DISTANCE NUMERIC(18,4), FLYING_TIME NUMERIC(18,4), INTERNATIONAL_CODE VARCHAR(8), OPERATION_DAYS VARCHAR(32), REMARKS VARCHAR(256), ROUTE_TYPE VARCHAR(8), SEASON_NAME VARCHAR(32), SEASON_REC_ID BIGINT, START_AIRPORT VARCHAR(16), START_DATE DATE, SUB_AIRLINE_ID BIGINT ); -- ㉕ 季度计划经停 FIMS_MIDAIRPORTS_SEASON(FimsMidairportsSeason;orderno 无注解) CREATE TABLE fims_midairports_season ( MIDAIRPORTS_REC_ID BIGINT NOT NULL PRIMARY KEY, AIRPORT_ID BIGINT, ARRIVAL_TIME VARCHAR(8), DEPARTURE_TIME VARCHAR(8), ORDERNO NUMERIC(18,0), SEASONFLIGHT_ID BIGINT ); CREATE INDEX idx_fims_midairports_season_flight ON fims_midairports_season (SEASONFLIGHT_ID);