From 2d3b575ed96eee7ccd5b324baa3135d2236934ac Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 13 十一月 2026 16:39:37 +0800
Subject: [PATCH] 【市一】1、登录服务问题处理 2、电话挂断问题处理 3、查询报错问题处理

---
 ruoyi-common/src/main/java/com/ruoyi/common/aspectj/SetOrgIdAspect.java |   44 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/aspectj/SetOrgIdAspect.java b/ruoyi-common/src/main/java/com/ruoyi/common/aspectj/SetOrgIdAspect.java
index 354ceeb..8fb88bc 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/aspectj/SetOrgIdAspect.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/aspectj/SetOrgIdAspect.java
@@ -2,13 +2,16 @@
 
 import com.ruoyi.common.annotation.AddOrgId;
 import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.service.IConfigService;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.lang.reflect.Field;
@@ -25,6 +28,9 @@
 {
     private static final Logger log = LoggerFactory.getLogger(SetOrgIdAspect.class);
 
+    @Autowired
+    private IConfigService sysConfigService;
+
     @Before("@annotation(setOrgId)")
     public void setOrgId(JoinPoint joinPoint, AddOrgId setOrgId) throws Throwable
     {
@@ -36,6 +42,21 @@
             {
                 String orgid = loginUser.getUser().getOrgid();
                 String campusid = loginUser.getUser().getCampusid();
+                boolean allCampusUser = false;
+                //鏄剧ず鎵�鏈夐櫌鍖烘潈闄�
+                String allCampus = sysConfigService.selectConfigByKey("sys.authority.campus.all");
+                if (StringUtils.isNotEmpty(allCampus)) {
+                    String userName = loginUser.getUser().getUserName();
+                    if (StringUtils.isNotEmpty(userName)) {
+                        for (String item : allCampus.split("[,锛�;锛沑\s]+")) {
+                            if (userName.equals(item.trim())) {
+                                campusid = null;
+                                allCampusUser = true;
+                                break;
+                            }
+                        }
+                    }
+                }
                 
                 // 鑾峰彇鏂规硶鍙傛暟
                 Object[] args = joinPoint.getArgs();
@@ -62,17 +83,22 @@
                         }
                         
                         // 濡傛灉闇�瑕佸悓鏃惰缃甤ampusid
-                        if (setOrgId.withCampusId() && campusid != null)
+                        if (setOrgId.withCampusId())
                         {
                             String campusFieldName = setOrgId.campusField();
-                            
-                            // 妫�鏌ュ瓧娈垫槸鍚﹀凡缁忔湁鍊硷紝濡傛灉鏈変笖skipIfPresent涓簍rue锛屽垯璺宠繃璁剧疆
-                            Object currentValueCampus = getFieldValue(param, campusFieldName);
-                            if (setOrgId.skipIfPresent() && currentValueCampus != null && !currentValueCampus.toString().isEmpty()) {
-                                // 濡傛灉瀛楁宸茬粡鏈夊�间笖skipIfPresent涓簍rue锛屽垯璺宠繃璁剧疆
-                                log.debug("瀛楁 {} 宸叉湁鍊�: {}锛岃烦杩囪缃�", campusFieldName, currentValueCampus);
-                            } else {
-                                setFieldValue(param, campusFieldName, campusid);
+                            if (allCampusUser) {
+                                // 鍏ㄩ櫌鍖烘潈闄愬繀椤昏鐩栬姹傞噷鍙兘甯﹁繘鏉ョ殑 campusid锛�
+                                // 鍚﹀垯鍓嶇浼� campusid=8 浼氶噸鏂版妸闄㈠尯鏉′欢鍔犲洖鍘汇��
+                                setFieldValue(param, campusFieldName, null);
+                            } else if (campusid != null) {
+                                // 妫�鏌ュ瓧娈垫槸鍚﹀凡缁忔湁鍊硷紝濡傛灉鏈変笖skipIfPresent涓簍rue锛屽垯璺宠繃璁剧疆
+                                Object currentValueCampus = getFieldValue(param, campusFieldName);
+                                if (setOrgId.skipIfPresent() && currentValueCampus != null && !currentValueCampus.toString().isEmpty()) {
+                                    // 濡傛灉瀛楁宸茬粡鏈夊�间笖skipIfPresent涓簍rue锛屽垯璺宠繃璁剧疆
+                                    log.debug("瀛楁 {} 宸叉湁鍊�: {}锛岃烦杩囪缃�", campusFieldName, currentValueCampus);
+                                } else {
+                                    setFieldValue(param, campusFieldName, campusid);
+                                }
                             }
                         }
                     }

--
Gitblit v1.9.3