فهرست منبع

新增了文件对比接口

李英俊ya 1 ماه پیش
والد
کامیت
6e8d27bdf5

+ 22 - 8
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRepoController.java

@@ -117,14 +117,31 @@ public class SysRepoController extends BaseController
             if(sysRepoService.updateSysRepo(sysRepo)<1){
                 return AjaxResult.error("文件插入失败");
             }
-            if(sysRepo.getRepoType().equals(".docx")){
-                Set<String> set =  OfficeCompareUtils.compare(sysRepoHistory.getUrl(),sysRepo.getUrl(),"spire");
-                return AjaxResult.success(set);
-            }
+//            if(sysRepo.getRepoType().equals(".docx") || sysRepo.getRepoType().equals(".doc")){
+//                Set<String> set =  OfficeCompareUtils.compare(sysRepoHistory.getUrl(),sysRepo.getUrl(),"spire");
+//                return AjaxResult.success(set);
+//            }
             return success();
 
         }
     }
+
+    /**
+     * 对比接口
+     */
+    @PreAuthorize("@ss.hasPermi('system:repo:compare')")
+    @PostMapping("/compare")
+    public AjaxResult compare(@RequestBody SysRepo sysRepo)
+    {
+        SysRepo sysRepo_old = sysRepoService.selectSysRepoByRepoId(sysRepo.getRepoId());
+        if(FileUtils.getFileExtension(sysRepo_old.getUrl()).equals(".docx")){
+
+            return AjaxResult.success(OfficeCompareUtils.compare(FileUtils.getUploadPath(sysRepo_old.getUrl()),FileUtils.getUploadPath(sysRepo.getUrl()),"spire"));
+        }
+        return AjaxResult.error("对比失败");
+    }
+
+
     /**
      * 获取文件版本
      */
@@ -180,10 +197,7 @@ public class SysRepoController extends BaseController
             {
                 throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", url));
             }
-            //去除固定前缀“/profile”
-            url = url.substring(15);
-            String filePath = RuoYiConfig.getUploadPath() + url;
-            System.out.println(filePath);
+            String filePath = FileUtils.getUploadPath(url);
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, fileName);
             FileUtils.writeBytes(filePath, response.getOutputStream());

+ 1 - 1
ruoyi-common/src/main/java/com/ruoyi/common/filecompare/SpireDoc.java

@@ -16,7 +16,7 @@ public class SpireDoc {
             doc1.loadFromFile(file1);
             doc2.loadFromFile(file2);
             doc1.compare(doc2, "Host");
-            doc1.saveToFile("C:\\Users\\admin\\Desktop\\Result.docx");
+//            doc1.saveToFile("C:\\Users\\admin\\Desktop\\Result.docx");
             DifferRevisions differRevisions = new DifferRevisions(doc1);
             List insertRevisionsList = differRevisions.getInsertRevisions();
             List  deleteRevisionsList = differRevisions.getDeleteRevisions();

+ 19 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java

@@ -329,4 +329,23 @@ public class FileUtils
         }
         return fileName.substring(lastDotIndex + 1);
     }
+
+    /**
+     * 适配系统路径
+     *
+     * @param url 路径名称
+     * @return 文件类型后缀
+     */
+    public static String getUploadPath(String url) {
+        if (url == null || url.isEmpty()) {
+            return null;
+        }
+        String[] parts = url.split("/");
+        if (parts.length > 3) {
+            Integer index = parts[0].length() + parts[1].length() + 2;
+            return RuoYiConfig.getUploadPath() + url.substring(index);
+        } else {
+            return null;
+        }
+    }
 }