fix:1.优化数据同步数据表配置功能
This commit is contained in:
parent
e963667e0b
commit
b780ad3127
|
|
@ -21,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 同步策略表
|
* @Description: 同步策略表
|
||||||
|
|
@ -45,8 +46,6 @@ public class StasSyncStrategyServiceImpl extends ServiceImpl<StasSyncStrategyMap
|
||||||
@Override
|
@Override
|
||||||
public void createTargetTables(List<StasSyncStrategy> stasSyncStrategys) {
|
public void createTargetTables(List<StasSyncStrategy> stasSyncStrategys) {
|
||||||
if(null != stasSyncStrategys && stasSyncStrategys.size() > 0) {
|
if(null != stasSyncStrategys && stasSyncStrategys.size() > 0) {
|
||||||
String taskId = stasSyncStrategys.get(0).getTaskId();
|
|
||||||
stasSyncStrategyService.delete(new LambdaQueryWrapper<StasSyncStrategy>().eq(StasSyncStrategy::getTaskId, taskId));
|
|
||||||
for (StasSyncStrategy stasSyncStrategy : stasSyncStrategys) {
|
for (StasSyncStrategy stasSyncStrategy : stasSyncStrategys) {
|
||||||
StasTaskConfig stasTaskConfig = stasTaskConfigMapper.selectById(stasSyncStrategy.getTaskId());
|
StasTaskConfig stasTaskConfig = stasTaskConfigMapper.selectById(stasSyncStrategy.getTaskId());
|
||||||
StasDataSource sourceInfo = stasDataSourceMapper.selectById(stasTaskConfig.getSourceId());
|
StasDataSource sourceInfo = stasDataSourceMapper.selectById(stasTaskConfig.getSourceId());
|
||||||
|
|
@ -70,23 +69,28 @@ public class StasSyncStrategyServiceImpl extends ServiceImpl<StasSyncStrategyMap
|
||||||
String createSql = getCreateTableSql(sourceConn, stasSyncStrategy.getSourceOwner(),sourceInfo.getDbLink(),
|
String createSql = getCreateTableSql(sourceConn, stasSyncStrategy.getSourceOwner(),sourceInfo.getDbLink(),
|
||||||
stasSyncStrategy.getTargetOwner(), stasSyncStrategy.getTableName(),
|
stasSyncStrategy.getTargetOwner(), stasSyncStrategy.getTableName(),
|
||||||
sourceInfo.getType(), targetInfo.getType());
|
sourceInfo.getType(), targetInfo.getType());
|
||||||
|
|
||||||
// 在目标库创建表
|
// 在目标库创建表
|
||||||
try (Statement stmt = targetConn.createStatement()) {
|
try (Statement stmt = targetConn.createStatement()) {
|
||||||
stmt.execute(createSql);
|
stmt.execute(createSql);
|
||||||
|
LambdaQueryWrapper<StasSyncStrategy> syncStrategyQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
syncStrategyQueryWrapper.eq(StasSyncStrategy::getTaskId, stasSyncStrategy.getTaskId());
|
||||||
|
syncStrategyQueryWrapper.eq(StasSyncStrategy::getSourceOwner,stasSyncStrategy.getSourceOwner());
|
||||||
|
syncStrategyQueryWrapper.eq(StasSyncStrategy::getTargetOwner,stasSyncStrategy.getTargetOwner());
|
||||||
|
syncStrategyQueryWrapper.eq(StasSyncStrategy::getTableName,stasSyncStrategy.getTableName());
|
||||||
|
StasSyncStrategy queryResult = stasSyncStrategyService.selectOne(syncStrategyQueryWrapper);
|
||||||
|
if(Objects.nonNull(queryResult)){
|
||||||
|
stasSyncStrategyService.delete(syncStrategyQueryWrapper);
|
||||||
|
}
|
||||||
this.baseMapper.insert(stasSyncStrategy);
|
this.baseMapper.insert(stasSyncStrategy);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new JeecgBootException(e.getMessage());
|
throw new JeecgBootException(e.getMessage());
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this.baseMapper.insert(stasSyncStrategy);
|
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
throw new JeecgBootException(String.format("处理表: %s时出错", stasSyncStrategy.getTableName()),e);
|
||||||
throw new JeecgBootException(String.format("处理表: %s时出错", stasSyncStrategy.getTableName()));
|
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new JeecgBootException(e.getMessage());
|
throw new JeecgBootException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user