250 lines
9.3 KiB
Markdown
250 lines
9.3 KiB
Markdown
|
|
## Maintech-MOM 生产执行管理系统
|
|||
|
|
|
|||
|
|
Maintech-MOM(Manufacturing Operations Management)是一套面向制造企业的生产执行管理系统,覆盖生产、质量、仓储、设备等核心业务场景,项目基于开源 **ktg-mes / RuoYi** 体系进行二次开发和扩展,并增加了自研前端与移动端应用。
|
|||
|
|
|
|||
|
|
本仓库是 Maintech-MOM 的**整体工程仓库(monorepo)**,包含:
|
|||
|
|
|
|||
|
|
- **后端服务 `mom-backend`**:基于 Spring Boot + MyBatis 的多模块后端
|
|||
|
|
- **Web 业务前端 `erp-frontend-vue`**:基于 Vue 3 + Vite + Element Plus 的生产计划 / 采购 / 仓储等业务前端
|
|||
|
|
- **后台管理 UI `mom-backend-ui`**:基于 Vue 的通用管理后台(ktg-mes-ui)
|
|||
|
|
- **移动端应用 `mobile-app`**:基于 UniApp 的现场操作移动端
|
|||
|
|
- **文档与工具 `docs`、测试脚本等**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 整体架构
|
|||
|
|
|
|||
|
|
从宏观上看,Maintech-MOM 采用典型的分层架构:
|
|||
|
|
|
|||
|
|
- **表示层**
|
|||
|
|
- `erp-frontend-vue`:PC Web 前端,面向计划员、采购、仓库、销售等职能角色
|
|||
|
|
- `mom-backend-ui`:通用管理后台,用于系统配置、主数据维护、监控与管理
|
|||
|
|
- `mobile-app`:移动端应用,面向产线、仓储等现场操作人员(扫码、报工、出入库等)
|
|||
|
|
- **业务服务层**
|
|||
|
|
- `mom-backend`:Java Spring Boot 多模块后端,暴露 RESTful API,对接前端与移动端
|
|||
|
|
- **数据与基础设施层**
|
|||
|
|
- 关系型数据库(默认 MySQL)
|
|||
|
|
- 文件存储、报表引擎(如 UReport)、调度框架(Quartz)等
|
|||
|
|
|
|||
|
|
各端之间通过 HTTP/JSON API 进行交互,统一使用 `mom-backend` 作为业务中台和数据中心。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 仓库模块说明
|
|||
|
|
|
|||
|
|
### `mom-backend` —— 后端服务
|
|||
|
|
|
|||
|
|
基于 **Spring Boot 2.5.x** 与 **MyBatis** 的多模块 Maven 工程,继承自 ktg-mes / RuoYi 分层设计。
|
|||
|
|
|
|||
|
|
- **技术栈**
|
|||
|
|
- Java 8
|
|||
|
|
- Spring Boot 2.5.x
|
|||
|
|
- MyBatis + PageHelper
|
|||
|
|
- Druid 数据源
|
|||
|
|
- Swagger/OpenAPI
|
|||
|
|
- Quartz 定时任务
|
|||
|
|
- 多模块 Maven 管理(父 `pom.xml` 统一依赖)
|
|||
|
|
- **典型子模块(目录)**
|
|||
|
|
- `ktg-admin`:Web 应用入口,封装统一鉴权、接口网关、系统配置、监控等
|
|||
|
|
- `ktg-system`:系统管理模块(用户、角色、菜单、字典、配置、日志等)
|
|||
|
|
- `ktg-mes`:MOM 业务域模块(生产、质量、仓储、销售、采购等)
|
|||
|
|
- `ktg-framework`:通用框架封装(配置、异常处理、拦截器、MyBatis 配置等)
|
|||
|
|
- `ktg-common`:通用工具类与基础组件
|
|||
|
|
- `ktg-quartz`:定时任务调度相关
|
|||
|
|
- `ktg-print`:打印模板、打印客户端配置等
|
|||
|
|
- `ktg-generator`:代码生成器(根据表结构生成 CRUD / 业务骨架)
|
|||
|
|
- **配置与运行**
|
|||
|
|
- 主要配置位于 `ktg-admin/src/main/resources/application-*.yml`
|
|||
|
|
- 使用 `pom.xml` 管理依赖,MySQL 等基础设施在外部环境中部署
|
|||
|
|
- 通过 `ry.sh` / `ry.bat` 或 IDE 直接启动 `ktg-admin` 的 Spring Boot 启动类
|
|||
|
|
|
|||
|
|
### `erp-frontend-vue` —— Web 业务前端
|
|||
|
|
|
|||
|
|
基于 **Vue 3 + Vite + TypeScript + Element Plus** 的前端应用,用于实现生产计划、采购、仓储、销售等业务的 Web 操作界面。
|
|||
|
|
|
|||
|
|
- **技术栈**
|
|||
|
|
- Vue 3(`<script setup>` 组合式 API)
|
|||
|
|
- Vue Router 4
|
|||
|
|
- Element Plus 组件库 + 图标(`@element-plus/icons-vue`)
|
|||
|
|
- Axios HTTP 客户端
|
|||
|
|
- Vite 构建工具
|
|||
|
|
- TypeScript
|
|||
|
|
- **脚本**
|
|||
|
|
- `npm run dev`:本地开发(Vite dev server)
|
|||
|
|
- `npm run build`:类型检查(`vue-tsc`)+ 生产构建
|
|||
|
|
- `npm run preview`:本地预览构建产物
|
|||
|
|
- `npm run test` / `npm run test:watch`:基于 Vitest 的单元测试
|
|||
|
|
- `npm run test:e2e`:基于 Playwright 的端到端测试
|
|||
|
|
- **主要职责**
|
|||
|
|
- 提供围绕生产制造的业务 UI:生产计划单、采购计划/订单、入库出库、EBOM/BOM、销售订单等
|
|||
|
|
- 与 `mom-backend` 的 REST API 对接,实现数据查询、编辑、审批等流程
|
|||
|
|
- 在 `tests` 目录下通过 Playwright 脚本对关键业务流程做 E2E 回归验证
|
|||
|
|
|
|||
|
|
### `mom-backend-ui` —— 后台管理前端
|
|||
|
|
|
|||
|
|
基于 **Vue + Vite + Element Plus** 的管理后台 UI,项目名为 `mes-ui`,来自开源 `ktg-mes-ui` 的前端工程。
|
|||
|
|
|
|||
|
|
- **定位**
|
|||
|
|
- 提供通用的 MES 管理后台能力:系统设置、主数据维护、统计报表、大屏、排班、仓储视图等
|
|||
|
|
- 更贴近原始 ktg-mes 项目的后台体验,用于系统级管理与监控
|
|||
|
|
- **技术栈与脚本**
|
|||
|
|
- Vue 3 兼容模式(`@vue/compat`),配合 Element Plus
|
|||
|
|
- Vite 作为构建工具
|
|||
|
|
- 通过 `npm run dev` / `npm run build` / `npm run preview` 进行开发与构建
|
|||
|
|
|
|||
|
|
### `mobile-app` —— 移动端应用
|
|||
|
|
|
|||
|
|
基于 **UniApp + Vue 3 + Pinia** 的跨端移动应用工程,主要服务于生产现场与仓储场景。
|
|||
|
|
|
|||
|
|
- **技术栈**
|
|||
|
|
- UniApp(H5、小程序、App 多端)
|
|||
|
|
- Vue 3
|
|||
|
|
- Pinia 状态管理
|
|||
|
|
- **脚本**
|
|||
|
|
- `npm run dev:h5`:H5 开发调试
|
|||
|
|
- `npm run dev:mp-weixin`:微信小程序开发调试
|
|||
|
|
- `npm run dev:app`:App 端开发调试
|
|||
|
|
- 对应的 `build:*` 脚本用于各端打包
|
|||
|
|
- **主要能力**
|
|||
|
|
- 支持扫码、报工、巡检、点检、入库/出库等现场作业
|
|||
|
|
- 与 `mom-backend` 统一的认证与权限体系打通
|
|||
|
|
|
|||
|
|
### 其他目录
|
|||
|
|
|
|||
|
|
- **`docs`**
|
|||
|
|
- 包含 `mom系统使用说明书v1.md` 等使用与业务操作手册,面向业务用户和实施人员
|
|||
|
|
- **`data`、`screenshot`、`test-results` 等**
|
|||
|
|
- 辅助数据、截图、自动化测试报告等
|
|||
|
|
- **根目录 `package.json`**
|
|||
|
|
- 主要用于统一管理自动化测试等工具依赖(如 Playwright),后续可扩展为更多仓库级脚本
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 技术栈总览
|
|||
|
|
|
|||
|
|
- **后端**
|
|||
|
|
- Java 8 / Spring Boot 2.5.x
|
|||
|
|
- MyBatis + PageHelper
|
|||
|
|
- Druid、Quartz、Swagger 等
|
|||
|
|
- **Web 前端**
|
|||
|
|
- Vue 3、Vite、TypeScript
|
|||
|
|
- Element Plus、Axios
|
|||
|
|
- **移动端**
|
|||
|
|
- UniApp + Vue 3 + Pinia
|
|||
|
|
- **测试与质量**
|
|||
|
|
- Vitest 单元测试(前端)
|
|||
|
|
- Playwright 端到端测试(业务关键流程)
|
|||
|
|
- 后端 API 测试文档(如 `mom-backend/docs/Testing/EBOM-API测试文档.md`)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 目录结构概览
|
|||
|
|
|
|||
|
|
下表仅展示关键目录,实际结构可直接在 IDE 中展开查看:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mom-system/
|
|||
|
|
├── mom-backend/ # Java 多模块后端(ktg-mes / RuoYi 体系)
|
|||
|
|
├── erp-frontend-vue/ # Web 业务前端(Vue 3 + Vite)
|
|||
|
|
├── mom-backend-ui/ # MES 管理后台前端(mes-ui)
|
|||
|
|
├── mobile-app/ # UniApp 移动端
|
|||
|
|
├── docs/ # 使用说明、业务文档
|
|||
|
|
├── data/ # 样例数据等
|
|||
|
|
├── screenshot/ # 功能截图
|
|||
|
|
├── test-results/ # 自动化测试结果
|
|||
|
|
├── package.json # 仓库级工具依赖(Playwright 等)
|
|||
|
|
└── ... # 其他辅助脚本、配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 运行与开发
|
|||
|
|
|
|||
|
|
### 环境依赖(建议)
|
|||
|
|
|
|||
|
|
- JDK 8+
|
|||
|
|
- Node.js 18+ 与 npm / pnpm
|
|||
|
|
- MySQL 数据库
|
|||
|
|
- (可选)Redis、Nginx、Docker 等
|
|||
|
|
|
|||
|
|
### 启动后端 `mom-backend`
|
|||
|
|
|
|||
|
|
1. 配置数据库等基础设施(参考 `ktg-admin/src/main/resources/application-*.yml`)
|
|||
|
|
2. 在 `mom-backend` 目录执行 Maven 构建:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 启动 `ktg-admin` 模块(IDE 运行 Spring Boot 启动类,或使用 `ry.sh` / `ry.bat` 脚本)
|
|||
|
|
|
|||
|
|
### 启动 Web 前端 `erp-frontend-vue`
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd erp-frontend-vue
|
|||
|
|
npm install
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
默认通过本地开发服务器访问业务前端,后端接口地址可在配置文件中调整。
|
|||
|
|
|
|||
|
|
### 启动后台管理 UI `mom-backend-ui`
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd mom-backend-ui
|
|||
|
|
npm install
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启动移动端 `mobile-app`
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd mobile-app
|
|||
|
|
npm install
|
|||
|
|
npm run dev:h5 # H5 调试
|
|||
|
|
# 或使用 HBuilderX / cli 针对具体平台(小程序 / App)调试和打包
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 典型业务流程(简要)
|
|||
|
|
|
|||
|
|
结合 `docs/mom系统使用说明书v1.md` 中的业务说明,系统大致支持如下主线流程:
|
|||
|
|
|
|||
|
|
- **订单驱动生产**
|
|||
|
|
- 销售订单录入 → 生成生产计划 / 生产工单 → 车间排产 → 报工与进度跟踪
|
|||
|
|
- **计划驱动采购与仓储**
|
|||
|
|
- 根据生产计划与物料清单(BOM / MBOM)生成采购计划与采购订单
|
|||
|
|
- 到货检验(IQC)→ 合格入库 → 生产领料 → 成品入库 → 销售出库 / 调拨
|
|||
|
|
- **质量管理**
|
|||
|
|
- 来料检验、过程检验、出货检验等质量环节记录与追溯
|
|||
|
|
- **设备与现场**
|
|||
|
|
- 设备点检、保养、维修
|
|||
|
|
- 通过移动端进行扫码、报工、盘点、出入库等快速操作
|
|||
|
|
|
|||
|
|
Web 前端主要覆盖计划、采购、仓储、销售等管理类流程,移动端则聚焦现场执行。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 测试与质量保障
|
|||
|
|
|
|||
|
|
- **前端自动化**
|
|||
|
|
- 基于 Vitest 的单元测试:覆盖组件与关键逻辑
|
|||
|
|
- 基于 Playwright 的 E2E 测试:覆盖生产计划、采购订单、仓储出入库等关键业务场景
|
|||
|
|
- **后端测试**
|
|||
|
|
- 提供 API 测试脚本与文档(例如 EBOM 相关文档位于 `mom-backend/docs/Testing`)
|
|||
|
|
|
|||
|
|
建议在引入新功能或修改核心流程时,同步补充或更新对应的自动化测试,以保证端到端的业务稳定性。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 后续扩展方向
|
|||
|
|
|
|||
|
|
- 根据实际项目需求,对 ktg-mes 原有模块进行裁剪与增强
|
|||
|
|
- 进一步统一前后端领域模型与命名规范
|
|||
|
|
- 完善监控与告警体系(如接口耗时、任务失败告警等)
|
|||
|
|
- 扩展更多移动端场景(如离线缓存、蓝牙设备接入等)
|
|||
|
|
|
|||
|
|
本 README 作为架构级总览,可配合 `docs` 目录下的业务手册与各子项目 README 一起阅读。
|
|||
|
|
|