feat: add date-based OHIP data reporting alongside XML
This commit is contained in:
1 parent
5ecd571e3b
commit
ad2c59256f
259 files changed
+37326
-126
No files matched your search
+36
-1
@@ -1,5 +1,39 @@
|
||||
# ARR 2.0 Web
|
||||
|
||||
2026-09-18:[直接数据入口](DIRECT_DATA_ENTRY.md)已接通日期按钮、日报、复核和月报;独立本机模拟8875,未查询实际Oracle。
|
||||
|
||||
2026-09-17:[本机接口模拟全流程及按钮联调](LOCAL_API_SIMULATION.md)已在独立8874验证;[原文件重放](LOCAL_XML_REPLAY.md)8873保留。两个入口均明确未连接Oracle,不改变默认运行配置。
|
||||
|
||||
按钮已完成真实浏览器联调(单日、重复点击、刷新、日报/月报下载),并修复模拟源日期不存在时无法改选的问题。
|
||||
提交/未知结果身份保护的离线测试:`node --test tests/javascript/arr_download_submission.cjs`,不连接服务或数据库。
|
||||
|
||||
后端受控装配已支持`main(argv, arr_source=CapturedARRSource(...))`,共享现有处理依赖并按顺序关闭工作线程/存储。
|
||||
默认启动仍未配置真实来源;接入和目录绑定要求见[受控启动装配](ARR_DOWNLOAD_HANDOFF.md#受控启动装配2026-09-17)。
|
||||
相关独立测试:`.venv/bin/python -m unittest tests.test_arr_download_runtime`。
|
||||
|
||||
## 本地页面预览
|
||||
|
||||
不要直接打开 `arr_web/static/index.html`:`file://` 无法提供页面依赖的 `/assets` 和 `/api`。
|
||||
在项目根目录运行 `.venv/bin/python -m arr_web.preview`,然后打开
|
||||
[本地只读预览](http://127.0.0.1:8872/)。可用 `--port` 修改端口,退出进程即停止预览。
|
||||
|
||||
预览只监听本机回环地址,显示真实页面和明确的预览标识,历史为空,所有业务写操作均拒绝。
|
||||
它不读取生产配置、连接数据库/OSS/OHIP 或启动下载;生产启动和登录方式不受影响。
|
||||
|
||||
真实 PostgreSQL 事务联调可单独运行:
|
||||
|
||||
```sh
|
||||
ARR_TEST_LOCAL_POSTGRES=1 .venv/bin/python -m unittest -v tests.test_arr_download_postgres_integration
|
||||
```
|
||||
|
||||
需要本机 `initdb`、`pg_ctl` 和 `psycopg`。测试自行创建私有临时集群,关闭 TCP 监听,使用合成来源和本地对象存储,
|
||||
仅在该新集群应用现有008–019迁移;结束时停止并删除。它不接受外部 DSN 或既有数据库配置;未显式启用时跳过。
|
||||
|
||||
下载卡片的浏览器重连测试可运行 `node --test tests/browser/arr_download_reconnection.cjs`。
|
||||
需要本机 Playwright/Chromium 和项目 `.venv`;可用 `ARR_TEST_PLAYWRIGHT_MODULE` 指定 Playwright 模块绝对路径,
|
||||
`ARR_TEST_CHROMIUM` 指定本机浏览器可执行文件。测试自行启动并关闭空数据、只读的回环预览,下载接口响应全部合成,
|
||||
覆盖首次断网、日期/任务恢复、服务恢复、隐藏暂停和请求合并,不连接真实酒店或业务数据库。
|
||||
|
||||
Web 层提供固定页面和审计友好的 API。生产 XML 写路径为:
|
||||
|
||||
`POST /api/jobs` → `ProgrammaticUploadCoordinator` → 固定处理器 → `DeliveryValidator` → PostgreSQL 原子提交。
|
||||
@@ -9,6 +43,7 @@ Web 层提供固定页面和审计友好的 API。生产 XML 写路径为:
|
||||
- `GET /login`、`POST /api/login`、`POST /api/logout`
|
||||
- `GET /api/session`
|
||||
- `GET /api/health`
|
||||
- `GET` / `POST /api/arr-downloads`、`GET /api/arr-downloads/{request_id}`、`POST /api/arr-downloads/{request_id}/retry`:单日自动下载任务;[接入契约与当前未就绪边界](ARR_DOWNLOAD_HANDOFF.md)
|
||||
- `GET /healthz`:仅供容器读取的无详情 readiness 探针
|
||||
- `POST /api/jobs`
|
||||
- `GET /api/jobs`
|
||||
@@ -29,7 +64,7 @@ ARR 2.0 不注册 `/api/integrations/super-agent/results`。访问旧回调地
|
||||
|
||||
`--enable-processing` 只有在数据库、OSS、固定处理器和独立验证器全部初始化成功时才使 `processing_ready=true`。上传处理是同步终态边界:HTTP 保持 `202` 兼容页面,但响应前已经完成验证/入库或记录失败。
|
||||
|
||||
日报历史和任务日志中的“文件”只显示浏览器上传的 XML basename。内部源工件继续规范化为 `source.xml`,不会暴露到这两个用户界面;迁移前的历史任务没有可还原的上传名,页面显示 `—`。
|
||||
日报历史中的“文件”显示浏览器上传的 XML basename,自动数据来源显示“接口获取”。内部源工件分别规范化为 `source.xml` 和 `source.json`,不会暴露到这两个用户界面;迁移前的历史任务没有可还原的上传名,页面显示 `—`。
|
||||
|
||||
月报主页面没有月份、截止日、手动生成或手动刷新控件。日报提交成功后,独立 `monthly_reports.worker` 消费 outbox 事件;它从数据库内纳入数据的最新 `ARRIVAL` 派生“更新至”。月报页可见时每四秒自动读取 `reporting.monthly_runs`,新版本发布后直接新增;页面隐藏或离开该页时停止轮询,恢复时立即读取。Web 内部 POST 生成端点只作为显式启用的受控恢复入口,不属于用户主流程。
|
||||
|
||||
|
||||
Reference in new issue
Block a user