Fundamental_Analysis/docs/已完成任务/tasks.md
xucheng ca60410966 feat: 通用市场财务/快照/分析接口;增强数据源与配置读取
Backend
- router(financial): 新增通用路径 /{market}/{stock_code}、/snapshot、/analysis/stream
  - 用 MarketEnum 统一市场(cn/us/hk/jp)
  - 将 /china/{ts_code} 改为通用 get_financials,并规范 period,按年限裁剪
  - 新增通用昨日快照接口(CN 复用原逻辑,其他市场兜底近交易日收盘)
- data_manager: 仅从 config/config.json 读取各 provider API key,不再读取环境变量
  - series 构建更健壮:None/空结构判定;接受 numpy/pandas 数值类型并安全转 float
- provider(finnhub):
  - SDK 失败时使用 httpx 直连兜底(profile2、financials-reported)
  - 规范化年度报表,映射 revenue/net income/gross profit/assets/equity/goodwill/OCF/CapEx
  - 计算 gross/net margin、ROA、ROE;直接产出 series 结构
  - 增加关键步骤日志与异常保护
- provider(yfinance): 修正同步阻塞的获取逻辑,使用 run_in_executor 包装

Frontend
- hooks(useApi):
  - 将中国财务接口路径改为 /api/financials/cn
  - 新增 useFinancials 与 useSnapshot,统一多市场数据访问
- report/[symbol]/page.tsx:
  - 支持多市场(映射 usa→us、china→cn 等),统一 symbol 与分析流路径
  - 去除仅限中国市场的 UI 限制,财务/分析/图表对多市场可用
  - 使用新的分析与快照 API 路径
- lib/prisma.ts: 去除无关内容(微小空行调整)

Docs
- 重组文档目录:
  - docs/已完成任务/tasks.md(重命名自 docs/tasks.md)
  - docs/未完成任务/us_market_integration_tasks.md 新增

BREAKING CHANGE
- API 路径变更:
  - 财务数据:/api/financials/china/{ts_code} → /api/financials/{market}/{stock_code}
  - 快照:/api/financials/china/{ts_code}/snapshot → /api/financials/{market}/{stock_code}/snapshot
  - 分析流:/api/financials/china/{ts_code}/analysis/{type}/stream → /api/financials/{market}/{stock_code}/analysis/{type}/stream
- 前端需使用 useFinancials/useSnapshot 或更新为 /cn 路径以兼容中国市场
2025-11-06 20:01:08 +08:00

5.8 KiB
Raw Blame History

任务清单 - 基本面选股系统 MVP

本文档基于《设计文档》,将项目开发分解为一系列可执行的任务,以便于跟踪进度和分配工作。

Phase 1: 项目基础设置与环境搭建 (P0)

此阶段的目标是搭建前后端开发环境,并完成数据库的初始化设置。

  • T1.1 [DevOps]: 初始化Git仓库并建立maindevelop分支策略。
  • T1.2 [Backend]: 创建Python虚拟环境并初始化FastAPI项目结构 (/backend)。
  • T1.3 [Frontend]: 使用Next.js和TypeScript初始化前端项目 (/frontend)。
  • T1.4 [DevOps/DB]: 编写docker-compose.yml文件用于一键启动PostgreSQL数据库服务和后端API服务。
  • T1.5 [Backend/DB]: 在后端项目中集成Alembic用于数据库版本迁移管理。

Phase 2: 后端核心模型与配置 (P0)

此阶段专注于实现数据库模型和系统配置API为上层业务逻辑提供基础。

  • T2.1 [Backend/DB]: 根据设计文档使用SQLAlchemy ORM定义Report, AnalysisModule, ProgressTracking, SystemConfig四个核心数据模型。 [完成 - 2025-10-21]
  • T2.2 [Backend/DB]: 创建第一个Alembic迁移脚本在数据库中生成上述四张表。 [完成 - 2025-10-21]
  • T2.3 [Backend]: 实现ConfigManager服务,完成从config.json加载配置并与数据库配置合并的逻辑。 [完成 - 2025-10-21]
  • T2.4 [Backend/API]: 创建Pydantic Schema用于配置接口的请求和响应 (ConfigResponse, ConfigUpdateRequest, ConfigTestRequest, ConfigTestResponse)。
  • T2.5 [Backend/API]: 实现/api/configGETPUT端点,用于读取和更新系统配置。
  • T2.6 [Backend/API]: 实现/api/config/testPOST端点,用于验证数据库连接等配置的有效性。

