作者 RuoYi

优化字段更新未同步

@@ -7,6 +7,7 @@ import java.io.StringWriter; @@ -7,6 +7,7 @@ import java.io.StringWriter;
7 import java.util.LinkedHashMap; 7 import java.util.LinkedHashMap;
8 import java.util.List; 8 import java.util.List;
9 import java.util.Map; 9 import java.util.Map;
  10 +import java.util.function.Function;
10 import java.util.stream.Collectors; 11 import java.util.stream.Collectors;
11 import java.util.zip.ZipEntry; 12 import java.util.zip.ZipEntry;
12 import java.util.zip.ZipOutputStream; 13 import java.util.zip.ZipOutputStream;
@@ -286,7 +287,7 @@ public class GenTableServiceImpl implements IGenTableService @@ -286,7 +287,7 @@ public class GenTableServiceImpl implements IGenTableService
286 { 287 {
287 GenTable table = genTableMapper.selectGenTableByName(tableName); 288 GenTable table = genTableMapper.selectGenTableByName(tableName);
288 List<GenTableColumn> tableColumns = table.getColumns(); 289 List<GenTableColumn> tableColumns = table.getColumns();
289 - List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); 290 + Map<String, GenTableColumn> tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity()));
290 291
291 List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); 292 List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
292 if (StringUtils.isEmpty(dbTableColumns)) 293 if (StringUtils.isEmpty(dbTableColumns))
@@ -296,9 +297,20 @@ public class GenTableServiceImpl implements IGenTableService @@ -296,9 +297,20 @@ public class GenTableServiceImpl implements IGenTableService
296 List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); 297 List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
297 298
298 dbTableColumns.forEach(column -> { 299 dbTableColumns.forEach(column -> {
299 - if (!tableColumnNames.contains(column.getColumnName()))  
300 - {  
301 GenUtils.initColumnField(column, table); 300 GenUtils.initColumnField(column, table);
  301 + if (tableColumnMap.containsKey(column.getColumnName()))
  302 + {
  303 + GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName());
  304 + column.setColumnId(prevColumn.getColumnId());
  305 + if (column.isList())
  306 + {
  307 + // 如果是列表,继续保留字典类型
  308 + column.setDictType(prevColumn.getDictType());
  309 + }
  310 + genTableColumnMapper.updateGenTableColumn(column);
  311 + }
  312 + else
  313 + {
302 genTableColumnMapper.insertGenTableColumn(column); 314 genTableColumnMapper.insertGenTableColumn(column);
303 } 315 }
304 }); 316 });