From d601b5781ea977e4afdba5f87f37635b65910a32 Mon Sep 17 00:00:00 2001
From: runphp <runphp@qq.com>
Date: Wed, 12 Jan 2022 10:12:09 +0800
Subject: [PATCH] 字段更新未同步
---
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java | 35 ++++++++++++++++++++++-------------
1 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java
index 041a5a8..de4ea4d 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java
@@ -7,6 +7,7 @@
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;
@@ -24,10 +25,10 @@
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.GenConstants;
-import com.ruoyi.common.core.exception.CustomException;
+import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.text.CharsetKit;
-import com.ruoyi.common.core.utils.SecurityUtils;
import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.gen.domain.GenTable;
import com.ruoyi.gen.domain.GenTableColumn;
import com.ruoyi.gen.mapper.GenTableColumnMapper;
@@ -180,7 +181,7 @@
}
catch (Exception e)
{
- throw new CustomException("导入失败:" + e.getMessage());
+ throw new ServiceException("导入失败:" + e.getMessage());
}
}
@@ -269,7 +270,7 @@
}
catch (IOException e)
{
- throw new CustomException("渲染模板失败,表名:" + table.getTableName());
+ throw new ServiceException("渲染模板失败,表名:" + table.getTableName());
}
}
}
@@ -286,19 +287,27 @@
{
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))
{
- throw new CustomException("同步数据失败,原表结构不存在");
+ throw new ServiceException("同步数据失败,原表结构不存在");
}
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()))
{
- GenUtils.initColumnField(column, table);
+ GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName());
+ column.setColumnId(prevColumn.getColumnId());
+ if (column.isList()) {
+ // 如果是列表,继续保留字典类型
+ column.setDictType(prevColumn.getDictType());
+ }
+ genTableColumnMapper.updateGenTableColumn(column);
+ } else {
genTableColumnMapper.insertGenTableColumn(column);
}
});
@@ -383,25 +392,25 @@
JSONObject paramsObj = JSONObject.parseObject(options);
if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE)))
{
- throw new CustomException("树编码字段不能为空");
+ throw new ServiceException("树编码字段不能为空");
}
else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE)))
{
- throw new CustomException("树父编码字段不能为空");
+ throw new ServiceException("树父编码字段不能为空");
}
else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME)))
{
- throw new CustomException("树名称字段不能为空");
+ throw new ServiceException("树名称字段不能为空");
}
else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory()))
{
if (StringUtils.isEmpty(genTable.getSubTableName()))
{
- throw new CustomException("关联子表的表名不能为空");
+ throw new ServiceException("关联子表的表名不能为空");
}
else if (StringUtils.isEmpty(genTable.getSubTableFkName()))
{
- throw new CustomException("子表关联的外键名不能为空");
+ throw new ServiceException("子表关联的外键名不能为空");
}
}
}
--
Gitblit v1.9.3