|
@@ -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<>();
|
|
|
|