# machine-monolith-java
**Repository Path**: machineswift/machine-monolith-java
## Basic Information
- **Project Name**: machine-monolith-java
- **Description**: ERP系统(单体架构)
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-12-06
- **Last Updated**: 2026-07-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 Machine 单体应用

[](pom.xml)
[](https://spring.io/projects/spring-boot)
[](https://openjdk.java.net/)
[](https://maven.apache.org/)
[](LICENSE)
**企业级 Java 单体应用 · 与 Machine 微服务平台同源,核心能力与版本对齐**
[功能特性](#-功能特性) • [技术栈](#-技术栈) • [快速开始](#-快速开始) • [项目结构](#-项目结构)
---
## 📖 项目简介
**Machine Monolith Java** 是 Machine 产品线的单体部署形态,与 [Machine 微服务平台](https://gitee.com/machineswift/machine) 同源共建:业务能力与微服务保持一致,重要功能会同步迁入,便于在单机/小规模场景下快速交付与运维。
采用多模块 Maven + Spring Boot Starter 架构,内置统一身份认证、权限管理、数据管理、CRM、HRM、SCM、TPP 等企业级模块,集成工作流引擎(Camunda)、分布式调度(XXL-Job)、对象存储(OBS/OSS/COS/MinIO)、微信生态 SDK 等基础设施。
### 🎯 与微服务的差异
| 维度 | 微服务平台 | 单体应用(本项目) |
|------|-------------------------------------------------|-------------------------------------------|
| 部署形态 | 多服务(网关 + IAM + Manage + OpenAPI + MQ + XXL-Job) | 单进程 `machine-manage-app`(含全部业务) |
| 服务发现 | Nacos + OpenFeign | 进程内 Client 直调 Service |
| 技术栈 | Spring Boot 4 + Spring Cloud 2025 | Spring Boot 4,无 Spring Cloud |
| 模块范围 | 全量模块 | 无 gateway-server / camunda-server / Tests |
---
### 🎮 在线演示
> **👉 [http://www.machinerust.cn](http://www.machinerust.cn)**
| 角色 | 账号 | 密码 |
|-------|---------|----------|
| 👤 访客 | `demo` | `123456` |
| 👤 访客 | `guest` | `123456` |
---
## ✨ 功能特性
### 🔐 身份认证与授权 (IAM)
- **多种登录方式**:用户名密码、手机验证码、验证码(Kaptcha)
- **OAuth2**:完整授权服务器与资源服务器
- **第三方登录**:Gitee、飞书等(JustAuth)
- **JWT**:无状态 Token 鉴权
- **RBAC**:角色与细粒度权限、数据权限
- **组织架构**:多级组织与用户管理
### 📊 数据管理 (Data)
- **基础数据**:区域、品牌、供应商、门店等
- **素材管理**:上传、分类、分页筛选
- **标签系统**:多级标签与智能标签选项
- **附件管理**:统一文件上传/下载、分类(支持 OBS/OSS/COS/MinIO)
- **下载中心**:导出与下载管理(基于 Fastexcel)
- **消息通知**:站内消息与模板
### 👥 客户关系管理 (CRM)
- **客户与会员**:客户信息、会员等级与权益
### 👨💼 人力资源管理 (HRM)
- **组织与员工**:部门、岗位、员工信息与入职离职管理
### 📦 供应链 (SCM)
- **商品与类目**:商品管理、类目枚举与扩展
### 🔌 第三方平台 (TPP)
- **微信生态**:小程序、公众号、企业微信、开放平台、支付(Weixin Java SDK)
- **飞书集成**:飞书开放平台 SDK(Lark OAPI)
- **华为云**:API Gateway SDK
---
## 🔧 技术栈
当前项目版本:**2026.06-RELEASE**。
| 类型 | 技术 / 组件 | 版本 |
|------------|------------------------------------|----------------------------------|
| **运行框架** | Spring Boot | 4.0.6 |
| **语言** | Java | 25 |
| **构建** | Maven | 3.6+ |
| **安全** | Spring Security + OAuth2 + JWT | 随 Spring Boot |
| **持久化** | MyBatis-Plus | 3.5.16 |
| | dynamic-datasource (多数据源) | 4.5.0 |
| | p6spy (SQL 日志) | 2.0.1 |
| **缓存** | Redisson | 4.4.0 |
| | Jedis | 7.5.2 |
| | Caffeine | 3.2.4 |
| **数据库** | PostgreSQL | — |
| **文档** | SpringDoc OpenAPI (Swagger UI) | 3.0.2 |
| **对象存储** | x-file-storage (OBS/OSS/COS/MinIO) | 2.3.0 |
| **文档转换** | Apache Tika + jodconverter | 3.3.1 / 4.4.11 |
| **工作流** | Camunda BPM | 7.24.0 |
| **调度** | XXL-Job | 3.4.0 |
| **APM** | Apache SkyWalking | 9.6.0 |
| **流处理** | Apache Flink | 2.1.0 |
| **三方登录** | JustAuth | 1.16.7 |
| **微信 SDK** | 小程序 / 公众号 / 企业微信 / 支付 | 4.8.3-SNAPSHOT |
| **飞书 SDK** | Lark OAPI SDK | 2.0.2 |
| **HTTP** | OkHttp 5 + HttpClient 5 | 5.3.2 / 5.6.1 |
| **工具库** | Hutool / Guava / Gson / FastExcel | 5.8.46 / 33.6.0 / 2.14.0 / 1.3.0 |
| **字节码** | ByteBuddy + Javassist | 1.18.9 / 3.31.0 |
---
## 🚀 快速开始
### 环境要求
- **JDK 25**(若本地为 JDK 21,将根 `pom.xml` 中 `maven-compiler-plugin` 的 `source`/`target` 改为 `21`)
- **Maven 3.6+**
- **PostgreSQL**(业务数据库)
- **Redis**
- 可选:对象存储(OBS/OSS/COS/MinIO)、SkyWalking OAP Server
## 📁 项目结构
```
machine-monolith-java/
├── machine-apps/ # 应用层
│ └── machine-manage-app/ # 单体主应用入口(管理端 API + 鉴权)
├── machine-clients/ # 客户端接口层(进程内调用)
│ ├── machine-iam-client/ # 身份认证与授权接口
│ ├── machine-data-client/ # 数据管理接口
│ ├── machine-crm-client/ # CRM 接口
│ ├── machine-hrm-client/ # HRM 接口
│ ├── machine-scm-client/ # SCM 接口
│ └── machine-tpp-client/ # 第三方平台接口
├── machine-services/ # 服务实现层
│ ├── machine-iam-service/ # 身份认证与授权实现
│ ├── machine-data-service/ # 数据管理实现
│ ├── machine-crm-service/ # CRM 实现
│ ├── machine-hrm-service/ # HRM 实现
│ └── machine-scm-service/ # SCM 实现
├── machine-starters/ # Spring Boot Starter 自动配置
│ ├── machine-base-boot-starter/ # 基础自动配置(校验、JSON、通用 SDK)
│ ├── machine-mybatis-boot-starter/ # MyBatis-Plus 自动配置
│ ├── machine-redis-boot-starter/ # Redis / Redisson 自动配置
│ ├── machine-security-boot-starter/ # 安全认证自动配置
│ └── machine-obs-boot-starter/ # 对象存储自动配置
├── machine-generals/ # 通用共享库
│ └── machine-base-sdk/ # 通用 SDK(枚举、异常、工具类)
├── pom.xml # 父 POM
└── README.md
```
### 模块说明
| 层级 | 目录 | 职责 |
|--------------|---------------------|-------------------------------------------|
| **Apps** | `machine-apps/` | 应用入口,暴露 HTTP API 并注册 Filter/Security 配置 |
| **Clients** | `machine-clients/` | 服务接口 + DTO 定义,单体中由对应 Service 实现,**进程内调用** |
| **Services** | `machine-services/` | 业务逻辑实现 + 数据访问(Mapper/DAO) |
| **Starters** | `machine-starters/` | Spring Boot 自动配置封装,按需引入(数据库、缓存、安全、对象存储等) |
| **Generals** | `machine-generals/` | 通用 SDK,不依赖 Spring Boot,可供外部项目引用 |
---
## 📄 许可证
本项目采用 [MIT License](LICENSE)。
---
## 📞 联系我们
📧 **邮箱**: machineswift@qq.com
---
**如果本项目对您有帮助,欢迎 ⭐ Star**
Made with ❤️ by Machine Team