# MES Air **Repository Path**: dodoyu/mes-air ## Basic Information - **Project Name**: MES Air - **Description**: MES Air是一个面向中小企业离散制造业的轻量级 MES(制造执行系统) - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-10 - **Last Updated**: 2026-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: MES, ruoyi, xbatis, Java, SpringBoot ## README # MES Air > 面向中小企业**离散制造业**的轻量级 MES(制造执行系统),**前后端一体**:多模块 Spring Boot 后端 + Vue 3 管理端。 > 单工厂、工单驱动、以报工为核心、私有化部署;重报工、轻排产。 > > **当前版本:v1.0.0 生产就绪**(2026-11-05)| 发布记录见 [docs/RELEASE_NOTES.md](docs/RELEASE_NOTES.md) --- ## 一、定位与能力 行业定位:离散型,主行业五金/汽配精密制造、副行业小家电装配,面向中小型离散加工厂(详见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 1.1)。 | 模块 | 主要内容 | |---|---| | 生产管理 | 工单与状态流转、工艺路线、工序、报工(开工/完工/批量/修正)、生产看板、生产报表、操作工与班次 | | 主数据 | 物料及分类、产线、工位、设备、供应商、客户、BOM | | 质量管理 | 缺陷类型、检验标准、检验记录、不良率与 Top 缺陷 | | 库存管理 | 库存台账、安全库存预警、入出库变动、库存流水、批次与序列号 | | 系统管理 | 用户/角色/菜单/部门/字典/参数、数据权限、登录与操作日志、文件管理 | | 集成管理 | 对外应用、Webhook 订阅与投递记录、HMAC 签名通道、文件与导入导出 | **工位终端**:后端已提供独立前缀 `/station-api/v1`(工位码登录、本工位任务、扫码定位、一键报工、工位看板),工位绑定在 Token-Session;工位机前端界面另行立项。详见 [docs/USER_MANUAL.md](docs/USER_MANUAL.md) 第六章。 **明确不做**:ERP 财务/HR、APS 高级排产、完整 WMS、多租户/SaaS、工作流引擎、移动端 App。 --- ## 二、技术栈 | 层 | 选型 | |---|---| | 后端 | JDK 25 · Spring Boot 4.1.1 · Maven 多模块 · xbatis · Sa-Token · Redisson | | Web 容器 | Jetty 12.1.13(已排除 Tomcat) | | 数据 | MySQL 8.4 · Redis 7.4 | | 前端 | Vue 3 · Element Plus · Pinia · Vite · TypeScript(31 页 / 6 模块) | | 部署 | Docker Compose 四容器(MySQL + Redis + app + Nginx),对外仅 80 端口 | | 测试/工具 | JUnit 5(全量 369 通过)· 自研虚拟线程压测器 `bench/HttpBench.java` | --- ## 三、快速开始 ### 3.1 部署运行(推荐:客户试点 / 生产) 前置:Docker + Compose v2、JDK 25 与 Node.js(**仅构建机需要**,运行时不需要)。 ```bash # 1) 构建产物(仓库根) ./mvnw -DskipTests package # → mes-server/target/mes-air.jar cd frontend && npm ci && npm run build # → frontend/dist/ cd .. # 2) 配置(.env 含密码,已被 .gitignore 忽略,严禁提交) cd deploy cp .env.example .env # Windows: copy .env.example .env # 编辑 .env:三个密码、CORS 来源;生产保持 MES_AIR_API_DOCS_ENABLED=false # 3) 数据库初始化(全新库首次) # 按 sql/README.md 的顺序执行 00_init + v* 脚本;033 会内置超管账号(幂等) # ⚠ 除 001 外的初始化脚本必须带 -D mes_air(脚本内不含 USE) # 4) 启动 docker compose up -d --build docker compose ps # 四个服务均应 Up / healthy curl http://localhost:8080/actuator/health # {"status":"UP"} ``` 浏览器打开 `http://<服务器地址>` 登录。内置超管账号与首次改密要求见 [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md);上线后运维(备份/恢复/日志/监控)见 [docs/OPERATIONS.md](docs/OPERATIONS.md)。 > 完整步骤、首次核对清单、手动部署与 10 条踩坑记录都在 [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)。 ### 3.2 本地开发 前置:Docker Desktop(本地 MySQL 3307 / Redis 16379)、JDK 25。 ```bash # 1) 起本地依赖容器 + 配置本地密码 # 见 docs/CONTRIBUTING.md 第一节(application-local.yml 需放四处,均不进版本库) docker start mes-air-mysql mes-air-redis # 2) 初始化数据库:按 sql/README.md 顺序(初始化 + 可选演示数据 sql/demo) # 演示脚本 016 → 021 → 025 → 027 → 031,全部幂等 # 3) 启动后端(8080) ./mvnw -o -DskipTests package java -jar mes-server/target/mes-air.jar # 工作目录必须是仓库根(本地配置从工作目录引入) # 或在 IDE 里直接运行 mes-server 的启动类 # 4) 启动前端(5173,Vite 代理 /admin-api → 8080) cd frontend && npm ci && npm run dev # 5) 全量测试(需本地 MySQL/Redis 运行) ./mvnw test ``` 开发规范:[docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)(环境/配置)、[docs/FRONTEND.md](docs/FRONTEND.md)(前端唯一真源)、[docs/AI_CONTEXT.md](docs/AI_CONTEXT.md)(编码硬约束)。 --- ## 四、目录结构 ```text mes-air/ ├── mes-dependencies/ # 依赖版本仲裁(BOM) ├── mes-framework/ # 横切能力:common / security / redis / web / xbatis ... ├── mes-modules/ # 业务模块:system / base-data / production / quality / inventory / integration ├── mes-server/ # 启动模块 + application.yml → mes-air.jar ├── frontend/ # Vue 3 管理端(npm,独立构建) ├── deploy/ # Dockerfile / docker-compose.yml / nginx.conf / .env.example │ └── ops/ # 运维脚本:backup.sh / restore.sh / check.sh ├── sql/ # 00_init(必建)、v*(增量)、demo(演示数据);顺序见 sql/README.md ├── bench/ # 压测器与 v1.0 基线数据 ├── docs/ # 文档体系(见下表) └── AGENTS.md # AI 协作入口(硬约束摘要 + 文档索引) ``` --- ## 五、文档索引 | 你想做什么 | 文档 | |---|---| | 了解功能、给最终用户培训 | [用户手册](docs/USER_MANUAL.md) | | 部署 / 升级 / 环境变量 | [DEPLOYMENT.md](docs/DEPLOYMENT.md) | | 备份恢复 / 日志 / 监控 | [OPERATIONS.md](docs/OPERATIONS.md) | | 版本变更 / 升级说明 / 打 tag | [RELEASE_NOTES.md](docs/RELEASE_NOTES.md) | | 版本计划与完成定义 | [ROADMAP.md](docs/ROADMAP.md) | | 行业定位 / 架构选型 | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | | 业务规则(数量/状态/编号/班次日期) | [DOMAIN_RULES.md](docs/DOMAIN_RULES.md) | | 数据库表与字段 | [DATABASE.md](docs/DATABASE.md) | | 功能规格 | [FUNCTIONAL_SPEC.md](docs/FUNCTIONAL_SPEC.md) | | 安全审计与依赖漏洞 | [SECURITY.md](docs/SECURITY.md) | | 性能基线 / 容量结论 | [PERFORMANCE.md](docs/PERFORMANCE.md) | | 前端规范 | [FRONTEND.md](docs/FRONTEND.md) | | 本地开发环境 | [CONTRIBUTING.md](docs/CONTRIBUTING.md) | | SQL 执行顺序(唯一权威入口) | [sql/README.md](sql/README.md) | | AI 辅助开发入口 | [AGENTS.md](AGENTS.md) | --- ## 六、质量基线(v1.0.0) - **测试**:后端全量 369 通过;前端 `type-check` / `lint` 通过 - **性能**:读接口 100 并发 0 错误,最重的工单分页 ~757 QPS / P99 240ms([PERFORMANCE.md](docs/PERFORMANCE.md)) - **安全**:`npm audit` 0 漏洞;Jetty 12.1.13 修复 3 个 CVE;登录防爆破、数据权限、上传白名单、日志脱敏([SECURITY.md](docs/SECURITY.md)) - **运维**:4 容器 compose 全链实机验证;备份/恢复/巡检脚本 + 日志轮转落地([OPERATIONS.md](docs/OPERATIONS.md)) --- ## 七、使用须知 - 密码等敏感值一律环境变量注入或 `application-local.yml`(已忽略);`.env`、`deploy/backups/` 严禁入库 - 报表与看板按**业务日期**聚合(班次 06:00 分界),跨日排障先确认口径 - 演示数据仅用于试用,正式上线前由实施人员清理(`sql/demo/017_clean_test_data.sql`) - 当前**未提供**个人自助改密页(管理员在用户管理里重置)与工位机前端界面;均为已知形态,见用户手册 - 项目为单工厂形态,不支持多租户 --- 诚邀按试点场景反馈;开发协作与提交规范见 [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)。