Jelajahi Sumber

导出划分

cr 1 bulan lalu
induk
melakukan
a720672f30

+ 10 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -94,6 +94,7 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.net.URLEncoder;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
@@ -4566,13 +4567,21 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         workbook.close();
 
         ByteArrayResource resource = new ByteArrayResource(outputStream.toByteArray());
+
+
+        // 对中文文件名进行URL编码
+        String filename = "划分导出(请勿修改隐藏列).xlsx";
+        String encodedFilename = URLEncoder.encode(filename, "UTF-8")
+                .replaceAll("\\+", "%20"); // 替换+号为%20,确保兼容性
+
         return ResponseEntity.ok()
-                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=划分.xlsx")
+                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedFilename + "\"; filename*=utf-8''" + encodedFilename)
                 .contentType(MediaType.APPLICATION_OCTET_STREAM)
                 .contentLength(resource.contentLength())
                 .body(resource);
     }
 
+
     // 列映射关系:pkeyId列 -> 划分编码列
     private static final Map<Integer, Integer> COLUMN_MAPPING = new HashMap<>();