From f2892a672a495a78562836561f51a2a274cd16aa Mon Sep 17 00:00:00 2001
From: WangBQ <wangbinglilac@sina.com>
Date: 星期一, 29 五月 2023 10:26:10 +0800
Subject: [PATCH] !349 代码生成 从对应数据源加载表结构信息 存储到主数据源 实现存储统一 * 数据库脚本修改,gen_table增加data_name字段,存储对应数据源名称 * 代码生成 从对应数据源加载表结构信息 存储到主数据源 实现存储统一(表结构需要增加对应的数据来源字段) https://gitee.com/…

---
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java          |    3 
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java    |   78 +++++++++++--------
 ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml                  |   37 +++++++-
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java       |   48 +++++++----
 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java |   10 ++
 script/sql/postgres/postgres_ry_vue_5.X.sql                                                           |    2 
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java       |   22 +++--
 script/sql/ry_vue_5.X.sql                                                                             |    1 
 script/sql/oracle/oracle_ry_vue_5.X.sql                                                               |    2 
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java    |    5 +
 ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java                |    6 +
 script/sql/sqlserver/sqlserver_ry_vue_5.X.sql                                                         |    7 +
 12 files changed, 152 insertions(+), 69 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java
index 4da9659..bb20f4b 100644
--- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java
@@ -12,6 +12,9 @@
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 鏁版嵁搴撳姪鎵�
@@ -69,4 +72,11 @@
         // find_in_set(100 , '0,100,101')
         return "find_in_set('%s' , %s) <> 0".formatted(var, var2);
     }
+
+    /**
+     * 鑾峰彇褰撳墠鍔犺浇鐨勬暟鎹簱鍚�
+     */
+    public static List<String> getDataSourceNameList() {
+        return new ArrayList<>(DS.getDataSources().keySet());
+    }
 }
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java
index 32133c1..25c510b 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.io.IoUtil;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.helper.DataBaseHelper;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -94,11 +95,11 @@
     @SaCheckPermission("tool:gen:import")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.IMPORT)
     @PostMapping("/importTable")
-    public R<Void> importTableSave(String tables) {
+    public R<Void> importTableSave(String tables, String dataName) {
         String[] tableNames = Convert.toStrArray(tables);
         // 鏌ヨ琛ㄤ俊鎭�
-        List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames);
-        genTableService.importGenTable(tableList);
+        List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames, dataName);
+        genTableService.importGenTable(tableList, dataName);
         return R.ok();
     }
 
@@ -142,53 +143,53 @@
     /**
      * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
      *
-     * @param tableName 琛ㄥ悕
+     * @param tableId 琛↖D
      */
     @SaCheckPermission("tool:gen:code")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
