start.bat 3.62 KB
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

REM 绿纤美业ERP工资核算服务启动脚本 (Windows)
REM 支持Windows 10/11, Windows Server 2016+

echo.
echo ========================================
echo 绿纤美业ERP工资核算服务
echo ========================================
echo.

REM 检查参数
if "%1"=="--help" goto :help
if "%1"=="-h" goto :help
if "%1"=="--version" goto :version
if "%1"=="-v" goto :version
if "%1"=="--build" goto :build
if "%1"=="--clean" goto :clean

REM 检查.NET 6是否安装
echo [INFO] 检查.NET 6环境...
dotnet --version >nul 2>&1
if errorlevel 1 (
    echo [ERROR] .NET 6 未安装,请先安装 .NET 6 SDK
    echo [INFO] 下载地址: https://dotnet.microsoft.com/download/dotnet/6.0
    pause
    exit /b 1
)

for /f "tokens=*" %%i in ('dotnet --version') do set DOTNET_VERSION=%%i
echo [INFO] 检测到 .NET 版本: %DOTNET_VERSION%

REM 检查配置文件
if not exist "appsettings.json" (
    echo [ERROR] 配置文件 appsettings.json 不存在
    pause
    exit /b 1
)
echo [INFO] 配置文件检查通过

REM 创建必要目录
echo [INFO] 创建必要目录...
if not exist "logs" mkdir logs
if not exist "output" mkdir output
if not exist "backup" mkdir backup
echo [INFO] 目录创建完成

REM 还原NuGet包
echo [INFO] 还原NuGet包...
dotnet restore
if errorlevel 1 (
    echo [ERROR] NuGet包还原失败
    pause
    exit /b 1
)
echo [INFO] NuGet包还原成功

REM 构建项目
echo [INFO] 构建项目...
dotnet build -c Release
if errorlevel 1 (
    echo [ERROR] 项目构建失败
    pause
    exit /b 1
)
echo [INFO] 项目构建成功

REM 运行服务
set MONTH=%1
if "%MONTH%"=="" (
    for /f "tokens=1,2 delims=-" %%a in ('date /t') do set MONTH=%%a-%%b
    echo [WARN] 未指定计算月份,使用当前月份: %MONTH%
    echo [INFO] 使用方法: %0 [YYYY-MM]
    echo [INFO] 示例: %0 2024-09
)

echo [INFO] 启动工资核算服务,计算月份: %MONTH%
dotnet run --configuration Release -- %MONTH%

goto :end

:help
echo.
echo 绿纤美业ERP工资核算服务
echo.
echo 使用方法:
echo   %0 [月份]             运行工资核算服务
echo   %0 --help, -h         显示帮助信息
echo   %0 --version, -v      显示版本信息
echo   %0 --build            仅构建项目
echo   %0 --clean            清理构建文件
echo.
echo 参数:
echo   月份                  计算月份,格式: YYYY-MM (例如: 2024-09)
echo.
echo 示例:
echo   %0 2024-09           计算2024年9月工资
echo   %0                   计算当前月份工资
echo.
echo 环境要求:
echo   - .NET 6.0 SDK
echo   - MySQL数据库连接
echo   - 网络连接
goto :end

:version
echo 绿纤美业ERP工资核算服务 v1.0.0
echo 构建时间: %date% %time%
for /f "tokens=*" %%i in ('dotnet --version') do echo .NET版本: %%i
goto :end

:build
echo [INFO] 检查.NET 6环境...
dotnet --version >nul 2>&1
if errorlevel 1 (
    echo [ERROR] .NET 6 未安装
    pause
    exit /b 1
)

echo [INFO] 检查配置文件...
if not exist "appsettings.json" (
    echo [ERROR] 配置文件不存在
    pause
    exit /b 1
)

echo [INFO] 创建目录...
if not exist "logs" mkdir logs
if not exist "output" mkdir output
if not exist "backup" mkdir backup

echo [INFO] 还原包...
dotnet restore
if errorlevel 1 (
    echo [ERROR] 还原失败
    pause
    exit /b 1
)

echo [INFO] 构建项目...
dotnet build -c Release
if errorlevel 1 (
    echo [ERROR] 构建失败
    pause
    exit /b 1
)

echo [INFO] 构建完成
goto :end

:clean
echo [INFO] 清理构建文件...
dotnet clean
if exist "bin" rmdir /s /q "bin"
if exist "obj" rmdir /s /q "obj"
echo [INFO] 清理完成
goto :end

:end
pause