diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 8abf1a68..0b1661e2 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -18,7 +18,7 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/ruoyi-ai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
username: root
- password: root
+ password: 123456
hikari:
# 最大连接池数量
diff --git a/ruoyi-modules/ruoyi-generator/pom.xml b/ruoyi-modules/ruoyi-generator/pom.xml
index c6ab5e3c..e545d91b 100644
--- a/ruoyi-modules/ruoyi-generator/pom.xml
+++ b/ruoyi-modules/ruoyi-generator/pom.xml
@@ -48,6 +48,10 @@
org.apache.velocity
velocity-engine-core
+
+ org.ruoyi
+ ruoyi-common-excel
+
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/controller/SysDemoController.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/controller/SysDemoController.java
new file mode 100644
index 00000000..0c795ed9
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/controller/SysDemoController.java
@@ -0,0 +1,105 @@
+package org.ruoyi.system.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.ruoyi.common.idempotent.annotation.RepeatSubmit;
+import org.ruoyi.common.log.annotation.Log;
+import org.ruoyi.common.web.core.BaseController;
+import org.ruoyi.core.page.PageQuery;
+import org.ruoyi.common.core.domain.R;
+import org.ruoyi.common.core.validate.AddGroup;
+import org.ruoyi.common.core.validate.EditGroup;
+import org.ruoyi.common.log.enums.BusinessType;
+import org.ruoyi.common.excel.utils.ExcelUtil;
+import org.ruoyi.system.domain.vo.SysDemoVo;
+import org.ruoyi.system.domain.bo.SysDemoBo;
+import org.ruoyi.system.service.SysDemoService;
+import org.ruoyi.core.page.TableDataInfo;
+
+/**
+ * dome管理
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("dev/sysDemo")
+public class SysDemoController extends BaseController {
+
+ private final SysDemoService sysDemoService;
+
+/**
+ * 查询dome管理列表
+ */
+@SaCheckPermission("system:sysDemo:list")
+@GetMapping("/list")
+ public TableDataInfo list(SysDemoBo bo, PageQuery pageQuery) {
+ return sysDemoService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出dome管理列表
+ */
+ @SaCheckPermission("system:sysDemo:export")
+ @Log(title = "dome管理", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(SysDemoBo bo, HttpServletResponse response) {
+ List list = sysDemoService.queryList(bo);
+ ExcelUtil.exportExcel(list, "dome管理", SysDemoVo.class, response);
+ }
+
+ /**
+ * 获取dome管理详细信息
+ *
+ * @param id 主键
+ */
+ @SaCheckPermission("system:sysDemo:query")
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Integer id) {
+ return R.ok(sysDemoService.queryById(id));
+ }
+
+ /**
+ * 新增dome管理
+ */
+ @SaCheckPermission("system:sysDemo:add")
+ @Log(title = "dome管理", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SysDemoBo bo) {
+ return toAjax(sysDemoService.insertByBo(bo));
+ }
+
+ /**
+ * 修改dome管理
+ */
+ @SaCheckPermission("system:sysDemo:edit")
+ @Log(title = "dome管理", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SysDemoBo bo) {
+ return toAjax(sysDemoService.updateByBo(bo));
+ }
+
+ /**
+ * 删除dome管理
+ *
+ * @param ids 主键串
+ */
+ @SaCheckPermission("system:sysDemo:remove")
+ @Log(title = "dome管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Integer[] ids) {
+ return toAjax(sysDemoService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/SysDemo.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/SysDemo.java
new file mode 100644
index 00000000..81187bf2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/SysDemo.java
@@ -0,0 +1,75 @@
+package org.ruoyi.system.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+ import java.util.Date;
+ import java.io.Serializable;
+
+import org.ruoyi.core.domain.BaseEntity;
+
+/**
+ * dome管理对象 sys_demo
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_demo")
+public class SysDemo extends BaseEntity {
+
+
+ /**
+ * ID
+ */
+ @TableId(value = "id")
+ private Integer id;
+
+ /**
+ * 系统代码
+ */
+ private String sysCode;
+
+ /**
+ * 系统名称
+ */
+ private String sysName;
+
+ /**
+ * 系统状态
+ */
+ private Integer sysStatus;
+
+ /**
+ * 创建部门
+ */
+ private Integer createDept;
+
+ /**
+ * 创建者
+ */
+ private Integer createBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 更新者
+ */
+ private Integer updateBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/bo/SysDemoBo.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/bo/SysDemoBo.java
new file mode 100644
index 00000000..caca34c1
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/bo/SysDemoBo.java
@@ -0,0 +1,84 @@
+package org.ruoyi.system.domain.bo;
+
+import org.ruoyi.system.domain.SysDemo;
+import org.ruoyi.core.domain.BaseEntity;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import java.io.Serializable;
+import org.ruoyi.common.core.validate.AddGroup;
+import org.ruoyi.common.core.validate.EditGroup;
+import java.io.Serializable;
+import java.io.Serializable;
+import org.ruoyi.common.core.validate.AddGroup;
+import org.ruoyi.common.core.validate.EditGroup;
+
+/**
+ * dome管理业务对象 sys_demo
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+@Data
+
+@AutoMapper(target = SysDemo.class, reverseConvertGenerate = false)
+public class SysDemoBo implements Serializable {
+
+ /**
+ * ID
+ */
+ @NotNull(message = "ID不能为空", groups = { EditGroup.class })
+ private Integer id;
+
+ /**
+ * 系统代码
+ */
+ @NotBlank(message = "系统代码不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String sysCode;
+
+ /**
+ * 系统名称
+ */
+ @NotBlank(message = "系统名称不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String sysName;
+
+ /**
+ * 系统状态
+ */
+ @NotNull(message = "系统状态不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Integer sysStatus;
+
+ /**
+ * 创建部门
+ */
+ private Integer createDept;
+
+ /**
+ * 创建者
+ */
+ private Integer createBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 更新者
+ */
+ private Integer updateBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/vo/SysDemoVo.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/vo/SysDemoVo.java
new file mode 100644
index 00000000..0fd9f1a5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/domain/vo/SysDemoVo.java
@@ -0,0 +1,86 @@
+package org.ruoyi.system.domain.vo;
+
+ import java.util.Date;
+ import java.io.Serializable;
+import org.ruoyi.system.domain.SysDemo;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * dome管理视图对象 sys_demo
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SysDemo.class)
+public class SysDemoVo implements Serializable {
+
+ /**
+ * ID
+ */
+ @ExcelProperty(value = "ID")
+ private Integer id;
+
+ /**
+ * 系统代码
+ */
+ @ExcelProperty(value = "系统代码")
+ private String sysCode;
+
+ /**
+ * 系统名称
+ */
+ @ExcelProperty(value = "系统名称")
+ private String sysName;
+
+ /**
+ * 系统状态
+ */
+ @ExcelProperty(value = "系统状态")
+ private Integer sysStatus;
+
+ /**
+ * 创建部门
+ */
+ @ExcelProperty(value = "创建部门")
+ private Integer createDept;
+
+ /**
+ * 创建者
+ */
+ @ExcelProperty(value = "创建者")
+ private Integer createBy;
+
+ /**
+ * 创建时间
+ */
+ @ExcelProperty(value = "创建时间")
+ private Date createTime;
+
+ /**
+ * 更新者
+ */
+ @ExcelProperty(value = "更新者")
+ private Integer updateBy;
+
+ /**
+ * 更新时间
+ */
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+
+ /**
+ * 备注
+ */
+ @ExcelProperty(value = "备注")
+ private String remark;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/mapper/SysDemoMapper.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/mapper/SysDemoMapper.java
new file mode 100644
index 00000000..94351479
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/mapper/SysDemoMapper.java
@@ -0,0 +1,17 @@
+package org.ruoyi.system.mapper;
+
+import org.ruoyi.system.domain.SysDemo;
+import org.ruoyi.system.domain.vo.SysDemoVo;
+import org.ruoyi.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * dome管理Mapper接口
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+@Mapper
+public interface SysDemoMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/service/SysDemoService.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/service/SysDemoService.java
new file mode 100644
index 00000000..ae7f4901
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/service/SysDemoService.java
@@ -0,0 +1,48 @@
+package org.ruoyi.system.service;
+
+import org.ruoyi.system.domain.vo.SysDemoVo;
+import org.ruoyi.system.domain.bo.SysDemoBo;
+ import org.ruoyi.core.page.TableDataInfo;
+ import org.ruoyi.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * dome管理Service接口
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+public interface SysDemoService {
+
+ /**
+ * 查询dome管理
+ */
+ SysDemoVo queryById(Integer id);
+
+ /**
+ * 查询dome管理列表
+ */
+ TableDataInfo queryPageList(SysDemoBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询dome管理列表
+ */
+ List queryList(SysDemoBo bo);
+
+ /**
+ * 新增dome管理
+ */
+ Boolean insertByBo(SysDemoBo bo);
+
+ /**
+ * 修改dome管理
+ */
+ Boolean updateByBo(SysDemoBo bo);
+
+ /**
+ * 校验并批量删除dome管理信息
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/service/impl/SysDemoServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/service/impl/SysDemoServiceImpl.java
new file mode 100644
index 00000000..a0bd9054
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/service/impl/SysDemoServiceImpl.java
@@ -0,0 +1,116 @@
+package org.ruoyi.system.service.impl;
+
+import org.ruoyi.common.core.utils.MapstructUtils;
+ import org.ruoyi.core.page.TableDataInfo;
+ import org.ruoyi.core.page.PageQuery;
+ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.ruoyi.system.domain.bo.SysDemoBo;
+import org.ruoyi.system.domain.vo.SysDemoVo;
+import org.ruoyi.system.domain.SysDemo;
+import org.ruoyi.system.mapper.SysDemoMapper;
+import org.ruoyi.system.service.SysDemoService;
+import org.ruoyi.common.core.utils.StringUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * dome管理Service业务层处理
+ *
+ * @author ageerle
+ * @date Sat Aug 09 21:38:09 CST 2025
+ */
+@RequiredArgsConstructor
+@Service
+public class SysDemoServiceImpl implements SysDemoService {
+
+ private final SysDemoMapper baseMapper;
+
+ /**
+ * 查询dome管理
+ */
+ @Override
+ public SysDemoVo queryById(Integer id) {
+ return baseMapper.selectVoById(id);
+ }
+
+ /**
+ * 查询dome管理列表
+ */
+ @Override
+ public TableDataInfo queryPageList(SysDemoBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询dome管理列表
+ */
+ @Override
+ public List queryList(SysDemoBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SysDemoBo bo) {
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(StringUtils.isNotBlank(bo.getSysCode()), SysDemo::getSysCode, bo.getSysCode());
+ lqw.eq(StringUtils.isNotBlank(bo.getSysName()), SysDemo::getSysName, bo.getSysName());
+ lqw.eq(bo.getSysStatus() != null, SysDemo::getSysStatus, bo.getSysStatus());
+ lqw.eq(bo.getCreateDept() != null, SysDemo::getCreateDept, bo.getCreateDept());
+ lqw.eq(bo.getCreateBy() != null, SysDemo::getCreateBy, bo.getCreateBy());
+ lqw.eq(bo.getCreateTime() != null, SysDemo::getCreateTime, bo.getCreateTime());
+ lqw.eq(bo.getUpdateBy() != null, SysDemo::getUpdateBy, bo.getUpdateBy());
+ lqw.eq(bo.getUpdateTime() != null, SysDemo::getUpdateTime, bo.getUpdateTime());
+ lqw.eq(StringUtils.isNotBlank(bo.getRemark()), SysDemo::getRemark, bo.getRemark());
+ return lqw;
+ }
+
+ /**
+ * 新增dome管理
+ */
+ @Override
+ public Boolean insertByBo(SysDemoBo bo) {
+ SysDemo add = MapstructUtils.convert(bo, SysDemo. class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改dome管理
+ */
+ @Override
+ public Boolean updateByBo(SysDemoBo bo) {
+ SysDemo update = MapstructUtils.convert(bo, SysDemo. class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(SysDemo entity) {
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 批量删除dome管理
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if (isValid) {
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/sql/sys_demo_menu.sql b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/sql/sys_demo_menu.sql
new file mode 100644
index 00000000..5b19392a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/system/sql/sys_demo_menu.sql
@@ -0,0 +1,19 @@
+-- 菜单 SQL
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
+values(1954175368920645632, 'dome管理', '2000', '1', 'sysDemo', 'system/sysDemo/index', 1, 0, 'C', '0', '0', 'system:sysDemo:list', '#', 103, 1, sysdate(), null, null, 'dome管理菜单');
+
+-- 按钮 SQL
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
+values(1954175368920645633, 'dome管理查询', 1954175368920645632, '1', '#', '', 1, 0, 'F', '0', '0', 'system:sysDemo:query', '#', 103, 1, sysdate(), null, null, '');
+
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
+values(1954175368920645634, 'dome管理新增', 1954175368920645632, '2', '#', '', 1, 0, 'F', '0', '0', 'system:sysDemo:add', '#', 103, 1, sysdate(), null, null, '');
+
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
+values(1954175368920645635, 'dome管理修改', 1954175368920645632, '3', '#', '', 1, 0, 'F', '0', '0', 'system:sysDemo:edit', '#', 103, 1, sysdate(), null, null, '');
+
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
+values(1954175368920645636, 'dome管理删除', 1954175368920645632, '4', '#', '', 1, 0, 'F', '0', '0', 'system:sysDemo:remove', '#', 103, 1, sysdate(), null, null, '');
+
+insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
+values(1954175368920645637, 'dome管理导出', 1954175368920645632, '5', '#', '', 1, 0, 'F', '0', '0', 'system:sysDemo:export', '#', 103, 1, sysdate(), null, null, '');
diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/system/SysDemoMapper.xml b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/system/SysDemoMapper.xml
new file mode 100644
index 00000000..c35ba06c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/system/SysDemoMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+