-    @GetMapping("/download/{tableName}")
-    public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException {
-        byte[] data = genTableService.downloadCode(tableName);
+    @GetMapping("/download/{tableId}")
+    public void download(HttpServletResponse response, @PathVariable("tableId") Long tableId) throws IOException {
+        byte[] data = genTableService.downloadCode(tableId);
         genCode(response, data);
     }
 
     /**
      * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�
      *
-     * @param tableName 琛ㄥ悕
+     * @param tableId 琛↖D
      */
     @SaCheckPermission("tool:gen:code")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
-    @GetMapping("/genCode/{tableName}")
-    public R<Void> genCode(@PathVariable("tableName") String tableName) {
-        genTableService.generatorCode(tableName);
+    @GetMapping("/genCode/{tableId}")
+    public R<Void> genCode(@PathVariable("tableId") Long tableId) {
+        genTableService.generatorCode(tableId);
         return R.ok();
     }
 
     /**
      * 鍚屾鏁版嵁搴�
      *
-     * @param tableName 琛ㄥ悕
+     * @param tableId 琛↖D
      */
     @SaCheckPermission("tool:gen:edit")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE)
-    @GetMapping("/synchDb/{tableName}")
-    public R<Void> synchDb(@PathVariable("tableName") String tableName) {
-        genTableService.synchDb(tableName);
+    @GetMapping("/synchDb/{tableId}")
+    public R<Void> synchDb(@PathVariable("tableId") Long tableId) {
+        genTableService.synchDb(tableId);
         return R.ok();
     }
 
     /**
      * 鎵归噺鐢熸垚浠g爜
      *
-     * @param tables 琛ㄥ悕涓�
+     * @param tableIdStr 琛↖D涓�
      */
     @SaCheckPermission("tool:gen:code")
     @Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
     @GetMapping("/batchGenCode")
-    public void batchGenCode(HttpServletResponse response, String tables) throws IOException {
-        String[] tableNames = Convert.toStrArray(tables);
-        byte[] data = genTableService.downloadCode(tableNames);
+    public void batchGenCode(HttpServletResponse response, String tableIdStr) throws IOException {
+        String[] tableIds = Convert.toStrArray(tableIdStr);
+        byte[] data = genTableService.downloadCode(tableIds);
         genCode(response, data);
     }
 
@@ -204,4 +205,13 @@
         response.setContentType("application/octet-stream; charset=UTF-8");
         IoUtil.write(response.getOutputStream(), false, data);
     }
+
+    /**
+     * 鏌ヨ鏁版嵁婧愬悕绉板垪琛�
+     */
+    @SaCheckPermission("tool:gen:list")
+    @GetMapping(value = "/getDataNames")
+    public R<Object> getCurrentDataSourceNameList(){
+        return R.ok(DataBaseHelper.getDataSourceNameList());
+    }
 }
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java
index 944fd2e..f792ceb 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java
@@ -32,6 +32,12 @@
     private Long tableId;
 
     /**
+     * 鏁版嵁婧愬悕绉�
+     */
+    @NotBlank(message = "鏁版嵁婧愬悕绉颁笉鑳戒负绌�")
+    private String dataName;
+
+    /**
      * 琛ㄥ悕绉�
      */
     @NotBlank(message = "琛ㄥ悕绉颁笉鑳戒负绌�")
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java
index 3b5cb60..87f4f1e 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java
@@ -1,5 +1,6 @@
 package org.dromara.generator.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.generator.domain.GenTableColumn;
@@ -17,8 +18,10 @@
      * 鏍规嵁琛ㄥ悕绉版煡璇㈠垪淇℃伅
      *
      * @param tableName 琛ㄥ悕绉�
+     * @param dataName
      * @return 鍒椾俊鎭�
      */
-    List<GenTableColumn> selectDbTableColumnsByName(String tableName);
+    @DS("#dataName")
+    List<GenTableColumn> selectDbTableColumnsByName(String tableName, String dataName);
 
 }
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java
index 30e33e8..c2ff7b6 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java
@@ -1,5 +1,6 @@
 package org.dromara.generator.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -55,4 +56,6 @@
      */
     GenTable selectGenTableByName(String tableName);
 
+    @DS("")
+    List<String> selectTableNameList(String dataName);
 }
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java
index c505ec4..77ef303 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java
@@ -5,13 +5,18 @@
 import cn.hutool.core.lang.Dict;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
 import org.dromara.common.core.constant.Constants;
-import org.dromara.generator.constant.GenConstants;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.StreamUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -20,6 +25,7 @@
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.generator.constant.GenConstants;
 import org.dromara.generator.domain.GenTable;
 import org.dromara.generator.domain.GenTableColumn;
 import org.dromara.generator.mapper.GenTableColumnMapper;
@@ -27,11 +33,6 @@
 import org.dromara.generator.util.GenUtils;
 import org.dromara.generator.util.VelocityInitializer;
 import org.dromara.generator.util.VelocityUtils;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -40,7 +41,11 @@
 import java.io.IOException;
 import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
@@ -49,7 +54,7 @@
  *
  * @author Lion Li
  */
-@DS("#header.datasource")
+// @DS("#header.datasource")
 @Slf4j
 @RequiredArgsConstructor
 @Service