Phase 3: 前端基础与配置页面 (P1)

此阶段完成前端项目的基本设置,并开发出第一个功能页面——系统配置管理。 [完成 - 2025-10-21]

  • T3.1 [Frontend]: 集成并配置UI组件库 (Shadcn/UI)。
  • T3.2 [Frontend]: 设置前端路由,创建/, /report/[symbol], 和 /config等页面骨架。
  • T3.3 [Frontend]: 引入状态管理库 (Zustand) 和数据请求库 (SWR/React-Query)。
  • T3.4 [Frontend/UI]: 开发ConfigPage组件包含用于数据库、Gemini API和数据源配置的表单。
  • T3.5 [Frontend/API]: 编写API客户端函数用于调用后端的/api/config系列接口。
  • T3.6 [Frontend/Feature]: 将API客户端与ConfigPage组件集成,实现前端对系统配置的读取、更新和测试功能。

Phase 4: 核心功能 - 报告生成与进度追踪 (P1)

此阶段是项目的核心,重点开发后端的报告生成流程和前端的实时进度展示。

  • T4.1 [Backend/Service]: 实现DataSourceManager封装对Tushare和Yahoo Finance的数据获取逻辑。
  • T4.2 [Backend/Service]: 实现AIService封装对Google Gemini API的调用逻辑包括Token使用统计。
  • T4.3 [Backend/Service]: 实现ProgressTracker服务,提供initialize, start_step, complete_step, get_progress等方法,并与数据库交互。
  • T4.4 [Backend/Service]: 定义AnalysisModule的基类/接口,并初步实现一到两个模块(如FinancialDataModule)作为示例。
  • T4.5 [Backend/Service]: 实现核心的ReportGenerator服务,编排数据获取、各分析模块调用、进度更新的完整流程。
  • T4.6 [Backend/API]: 实现/api/reportsPOST端点,用于创建报告记录并通过BackgroundTasks启动异步生成任务。
  • T4.7 [Backend/API]: 实现/api/progress/stream/{report_id}的SSE端点用于向前端实时推送进度更新。
  • T4.8 [Frontend/UI]: 开发ProgressTracker组件,用于展示报告生成的步骤列表、实时状态、耗时和错误信息。
  • T4.9 [Frontend/Feature]: 在报告页面集成ProgressTracker组件并实现连接到SSE端点的逻辑。

Phase 5: 核心功能 - 报告查询与展示 (P2)

此阶段专注于将生成的报告数据在前端进行展示。

  • T5.1 [Backend/API]: 实现/api/reports/{report_id}GET端点,用于获取完整的报告及其所有分析模块。
  • T5.2 [Backend/API]: 实现/api/reportsGET端点,用于获取报告列表,支持分页和状态筛选。
  • T5.3 [Frontend/UI]: 开发StockInputForm组件,并放置在首页,用于提交股票代码和市场。
  • T5.4 [Frontend/Feature]: 实现首页表单的提交逻辑,调用/api/reports接口并根据响应导航到报告页面。
  • T5.5 [Frontend/UI]: 开发ReportPage,作为展示报告的容器页面。
  • T5.6 [Frontend/UI]: 开发ModuleNavigator组件侧边栏或Tabs用于在不同分析模块间切换。
  • T5.7 [Frontend/UI]: 开发ModuleViewer组件能够根据JSONB数据动态渲染文本、列表、表格等不同形式的内容。
  • T5.8 [Frontend/Feature]: 在ReportPage中集成ModuleNavigatorModuleViewer,实现从后端获取报告数据并完整展示的功能。

Phase 6: 完善、测试与部署 (P3)

此阶段进行功能完善、端到端测试和部署准备。

  • T6.1 [Backend]: 完善所有AnalysisModule的具体实现。
  • T6.2 [Backend/Test]: 为核心服务和API端点编写单元测试和集成测试 (Pytest)。
  • T6.3 [Frontend/Test]: 为关键组件和页面逻辑编写单元测试 (Jest/React Testing Library)。
  • T6.4 [General]: 全面审查和增强错误处理逻辑,确保用户体验友好。
  • T6.5 [General]: 进行端到端的手动测试,确保整个流程(从输入代码到查看报告)顺畅无误。
  • T6.6 [DevOps]: 编写生产环境的Dockerfile和部署脚本。
  • T6.7 [Docs]: 更新README.md,补充项目介绍、本地启动方法和部署指南。