|
@@ -3574,12 +3574,12 @@ public class TaskController extends BladeController {
|
|
|
}
|
|
|
}
|
|
|
keySql.append("id");
|
|
|
- valSql.append(id == null ? SnowFlakeUtil.getId() : id + ", ");
|
|
|
+ valSql.append(id == null ? SnowFlakeUtil.getId() : id);
|
|
|
if (groupId == null) {
|
|
|
groupId = dataMap2.get("group_id");
|
|
|
}
|
|
|
if (groupId != null) {
|
|
|
- keySql.append(", group_id, ");
|
|
|
+ keySql.append(", group_id");
|
|
|
valSql.append(", ").append(groupId);
|
|
|
}
|
|
|
if (pKeyId == null) {
|
|
@@ -3595,27 +3595,35 @@ public class TaskController extends BladeController {
|
|
|
dataMap2.remove("group_id");
|
|
|
dataMap2.remove("p_key_id");
|
|
|
String fields = dataMap2.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 = '" + tabName +
|
|
|
- "' and COLUMN_NAME in (" + fields + ")");
|
|
|
- Map<String, Integer> map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
|
|
|
+ Map<String, Integer> map = new HashMap<>();
|
|
|
+ if (!fields.isEmpty()) {
|
|
|
try {
|
|
|
- return Integer.parseInt(v.get("fieldLength") + "");
|
|
|
+ fields = fields + ", 'key_201'";
|
|
|
+ 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 = '" + tabName +
|
|
|
+ "' and COLUMN_NAME in (" + fields + ")");
|
|
|
+ map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
|
|
|
+ try {
|
|
|
+ return Integer.parseInt(v.get("fieldLength") + "");
|
|
|
+ } catch (Exception e) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }, Math::min));
|
|
|
} catch (Exception e) {
|
|
|
- return 0;
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- }, Math::min));
|
|
|
+ }
|
|
|
for (String key : dataMap2.keySet()) {
|
|
|
String[] split = key.split("_");
|
|
|
if (split.length > 1 && Integer.parseInt(split[1]) > 80) {
|
|
|
// 大于80则保留在扩展字段中
|
|
|
opsParamMap.put(key, dataMap2.get(key) == null ? "" : dataMap2.get(key) + "");
|
|
|
} else {
|
|
|
- Object value = dataMap2.get(key);
|
|
|
+ String value = dataMap2.get(key) == null ? null : dataMap2.get(key) + "";
|
|
|
if (value != null) {
|
|
|
Integer i = map.get(key);
|
|
|
// 长度超过数据库长度也保留在扩展字段中
|
|
|
- if (i != null && value.toString().length() > i) {
|
|
|
- opsParamMap.put(key, value.toString());
|
|
|
+ if (i != null && value.length() > i) {
|
|
|
+ opsParamMap.put(key, value);
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
@@ -3625,16 +3633,24 @@ public class TaskController extends BladeController {
|
|
|
}
|
|
|
if (!opsParamMap.isEmpty()) {
|
|
|
keySql.append(", key_201");
|
|
|
- Integer i = map.get("key_201");
|
|
|
String data = DataStructureFormatUtils.buildData(opsParamMap);
|
|
|
- if (i != null && data.length() > i) {
|
|
|
- if (i < 10000) {
|
|
|
- // 65535 byte
|
|
|
- jdbcTemplate.execute("alter table " + tabName + " modify column key_201 text");
|
|
|
- }else {
|
|
|
- // 16777215 byte
|
|
|
- jdbcTemplate.execute("alter table " + tabName + " modify column key_201 mediumtext");
|
|
|
+ try {
|
|
|
+ if (!map.containsKey( "key_201")) {
|
|
|
+ jdbcTemplate.execute("alter table " + tabName + " add column key_201 text");
|
|
|
+ } else {
|
|
|
+ Integer i = map.get("key_201");
|
|
|
+ if (data.length() > i) {
|
|
|
+ if (i < 10000) {
|
|
|
+ // 65535 byte
|
|
|
+ jdbcTemplate.execute("alter table " + tabName + " modify column key_201 text");
|
|
|
+ }else {
|
|
|
+ // 16777215 byte
|
|
|
+ jdbcTemplate.execute("alter table " + tabName + " modify column key_201 mediumtext");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
valSql.append(", '").append(data).append("'");
|
|
|
}
|