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
This commit is contained in:
2026-09-01 13:21:49 +08:00
parent 5a723d514e
commit bb3f8bd28d
57 changed files with 5244 additions and 397 deletions
@@ -0,0 +1,63 @@
# 计划:交易记录接入(订单与成交数据 + 日期导航)(阶段航点)
> 编号:PLAN-006 | 粒度:阶段航点(大粒度) | 创建:2026-09-01 状态:**进行中**
> 派生自终极目标:目标-006(交易复盘)、目标-003(按策略监控市场)
> 依据需求:**R-007(范围已定稿,2026-09-01)** —— 符合入范围门槛
> 设计约束:技术约束-001/003/004/010(沿用)、产品约束-007 方向(着色习惯,红买绿卖为交易方向新语义)
## 目标
在「交易记录」tab 接入 QMT Bridge 当日订单(/trade/orders)与成交(/trade/trades)数据:**单表合并展示**(委托主行 + 按 m_strOrderSysID 展开成交明细)+ **基于交易日历的日期导航**(当日默认选中,历史接口占位,为老师完善 QMT Bridge 历史成交接口预留)。
## 范围
**做**
1. **数据源接入**QmtBridgeRestDataSource 新增 getOrders() / getTrades() / getTradingDates()(语义化映射,核心字段见 R-007 2.1/2.2);
2. **服务端 API**:新增 api/trades.jsorders / trades / trading-dates 端点),纳入领域分发;
3. **交易记录 tab 落地**:占位 tab 替换为 TradeRecordsTab——**单表合并**:委托主行(聚合成交)+ 展开/折叠成交明细;
4. **日期导航**DateNav 基于 /data/calendar/trading_dates,前后切换交易日,当日默认选中,历史日期展示「接口开发中」占位;
5. **排序**:委托主行默认降序(最新在前),支持表头点击手动排序;
6. **数据刷新**:服务端中转 + 前端轮询(3-5s,复用 market-snapshot 模式)。
**不做**
- 历史(非当日)交易数据查询实现(老师完善 QMT Bridge 接口后接入);
- 交易数据本地持久化(Q5 本期不做);
- 按策略过滤交易(Q10 后续迭代);
- 下单/撤单等交易操作(目标-007 控制权另议)。
## 程序结构(改造后)
```
src/
├── component/
│ └── QmtBridgeRestDataSource.js # 改:+getOrders/getTrades/getTradingDates
├── api/
│ ├── trades.js # 新增:orders/trades/trading-dates 端点
│ └── index.js # 改:合并 TRADE_METHODS
├── client/
│ ├── views/
│ │ ├── TradeRecordsTab.jsx # 新增:交易记录 tab(日期导航 + 单表合并)
│ │ ├── OrderRow.jsx # 新增:委托主行(聚合成交 + 展开)
│ │ ├── TradeDetailRows.jsx # 新增:展开成交明细行
│ │ └── DateNav.jsx # 新增:交易日历日期导航
│ └── index.js # 改:tradeRecords tab 渲染 TradeRecordsTab
```
## 实现步骤(建议顺序)
1. **文档骨架**PLAN-006 + 迭代 05 子目录(本步);
2. **数据源**getOrders/getTrades/getTradingDates(语义化映射 + 方向判定);
3. **服务端 API**api/trades.js 三端点 + 领域分发注册;
4. **客户端合并逻辑**fetch 两接口 → 按 m_strOrderSysID 分组 → 聚合;
5. **UI**DateNav + OrderRow + TradeDetailRows + TradeRecordsTab;排序(默认降序 + 表头点击);
6. **构建安装**pnpm run build + 页面刷新(客户端)或宿主重启(服务端);
7. **验收**:对照迭代 05 验收标准逐条核验,记录迭代复盘。
## 验收要点
- 交易记录 tab 显示当日委托(单表合并,展开可见每笔成交);
- 委托主行:时间/代码/名称/方向/状态/委托量/成交量/委托价/成交均价/成交额/手续费;
- 方向红买绿卖;状态中文映射;未成交列显示 —;
- 日期导航基于交易日历,前后切换,当日默认,历史占位;
- 排序默认降序 + 表头手动排序;
- 现有功能(持仓/策略/行情/连接配置)不回归。