Update production handover and record latest release push

This commit is contained in:
Wyndham ARR committed 2026-10-08 23:49:51 +08:00
1 parent db42a5e087
commit 55d0a1ef61
4 files changed
+73 -42

No files matched your search

+28 -14
View File
@@ -1,8 +1,8 @@
# 按日期获取接口数据并生成 ARR
2026-10-08:直接数据入口增加处理前的人工字段完善,完成后继续共用日报、缺价复核与原有月报流程。人工XML上传保留。
2026-10-08:本机已连接生产酒店57106。直接数据入口与XML上传共用处理规则;已确认的取消预订及PM房型排除同时适用于两条路径。
已在本机离线重放2026-10-07到店日的真实生产捕获:176次读取、58条预订,字段识别和来源顺序与捕获一致。
这次核对未发起新OHIP请求。10月7日正式日报仍待业务字段值确认,尚未通过生产报表验收。
10月7日字段及价格核对现已完成,系统保存生成成功的38间房日报结果;实际日报文件及月报尚未逐项完成业务验收,不能宣称所有生产场景已通过。
接口数据沿用共用筛选、去重、定价、独立校验和Finance提交规则,不生成中间XML。
本文描述当前代码;部署与服务状态以[交付说明](../deploy/OHIP_RELEASE_HANDOVER.md)和对应部署记录为准。
@@ -12,14 +12,19 @@
点击日期文字或右侧日历图标,再点击日历中的某一天即可选择。任务进行中仍可预选下一日期;
当前任务结束后需再次点击下载,预选不会自动提交或修改原任务。页面进度始终显示原任务的日期。
任务结果待确认时,先检查或继续按钮上标明日期的原任务,避免重复提交。
某一天等待人工完善不阻塞其他日期:另选日期后可点击“下载并处理”,此前任务仍保存在“待完善日期”中。
点击待完善日期可返回该日继续,刷新后列表仍保留;同一天的未完成任务沿用原编号。
页面内切换日期会分别保留尚未保存的输入草稿,刷新前仍应逐项保存;已保存的决定由系统长期保留。
某一天等待人工完善不阻塞其他日期:另选日期后可点击“下载并处理”,此前字段或价格任务仍保存在“需处理日期”中。
点击需处理日期可返回该日的“人工核对”,刷新后列表仍保留;同一天的未完成任务沿用原编号。
切换字段任务保留各自草稿,未保存的价格会阻止切换核对任务;刷新或切换语言前仍应保存输入,已保存决定长期保留。
完整采集中的缺字段、多个候选或不满足原规则的字段先进入“待完善数据”(`needs_data_review`)。
全部阻塞字段通过并确认后,原任务自动继续处理;随后只有缺少pureprice时进入原有价格复核(`needs_review`)。
字段完善和价格复核是前后两步,不会用补零或未经确认的空值跳过前一步。
价格核对允许明确保存0,空白不等于0;原始Oracle价格为0也不代表处理价必定为0。
任务中断后“继续原任务”复用原始数据和结果,同一请求不会重复入库。历史来源显示“接口获取”。
自动下载卡片显示取数状态、进度条及“已获取笔数/总笔数”。预订总数未确定时不显示虚构百分比;
逐笔取得关联资料后更新计数,全部取回仍须核对完整性,通过并保存完成记录后才显示100%和“已完成”。
失败或中断会单独提示;取数完成不表示人工核对或报表生成完成。旧任务如没有自己的取数记录,会明确显示笔数未记录。
备注使用清理表情后的第一条非空预订备注;套餐按原顺序显示套餐代码(逗号分隔,保留重复)。
完整备注、套餐明细和查询出处保留在原始数据中。Trace 不获取,旧报表对应列留空。
这是一套明确的新入口显示规则,不声明与 Oracle 原生报表的文字格式完全一致。
@@ -27,11 +32,13 @@
## 字段完善的保存与继续处理
`DataFieldReviews`只接受`collection_complete=true`的完整采集,以当前冻结处理器的费率白名单和字段验证识别阻塞项。
预订列表仍保留全部取得的记录及原顺序;非白名单记录按原规则处理,不因Cancelled/NoShow等状态在取数阶段被丢弃。处理阶段按用户已确认的规则排除已取消预订,再识别其余候选的待完善字段;NoShow没有新增排除规则。
预订列表仍保留全部取得的记录及原顺序;非白名单记录按原规则处理,不因Cancelled/NoShow等状态在取数阶段被丢弃。处理阶段先排除已取消预订,再排除PM房型,之后识别其余候选的待完善字段;NoShow没有新增排除规则。
费率本身未确定时先完善费率,再重新识别该记录的其余问题。查询失败或采集不完整仍走原重试流程。
人工仅能完善任务列出的异常字段。团队代码、预订备注、套餐和房型允许明确“确认无此项”;
公司、房号及其他必填字段必须填写有效值。`reservationBlock`、`reservationPackages`或关联档案省略不自动成为空值,
公司、房号及其他必填字段必须填写有效值。团队/套餐的正常省略仅在成功查询、请求内容及关联证据满足明确条件时识别为空,
不要求用户逐项确认正常空值;团队关联单侧省略、套餐缺少有效佐证、读取失败、冲突或格式不明仍需核对,其他字段不采用这一省略规则。
具体条件见[关联空值依据](../.project-docs/50-evidence/topics/20261008-production-review-9e7b__oracle-optional-associations.md)。
套餐金额为零不能证明无套餐,`roomCalendar={}`也不能证明目标日期没有房号。
每次保存核对当前`revision`,记录操作者、原值、新值和事件版本;旧版本提交会返回冲突,须重新查看。
@@ -61,8 +68,9 @@
严格核对`operation_id=getProfiles`、酒店、Oracle请求编号、唯一档案结果和姓名组成;不再使用生产不可用的`searchProfiles` POST。
历史候选捕获及POST探针保留原请求,详细参数见[传参确认单](../ARR_OHIP_REQUEST_PARAMETERS.md)。
58条原始采集中保留团队代码36项、套餐16项、公司2项、房号1项缺口。字段完善清单只列出原规则判定会阻塞候选记录的问题,
与全部原始缺口数量可以不同。离线重放及本机流程验证不替代真实业务值确认,亦不表示10月7日正式日报已生成或验收。
58条原始采集的首次解析曾列团队代码36项、套餐16项、公司2项、房号1项缺口;原始响应仍完整保留。
后续按有依据的关联空值识别及已批准的取消/PM排除规则重新解释,10月7日不再需要字段补充,并已完成价格核对及生成。
这些历史缺口数不等于当前人工必填项,也不代表接口故障;不据此宣称任意字段省略都可自动留空。
## 历史本机 OHIP 沙箱入口(2026-09-18)
@@ -112,8 +120,8 @@ LC_ALL=C LANG=C .venv/bin/python -m arr_web.local_ohip serve \
## 正常运行配置
数据库须已应用020迁移;2026-09-18首次验证只在独立本机测试库应用,未修改当时既有数据库。
该迁移允许真实的 `ohip_json` 源制品和5.0结果进入已有复核流程。
当前处理器4.4.0要求数据库按顺序具备019、020、021迁移。本机已升级至021;目标部署需独立检查和备份。
019支持真实的 `ohip_json` 源制品和5.0结果,020/021分别支持取消与PM排除事实。
启动会先检查迁移,未具备条件时不开放下载服务。原来的月报后台程序仍须正常运行。
```sh
@@ -131,7 +139,7 @@ LC_ALL=C LANG=C .venv/bin/python -m arr_web.local_ohip serve \
它不再是新数据入口的前置条件。不得把模拟传输当成实际平台传输。
取数字段和八项只读操作见[数据入口说明](../integrations/ohip/DATA_SOURCE.md)。
每个运行实例仍须核对其实际环境权限。当前生产捕获已用于字段识别,正式日报验收仍须完成业务字段值确认。
每个运行实例仍须核对其实际环境权限。当前生产捕获已用于字段识别,目标部署后的日报/月报文件仍须完成实际业务验收。
`getBlock` 等补查如无权限会明确失败,不补造空值。
## 检查
@@ -141,7 +149,7 @@ ARR_TEST_LOCAL_POSTGRES=1 .venv/bin/python -m unittest tests.test_arr_direct_dat
```
检查覆盖6笔正常订单总额18200、字段完善后继续处理、既有缺价复核、必填及可空字段验证、去重、原始数据保留、独立报表核对、
字段修订冲突与冻结恢复、页面请求、月报公式、提交后断线恢复、来源版本隔离,以及019/020迁移检查和回退保护。
字段修订冲突与冻结恢复、页面请求、月报公式、提交后断线恢复、来源版本隔离,以及019至021迁移检查和回退保护。
浏览器检查:`tests/browser/arr_direct_data.cjs`,只接受明确指定的本机模拟实例。
历史8875沙箱曾交给用户会话后台服务运行,避免对话结束后登录页无法连接。仅在用户会话运行;
@@ -154,4 +162,10 @@ ARR_TEST_LOCAL_POSTGRES=1 .venv/bin/python -m unittest tests.test_arr_direct_dat
日报排除已取消预订,无论是否已有房号。取消单不要求补房号或其他报表字段,不参与去重、定价及月报;完整原始数据和排除原因保留。
接口使用已核对一致的查询与详情预订状态;旧待完善任务可由内部维护操作从原始完整捕获补充状态,不重新查询Oracle,不修改原始数据或人工决定。XML使用明确的取消状态值CXL/CANCELLED/CANCELED;CA等未确认缩写不猜测。
处理器版本4.3.0,Finance需先应用`database/020_daily_cancelled_exclusion.sql`。旧已发布结果不重新处理。
取消排除由4.3.0/迁移020引入;当前4.4.0还需迁移021。旧已发布结果不重新处理。
## PM房型(2026-10-08确认)
XML和接口数据均在取消排除后、必填校验/去重/定价前排除PM。按共用文本规范化后的房型代码匹配PM,
不凭房号前缀、价格0、计价房型或空房型推断;其他房型不自动排除。原始数据、排除原因及此前人工决定仍可追溯。
Finance需应用`database/021_daily_pm_exclusion.sql`,Web和4.4.0处理器一起更新;旧已发布结果不自动重跑。