Commit 5b2e6ebca9219eb8af856aa3ddd51ab72d09b23e

Authored by xrcoder
1 parent ffa2850a

修复代码生成-同步功能删除存在的字段问题。

yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenServiceImpl.java
@@ -154,12 +154,12 @@ public class CodegenServiceImpl implements CodegenService { @@ -154,12 +154,12 @@ public class CodegenServiceImpl implements CodegenService {
154 // 构建 CodegenColumnDO 数组,只同步新增的字段 154 // 构建 CodegenColumnDO 数组,只同步新增的字段
155 List<CodegenColumnDO> codegenColumns = codegenColumnMapper.selectListByTableId(tableId); 155 List<CodegenColumnDO> codegenColumns = codegenColumnMapper.selectListByTableId(tableId);
156 Set<String> codegenColumnNames = CollectionUtils.convertSet(codegenColumns, CodegenColumnDO::getColumnName); 156 Set<String> codegenColumnNames = CollectionUtils.convertSet(codegenColumns, CodegenColumnDO::getColumnName);
157 - // 移除已经存在的字段  
158 - tableFields.removeIf(column -> codegenColumnNames.contains(column.getColumnName()));  
159 // 计算需要删除的字段 157 // 计算需要删除的字段
160 Set<String> tableFieldNames = CollectionUtils.convertSet(tableFields, TableField::getName); 158 Set<String> tableFieldNames = CollectionUtils.convertSet(tableFields, TableField::getName);
161 Set<Long> deleteColumnIds = codegenColumns.stream().filter(column -> !tableFieldNames.contains(column.getColumnName())) 159 Set<Long> deleteColumnIds = codegenColumns.stream().filter(column -> !tableFieldNames.contains(column.getColumnName()))
162 .map(CodegenColumnDO::getId).collect(Collectors.toSet()); 160 .map(CodegenColumnDO::getId).collect(Collectors.toSet());
  161 + // 移除已经存在的字段
  162 + tableFields.removeIf(column -> codegenColumnNames.contains(column.getColumnName()));
163 if (CollUtil.isEmpty(tableFields) && CollUtil.isEmpty(deleteColumnIds)) { 163 if (CollUtil.isEmpty(tableFields) && CollUtil.isEmpty(deleteColumnIds)) {
164 throw exception(CODEGEN_SYNC_NONE_CHANGE); 164 throw exception(CODEGEN_SYNC_NONE_CHANGE);
165 } 165 }