feat(flight): UNMAPPED_FIELD、SRVT/VIPF 明细与白名单内未映射留档(ACM2-89/99/100)
V5 迁移;集合段出现才写;白名单 7 类内未落态写入 UNMAPPED_FIELD,不扩白名单。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+18
-2
@@ -28,6 +28,7 @@ msgexchange-v2 怎么处理报文:记录模型、状态机、事务边界、
|
||||
| `REF_MASTER` | SIS 消息提供的静态参考数据与资源状态的逻辑视图(物理为独立数据表组) | `(RTYPE, RKEY)` 唯一;`RTYPE` 类别、合并语义与资源状态见「静态参考数据」;取数路径见 [requirements.md](requirements.md) `US-13`。 |
|
||||
| `FLIGHT_SCHD` | 航班标量及单值异常字段 | `FLID` 主键;运营日与版本、最近消息 ID 用于追踪。变长集合存于资源明细表与 `FLIGHT_ROUTE_POINT`,规则见「航班域」。 |
|
||||
| `SCHD_SNAP_LOG` | 日计划处理留痕 | 只追加、可重建,不参与状态决策;保留期见 [reference.md](reference.md)。 |
|
||||
| `UNMAPPED_FIELD` | 未落入航班当前态的字段原值(`US-05` AC3) | 唯一键 `(MSG_ID, PATH, ORDINAL)`;不随 `PROC_STATE` 到期删除;路径与 `RAW_VALUE` 编码见「未映射字段」。 |
|
||||
字段与索引以 `src/main/resources/db/migration/` 为准。原文读共享信箱;清理见 `C-1`。
|
||||
|
||||
|
||||
@@ -302,7 +303,8 @@ PG 是航班数据源(`INV-5`);Redis 从 PG 同步,处理完成前写入
|
||||
| 对象 | 职责 |
|
||||
|---|---|
|
||||
| `FLIGHT_SCHD` | 一行一个 `FLID`,保存标量字段、`STATE`、`STATE_VERSION`、`OPERATION_DAY`、最近消息 ID 和审计时间。 |
|
||||
| 资源明细表 | 保存登机门、值机柜台、转盘、计划机位、滑槽、延误、靠撤桥、轮挡等变长集合;`SRVT`/`VIPF` 专用明细见 `G-SRVT-VIPF`。主键为 `(FLID, ORDINAL)`。 |
|
||||
| 资源明细表 | 保存登机门、值机柜台、转盘、计划机位、滑槽、延误、靠撤桥、轮挡等变长集合;主键为 `(FLID, ORDINAL)`。 |
|
||||
| `FLIGHT_SRVT` / `FLIGHT_VIPF` | 服务与 VIP 明细(`G-SRVT-VIPF`);主键 `(FLID, ORDINAL)`。段**出现**时按报文顺序整段替换;段缺席不删已有行(`Q2` 默认)。 |
|
||||
| `FLIGHT_ROUTE_POINT` | ROUT 与 ERUT 两类路线点,使用 `ROUTE_KIND` 区分;主键应包含该列,避免两类路线的序号冲突。 |
|
||||
| `PROC_STATE` | 信箱消息的处理终态、业务身份幂等记录,以及回填事实(`RECEIVED_AT` / `BACKFILL_*`)。 |
|
||||
| `MSG_EVENT` | 事务 outbox,承载整态快照与变更通知;删航班只走 `msg`(`C-9`)。 |
|
||||
@@ -341,7 +343,21 @@ PG 是航班数据源(`INV-5`);Redis 从 PG 同步,处理完成前写入
|
||||
| `SRVT` | `OPER`、`SRTC`、`SRQT`、`SRST`、`SRET`、`SRPR`、`SANR`、`SARR` | 无界 | `G-SRVT-VIPF` |
|
||||
| `VIPF` | `OPER`、`VPCD`、`VFES`、`VIPT/OPER`、`VIPT/VSCD`、`VIPT/VTQY`、`VIPT/VTST`、`VIPT/VTET` | 无界 | `G-SRVT-VIPF` |
|
||||
|
||||
`SRVT`/`VIPF` 只存原文,不参与合并。`MAFL` 由子航班派生(`G-MAFL`)。
|
||||
`SRVT`/`VIPF` 落专用明细表,不进 Redis 快照与合并层(`G-SRVT-VIPF`)。`MAFL` 由子航班派生(`G-MAFL`)。
|
||||
|
||||
### 11.3.1 未映射字段(`UNMAPPED_FIELD`)
|
||||
|
||||
现行白名单内的 FLOP 报文:wire 已解码、且不能写入 `FLIGHT_SCHD` 或资源明细的字段,按消息写入 `UNMAPPED_FIELD`(`G-FLOP-UNMAPPED`、`US-05` AC3)。非白名单 FLOP 子类型仍走 `SKIPPED`(`US-03` AC2),不在此表留证。
|
||||
|
||||
| 列 | 含义 |
|
||||
|---|---|
|
||||
| `MSG_ID` | 信箱消息 ID,与 `PROC_STATE` 对齐 |
|
||||
| `FLID` | 报文内航班 ID(便于按航班查询) |
|
||||
| `PATH` | 字段路径:标量元素名为 SIS 标签(如 `FDIV`);属性为 `TAG/@ATTR`(如 `FDIV/@DDES`);同父下重复兄弟以 `PATH` 相同、`ORDINAL` 递增区分 |
|
||||
| `ORDINAL` | 从 1 起;单元素多属性(如 `FDIV/@DDES` 与 `FDIV/@DDIR`)各自 `ORDINAL=1`,因 `PATH` 不同而不冲突 |
|
||||
| `RAW_VALUE` | 原值 UTF-8 字符串;显式空标签记空串,不省略行 |
|
||||
|
||||
写入与航班变更同一 PG 事务:对该 `MSG_ID` 先删后插,重处理结果一致即幂等。清理保留期不含本表(`G-PROC-CLEANUP` 只清 `PROC_STATE`)。
|
||||
|
||||
- `ORDINAL` 是持久化顺序,从 1 开始;`SOURCE_SEQ` 是上游序号,允许为空或重复。
|
||||
- 相同资源号不代表同一条分配,禁止按资源号去重。
|
||||
|
||||
Reference in New Issue
Block a user