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

@@ -311,3 +311,14 @@ Read: memory-index, project-positioning, current-state latest September sections
- Actual UI verification: a temporary loopback-only synthetic fixture verified unknown total →58/85 at68% →85/85 verification at99% →100% while report processing continues →failed68%, without Oracle, real database or report mutations. Fixture/tab were stopped and closed. Before activation the real queue had no active tasks. Gracefully restarted the same8875 LaunchAgent once; all required processing/acquisition/monthly/download health checks are ready. In a new independent tab,9/15 now shows85/85,100%,取数状态已完成, while its original room item remains0/1 and generation disabled.9/17 API reports106/106 completed. The replayed9/16 request lacks an original source folder, so it truthfully shows completed with historical counts unavailable rather than borrowing counts from another request.375px CSS-width check confirms scrollWidth=clientWidth and visible counts; temporary viewport override reset. User tabs were not reloaded.
- Preservation/evidence: exact authenticated before/after comparison confirms all3 complete manual-review objects, all15 original capture metadata hashes, and all6 queue statuses/job IDs/attempt counters unchanged. No new Oracle request, hotel write, price/source decision, finalization, report/monthly generation, schema/config/credential change, primary checkout edit or remote push occurred. Private evidence remains in `production-validation-20261007/acquisition-progress-{before,after}-20261008.json`, synthetic fixture source, and `acquisition-progress-local-20261008.png`; actual result tab retained. Node syntax, Git whitespace and project-document gates apply before commit.
- Promotion candidate: integration-owned product/data-flow/current-state documentation should describe reservation-level acquisition progress as a distinct observed stage, with unknown totals before paging completes and100% only after completeness/checkpoint success. Acquisition completion does not establish report completion or remove manual review. No new business-policy decision or ADR conflict. Remaining limitation: some replayed historical requests have no own acquisition counts; current new acquisitions persist them. Existing unresolved local-status fetch timeout resilience and same-page price redraw draft behavior remain separate follow-ups, not claimed fixed here.
## Same-task Follow-up: Push Latest Completed Code
- User explicitly authorizes finishing and pushing the latest code to the previously supplied repository. Concurrent Task Gate Passed for resumed20261008-production-review-9e7b/feature/codex at the same owned checkout/branch/base2417b1a, no peers and clean initial worktree. Project Context Loaded: refreshed entry/planning gates and core memory/positioning/current-state/decision index/system overview; retained task-relevant ADR004/006/007, domain/evidence/reflection/commitments/stale context and all preceding task outcomes. Canonical memory remains the older integrated snapshot and is not rewritten in feature mode; accepted follow-ups are recorded in this task. Goal: publish the completed implementation to the user's designated repository without adopting unknown primary-checkout work, changing running service/data, exposing private runtime material or forcing remote history. Modules: Git release handoff and this task record only. Planning Gate Passed.
- Verified target `arr0918` is `https://git.nianxx.cn/shiyuyun/ARR-2.0-0918.git`; preserved separate original remote. Remote default branch/main currentlyad2c59256fedd82d88bb571430c6eaf07f9640c4, an ancestor of tested code tipdb42a5e. Local code has24 additional commits and no remote-only commits, so no conflict resolution, rebase, force-push or primary-checkout adoption is needed. Plan: review the publication range for private runtime artifacts, push the owned committed result to remote main, verify exact remote tip, then commit/push the handoff record. Existing completed test results apply; no new code change or business-test expansion is required.
- Publication outcome: fast-forward push to the designated remote main succeeded fromad2c592 to tested code tipdb42a5e087d2203927099b41a2805f8f0d700229; independent `git ls-remote arr0918 refs/heads/main` returned that exact commit. No force/rebase/history replacement. Read-only publication review covered24 commits,80 changed paths and186 historical changed blobs, including both processor archives; no newly introduced runtime credentials, private captures/databases, XML/business reports or unexpected large files were found. Test literals were distinguished from real credentials without printing values. Archive workbook members match the target remote's original members byte-for-byte; maximum changed blob approximately189KB.
- Handoff corrections: updated root field mapping, direct-input guide and deployment handover to the actual current4.4.0/019→020→021 contract, user-approved cancellation/PM exclusion, conditional normal association blanks, unified manual review, independent pending dates and truthful acquisition progress. Replaced obsolete claims that10/7 still needs fields with its saved succeeded38-room result, explicitly retaining the limit that actual workbook/monthly business contents were not newly validated. Both package hashes independently recalculated as `aac23951ca72cc6878b617cddaaa5dffd9dc6fe2dee1c9036db61c880118a134`. These are task-relevant root operational guides, not feature writes to canonical `.project-docs` memory. Handoff/document commit is published after code and independently tip-checked; no application code changed during this push follow-up.
- Verification/boundaries: existing completed feature tests remain applicable and were not repeated solely for documentation/push. Working diff whitespace and project-doc ownership checks passed; publication-range whitespace check with CRLF allowed passed. Default full-range whitespace check reported only CRLF endings from the pre-existing task-gate initialization commit; those shared template files were not modified or normalized. No running service restart/config change, database/schema operation, Oracle request, report generation, actual review value mutation, primary checkout adoption or deployment occurred in this follow-up. No PR was created. The unmanaged owned worktree remains retained because the local8875 service uses it; it is not eligible for automatic retirement and no cleanup is required to deliver the push.
- Follow-up/promotion: target deployment must apply the bundled migrations and release Web/processor together, then perform actual daily/monthly file acceptance with authorized data. Remote publication is a source handoff, not evidence that the target host deployed or passed business acceptance. Canonical-memory reconciliation remains a separate integration-mode promotion candidate; no policy reversal or additional business decision is required for this handoff.
+10 -8
View File
@@ -8,7 +8,8 @@
已用2026-10-07到店日保存的真实生产响应在本机离线重放176次读取,识别58条预订,字段及原始顺序与捕获一致。
结构化列表请求省略生产拒绝的可选排序;姓名摘要改用精确ID的`getProfiles` GET。
原始缺口由新增字段完善流程先处理,随后进入共用处理、独立校验、既有缺价复核、Finance日报与自动月报流程;人工XML上传继续保留。
当前状态是“生产请求兼容和字段识别已核对,10月7日业务字段值待确认”,不表示正式日报或生产报表验收通过。
当前本机已连接生产酒店57106,10月7日字段及价格核对已完成,系统保存38间房日报生成成功结果;实际日报文件及月报仍需逐项业务验收。
原始记录完整保留;按已确认的共用规则排除取消及PM预订后,只有仍会阻塞处理的字段进入“人工核对”。
当前目标:用户选一天,系统通过 OHIP 平台取得该日到店预订所需的数据,直接交给数据处理入口,沿用现有筛选、去重、定价、复核和报表规则。人工 XML 上传入口保留。自动取数不以取得或重建 XML 为前提。
@@ -17,28 +18,29 @@
## 契约与生产捕获核对
2026-09-18曾读取OHIP平台接口目录及接口说明:版本 **0.11.0,共184项操作**,历史查询编号保留在本文下方。
本轮对照保存的公开契约及生产捕获核对当前实现,不新增网络查询。58条完整采集仍有原始字段缺口:
首次对照保存契约及生产捕获解析58条完整采集时,曾列出以下缺口:
团队代码36项、套餐16项、公司2项、房号1项。`collection_complete=true`只表示预订列表与读取完整,
`input_complete=false`表示原始输入仍未齐备;不能用补空将其改成已验收。
`input_complete=false`表示该次原始解析尚有缺口,不能把这些历史数量当作当前人工待处理清单。
后续团队/套餐省略已按成功读取和相互一致的关联证据作有条件识别,不以未经核实的补空掩盖失败;见[依据及条件](.project-docs/50-evidence/topics/20261008-production-review-9e7b__oracle-optional-associations.md)。
人工完善只列出同一冻结处理器认定会阻塞候选记录的字段,因此待确认清单不必等于全部原始缺口数量。
## 逐字段对接
| 业务字段 | 从哪里取得 | 目前已有成果 | 接下来核实什么 |
|---|---|---|---|
| 团队 Block 代码 | 预订详情中的团队资料;必要时补查团队详情 | 已识别22条有值;36条原生省略仍为缺口 | 确认代码或人工明确无此项;不把团队编号、名称或省略当成代码或空值 |
| 团队 Block 代码 | 预订详情中的团队资料;必要时补查团队详情 | 初次解析22条有值、36条省略;现按关联证据有条件识别空值 | 正常无团队不逐项要求确认;身份/代码冲突或查询失败仍需核对,不把团队编号或名称当代码 |
| 成人数 | 预订详情、所选日的入住资料 | 已有取值和一致性检查 | 实际样本中的共享房、多房人数含义 |
| 儿童数 | 预订详情、所选日的入住资料 | 已有取值和一致性检查 | 零儿童与字段未返回的区别 |
| 公司/旅行社名称 | 预订关联的公司、旅行社资料;必要时补查相应档案 | 已识别56条有值;2条关联资料省略仍为缺口 | 缺失或多个不同名称时人工完善;公司名称须填写有效值 |
| 预订确认号 | 预订详情 | 已有取值 | 与同一笔预订准确对应,保留原始文字 |
| 房号 | 预订详情;换房、退房等情况补查房间历史 | 已识别57条有值;1条补查返回空日历仍为缺口 | 填写与目标日期对应的有效房号;`roomCalendar={}`不能证明无房号,不能确认为空 |
| 房号 | 预订详情;换房、退房等情况补查房间历史 | 原始57条有值、1条空日历;该笔取消预订已按批准规则排除 | 仅对处理范围内的记录填写有效房号;`roomCalendar={}`不能证明无房号 |
| 有效房价 | 对指定预订查询指定日期的房价 | 已有独立查询和金额检查 | 返回有效房价及币种;隐藏价格、缺失价格不能作为零价 |
| 住客姓名 | 预订唯一主客资料、`getProfiles`精确GET摘要,必要时补查档案详情 | 58条姓名已识别,身份和姓名组成核对通过 | 保留摘要完整显示姓名原文;不按姓名模糊关联或自行拼接 |
| 预订备注 | 预订详情中的 GEN 预订备注,包含内部备注 | 已有提取,并保留多条内容及顺序 | 多条备注进入既有处理规则后,团号是否正确 |
| 房间数 | 所选日对应的预订入住资料 | 已有取值 | 不把不同日期重复出现的房间数累加 |
| 套餐/附加产品 | 预订详情中的套餐清单;需要补充时再查对应套餐 | 已识别42条有套餐;16条原生省略仍为缺口 | 人工确认按序套餐代码或明确无此项;套餐金额为零不能证明无套餐 |
| 套餐/附加产品 | 预订详情中的套餐清单;需要补充时再查对应套餐 | 初次解析42条有套餐、16条省略;现按成功读取及请求条件识别正常空值 | 正常无套餐不逐项要求确认;失败、冲突或格式问题仍需核对,套餐金额零不能证明无套餐 |
| 费率代码 | 所选日对应的预订房价资料 | 已有取值 | 取得目标日期的代码;取得后才交由原有白名单处理 |
| 房型 | 预订详情中的房型代码 | 已有取值和一致性检查 | 房型变更时采用哪个日期对应的值;不以计价房型替换 |
| 房型 | 预订详情中的房型代码 | 已有取值和一致性检查;共用规则排除PM | 不以计价房型替换,也不凭房号前缀或零价推断PM |
| 入住日期 | 预订入住资料 | 已有取值 | 与用户选择的到店日期一致 |
| 离店日期 | 同一预订入住资料 | 已有取值 | 不早于入住日,并保留当天离店情况 |
@@ -53,7 +55,7 @@
再按原规则重新识别该笔需要完善的字段;不另设筛选或定价规则。
业务人员仅能修改清单列出的异常字段。团队代码、备注、套餐和房型可人工明确“确认无此项”;
公司、房号及其他必填字段必须提供有效值。任何未返回字段在人工确认前都不会自动补空。
公司、房号及其他必填字段必须提供有效值。团队/套餐的正常省略仅在已记录的严格条件内自动识别为空,其他缺失、失败或冲突不自动补空。
原始捕获保持不变,人工决定保存原值、新值、操作者和版本,全部阻塞项通过后冻结派生来源并自动继续原请求。
随后共用原白名单、原顺序去重、定价及独立校验。若缺少pureprice,进入原有`needs_review`价格复核;
+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处理器一起更新;旧已发布结果不自动重跑。
+24 -20
View File
@@ -1,17 +1,21 @@
2026-10-08补充:用户已确认日报排除已取消预订。当前处理器4.3.0需在019后应用020;Web与处理器同时发布,月报复用保留的日报事实。完整原始数据保留,取消单不补房号。已有未处理任务接续必须备份并显式记录新旧规则身份,不能复用旧身份直接运行新规则。下文2026-09-18部署/测试情况为历史记录,不代表当前本机生产连接状态。
# ARR 自动取数交付与生产启用说明
交付日期:2026-09-18。状态:**开发收尾完成,生产配置和真实数据验收待完成。**
用户已确认日期选择交互可用,并说明当前测试环境没有可用于验收的数据。
更新日期:2026-10-08。状态:**代码收尾完成,本机已连接生产酒店57106;目标主机部署和完整报表业务验收仍需执行。**
本机10月7日任务已保存生成成功结果,38间房;该状态不代表已逐项核对实际日报文件及月报内容。
早期沙箱/模拟检查是历史验证,不替代生产业务验收。生产连接、修复和本机验证记录见[本次任务](../.project-docs/30-worklog/tasks/20261008-production-review-9e7b.md)。
当前处理器为4.4.0。目标数据库需按顺序具备019、020和021,Web与处理器必须一起发布。
用户已确认两条输入路径都排除已取消预订和PM房型;完整原始数据仍保留,不要求被排除记录补房号。
已有未处理任务接续必须备份并显式记录新旧规则身份,不能复用旧身份直接运行新规则;已发布结果不自动重新处理。
## 完成的产品流程
选择一天 → 从 OHIP 获取到店预订和关联资料 → 按既有规则筛选、去重、定价 → 生成日报 → 入库后自动更新月报 → 下载处理后的报表。
选择一天 → 从 OHIP 获取到店预订和关联资料 → 如有阻塞字段则人工核对 → 按共用规则筛选、去重、定价 → 如缺价则人工核对价格 → 生成并下载日报 → 入库后自动更新月报。
- 自动入口覆盖15个业务字段、8个查询接口;Trace按约定不获取。
- 直接处理接口数据,不生成中间XML;原人工XML上传入口保留。
- 日期选择、运行中预选、任务状态、重复提交保护和原任务恢复已实现。
- 日期选择、运行中预选、任务状态、重复提交保护和原任务恢复已实现;取数进度按预订笔数显示,最终完整性核对通过才显示100%。
- “需处理日期”保留不同日期的字段/价格待处理任务;统一在“人工核对”中完成。取数已完成不等于报表已生成。
- 缺少定价资料进入原有价格复核;影响处理的必需字段缺失或存在无法确定的候选时提示异常。
- 本机模拟已覆盖日报、复核、入库、月报、报表下载及断线恢复;用户确认日期交互验收通过。
@@ -21,16 +25,15 @@
| 项目 | 当前边界及启用要求 |
|---|---|
| 酒店与平台 | 当前本机是OHIPSB02沙箱。生产须由平台完成正式Oracle环境/酒店的路由和授权;本地hotel-id仅校验返回酒店,不能把沙箱接口切成生产接口。 |
| 酒店与平台 | 当前本机已连接生产酒店57106。目标部署仍须核对平台实际路由和授权;本地hotel-id仅校验返回酒店,不能把沙箱接口切成生产接口。 |
| 应用身份 | 当前客户端固定平台`https://ohip.nianxx.cn`及应用`caller_zloxalzsQ9pYsztt`。如生产改用其他平台或新应用,需适配并验证固定身份配置;替换一份不同身份的密钥文件会被拒绝。 |
| 读取权限 | 现沙箱所需权限已补齐。生产应用须覆盖预订、档案、团队、房间历史及套餐8个操作;现有配置需求包含reservations.read、profiles.read、blocks.read、configuration.read。保留平台已授其他权限,不盲目覆盖权限集。 |
| 数据库 | 在已具备018的目标库上应用019;既有迁移及运行配置要求隔离库名`booking_test`。若正式环境使用其他库名,先适配和验证数据库边界,不能直接删除保护或假设已有兼容。 |
| 读取权限 | 目标应用须覆盖预订、档案、团队、房间历史及套餐8个操作;现有配置需求包含reservations.read、profiles.read、blocks.read、configuration.read。保留平台已授其他权限,不盲目覆盖权限集。 |
| 数据库 | 在已具备018的目标库上按顺序应用019、020、021。本机已升级至021;既有迁移及运行配置要求隔离库名`booking_test`。若目标使用其他库名,先适配和验证数据库边界,不能直接删除保护或假设已有兼容。 |
| 自动取数入口 | 标准启动器支持三个OHIP参数,现有基础Compose尚未传入,部署时须明确加入。仅按基础Compose启动会保留原处理入口而不启用自动取数。 |
| 凭据和持久数据 | 挂载正式凭据目录,并为任务/原始数据配置仓库外的持久目录。目录0700、凭据文件0600,属主为实际运行用户;容器须按容器UID准备属主。凭据只读挂载,任务目录可写,不能放临时目录或镜像内。 |
| 月报与报表存储 | 复用正确配置的数据库和OSS,独立月报worker须由进程管理器持续运行。网页可访问、Web健康检查成功不等于月报worker已启动。 |
当前固定平台/应用身份和数据库名称均保留原有边界,本次收尾没有放宽它们。
正式环境参数尚未提供,本次没有部署、修改平台路由、数据库迁移、重启或新增取数。
固定平台/应用身份和数据库名称均保留原有边界。本次代码推送不部署目标主机、不修改平台路由、不重新查询或生成报表。
## 启动对照
@@ -48,15 +51,15 @@
月报另按部署说明运行`python -m monthly_reports.worker --output-root /app/outputs/monthly_reports`并配置持续监管。
`--enable-monthly-generation`是另一个手动生成入口,不替代自动月报worker。
数据库019的升级/回退文件位于`database/019_ohip_data_source.sql`和对应`.down.sql`。
先检查现有版本、备份和副本验证,再在正式启用窗口升级;已经有JSON来源记录时回退会被保护机制拒绝。
数据库升级文件为`database/019_ohip_data_source.sql`、`database/020_daily_cancelled_exclusion.sql`、`database/021_daily_pm_exclusion.sql`,各有对应`.down.sql`。
先检查现有版本、备份和副本验证,再在正式启用窗口按顺序升级;已有相应来源/排除事实时回退会被保护机制拒绝。
## 有真实数据后的首日验收
这一步待数据可用并明确开始验收后执行,本次不发起查询:
以下是目标部署后的验收步骤,本次推送不发起查询:
1. 选一个有到店记录的日期,确认来自正确酒店、范围完整,15字段的空值/缺失/候选状态符合实际。
2. 完成原有处理;若缺价则完成复核,再核对日报记录、金额和原有业务规则。
2. 完成需要的字段及价格核对;人工价格允许明确填写0,空白不能当0。核对日报记录、金额以及已确认的取消/PM排除规则。
3. 确认月报自动更新,页面能够下载日报及月报,文件内容和汇总一致。
4. 确认刷新/断线后能恢复原任务,重复继续不会重复入库。
@@ -64,9 +67,10 @@
## 收尾检查与已知验证范围
- 先前直接处理验收:220项相关检查及5项JS检查,包含独立本机PostgreSQL和模拟页面全流程,详见[记录](../.project-docs/50-evidence/topics/2026-09-18-arr-direct-processing.md)。
- 最新日期修复:9项JS与27项Python检查、用户原页面实点和用户确认,详见[记录](../.project-docs/50-evidence/topics/2026-09-18-arr-calendar-selection.md)。
- 本次收尾:2项部署入口检查通过,标准启动帮助确认三个OHIP参数可用。
- 处理器`.zip`及`.skill`各8个关键文件与源码逐字节一致,两包SHA-256均为`feea915e7db49365f9139af8e236440038fe1d5099faf9c096e9bb3fa0f62436`。
- 2026-09-18直接处理验收:220项相关检查及5项JS检查,包含独立本机PostgreSQL和模拟页面全流程,详见[记录](../.project-docs/50-evidence/topics/2026-09-18-arr-direct-processing.md)。
- 2026-09-18日期修复:9项JS与27项Python检查、用户原页面实点和用户确认,详见[记录](../.project-docs/50-evidence/topics/2026-09-18-arr-calendar-selection.md)。
- 2026-09-18收尾:2项部署入口检查通过,标准启动帮助确认三个OHIP参数可用。
- 最新功能验证:取数进度118项后端、84项JavaScript及13项静态UI检查通过,实际本机9月15日显示85/85笔且人工核对仍保留。取消/PM、字段/价格核对、日报/月报和迁移的既有验证及边界见本次任务记录。
- 当前处理器`.zip`及`.skill`已随4.4.0更新,两包SHA-256均为`aac23951ca72cc6878b617cddaaa5dffd9dc6fe2dee1c9036db61c880118a134`;压缩包内工作簿与原版一致。
- 本机没有Docker命令,本次未构建或启动生产镜像;正式主机部署验证待执行。
- `.zip/.skill`是处理器包,完整Web交付还包含项目源码、数据库019及运行配置,不能只上传处理器包来启用自动下载。
- `.zip/.skill`是处理器包,完整Web交付还包含项目源码、数据库019至021及运行配置,不能只上传处理器包来启用自动下载。