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