Selaa lähdekoodia

don't allow to specify the out directory

sunyj 8 vuotta sitten
vanhempi
commit
d074b95d39

+ 1 - 2
crystal-replace-view/README.md

@@ -1,11 +1,10 @@
 ## 运行方式
 `
-java -jar target/crystal-replace-view-0.0.1.jar src/test/resources/rpts src/test/resources/out HUASL_
+java -jar target/crystal-replace-view-0.0.1.jar src/test/resources/rpts HUASL_
 `
 ## 参数说明
 | 选项 | 说明 |
 | - | - |
 | target/crystal-replace-view-0.0.1.jar | 程序主体 | 必填 |
 | src/test/resources/rpts | 水晶报表相对路径(文件或文件夹) | 是 |
-| src/test/resources/out | 替换后的报表的路径 | 是 |
 | HUASL_ | 前缀 | 是 |

+ 15 - 20
crystal-replace-view/src/main/java/com/uas/report/crystal/CrystalReplaceView.java

@@ -26,35 +26,34 @@ public class CrystalReplaceView {
 
     public static void main(String[] args) {
         int length = args != null ? args.length : 0;
-        if (length < 3) {
-            logger.error("参数缺失\neg. java -jar target/crystal-replace-view-0.0.1.jar src/test/resources/rpts src/test/resources/out HUASL_");
+        if (length < 2) {
+            logger.error("参数缺失\neg. java -jar target/crystal-replace-view-0.0.1.jar src/test/resources/rpts HUASL_");
             return;
         }
         File src = new File(args[0]);
-        File destDir = new File(args[1]);
-        String prefix = args[2];
+        String prefix = args[1];
         try {
-            CrystalReplaceView.replaceReports(src, destDir, prefix);
+            CrystalReplaceView.replaceReports(src, prefix);
         } catch (IOException e) {
             logger.error("替换失败", e);
         }
     }
 
-    public static void replaceReports(File src, File destDir, String prefix) throws IOException {
+    public static void replaceReports(File src, String prefix) throws IOException {
         logger.info("start...");
-        if (src == null || destDir == null || StringUtils.isEmpty(prefix)) {
-            throw new IllegalArgumentException("需指定参数 src, destDir, prefix");
+        if (src == null || StringUtils.isEmpty(prefix)) {
+            throw new IllegalArgumentException("需指定参数 src, prefix");
         }
         FileUtils.checkFile(src);
         if (src.isDirectory()) {
-            replaceReports(src, new File(src, "success"), destDir, prefix);
+            replaceReports(src, new File(src, "success"), prefix);
         } else {
-            replaceReport(src, new File(src.getParentFile(), "success"), destDir, prefix);
+            replaceReport(src, new File(src.getParentFile(), "success"), prefix);
         }
         logger.info("completed...");
     }
 
-    private static void replaceReports(File reportDir, File successDir, File destDir, String prefix) throws IOException {
+    private static void replaceReports(File reportDir, File successDir, String prefix) throws IOException {
         FileUtils.checkDir(reportDir);
         File[] files = reportDir.listFiles(new FileFilter() {
             @Override
@@ -82,10 +81,9 @@ public class CrystalReplaceView {
                 if (file.isDirectory()) {
                     // 不可直接修改successDir和outDir,否则会造成其他文件的路径有问题
                     File successDirCopy = new File(successDir, fileName);
-                    File outDirCopy = new File(destDir, fileName);
-                    replaceReports(file, successDirCopy, outDirCopy, prefix);
+                    replaceReports(file, successDirCopy, prefix);
                 } else {
-                    replaceReport(file, successDir, destDir, prefix);
+                    replaceReport(file, successDir, prefix);
                 }
             } catch (Throwable e) {
                 logger.error(file.getName(), e);
@@ -93,9 +91,9 @@ public class CrystalReplaceView {
         }
     }
 
-    private static void replaceReport(File reportFile, File successDir, File destDir, String prefix) throws IOException {
+    private static void replaceReport(File reportFile, File successDir, String prefix) throws IOException {
         logger.info("replacing... " + reportFile.getName());
-        FileUtils.initDir(destDir);
+        FileUtils.initDir(successDir);
         ReportClientDocument client = new ReportClientDocument();
         try {
             // 打开报表
@@ -111,10 +109,7 @@ public class CrystalReplaceView {
                 databaseController.modifyTableAlias(iTable, prefix + iTable.getAlias());
             }
 
-            client.saveAs(reportFile.getName(), destDir.getAbsolutePath(), ReportSaveAsOptions._overwriteExisting);
-            // 转换成功之后,将文件移至其他路径下
-            FileUtils.initDir(successDir);
-            FileUtils.move(reportFile, new File(successDir, reportFile.getName()));
+            client.saveAs(reportFile.getName(), successDir.getAbsolutePath(), ReportSaveAsOptions._overwriteExisting);
             System.out.println();
         } catch (ReportSDKException e) {
             logger.error("报表读取失败", e);

+ 2 - 8
crystal-replace-view/src/test/java/com/uas/report/crystal/CrystalReplaceViewTest.java

@@ -2,8 +2,6 @@ package com.uas.report.crystal;
 
 import com.uas.report.util.ResourceUtils;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -14,14 +12,10 @@ import java.io.IOException;
  */
 public class CrystalReplaceViewTest {
 
-    private Logger logger = LoggerFactory.getLogger(getClass());
-
     @Test
     public void test() throws IOException {
         File src = ResourceUtils.getFile("rpts");
-        File destDir = ResourceUtils.getFile("out");
-        String prefix = "HUASL_";
-        CrystalReplaceView.replaceReports(src, destDir, prefix);
-        logger.info("completed!");
+        String prefix = "YITOA_";
+        CrystalReplaceView.replaceReports(src, prefix);
     }
 }