|
|
|
@ -15,6 +15,7 @@ import com.ruoyi.common.core.constant.Constants;
|
|
|
|
|
import com.ruoyi.common.core.constant.GenConstants;
|
|
|
|
|
import com.ruoyi.common.core.exception.ServiceException;
|
|
|
|
|
import com.ruoyi.common.core.utils.JsonUtils;
|
|
|
|
|
import com.ruoyi.common.core.utils.StreamUtils;
|
|
|
|
|
import com.ruoyi.common.core.utils.StringUtils;
|
|
|
|
|
import com.ruoyi.common.core.utils.file.FileUtils;
|
|
|
|
|
import com.ruoyi.common.mybatis.core.page.PageQuery;
|
|
|
|
@ -41,8 +42,6 @@ import java.io.IOException;
|
|
|
|
|
import java.io.StringWriter;
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import java.util.zip.ZipEntry;
|
|
|
|
|
import java.util.zip.ZipOutputStream;
|
|
|
|
|
|
|
|
|
@ -335,13 +334,13 @@ public class GenTableServiceImpl implements IGenTableService {
|
|
|
|
|
public void synchDb(String tableName) {
|
|
|
|
|
GenTable table = baseMapper.selectGenTableByName(tableName);
|
|
|
|
|
List<GenTableColumn> tableColumns = table.getColumns();
|
|
|
|
|
Map<String, GenTableColumn> tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity()));
|
|
|
|
|
Map<String, GenTableColumn> tableColumnMap = StreamUtils.toIdentityMap(tableColumns, GenTableColumn::getColumnName);
|
|
|
|
|
|
|
|
|
|
List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
|
|
|
|
|
if (CollUtil.isEmpty(dbTableColumns)) {
|
|
|
|
|
throw new ServiceException("同步数据失败,原表结构不存在");
|
|
|
|
|
}
|
|
|
|
|
List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
|
|
|
|
|
List<String> dbTableColumnNames = StreamUtils.toList(dbTableColumns, GenTableColumn::getColumnName);
|
|
|
|
|
|
|
|
|
|
List<GenTableColumn> saveColumns = new ArrayList<>();
|
|
|
|
|
dbTableColumns.forEach(column -> {
|
|
|
|
@ -371,9 +370,9 @@ public class GenTableServiceImpl implements IGenTableService {
|
|
|
|
|
genTableColumnMapper.insertBatch(saveColumns);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList());
|
|
|
|
|
List<GenTableColumn> delColumns = StreamUtils.filter(tableColumns, column -> !dbTableColumnNames.contains(column.getColumnName()));
|
|
|
|
|
if (CollUtil.isNotEmpty(delColumns)) {
|
|
|
|
|
List<Long> ids = delColumns.stream().map(GenTableColumn::getColumnId).collect(Collectors.toList());
|
|
|
|
|
List<Long> ids = StreamUtils.toList(delColumns, GenTableColumn::getColumnId);
|
|
|
|
|
genTableColumnMapper.deleteBatchIds(ids);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|