From 54bbbd62a3298e0671f8dd7aba0763775a4f733c Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期二, 27 十月 2026 13:14:02 +0800
Subject: [PATCH] fix(首页): 应收应付统计对 null 金额做保护,避免 BigDecimal.add(null) 抛 NPE 导致首页报“系统未知错误”

---
 src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java b/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
index d8b2b69..f6b13da 100644
--- a/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
+++ b/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
@@ -9,6 +9,7 @@
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
 
 import java.util.Set;
 
@@ -17,12 +18,26 @@
 
     @Override
     public Expression getTenantId() {
-        Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
-        return new LongValue(tenantId);
+        try {
+            Long tenantId = SecurityUtils.getLoginUser().getTenantId();
+            return new LongValue(tenantId);
+        } catch (Exception e) {
+            return null;
+        }
     }
+
+    /**
+     * 绾跨▼绾т复鏃跺拷鐣ュ紑鍏筹細鏌愪簺 insert 鍦烘櫙涓� jsqlparser 瑙f瀽浼氭姏
+     * ClassCastException: SetOperationList cannot be cast to PlainSelect锛�
+     * 鍙湪璇ョ嚎绋嬪唴涓存椂璺宠繃绉熸埛鎻掍欢锛坱enant_id 鐢� MybatisHandler 鑷姩濉厖淇濊瘉锛夈��
+     */
+    public static final ThreadLocal<Boolean> TEMP_IGNORE = new ThreadLocal<>();
 
     @Override
     public boolean ignoreTable(String tableName) {
+        if (Boolean.TRUE.equals(TEMP_IGNORE.get())) {
+            return true;
+        }
         // 鎸囧畾涓嶉渶瑕佹坊鍔犺繃婊ゆ潯浠剁殑琛�
         Set<String> ignoreTables = IgnoreTableConfig.IGNORE_TABLES;
         return ignoreTables.contains(tableName);

--
Gitblit v1.9.3