|
@@ -736,6 +736,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
|
|
|
//参数
|
|
|
LinkedHashMap<String, String> dataMap2 = tableInfo.getDataMap();
|
|
|
+ updateFieldLength(tabName, dataMap2);
|
|
|
for (String key : dataMap2.keySet()) {
|
|
|
keySql.append(", ").append(key);
|
|
|
valSql.append(", '").append(dataMap2.get(key)).append("'");
|
|
@@ -1105,7 +1106,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
for (TableInfo tableInfo : tableInfoList) {
|
|
|
//获取字段信息
|
|
|
LinkedHashMap<String, String> dataMap2 = tableInfo.getDataMap();
|
|
|
-
|
|
|
+ updateFieldLength(table.getTabEnName(),dataMap2);
|
|
|
//拼接SQL
|
|
|
StringBuilder sql = new StringBuilder("INSERT INTO " + table.getTabEnName()),
|
|
|
keySql = new StringBuilder("id, group_id"),
|
|
@@ -1233,9 +1234,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
String delSql = "delete from " + tabName + " where p_key_id=" + tableInfo.getPkeyId();
|
|
|
String sqlInfo = "";
|
|
|
LinkedHashMap<String, String> dataMap2 = tableInfo.getDataMap();
|
|
|
- if (!updateFieldLength(tabName, dataMap2)) {
|
|
|
- throw new ServiceException("字段长度超出限制, 系统无法进行自增,请前往后台管理系统手动设置");
|
|
|
- }
|
|
|
+ updateFieldLength(tabName, dataMap2);
|
|
|
/*检查发现有p_key_id缺失的情况,导致表单数据丢失,所以强制覆盖*/
|
|
|
dataMap2.put("p_key_id", tableInfo.getPkeyId());
|
|
|
//统计保存的字段
|
|
@@ -1346,17 +1345,14 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
// return R.success(fileName1);
|
|
|
}
|
|
|
|
|
|
- public boolean updateFieldLength(String tableName, Map<String, String> fieldNameAndLengthMap) {
|
|
|
+ public void updateFieldLength(String tableName, Map<String, String> fieldNameAndLengthMap) {
|
|
|
if (fieldNameAndLengthMap == null || fieldNameAndLengthMap.isEmpty()) {
|
|
|
- return true;
|
|
|
+ return;
|
|
|
}
|
|
|
- fieldNameAndLengthMap.remove("id");
|
|
|
- fieldNameAndLengthMap.remove("p_key_id");
|
|
|
- fieldNameAndLengthMap.remove("group_id");
|
|
|
- if (fieldNameAndLengthMap.isEmpty()) {
|
|
|
- return true;
|
|
|
+ String fields = fieldNameAndLengthMap.keySet().stream().filter(key -> !key.equals("id") && !key.equals("p_key_id") && !key.equals("group_id")).map(key -> "'" + key + "'").collect(Collectors.joining(","));
|
|
|
+ if (fields.isEmpty()) {
|
|
|
+ return;
|
|
|
}
|
|
|
- String fields = fieldNameAndLengthMap.keySet().stream().map(key -> "'" + key + "'").collect(Collectors.joining(","));
|
|
|
List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where TABLE_NAME = '" + tableName +
|
|
|
"' and COLUMN_NAME in (" + fields + ")");
|
|
|
Map<String, Integer> map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
|
|
@@ -1397,10 +1393,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
} catch (Exception e) {
|
|
|
transactionManager1.rollback(transactionStatus);
|
|
|
log.error("更新字段长度失败, error: " + e.getMessage());
|
|
|
- return false;
|
|
|
+ throw new ServiceException("字段长度超出限制, 系统无法进行扩容,请尝试缩小字段长度或者联系系统管理员处理");
|
|
|
}
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
public String reason(String log) {
|
|
@@ -3950,6 +3945,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
//新增SQL
|
|
|
String sqlInfo = "";
|
|
|
LinkedHashMap<String, String> dataMap2 = tableInfo.getDataMap();
|
|
|
+ updateFieldLength(wbsTreePrivate.getInitTableName() ,dataMap2);
|
|
|
if(!dataMap2.containsKey("p_key_id")){
|
|
|
if(tableInfo.getPkeyId()!=null&&!tableInfo.getPkeyId().equals("")){
|
|
|
dataMap2.put("p_key_id",tableInfo.getPkeyId());
|