feat(refdata): Q22 basicdata 映射与 ReferenceDataProcessor(ACM2-93)
闭合 Q22;V6 建 basicdata 表组;RefData 走真处理器(DNLD/RESP/ADD/UPD/DEL/RSTA)。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
|
||||
AODB 经 CIIMS adapter 把 XML 报文写入 `CMINMSGS`,格式以架构指定的 [SIS 接口规范](../legacy/SIS_AODB_RMS-V0.1.md) 与 [XSD](../legacy/unisysaodbsis.xsd) 为依据。
|
||||
|
||||
入站报文按类型处理:`ADFT` 建立计划外航班,`FLOP` 改航班动态,`FDEL` 删航班,`SCHD-DNLD` 与 `SCHD-RESP` 同步日计划快照,参考数据写入自有 PG 的静态参考数据表组(逻辑视图 `REF_MASTER`,物理形态由内部迁移确定;报文到表的映射待 `Q22` 定稿;联调栈 `basicdata` schema 的基础数据表对齐 admin-api 实体注解,不预设 `REF_MASTER` 落表方式;`US-04`~`US-07`、`US-13`);报文不合法进死信,合法但本系统不支持的类型跳过留档并按已处理写回信箱(`US-03`)。
|
||||
入站报文按类型处理:`ADFT` 建立计划外航班,`FLOP` 改航班动态,`FDEL` 删航班,`SCHD-DNLD` 与 `SCHD-RESP` 同步日计划快照,参考数据写入自有 PG 的 schema `basicdata` 表组(逻辑视图 `REF_MASTER`,物理多表映射见 `implementation.md`「静态参考数据」、`Q22` 已定;联调栈同 schema 对齐 admin-api 实体注解;`US-04`~`US-07`、`US-13`);报文不合法进死信,合法但本系统不支持的类型跳过留档并按已处理写回信箱(`US-03`)。
|
||||
|
||||
| 环节 | 已确定的边界 | 尚需确定 |
|
||||
|---|---|---|
|
||||
@@ -87,7 +87,7 @@ AODB 经 CIIMS adapter 把 XML 报文写入 `CMINMSGS`,格式以架构指定
|
||||
|
||||
| 表或表组 | 边界 | 尚需确定的字段级契约 |
|
||||
|---|---|---|
|
||||
| 静态参考数据表组 | 静态参考数据与资源状态保存在独立数据表组(逻辑视图 `REF_MASTER`,物理形态由内部迁移确定;报文到表的映射待 `Q22` 定稿;联调栈 `basicdata` schema 的基础数据表对齐 admin-api 实体注解,不预设 `REF_MASTER` 落表方式);表与列直接取 admin-api 实体注解,不改名、不合并,admin-api 直接只读;新消息覆盖旧记录,全量消息整体替换,增删改消息逐条处理(`US-13`);一类校验不通过只停这一类、其他类照常,校验失败类别的已有记录不变;字段为空表示「当前没有值」,不是删除(`US-13` AC4)。 | 13 类报文与资源状态到表组的映射(`Q22`);admin-api 需要哪些字段。类别码与消息中的识别标签见下表。 |
|
||||
| 静态参考数据表组 | 静态参考数据与资源状态保存在 schema `basicdata`(逻辑视图 `REF_MASTER`;`RTYPE`→表映射见 `implementation.md`「静态参考数据」、`Q22` 已定);表与列取 admin-api 实体注解;全量 `DNLD`/`RESP` 整类替换,增量 `ADD`/`UPD`/`DEL` 逐条;单类校验失败不写入该类;空标签表示无值非删除(`US-13`)。 | admin-api 生产只读接入与字段裁剪需求。类别码与识别标签见下表。 |
|
||||
| 航班当前态表 | 航班当前态的唯一权威;`FLID` 唯一(`INV-6`);Redis 和 Kafka 从处理结果派生,不反向覆盖这些表。 | 主键、字段与类型、外键/索引。 |
|
||||
| 内部处理表 | 管道处理、请求跟踪、留痕与互斥由本系统维护;不对外提供直接读写接口。 | 字段与约束由内部实现设计确定。 |
|
||||
|
||||
@@ -97,7 +97,7 @@ admin-api 还从本系统数据库只读季度计划;供数方与报文形态
|
||||
|
||||
### 静态参考数据类别与编号来源
|
||||
|
||||
类别码与识别标签来自架构引用的 [SIS 接口规范](../legacy/SIS_AODB_RMS-V0.1.md);识别同一条参考记录时,用类别码加识别标签值。标签值的格式、标签在哪个范围内唯一,以及报文到表的映射,仍需 `Q22` 定稿。
|
||||
类别码与识别标签来自 [SIS 接口规范](../legacy/SIS_AODB_RMS-V0.1.md);识别同一条参考记录时用类别码加识别标签值。报文到 `basicdata` 列的映射见 `implementation.md`「静态参考数据」。
|
||||
|
||||
| 类别码 | 类别 | 消息中的识别标签 | SIS 依据 |
|
||||
|---|---|---|---|
|
||||
|
||||
@@ -482,3 +482,26 @@ SIS 声明的上游忽略与截断口径见 `SIS:3.1`、`SIS:3.2`、`SIS:3.4`、
|
||||
### 13.5 admin-api 下游读取边界
|
||||
|
||||
SIS → 本网关 → PG → admin-api(`C-10`)。本网关不调用 admin-api。Oracle 待 `Q14` 验证。MySQL 只是信箱。
|
||||
|
||||
### 13.6 物理表映射(`Q22`)
|
||||
|
||||
逻辑视图仍为 `REF_MASTER`(键 `(RTYPE, RKEY)`);物理落 schema **`basicdata`** 的多张表,列名取自 admin-api secondary 实体 `@Table`/`@Column`,**不**使用单表 `REF_MASTER`。Flyway:`V6__basicdata_ref_data.sql`;联调栈同名表见 `deploy/integration/postgres-init/02-basicdata-schema.sql`。
|
||||
|
||||
| `RTYPE` | `RKEY` 标签 | 物理表 | 主键 / 业务键列 | SIS → 列(常用) |
|
||||
|---|---|---|---|---|
|
||||
| `COUL` | `COUC` | `basicdata.sys_country` | `COUNTRY_ID` / `COUNTRY_CODE` | `COUC`→`COUNTRY_CODE`;`COUN`→`COUNTRY_NAME_ENG`;`CNMC`→`COUNTRY_NAME_CHN` |
|
||||
| `ARPT` | `ITCD` | `basicdata.sys_airport` | `AIRPORT_ID` / `AIRPORT_CODE_IATA` | `ITCD`→`AIRPORT_CODE_IATA`;`ICCD`→`AIRPORT_CODE_ICAO`;`ANAM`/`ANMC`→英/中名;`HAUL`→`HAUL`;`ATYP`→`INTERNATIONAL_FLAG` |
|
||||
| `AIRL` | `ITOP` | `basicdata.sys_airline` | `AIRLINE_ID` / `AIRLINE_CODE_IATA` | `ITOP`/`ICOP`→IATA/ICAO;`ONAM`/`ONMC`→名称;`DORI`→`INTERNATIONAL_FLAG` |
|
||||
| `AIRC` | `ITAT` | `basicdata.sys_aircrafttype` | `AIRCRAFT_TYPE_CODE` | `ITAT`/`ICAT`→IATA/ICAO;`DESC`→`AIRCRAFT_TYPE_NAME`;`MAXP`/`MFWT`/`MTWT`/`MABR`→限额字段 |
|
||||
| `REGN` | `RNUM` | `basicdata.sys_aircraft` | `AIRCRAFT_ID` / `AIRCRAFT_NUMBER` | `RNUM`→`AIRCRAFT_NUMBER`;`ITAT`→`AIRCRAFT_TYPE_CODE`;`ACAL`→`AIRLINE_CODE` |
|
||||
| `ORGN` | `OGID` | `basicdata.sys_flightagent` | `FLIGHTAGENT_ID` | `OGID`→`FLIGHTAGENT_ID`/`OGID`;`ONAM`→`FLIGHTAGENT_NAME` |
|
||||
| `FLTL` | `FTYP` | `basicdata.sys_flight_type` | `FLIGHT_TYPE_CODE` | `FTYP`→码;`FDES`/`FDSC`→中英文名;`CTYP`→`FLIGHT_TYPE_CAA_CODE` |
|
||||
| `TLST` | `TCOD` | `basicdata.orms_terminal` | `TERMINAL_CODE` | `TCOD`/`TNAM`→码与名称 |
|
||||
| `GLST` | `GCOD` | `basicdata.orms_gate` | `GATE_CODE` | `GCOD`/`GTNM`/`GCAT`/`GTML`→门码、名称、类别、航站楼 |
|
||||
| `SLST` | `SCOD` | `basicdata.orms_stand` | `STAND_CODE` | `SCOD`/`STNM`/`STML`/`SATC` |
|
||||
| `CLST` | `CCOD` | `basicdata.orms_checkindesk` | `CHECKINDESK_CODE` | `CCOD`/`CTNM`/`CCAT`(勿与 `CHLT` 混类) |
|
||||
| `BLST` | `BCOD` | `basicdata.orms_carousel` | `CAROUSEL_CODE` | `BCOD`/`BTNM`/`BCAT`/`BTML` |
|
||||
| `CHLT` | `CCOD` | `basicdata.orms_chut` | `CHUT_CODE` | `CCOD`/`CHNM`/`CCAT`/`CTML` |
|
||||
| `RSTA` | `RTYP`+`RSID` | 上表资源行 | 资源码列 | `STAT` `E`/`D`→`GATE`/`STND` 用数值态,转盘/柜台/滑槽用 `E`/`D` 字符串列;不以包内缺席删其他资源态 |
|
||||
|
||||
数值主键表在首次写入时用 `(RTYPE,RKEY)` 稳定派生 `*_ID`(同键可重复 upsert);varchar 主键表直接以 SIS 业务键为 PK。
|
||||
|
||||
@@ -138,7 +138,6 @@
|
||||
| `PROTOCOL` | 整份报文未通过业务校验,或运营日不一致 | 整份不写数据库,记 `DEAD` | 否 |
|
||||
| `CODEC_ERROR` | 解码程序尚不能识别报文结构 | 记 `FAILED`,等待后重试 | 是 |
|
||||
| `UNSUPPORTED`(合法未知类型) | 报文种类可识别,但没有对应处理程序(`MsgKind.Unsupported`) | 记 `SKIPPED`,写回信箱为已处理(`US-03` AC2) | 否(终态,不进重放白名单) |
|
||||
| `UNSUPPORTED`(参考数据) | 参考数据类别已识别,但处理器尚未落地(`MsgKind.RefData`) | 记 `FAILED(UNSUPPORTED)` 并重试 | 是 |
|
||||
| `INFRA` | 数据库、网络或程序执行出错 | 记 `FAILED`,等待后重试 | 是 |
|
||||
| `EXHAUSTED` | 自动重试次数已用尽 | 记 `DEAD`;原错误类别被覆盖,原因留在 `LAST_ERROR` | 是 |
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
| Q19 | — | (未分配) | — |
|
||||
| Q20 | — | (未分配) | — |
|
||||
| Q21 | 本系统 | `GET /all/flights` HTTP 约定 | 见 `C-11` |
|
||||
| Q22 | 本系统 | 静态参考数据对应哪些表 | 见 `C-10`、接口契约 |
|
||||
| Q22 | 已定 | 静态参考数据对应哪些表 | `C-10`;物理为 schema `basicdata` 多表(非 `REF_MASTER` 单表),映射见 `implementation.md`「静态参考数据」 |
|
||||
| Q23 | 本系统 | Elasticsearch 历史怎么写、保留多久 | 见 `US-14`、`G-FLIGHT-HIST-RETENTION` |
|
||||
| Q24 | 本系统 | `REQ_TRACK` 已结案记录保留多久 | 见 `G-REQ-TRACK-RETENTION` |
|
||||
| Q25 | 本系统 | 季度计划从哪来、什么格式 | SIS 只有日计划;旧系统读 Oracle 季度表 |
|
||||
@@ -154,7 +154,7 @@
|
||||
| `G-MAFL` | 主航班共享列表未做 | `US-06` AC2 |
|
||||
| `G-PROC-CLEANUP` | 处理记录到期清理未做 | `US-11` |
|
||||
| `G-REDIS-PROJECTION` | Redis 快照写入与删除未做:投影端口与三步提交时序已就位,真实 Redis 客户端未接通,日计划覆盖范围的缺席清扫也未做 | `US-05`、`US-06`、`US-07`、`US-12` |
|
||||
| `G-REF-DATA` | 静态参考数据处理与 admin-api 直读未做 | `US-13` |
|
||||
| `G-REF-DATA` | admin-api 生产侧只读接入与联调验收未闭合 | `US-13`;本网关落库与 `ReferenceDataProcessor` 已做(ACM2-93) |
|
||||
| `G-REQ-OPEN-UNIQUE` | 同类型未处理完时不允许再发,未做 | `US-09` |
|
||||
| `G-REQ-TRACK` | 出站请求跟踪未做 | `US-09` |
|
||||
| `G-REQ-TRACK-RETENTION` | `REQ_TRACK` 已结案保留期未定(`Q24`) | `US-09` |
|
||||
|
||||
Reference in New Issue
Block a user