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 |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java b/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
index 031f614..f6b13da 100644
--- a/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
+++ b/src/main/java/com/ruoyi/common/handler/CustomTenantLineHandler.java
@@ -19,15 +19,25 @@
     @Override
     public Expression getTenantId() {
         try {
-            Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
+            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