新增 WMS 搬运规则与任务管理

支持搬运规则维护、候选预览、任务生成、预占、下发、取消和完成,并完善仓储管理前端交互。
This commit is contained in:
ArtoriasWu
2026-06-25 11:02:22 +08:00
parent 1cb8091bbe
commit 15405ba114
101 changed files with 4167704 additions and 152 deletions
+151
View File
@@ -0,0 +1,151 @@
@echo off
chcp 65001 >nul 2>nul
setlocal enableextensions
rem ============================================================================
rem Build platform frontend, sync to MiGu.Server\wwwroot, build MiGu.Server, run.
rem ----------------------------------------------------------------------------
rem Usage:
rem build-platform-and-run.bat [debug|release] [--reinstall] [--npm|--pnpm]
rem
rem Examples:
rem build-platform-and-run.bat
rem build-platform-and-run.bat release
rem build-platform-and-run.bat debug --reinstall
rem ============================================================================
set "ROOT=%~dp0"
set "FE_ROOT=%ROOT%frontends"
set "FE_APP=%FE_ROOT%\apps\simple-platform-vue"
set "FE_DIST=%FE_APP%\dist"
set "SERVER_ROOT=%ROOT%MiGu.Server"
set "SERVER_CSPROJ=%SERVER_ROOT%\MiGu.Server.csproj"
set "WWWROOT=%SERVER_ROOT%\wwwroot"
set "CONFIG=Debug"
set "NEED_INSTALL=0"
set "FORCE_PM="
:argloop
if "%~1"=="" goto argdone
if /I "%~1"=="debug" set "CONFIG=Debug"
if /I "%~1"=="release" set "CONFIG=Release"
if /I "%~1"=="-r" set "CONFIG=Release"
if /I "%~1"=="/r" set "CONFIG=Release"
if /I "%~1"=="--reinstall" set "NEED_INSTALL=1"
if /I "%~1"=="--npm" set "FORCE_PM=npm"
if /I "%~1"=="--pnpm" set "FORCE_PM=pnpm"
shift
goto argloop
:argdone
if not exist "%FE_ROOT%\package.json" (
echo [ERROR] Missing frontend workspace: %FE_ROOT%\package.json
exit /b 1
)
if not exist "%SERVER_CSPROJ%" (
echo [ERROR] Missing server project: %SERVER_CSPROJ%
exit /b 1
)
where dotnet >nul 2>nul
if errorlevel 1 (
echo [ERROR] dotnet was not found. Install .NET 8 SDK first.
exit /b 1
)
set "PM=%FORCE_PM%"
if "%PM%"=="" (
where pnpm >nul 2>nul
if not errorlevel 1 set "PM=pnpm"
)
if "%PM%"=="" set "PM=npm"
if /I "%PM%"=="pnpm" (
where pnpm >nul 2>nul
) else (
where npm >nul 2>nul
)
if errorlevel 1 (
echo [ERROR] Package manager not found: %PM%
exit /b 1
)
echo ============================================================
echo Migu2.0 build and run
echo frontend : %FE_APP%
echo wwwroot : %WWWROOT%
echo server : %SERVER_CSPROJ%
echo config : %CONFIG%
echo pm : %PM%
echo ============================================================
echo.
pushd "%FE_ROOT%"
if errorlevel 1 exit /b 1
if not exist "node_modules" set "NEED_INSTALL=1"
if "%NEED_INSTALL%"=="1" (
echo === [1/5] %PM% install ===
call %PM% install
if errorlevel 1 (
popd
echo [ERROR] Frontend dependencies install failed.
exit /b 1
)
) else (
echo === [1/5] dependencies already installed, skip ===
)
echo.
echo === [2/5] build frontend ===
if /I "%PM%"=="pnpm" (
call pnpm --filter simple-platform-vue build
) else (
pushd "%FE_APP%"
call npm run build
popd
)
if errorlevel 1 (
popd
echo [ERROR] Frontend build failed.
exit /b 1
)
popd
if not exist "%FE_DIST%\index.html" (
echo [ERROR] Frontend dist was not generated: %FE_DIST%
exit /b 1
)
echo.
echo === [3/5] sync dist to MiGu.Server\wwwroot ===
if not exist "%WWWROOT%" mkdir "%WWWROOT%"
robocopy "%FE_DIST%" "%WWWROOT%" /MIR /NFL /NDL /NJH /NJS /NP
set "ROBOCOPY_EC=%ERRORLEVEL%"
if %ROBOCOPY_EC% GEQ 8 (
echo [ERROR] robocopy failed, errorlevel=%ROBOCOPY_EC%
exit /b %ROBOCOPY_EC%
)
echo.
echo === [4/5] build MiGu.Server ===
pushd "%SERVER_ROOT%"
if errorlevel 1 exit /b 1
dotnet build "MiGu.Server.csproj" -c %CONFIG% --nologo
if errorlevel 1 (
popd
echo [ERROR] MiGu.Server build failed.
exit /b 1
)
echo.
echo === [5/5] run MiGu.Server ===
echo [INFO] Press Ctrl+C to stop. Open http://localhost:8080/
echo.
dotnet run --project "MiGu.Server.csproj" -c %CONFIG% --no-build --no-restore
set "RUN_EC=%ERRORLEVEL%"
popd
endlocal & exit /b %RUN_EC%