@echo off
chcp 65001 >nul
echo ================================================
echo       VWED任务系统集成版打包工具
echo ================================================
echo.
echo 功能: 配置界面 + 服务启动 合二为一
echo.

cd /d "%~dp0\.."

echo 检查Python环境...
python --version
if %errorlevel% neq 0 (
    echo 错误: 未找到Python环境，请确保Python已安装并添加到PATH
    pause
    exit /b 1
)

echo.
echo 清理旧的构建文件...
if exist "..\dist" rmdir /s /q "..\dist"
if exist "..\build" rmdir /s /q "..\build"

echo.
echo 构建集成版本...
pyinstaller --clean vwed_integrated.spec

if %errorlevel% neq 0 (
    echo 集成版本构建失败！
    pause
    exit /b 1
)

echo.
echo 创建发布包...
if not exist "dist\VWED_Task_Release" mkdir "dist\VWED_Task_Release"

if exist "dist\VWED_Task_System.exe" (
    copy "dist\VWED_Task_System.exe" "dist\VWED_Task_Release\"
    echo ✓ 主程序复制完成
) else (
    echo ✗ 未找到主程序文件
    echo 查找文件位置...
    dir dist\*.exe
    pause
    exit /b 1
)

if exist "dist\VWED_Task_System_Debug.exe" (
    copy "dist\VWED_Task_System_Debug.exe" "dist\VWED_Task_Release\"
    echo ✓ 调试版本复制完成
) else (
    echo ! 未找到调试版本文件（这是正常的，如果构建时只生成了一个版本）
)

echo.
echo 创建启动脚本...
echo @echo off > "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo 正在启动VWED任务系统... >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo 首次启动将显示配置界面，配置完成后自动启动服务 >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo. >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo if exist VWED_Task_System_Debug.exe ( >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo     echo 使用调试版本启动以便查看详细信息... >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo     VWED_Task_System_Debug.exe >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo ^) else ( >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo     VWED_Task_System.exe >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo ^) >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo pause >> "dist\VWED_Task_Release\启动VWED任务系统.bat"

echo 创建后台启动脚本...
echo @echo off > "dist\VWED_Task_Release\后台启动服务.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 正在后台启动VWED任务系统服务... >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 服务将在后台运行，不显示窗口 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\后台启动服务.bat"
echo if exist vwed_service.pid ( >> "dist\VWED_Task_Release\后台启动服务.bat"
echo     echo 检测到服务可能已在运行，请先停止服务 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo     echo 如果服务未运行，请手动删除 vwed_service.pid 文件 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo     pause >> "dist\VWED_Task_Release\后台启动服务.bat"
echo     exit /b 1 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo ^) >> "dist\VWED_Task_Release\后台启动服务.bat"
echo start /min VWED_Task_System.exe --headless >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 服务已在后台启动 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 日志文件: vwed_service.log >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 使用"停止服务.bat"可停止后台服务 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo pause >> "dist\VWED_Task_Release\后台启动服务.bat"

echo 创建服务状态检查脚本...
echo @echo off > "dist\VWED_Task_Release\检查服务状态.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 检查VWED任务系统服务状态... >> "dist\VWED_Task_Release\检查服务状态.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\检查服务状态.bat"
echo if exist vwed_service.pid ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     set /p pid=^<vwed_service.pid >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     tasklist /fi "PID eq %%pid%%" 2^>nul ^| find "%%pid%%" ^>nul >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     if !errorlevel!==0 ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo         echo 服务正在运行 ^(PID: %%pid%%^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo         echo 服务地址: http://localhost:8000 >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     ^) else ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo         echo 服务进程不存在，清理PID文件... >> "dist\VWED_Task_Release\检查服务状态.bat"
echo         del vwed_service.pid >> "dist\VWED_Task_Release\检查服务状态.bat"
echo         echo 服务未运行 >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     ^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) else ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     echo 服务未运行 >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo if exist vwed_service.log ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     echo. >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     echo 最近的日志内容: >> "dist\VWED_Task_Release\检查服务状态.bat"
echo     powershell "Get-Content vwed_service.log -Tail 10" >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo pause >> "dist\VWED_Task_Release\检查服务状态.bat"

