Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

BestDDR

中小企业财务报表预测系统 | Financial Forecast System for SMEs

基于历史财务数据和关键假设参数,自动生成符合中国企业会计准则的三年财务预测(利润表、资产负债表、现金流量表),三表联动,迭代收敛。

https://www.bestddr.com


功能特性

  • 三表联动模型 — 利润表驱动资产负债表,两者共同驱动现金流量表(间接法),自动迭代收敛处理利息/债务循环依赖
  • 多场景对比 — 为同一家公司创建乐观、基准、悲观等多个预测场景,独立假设参数和预测结果
  • 5 大行业模板 — 通用、制造业、科技、零售、服务业,各自预设行业适配的默认假设参数
  • 历史数据录入 — 按利润表 / 资产负债表 / 现金流量表分类录入,支持多年数据
  • 假设参数管理 — 收入增长率、毛利率、DSO/DIO/DPO 周转天数、资本开支比例、折旧率、税率等,逐年独立设置
  • 自动平衡 — 资产负债表不平衡时自动通过短期借款(Debt Plug)补齐差额
  • 报表导出 — 支持 Excel (.xlsx) 和 HTML 报告导出
  • 中英文切换 — 默认中文,一键切换英文,所有页面完整国际化
  • 安全认证 — JWT 认证 + 强密码策略 + 速率限制 + CORS 保护,数据按用户隔离

技术栈

技术
后端 Python 3.12 · FastAPI · SQLAlchemy 2.0 (async) · Alembic
前端 React 19 · TypeScript · Vite · Ant Design 6
数据库 PostgreSQL (asyncpg / psycopg)
安全 JWT (python-jose) · PBKDF2-SHA256 · 速率限制 · CORS 保护
国际化 react-i18next · Ant Design locale
导出 openpyxl (Excel) · HTML 报告

项目结构

backend/
├── app/
│ ├── main.py # FastAPI 应用入口
│ ├── auth.py # JWT 认证 + 密码哈希
│ ├── seed.py # 启动时初始化行业模板和科目定义
│ ├── models/ # SQLAlchemy ORM 模型
│ ├── schemas/ # Pydantic 请求/响应模式
│ ├── routers/ # API 路由
│ │ ├── auth.py # 注册 / 登录 / Token 刷新
│ │ ├── companies.py # 公司 CRUD
│ │ ├── periods.py # 历史数据录入
│ │ ├── scenarios.py # 场景 / 假设 / 预测 / 报表
│ │ └── export.py # Excel / HTML 导出
│ └── engine/ # 预测引擎(纯函数,无 DB 依赖)
│ ├── income_statement.py
│ ├── balance_sheet.py
│ ├── cash_flow.py
│ ├── balancer.py # 资产负债表自动平衡
│ └── forecast.py # 迭代收敛主流程
frontend/
├── src/
│ ├── pages/ # 页面组件
│ │ ├── LoginPage.tsx # 登录
│ │ ├── Dashboard.tsx # 公司列表
│ │ ├── CompanyDetail.tsx# 数据录入 / 假设 / 报表 / 导出
│ │ └── HelpPage.tsx # 使用指南
│ ├── locales/ # 中英文翻译
│ ├── contexts/ # Auth Context
│ └── api.ts # API 封装

快速开始

环境要求

  • Python 3.12+
  • Node.js 18+
  • PostgreSQL 15+

1. 克隆项目

git clone https://github.com/zhouning/BestDDR.git
cd BestDDR

2. 配置环境变量

cp .env.example .env
# 编辑 .env,填入数据库连接和 JWT 密钥

3. 启动数据库

docker compose up -d db

4. 启动后端

cd backend
uv sync --all-extras
uv run uvicorn app.main:app --reload --port 8002

后端启动时会自动创建表结构并初始化行业模板数据。

5. 启动前端

cd frontend
npm install
npm run dev

访问 http://localhost:5173

使用流程

创建公司 → 录入历史数据 → 创建预测场景 → 设置假设参数 → 运行预测 → 查看三表 → 导出报告
  1. 创建公司 — 输入公司名称,选择行业模板
  2. 录入历史数据 — 添加年份,填入利润表、资产负债表、现金流量表的关键科目
  3. 创建场景 — 如"基准情景"、"乐观情景",设置预测年份(如 2025-2027)
  4. 调整假设参数 — 收入增长率、毛利率、周转天数等,每年可独立设置
  5. 运行预测 — 引擎自动计算三表,迭代收敛处理利息/债务循环
  6. 查看报表 — 历史数据(灰色)与预测数据(蓝色)并排展示,资产负债表自动校验平衡
  7. 导出 — Excel 或 HTML 格式下载

预测引擎原理

利润表 → 资产负债表 → 自动平衡(Debt Plug) → 现金流量表 → 回写现金 → 迭代收敛
  • 利润表:收入 ×ばつ 增长率 → 成本(毛利率)→ 费用(费用率)→ 利息(债务 ×ばつ 利率)→ 净利润
  • 资产负债表:应收(DSO) / 存货(DIO) / 应付(DPO) / 固定资产(CapEx-折旧) / 留存收益
  • 自动平衡:资产 ≠ 负债+权益时,差额计入短期借款
  • 现金流量表:间接法,净利润 + 非现金项 + 营运资金变动
  • 迭代收敛:利息费用 ↔ 债务余额循环依赖,通常 2-3 轮收敛

API 概览

方法 路径 说明
POST /api/auth/register 用户注册
POST /api/auth/login 登录获取 Token
GET/POST/DELETE /api/companies 公司 CRUD
GET/POST /api/companies/:id/periods 历史数据
GET/POST/DELETE /api/companies/:id/scenarios 场景管理
GET/PUT /api/companies/:id/scenarios/:sid/assumptions 假设参数
POST /api/companies/:id/scenarios/:sid/forecast 运行预测
GET /api/companies/:id/scenarios/:sid/statements 三表数据
GET /api/companies/:id/scenarios/:sid/export/excel 导出 Excel
GET /api/companies/:id/scenarios/:sid/export/pdf 导出 HTML 报告

License

MIT

About

中小企业财务报表预测系统 - 三表联动自动生成利润表、资产负债表、现金流量表

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /