伏尔甘智能工厂是一个基于SpringBoot 3.x的现代化工厂管理系统,采用模块化架构设计,集成了多种先进技术栈,旨在提供一个高效、可靠、安全的智能工厂解决方案。
项目采用多模块架构设计,各模块职责分明:
-
vulcan-admin: 系统启动模块
- 作为应用程序的统一入口点
- 集成各个功能模块
- 提供系统启动和初始化功能
-
vulcan-framework: 框架核心模块
- 提供基础框架配置
- 异常处理机制
- 核心配置管理
-
vulcan-common: 公共基础模块
- 通用工具类库
- 公共注解
- 基础实体类
- 共享服务接口
-
vulcan-system: 系统管理模块
- 核心业务实体管理
- 系统服务实现
- 数据访问层
- 业务逻辑处理
-
vulcan-auth: 认证授权模块
- 用户认证
- 权限管理
- 安全控制
-
vulcan-cache: 缓存处理模块
- 缓存策略实现
- 数据缓存管理
- 性能优化
-
vulcan-mq: 消息队列模块
- 消息队列集成
- 异步处理
- 事件驱动
-
vulcan-code: 编码规则管理模块
- 业务编码生成
- 编码规则管理
- 分布式环境下的唯一编码保证
-
vulcan-ui: 前端界面模块
- 用户界面实现
- 前端路由管理
- 状态管理
- API集成
采用现代化的前端技术栈:
- 基于Vue 3.2.4构建
- 使用Vite 5.2.0作为构建工具
- 采用TypeScript开发
- 使用Naive UI组件库
- Pinia状态管理
- Vue Router路由管理
| 技术栈 | 版本 | 说明 |
|---|---|---|
| SpringBoot | 3.2.4 | 应用基础框架 |
| SpringData JPA | - | 数据访问层 |
| Dynamic Datasource | 4.3.0 | 动态数据源 |
| MySQL | 8.0.27 | 数据库 |
| Redis | 7 | 缓存数据库 |
| Jedis | 5.1.2 | Redis客户端 |
| Druid | 1.2.22 | 数据库连接池 |
| sa-token | 1.37.0 | 认证授权框架 |
| Lombok | - | 代码简化工具 |
| 技术栈 | 版本 | 说明 |
|---|---|---|
| Vue | 3.2.4 | 前端框架 |
| Vite | 5.2.0 | 构建工具 |
| Node | 20.12.2 | 运行环境 |
| pnpm | 9.0.5 | 包管理器 |
| Naive UI | 2.38.1 | UI组件库 |
- 🚀 基于最新的Spring Boot 3.x版本开发
- 📦 模块化架构设计,易于扩展
- 🔐 完善的权限认证系统
- 💾 支持动态数据源配置
- 🔄 集成消息队列,支持异步处理
- 🎯 高性能缓存支持
- 🎨 现代化的前端界面
- 📱 响应式设计,支持多端适配
- JDK 21+
- MySQL 8.0+
- Redis 7.0+
- Node.js 20+
- pnpm 9.0+
- 克隆项目
git clone https://github.com/your-username/Smart-Factory.git- 后端启动
cd Smart-Factory
mvn clean install
cd vulcan-admin
mvn spring-boot:run- 前端启动
cd vulcan-ui
pnpm install
pnpm devvulcan-code是项目的编码规则管理模块,负责生成业务编码、管理编码规则。该模块基于DDD (领域驱动设计) 思想实现。
CodeRuleJpaRepository: 基础数据访问层,专注于JPA操作CodeQueryRepository: 领域仓库接口,位于domain模块,定义领域模型所需的仓库能力CodeRuleRepositoryImpl: 领域仓库实现,依赖JPA仓库,完成领域操作
CodeRuleService: 服务接口,定义业务能力CodeRuleServiceImpl: 服务实现,依赖领域仓库而非直接依赖JPA实现- 解耦业务逻辑与数据访问
- 提取通用方法,避免重复代码
- 添加事务管理
- 改进异常处理
- 与领域模型紧密集成
- 使用缓存透明处理,简化服务实现
- 领域模型位于
vulcan-domain模块,保持独立 - 仓库接口定义在领域层,实现在基础设施层
- 服务层依赖领域仓库接口,而非直接依赖技术实现
- 编码规则作为聚合根,拥有完整的生命周期管理
- 创建、修改、删除编码规则
- 启用/禁用编码规则
- 重置编码规则序列值
- 根据编码规则生成唯一编码
- 支持批量生成编码
- 分布式环境下通过分布式锁确保编码唯一性
- 支持前缀设置
- 支持日期格式设置
- 支持序列号长度设置
- 支持循环规则(按日、按月、按年循环)
- 支持步长设置
- 使用Redis缓存编码规则,提高性能
- 使用Redisson实现分布式锁,确保编码唯一性
- 采用DDD架构设计,通过领域模型定义接口
- 支持多种持久化方式
- 订单编码: ORD20230501-00001
- 客户编码: CUST202305-0001
- 产品编码: P000001
POST /code/rule/generate
请求参数:
{
"ruleCode": "ORDER",
"businessId": "123",
"appId": "APP001",
"currentDate": "2023-05-01"
}响应结果:
{
"code": 200,
"msg": "操作成功",
"data": "ORD20230501-00001"
}POST /code/rule/generate/batch?count=5
vulcan-system是项目的系统管理模块,负责用户管理、权限控制和系统配置等核心功能。该模块同样遵循DDD (领域驱动设计) 的设计思想。
SysUserRepository: 基础数据访问层,基于JPA实现,提供基础的数据访问能力,不直接暴露给服务层UserQueryRepository: 位于domain模块的领域仓库接口,定义领域模型所需的用户查询和管理能力UserQueryServiceImpl: 领域仓库实现,依赖于JPA仓库,完成领域操作,实现领域仓库接口
SysUserService: 服务接口,定义用户管理业务能力SysUserServiceImpl: 服务实现,只依赖领域仓库接口,不直接依赖JPA实现- 实现事务控制
- 用户创建、查询、更新、删除等业务功能
- 支持分页查询
- 用户状态管理
login: 登录相关控制器user: 用户管理相关控制器
- 领域模型位于
vulcan-domain模块,包含SysUser等核心领域实体 - 领域仓库接口
UserQueryRepository定义在domain层,实现在基础设施层 - 服务层依赖领域仓库接口,而非直接依赖技术实现,实现了更好的解耦
- DTO/VO模式用于数据传输,减少领域模型暴露
- 清晰的职责分离,符合DDD分层架构
- 创建、修改、删除用户
- 用户列表查询与分页
- 用户信息详情查看
- 用户状态管理(启用/禁用)
- 用户登录
- 登录信息验证
- 会话管理
- 权限分配
- 角色管理
- 功能访问控制
- 使用Spring Data JPA作为ORM框架
- 采用ModelMapper实现DTO与实体转换
- 通过DDD思想组织代码结构
- 实现声明式事务管理
- 使用Spring缓存机制提高性能
欢迎提交问题和改进建议。如果您想贡献代码,请遵循以下步骤:
- Fork 本仓库
- 创建您的特性分支
- 提交您的改动
- 推送到您的分支
- 创建Pull Request
本项目采用 LICENSE 许可证。