Bladeren bron

!135 字段更新未同步
Merge pull request !135 from runphp/N/A

若依 4 jaren geleden
bovenliggende
commit
c166bb0a89

+ 12 - 3
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java

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