117 lines
11 KiB
Markdown
117 lines
11 KiB
Markdown
# 真实 ARR 来源交付状态与最小依赖
|
||
|
||
2026-09-17。面向已有按钮任务的交接;本轮只读核对当前目录、接口定义、既有采集证据与处理器契约。
|
||
**真实 `adapter.adapt(VerifiedArchive) -> bytes` 和独立 `mapping_validator.validate(archive, bytes) -> None`
|
||
仍未完成,不能注入启用。** 没有增加一个只能永久拒绝或填充未知字段的占位实现,也没有把本机模拟组件改名为真实适配器。
|
||
|
||
**9/17后续纠正:**已有RSV原件并非只含Block身份。26笔的`blockIdList`另有`type=BlockCode`,
|
||
与搜索/到店日两层Block身份及代码一致;现已接入`source_fields/v2`、`source-preparation/v3`。
|
||
另外113笔缺整个Block对象,仍留缺口。94项范围测试及139笔独立离线对照通过,旧字段证据逐字节不变。
|
||
这26笔无需为代码额外查getBlock或增加权限;本进展不改变上面的完整真实来源交付状态。
|
||
见[typed BlockCode证据](../../.project-docs/50-evidence/topics/2026-09-17-arr-typed-block-code.md)。
|
||
|
||
**同日继续核对:**Oracle官方ROOM_CATEGORY_LABEL定义支持房型代码;139笔搜索/当前/到店日代码全部一致,
|
||
已接选择器v3、字段准备v4,无需查房型描述。98项范围测试与139笔独立离线比较通过,其他字段/旧facts不变。
|
||
包价22笔/30项含8笔双包价,组合显示仍待证;公司只有Group样本,不据此填公司。具体见
|
||
[房型与包价/公司范围核对](../../.project-docs/50-evidence/topics/2026-09-17-arr-room-type-and-package-scope.md)。
|
||
|
||
## 谁负责补齐,不需要用户逐项确认
|
||
|
||
用户询问清单是否需要人工确认,随后同意继续分清责任。本清单是开发阶段的技术核对,
|
||
不新增每次下载前的来源确认步骤;现有人工价格复核规则不变。**当前需要用户新做的业务决定为0项。**
|
||
已确认的单日日期、Resv.-GEN及内部备注、排除Trace、现有处理规则均沿用,不重复询问。
|
||
|
||
| 工作 | 当前状态 | 执行责任与完成条件 |
|
||
|---|---|---|
|
||
| 单日输入、采集归档、任务恢复、处理/入库/月报接线 | 代码已具备,隔离模拟已验证 | ARR开发维护;无需再确认日期或重做按钮 |
|
||
| 确认号/日期/人数/日价等字段的严格提取 | 已有取值器与原件验证;部分报表语义仍待核对 | ARR开发完成映射与独立原件校验,已有实现直接复用;不能把技术取值成功当作报表等价 |
|
||
| 完整姓名来源 | 独立补充代码已完成;上次已审计的特定对象仍503 | 平台按现有请求编号提供排查/恢复证据;ARR按原范围有限复验并补缺,不让用户解释姓名拼法 |
|
||
| 历史房号或明确未分房 | 上次日历响应缺room集合,无法判定原因 | 平台提供当次原始响应/查询条件/字段缺省语义;ARR按预订身份关联并验证,不预设是平台故障 |
|
||
| 公司、姓名显示、报表范围/行顺序、多备注及数量语义 | 现有跨酒店样本不足以证明完整规则 | 有测试环境权限的人员提供同源对照、报表配置或适用的权威规则;ARR负责解读、实现及差异定位 |
|
||
| 团队代码、套餐和房型标签 | 26笔typed团队代码、139笔三层一致房型代码已接入;113笔Block缺失及套餐多值显示仍待核对 | ARR复用已取得的原值,不新增当前Block/房型查询;历史房型冲突与其余缺省/显示证据分项解决。允许空值不能替代未知值,无需用户逐字段解释 |
|
||
| 最终真实适配器、独立校验器与按钮联调 | 尚未交付 | 仍由ARR开发完成,在新隔离实例验证;不交给用户人工制作或逐条勾选 |
|
||
|
||
只有对照显示两种处理确实会产生不同业务结果,且现有要求/原报告配置不能决定时,才向用户提出具体选择,
|
||
同时展示受影响的样例与结果。不能把“某字段尚无资料”直接转化为业务确认问题。
|
||
技术补充需求见[平台说明](arr-platform-evidence-request.md),用户已确认自行转交平台技术,当前等待回复。
|
||
补充资料可分项返回,能由适用的权威规则证明的部分无需再索要重复样本;未覆盖项如实保留。
|
||
|
||
## 已可复用的代码边界
|
||
|
||
- `arr_web.arr_download_runtime.CapturedARRSource`与`compose_arr_downloads`已经具备标准Web装配。
|
||
`arr_web.run.main(argv, arr_source=...)`是显式注入点,默认没有真实来源。
|
||
- 完整主体采用v2 `audit_arr_day.VerifiedArchive`,日期From=To=rate_date=D;姓名补充使用独立、固定主体pin的
|
||
`profile_supplement`链。它不重新采集预订/日价,也不会把姓名失败当作完整主体不存在。
|
||
- v3也可由现有执行器接收,但历史遇503的v3归档不完整,不能传给适配器当整日输入。
|
||
- `source_fields`是严格原始值选择器,`prepare_arr_source`是候选/缺口输出;两者没有通过报表业务映射验收。
|
||
- `arr_xml.serialize`与`validate_arr_xml.verify`负责明确行值到处理XML及反向完整比较。后者验证显式行值,
|
||
不证明这些行值来自正确的Oracle报表规则;不能直接充当实际来源映射验证器。
|
||
- 本机`LocalAPIAdapter/NativeBaselineValidator`依赖XML派生的`__localARRReport`字段,只用于已完成的模拟链。
|
||
|
||
## 当前证据能支持什么
|
||
|
||
下表的数量来自已经固定摘要的OHIPSB02 / 2026-09-15历史v2归档,本轮没有重新查询酒店。
|
||
139条主体、851个文件,pin `08171eca8caa4a8e85010680865983364bdf72ea5646c1932d74606ff001119f`。
|
||
|
||
| 来源项 | 已有可验证的技术事实 | 真实转换剩余依赖 |
|
||
|---|---|---|
|
||
| Confirmation、到/离店日期 | 139笔可按类型和明确日期取值 | 保留原ID关联,不能换成外部引用 |
|
||
| 成人、儿童、房数 | 139笔入住层/到店日段人数一致,房数有明确值 | 共享/组合房的报表行粒度及数量规则 |
|
||
| 有效价 | 134笔有明确日价和一致币种;另3笔隐藏、2笔缺详情币种 | 隐藏/缺失如何对应报告,不能以base或0替换 |
|
||
| 费率代码 | 115笔到店日段有代码、24笔缺失 | 缺代码必须保留为缺口,不能按非白名单排除 |
|
||
| FULL_NAME | 5个历史成功摘要及边界样本证明了部分主客身份/姓名原文关联 | 完整姓名来源和报告显示对应;不得按姓/名自行拼接补齐 |
|
||
| DISP_ROOM_NO | 73笔搜索/当前/到店日三层一致;66笔缺至少一层 | 一致不证明历史报告规则;需要可绑定预订的历史房号或明确未分房证据 |
|
||
| COMPANY_NAME | 当前样本只有Group关联,没有Company/TravelAgent/Source的实际角色覆盖 | 报告的角色选择、前缀及多角色组合;公司直接参与定价 |
|
||
| Resv.-GEN备注 | 已能保留GEN/RESERVATION的内部和外部文本 | 多备注的报告顺序关系;第一条非空全文影响Group Code |
|
||
| Trace | 用户明确不需要 | 真实接口输出空列表,无需再取证用户选项 |
|
||
| BLOCK_CODE | 26笔明确typed BlockCode与Block ID在搜索/到店日两层一致;已取值 | 113笔缺整个对象仍需明确无Block依据;报表同源显示待验收,已取得的26笔不需额外getBlock |
|
||
| ROOM_CATEGORY_LABEL | Oracle字段对应Room Type;139笔搜索/当前/到店日代码三层一致,已取值 | 对三层冲突/缺失保持缺口,不用描述或计价房型替换;无需为当前样本新增字典查询 |
|
||
| PRODUCTS | 22笔包价集合/30项,8笔双包价;所有计划覆盖到店日 | 范围/拼接/顺序仍待证,现有样本无预订日期与消费日期不同的覆盖;缺集合不填空 |
|
||
| 行范围/顺序 | 当前查询完整性和前后搜索复查通过 | ALL语义、重复组行粒度/物理顺序仍未确认,不能选任意赢家 |
|
||
|
||
**处理器成功样本限制:**115个已取得费率代码均不在当前酒店白名单,另外24条缺费率。
|
||
即使以后补齐显示字段,这份历史沙箱数据仍不是成功入库/月报的正例。应验证它应有的业务失败路径,
|
||
不修改白名单、伪造代码、删除缺失行或挪用57106的行值。成功链路继续以已验收的隔离模拟样本覆盖。
|
||
这与来源适配是否正确是两个不同结论。
|
||
|
||
## 这轮公开目录核对
|
||
|
||
CLI0.5.0、平台目录0.9.0/158项;4次公开目录读取,0次酒店业务请求,0次凭据读取、授权或部署。
|
||
|
||
| Operation ID | 平台路径 | 所属能力组 | 当前作用/限制 |
|
||
|---|---|---|---|
|
||
| getBlock | GET `/api/v1/blocks/{blockID}` | blocks.read | 只在缺typed BlockCode且有可绑定ID时考虑;当前26笔无需调用。不能把Block ID或blockName当成代码 |
|
||
| getRoomTypeInfo | GET `/api/v1/room-types/{roomTypeCode}` | hotel.read | 当前139笔房型代码已可取值,不需要为取得描述而调用或扩权;描述不替代代码 |
|
||
| getPackage | GET `/api/v1/reservations/{reservationID}/packages` | reservations.read | 可取包价资料;拼接与显示规则仍需依据 |
|
||
|
||
这些接口已经发布,**目前不需要让平台重复新增同名接口**。本轮查询的成功只指接口定义读取成功。
|
||
`getBlock`返回契约使用通用`OHIPDocument`/`OracleDocument`,没有因此取得真实Block数据或关闭显示规则。
|
||
记录的ARR授权为profiles.read+reservations.read;blocks.read和hotel.read不在该记录中。本轮不增加权限,
|
||
也不为尚未确认的字段使用方式提前扩大授权。
|
||
|
||
目录请求编号:getBlock `3952740a-34bb-4215-ae9d-b13cdb42f1e4`;getRoomTypeInfo
|
||
`3470c5c1-7968-482e-94b2-28cbeba667af`;getPackage `a8c2f396-2059-4b8e-adbe-02f0dcbf474f`。
|
||
公开原件保存在`.planning/arr-real-source-adapter-20260917/`。
|
||
|
||
[Oracle固定版本Block API定义](https://github.com/oracle/hospitality-api-docs/blob/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/blk.json)
|
||
提供业务结构定义,不能替代当前平台实际返回。[Oracle报表配置说明](https://docs.oracle.com/cd/F34189_01/doc.201/f42091/t_reports_configuring_reports.htm)
|
||
说明同一RES_DETAIL可以配置不同过滤、排序及列选择;公开说明没有给出本酒店实际配置的完整API映射。
|
||
|
||
## 最小外部材料与下一步
|
||
|
||
优先取得**同一测试环境、同一酒店、同一日期的一组可关联对照**:固定报表参数下的原ARR行/顺序,
|
||
加这些预订对应的接口原始响应。至少覆盖公司角色、主客显示名、已退房/换房或明确未分房、
|
||
以及会影响去重结果的同房到店重复组;多条GEN备注应保留原顺序。这可以由有该测试环境访问权限的
|
||
平台同事提供,或由权威字段/显示规则说明替代可明确证明的部分。当前用户不能访问OHIPSB02,
|
||
**不再要求用户重导57106文件或重复确认Resv.-GEN,也不要求OHIPSB02与57106逐行相等**。
|
||
|
||
姓名503沿用[已有审计编号](platform-recovery-check-20260917.md)定位;收到修复/新数据证据后,先有限复验,
|
||
再独立补缺姓名。房号200缺字段仍是数据/查询覆盖待核查,不自动归为平台故障。
|
||
本轮没有再次试探同一503,也没有把等待平台作为重复增加框架/测试的理由。
|
||
|
||
材料到位后,先确定逐字段来源与记录规则,写入版本化真实适配器和**另一路直接读原始响应**的验证器;
|
||
验证器不能依赖转换器输出的中间行作为答案。然后在新建临时实例中验证预期成功/失败及未知提交恢复,
|
||
再把已验收的两个组件和同一adapter_contract交给CapturedARRSource。真实启用/部署另行处理。
|
||
|
||
**8874是用户录制实例,本轮未访问、改动、重启、清理、提交测试或恢复其数据。**
|