diff --git a/RuoYi-Vue/README.md b/RuoYi-Vue/README.md
index e5a47b8..741a2c4 100644
--- a/RuoYi-Vue/README.md
+++ b/RuoYi-Vue/README.md
@@ -1,96 +1,243 @@
-
-
-
-RuoYi v3.8.8
-基于SpringBoot+Vue前后端分离的Java快速开发框架
-
-
-
-
-
+# RuoYi-Vue 代码生成平台
-## 平台简介
+基于 RuoYi-Vue v3.8.8 二次开发的前后端分离后台管理系统。项目保留若依的用户、角色、菜单、日志、监控、定时任务、代码生成等基础能力,并在 `ruoyi-generator` 与 `ruoyi-ui/src/views/generator` 下扩展了项目级代码生成平台能力。
-若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
+当前仓库更适合按“后台基础框架 + 可配置代码生成平台”来理解:先用若依提供认证、权限、菜单、数据权限、日志和基础运维能力,再围绕项目、数据源、模板、模块、代码片段和项目结构生成完整代码包。
-* 前端采用Vue、Element UI。
-* 后端采用Spring Boot、Spring Security、Redis & Jwt。
-* 权限认证使用Jwt,支持多终端认证系统。
-* 支持加载动态权限菜单,多方式轻松权限控制。
-* 高效率开发,使用代码生成器可以一键生成前后端代码。
-* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。
-* 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。
-* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
-* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)
-* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)
+## 技术栈
-## 内置功能
+| 层级 | 技术 |
+| --- | --- |
+| 后端 | Java 8、Spring Boot 2.5.15、Spring Framework 5.3.39、Spring Security 5.7.12 |
+| 数据访问 | MyBatis、PageHelper、Druid、MySQL |
+| 缓存与任务 | Redis、Quartz |
+| 接口与工具 | JWT、Swagger/Springfox 3、Velocity、Fastjson2、Apache POI、OSHI |
+| 前端 | Vue 2.6.12、Vue CLI 4.4.6、Element UI 2.15.14、Vue Router、Vuex、Axios |
+| 构建 | Maven、npm |
-1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
-2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
-3. 岗位管理:配置系统用户所属担任职务。
-4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
-5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
-6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
-7. 参数管理:对系统动态配置常用参数。
-8. 通知公告:系统通知公告信息发布维护。
-9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
-10. 登录日志:系统登录日志记录查询包含登录异常。
-11. 在线用户:当前系统中活跃用户状态监控。
-12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
-13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
-14. 系统接口:根据业务代码自动生成相关的api接口文档。
-15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
-16. 缓存监控:对系统的缓存信息查询,命令统计等。
-17. 在线构建器:拖动表单元素生成相应的HTML代码。
-18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
+## 架构概览
-## 在线体验
+```mermaid
+flowchart LR
+ A["浏览器 / ruoyi-ui"] --> B["Vue DevServer
/dev-api 代理"]
+ B --> C["ruoyi-admin
Spring Boot 入口"]
+ C --> D["ruoyi-framework
安全、配置、Web 基础设施"]
+ C --> E["ruoyi-system
用户、角色、菜单、字典等"]
+ C --> F["ruoyi-generator
代码生成与扩展平台"]
+ C --> G["ruoyi-quartz
定时任务"]
+ C --> H["MySQL"]
+ C --> I["Redis"]
+ F --> J["Velocity 模板"]
+ F --> K["代码预览 / ZIP 下载"]
+```
-- admin/admin123
-- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
+## 目录结构
-演示地址:http://vue.ruoyi.vip
-文档地址:http://doc.ruoyi.vip
+| 路径 | 说明 |
+| --- | --- |
+| `ruoyi-admin` | 后端启动入口,打包为可执行 `war`;包含 Web Controller、配置文件和静态资源入口。 |
+| `ruoyi-framework` | 若依框架层,承载安全认证、权限校验、数据源、Web 配置、拦截器、异步任务等基础能力。 |
+| `ruoyi-system` | 系统管理业务模块,包括用户、角色、菜单、部门、岗位、字典、参数、通知公告、日志等。 |
+| `ruoyi-quartz` | 定时任务模块,封装 Quartz 任务、任务日志和调度管理。 |
+| `ruoyi-generator` | 代码生成模块;包含若依原生表驱动代码生成,以及本项目扩展的项目、模板、数据源、模块、代码片段、项目结构等功能。 |
+| `ruoyi-common` | 通用工具、常量、注解、基础实体、响应对象、异常、工具类等公共代码。 |
+| `ruoyi-ui` | Vue 2 + Element UI 前端工程。 |
+| `sql` | 数据库初始化与扩展脚本。 |
+| `doc` | 代码生成平台规划文档。 |
+| `docs` | 部分扩展 Controller 的接口说明文档。 |
+| `bin`、`ry.bat`、`ry.sh` | 启停脚本与辅助脚本。 |
-## 演示图
+## 核心功能
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
+### 若依基础能力
+- 用户、角色、菜单、部门、岗位管理。
+- 字典、参数、通知公告管理。
+- 登录日志、操作日志、在线用户管理。
+- 服务监控、缓存监控、Druid 连接池监控。
+- Quartz 定时任务与任务日志。
+- Swagger 接口文档、表单构建、若依原生代码生成。
-## 若依前后端分离交流群
+### 代码生成平台扩展
-QQ群: [](https://jq.qq.com/?_wv=1027&k=5bVB1og) [](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [](https://jq.qq.com/?_wv=1027&k=51G72yr) [](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [](https://jq.qq.com/?_wv=1027&k=SpyH2875) [](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) 点击按钮入群。
\ No newline at end of file
+| 功能 | 后端接口前缀 | 前端位置 |
+| --- | --- | --- |
+| 数据源管理 | `/generator/datasource` | `ruoyi-ui/src/views/generator/datasource` |
+| 项目管理 | `/generator/project` | `ruoyi-ui/src/views/generator/project` |
+| 项目关联表 | `/generator/project/table` | `ProjectTableConfig.vue` |
+| 项目关联模块 | `/generator/project/module` | `ProjectModuleConfig.vue` |
+| 项目模板配置 | `/generator/project/template` | `ProjectTemplateConfig.vue` |
+| 项目结构树 | `/generator/structure` | `ruoyi-ui/src/views/generator/structure` |
+| 模板管理 | `/generator/template` | `ruoyi-ui/src/views/generator/template` |
+| 模板文件管理 | `/generator/templateFile` | `templateFile.js` 与模板相关页面 |
+| 功能模块管理 | `/generator/module` | `ruoyi-ui/src/views/generator/module` |
+| 代码片段管理 | `/generator/snippet` | `ruoyi-ui/src/views/generator/snippet` |
+| 原生表代码生成 | `/tool/gen` | `ruoyi-ui/src/views/tool/gen` |
+
+扩展生成链路大致为:维护数据源和数据表,配置项目基本信息、项目关联表、模块、模板和结构树,通过 `GenProjectController` 预览或下载项目结构与生成代码。
+
+## 本地启动
+
+### 1. 环境准备
+
+- JDK 1.8
+- Maven 3.6+
+- MySQL 5.7/8.0
+- Redis 5+
+- Node.js:`package.json` 要求 `>=8.9`,实际开发建议使用 Node 14/16 LTS
+- npm 6+
+
+### 2. 初始化数据库
+
+默认数据库配置在 `ruoyi-admin/src/main/resources/application-druid.yml`:
+
+```yaml
+spring:
+ datasource:
+ druid:
+ master:
+ url: jdbc:mysql://localhost:3306/ry
+ username: root
+ password: 123456
+```
+
+创建数据库:
+
+```sql
+CREATE DATABASE ry DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
+```
+
+新库推荐直接导入完整脚本:
+
+```bash
+mysql -uroot -p ry < sql/db.sql
+```
+
+`sql/db.sql` 已整合若依基础表、Quartz 调度表、代码生成平台扩展表、初始化数据、代码生成平台菜单和按钮权限。分散脚本仍可作为增量或排查参考:
+
+1. `sql/ry_20240629.sql`:若依基础表与基础数据。
+2. `sql/quartz.sql`:Quartz 调度表。
+3. `sql/gen_project.sql`:项目基础信息表 `gen_project`。
+4. `sql/module_management.sql`:功能模块、代码片段、项目模块关系表。
+5. `sql/gen_table_project_rel.sql`:项目与代码生成表关系。
+6. `sql/sys_project_structure.sql`:项目结构节点表与初始化结构。
+7. `sql/add_create_table_sql_field.sql`:给 `gen_table` 增加建表 SQL 字段。
+8. `ruoyi-generator/sql/template_file_update.sql`:模板文件表增量字段。
+
+### 3. 配置后端
+
+重点检查以下配置:
+
+| 文件 | 关键项 |
+| --- | --- |
+| `ruoyi-admin/src/main/resources/application.yml` | `server.port` 默认 `8080`,`server.servlet.context-path` 默认 `/`,Redis 地址,上传目录 `ruoyi.profile`,Swagger 开关。 |
+| `ruoyi-admin/src/main/resources/application-druid.yml` | MySQL 地址、账号、密码、Druid 控制台账号。 |
+| `ruoyi-generator/src/main/resources/generator.yml` | 代码生成默认作者、包名、表前缀策略。 |
+
+启动后端:
+
+```bash
+mvn clean install -DskipTests
+mvn -pl ruoyi-admin -am spring-boot:run
+```
+
+也可以打包后运行:
+
+```bash
+mvn clean package -DskipTests
+java -jar ruoyi-admin/target/ruoyi-admin.war
+```
+
+后端默认地址:`http://localhost:8080`
+
+### 4. 启动前端
+
+```bash
+cd ruoyi-ui
+npm install --registry=https://registry.npmmirror.com
+npm run dev
+```
+
+前端默认端口来自 `ruoyi-ui/vue.config.js`,为 `80`。开发环境的 `VUE_APP_BASE_API=/dev-api`,会代理到 `http://localhost:8080/`。
+
+浏览器访问:`http://localhost:80`
+
+默认账号:
+
+```text
+admin / admin123
+```
+
+如果本机 80 端口被占用,可以临时指定端口:
+
+```bash
+# Windows PowerShell
+$env:port=81
+npm run dev
+```
+
+## 构建与发布
+
+后端构建:
+
+```bash
+mvn clean package -DskipTests
+```
+
+产物位于:
+
+```text
+ruoyi-admin/target/ruoyi-admin.war
+```
+
+前端构建:
+
+```bash
+cd ruoyi-ui
+npm run build:prod
+```
+
+产物位于:
+
+```text
+ruoyi-ui/dist
+```
+
+生产环境需要注意:
+
+- `ruoyi-ui/vue.config.js` 中生产 `publicPath` 为 `/yidaima`。
+- `ruoyi-ui/.env.production` 中接口前缀为 `/prod-api`。
+- 如果部署在子路径或网关后面,需要同步调整 Nginx、前端 `publicPath`、接口代理和后端 `context-path`。
+
+## 常用入口
+
+| 入口 | 地址 |
+| --- | --- |
+| 后端服务 | `http://localhost:8080` |
+| 前端页面 | `http://localhost:80` |
+| Swagger UI | `http://localhost:8080/swagger-ui/index.html` |
+| Druid 控制台 | `http://localhost:8080/druid`,默认 `ruoyi / 123456` |
+
+## 开发约定
+
+- 后端扩展 Controller 主要位于 `ruoyi-generator/src/main/java/com/ruoyi/generator/controller`。
+- 后端扩展实体、Mapper、Service 位于 `ruoyi-generator/src/main/java/com/ruoyi/generator/{domain,mapper,service}`。
+- MyBatis XML 位于 `ruoyi-generator/src/main/resources/mapper/generator`。
+- 前端接口封装位于 `ruoyi-ui/src/api/generator`。
+- 前端扩展页面位于 `ruoyi-ui/src/views/generator`。
+- 权限标识沿用若依格式,例如 `generator:project:list`、`generator:template:add`、`tool:gen:preview`。
+- 代码生成模板分为若依默认模板 `ruoyi-generator/src/main/resources/vm` 与扩展模板目录 `ruoyi-generator/src/main/resources/qing`。
+
+## 文档索引
+
+- `doc/code-generator-platform.md`:代码生成平台功能规划。
+- `docs/*.md`:扩展 Controller 的接口说明。
+- `ruoyi-ui/README.md`:前端工程原始启动说明。
+- 若依官方文档:`http://doc.ruoyi.vip`
+
+## 排查提示
+
+- 后端启动失败优先检查 MySQL、Redis 是否启动,以及 `application-druid.yml` 中数据库账号密码是否正确。
+- 前端请求 404 或跨域异常时,检查 `.env.development` 的 `VUE_APP_BASE_API` 与 `vue.config.js` 的代理目标。
+- 使用生产构建部署到非根路径时,检查 `/yidaima`、`/prod-api` 与网关转发规则是否一致。
+- 生成平台页面报表不存在时,优先核对扩展 SQL 是否已导入,尤其是模板、数据源、项目结构和项目关联表。
diff --git a/RuoYi-Vue/ruoyi-generator/pom.xml b/RuoYi-Vue/ruoyi-generator/pom.xml
index 8e47f0c..73ff35c 100644
--- a/RuoYi-Vue/ruoyi-generator/pom.xml
+++ b/RuoYi-Vue/ruoyi-generator/pom.xml
@@ -35,6 +35,18 @@
druid-spring-boot-starter
+
+ junit
+ junit
+ test
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
-
\ No newline at end of file
+
diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenProjectServiceImpl.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenProjectServiceImpl.java
index 266f8ac..6b9c63b 100644
--- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenProjectServiceImpl.java
+++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenProjectServiceImpl.java
@@ -117,10 +117,7 @@ public class GenProjectServiceImpl implements IGenProjectService {
*/
@Override
public List