@@ -94,16 +99,19 @@
     private QueryWrapper<GenTable> buildGenTableQueryWrapper(GenTable genTable) {
         Map<String, Object> params = genTable.getParams();
         QueryWrapper<GenTable> wrapper = Wrappers.query();
-        wrapper.like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName()))
+        wrapper
+            .eq(StringUtils.isNotEmpty(genTable.getDataName()),"data_name", genTable.getDataName())
+            .like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName()))
             .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(table_comment)", StringUtils.lowerCase(genTable.getTableComment()))
             .between(params.get("beginTime") != null && params.get("endTime") != null,
                 "create_time", params.get("beginTime"), params.get("endTime"));
         return wrapper;
     }
 
-
+    @DS("#genTable.dataName")
     @Override
     public TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery) {
+        genTable.getParams().put("genTableNames",baseMapper.selectTableNameList(genTable.getDataName()));
         Page<GenTable> page = baseMapper.selectPageDbTableList(pageQuery.build(), genTable);
         return TableDataInfo.build(page);
     }
@@ -112,10 +120,12 @@
      * 鏌ヨ鎹簱鍒楄〃
      *
      * @param tableNames 琛ㄥ悕绉扮粍
+     * @param dataName
      * @return 鏁版嵁搴撹〃闆嗗悎
      */
+    @DS("#dataName")
     @Override
