从零到一:2025最热门开源MOM系统TMom部署与核心功能实战指南
你是否正在为生产制造系统选型而头疼?面对市场上动辄百万级的商业MOM/MES系统望而却步?开源项目又担心功能不全、维护困难?本文将带你零成本部署一套企业级生产制造执行系统,掌握计划排程、工艺设计、低代码报表等核心功能,让你的生产管理效率提升300%。
读完本文你将获得:
- 3分钟快速部署TMom系统的完整流程
- 多厂区数据隔离与聚合的实现方案
- 工艺路线设计与生产流程可视化技巧
- 低代码报表与大屏看板的制作方法
- 前后端架构深度解析与二次开发指南
项目背景与核心优势
TMom(Manufacturing Operations Management)是一款支持多厂区/多项目级的开源生产制造系统,基于最新技术栈构建,目标是打造通用的企业级生产管理平台。系统采用前后端分离架构,前端基于Vue3、TypeScript、Ant Design Vue,后端使用.NET 8、SqlSugar,支持多种数据库切换、数据隔离与聚合。
核心功能矩阵
| 功能模块 | 关键特性 | 应用场景 |
|---|---|---|
| 计划排程 | 可视化甘特图、自动排程算法、产能平衡 | 生产任务分配、交期预测 |
| 工艺路线设计 | 拖拽式流程图、工序参数配置、BOM管理 | 新产品工艺定义、产线优化 |
| 低代码报表 | 在线设计器、SQL片段复用、数据钻取 | 生产报表自定义、KPI分析 |
| 大屏看板 | 实时数据展示、多维度分析、异常报警 | 车间管理、决策支持 |
| 移动端应用 | 生产报工、设备点检、异常反馈 | 车间现场操作、移动办公 |
| AOT客户端 | 离线操作、本地缓存、数据同步 | 网络不稳定环境使用 |
技术架构解析
TMom采用分层架构设计,确保系统的可扩展性和可维护性:
flowchart TD
Client[客户端层] -->|HTTP/WebSocket| API[API网关层]
API --> Auth[认证授权]
API --> BL[业务逻辑层]
BL --> DL[数据访问层]
DL --> DB[(多数据库支持)]
Client --> Web[Web前端(Vue3+TS)]
Client --> Mobile[移动端]
Client --> Desktop[AOT客户端]
BL --> EventBus[事件总线]
BL --> Cache[缓存系统]
技术栈亮点:
- 前端:Vue3 + TypeScript + Ant Design Vue,支持响应式设计
- 后端:.NET 8 + SqlSugar ORM,支持多种数据库切换
- 数据存储:关系型数据库(SQL Server/MySQL) + Redis缓存 + MongoDB(日志/非结构化数据)
- 部署方式:Docker容器化部署,支持K8s集群
- 扩展性:模块化设计,支持插件式开发
环境准备与快速部署
硬件与软件要求
| 环境 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核及以上 |
| 内存 | 8GB | 16GB |
| 硬盘 | 100GB SSD | 500GB SSD |
| 操作系统 | Windows 10/Server 2016+ | Windows Server 2019+/Linux(Ubuntu 20.04+) |
| 数据库 | SQL Server 2016+ | SQL Server 2019+/MySQL 8.0+ |
快速部署步骤
1. 获取源代码
git clone https://gitcode.com/thgao/tmom.git
cd tmom
2. 后端部署(Windows环境)
# 进入API目录
cd api/TMom.Api
# 还原依赖
dotnet restore
# 构建项目
dotnet build -c Release
# 数据库迁移(默认使用SQL Server)
dotnet run -- seed
# 运行服务
dotnet run --urls=http://localhost:5000
3. 前端部署
# 进入Web目录
cd web
# 安装依赖
npm install
# 开发环境运行
npm run dev
# 生产环境构建
npm run build
# 部署到Nginx或IIS
4. Docker容器化部署
# 构建后端镜像
docker build -t tmom-api -f api/TMom.Api/Dockerfile .
# 构建前端镜像
docker build -t tmom-web -f web/Dockerfile .
# 启动容器
docker-compose up -d
注意:首次启动需要执行数据库初始化脚本,系统会自动创建管理员账户(admin/123456),建议登录后立即修改密码。
核心功能实战
1. 多厂区数据隔离与聚合
TMom支持多厂区/多项目级别的数据管理,通过数据隔离与聚合机制,满足企业集团化管理需求。
实现原理:
- 基于租户ID(TenantId)的数据隔离
- 跨租户数据聚合查询
- 厂区级权限控制
erDiagram
TENANT ||--o{ FACTORY : has
FACTORY ||--o{ WORKSHOP : contains
WORKSHOP ||--o{ PRODUCTION_LINE : has
PRODUCTION_LINE ||--o{ WORKSTATION : contains
TENANT {
int TenantId PK
string Name
string Code
bool IsActive
}
FACTORY {
int FactoryId PK
int TenantId FK
string Name
string Address
}
配置步骤:
- 登录系统管理后台,进入"组织管理"->"租户管理"
- 创建新租户,设置租户名称、编码等基本信息
- 为租户分配厂区资源,设置数据权限范围
- 配置跨租户数据聚合规则(如集团级报表)
2. 工艺路线设计与可视化
工艺路线设计是生产制造的核心环节,TMom提供直观的拖拽式工艺路线设计工具,支持复杂生产流程定义。
工艺路线设计步骤:
- 进入"工艺管理"->"工艺路线设计"模块
- 点击"新建工艺路线",填写基本信息(产品、版本、生效日期等)
- 在画布上拖拽工序节点,配置工序参数
- 设置工序间的逻辑关系(串行、并行、分支等)
- 配置每个工序的资源需求(设备、人员、物料)
- 保存并发布工艺路线
stateDiagram-v2
[*] --> 领料
领料 --> 加工: 物料确认
加工 --> 检验: 加工完成
检验 --> 装配: 检验合格
检验 --> 返工: 检验不合格
返工 --> 加工
装配 --> 包装: 装配完成
包装 --> [*]: 入库
高级功能:
- 工艺版本管理:支持多版本并行,版本比较与回溯
- 工艺仿真:模拟生产流程,识别瓶颈工序
- 工时计算:基于历史数据自动计算标准工时
- 工序模板:常用工艺路线保存为模板,快速复用
3. 计划排程与生产执行
TMom提供可视化的生产计划排程功能,支持自动排程与手动调整,实现产能最大化利用。
计划排程流程:
timeline
title 生产计划排程流程
订单导入 : 销售订单导入系统
MPS计算 : 主生产计划计算
MRP运算 : 物料需求计划运算
能力平衡 : 生产能力与负荷平衡分析
计划生成 : 自动生成生产工单
计划下达 : 将工单下达至生产车间
生产执行 : 车间生产与数据采集
完工入库 : 生产完成与入库操作
排程策略配置:
- 优先级规则:订单紧急度、交期、资源利用率等
- 约束条件:设备产能、人员技能、物料齐套等
- 优化目标:最大化设备利用率、最小化生产周期、均衡生产负荷
4. 低代码报表与大屏看板
TMom内置低代码报表设计器,无需编码即可制作复杂报表与数据可视化大屏,满足不同层级的管理需求。
报表制作步骤:
- 进入"报表中心"->"报表设计器"
- 选择报表类型(列表报表、交叉报表、图表报表等)
- 配置数据源(SQL查询、API接口、Excel导入等)
- 设计报表布局,拖拽控件到设计区
- 设置数据绑定关系与过滤条件
- 配置报表样式与分页设置
- 预览并保存报表
大屏看板制作:
- 进入"数据可视化"->"大屏设计"
- 选择大屏模板或新建空白大屏
- 添加可视化组件(折线图、柱状图、仪表盘等)
- 配置组件数据源与刷新频率
- 设置组件联动效果与钻取规则
- 预览并发布大屏
5. 移动端应用与数据采集
TMom提供移动端应用,支持生产现场数据采集、报工、设备点检等操作,解决车间无纸化问题。
移动端主要功能:
- 生产报工:记录生产数量、工时、不良品等信息
- 设备管理:设备点检、故障报修、维护记录
- 物料管理:物料领用、退料、盘点
- 质量检验:首件检验、巡检记录、不良品处理
- 通知提醒:生产异常、任务变更、待办事项
数据采集方式:
- 手动录入:文本、数字、单选、多选等表单
- 扫码采集:物料条码、工单条码、设备条码
- 拍照上传:生产异常、质量问题证据采集
- RFID集成:通过RFID设备自动识别物料/产品
系统架构深度解析
前端架构
TMom前端基于Vue3、TypeScript和Ant Design Vue构建,采用模块化设计,支持按需加载。
核心目录结构:
web/src/
├── api/ # API请求封装
├── assets/ # 静态资源
├── components/ # 通用组件
├── hooks/ # 自定义钩子
├── layout/ # 布局组件
├── router/ # 路由配置
├── store/ # 状态管理
├── styles/ # 样式文件
├── utils/ # 工具函数
└── views/ # 业务页面
关键技术点:
- 组件化开发:基于Vue3的Composition API
- 状态管理:Pinia替代Vuex,支持TypeScript
- 路由管理:Vue Router 4,支持动态路由和权限控制
- 样式方案:Less + CSS Modules,支持主题定制
- 表单处理:基于Ant Design Vue Form组件,支持复杂表单逻辑
后端架构
TMom后端基于.NET 8构建,采用分层架构设计,支持多种数据库和部署方式。
核心目录结构:
api/
├── TMom.Api/ # API项目
├── TMom.Application.Service/ # 应用服务层
├── TMom.Application.Dto/ # 数据传输对象
├── TMom.Domain.Model/ # 领域模型
├── TMom.Domain.IRepository/ # 仓储接口
├── TMom.Infrastructure.Repository/ # 仓储实现
└── TMom.Infrastructure/ # 基础设施层
数据访问层设计: TMom采用SqlSugar ORM框架,支持多种数据库切换,实现数据访问层的解耦。
// 数据访问层示例代码
public class BaseRepository<T> : IBaseRepository<T> where T : class, new()
{
private readonly ISqlSugarClient _db;
public BaseRepository(ISqlSugarClient db)
{
_db = db;
}
public async Task<T> GetByIdAsync(object id)
{
return await _db.Queryable<T>().InSingleAsync(id);
}
public async Task<bool> InsertAsync(T entity)
{
return await _db.Insertable(entity).ExecuteCommandAsync() > 0;
}
// 其他CRUD方法...
}
多数据库支持: 通过配置文件可切换不同数据库:
// appsettings.json
"ConnectionConfigs": {
"DbType": "SqlServer", // 支持SqlServer/MySQL/PostgreSQL/Oracle等
"ConnectionString": "Server=.;Database=TMom;Uid=sa;Pwd=123456;"
}
二次开发指南
开发环境搭建
前端开发环境:
# 克隆代码仓库
git clone https://gitcode.com/thgao/tmom.git
cd tmom/web
# 安装依赖
npm install
# 启动开发服务器
npm run dev
后端开发环境:
- 使用Visual Studio 2022或JetBrains Rider打开解决方案
api/TMom.sln - 还原NuGet包
- 修改数据库连接字符串(
api/TMom.Api/appsettings.json) - 设置
TMom.Api为启动项目 - 运行项目,自动创建数据库表结构并初始化数据
模块扩展示例
以添加新的报表模块为例,展示二次开发流程:
1. 创建数据模型:
// TMom.Domain.Model/Report/ReportTemplate.cs
public class ReportTemplate : EntityBase
{
public string Name { get; set; }
public string Code { get; set; }
public string Content { get; set; }
public string Type { get; set; }
public int Sort { get; set; }
public bool IsActive { get; set; }
}
2. 创建仓储接口与实现:
// TMom.Domain.IRepository/Report/IReportTemplateRepository.cs
public interface IReportTemplateRepository : IBaseRepository<ReportTemplate>
{
Task<List<ReportTemplate>> GetActiveTemplatesAsync();
}
// TMom.Infrastructure.Repository/Report/ReportTemplateRepository.cs
public class ReportTemplateRepository : BaseRepository<ReportTemplate>, IReportTemplateRepository
{
public ReportTemplateRepository(ISqlSugarClient db) : base(db)
{
}
public async Task<List<ReportTemplate>> GetActiveTemplatesAsync()
{
return await _db.Queryable<ReportTemplate>()
.Where(t => t.IsActive)
.OrderBy(t => t.Sort)
.ToListAsync();
}
}
3. 创建应用服务:
// TMom.Application.Service/IService/Report/IReportTemplateService.cs
public interface IReportTemplateService : IBaseService<ReportTemplate>
{
Task<List<ReportTemplateDto>> GetActiveTemplatesAsync();
}
// TMom.Application.Service/Service/Report/ReportTemplateService.cs
public class ReportTemplateService : BaseService<ReportTemplate>, IReportTemplateService
{
private readonly IReportTemplateRepository _repository;
private readonly IMapper _mapper;
public ReportTemplateService(IReportTemplateRepository repository, IMapper mapper) : base(repository)
{
_repository = repository;
_mapper = mapper;
}
public async Task<List<ReportTemplateDto>> GetActiveTemplatesAsync()
{
var templates = await _repository.GetActiveTemplatesAsync();
return _mapper.Map<List<ReportTemplateDto>>(templates);
}
}
4. 创建API控制器:
// TMom.Api/Controllers/ReportController.cs
[Route("api/[controller]")]
[ApiController]
public class ReportController : BaseController
{
private readonly IReportTemplateService _reportTemplateService;
public ReportController(IReportTemplateService reportTemplateService)
{
_reportTemplateService = reportTemplateService;
}
[HttpGet("templates/active")]
public async Task<IActionResult> GetActiveTemplates()
{
var result = await _reportTemplateService.GetActiveTemplatesAsync();
return Ok(result);
}
}
5. 前端页面开发:
// web/src/views/report/TemplateList.vue
<template>
<a-table
:columns="columns"
:data-source="templates"
row-key="id"
pagination="false"
>
<template #operation="{ record }">
<a-button type="primary" @click="editTemplate(record)">编辑</a-button>
<a-button @click="deleteTemplate(record)">删除</a-button>
</template>
</a-table>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue';
import { getActiveTemplates } from '@/api/report/template';
import type { ReportTemplateDto } from '@/api/report/types';
const templates = ref<ReportTemplateDto[]>([]);
const columns = [
{
title: '报表名称',
dataIndex: 'name',
key: 'name',
},
{
title: '编码',
dataIndex: 'code',
key: 'code',
},
{
title: '类型',
dataIndex: 'type',
key: 'type',
},
{
title: '操作',
key: 'operation',
slots: { customRender: 'operation' },
},
];
onMounted(async () => {
const result = await getActiveTemplates();
templates.value = result;
});
const editTemplate = (record: ReportTemplateDto) => {
// 编辑逻辑
};
const deleteTemplate = (record: ReportTemplateDto) => {
// 删除逻辑
};
</script>
系统部署与运维
生产环境部署架构
为确保系统稳定运行,推荐采用以下生产环境部署架构:
flowchart TD
Client[客户端] --> LB[负载均衡器]
LB --> WebServer1[Web服务器1]
LB --> WebServer2[Web服务器2]
WebServer1 --> APIServer1[API服务器1]
WebServer1 --> APIServer2[API服务器2]
WebServer2 --> APIServer1
WebServer2 --> APIServer2
APIServer1 --> DB[(主数据库)]
APIServer2 --> DB
APIServer1 --> Redis[Redis集群]
APIServer2 --> Redis
DB --> SlaveDB[(从数据库)]
性能优化策略
-
数据库优化
- 合理设计索引,优化查询语句
- 大表分区,提高查询效率
- 读写分离,减轻主库压力
-
缓存策略
- 热点数据缓存(产品信息、工艺路线等)
- 分布式缓存(Redis),支持集群部署
- 缓存预热与自动刷新机制
-
前端优化
- 路由懒加载,减少初始加载时间
- 组件按需加载,减小打包体积
- 图片懒加载与压缩
- 接口数据缓存与节流
系统监控与告警
TMom提供完善的系统监控功能,实时监控系统运行状态:
- 服务器监控:CPU、内存、磁盘、网络使用率
- 应用监控:响应时间、请求量、错误率
- 数据库监控:连接数、查询性能、锁等待
- 业务监控:生产订单完成率、设备利用率、质量指标
总结与展望
TMom作为一款开源MOM/MES系统,提供了企业级的生产管理功能,同时保持了高度的灵活性和可扩展性。通过本文的介绍,你已经掌握了系统部署、核心功能使用和二次开发的基本方法。
未来版本规划:
- AI辅助排程:基于机器学习的智能排程算法
- 物联网集成:支持更多工业设备接入
- 数字孪生:生产过程三维可视化
- 供应链协同:与ERP、WMS等系统深度集成
社区贡献: TMom是一个开源项目,欢迎各位开发者参与贡献:
- 提交Issue:报告bug或提出新功能建议
- 贡献代码:提交Pull Request
- 文档完善:补充使用文档和开发指南
- 社区支持:在论坛或Issue中帮助其他用户
立即行动,访问项目仓库,开始你的生产制造数字化之旅:
git clone https://gitcode.com/thgao/tmom.git
cd tmom
# 按照部署指南启动系统
让我们一起打造国内最优秀的开源MOM系统,推动制造业数字化转型!
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00