ソースを参照

实体表保存修改

lvy 1 ヶ月 前
コミット
cf628f7fb4

+ 32 - 16
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -1382,12 +1382,12 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             }
         }
         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) {
@@ -1403,15 +1403,23 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         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) {
@@ -1433,16 +1441,24 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
         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("'");
         }

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -194,6 +194,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
             String fieldType = WbsElementUtil.getInitTableFiledType(wbsFormElement.getEType());
             if (newFiled > 80) {
                 alterMTableOpsFiled(tableName);
+                baseMapper.insert(wbsFormElement);
             } else {
                 if ("varchar".equals(fieldType)) {
                     if (wbsFormElement.getELength() > 1000 || wbsFormElement.getELength() < 10) {
@@ -920,6 +921,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     long index = Long.parseLong(split[1]);
                     if (index > 80)  {
                         alterMTableOpsFiled(initTableName);
+                        continue;
                     };
                 }
                 //同步

+ 35 - 19
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -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("'");
         }