-    public List<GenTable> selectDbTableListByNames(String[] tableNames) {
+    public List<GenTable> selectDbTableListByNames(String[] tableNames, String dataName) {
         return baseMapper.selectDbTableListByNames(tableNames);
     }
 
@@ -166,19 +176,21 @@
      * 瀵煎叆琛ㄧ粨鏋�
      *
      * @param tableList 瀵煎叆琛ㄥ垪琛�
+     * @param dataName
      */
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional
     @Override
-    public void importGenTable(List<GenTable> tableList) {
+    public void importGenTable(List<GenTable> tableList, String dataName) {
         String operName = LoginHelper.getUsername();
         try {
             for (GenTable table : tableList) {
                 String tableName = table.getTableName();
                 GenUtils.initTable(table, operName);
+                table.setDataName(dataName);
                 int row = baseMapper.insert(table);
                 if (row > 0) {
                     // 淇濆瓨鍒椾俊鎭�
-                    List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
+                    List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName, dataName);
                     List<GenTableColumn> saveColumns = new ArrayList<>();
                     for (GenTableColumn column : genTableColumns) {
                         GenUtils.initColumnField(column, table);
@@ -231,14 +243,14 @@
     /**
      * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
      *
-     * @param tableName 琛ㄥ悕绉�
+     * @param tableId 琛ㄥ悕绉�
      * @return 鏁版嵁
      */
     @Override
-    public byte[] downloadCode(String tableName) {
+    public byte[] downloadCode(Long tableId) {
         ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
         ZipOutputStream zip = new ZipOutputStream(outputStream);
-        generatorCode(tableName, zip);
+        generatorCode(tableId, zip);
         IoUtil.close(zip);
         return outputStream.toByteArray();
     }
@@ -246,12 +258,12 @@
     /**
      * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�
      *
-     * @param tableName 琛ㄥ悕绉�
+     * @param tableId 琛ㄥ悕绉�
      */
     @Override
-    public void generatorCode(String tableName) {
+    public void generatorCode(Long tableId) {
         // 鏌ヨ琛ㄤ俊鎭�
-        GenTable table = baseMapper.selectGenTableByName(tableName);
+        GenTable table = baseMapper.selectGenTableById(tableId);
         // 璁剧疆涓婚敭鍒椾俊鎭�
         setPkColumn(table);
 
@@ -280,16 +292,16 @@
     /**
      * 鍚屾鏁版嵁搴�
      *
-     * @param tableName 琛ㄥ悕绉�
+     * @param tableId 琛ㄥ悕绉�
      */
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional
     @Override
-    public void synchDb(String tableName) {
-        GenTable table = baseMapper.selectGenTableByName(tableName);
+    public void synchDb(Long tableId) {
+        GenTable table = baseMapper.selectGenTableById(tableId);
         List<GenTableColumn> tableColumns = table.getColumns();
         Map<String, GenTableColumn> tableColumnMap = StreamUtils.toIdentityMap(tableColumns, GenTableColumn::getColumnName);
 
-        List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
+        List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(table.getTableName(), table.getDataName());
         if (CollUtil.isEmpty(dbTableColumns)) {
             throw new ServiceException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪");
         }
@@ -322,22 +334,24 @@
         List<GenTableColumn> delColumns = StreamUtils.filter(tableColumns, column -> !dbTableColumnNames.contains(column.getColumnName()));
         if (CollUtil.isNotEmpty(delColumns)) {
             List<Long> ids = StreamUtils.toList(delColumns, GenTableColumn::getColumnId);
-            genTableColumnMapper.deleteBatchIds(ids);
+            if (CollUtil.isNotEmpty(ids)) {
+                genTableColumnMapper.deleteBatchIds(ids);
+            }
         }
     }
 
     /**
      * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
      *
-     * @param tableNames 琛ㄦ暟缁�
+     * @param tableIds 琛↖D鏁扮粍
      * @return 鏁版嵁
      */
     @Override
-    public byte[] downloadCode(String[] tableNames) {
+    public byte[] downloadCode(String[] tableIds) {
         ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
         ZipOutputStream zip = new ZipOutputStream(outputStream);
-        for (String tableName : tableNames) {
-            generatorCode(tableName, zip);
+        for (String tableId : tableIds) {
+            generatorCode(Long.parseLong(tableId), zip);
         }
         IoUtil.close(zip);
         return outputStream.toByteArray();
@@ -346,9 +360,9 @@
     /**
      * 鏌ヨ琛ㄤ俊鎭苟鐢熸垚浠g爜
      */
-    private void generatorCode(String tableName, ZipOutputStream zip) {
+    private void generatorCode(Long tableId, ZipOutputStream zip) {
         // 鏌ヨ琛ㄤ俊鎭�
-        GenTable table = baseMapper.selectGenTableByName(tableName);
+        GenTable table = baseMapper.selectGenTableById(tableId);
         List<Long> menuIds = new ArrayList<>();
         for (int i = 0; i < 6; i++) {
             menuIds.add(identifierGenerator.nextId(null).longValue());
diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java
index 643742b..51d3e23 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java
+++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java
@@ -43,9 +43,10 @@
      * 鏌ヨ鎹簱鍒楄〃
      *
      * @param tableNames 琛ㄥ悕绉扮粍
+     * @param dataName
      * @return 鏁版嵁搴撹〃闆嗗悎
      */
-    List<GenTable> selectDbTableListByNames(String[] tableNames);
+    List<GenTable> selectDbTableListByNames(String[] tableNames, String dataName);
 
     /**
      * 鏌ヨ鎵�鏈夎〃淇℃伅
@@ -82,8 +83,9 @@
      * 瀵煎叆琛ㄧ粨鏋�
      *
      * @param tableList 瀵煎叆琛ㄥ垪琛�
+     * @param dataName
      */
-    void importGenTable(List<GenTable> tableList);
+    void importGenTable(List<GenTable> tableList, String dataName);
 
     /**
      * 棰勮浠g爜
@@ -96,33 +98,33 @@
     /**
      * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
      *
-     * @param tableName 琛ㄥ悕绉�
+     * @param tableId 琛ㄥ悕绉�
      * @return 鏁版嵁
      */
-    byte[] downloadCode(String tableName);
+    byte[] downloadCode(Long tableId);
 
     /**
      * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�
      *
-     * @param tableName 琛ㄥ悕绉�
+     * @param tableId 琛ㄥ悕绉�
      * @return 鏁版嵁
      */
-    void generatorCode(String tableName);
+    void generatorCode(Long tableId);
 
     /**
      * 鍚屾鏁版嵁搴�
      *
-     * @param tableName 琛ㄥ悕绉�
+     * @param tableId 琛ㄥ悕绉�
      */
-    void synchDb(String tableName);
+    void synchDb(Long tableId);
 
     /**
      * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
      *
-     * @param tableNames 琛ㄦ暟缁�
+     * @param tableIds 琛↖D鏁扮粍
      * @return 鏁版嵁
      */
-    byte[] downloadCode(String[] tableNames);
+    byte[] downloadCode(String[] tableIds);
 
     /**
      * 淇敼淇濆瓨鍙傛暟鏍¢獙
diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
index 1ae784f..5641f85 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
@@ -20,7 +20,12 @@
             from information_schema.tables
             where table_schema = (select database())
             AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%'
-            AND table_name NOT IN (select table_name from gen_table)
+            <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0">
+                AND table_name NOT IN
+                <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
             <if test="genTable.tableName != null and genTable.tableName != ''">
                 AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%'))
             </if>
@@ -36,7 +41,12 @@
             and dt.table_name = uo.object_name
             and uo.object_type = 'TABLE'
             AND dt.table_name NOT LIKE 'XXL_JOB_%' AND dt.table_name NOT LIKE 'GEN_%'
-            AND lower(dt.table_name) NOT IN (select table_name from gen_table)
+            <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0">
+                AND lower(dt.table_name) NOT IN
+                <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
             <if test="genTable.tableName != null and genTable.tableName != ''">
                 AND lower(dt.table_name) like lower(concat(concat('%', #{genTable.tableName}), '%'))
             </if>
@@ -60,7 +70,12 @@
                     AND n.nspname <![CDATA[ <> ]]> ''::name
             ) list_table
             where table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%'
-            AND table_name NOT IN (select table_name from gen_table)
+            <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0">
+                AND table_name NOT IN
+                <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
             <if test="genTable.tableName != null and genTable.tableName != ''">
                 AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%'))
             </if>
@@ -78,7 +93,12 @@
                 INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID
                     AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES'
                     AND D.NAME NOT LIKE 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%'
-                    AND D.NAME NOT IN (select table_name from gen_table)
+            <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0">
+                AND D.NAME NOT IN
+                <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
             <if test="genTable.tableName != null and genTable.tableName != ''">
                 AND lower(D.NAME) like lower(concat(N'%', N'${genTable.tableName}', N'%'))
             </if>
@@ -194,7 +214,7 @@
     </select>
 
     <select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult">
-        SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
+        SELECT t.table_id, t.data_name, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
                c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort
         FROM gen_table t
              LEFT JOIN gen_table_column c ON t.table_id = c.table_id
@@ -202,7 +222,7 @@
     </select>
 
     <select id="selectGenTableByName" parameterType="String" resultMap="GenTableResult">
-        SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
+        SELECT t.table_id, t.data_name, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
                c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort
         FROM gen_table t
              LEFT JOIN gen_table_column c ON t.table_id = c.table_id
@@ -210,11 +230,14 @@
     </select>
 
     <select id="selectGenTableAll" parameterType="String" resultMap="GenTableResult">
-        SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark,
+        SELECT t.table_id, t.data_name, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark,
                c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort
         FROM gen_table t
              LEFT JOIN gen_table_column c ON t.table_id = c.table_id
         order by c.sort
     </select>
 
+    <select id="selectTableNameList" resultType="java.lang.String">
+        select table_name from gen_table where data_name = #{dataName,jdbcType=VARCHAR}
+    </select>
 </mapper>
diff --git a/script/sql/oracle/oracle_ry_vue_5.X.sql b/script/sql/oracle/oracle_ry_vue_5.X.sql
index 0456f11..3e93ae9 100644
--- a/script/sql/oracle/oracle_ry_vue_5.X.sql
+++ b/script/sql/oracle/oracle_ry_vue_5.X.sql
@@ -910,6 +910,7 @@
 -- ----------------------------
 create table gen_table (
   table_id          number(20)       not null,
+  data_name         varchar2(200)    default '',
   table_name        varchar2(200)    default '',
   table_comment     varchar2(500)    default '',
   sub_table_name    varchar(64)      default null,
@@ -936,6 +937,7 @@
 
 comment on table  gen_table                   is '浠g爜鐢熸垚涓氬姟琛�';
 comment on column gen_table.table_id          is '缂栧彿';
+comment on column gen_table.data_name         is '鏁版嵁婧愬悕绉�';
 comment on column gen_table.table_name        is '琛ㄥ悕绉�';
 comment on column gen_table.table_comment     is '琛ㄦ弿杩�';
 comment on column gen_table.sub_table_name    is '鍏宠仈瀛愯〃鐨勮〃鍚�';
diff --git a/script/sql/postgres/postgres_ry_vue_5.X.sql b/script/sql/postgres/postgres_ry_vue_5.X.sql
index bdf28b4..b510042 100644
--- a/script/sql/postgres/postgres_ry_vue_5.X.sql
+++ b/script/sql/postgres/postgres_ry_vue_5.X.sql
@@ -935,6 +935,7 @@
 create table if not exists gen_table
 (
     table_id          int8,
+    data_name         varchar(200)  default ''::varchar,
     table_name        varchar(200)  default ''::varchar,
     table_comment     varchar(500)  default ''::varchar,
     sub_table_name    varchar(64)   default ''::varchar,
@@ -960,6 +961,7 @@
 
 comment on table gen_table is '浠g爜鐢熸垚涓氬姟琛�';
 comment on column gen_table.table_id is '缂栧彿';
+comment on column gen_table.data_name is '鏁版嵁婧愬悕绉�';
 comment on column gen_table.table_name is '琛ㄥ悕绉�';
 comment on column gen_table.table_comment is '琛ㄦ弿杩�';
 comment on column gen_table.sub_table_name is '鍏宠仈瀛愯〃鐨勮〃鍚�';
diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql
index 2b3ea0c..713d962 100644
--- a/script/sql/ry_vue_5.X.sql
+++ b/script/sql/ry_vue_5.X.sql
@@ -686,6 +686,7 @@
 drop table if exists gen_table;
 create table gen_table (
   table_id          bigint(20)      not null                   comment '缂栧彿',
+  data_name         varchar(200)    default ''                 comment '鏁版嵁婧愬悕绉�',
   table_name        varchar(200)    default ''                 comment '琛ㄥ悕绉�',
   table_comment     varchar(500)    default ''                 comment '琛ㄦ弿杩�',
   sub_table_name    varchar(64)     default null               comment '鍏宠仈瀛愯〃鐨勮〃鍚�',
diff --git a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
index f72dfff..4bff0ed 100644
--- a/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
+++ b/script/sql/sqlserver/sqlserver_ry_vue_5.X.sql
@@ -254,6 +254,7 @@
 CREATE TABLE gen_table
 (
     table_id          bigint                         NOT NULL,
+    data_name         nvarchar(200) DEFAULT ''       NULL,
     table_name        nvarchar(200) DEFAULT ''       NULL,
     table_comment     nvarchar(500) DEFAULT ''       NULL,
     sub_table_name    nvarchar(64)                   NULL,
@@ -288,6 +289,12 @@
     'COLUMN', N'table_id'
 GO
 EXEC sys.sp_addextendedproperty
+    'MS_Description', N'鏁版嵁婧愬悕绉�' ,
+    'SCHEMA', N'dbo',
+    'TABLE', N'gen_table',
+    'COLUMN', N'data_name'
+GO
+EXEC sys.sp_addextendedproperty
     'MS_Description', N'琛ㄥ悕绉�' ,
     'SCHEMA', N'dbo',
     'TABLE', N'gen_table',

--
Gitblit v1.9.3