首页
/ 从零到一:2025最热门开源MOM系统TMom部署与核心功能实战指南

从零到一:2025最热门开源MOM系统TMom部署与核心功能实战指南

2026-02-04 04:09:53作者:江焘钦

你是否正在为生产制造系统选型而头疼?面对市场上动辄百万级的商业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
    }

配置步骤

  1. 登录系统管理后台,进入"组织管理"->"租户管理"
  2. 创建新租户,设置租户名称、编码等基本信息
  3. 为租户分配厂区资源,设置数据权限范围
  4. 配置跨租户数据聚合规则(如集团级报表)

2. 工艺路线设计与可视化

工艺路线设计是生产制造的核心环节,TMom提供直观的拖拽式工艺路线设计工具,支持复杂生产流程定义。

工艺路线设计步骤

  1. 进入"工艺管理"->"工艺路线设计"模块
  2. 点击"新建工艺路线",填写基本信息(产品、版本、生效日期等)
  3. 在画布上拖拽工序节点,配置工序参数
  4. 设置工序间的逻辑关系(串行、并行、分支等)
  5. 配置每个工序的资源需求(设备、人员、物料)
  6. 保存并发布工艺路线
stateDiagram-v2
    [*] --> 领料
    领料 --> 加工: 物料确认
    加工 --> 检验: 加工完成
    检验 --> 装配: 检验合格
    检验 --> 返工: 检验不合格
    返工 --> 加工
    装配 --> 包装: 装配完成
    包装 --> [*]: 入库

高级功能

  • 工艺版本管理:支持多版本并行,版本比较与回溯
  • 工艺仿真:模拟生产流程,识别瓶颈工序
  • 工时计算:基于历史数据自动计算标准工时
  • 工序模板:常用工艺路线保存为模板,快速复用

3. 计划排程与生产执行

TMom提供可视化的生产计划排程功能,支持自动排程与手动调整,实现产能最大化利用。

计划排程流程

timeline
    title 生产计划排程流程
    订单导入 : 销售订单导入系统
    MPS计算 : 主生产计划计算
    MRP运算 : 物料需求计划运算
    能力平衡 : 生产能力与负荷平衡分析
    计划生成 : 自动生成生产工单
    计划下达 : 将工单下达至生产车间
    生产执行 : 车间生产与数据采集
    完工入库 : 生产完成与入库操作

排程策略配置

  • 优先级规则:订单紧急度、交期、资源利用率等
  • 约束条件:设备产能、人员技能、物料齐套等
  • 优化目标:最大化设备利用率、最小化生产周期、均衡生产负荷

4. 低代码报表与大屏看板

TMom内置低代码报表设计器,无需编码即可制作复杂报表与数据可视化大屏,满足不同层级的管理需求。

报表制作步骤

  1. 进入"报表中心"->"报表设计器"
  2. 选择报表类型(列表报表、交叉报表、图表报表等)
  3. 配置数据源(SQL查询、API接口、Excel导入等)
  4. 设计报表布局,拖拽控件到设计区
  5. 设置数据绑定关系与过滤条件
  6. 配置报表样式与分页设置
  7. 预览并保存报表

大屏看板制作

  1. 进入"数据可视化"->"大屏设计"
  2. 选择大屏模板或新建空白大屏
  3. 添加可视化组件(折线图、柱状图、仪表盘等)
  4. 配置组件数据源与刷新频率
  5. 设置组件联动效果与钻取规则
  6. 预览并发布大屏

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

后端开发环境

  1. 使用Visual Studio 2022或JetBrains Rider打开解决方案api/TMom.sln
  2. 还原NuGet包
  3. 修改数据库连接字符串(api/TMom.Api/appsettings.json
  4. 设置TMom.Api为启动项目
  5. 运行项目,自动创建数据库表结构并初始化数据

模块扩展示例

以添加新的报表模块为例,展示二次开发流程:

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[(从数据库)]

性能优化策略

  1. 数据库优化

    • 合理设计索引,优化查询语句
    • 大表分区,提高查询效率
    • 读写分离,减轻主库压力
  2. 缓存策略

    • 热点数据缓存(产品信息、工艺路线等)
    • 分布式缓存(Redis),支持集群部署
    • 缓存预热与自动刷新机制
  3. 前端优化

    • 路由懒加载,减少初始加载时间
    • 组件按需加载,减小打包体积
    • 图片懒加载与压缩
    • 接口数据缓存与节流

系统监控与告警

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系统,推动制造业数字化转型!

登录后查看全文
热门项目推荐
相关项目推荐