From 4fafe2304ab5e3df321808f5120b29baf27c7eab Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期一, 25 八月 2025 16:09:52 +0800
Subject: [PATCH] 暂存0822

---
 service-job/src/main/java/com/java110/job/export/ExportDataExecutor.java |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/export/ExportDataExecutor.java b/service-job/src/main/java/com/java110/job/export/ExportDataExecutor.java
index 2037e2b..a142515 100644
--- a/service-job/src/main/java/com/java110/job/export/ExportDataExecutor.java
+++ b/service-job/src/main/java/com/java110/job/export/ExportDataExecutor.java
@@ -10,10 +10,12 @@
 import com.java110.utils.util.ExceptionUtil;
 import com.java110.utils.util.StringUtil;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.slf4j.Logger;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -66,7 +68,7 @@
 
         ByteArrayInputStream inputStream = null;
         ByteArrayOutputStream os = null;
-        SXSSFWorkbook workbook = null;
+        Object document = null;
         String fileName = "";
 
         if (exportDataDto == null) {
@@ -81,26 +83,46 @@
             return;
         }
         updateUserDownloadFile(exportDataDto, UserDownloadFileDto.STATE_DOING,"", "寮�濮嬩笅杞�");
+
         try {
-            workbook = exportDataAdaptImpl.exportData(exportDataDto);
+            document = exportDataAdaptImpl.exportData(exportDataDto);
             //淇濆瓨鏂囦欢璺緞鍒� 鏂囦欢涓嬭浇琛�
+//            os = new ByteArrayOutputStream();
+//            workbook.write(os);
+//            inputStream = new ByteArrayInputStream(os.toByteArray());
+//
+//            fileName = fileUploadTemplate.saveFile(inputStream, exportDataDto.getFileName());
+//
+//
+//            updateUserDownloadFile(exportDataDto, UserDownloadFileDto.STATE_FINISH,fileName, "涓嬭浇瀹屾垚");
+            // 鏍规嵁鏂囨。绫诲瀷锛屽啓鍏ユ祦
             os = new ByteArrayOutputStream();
-            workbook.write(os);
+            if (document instanceof SXSSFWorkbook) {
+                ((SXSSFWorkbook) document).write(os);
+            } else if (document instanceof XWPFDocument) {
+                ((XWPFDocument) document).write(os);
+            }
             inputStream = new ByteArrayInputStream(os.toByteArray());
+            fileName = fileUploadTemplate.saveFile(inputStream, exportDataDto.getFileName() + "." + exportDataAdaptImpl.getFileType());
 
-            fileName = fileUploadTemplate.saveFile(inputStream, exportDataDto.getFileName());
-
-
-            updateUserDownloadFile(exportDataDto, UserDownloadFileDto.STATE_FINISH,fileName, "涓嬭浇瀹屾垚");
-
+            updateUserDownloadFile(exportDataDto, UserDownloadFileDto.STATE_FINISH, fileName, "涓嬭浇瀹屾垚");
         } catch (Throwable e) {
             e.printStackTrace();
             updateUserDownloadFile(exportDataDto, UserDownloadFileDto.STATE_FAIL, "","涓嬭浇澶辫触" + ExceptionUtil.getStackTrace(e));
         } finally {
-            try {
-                workbook.close();
-            } catch (Exception e) {
-
+            // 鍏抽棴鏂囨。瀵硅薄锛堥拡瀵逛笉鍚岀被鍨嬬殑鏂囨。杩涜璧勬簮閲婃斁锛�
+            if (document != null) {
+                try {
+                    if (document instanceof SXSSFWorkbook) {
+                        ((SXSSFWorkbook) document).close();
+                    } else if (document instanceof XWPFDocument) {
+                        ((XWPFDocument) document).close();
+                    } else if (document instanceof ByteArrayInputStream) {
+                        ((ByteArrayInputStream) document).close();
+                    }
+                } catch (IOException e) {
+                    log.error("鍏抽棴鏂囨。瀵硅薄澶辫触", e);
+                }
             }
             try {
                 inputStream.close();
@@ -112,7 +134,6 @@
             } catch (Exception e) {
 
             }
-
         }
     }
 

--
Gitblit v1.8.0