From 8c215c8be0f5076e8c95daf1b2203440ca7dfcad Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 23 十月 2026 13:42:50 +0800
Subject: [PATCH] 修改了报销校验

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java |  112 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 75 insertions(+), 37 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
index a89a649..06dea79 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -216,24 +216,27 @@
     public List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List<SysRole> l = user.getRoles();
-        int b = 0;
+        // 瓒呯骇绠$悊鍛樹笉鍙�"鍙湅鏈汉鎶ラ�� / 鍙湅鏈儴闂�"鐨勬暟鎹寖鍥撮檺鍒讹紝鍙煡鐪嬪叏閮ㄦ暟鎹�
+        if (!isSuperAdmin(user)) {
+            List<SysRole> l = user.getRoles();
+            int b = 0;
 
-        for (SysRole r : l) {
-            if (r.getRoleId().longValue() == 3) {
-                b = 1;
+            for (SysRole r : l) {
+                if (r.getRoleId().longValue() == 3) {
+                    b = 1;
+                }
+                if (r.getRoleId().longValue() == 13) {
+                    b = 2;
+                }
             }
-            if (r.getRoleId().longValue() == 13) {
-                b = 2;
-            }
-        }
-        if (b == 1) {
+            if (b == 1) {
 //            serviceDonatebaseinfo.setCreateBy(user.getUserName());
-            log.info("user.getUserName()鐨勫�间负 ---- 锛歿}", user.getUserName());
-            serviceDonatebaseinfo.setReporterno(user.getUserName());
-        }
-        if (b == 2) {
-            serviceDonatebaseinfo.setDeptid(user.getDeptId());
+                log.info("user.getUserName()鐨勫�间负 ---- 锛歿}", user.getUserName());
+                serviceDonatebaseinfo.setReporterno(user.getUserName());
+            }
+            if (b == 2) {
+                serviceDonatebaseinfo.setDeptid(user.getDeptId());
+            }
         }
         List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
 
@@ -282,23 +285,26 @@
     public List<ServiceDonatebaseinfo> getPatName(ServiceDonatebaseinfo serviceDonatebaseinfo) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List<SysRole> l = user.getRoles();
-        int b = 0;
+        // 瓒呯骇绠$悊鍛樹笉鍙楁暟鎹寖鍥撮檺鍒讹紝鍙煡鐪嬪叏閮ㄦ暟鎹�
+        if (!isSuperAdmin(user)) {
+            List<SysRole> l = user.getRoles();
+            int b = 0;
 
-        for (SysRole r : l) {
-            if (r.getRoleId().longValue() == 3) {
-                b = 1;
+            for (SysRole r : l) {
+                if (r.getRoleId().longValue() == 3) {
+                    b = 1;
+                }
+                if (r.getRoleId().longValue() == 13) {
+                    b = 2;
+                }
             }
-            if (r.getRoleId().longValue() == 13) {
-                b = 2;
+            if (b == 1) {
+                log.info("user.getUserName()鐨勫�间负 ---- 锛歿}", user.getUserName());
+                serviceDonatebaseinfo.setReporterno(user.getUserName());
             }
-        }
-        if (b == 1) {
-            log.info("user.getUserName()鐨勫�间负 ---- 锛歿}", user.getUserName());
-            serviceDonatebaseinfo.setReporterno(user.getUserName());
-        }
-        if (b == 2) {
-            serviceDonatebaseinfo.setDeptid(user.getDeptId());
+            if (b == 2) {
+                serviceDonatebaseinfo.setDeptid(user.getDeptId());
+            }
         }
         List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getPatName(serviceDonatebaseinfo);
 
@@ -308,15 +314,18 @@
     @Override
     public List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List<SysRole> l = user.getRoles();
-        Boolean b = false;
-        for (SysRole r : l) {
-            if (r.getRoleId().longValue() == 3) {
-                b = true;
+        // 瓒呯骇绠$悊鍛樹笉鍙楁暟鎹寖鍥撮檺鍒讹紝鍙煡鐪嬪叏閮ㄦ暟鎹�
+        if (!isSuperAdmin(user)) {
+            List<SysRole> l = user.getRoles();
+            Boolean b = false;
+            for (SysRole r : l) {
+                if (r.getRoleId().longValue() == 3) {
+                    b = true;
+                }
             }
-        }
-        if (b) {
-            serviceDonatebaseinfo.setCreateBy(user.getUserName());
+            if (b) {
+                serviceDonatebaseinfo.setCreateBy(user.getUserName());
+            }
         }
 
         return serviceDonatebaseinfoMapper.listForSearch(serviceDonatebaseinfo);
@@ -581,4 +590,33 @@
         //灏嗘暟鎹皝闂紝骞惰繑鍥�
         return map;
     }
+
+    /**
+     * 鏄惁瓒呯骇绠$悊鍛樸��
+     *
+     * <p>鍒ゅ畾涓鸿秴绾х鐞嗗憳鐨勬儏褰細
+     * <ul>
+     *   <li>鍐呯疆绠$悊鍛樿处鍙凤紙userId = 1锛夛紱</li>
+     *   <li>璐﹀彿琚巿浜�"瓒呯骇绠$悊鍛�"瑙掕壊锛坮oleId = 1锛夈��</li>
+     * </ul>
+     * 瓒呯骇绠$悊鍛樹笉鍙�"鍙湅鏈汉鎶ラ�侊紙瑙掕壊3 涓撹亴浜哄憳锛�/ 鍙湅鏈儴闂紙瑙掕壊13 涓氬姟缁勯暱锛�"鐨勬暟鎹寖鍥撮檺鍒讹紝
+     * 鍙煡鐪嬪叏閮ㄦ暟鎹��
+     */
+    private boolean isSuperAdmin(SysUser user) {
+        if (user == null) {
+            return false;
+        }
+        if (SysUser.isAdmin(user.getUserId())) {
+            return true;
+        }
+        List<SysRole> roles = user.getRoles();
+        if (roles != null) {
+            for (SysRole role : roles) {
+                if (role.getRoleId() != null && role.getRoleId().longValue() == 1L) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
 }

--
Gitblit v1.9.3