From a55b77017e8763d0fe044a30b39f37dc9ebb9dbb Mon Sep 17 00:00:00 2001
From: liuxm <liuxm_a@163.com>
Date: 星期二, 21 五月 2024 14:19:28 +0800
Subject: [PATCH] 返回文件原始名和扩展名

---
 pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java |   38 ++++++--------------------------------
 1 files changed, 6 insertions(+), 32 deletions(-)

diff --git a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java
index ddbd240..e9655a4 100644
--- a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java
+++ b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java
@@ -2,22 +2,17 @@
 
 
 import cn.hutool.core.codec.Base64;
-import com.alibaba.excel.EasyExcel;
-import com.dy.common.util.QrCodeGenerator;
+import com.alibaba.excel.converters.Converter;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.pmsGlobal.util.QrCodeConstant;
+import com.dy.pmsGlobal.util.QrCodeUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -41,20 +36,12 @@
     public BaseResponse<List<ResultVo>> show() {
         try{
             List<ResultVo> list = new ArrayList<>() ;
-            Resource resource = new ClassPathResource("/images/logo.png");
-            File logoPngFile = resource.getFile() ;
             String[][] marks = QrCodeConstant.Marks() ;
             for(String[] mark : marks){
                 ResultVo vo = new ResultVo() ;
                 vo.code = mark[0] ;
                 vo.name = mark[1] ;
-                //vo.code = "1234567890123456789012" ;
-                //BufferedImage bufferedImage = QrCodeGenerator.toBufferedImage(QrCodeGenerator.createBitMatrix(vo.code, 30, 30));
-                BufferedImage bufferedImage = QrCodeGenerator.toBufferedImage(QrCodeGenerator.createBitMatrix(vo.code, QrCodeConstant.MarkQrCodeWidth, QrCodeConstant.MarkQrCodeHeight));
-                if(logoPngFile != null && logoPngFile.exists()){
-                    bufferedImage = QrCodeGenerator.addQrCodeLogo(bufferedImage, logoPngFile);
-                }
-                byte[] codes = QrCodeGenerator.bufferedImageToByteArray(bufferedImage, "JPG");
+                byte[] codes = QrCodeUtil.genQrCode(vo.code);
                 vo.imgBase64 = "data:image/jpeg;base64," + Base64.encode(codes);
                 list.add(vo) ;
             }
@@ -72,29 +59,16 @@
     @GetMapping(path = "download")
     public void download(HttpServletResponse response){
         try{
-            // 杩欓噷娉ㄦ剰 鏈夊悓瀛﹀弽搴斾娇鐢╯wagger 浼氬鑷村悇绉嶉棶棰橈紝璇风洿鎺ョ敤娴忚鍣ㄦ垨鑰呯敤postman
-            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-            response.setCharacterEncoding("utf-8");
-            // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
-            String fileName = URLEncoder.encode(MarkQrCodeCtrl.fileName, "UTF-8").replaceAll("\\+", "%20");
-            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
-
-            List<ExcelVo> list = new ArrayList<>() ;
-            Resource resource = new ClassPathResource("/images/logo.png");
-            File logoPngFile = resource.getFile() ;
+            List<Converter> list = new ArrayList<>() ;
             String[][] marks = QrCodeConstant.Marks() ;
             for(String[] mark : marks){
                 ExcelVo vo = new ExcelVo() ;
                 vo.code = mark[0] ;
                 vo.name = mark[1] ;
-                BufferedImage bufferedImage = QrCodeGenerator.toBufferedImage(QrCodeGenerator.createBitMatrix(vo.code, QrCodeConstant.MarkQrCodeWidth, QrCodeConstant.MarkQrCodeHeight));
-                if(logoPngFile != null && logoPngFile.exists()){
-                    bufferedImage = QrCodeGenerator.addQrCodeLogo(bufferedImage, logoPngFile);
-                }
-                vo.image = QrCodeGenerator.bufferedImageToByteArray(bufferedImage, "JPG");
+                vo.image = QrCodeUtil.genQrCode(vo.code);
                 list.add(vo) ;
             }
-            EasyExcel.write(response.getOutputStream(), ExcelVo.class).sheet(MarkQrCodeCtrl.sheetName).doWrite(list);
+            QrCodeUtil.downloadExcel(response, fileName, sheetName, list);
         }catch (Exception e){
             log.error("涓嬭浇鏍囪瘑绫讳簩缁寸爜鏃跺紓甯�", e);
         }

--
Gitblit v1.8.0