From 8bb87356a3aadf27cdde58ca79ad2773cdf02205 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期三, 16 八月 2023 11:55:31 +0800
Subject: [PATCH] xn commit

---
 src/main/java/com/product/file/service/OnlineDocumentEditService.java |   25 ++++++++++++++++++++++++-
 src/main/java/com/product/file/util/FileUtil.java                     |   22 ++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/product/file/service/OnlineDocumentEditService.java b/src/main/java/com/product/file/service/OnlineDocumentEditService.java
index 817138c..819baea 100644
--- a/src/main/java/com/product/file/service/OnlineDocumentEditService.java
+++ b/src/main/java/com/product/file/service/OnlineDocumentEditService.java
@@ -59,6 +59,20 @@
 		try {
 			String document_template = ff.getString("document_template");
 			String document_template_tail = ff.getString("document_template_tail");
+			String fileUuid = ff.getString("file_uuid");
+			FieldSetEntity fieldSetEntity = getBaseDao().getFieldSetEntity(CmnConst.PRODUCT_SYS_ATTACHMENTS, fileUuid, false);
+			//鑾峰彇鏂囦欢绫诲瀷
+			String fileName = fieldSetEntity.getString(CmnConst.FILE_NAME);
+			//鍒ゆ柇鏄惁涓篸oc鏂囦欢
+			String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
+			if ("doc".equals(fileType)) {
+				//灏哾oc鏂囦欢杞崲涓篸ocx鏂囦欢
+				File f = file;
+				file = com.product.file.util.FileUtil.toDocx(file);
+				if (f != null) {
+					f.delete();
+				}
+			}
 			List<File> fileList = new ArrayList<>(3);
 			if (!StringUtils.isEmpty(document_template)) {
 				fileList.add(fileManagerService.getFile(document_template));
@@ -72,12 +86,21 @@
 			File mergeFile = MergeDoc.mergeDoc(fileList, Global.getSystemConfig("upload.file.temp.path", "./attachment/temp") +
 					File.separator + "nest_red_document_" + IdUtil.randomUUID() + "_" + ff.getString("file_uuid"));
 			if (mergeFile != null && mergeFile.isFile()) {
+				if("doc".equals(fileType)){
+					//灏哾ocx鏂囦欢杞崲涓篸oc鏂囦欢
+					File f = mergeFile;
+					mergeFile = com.product.file.util.FileUtil.toDoc(f);
+					if (f != null) {
+						f.delete();
+					}
+				}
 				HashMap<String, File> objectObjectHashMap = new HashMap<>();
 				objectObjectHashMap.put("mergeFile", mergeFile);
 				uploadFile(ff.getString("file_uuid"), objectObjectHashMap);
 			} else {
 				throw new BaseException(FileCode.NEST_RED_DOCUMENT_FAIL);
 			}
+			fileList.forEach(FileUtil::del);
 		} catch (BaseException e) {
 			throw e;
 		} catch (Exception e) {
@@ -288,7 +311,7 @@
 					//姝e湪琚紪杈�
 					String existsKey = keys.toArray(new String[]{})[0];
 					//杩欓噷浼氭姏鍑烘鍦ㄧ紪杈戠殑寮傚父
-					throwBeingEditDocument(existsKey.substring(existsKey.lastIndexOf("-")+1));
+					throwBeingEditDocument(existsKey.substring(existsKey.lastIndexOf("-") + 1));
 				} else if (remove) {
 					RedisUtil.setOutTime(key, getExpirationTime());
 					return;
diff --git a/src/main/java/com/product/file/util/FileUtil.java b/src/main/java/com/product/file/util/FileUtil.java
index 33a326b..6275477 100644
--- a/src/main/java/com/product/file/util/FileUtil.java
+++ b/src/main/java/com/product/file/util/FileUtil.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.poi.word.WordUtil;
 import com.aspose.words.Document;
+import com.aspose.words.SaveFormat;
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.xwpf.NiceXWPFDocument;
 import com.google.common.collect.Maps;
@@ -83,6 +84,9 @@
 	}
 
 	public static File toDocx(File file) {
+		if (!AsposeUtil.getLicense(2)) {
+			return file;
+		}
 		String docxName = UUID.randomUUID().toString() + ".docx";
 		File docxFile = new File(file.getParent() + File.separator + docxName);
 		String tempDir = Global.getSystemConfig("temp.dir", "./attachment/temp");
@@ -97,6 +101,24 @@
 		return docxFile;
 	}
 
+	public static File toDoc(File file) {
+		if (!AsposeUtil.getLicense(2)) {
+			return file;
+		}
+		String docxName = UUID.randomUUID().toString() + ".doc";
+		File docxFile = new File(file.getParent() + File.separator + docxName);
+		String tempDir = Global.getSystemConfig("temp.dir", "./attachment/temp");
+		File tempFile = new File(tempDir + File.separator + docxName);
+		try {
+			Document document = new Document(new FileInputStream(file));
+			document.save(tempFile.getAbsolutePath(), SaveFormat.DOC);
+			return tempFile;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return docxFile;
+	}
+
 	/**
 	 * 鎵归噺鎵撳寘
 	 *

--
Gitblit v1.9.2