From 8f101c80208bf1d5aaa4892bd26102d1f10ff2bd Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期五, 16 十月 2026 14:23:35 +0800
Subject: [PATCH] 修复设备模块导出报 TemplateRenderPolicy render error (500):签名图片缺失时用透明图兜底
---
inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java b/inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java
index 4ea9c59..c6d3d03 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java
@@ -11,6 +11,8 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
+import java.util.Base64;
+
/**
* Author: yuan
* Date: 2024-12-17 鏄熸湡浜� 10:35:50
@@ -87,4 +89,48 @@
}
return StringUtils.isNotBlank(userSignatureUrl) ? Pictures.ofLocal(imgUrl + "/" + userSignatureUrl).create() : null;
}
+
+ /**
+ * 鍏ㄩ�忔槑 1x1 PNG, 绛惧悕鏈厤缃�/绛惧悕鏂囦欢缂哄け鏃剁殑鍏滃簳鍥剧墖
+ */
+ private static final byte[] TRANSPARENT_PNG = Base64.getDecoder().decode(
+ "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAANSURBVBhXY2BgYGAAAAAFAAGKM+MAAAAAAElFTkSuQmCC");
+
+ /**
+ * 鍥剧墖鍊煎厹搴�: null 鎴栨湰鍦板浘鐗囪鍙栧け璐�(濡傜鍚嶆枃浠剁己澶�)鏃惰繑鍥為�忔槑鍥剧墖
+ */
+ public static PictureRenderData orTransparentPicture(PictureRenderData picture) {
+ if (picture != null) {
+ try {
+ byte[] data = picture.readPictureData();
+ if (data != null && data.length > 0) {
+ return picture;
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ return Pictures.ofBytes(TRANSPARENT_PNG).create();
+ }
+
+ /**
+ * 娓叉煋Word鐢ㄦ埛绛惧悕瀵硅薄(鎸変汉鍛榠d, 甯﹀厹搴�): 浜哄憳涓嶅瓨鍦ㄦ垨绛惧悕鏈厤缃�/鏂囦欢缂哄け鏃惰繑鍥為�忔槑鍥剧墖, 涓嶆姏閿�
+ */
+ public static PictureRenderData getFinalUserSignatureOrTransparent(Integer userId) {
+ try {
+ return orTransparentPicture(getFinalUserSignatureUrl(userId));
+ } catch (Exception e) {
+ return Pictures.ofBytes(TRANSPARENT_PNG).create();
+ }
+ }
+
+ /**
+ * 娓叉煋Word鐢ㄦ埛绛惧悕瀵硅薄(鎸変汉鍛樺鍚�, 甯﹀厹搴�): 浜哄憳涓嶅瓨鍦ㄦ垨绛惧悕鏈厤缃�/鏂囦欢缂哄け鏃惰繑鍥為�忔槑鍥剧墖, 涓嶆姏閿�
+ */
+ public static PictureRenderData getFinalUserSignatureOrTransparent(String userName) {
+ try {
+ return orTransparentPicture(getFinalUserSignatureUrl(userName));
+ } catch (Exception e) {
+ return Pictures.ofBytes(TRANSPARENT_PNG).create();
+ }
+ }
}
--
Gitblit v1.9.3