v2.0.0 done
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
# CapacityReport - 容量报表处理程序
|
||||
|
||||
容量报表数据处理系统,支持 Excel/CSV 文件上传、数据提取、清洗和导入 MySQL 数据库。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **后端**: FastAPI + Uvicorn + Supervisor
|
||||
- **前端**: 原生 JavaScript + HTML/CSS
|
||||
- **数据库**: MySQL (PyMySQL + SQLAlchemy)
|
||||
- **数据处理**: Pandas + OpenPyXL
|
||||
- **部署**: Docker + Supervisor
|
||||
|
||||
## 系统架构
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
A[浏览器] -->|HTTP| B[FastAPI]
|
||||
B -->|静态文件| C[Static Files]
|
||||
B -->|API请求| D[业务逻辑层]
|
||||
D -->|数据处理| E[DataProcessor]
|
||||
D -->|数据管理| F[DatabaseManager]
|
||||
D -->|历史记录| G[HistoryManager]
|
||||
E -->|批量插入| H[MySQL]
|
||||
F -->|连接池| H
|
||||
I[Supervisor] -->|管理进程| J[Uvicorn]
|
||||
J -->|运行| B
|
||||
```
|
||||
|
||||
## 核心模块
|
||||
|
||||
- `app/main.py` - FastAPI 应用入口,API 路由
|
||||
- `app/processor.py` - 数据处理核心(ZIP解压、Excel转CSV、CSV导入)
|
||||
- `app/database.py` - 数据库连接与批量插入
|
||||
- `app/history.py` - 处理历史记录管理
|
||||
- `app/config.py` - 配置管理
|
||||
|
||||
## 数据流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[上传文件] --> B{文件类型}
|
||||
B -->|ZIP| C[解压ZIP]
|
||||
B -->|Excel| D[Excel转CSV]
|
||||
B -->|CSV| E[直接处理]
|
||||
C --> D
|
||||
D --> F[字段映射]
|
||||
E --> F
|
||||
F --> G[数据清洗]
|
||||
G --> H[批量插入MySQL]
|
||||
H --> I[执行SQL脚本]
|
||||
I --> J[生成结果表]
|
||||
```
|
||||
|
||||
## 上传处理时序
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 用户
|
||||
participant F as 前端
|
||||
participant A as FastAPI
|
||||
participant P as DataProcessor
|
||||
participant D as MySQL
|
||||
|
||||
U->>F: 选择文件上传
|
||||
F->>A: POST /api/upload
|
||||
A->>A: 保存文件到 cache/
|
||||
A->>F: 返回 task_id
|
||||
F->>A: POST /api/process/start
|
||||
A->>P: 启动处理任务
|
||||
P->>P: 解压ZIP/处理Excel
|
||||
P->>P: 读取CSV并清洗
|
||||
P->>D: 批量插入数据
|
||||
P->>D: 执行SQL脚本
|
||||
P->>A: 返回处理结果
|
||||
A->>F: 推送日志更新
|
||||
F->>U: 显示处理进度
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 部署
|
||||
|
||||
### Docker 部署
|
||||
|
||||
```bash
|
||||
docker build -t capareport .
|
||||
docker run -d --restart=always -p 9081:9081 capareport
|
||||
```
|
||||
|
||||
### Windows 部署
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 启动服务(自动重启模式)
|
||||
run.bat
|
||||
```
|
||||
|
||||
### Linux 部署
|
||||
|
||||
```bash
|
||||
# 使用 Supervisor
|
||||
supervisord -c supervisord.conf
|
||||
```
|
||||
|
||||
## 配置
|
||||
|
||||
配置文件: `Configure.json`
|
||||
|
||||
- `MySQL_DBInfo` - 数据库连接信息
|
||||
- `SheetFilter` - Excel Sheet 过滤规则
|
||||
- `ExtractField` - 字段映射配置
|
||||
|
||||
## API 端点
|
||||
|
||||
- `POST /api/upload` - 上传文件
|
||||
- `POST /api/process/start` - 启动处理
|
||||
- `POST /api/process/status` - 查询处理状态
|
||||
- `POST /api/history` - 获取历史记录
|
||||
- `POST /api/service/restart` - 重启服务
|
||||
- `GET /api/service/status` - 服务状态
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
CapaReport/
|
||||
├── app/ # 应用代码
|
||||
│ ├── main.py # FastAPI 入口
|
||||
│ ├── processor.py # 数据处理
|
||||
│ ├── database.py # 数据库管理
|
||||
│ ├── history.py # 历史记录
|
||||
│ └── config.py # 配置管理
|
||||
├── static/ # 前端静态文件
|
||||
├── cache/ # 临时文件目录
|
||||
├── Configure.json # 配置文件
|
||||
├── Dockerfile # Docker 配置
|
||||
└── supervisord.conf # Supervisor 配置
|
||||
```
|
||||
Reference in New Issue
Block a user