Files
one_divine_lot/docs/04-迭代记录/03-QMT连接配置/验收标准.md
T
kyugao bb3f8bd28d feat: 迭代03-05 交易记录接入、行情实时、QMT连接配置、data store 标准化
- R-004 QMT连接配置:多配置管理 + 会话头部快捷切换(03-QMT连接配置)
- R-005 WS盘中价格实时更新:服务端中转+缓存+前端轮询(04-WS盘中价格实时更新)
- R-006 策略数据 JSON data store 标准化(store.json/market.json/schema.json)
- R-007 交易记录接入:当日订单+成交单表合并(委托主行+展开成交明细)、时间段查询(今日/本周/本月+手动起止)、费用计算(佣金费率万m_dCommission+最低5元、印花税卖出万5、过户费双向万0.1)
- 架构治理:api 按领域拆分、component 目录、QmtHealthMonitor
2026-09-01 13:21:49 +08:00

60 lines
5.0 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.
# 迭代 03:验收标准
> 依据:PLAN-003 验收标准;产品约束-005/006、UI约束-001/002
## 验收标准线(全部满足才判定达成)
1. 设置页出现「QMT 连接配置」子 tab(与通用设置/策略分组并列),配置 CRUD 完整可用(名称 + HTTP 地址);
2. 激活某配置后数据源**立即**切到该地址(无需重启 DSH)——切换后用「测试连接」/持仓加载验证目标端点随激活配置变化;
3. 默认配置行为正确:启动自动激活默认;重启后回到默认(即使运行中切过其他配置);列表为空时按 cordis qmtBaseUrl 兜底可用;
4. 「测试连接」返回可达性 + 延迟;激活不强制先测试;
5. 删除边界符合产品约束-005:删激活→自动切默认;删默认→默认转移列表第一条并激活;删最后一条被禁止(有提示);
6. 会话头部 PTC 标签旁出现 `QMT: <激活配置名>` chip;点开菜单列出全部配置(激活项勾选);点选即激活并 toast 反馈;头部仅切换(无管理入口);
7. 现有功能(分仓/策略/设置现有子 tab)不回归。
## 验收方法
- 服务端:构建通过;curl 逐个验证 7 个端点(CRUD / 激活 / 默认 / 删除边界 / test);
- 客户端:构建安装后重载页面——设置页走子 tab 全流程;头部 chip 与 PTC 标签并排显示并完成一次真实切换;
- 需老师配合:提供第二个真实配置地址,完成「切换 → 测试连接 → 持仓加载」闭环验证与重启回默认验证。
## 验收目标
判定本迭代是否达成 R-004 定稿范围(产品约束-005/006 全量落地);通过后 R-004 移入已完成并归档。
## 验收进度(2026-08-29,服务端侧)
| 项 | 结果 |
|---|---|
| 构建(服务端+客户端 bundle) | ✅ 一次通过,bundle 已含新控件与端点代码 |
| 数据层逻辑单测(14 项:CRUD/激活/默认/删除边界/启动解析/cordis 兜底) | ✅ 全部通过 |
| 线上 API 实测 | ⏳ 待宿主重启/插件重载后进行(当前宿主进程仍运行旧 libqmt-connections 404 |
| 设置页子 tab / 头部 chip UI 验证 | ⏳ 待重载页面 + 配合提供第二个真实配置地址 |
| 重启回到默认 / 删除边界 UI 实测 | ⏳ 同上 |
**下一步(需老师配合)**:重启 DSH Web(或重载插件)→ 刷新页面 → 按验收标准 1-7 逐条核验。
### 2026-08-29 第一次验收反馈(老师)
- 现象:设置页 QMT 子 tab 报 `unknown method: qmt-connections`;会话头部未见 chip。
- 定位:① 页面刷新只重载了客户端 bundle(新设置子 tab 已出现),服务端插件代码为宿主进程启动时加载,宿主未重启仍在运行旧 lib —— 端点 404 属预期过渡状态,需重启 DSH Web;② chip 原实现「无配置时隐藏」与 Q4 不迁移组合产生空态不可见问题,已修正为**空配置态也显示 chip**(菜单提示去设置添加,仅服务端未就绪时隐藏),重新构建通过(66127 bytes)。
- 待办:老师重启 DSH Web 后按验收标准 1-7 核验。
## 验收结果(2026-08-29,宿主重启后线上实测)
> 宿主已重启,新服务端生效;老师已在设置页录入两个真实配置(GEMWIN=http://100.110.38.78:8610 / QMT_CYY=http://192.168.3.43:8610),激活与默认均为 GEMWIN。
| 验收标准 | 结果 | 证据 |
|---|---|---|
| 1. 设置页「QMT 连接配置」子 tab + 配置 CRUD | ✅ | 老师经 UI 实录 2 条配置(GEMWIN/QMT_CYY),列表/激活/默认状态正确返回 |
| 2. 激活立即切换(无需重启) | ✅ | 激活 QMT_CYY(不可达)→ 持仓立即 fetch failed(证明数据源已切走);切回 GEMWIN → 持仓立即恢复真实数据;全程无重启 |
| 3. 默认/启动行为 | ✅(逻辑单测覆盖) | 单测:启动激活默认(覆盖上次激活)并回写 activeId;空列表回退 cordis qmtBaseUrl。线上最终激活=GEMWIN=默认,状态一致;下次重启可复核启动日志 |
| 4. 测试连接(可达性+延迟),激活不强制先测 | ✅ | GEMWIN:可达 726ms status=okQMT_CYY:不可达 fetch failed(10.1s);激活不可达配置无预检直接成功(符合 Q3) |
| 5. 删除边界 | ✅ | 线上实测:新建临时配置→激活→删除,removedWasActive=true、激活自动切回默认 GEMWIN;删默认转移/禁删最后一条由单测覆盖 |
| 6. 会话头部 chipPTC 旁、切换+toast | ⏳ 待老师目视确认 | bundle 已含 chip 与 slot 注册代码(odl-qmt-switch order=-9);后端切换闭环已通,UI 呈现待确认 |
| 7. 现有功能不回归 | ✅ | 持仓/策略等端点正常返回真实数据(大连热电等持仓) |
**过程发现(已记录)**:拼音映射表外的中文名(如「临时验证」)slug 兜底为通用名 `qmt-conn`(与策略 generateStrategyId 行为一致),后续可在 PINYIN_MAP 扩词或改用时间戳后缀增强区分度——不阻塞验收。
**遗留待确认**:验收标准 6(头部 chip UI 呈现),由老师刷新页面目视确认。