| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- @echo off
- chcp 65001 >nul
- setlocal EnableDelayedExpansion
- :: 设置窗口标题
- title MES制造执行系统 - 启动控制台
- echo.
- echo ================================================
- echo MES制造执行系统 v1.5.3 启动程序
- echo ================================================
- echo.
- :: 检查是否为首次运行
- if not exist "db-config.txt" (
- echo ⚠️ 检测到首次运行,需要配置数据库
- echo.
- echo 选择配置方式:
- echo [1] 运行数据库配置向导 (推荐)
- echo [2] 手动配置后继续启动
- echo [3] 退出
- echo.
- set /p "choice=请输入选择 [1-3]: "
-
- if "!choice!"=="1" (
- echo.
- echo 正在启动数据库配置向导...
- call setup-database.bat
- if errorlevel 1 (
- echo ❌ 数据库配置失败,启动中止
- pause
- exit /b 1
- )
- ) else if "!choice!"=="2" (
- echo.
- echo ⚠️ 请先手动配置数据库后重新运行此脚本
- echo 配置文件位置: Back\mes-sorter\src\main\resources\application.properties
- pause
- exit /b 0
- ) else (
- echo 启动已取消
- exit /b 0
- )
- )
- :: 显示启动信息
- echo [系统信息]
- echo 版本: v1.5.3
- echo 更新时间: 2025-12-20 23:15
- echo 特性: 最终优化完善版本
- echo.
- :: 环境检查
- echo [1/6] 检查运行环境...
- :: 检查Java
- echo 检查Java环境...
- java -version >nul 2>&1
- if errorlevel 1 (
- echo ❌ 错误: 未检测到Java环境,请安装JDK 8或更高版本
- echo 下载地址: https://adoptium.net/
- pause
- exit /b 1
- )
- echo ✅ Java环境检测成功
- :: 检查Node.js
- echo 检查Node.js环境...
- node --version >nul 2>&1
- if errorlevel 1 (
- echo ❌ 错误: 未检测到Node.js环境,请安装Node.js 18或更高版本
- echo 下载地址: https://nodejs.org/
- pause
- exit /b 1
- )
- echo ✅ Node.js环境检测成功
- :: 检查MySQL
- echo 检查MySQL连接...
- if exist "db-config.txt" (
- :: 读取数据库配置
- for /f "tokens=2 delims==" %%i in ('findstr "DB_HOST=" db-config.txt') do set "DB_HOST=%%i"
- for /f "tokens=2 delims==" %%i in ('findstr "DB_PORT=" db-config.txt') do set "DB_PORT=%%i"
- for /f "tokens=2 delims==" %%i in ('findstr "DB_USER=" db-config.txt') do set "DB_USER=%%i"
- for /f "tokens=2 delims==" %%i in ('findstr "DB_PASSWORD=" db-config.txt') do set "DB_PASSWORD=%%i"
- for /f "tokens=2 delims==" %%i in ('findstr "DB_NAME=" db-config.txt') do set "DB_NAME=%%i"
-
- mysql -h!DB_HOST! -P!DB_PORT! -u!DB_USER! -p!DB_PASSWORD! -e "USE !DB_NAME!; SELECT 1;" >nul 2>&1
- if errorlevel 1 (
- echo ❌ 警告: 数据库连接失败,请检查MySQL服务状态
- echo 如需重新配置数据库,请运行: setup-database.bat
- echo.
- set /p "continue=是否继续启动?(Y/N) [默认: Y]: "
- if /i "!continue!"=="N" exit /b 1
- ) else (
- echo ✅ 数据库连接正常
- )
- ) else (
- echo ⚠️ 数据库配置文件不存在,将尝试使用默认配置
- )
- :: 检查项目文件
- echo.
- echo [2/6] 检查项目文件...
- if not exist "Back\mes-sorter\pom.xml" (
- echo ❌ 错误: 后端项目文件不存在
- pause
- exit /b 1
- )
- if not exist "Front\mes-frontend\package.json" (
- echo ❌ 错误: 前端项目文件不存在
- pause
- exit /b 1
- )
- echo ✅ 项目文件检查完成
- :: 检查端口占用
- echo.
- echo [3/6] 检查端口占用...
- netstat -an | findstr ":8080.*LISTENING" >nul 2>&1
- if not errorlevel 1 (
- echo ⚠️ 端口8080已被占用
- set /p "kill8080=是否终止占用进程?(Y/N) [默认: Y]: "
- if /i not "!kill8080!"=="N" (
- for /f "tokens=5" %%i in ('netstat -ano ^| findstr ":8080.*LISTENING"') do (
- echo 正在终止进程 %%i...
- taskkill /F /PID %%i >nul 2>&1
- )
- )
- )
- netstat -an | findstr ":3001.*LISTENING" >nul 2>&1
- if not errorlevel 1 (
- echo ⚠️ 端口3001已被占用
- set /p "kill3001=是否终止占用进程?(Y/N) [默认: Y]: "
- if /i not "!kill3001!"=="N" (
- for /f "tokens=5" %%i in ('netstat -ano ^| findstr ":3001.*LISTENING"') do (
- echo 正在终止进程 %%i...
- taskkill /F /PID %%i >nul 2>&1
- )
- )
- )
- echo ✅ 端口检查完成
- :: 安装前端依赖
- echo.
- echo [4/6] 检查前端依赖...
- cd Front\mes-frontend
- if not exist "node_modules" (
- echo 首次运行,正在安装前端依赖...
- echo 这可能需要几分钟时间,请耐心等待...
- npm install
- if errorlevel 1 (
- echo ❌ 前端依赖安装失败,尝试使用淘宝镜像...
- npm config set registry https://registry.npmmirror.com
- npm install
- if errorlevel 1 (
- echo ❌ 依赖安装失败,请检查网络连接
- cd ..\..
- pause
- exit /b 1
- )
- )
- echo ✅ 前端依赖安装完成
- ) else (
- echo ✅ 前端依赖已存在
- )
- cd ..\..
- :: 编译后端项目
- echo.
- echo [5/6] 编译后端项目...
- cd Back\mes-sorter
- echo 正在编译Java项目,请稍候...
- mvn clean compile -q >nul 2>&1
- if errorlevel 1 (
- echo ❌ 后端编译失败,尝试详细编译...
- mvn clean compile
- if errorlevel 1 (
- echo ❌ 后端编译失败,请检查代码或网络连接
- cd ..\..
- pause
- exit /b 1
- )
- )
- echo ✅ 后端编译完成
- cd ..\..
- :: 启动服务
- echo.
- echo [6/6] 启动服务...
- echo.
- echo ================================================
- echo 正在启动MES系统...
- echo ================================================
- echo.
- echo 🚀 后端服务启动中... (端口:8080)
- echo 🚀 前端服务启动中... (端口:3001)
- echo.
- echo 📝 访问地址:
- echo 前端界面: http://localhost:3001
- echo 后端API: http://localhost:8080
- echo API文档: http://localhost:8080/swagger-ui/index.html
- echo.
- echo ⚠️ 首次启动可能需要1-2分钟,请耐心等待...
- echo ⚠️ 启动完成后会自动打开浏览器
- echo.
- echo 📋 操作说明:
- echo - Ctrl+C: 停止服务
- echo - 关闭此窗口: 停止所有服务
- echo.
- :: 创建日志目录
- if not exist "logs" mkdir logs
- :: 启动后端 (后台运行)
- echo %date% %time% - 启动后端服务 >> logs\startup.log
- start "MES后端服务" /min cmd /c "cd Back\mes-sorter && mvn spring-boot:run >> ..\..\logs\backend.log 2>&1"
- :: 等待后端启动
- echo 等待后端服务启动...
- set "backend_ready=false"
- for /L %%i in (1,1,60) do (
- timeout /t 2 /nobreak >nul
- curl -s http://localhost:8080/actuator/health >nul 2>&1
- if not errorlevel 1 (
- set "backend_ready=true"
- goto :backend_started
- )
- echo 后端启动中... (%%i/60)
- )
- :backend_started
- if "%backend_ready%"=="true" (
- echo ✅ 后端服务启动成功
- ) else (
- echo ⚠️ 后端服务启动超时,但将继续启动前端
- )
- :: 启动前端
- echo %date% %time% - 启动前端服务 >> logs\startup.log
- start "MES前端服务" /min cmd /c "cd Front\mes-frontend && npm run dev >> ..\..\logs\frontend.log 2>&1"
- :: 等待前端启动
- echo 等待前端服务启动...
- for /L %%i in (1,1,30) do (
- timeout /t 2 /nobreak >nul
- curl -s http://localhost:3001 >nul 2>&1
- if not errorlevel 1 goto :frontend_started
- echo 前端启动中... (%%i/30)
- )
- :frontend_started
- echo ✅ 前端服务启动成功
- :: 自动打开浏览器
- timeout /t 3 /nobreak >nul
- start http://localhost:3001
- :: 显示状态监控
- echo.
- echo ================================================
- echo 系统启动完成!
- echo ================================================
- echo.
- echo 🎉 MES制造执行系统已成功启动
- echo 📅 启动时间: %date% %time%
- echo 🌐 前端地址: http://localhost:3001
- echo 🔗 后端地址: http://localhost:8080
- echo 📚 API文档: http://localhost:8080/swagger-ui/index.html
- echo.
- echo 💡 系统特性:
- echo ✅ 玻璃态现代化界面设计
- echo ✅ 响应式布局 (320px-2560px)
- echo ✅ 工位实时监控和全屏展开
- echo ✅ 生产计划和工件管理
- echo ✅ 企业级稳定性和性能
- echo.
- echo 📊 监控信息:
- echo 📁 日志目录: logs\
- echo 📄 启动日志: logs\startup.log
- echo 🖥️ 后端日志: logs\backend.log
- echo 🌐 前端日志: logs\frontend.log
- echo.
- echo ⚠️ 重要提醒:
- echo - 请保持此窗口打开以维持服务运行
- echo - 关闭此窗口将停止所有服务
- echo - 如遇问题请查看日志文件
- echo.
- :: 服务监控循环
- :monitor_loop
- timeout /t 30 /nobreak >nul
- :: 检查服务状态
- curl -s http://localhost:8080/actuator/health >nul 2>&1
- if errorlevel 1 (
- echo %date% %time% - 后端服务异常 >> logs\startup.log
- echo ❌ 后端服务连接失败
- ) else (
- echo %date% %time% - 服务运行正常 >> logs\startup.log
- )
- curl -s http://localhost:3001 >nul 2>&1
- if errorlevel 1 (
- echo %date% %time% - 前端服务异常 >> logs\startup.log
- echo ❌ 前端服务连接失败
- )
- goto :monitor_loop
|