Browse Source

复制表单如果文件夹不存在自动创建

chenr 4 months ago
parent
commit
cabe90d4d9

+ 4 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -561,7 +561,7 @@ public class ExcelTabController extends BladeController {
         String thmlUrl = file_path + "/privateUrlCopy/" + aPrivate.getProjectId()+"/"+filecode + ".html";
         File file_out = ResourceUtil.getFile(thmlUrl);
         if(!file_out.exists()){
-            new File(thmlUrl).createNewFile();
+            FileUtils.ensureFileExists(thmlUrl);
         }
         FileUtil.copy(file_in, file_out);
         updateWrapper.set("html_url", thmlUrl);
@@ -2003,7 +2003,7 @@ public class ExcelTabController extends BladeController {
 
         //公式填充
         this.excelTabService.formulaFillData(tableInfoList, Long.parseLong(nodeId), ExecuteType.INSPECTION);
-        RandomNumberHolder.clear();
+        RandomNumberHolder.RandomNumberclear();
         assert tableInfoList != null;
         if (tableInfoList.size() == 0) {
             R.success("数据未发生变化");
@@ -2012,6 +2012,8 @@ public class ExcelTabController extends BladeController {
         executionTime.info("公式耗时");
         //保存数据到数据库
         R<Object> result = this.excelTabService.saveOrUpdateInfo(tableInfoList);
+        RandomNumberHolder.RandomTemplateTypeclear();
+        RandomNumberHolder.RandomWbsTreeContractclear();
         if (!result.isSuccess()) {
             return R.fail(result.getMsg());
         }

+ 24 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/FileUtils.java

@@ -1013,5 +1013,29 @@ public class FileUtils {
         }
         return "";
     }
+    public static File ensureFileExists(String filePath) throws IOException {
+        File file = new File(filePath);
+
+        // 获取父目录
+        File parentDir = file.getParentFile();
+
+        // 如果父目录不存在,则创建所有必要的父目录
+        if (parentDir != null && !parentDir.exists()) {
+            boolean dirsCreated = parentDir.mkdirs();
+            if (!dirsCreated) {
+                throw new IOException("Failed to create parent directories: " + parentDir.getAbsolutePath());
+            }
+        }
+
+        // 如果文件本身不存在,则创建新文件
+        if (!file.exists()) {
+            boolean fileCreated = file.createNewFile();
+            if (!fileCreated) {
+                throw new IOException("Failed to create file: " + file.getAbsolutePath());
+            }
+        }
+
+        return file;
+    }
 
 }