Files
chisup/docs/06-tasks.md
T

75 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 任务看板(Tasks)
> 把 MVP 拆成小步、可独立交付的任务。每轮只做一个任务。
## 使用规则
1. 每轮只领取第一个状态为 `TODO` 且依赖均为 `DONE` 的任务。
2. 开始前把任务状态改为 `DOING`。
3. 完成、自测并记录证据后,把任务状态改为 `DONE`。
4. 完成后向 [../progress.md](../progress.md) 追加记录,并覆盖更新 [current-state.md](current-state.md)。
5. 结束前检查 [clean-state-checklist.md](clean-state-checklist.md)。
## 状态图例
`TODO` 待开始 · `DOING` 进行中 · `DONE` 已完成并验收 · `BLOCKED` 受阻
## Phase 0 · 项目地基
| ID | 任务 | 依赖 | 验收要点 | 状态 |
| --- | --- | --- | --- | --- |
| T-001 | 初始化 Flask 项目骨架 | - | 使用当前系统 Python 3.8,不创建虚拟环境;创建 `requirements.txt` 并固定 `Flask==3.0.3`;本地 health check API 可启动;真实命令同步到技术栈和当前状态 | TODO |
| T-002 | 建立基础配置与目录 | T-001 | 目录符合架构文档;配置从环境变量读取;无真实密钥 | TODO |
| T-003 | 建立最小测试框架 | T-001 | pytest 可运行;至少有 health check 或 app factory 测试 | TODO |
## Phase 1 · CHIS 登录与会话
| ID | 任务 | 依赖 | 验收要点 | 状态 |
| --- | --- | --- | --- | --- |
| T-101 | 迁移 CHIS 登录链路 | T-002 | 参考 `D:\hans\chupd\chis\login_client_v2.py`;登录逻辑进入 `app/chis/auth.py` 或等价模块;public key 从配置读取;账号密码不落日志;失败返回明确错误 | TODO |
| T-102 | 接入账号信息查询验证会话 | T-101 | 能用已有 cookie 查询当前账号信息;失败可判断会话无效 | TODO |
| T-103 | 实现 Redis 会话缓存 | T-102 | 会话对象包含 cookies、账号、角色/机构、过期时间;有效会话复用;无效会话清理 | TODO |
| T-104 | 实现失效重登策略 | T-103 | CHIS 返回未登录时清缓存、重登一次、重试一次;不会无限重试 | TODO |
## Phase 2 · CHIS 只读查询验证
> 在保存上报前,先用只读查询验证登录、cookie、角色/机构上下文、SM2 加密和通用 `*.jsonRequest` 是否可用。
| ID | 任务 | 依赖 | 验收要点 | 状态 |
| --- | --- | --- | --- | --- |
| T-201 | 实现通用 CHIS jsonRequest client | T-104 | 自动携带会话;处理 timeout、CHIS 错误和未登录;能调用 `getLanderInfo` 与 `getEncryType` | TODO |
| T-202 | 实现体检详情查询 client | T-201 | 参考 `reverse_file/20260704_query_health_check.har`;支持 `healthCheck + phrId + idCard` 调 `getHMNIListOfHTML`;支持 `idCard + checkDate` 调 `getCheckInfoDetail` | TODO |
| T-203 | 跑通只读查询 spike | T-202 | 登录后能查询体检详情;验证结果写入 `progress.md`;不产生 CHIS 写入副作用 | TODO |
| T-204 | 验证仅凭体检 id 查询的前置参数来源 | T-203 | 明确是否能用 `healthCheck` 反查 `phrId/idCard/checkDate/empiId/createUser`;如不能,文档中确认第一版查询 API 需要调用方传全参数 | TODO |
## Phase 3 · 第三方上报 API
| ID | 任务 | 依赖 | 验收要点 | 状态 |
| --- | --- | --- | --- | --- |
| T-301 | 定义第三方鉴权方式 | T-003 | 未授权请求返回统一 401/403;密钥通过环境变量或配置加载 | TODO |
| T-302 | 定义体检上报请求模型 | T-301 | 请求字段、必填校验、错误响应写入 `api.md`;测试覆盖参数缺失 | TODO |
| T-303 | 实现幂等键存取 | T-302 | 相同 `source + request_id` 重复提交不会重复执行 CHIS 保存 | TODO |
## Phase 4 · 体检转换与 CHIS 提交
| ID | 任务 | 依赖 | 验收要点 | 状态 |
| --- | --- | --- | --- | --- |
| T-401 | 建立内部体检标准模型 | T-302 | 第三方输入先转换为内部模型;字段不直接耦合 CHIS 请求 | TODO |
| T-402 | 实现最小 CHIS 体检 mapper | T-401 | 参考 `reverse_file/20260702_442525195910165439_create_health_check.har`;生成包含 `hcData` 的最小保存请求;有样例测试 | TODO |
| T-403 | 跑通单条体检上报闭环 | T-303, T-402, T-201 | 第三方请求进入后能转换并提交 CHIS,返回统一结果和 trace_id | TODO |
## Phase 5 · 稳定性与收尾
| ID | 任务 | 依赖 | 验收要点 | 状态 |
| --- | --- | --- | --- | --- |
| T-501 | 补齐错误码和日志脱敏 | T-403 | 常见错误有统一 code;日志不包含明文敏感信息 | TODO |
| T-502 | 完整 MVP 验收 | T-501 | `02-requirements.md` 的 P0 验收全部通过 | TODO |
| T-503 | 部署运行文档 | T-502 | 新环境能按文档安装、配置、启动、验证 | TODO |
## Backlog
- 管理后台。
- 异步队列和失败重试。
- 更多 CHIS 业务类型。
- 字典同步和配置化 mapper。