From b94e7e75f398e240558b299b57701514e9a72b9e Mon Sep 17 00:00:00 2001 From: hekaiyu <13673834656@163.com> Date: Wed, 15 Oct 2025 10:56:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StasDataSourceController.java | 17 +++++++++++++++++ .../service/IStasDataSourceService.java | 8 +++++++- .../service/impl/StasDataSourceServiceImpl.java | 6 ++++++ .../controller/StasSyncStrategyController.java | 16 ++++++++++++---- .../impl/StasSyncStrategyServiceImpl.java | 14 +++++++++----- 5 files changed, 51 insertions(+), 10 deletions(-) diff --git a/jeecg-module-sync/src/main/java/org/jeecg/dataSource/controller/StasDataSourceController.java b/jeecg-module-sync/src/main/java/org/jeecg/dataSource/controller/StasDataSourceController.java index 4ff2f0b..843622d 100644 --- a/jeecg-module-sync/src/main/java/org/jeecg/dataSource/controller/StasDataSourceController.java +++ b/jeecg-module-sync/src/main/java/org/jeecg/dataSource/controller/StasDataSourceController.java @@ -102,6 +102,23 @@ public class StasDataSourceController extends JeecgController fieldList(String sourceId, String username, String tableName) { + List columnNameList= stasDataSourceService.queryColumnList(sourceId, username, tableName); + if (columnNameList != null && !"".equals(columnNameList)){ + return Result.OK(columnNameList); + } + return Result.error("获取源端表字段为空"); + } + /** * 数据库连接测试 * @param sourceId diff --git a/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/IStasDataSourceService.java b/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/IStasDataSourceService.java index 130de65..290a8ae 100644 --- a/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/IStasDataSourceService.java +++ b/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/IStasDataSourceService.java @@ -57,7 +57,13 @@ import java.util.List; * @param username * @return */ - List queryTableList(String sourceId, String username); + List queryTableList(String sourceId, String username); /** + * 查询数据源所有表名称 + * @param sourceId + * @param username + * @return + */ + List queryColumnList(String sourceId, String username, String tableName); /** * 查询指定数据源中表的列名列表 diff --git a/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/impl/StasDataSourceServiceImpl.java b/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/impl/StasDataSourceServiceImpl.java index 8143869..3409f81 100644 --- a/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/impl/StasDataSourceServiceImpl.java +++ b/jeecg-module-sync/src/main/java/org/jeecg/dataSource/service/impl/StasDataSourceServiceImpl.java @@ -93,6 +93,12 @@ public class StasDataSourceServiceImpl extends ServiceImpl queryColumnList(String sourceId, String username, String tableName) { + String sql = "SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = ? AND TABLE_NAME = ?"; + return queryDatabaseMetadata(sourceId, sql, "COLUMN_NAME", username, tableName); + } + /** * 通用数据库元数据查询方法 * @param sourceId 数据源ID diff --git a/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/controller/StasSyncStrategyController.java b/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/controller/StasSyncStrategyController.java index 9979f74..6c95dbc 100644 --- a/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/controller/StasSyncStrategyController.java +++ b/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/controller/StasSyncStrategyController.java @@ -1,7 +1,9 @@ package org.jeecg.stasSyncStrategy.controller; import java.util.Arrays; +import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.jeecg.common.api.vo.Result; @@ -62,15 +64,21 @@ public class StasSyncStrategyController extends JeecgController createTargetTables(@RequestBody StasSyncStrategy stasSyncStrategy) { - if(stasSyncStrategyService.validateTables(stasSyncStrategy)){ - stasSyncStrategyService.createTargetTables(stasSyncStrategy); + public Result createTargetTables(@RequestBody List stasSyncStrategys) { + if(null != stasSyncStrategys && stasSyncStrategys.size() > 0) { + String taskId = stasSyncStrategys.get(0).getTaskId(); + stasSyncStrategyService.remove(new LambdaQueryWrapper().eq(StasSyncStrategy::getTaskId, taskId)); + for (StasSyncStrategy stasSyncStrategy : stasSyncStrategys) { + if(stasSyncStrategyService.validateTables(stasSyncStrategy)){ + stasSyncStrategyService.createTargetTables(stasSyncStrategy); + } + } } return Result.OK("添加成功!"); } diff --git a/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/service/impl/StasSyncStrategyServiceImpl.java b/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/service/impl/StasSyncStrategyServiceImpl.java index ae1f42d..2036941 100644 --- a/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/service/impl/StasSyncStrategyServiceImpl.java +++ b/jeecg-module-sync/src/main/java/org/jeecg/stasSyncStrategy/service/impl/StasSyncStrategyServiceImpl.java @@ -105,8 +105,9 @@ public class StasSyncStrategyServiceImpl extends ServiceImpl