Files
zjjk/主力资金动向需求文档.md
2026-04-08 20:04:40 +08:00

347 lines
7.2 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.

# 主力资金动向需求文档
## 1. 项目目标
建设一个“主力资金动向”模块,用于接收用户上传的资金流向截图,调用 Kimi 多模态模型进行识别,生成结构化数据,并在人工校对后保存到数据库中。
该模块分为两部分:
1. 列表查询页
2. 新增/识别/校对/保存页
本阶段以数据库存储为准,不再使用 JSON 作为正式业务存储。
## 2. 业务背景
当前无法直接依赖 Wind API 获取相关数据,因此改为通过截图识别的方式采集“主力资金动向”数据。
识别链路要求如下:
1. 用户上传图片
2. 后端调用 Kimi 进行视觉识别
3. 模型返回结构化识别结果
4. 前端展示识别结果供用户人工校对
5. 用户确认或修改后点击保存
6. 数据写入数据库
说明:
1. 每个交易日只生成一条记录
2. 图片需要保留原始文件,支持列表点击查看详情
3. `intraday_summary` 只描述日内资金走势,不重复金额字段
## 3. 功能范围
### 3.1 列表页
列表页用于查看已保存的“主力资金动向”记录。
列表字段包括:
1. 日期
2. 机构资金
3. 主力资金
4. 大户资金
5. 散户资金
6. 走势
7. 总结
8. 图片详情入口
列表能力要求:
1. 支持按日期倒序展示
2. 支持点击某一行查看详情
3. 支持点击图片或详情按钮查看原图
4. 默认一页展示最近记录
### 3.2 新增页
新增页用于生成并保存当日记录。
页面交互流程:
1. 用户点击“新增”
2. 选择并上传图片
3. 后端调用 Kimi 识别
4. 前端展示识别结果
5. 用户可手动修改识别结果
6. 用户点击“保存”
7. 后端进行唯一性校验并写入数据库
新增页展示字段:
1. 日期
2. 机构资金
3. 主力资金
4. 大户资金
5. 散户资金
6. 走势
7. 总结
8. 原始图片预览
### 3.3 详情页
详情页用于查看某日记录完整内容。
详情页内容包括:
1. 原图
2. 日期
3. 机构资金
4. 主力资金
5. 大户资金
6. 散户资金
7. 走势
8. 总结
9. 创建时间
10. 更新时间
## 4. 业务规则
### 4.1 唯一性规则
同一个日期只允许存在一条正式记录。
处理策略建议:
1. 保存时按 `trade_date` 做唯一校验
2. 若当天数据已存在,则提示“该日期记录已存在”
3. 后续如需要覆盖更新,可增加“编辑”模式,不在本期范围内默认覆盖
### 4.2 识别规则
Kimi 识别后返回字段:
1. `trade_date`
2. `subject`
3. `snapshot_time`
4. `main_force_amount_yi`
5. `institution_amount_yi`
6. `large_household_amount_yi`
7. `retail_amount_yi`
8. `overall_trend`
9. `intraday_summary`
识别要求:
1. 金额字段单独存储
2. 总结只描述走势,不重复罗列金额
3. 如果图片中未显示日期,则允许前端人工填写
4. 如果识别结果不准确,用户可直接修改后再保存
### 4.3 图片存储规则
1. 原图必须保存
2. 数据库中保存图片访问路径
3. 后续列表和详情页通过路径展示图片
## 5. 前端需求
### 5.1 页面结构
主力资金动向模块包括:
1. 列表页
2. 新增弹窗或新增页面
3. 图片详情预览能力
### 5.2 列表页交互
页面顶部:
1. 模块标题:“主力资金动向”
2. 新增按钮
页面主体:
1. 表格展示历史记录
2. 每行可查看图片详情
3. 每行可点击进入详情
建议字段顺序:
1. 日期
2. 机构资金
3. 主力资金
4. 大户资金
5. 散户资金
6. 走势
7. 总结
8. 图片详情
### 5.3 新增页交互
新增页流程:
1. 上传图片
2. 点击“识别”
3. 等待 Kimi 返回结果
4. 展示识别结果表单
5. 用户人工修正
6. 点击“保存”
新增页按钮建议:
1. 上传图片
2. 开始识别
3. 保存
4. 取消
状态要求:
1. 识别中需要显示加载状态
2. 识别失败时需要显示错误提示
3. 保存成功后返回列表并刷新
## 6. 后端需求
### 6.1 接口设计
建议后端提供以下接口:
1. `GET /api/main-capital-flows`
用于获取列表数据
2. `GET /api/main-capital-flows/{id}`
用于获取详情数据
3. `POST /api/main-capital-flows/recognize`
用于上传图片并调用 Kimi 识别,返回识别结果,但不落正式业务表
4. `POST /api/main-capital-flows`
用于保存经人工确认后的正式数据
5. `GET /main-capital-flow-images/{filename}`
用于访问原图
### 6.2 后端处理流程
识别接口:
1. 接收图片
2. 保存临时图片
3. 调用 Kimi
4. 解析模型返回 JSON
5. 返回给前端展示
保存接口:
1. 接收前端确认后的字段
2. 校验日期是否已存在
3. 保存原图路径和业务数据
4. 返回保存结果
## 7. 数据库设计
建议建立表:`main_capital_flow`
字段设计如下:
1. `id`
主键,自增或 UUID
2. `trade_date`
交易日期,`DATE`,唯一
3. `subject`
标的名称,`VARCHAR(64)`,可为空
4. `snapshot_time`
图片中截图时间,`VARCHAR(16)`,可为空
5. `institution_amount_yi`
机构资金,`DECIMAL(12,2)`,可为空
6. `main_force_amount_yi`
主力资金,`DECIMAL(12,2)`,可为空
7. `large_household_amount_yi`
大户资金,`DECIMAL(12,2)`,可为空
8. `retail_amount_yi`
散户资金,`DECIMAL(12,2)`,可为空
9. `overall_trend`
整体走势,`VARCHAR(64)`,可为空
10. `intraday_summary`
日内走势总结,`TEXT`
11. `image_path`
图片路径,`VARCHAR(255)`
12. `image_name`
图片原始名称,`VARCHAR(255)`
13. `created_at`
创建时间,`DATETIME`
14. `updated_at`
更新时间,`DATETIME`
建议索引:
1. `UNIQUE KEY uk_trade_date (trade_date)`
2. `KEY idx_created_at (created_at)`
建议建表 SQL
```sql
CREATE TABLE main_capital_flow (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
trade_date DATE NOT NULL,
subject VARCHAR(64) NULL,
snapshot_time VARCHAR(16) NULL,
institution_amount_yi DECIMAL(12,2) NULL,
main_force_amount_yi DECIMAL(12,2) NULL,
large_household_amount_yi DECIMAL(12,2) NULL,
retail_amount_yi DECIMAL(12,2) NULL,
overall_trend VARCHAR(64) NULL,
intraday_summary TEXT NOT NULL,
image_path VARCHAR(255) NOT NULL,
image_name VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
UNIQUE KEY uk_trade_date (trade_date),
KEY idx_created_at (created_at)
);
```
## 8. 非功能要求
1. 识别结果返回时间尽量控制在 10 到 60 秒内
2. 图片原图必须可追溯
3. 保存前必须支持人工校正
4. 保存接口必须防止重复日期写入
5. 后端日志中要记录识别失败原因,便于排查 Kimi 调用问题
## 9. 本期开发范围
本期要完成:
1. 数据库建表
2. 后端识别接口
3. 后端保存接口
4. 后端列表接口
5. 后端详情接口
6. 前端列表页
7. 前端新增并人工校对页面
8. 原图预览
本期暂不做:
1. 编辑历史记录
2. 删除功能
3. 批量上传
4. 多用户权限管理
## 10. 验收标准
1. 用户可以上传一张资金流向截图
2. Kimi 可以返回结构化识别结果
3. 用户可以在保存前修改识别结果
4. 点击保存后数据成功写入数据库
5. 列表页能展示已保存记录
6. 每条记录都可以查看原图和详情
7. 同一天不能重复保存两条正式记录