From 28f6317f7189d5c4a7e64f57dd6c7fc2011f8632 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期二, 07 一月 2025 15:41:46 +0800
Subject: [PATCH] attend user

---
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/util/QrCodeUtil.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/util/QrCodeUtil.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/util/QrCodeUtil.java
index 877c76a..c259586 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/util/QrCodeUtil.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/util/QrCodeUtil.java
@@ -11,8 +11,7 @@
 import org.springframework.core.io.ClassPathResource;
 
 import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
 import java.net.URLEncoder;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
@@ -32,8 +31,22 @@
     public static byte[] genQrCode(String code) throws IOException, WriterException {
         File logoFile = logoCache.computeIfAbsent(LOGO_PATH, key -> {
             try {
+                // 浣跨敤ClassPathResource鑾峰彇璧勬簮鐨勮緭鍏ユ祦
                 ClassPathResource resource = new ClassPathResource(key);
-                return resource.getFile();
+                // 鍒涘缓涓�涓复鏃舵枃浠舵潵淇濆瓨璧勬簮鍐呭(閬垮厤澶勭悊宓屽jar鏂囦欢鏃舵壘涓嶅埌鏂囦欢)
+                File tempFile = File.createTempFile("logo", ".png");
+                try (InputStream in = resource.getInputStream();
+                     OutputStream out = new FileOutputStream(tempFile)) {
+                    // 浠庤緭鍏ユ祦澶嶅埗鍒颁复鏃舵枃浠�
+                    byte[] buffer = new byte[1024];
+                    int bytesRead;
+                    while ((bytesRead = in.read(buffer)) != -1) {
+                        out.write(buffer, 0, bytesRead);
+                    }
+                    // 杩斿洖涓存椂鏂囦欢
+                    tempFile.deleteOnExit(); // 鑷姩鍒犻櫎涓存椂鏂囦欢锛堝綋JVM閫�鍑烘椂锛�
+                    return tempFile;
+                }
             } catch (IOException e) {
                 throw new RuntimeException("鍔犺浇Logo鍥剧墖澶辫触", e);
             }
@@ -69,7 +82,36 @@
             response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
             EasyExcel.write(response.getOutputStream(), list.get(0).getClass()).sheet(sheetName).doWrite(list);
         }catch (Exception e){
-            log.error("瀵煎嚭浜у搧淇℃伅寮傚父", e);
+            log.error("瀵煎嚭{}寮傚父",sheetName,e);
         }
     }
+    public static void downloadExcelSheets(HttpServletResponse response, String fileName, String sheetName, List<Converter> list){
+        if(CollectionUtils.isEmpty(list)){
+            return;
+        }
+        /*try(ExcelWriter excelWriter = EasyExcel.write(file).build()) {
+            WriteSheet writeSheet;
+            for (SheetInfoBean bean : sheetInfoList) {
+                // 鏋勫缓sheet瀵硅薄
+                writeSheet = EasyExcel.writerSheet(bean.getSheetName()).head(bean.getHeadClass()).build();
+                // 鍐欏嚭sheet鏁版嵁
+                excelWriter.write(bean.getDataList(), writeSheet);
+            }
+            // 鍏虫祦
+            excelWriter.finish();
+        } catch (Exception e) {
+            // do something you want
+        }*/
+        try{
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            EasyExcel.write(response.getOutputStream(), list.get(0).getClass()).sheet(sheetName).doWrite(list);
+        }catch (Exception e){
+            log.error("瀵煎嚭{}寮傚父",sheetName,e);
+        }
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.8.0