81 lines
4.4 KiB
Markdown
81 lines
4.4 KiB
Markdown
# ARR XML 加工前字段清单
|
||
|
||
整理日期:2026-09-18
|
||
|
||
本文按当前项目的 XML 上传处理器整理:去掉后续不使用的字段,保留业务处理需要的原始数据维度。此处只讨论字段取舍,全部预订行仍应保留,尚未做费率白名单筛选、去重、渠道归类、价格匹配和金额计算。
|
||
|
||
## 1. 保留的 16 个业务字段
|
||
|
||
每个 XML `G_RESERVATION` 节点对应一条来源记录。
|
||
|
||
| 序号 | 数据维度 | XML 原字段 | 后续处理器中的字段名 |
|
||
|---|---|---|---|
|
||
| 1 | 团队 Block 代码 | `BLOCK_CODE` | `BLOCK_CODE` |
|
||
| 2 | 成人数 | `ADULTS` | `ADULTS` |
|
||
| 3 | 儿童数 | `CF_CHILDREN` | `CHILDREN` |
|
||
| 4 | 公司/旅行社名称 | `COMPANY_NAME` | `COMPANY_NAME` |
|
||
| 5 | 预订确认号 | `CONFIRMATION_NO` | `CONFIRMATION_NO` |
|
||
| 6 | 房号 | `DISP_ROOM_NO` | `DISP_ROOM_NO` |
|
||
| 7 | 原报表有效房价 | `EFFECTIVE_RATE_AMOUNT` | `EFFECTIVE_RATE_AMOUNT` |
|
||
| 8 | 住客姓名 | `FULL_NAME` | `FULL_NAME` |
|
||
| 9 | 预订备注 | `RES_COMMENT` | `RES_COMMENT` |
|
||
| 10 | 跟进备注/Trace | `TRACE_TEXT` | `TRACE_TEXT` |
|
||
| 11 | 房间数 | `NO_OF_ROOMS` | `NO_OF_ROOMS` |
|
||
| 12 | 套餐/附加产品 | `PRODUCTS` | `PRODUCTS` |
|
||
| 13 | 费率代码 | `RATE_CODE` | `RATE_CODE` |
|
||
| 14 | 房型显示值 | `ROOM_CATEGORY_LABEL` | `ROOM_CATEGORY_LABEL` |
|
||
| 15 | 入住日期 | `TRUNC_BEGIN` | `ARRIVAL` |
|
||
| 16 | 离店日期 | `TRUNC_END` | `DEPARTURE` |
|
||
|
||
“保留”表示保留该数据维度,不表示所有字段都必须有值。当前处理器允许 `BLOCK_CODE`、`PRODUCTS`、`ROOM_CATEGORY_LABEL`、`RES_COMMENT` 和 `TRACE_TEXT` 为空,其他字段按现有业务校验规则处理。
|
||
|
||
`BLOCK_CODE` 与从预订备注提取的团号匹配键是不同字段,不能互相替代。
|
||
|
||
## 2. 同时保留的校验与追溯信息
|
||
|
||
以下信息不计入上面的 16 个业务字段。
|
||
|
||
| 信息 | 来源/保留方式 | 用途 |
|
||
|---|---|---|
|
||
| 报表分组日期 | 原样保留 `GROUPBY1_SORT_COL` 和 `GROUPBY1_COL`;两者同时存在时须一致 | 校验整份报表的业务日期及记录入住日期 |
|
||
| 原始行顺序 | 保留各预订节点在 XML 中的顺序,可另记从 1 开始的来源序号 | 去重时确定保留哪条记录,并追溯来源 |
|
||
| 文件身份 | 保留原文件名、原始字节大小和 SHA-256 | 核对输入原件及处理结果的来源 |
|
||
|
||
原始 XML 文件继续完整保存。字段精简只作用于提取出来的数据,不覆盖或重写原件。
|
||
|
||
## 3. 这一层不包含的加工结果
|
||
|
||
| 后续生成的字段/信息 | 产生方式 |
|
||
|---|---|
|
||
| 间夜数 `NIGHTS` | 离店日期减入住日期 |
|
||
| 结算单价 `REAL PRICE` | 按现有定价规则或人工价格复核确定 |
|
||
| 总金额 `TOTAL PRICE` | `REAL PRICE × NO_OF_ROOMS × NIGHTS` |
|
||
| 渠道归类 | 按业务规则识别 |
|
||
| 公司匹配键 | 从公司名称规范化得到 |
|
||
| 团号匹配键 | 从预订备注规范化得到 |
|
||
| 标准化费率代码 | 对原始费率代码去除首尾空白并转为大写 |
|
||
| 筛选、重复、校验及定价状态 | 执行业务处理后产生 |
|
||
|
||
## 4. 备注和 Trace 的保留方式
|
||
|
||
预订备注与 Trace 都可能有多条。若需要一份真正尚未加工的字段数据,应保留原始列表及顺序,不在字段提取阶段合并或只取一条。
|
||
|
||
XML 中相对于 `G_RESERVATION` 的来源路径为:
|
||
|
||
- 预订备注:`LIST_G_COMMENT_RESV_NAME_ID/G_COMMENT_RESV_NAME_ID/RES_COMMENT`
|
||
- Trace:`LIST_G_DEPT_ID/G_DEPT_ID/TRACE_TEXT`
|
||
|
||
当前手工 XML 处理器在加工时,对两者分别取第一条非空内容。手工上传链仍保留可空的 `TRACE_TEXT`;已约定的自动采集流程不获取 Trace,该场景可以按其余 **15 个业务字段**准备输入,并保持现有兼容结构。
|
||
|
||
## 5. 与当前实现的关系
|
||
|
||
这份文档是原始字段清单,不表示系统已经单独保存了一张完全未加工的中间表。当前处理器在字段提取时已同步执行部分类型转换、标准化和间夜计算;解析工作副本也会按已实现的规则忽略表情,原始文件字节保持不变。
|
||
|
||
本次只整理文档,没有修改程序、源文件或现有业务规则。
|
||
|
||
## 6. 依据
|
||
|
||
- [XML 字段契约](arr-opera-daily-ingest/references/field-contracts.md)
|
||
- [处理器实现:source_record / classify_source_records](arr-opera-daily-ingest/scripts/process_daily.py)
|
||
- [ARR 源报表下载要求及 Trace 范围](.project-docs/40-domain/arr-source-report-contract.md)
|