Files
my-mom-system/README.md
panchengyong c28ada5050 commit content
2026-03-06 02:02:59 +08:00

250 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Maintech-MOM 生产执行管理系统
Maintech-MOMManufacturing 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** 的跨端移动应用工程,主要服务于生产现场与仓储场景。
- **技术栈**
- UniAppH5、小程序、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 一起阅读。