# machine-monolith-java
**Repository Path**: jason_1990/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**: 2026-02-14
- **Last Updated**: 2026-02-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Machine Monolith Java




**企业级 Java 单体应用系统 - 基于 Spring Boot 4 的现代化企业管理系统**
[演示环境](#-演示环境) • [功能特性](#-功能特性) • [技术栈](#-技术栈) • [环境要求](#-环境要求) • [快速开始](#-快速开始) • [项目结构](#-项目结构) • [配置说明](#-配置说明) • [文档](#-文档)
---
## 📖 项目简介
Machine Monolith Java 是一个基于 **Spring Boot 4** 构建的企业级单体应用系统,采用多模块 Maven 架构,通过 Spring Boot Starter 机制实现模块化封装。系统提供完整的身份认证、权限管理、数据管理、客户关系管理、人力资源管理等企业级功能模块,支持灵活的扩展和定制。
系统内置完善的权限控制、对象存储(OBS)、消息通知等特性,并集成 OAuth2、JWT、第三方登录(Gitee、飞书)、OpenAPI 文档等能力。
## 🌐 演示环境
| 项目 | 说明 |
|----------|---------------------------|
| **访问地址** | http://www.machinerust.cn |
| **演示账号** | `guest` |
| **演示密码** | `123456` |
可直接使用上述账号登录体验系统功能。
## ✨ 功能特性
### 🔐 身份认证与授权 (IAM)
- **多种登录方式**:支持用户名密码、手机验证码登录
- **OAuth2 认证**:完整的 OAuth2 授权服务器和资源服务器实现
- **第三方登录**:集成 Gitee、飞书等第三方平台登录
- **JWT Token**:基于 JWT 的无状态认证机制
- **权限管理**:基于角色的访问控制(RBAC),支持细粒度权限控制
- **组织架构**:支持多级组织架构管理
- **用户管理**:完整的用户生命周期管理(含店铺用户、供应商用户等)
### 📊 数据管理 (Data)
- **基础数据管理**:区域、品牌、物料、供应商等基础数据维护
- **标签系统**:灵活的多级标签分类体系
- **附件管理**:统一的文件上传、下载、分类管理(含 OBS 多存储支持)
- **店铺管理**:多店铺信息管理
- **消息通知**:站内消息和消息模板管理
- **下载中心**:文件下载中心功能
### 👥 客户关系管理 (CRM)
- **客户管理**:客户信息维护和客户关系跟踪
- **会员管理**:会员等级、积分、权益管理
### 👨💼 人力资源管理 (HRM)
- **组织架构**:部门、岗位管理
- **员工管理**:员工信息、入职、离职管理
- **岗位管理**:岗位信息维护
### 📦 供应链 (SCM)
- 供应链相关业务模块(通过 `machine-scm-client` / `machine-scm-service` 提供)
---
## 🛠 技术栈
| 类别 | 技术 |
|------------|----------------------------------------------------------|
| **核心框架** | Spring Boot 4.0、Spring WebMvc、Tomcat |
| **持久层** | MyBatis-Plus、Dynamic DataSource、PostgreSQL、P6Spy(SQL 分析) |
| **缓存** | Redisson、Jedis、Caffeine |
| **安全** | Spring Security、OAuth2、JWT(jjwt)、JustAuth(第三方登录) |
| **API 文档** | SpringDoc OpenAPI 3(Swagger UI) |
| **对象存储** | x-file-storage(华为 OBS / 阿里 OSS / 腾讯 COS / MinIO) |
| **工具库** | Hutool、Guava、Lombok、Gson、FastExcel、Kaptcha |
| **第三方集成** | 微信(公众号/小程序/支付/开放平台/企业微信)、飞书、Gitee、XXL-Job、Camunda、Flink |
| **可观测** | SkyWalking(APM、Logback) |
---
## 📋 环境要求
- **JDK**:25+
- **Maven**:3.6+
- **PostgreSQL**:需预先创建数据库(默认 schema 由 `machine.datasource.schema` 指定,如 `machine_all`)
- **Redis**:用于会话、缓存等
---
## 🚀 快速开始
### 1. 克隆项目
```bash
git clone
cd machine-monolith-java
```
### 2. 编译项目
```bash
mvn clean install -DskipTests
```
### 3. 配置应用
主配置文件:`machine-apps/machine-manage-app/src/main/resources/application.yml`。
默认激活 profile:`LOCAL`,请在该 profile 或对应环境中配置:
- **数据源**:`machine.datasource.host`、`machine.datasource.schema`、`machine.datasource.username`、`machine.datasource.password`
- **Redis**:`machine.redis.host`、`machine.redis.port`、`machine.redis.password`(可选)
- **OAuth2 回调**(可选):`auth2.redirectFrontUri`、Gitee/飞书的 `clientId`、`clientSecret`、`redirectUri`
### 4. 启动应用
主类:`com.machine.app.manage.ManageApp`。
```bash
cd machine-apps/machine-manage-app
mvn spring-boot:run
```
或运行打包后的 jar:
```bash
java -jar machine-manage-app.jar
```
默认端口:**8080**。
上下文路径:`/machine-gateway-server/machine-manage-app`。
### 5. 访问 API 文档
启动后访问 SpringDoc Swagger UI(根据实际 context-path):
- **Swagger UI**:`http://localhost:8080/machine-gateway-server/machine-manage-app/swagger-ui.html`
---
## 📁 项目结构
```
machine-monolith-java/
├── machine-apps/ # 应用模块
│ └── machine-manage-app/ # 主应用入口(ManageApp)
│ ├── src/main/java/ # Java 源代码(Controller、VO、Business)
│ └── src/main/resources/ # 配置文件(application.yml 等)
│
├── machine-clients/ # 客户端模块(API 接口与 DTO 定义)
│ ├── machine-iam-client/ # IAM 客户端
│ ├── machine-data-client/ # 数据服务客户端
│ ├── machine-crm-client/ # CRM 客户端
│ ├── machine-hrm-client/ # HRM 客户端
│ ├── machine-scm-client/ # SCM 客户端
│ └── machine-tpp-client/ # 第三方平台客户端
│
├── machine-services/ # 服务实现模块(业务逻辑与数据访问)
│ ├── machine-iam-service/ # IAM 服务实现
│ ├── machine-data-service/ # 数据服务实现
│ ├── machine-crm-service/ # CRM 服务实现
│ ├── machine-hrm-service/ # HRM 服务实现
│ └── machine-scm-service/ # SCM 服务实现
│
├── machine-starters/ # Spring Boot Starter 模块
│ ├── machine-base-boot-starter/ # 通用 Web/校验等基础能力
│ ├── machine-mybatis-boot-starter/ # MyBatis-Plus 与数据源
│ ├── machine-redis-boot-starter/ # Redis 集成
│ ├── machine-security-boot-starter/ # 安全认证与 OAuth2
│ └── machine-obs-boot-starter/ # 对象存储
│
├── machine-generals/ # 通用模块
│ └── machine-common-sdk/ # 通用 SDK(公共模型、工具等)
│
├── pom.xml # 父 POM(依赖管理、Java 25、Spring Boot 4)
└── README.md # 项目说明文档
```
### 模块说明
| 模块 | 说明 |
|----------------------|----------------------------------------------|
| **machine-apps** | 应用层,主应用入口及 HTTP 控制器 |
| **machine-clients** | 客户端层,定义服务接口与 DTO,供 app 与 service 解耦 |
| **machine-services** | 服务层,实现业务逻辑与数据访问(依赖 mybatis/redis 等 starters) |
| **machine-starters** | 自动配置与能力封装(基础、MyBatis、Redis、安全、OBS) |
| **machine-generals** | 通用工具与 SDK |
---
## ⚙️ 配置说明
| 配置项 | 说明 |
|--------------------------------------------|--------------------------------------------|
| `spring.profiles.active` | 激活的 profile,默认 `LOCAL` |
| `machine.datasource.schema` | 数据库 schema(如 `machine_all`) |
| `machine.datasource.host` | PostgreSQL 主机(在 profile 或环境变量中配置) |
| `machine.datasource.username` / `password` | 数据库账号密码 |
| `machine.redis.host` / `port` / `password` | Redis 连接信息 |
| `auth2.redirectFrontUri` | OAuth2 前端回调地址 |
| `auth2.gitee` / `auth2.feiShu` | Gitee、飞书 clientId、clientSecret、redirectUri |
数据源与 MyBatis 详细配置见 `machine-mybatis-boot-starter` 的 `machine-mybatis.yml`;Redis 见 `machine-redis-boot-starter` 的 `machine-redis.yml`。
---
## 📄 文档
- **API 文档**:启动应用后访问 Swagger UI(见 [快速开始](#-快速开始) 第 5 步)。
- **版本**:当前项目版本 **2.0.1-RELEASE**(见根目录 `pom.xml`)。
---
## 📄 许可证
本项目采用 [MIT License](LICENSE) 许可证。
## 👥 作者
**machineswift**
- Gitee: [@machineswift](https://gitee.com/machineswift)