|  | @@ -7,6 +7,7 @@ import java.io.StringWriter;
 | 
	
		
			
				|  |  |  import java.util.LinkedHashMap;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
		
			
				|  |  | +import java.util.function.Function;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  import java.util.zip.ZipEntry;
 | 
	
		
			
				|  |  |  import java.util.zip.ZipOutputStream;
 | 
	
	
		
			
				|  | @@ -286,7 +287,7 @@ public class GenTableServiceImpl implements IGenTableService
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          GenTable table = genTableMapper.selectGenTableByName(tableName);
 | 
	
		
			
				|  |  |          List<GenTableColumn> tableColumns = table.getColumns();
 | 
	
		
			
				|  |  | -        List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        Map<String, GenTableColumn> tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
 | 
	
		
			
				|  |  |          if (StringUtils.isEmpty(dbTableColumns))
 | 
	
	
		
			
				|  | @@ -296,9 +297,20 @@ public class GenTableServiceImpl implements IGenTableService
 | 
	
		
			
				|  |  |          List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          dbTableColumns.forEach(column -> {
 | 
	
		
			
				|  |  | -            if (!tableColumnNames.contains(column.getColumnName()))
 | 
	
		
			
				|  |  | +            GenUtils.initColumnField(column, table);
 | 
	
		
			
				|  |  | +            if (tableColumnMap.containsKey(column.getColumnName()))
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName());
 | 
	
		
			
				|  |  | +                column.setColumnId(prevColumn.getColumnId());
 | 
	
		
			
				|  |  | +                if (column.isList())
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    // 如果是列表,继续保留字典类型
 | 
	
		
			
				|  |  | +                    column.setDictType(prevColumn.getDictType());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                genTableColumnMapper.updateGenTableColumn(column);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                GenUtils.initColumnField(column, table);
 | 
	
		
			
				|  |  |                  genTableColumnMapper.insertGenTableColumn(column);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
	
		
			
				|  | @@ -359,7 +371,7 @@ public class GenTableServiceImpl implements IGenTableService
 | 
	
		
			
				|  |  |                  zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table)));
 | 
	
		
			
				|  |  |                  IOUtils.write(sw.toString(), zip, Constants.UTF8);
 | 
	
		
			
				|  |  |                  IOUtils.closeQuietly(sw);
 | 
	
		
			
				|  |  | -				zip.flush();
 | 
	
		
			
				|  |  | +                zip.flush();
 | 
	
		
			
				|  |  |                  zip.closeEntry();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              catch (IOException e)
 | 
	
	
		
			
				|  | @@ -472,7 +484,7 @@ public class GenTableServiceImpl implements IGenTableService
 | 
	
		
			
				|  |  |              String treeName = paramsObj.getString(GenConstants.TREE_NAME);
 | 
	
		
			
				|  |  |              String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID);
 | 
	
		
			
				|  |  |              String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME);
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              genTable.setTreeCode(treeCode);
 | 
	
		
			
				|  |  |              genTable.setTreeParentCode(treeParentCode);
 | 
	
		
			
				|  |  |              genTable.setTreeName(treeName);
 |