# VWED任务系统打包模块

此模块提供了将VWED任务系统打包为Windows可执行文件的完整解决方案，包含动态配置功能。

## 🎯 推荐使用方式

**集成版本（推荐）**: 配置界面 + 服务启动合二为一，用户体验最佳！

```bash
cd packaging/scripts
build_integrated.bat
```

## 目录结构

```
packaging/
├── config_tool/                    # 配置工具
│   ├── config_manager.py           # GUI配置管理器
│   ├── integrated_config_gui.py    # 集成配置GUI界面
│   └── startup_loader.py           # 启动配置加载器
├── scripts/                        # 构建脚本
│   ├── build_integrated.bat        # 🌟 集成版构建脚本（推荐）
│   ├── build.py                    # Python构建脚本
│   ├── build.bat                   # 分离版构建脚本
│   └── test_integrated.bat         # 集成版测试脚本
├── resources/                      # 资源文件
│   └── README.md                   # 资源说明
├── integrated_launcher.py          # 🌟 集成启动器（推荐）
├── vwed_integrated.spec            # 🌟 集成版PyInstaller配置
├── main_with_config.py             # 带配置加载的主程序入口
├── vwed_task_main.spec             # 主程序PyInstaller配置
├── vwed_config_tool.spec           # 配置工具PyInstaller配置
├── requirements_build.txt          # 打包依赖
└── README.md                      # 本文件
```

## ✨ 功能特性

### 🎉 集成版本特点（推荐）
- **一键启动**: 单个exe文件包含配置界面和服务启动
- **智能配置**: 首次启动显示配置界面，后续直接启动服务
- **无缝体验**: 配置完成后自动关闭配置窗口，直接进入服务
- **自动保存**: 配置自动保存，无需重复设置

### 1. 动态配置管理
- **GUI配置工具**: 提供友好的图形界面配置数据库连接和API地址
- **配置文件管理**: 自动保存/加载配置到 `config.ini` 文件
- **环境变量注入**: 启动时自动设置环境变量
- **配置验证**: 支持数据库连接测试

### 2. 可配置项
- **数据库配置**:
  - `username`: MySQL用户名
  - `password`: MySQL密码  
  - `host`: MySQL主机地址
- **API配置**:
  - `tf_api_base_url`: TF API基础URL

### 3. 打包输出
**集成版本（推荐）**:
- **VWED_Task_System.exe** - 包含配置界面和服务的单一可执行文件
- **启动VWED任务系统.bat** - 便捷启动脚本
- **使用说明.txt** - 详细使用指南

**分离版本**:
- **vwed_task_main.exe** - 核心任务系统服务
- **vwed_config_tool.exe** - GUI配置管理器
- **启动脚本** - 便捷的批处理启动脚本

## 使用方法

### 方法一：自动化构建（推荐）

1. **运行自动化构建**:
   ```bash
   cd packaging/scripts
   build.bat
   ```

2. **等待构建完成**，输出位于 `dist/VWED_Task_Release/`

### 方法二：手动构建

1. **安装打包依赖**:
   ```bash
   pip install -r packaging/requirements_build.txt
   ```

2. **构建主程序**:
   ```bash
   pyinstaller --clean packaging/vwed_task_main.spec
   ```

3. **构建配置工具**:
   ```bash
   pyinstaller --clean packaging/vwed_config_tool.spec
   ```

4. **手动创建发布包**:
   ```bash
   python packaging/scripts/build.py
   ```

### 方法三：快速构建

```bash
cd packaging/scripts
quick_build.bat
```

## 部署使用

构建完成后，在目标Windows服务器上：

1. **复制发布包** `VWED_Task_Release` 到目标位置

2. **首次配置**:
   - 双击 `启动配置工具.bat`
   - 设置数据库连接参数
   - 设置API地址
   - 测试连接并保存配置

3. **启动服务**:
   - 在配置工具中点击"启动服务"，或
   - 双击 `直接启动服务.bat`

4. **访问系统**: 
   - 浏览器访问 `http://localhost:8000`
   - API文档: `http://localhost:8000/docs`

5. **停止服务**: 
   - 双击 `停止服务.bat`

## 配置文件格式

系统使用 `config.ini` 文件存储配置:

```ini
[database]
username = root
password = root
host = localhost

[api]
tf_api_base_url = http://111.231.146.230:4080/jeecg-boot
```

## 环境变量映射

配置文件中的值会自动映射为环境变量:
- `database.username` → `DB_USER`
- `database.password` → `DB_PASSWORD`
- `database.host` → `DB_HOST`
- `api.tf_api_base_url` → `TF_API_BASE_URL`

## 故障排除

### 常见问题

1. **构建失败**:
   - 确保Python环境正确安装
   - 检查依赖是否完整安装
   - 查看构建日志确定具体错误

2. **配置工具无法启动**:
   - 确保目标系统支持tkinter
   - 检查权限设置

3. **主程序启动失败**:
   - 检查数据库连接配置
   - 确保MySQL服务已启动
   - 查看应用日志

### 调试模式

如需调试，可以修改 `vwed_task_main.spec` 中的 `console=True` 以显示控制台输出。

## 技术细节

### 打包技术栈
- **PyInstaller**: Python应用打包
- **tkinter**: GUI配置界面
- **configparser**: 配置文件管理
- **pathlib**: 路径处理
- **subprocess**: 进程管理

### 架构设计
- **配置分离**: 运行时配置与代码分离
- **模块化**: 配置工具与主程序独立
- **热加载**: 支持运行时配置更新
- **错误处理**: 完善的异常处理和用户提示

## 版本历史

- **v1.0**: 初始版本，支持基本打包和配置功能