From a7cf1913c376b53f487f0ef8dfff084c5bc010a7 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 17 十月 2026 11:19:12 +0800
Subject: [PATCH] feat(mes): 支持二维码导出任务的分段下载功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/qrcode/QrCodeImageUtils.java | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/qrcode/QrCodeImageUtils.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/qrcode/QrCodeImageUtils.java
index 93bb1d1..9a30eb5 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/qrcode/QrCodeImageUtils.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/qrcode/QrCodeImageUtils.java
@@ -9,6 +9,9 @@
import lombok.extern.slf4j.Slf4j;
import javax.imageio.ImageIO;
+import javax.imageio.ImageWriter;
+import javax.imageio.stream.ImageOutputStream;
+import javax.imageio.stream.MemoryCacheImageOutputStream;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
@@ -17,6 +20,7 @@
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.io.FilterOutputStream;
import java.util.List;
import java.util.Set;
import java.util.zip.ZipEntry;
@@ -138,8 +142,24 @@
public static void writeZipEntry(ZipOutputStream zip, QrLabelInfo label) throws IOException {
BufferedImage image = createQrLabel(label.getCode(), label.getFileName());
zip.putNextEntry(new ZipEntry(label.getFileName() + ".png"));
- ImageIO.write(image, "png", zip);
- zip.closeEntry();
+ try {
+ // ImageIO.write(OutputStream) 鍙兘涓烘瘡寮犲浘鐗囧垱寤虹鐩樼紦瀛橈紱澶ф壒閲忓鍑烘敼鐢ㄥ唴瀛樼紦瀛樸��
+ // 鍖呰娴佺殑 close 浠� flush锛屼笉鑳藉叧闂灞� ZIP銆�
+ ImageWriter writer = ImageIO.getImageWritersByFormatName("png").next();
+ try (ImageOutputStream imageOut = new MemoryCacheImageOutputStream(new FilterOutputStream(zip) {
+ @Override
+ public void close() throws IOException {
+ flush();
+ }
+ })) {
+ writer.setOutput(imageOut);
+ writer.write(image);
+ } finally {
+ writer.dispose();
+ }
+ } finally {
+ zip.closeEntry();
+ }
}
// ==================== 绉佹湁鏂规硶 ====================
--
Gitblit v1.9.3