Skip to content

redhair4740/Smart-Factory

Repository files navigation

Smart-Factory (伏尔甘智能工厂)

项目介绍

伏尔甘智能工厂是一个基于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+

快速开始

  1. 克隆项目
git clone https://github.com/your-username/Smart-Factory.git
  1. 后端启动
cd Smart-Factory
mvn clean install
cd vulcan-admin
mvn spring-boot:run
  1. 前端启动
cd vulcan-ui
pnpm install
pnpm dev

模块详情

vulcan-code 模块

模块简介

vulcan-code是项目的编码规则管理模块,负责生成业务编码、管理编码规则。该模块基于DDD (领域驱动设计) 思想实现。

架构设计

1. 仓库层结构
  • CodeRuleJpaRepository: 基础数据访问层,专注于JPA操作
  • CodeQueryRepository: 领域仓库接口,位于domain模块,定义领域模型所需的仓库能力
  • CodeRuleRepositoryImpl: 领域仓库实现,依赖JPA仓库,完成领域操作
2. 服务层设计
  • CodeRuleService: 服务接口,定义业务能力
  • CodeRuleServiceImpl: 服务实现,依赖领域仓库而非直接依赖JPA实现
    • 解耦业务逻辑与数据访问
    • 提取通用方法,避免重复代码
    • 添加事务管理
    • 改进异常处理
3. 缓存层设计
  • 与领域模型紧密集成
  • 使用缓存透明处理,简化服务实现

DDD 思想应用

  • 领域模型位于 vulcan-domain 模块,保持独立
  • 仓库接口定义在领域层,实现在基础设施层
  • 服务层依赖领域仓库接口,而非直接依赖技术实现
  • 编码规则作为聚合根,拥有完整的生命周期管理

核心功能

1. 编码规则管理
  • 创建、修改、删除编码规则
  • 启用/禁用编码规则
  • 重置编码规则序列值
2. 编码生成
  • 根据编码规则生成唯一编码
  • 支持批量生成编码
  • 分布式环境下通过分布式锁确保编码唯一性
3. 规则特性
  • 支持前缀设置
  • 支持日期格式设置
  • 支持序列号长度设置
  • 支持循环规则(按日、按月、按年循环)
  • 支持步长设置

技术实现

  • 使用Redis缓存编码规则,提高性能
  • 使用Redisson实现分布式锁,确保编码唯一性
  • 采用DDD架构设计,通过领域模型定义接口
  • 支持多种持久化方式

示例编码格式

  1. 订单编码: ORD20230501-00001
  2. 客户编码: CUST202305-0001
  3. 产品编码: 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 模块

模块简介

vulcan-system是项目的系统管理模块,负责用户管理、权限控制和系统配置等核心功能。该模块同样遵循DDD (领域驱动设计) 的设计思想。

架构设计

1. 仓库层结构
  • SysUserRepository: 基础数据访问层,基于JPA实现,提供基础的数据访问能力,不直接暴露给服务层
  • UserQueryRepository: 位于domain模块的领域仓库接口,定义领域模型所需的用户查询和管理能力
  • UserQueryServiceImpl: 领域仓库实现,依赖于JPA仓库,完成领域操作,实现领域仓库接口
2. 服务层设计
  • SysUserService: 服务接口,定义用户管理业务能力
  • SysUserServiceImpl: 服务实现,只依赖领域仓库接口,不直接依赖JPA实现
    • 实现事务控制
    • 用户创建、查询、更新、删除等业务功能
    • 支持分页查询
    • 用户状态管理
3. 控制器层设计
  • login: 登录相关控制器
  • user: 用户管理相关控制器

DDD 思想应用

  • 领域模型位于 vulcan-domain 模块,包含 SysUser 等核心领域实体
  • 领域仓库接口 UserQueryRepository 定义在domain层,实现在基础设施层
  • 服务层依赖领域仓库接口,而非直接依赖技术实现,实现了更好的解耦
  • DTO/VO模式用于数据传输,减少领域模型暴露
  • 清晰的职责分离,符合DDD分层架构

核心功能

1. 用户管理
  • 创建、修改、删除用户
  • 用户列表查询与分页
  • 用户信息详情查看
  • 用户状态管理(启用/禁用)
2. 身份验证
  • 用户登录
  • 登录信息验证
  • 会话管理
3. 权限管理
  • 权限分配
  • 角色管理
  • 功能访问控制

技术实现

  • 使用Spring Data JPA作为ORM框架
  • 采用ModelMapper实现DTO与实体转换
  • 通过DDD思想组织代码结构
  • 实现声明式事务管理
  • 使用Spring缓存机制提高性能

贡献指南

欢迎提交问题和改进建议。如果您想贡献代码,请遵循以下步骤:

  1. Fork 本仓库
  2. 创建您的特性分支
  3. 提交您的改动
  4. 推送到您的分支
  5. 创建Pull Request

许可证

本项目采用 LICENSE 许可证。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors