# MOM **Repository Path**: elfbobo_admin_admin/mom ## Basic Information - **Project Name**: MOM - **Description**: MOM 运营协调平台的核心价值是 “让制造运营从‘分散、被动、事后’转向‘协同、主动、事前’”。它不是单一的软件,而是一套 “以数据为核心、以协同为目标” 的制造运营管理体系,通过整合全流程数据、优化资源配置、支撑智能决策,帮助企业应对多品种、小批量、快交付的市场需求,最终实现制造运营的数字化、精益化、智能化升级。 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-06 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MOM(制造运营管理)运营协调平台 ## 项目简介 MOM(制造运营管理)运营协调平台是连接企业顶层 ERP(企业资源计划)系统与车间底层执行系统(如 MES、SCADA)的核心枢纽,聚焦制造全流程的 “协同、可视、优化”,通过整合生产、资源、质量、物流等全要素数据,打破部门与系统壁垒,实现制造运营从 “被动执行” 到 “主动协调” 的数字化转型,最终提升生产效率、降低成本、保障质量稳定性。 ## 技术栈 - **核心框架**: Spring Boot 2.7.5 - **持久层**: MyBatis-Plus 3.5.3.2 - **数据库**: PostgreSQL、TDengine(时序数据库) - **缓存**: Redis + Redisson 3.31.0 - **认证授权**: Sa-Token 1.38.0 - **API文档**: Knife4j 4.4.0 - **工具类**: Hutool 5.8.25、Guava 33.0.0 - **对象转换**: MapStruct 1.5.2 - **连接池**: Druid 1.2.23 - **多数据源**: Dynamic-Datasource 4.3.0 - **异步处理**: Disruptor 3.4.4 - **Web容器**: Undertow ## 项目结构 ``` low-code/ ├── low-code-common/ # 公共模块(基础设施、工具类、配置) ├── low-code-console/ # 控制台模块(主应用入口) ├── low-code-interface/ # 接口集成模块(ERP对接等) ├── low-code-flow/ # 工作流引擎模块 ├── low-code-log/ # 日志管理模块(基于TDengine) ├── low-code-mail/ # 邮件发送模块 ├── low-code-message/ # 消息通知模块 ├── low-code-print/ # 打印服务模块 ├── low-code-task/ # 任务调度模块 ├── cache-file/ # 文件缓存模块 ├── scaffold/ # 脚手架工具 ├── xxl-job-printer/ # XXL-Job打印任务 └── doc/ # 项目文档 ├── sql/ # 数据库脚本 └── easycode/ # 代码生成配置 ``` ## 核心模块说明 ### low-code-common(公共模块) 提供平台的基础设施和通用功能: - 多租户支持(基于拦截器的租户隔离) - 统一认证授权(Sa-Token集成) - 多数据源管理(动态数据源切换) - Redis缓存配置(Protostuff序列化) - 统一异常处理 - 工具类封装(Hutool、Guava) - API文档配置(Knife4j) ### low-code-console(控制台模块) 系统的主应用入口,提供: - 系统管理功能 - 用户权限管理 - 业务数据管理 - 依赖 low-code-log 模块 ### low-code-interface(接口集成模块) 负责与外部系统(如ERP)的数据对接: - 采购订单同步(PurchaseOrderSyncProcessor) - 销售订单同步(SalesOrderSyncProcessor) - 出库订单同步(OutOrderSyncProcessor) - 入库订单同步(InOrderSyncProcessor) - 委外订单同步(OutsourceOrderSyncProcessor) - 工单同步(WorkorderSyncProcessor) - 支持异步处理和反审核操作 ### low-code-flow(工作流模块) 提供工作流引擎功能: - 流程定义和配置 - 流程实例管理 - 任务审批流转 ### low-code-log(日志模块) 基于 TDengine 时序数据库的日志管理: - 操作日志记录 - 系统日志存储 - 日志查询分析 - 使用 Disruptor 实现高性能异步日志写入 - IP地址解析(ip2region) ### low-code-mail(邮件模块) 提供邮件发送功能: - 支持 Spring Boot Mail - 需要在配置文件中配置邮件服务器信息 ### 其他模块 - **low-code-message**: 消息通知服务 - **low-code-print**: 打印服务 - **low-code-task**: 任务调度服务 - **cache-file**: 文件缓存管理 - **scaffold**: 代码生成脚手架 - **xxl-job-printer**: XXL-Job 打印任务集成 ## 快速开始 ### 环境要求 - JDK 8+ - Maven 3.6+ - PostgreSQL 12+ - Redis 5.0+ - TDengine 3.x(可选,用于日志模块) ### 数据库初始化 执行 `doc/sql/` 目录下的SQL脚本: ```bash # 1. 创建数据库 psql -U postgres -f doc/sql/create_db.sql # 2. 初始化控制台表结构 psql -U postgres -d low_code -f doc/sql/low_code_console_init.sql # 3. 初始化业务表结构 psql -U postgres -d low_code -f doc/sql/low_code_biz_init.sql # 4. 初始化工作流表结构 psql -U postgres -d low_code -f doc/sql/flow_init.sql # 5. 初始化字典数据 psql -U postgres -d low_code -f doc/sql/dict_init.sql ``` ### 配置文件 在 `low-code-console/src/main/resources/application.yml` 中配置: ```yaml spring: datasource: # 数据库配置 url: jdbc:postgresql://localhost:5432/low_code username: postgres password: your_password redis: # Redis配置 host: localhost port: 6379 password: your_redis_password mail: # 邮件服务器配置(如需使用邮件模块) host: smtp.example.com port: 587 username: your_email@example.com password: your_email_password ``` ### 编译打包 ```bash # 编译整个项目 mvn clean install # 打包控制台模块 cd low-code-console mvn clean package ``` ### 运行应用 ```bash # 方式1:使用Maven运行 cd low-code-console mvn spring-boot:run # 方式2:运行打包后的jar java -jar low-code-console/target/low-code-console-1.0.0.jar ``` 应用启动后访问: - 应用地址: http://localhost:8080 - API文档: http://localhost:8080/doc.html ## 核心特性 ### 1. 多租户架构 - 基于拦截器的租户数据隔离 - 支持租户级别的数据源切换 - 租户上下文自动传递(TransmittableThreadLocal) ### 2. 多数据源支持 - 动态数据源切换 - 支持主从读写分离 - 支持多种数据库类型(PostgreSQL、TDengine等) ### 3. 异步处理机制 - 基于 @Async 的异步任务处理 - 使用 Disruptor 实现高性能日志写入 - 支持异步线程的租户上下文传递 ### 4. 工作流引擎 - 可视化流程设计 - 灵活的审批流程配置 - 流程实例监控 ### 5. 接口集成 - 支持与ERP等外部系统对接 - 异步数据同步处理 - 支持反审核和数据回滚 - 双重保障删除策略(MyBatis + JdbcTemplate) ### 6. 日志管理 - 基于 TDengine 的高性能日志存储 - 支持操作日志和系统日志 - IP地址解析和地理位置定位 ## 开发指南 ### 代码生成 使用 EasyCode 插件配合 `doc/easycode/EasyCodeConfig.json` 配置文件快速生成代码。 ### 多租户开发注意事项 1. 在异步方法中需要手动设置租户上下文: ```java AuthUtil.CurrentUser mockUser = AuthUtil.CurrentUser.builder() .tsEnterpriseId(tenantId) .build(); AuthUtil.setCurrentUser(mockUser); ``` 2. 删除操作使用双重保障策略: ```java // 先尝试 MyBatis 方式 int updated = mapper.deleteById(id); if (updated == 0) { // 降级使用 JdbcTemplate jdbcTemplate.update("UPDATE table SET is_deleted='1' WHERE id=?", id); } ``` ### 数据源切换 使用 `@DS` 注解切换数据源: ```java @DS("slave") public List queryUsers() { // 使用从库查询 } ``` ## 常见问题 ### 1. 反审核删除失败 **问题**: 异步线程中删除数据返回0行受影响 **原因**: 异步线程租户上下文丢失,多租户拦截器使用错误的租户ID **解决方案**: 参考 `采购订单反审核删除问题排查与解决方案.md` ### 2. 多数据源事务问题 **问题**: 跨数据源事务不生效 **解决方案**: 使用分布式事务或避免跨数据源的事务操作 ## 文档 - [其他同步处理器修改指南](其他同步处理器修改指南.md) - [反审核处理器修改完成总结](反审核处理器修改完成总结.md) - [采购订单反审核删除问题排查与解决方案](采购订单反审核删除问题排查与解决方案.md) ## 版本信息 - 当前版本: 1.0.0 - Spring Boot: 2.7.5 - JDK: 8