2026-01-15 15:59:38 +08:00
2026-01-15 15:59:38 +08:00
2026-01-15 15:59:38 +08:00
2026-01-13 19:07:07 +08:00
2026-01-13 19:07:07 +08:00

CapacityReport - 容量报表处理系统

支持 Excel/CSV 文件上传、数据提取、清洗和导入 MySQL 数据库。

技术栈

  • 后端: FastAPI + Uvicorn + Supervisor
  • 前端: 原生 JavaScript + HTML/CSS
  • 数据库: MySQL 8.0+ (PyMySQL + SQLAlchemy)
  • 数据处理: Pandas + OpenPyXL
  • 部署: Docker + Docker Compose

数据库要求

  • MySQL: >= 8.0, < 9.0
  • 字符集: utf8mb4
  • 必需功能: LOAD DATA LOCAL INFILE

目录结构

CapaReport/
├── app/                    # 应用代码
│   ├── main.py            # FastAPI 入口
│   ├── processor.py      # 数据处理
│   ├── database.py        # 数据库管理
│   ├── history.py         # 历史记录
│   └── config.py          # 配置管理
├── build/                  # 构建脚本和配置
│   ├── build.py           # 统一构建脚本
│   ├── Dockerfile         # Docker 镜像定义
│   ├── docker-compose.yml # Docker Compose 编排
│   └── mysql/             # MySQL 配置
├── static/                 # 前端静态文件
│   ├── index.html
│   ├── css/
│   └── js/
├── Configure.json          # 应用配置
├── ReportScript.sql        # SQL 处理脚本
├── requirements.txt       # Python 依赖
└── supervisord.conf       # Supervisor 配置

本地运行

前置要求

  • Python >= 3.10, < 3.14
  • MySQL >= 8.0, < 9.0

安装依赖

pip install -r requirements.txt

配置数据库

编辑 Configure.json,设置 MySQL 连接信息:

{
  "MySQL_DBInfo": {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "passwd": "your_password",
    "dbname": "CapacityReport"
  }
}

启动服务

Windows:

run.bat

Linux:

supervisord -c supervisord.conf

访问: http://localhost:9081

Docker 编译与部署

构建部署包

python build/build.py

选择构建类型:

  • 1 - 完整部署包(MySQL + 应用)
  • 2 - 更新包(仅应用)

输出文件在 dist/ 目录:

  • capacity-report-full.tar.gz - 完整部署包
  • capacity-report-update.tar.gz - 更新包

部署

完整部署:

tar -xzf capacity-report-full.tar.gz
cd capacity-report-full
sh deploy.sh

更新应用:

tar -xzf capacity-report-update.tar.gz
cd capacity-report-update
sh update.sh

配置说明

Docker 环境配置在 build/build.py 文件头部:

  • 默认镜像版本
  • 数据库账号密码
  • 端口映射

部署包中的 Configure.json 会自动更新为 Docker 环境配置。

配置

Configure.json 主要配置项:

  • MySQL_DBInfo - 数据库连接信息
  • SheetFilter - Excel Sheet 过滤规则
  • ExtractField - 字段映射配置

API 端点

  • POST /api/upload - 上传文件
  • POST /api/process/start - 启动处理
  • GET /api/process/status - 查询状态
  • GET /api/history - 获取历史记录
  • POST /api/service/restart - 重启服务
  • GET /api/health - 健康检查
S
Description
No description provided
Readme
5.1 MiB
Languages
Python 53.6%
Vue 34.5%
CSS 6.4%
TypeScript 3.5%
Rust 1.6%
Other 0.4%