echo @echo off > "dist\VWED_Task_Release\停止服务.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 正在停止VWED任务系统服务... >> "dist\VWED_Task_Release\停止服务.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\停止服务.bat"
echo if exist vwed_service.pid ( >> "dist\VWED_Task_Release\停止服务.bat"
echo     set /p pid=^<vwed_service.pid >> "dist\VWED_Task_Release\停止服务.bat"
echo     taskkill /pid %%pid%% /f 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo     if !errorlevel!==0 ( >> "dist\VWED_Task_Release\停止服务.bat"
echo         echo 服务已停止 ^(PID: %%pid%%^) >> "dist\VWED_Task_Release\停止服务.bat"
echo     ^) else ( >> "dist\VWED_Task_Release\停止服务.bat"
echo         echo 未找到进程，尝试按进程名停止... >> "dist\VWED_Task_Release\停止服务.bat"
echo         taskkill /f /im VWED_Task_System.exe 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo     ^) >> "dist\VWED_Task_Release\停止服务.bat"
echo     del vwed_service.pid 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) else ( >> "dist\VWED_Task_Release\停止服务.bat"
echo     echo 未找到PID文件，尝试按进程名停止... >> "dist\VWED_Task_Release\停止服务.bat"
echo     taskkill /f /im VWED_Task_System.exe 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo     if %%errorlevel%%==0 ( >> "dist\VWED_Task_Release\停止服务.bat"
echo         echo 服务已停止 >> "dist\VWED_Task_Release\停止服务.bat"
echo     ^) else ( >> "dist\VWED_Task_Release\停止服务.bat"
echo         echo 没有找到运行中的服务进程 >> "dist\VWED_Task_Release\停止服务.bat"
echo     ^) >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) >> "dist\VWED_Task_Release\停止服务.bat"
echo pause >> "dist\VWED_Task_Release\停止服务.bat"

echo.
echo 创建使用说明...
echo VWED任务系统集成版使用说明 > "dist\VWED_Task_Release\使用说明.txt"
echo ========================== >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 本版本将配置界面和服务启动合并为单个可执行文件，支持前台和后台运行。 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 前台运行（带界面）： >> "dist\VWED_Task_Release\使用说明.txt"
echo 1. 双击 "启动VWED任务系统.bat" >> "dist\VWED_Task_Release\使用说明.txt"
echo 2. 首次启动会显示配置界面 >> "dist\VWED_Task_Release\使用说明.txt"
echo 3. 配置数据库连接和API地址 >> "dist\VWED_Task_Release\使用说明.txt"
echo 4. 点击"测试数据库连接"确保连接正常 >> "dist\VWED_Task_Release\使用说明.txt"
echo 5. 点击"完成配置并启动服务" >> "dist\VWED_Task_Release\使用说明.txt"
echo 6. 配置界面自动关闭，服务在当前窗口启动 >> "dist\VWED_Task_Release\使用说明.txt"
echo 7. 在浏览器中访问 http://localhost:8000 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 后台运行（无界面）： >> "dist\VWED_Task_Release\使用说明.txt"
echo 1. 双击 "后台启动服务.bat" >> "dist\VWED_Task_Release\使用说明.txt"
echo 2. 服务将在后台运行，不显示任何窗口 >> "dist\VWED_Task_Release\使用说明.txt"
echo 3. 使用 "检查服务状态.bat" 查看运行状态 >> "dist\VWED_Task_Release\使用说明.txt"
echo 4. 使用 "停止服务.bat" 停止后台服务 >> "dist\VWED_Task_Release\使用说明.txt"
echo 5. 服务日志保存在 vwed_service.log 文件中 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 注意事项： >> "dist\VWED_Task_Release\使用说明.txt"
echo - 配置保存在同目录下的 config.ini 文件中 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 再次启动时会自动加载已保存的配置 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 如需修改配置，删除 config.ini 后重新启动 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 后台运行模式下，请通过日志文件查看运行状态 >> "dist\VWED_Task_Release\使用说明.txt"
echo - PID文件 vwed_service.pid 用于跟踪后台进程 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 调试版本： >> "dist\VWED_Task_Release\使用说明.txt"
echo - VWED_Task_System_Debug.exe 为调试版本，保留控制台窗口 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 遇到问题时可使用调试版本查看详细信息 >> "dist\VWED_Task_Release\使用说明.txt"

echo.
echo ================================================
echo           集成版本构建完成！
echo ================================================
echo.
echo 发布包位置: dist\VWED_Task_Release\
echo.
echo 文件清单：
echo ✓ VWED_Task_System.exe - 主程序（无窗口，支持后台运行）
echo ✓ VWED_Task_System_Debug.exe - 调试版本（带控制台窗口）
echo ✓ 启动VWED任务系统.bat - 前台启动脚本
echo ✓ 后台启动服务.bat - 后台启动脚本
echo ✓ 检查服务状态.bat - 服务状态检查
echo ✓ 停止服务.bat - 停止服务脚本
echo ✓ 使用说明.txt - 详细使用说明
echo.
echo 新特性：
echo ✓ 支持前台和后台运行模式
echo ✓ 后台运行时无窗口，适合服务器部署
echo ✓ 日志记录到文件 vwed_service.log
echo ✓ PID文件管理，支持精确停止进程
echo ✓ 服务状态检查功能
echo ✓ 调试版本用于问题排查
echo.
pause