From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java
new file mode 100644
index 0000000..2c92a36
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java
@@ -0,0 +1,92 @@
+package org.jeecg.modules.tms.utils;
+
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.MultiFormatWriter;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.QRCodeWriter;
+import liquibase.pro.packaged.S;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.print.*;
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+import java.awt.print.*;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
+import java.util.*;
+
+@RestController
+@RequestMapping("/tms/qyCode")
+@Slf4j
+public class QrCodePrinterUtils{
+
+    @GetMapping("/generate")
+    public Result<Map<String, String>> generateQrCode() throws Exception {
+        String content = "Q201204330002-0001";
+        // 鐢熸垚浜岀淮鐮佸浘鐗囷紙Base64锛�
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        generateQRCodeImage(content, 200, 200, os);
+        String base64Img = "data:image/png;base64," + Base64.getEncoder().encodeToString(os.toByteArray());
+
+        // 杩斿洖缁撴灉
+        Map<String, String> result = new HashMap<>();
+        result.put("image", base64Img);
+        result.put("content", content);
+        return Result.OK(result);
+    }
+
+    public static void generateQRCodeImage(String text, int width, int height, OutputStream os) throws Exception {
+        QRCodeWriter qrCodeWriter = new QRCodeWriter();
+        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
+        MatrixToImageWriter.writeToStream(bitMatrix, "PNG", os);
+    }
+
+    public static String generateBacthQRCode(String content, int width, int height) {
+        try {
+            Map<EncodeHintType, Object> hints = new HashMap<>();
+            hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
+            hints.put(EncodeHintType.MARGIN, 1);
+
+            BitMatrix matrix = new MultiFormatWriter().encode(
+                    content,
+                    BarcodeFormat.QR_CODE,
+                    width,
+                    height,
+                    hints
+            );
+
+            ByteArrayOutputStream os = new ByteArrayOutputStream();
+            MatrixToImageWriter.writeToStream(matrix, "PNG", os);
+
+            return "data:image/png;base64," +
+                    Base64.getEncoder().encodeToString(os.toByteArray());
+        } catch (Exception e) {
+            throw new RuntimeException("鐢熸垚浜岀淮鐮佸け璐�", e);
+        }
+    }
+
+    @GetMapping("/batchGenerate")
+    public Result<List<Map<String,String>>> generateBatchQrCode(){
+        List<Map<String,String>> results = new ArrayList<>();
+        List<String> contentList = new ArrayList<>();
+        contentList.add("Q201204330002-0001");
+        contentList.add("Q201204330002-0002");
+        contentList.add("Q201204330002-0003");
+        for(String content : contentList){
+            Map<String,String> result = new HashMap<>();
+            result.put("content",content);
+            result.put("image",generateBacthQRCode(content, 200, 200));
+            // 鐢熸垚浜岀淮鐮佸浘鐗囷紙Base64锛�
+            results.add(result);
+        }
+        return Result.OK(results);
+    }
+}

--
Gitblit v1.9.3