From 0c30ffa11ff30882fd81302b6879f4c32ddf0b2a Mon Sep 17 00:00:00 2001
From: 若依 <yzz_ivy@163.com>
Date: 星期一, 25 十月 2021 09:55:51 +0800
Subject: [PATCH] !354 update ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java. Merge pull request !354 from Remenber_Ray/N/A
---
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 77 insertions(+), 20 deletions(-)
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
index 4f66302..f2ffbe9 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -10,6 +10,7 @@
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
@@ -24,10 +25,9 @@
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.GenConstants;
import com.ruoyi.common.core.text.CharsetKit;
-import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
import com.ruoyi.generator.mapper.GenTableColumnMapper;
@@ -103,6 +103,17 @@
}
/**
+ * 查询所有表信息
+ *
+ * @return 表信息集合
+ */
+ @Override
+ public List<GenTable> selectGenTableAll()
+ {
+ return genTableMapper.selectGenTableAll();
+ }
+
+ /**
* 修改业务
*
* @param genTable 业务信息
@@ -169,7 +180,7 @@
}
catch (Exception e)
{
- throw new CustomException("导入失败:" + e.getMessage());
+ throw new ServiceException("导入失败:" + e.getMessage());
}
}
@@ -185,9 +196,10 @@
Map<String, String> dataMap = new LinkedHashMap<>();
// 查询表信息
GenTable table = genTableMapper.selectGenTableById(tableId);
- // 查询列信息
- List<GenTableColumn> columns = table.getColumns();
- setPkColumn(table, columns);
+ // 设置主子表信息
+ setSubTable(table);
+ // 设置主键列信息
+ setPkColumn(table);
VelocityInitializer.initVelocity();
VelocityContext context = VelocityUtils.prepareContext(table);
@@ -231,9 +243,10 @@
{
// 查询表信息
GenTable table = genTableMapper.selectGenTableByName(tableName);
- // 查询列信息
- List<GenTableColumn> columns = table.getColumns();
- setPkColumn(table, columns);
+ // 设置主子表信息
+ setSubTable(table);
+ // 设置主键列信息
+ setPkColumn(table);
VelocityInitializer.initVelocity();
@@ -256,7 +269,7 @@
}
catch (IOException e)
{
- throw new CustomException("渲染模板失败,表名:" + table.getTableName());
+ throw new ServiceException("渲染模板失败,表名:" + table.getTableName());
}
}
}
@@ -276,6 +289,10 @@
List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
+ if (StringUtils.isEmpty(dbTableColumns))
+ {
+ throw new ServiceException("同步数据失败,原表结构不存在");
+ }
List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
dbTableColumns.forEach(column -> {
@@ -319,9 +336,10 @@
{
// 查询表信息
GenTable table = genTableMapper.selectGenTableByName(tableName);
- // 查询列信息
- List<GenTableColumn> columns = table.getColumns();
- setPkColumn(table, columns);
+ // 设置主子表信息
+ setSubTable(table);
+ // 设置主键列信息
+ setPkColumn(table);
VelocityInitializer.initVelocity();
@@ -365,15 +383,26 @@
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 ServiceException("关联子表的表名不能为空");
+ }
+ else if (StringUtils.isEmpty(genTable.getSubTableFkName()))
+ {
+ throw new ServiceException("子表关联的外键名不能为空");
+ }
}
}
}
@@ -382,11 +411,10 @@
* 设置主键列信息
*
* @param table 业务表信息
- * @param columns 业务字段列表
*/
- public void setPkColumn(GenTable table, List<GenTableColumn> columns)
+ public void setPkColumn(GenTable table)
{
- for (GenTableColumn column : columns)
+ for (GenTableColumn column : table.getColumns())
{
if (column.isPk())
{
@@ -396,7 +424,36 @@
}
if (StringUtils.isNull(table.getPkColumn()))
{
- table.setPkColumn(columns.get(0));
+ table.setPkColumn(table.getColumns().get(0));
+ }
+ if (GenConstants.TPL_SUB.equals(table.getTplCategory()))
+ {
+ for (GenTableColumn column : table.getSubTable().getColumns())
+ {
+ if (column.isPk())
+ {
+ table.getSubTable().setPkColumn(column);
+ break;
+ }
+ }
+ if (StringUtils.isNull(table.getSubTable().getPkColumn()))
+ {
+ table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0));
+ }
+ }
+ }
+
+ /**
+ * 设置主子表信息
+ *
+ * @param table 业务表信息
+ */
+ public void setSubTable(GenTable table)
+ {
+ String subTableName = table.getSubTableName();
+ if (StringUtils.isNotEmpty(subTableName))
+ {
+ table.setSubTable(genTableMapper.selectGenTableByName(subTableName));
}
}
--
Gitblit v1.9.2