From c4b609f71ddf32d88996ca80a382dfb4befddac3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 17 九月 2026 15:09:08 +0800
Subject: [PATCH] fix(qrcode): 修复二维码生成时临时目录创建和异常处理问题

---
 src/main/java/com/ruoyi/common/utils/MatrixToImageWriter.java                           |   11 ++++++-----
 .claude/settings.local.json                                                             |   33 +++++++++++++++++++++++++++++++++
 src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java |    2 +-
 3 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000..b9ba4dd
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,33 @@
+{
+  "permissions": {
+    "allow": [
+      "mcp__mcp_server_mysql__mysql_query",
+      "Bash(mvn -q compile -DskipTests -o)",
+      "Bash(mvn -q compile -DskipTests)",
+      "Bash(mvn compile *)",
+      "Bash(xargs grep -n \"\\(\\\\\"\")",
+      "mcp__playwright__browser_take_screenshot",
+      "mcp__playwright__browser_evaluate",
+      "mcp__playwright__browser_find",
+      "mcp__playwright__browser_click",
+      "mcp__playwright__browser_navigate",
+      "mcp__playwright__browser_network_requests",
+      "mcp__playwright__browser_network_request",
+      "mcp__playwright__browser_snapshot",
+      "Read(//d/鐗涢┈/鍗楅��/**)",
+      "Read(//d/鐗涢┈/**)",
+      "Bash(echo \"exit=$?\")",
+      "Bash(node -e \"const p=require\\('./package.json'\\);console.log\\(JSON.stringify\\(p.scripts\\)\\)\")",
+      "Bash(npx vite *)",
+      "Bash(echo \"EXIT=$?\")",
+      "Read(//tmp/**)",
+      "Bash(npm install *)",
+      "Bash(node -e \"require.resolve\\('html2canvas'\\) && console.log\\('html2canvas installed:', require\\('html2canvas/package.json'\\).version\\)\")",
+      "Read(//javaWork/product-inventory-management/file/temp/**)",
+      "Read(//d/javaWork/product-inventory-management/file/temp/**)"
+    ]
+  },
+  "enabledMcpjsonServers": [
+    "mysql"
+  ]
+}
diff --git a/src/main/java/com/ruoyi/common/utils/MatrixToImageWriter.java b/src/main/java/com/ruoyi/common/utils/MatrixToImageWriter.java
index ad9f2aa..c598207 100644
--- a/src/main/java/com/ruoyi/common/utils/MatrixToImageWriter.java
+++ b/src/main/java/com/ruoyi/common/utils/MatrixToImageWriter.java
@@ -54,14 +54,15 @@
             hints.put(EncodeHintType.MARGIN, 0);
             BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 400, 400, hints);
             File file1 = new File(path, codeName + "." + imageType);
+            File parent = file1.getParentFile();
+            if (parent != null && !parent.exists() && !parent.mkdirs()) {
+                throw new IOException("涓存椂鐩綍鍒涘缓澶辫触锛�" + parent.getPath());
+            }
             writeToFile(bitMatrix, imageType, file1);
             return file1.getPath();
-        } catch (WriterException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
+        } catch (WriterException | IOException e) {
+            throw new RuntimeException("浜岀淮鐮佺敓鎴愬け璐ワ細" + e.getMessage(), e);
         }
-        throw new RuntimeException("浜岀淮鐮佺敓鎴愬け璐�");
     }
 
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
index bd6f2df..c3116b4 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -229,7 +229,7 @@
         try {
             codePath = new MatrixToImageWriter().code(taskDto.getId().toString(), tempDir);
         } catch (Exception e) {
-            throw new ServiceException("鐢熸垚浜岀淮鐮佸け璐�");
+            throw new ServiceException("鐢熸垚浜岀淮鐮佸け璐ワ細" + e.getMessage());
         }
 
         List<Map<String, Object>> images = buildTaskAttachmentImages(taskDto.getId());

--
Gitblit v1.9.3