From 3d047130b059efd46f56be37465a751ab16ee8cb Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 十一月 2026 14:06:56 +0800
Subject: [PATCH] Merge branch 'smartor_ls_merge' into 20261111-妇幼档案随访
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 45 +++++++++++++++++++++++++++++++++------------
1 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 29b434b..f8a826b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -146,7 +146,10 @@
deptIds.add(sysDept.getDeptId());
}
SysUserDept sysUserDept = new SysUserDept();
- sysUserDept.setUserId(sysUser.getUserId());
+ // 绠$悊鍛橈細涓嶆寜鐢ㄦ埛杩囨护锛坰ys_user_dept 閲屾病鏈� admin 鐨勬暟鎹級锛岀洿鎺ュ彇鏈満鏋勫叏閮ㄧ瀹�/鐥呭尯
+ if (!isAdminUser(sysUser)) {
+ sysUserDept.setUserId(sysUser.getUserId());
+ }
sysUserDept.setDeptType(sysUser.getSearchscope());
sysUserDept.setOrgid(sysUser.getOrgid());
List<SysUserDept> sysUserDeptKSs = null;
@@ -201,7 +204,7 @@
if (sysUser.getUserType().equals("鎮h��") && StringUtils.isNotEmpty(split[3]) && !split[3].equals("null") && !sysUser.getUserType().equals(split[3].trim()))
throw new BaseException("褰撳墠鐢ㄦ埛绫诲瀷涓庣櫥褰曠敤鎴风被鍨嬩笉涓�鑷�");
- boolean isAdmin = StringUtils.isNotEmpty(split[0]) && "admin".equals(split[0]);
+ boolean isAdmin = isAdminUser(sysUser);
IUserExtInfoService userExtInfoService = SpringUtils.getBean(IUserExtInfoService.class);
Executor executor = SpringUtils.getBean("threadPoolTaskExecutor");
@@ -220,7 +223,7 @@
// 绛夊緟鏈烘瀯淇℃伅
Map<String, String> userOrgInfo = new HashMap<>();
try {
- userOrgInfo = orgInfoFuture.get(5, TimeUnit.SECONDS);
+ userOrgInfo = orgInfoFuture.get(50, TimeUnit.SECONDS);
} catch (Exception e) {
log.warn("鑾峰彇鐢ㄦ埛鏈烘瀯淇℃伅瓒呮椂鎴栧紓甯�", e);
}
@@ -258,8 +261,8 @@
CompletableFuture<List<SysDept>> ksFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptForAdmin(deptKS), executor);
CompletableFuture<List<SysDept>> bqFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptForAdmin(deptBQ), executor);
try {
- sysUserDeptKSs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(ksFuture.get(5, TimeUnit.SECONDS), SysUserDept.class));
- sysUserDeptBQs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(bqFuture.get(5, TimeUnit.SECONDS), SysUserDept.class));
+ sysUserDeptKSs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(ksFuture.get(50, TimeUnit.SECONDS), SysUserDept.class));
+ sysUserDeptBQs = distinctByDeptCode(DtoConversionUtils.sourceToTarget(bqFuture.get(50, TimeUnit.SECONDS), SysUserDept.class));
} catch (Exception e) {
log.warn("鑾峰彇admin绉戝/鐥呭尯淇℃伅瓒呮椂鎴栧紓甯�", e);
}
@@ -358,6 +361,23 @@
log.warn("鑾峰彇婊℃剰搴﹀垎绫诲け璐ワ紝宸查檷绾т负绌虹粨鏋滐紙涓嶅奖鍝嶇櫥褰曪級銆俹rgid={}", orgid, e);
return Collections.emptyMap();
}
+ }
+
+ /**
+ * 鏄惁绠$悊鍛橈細璐﹀彿鍚嶄负 admin锛屾垨鐢ㄦ埛ID鍛戒腑閰嶇疆椤� isAdmin銆�
+ * <p>
+ * 绠$悊鍛樺彇绉戝/鐥呭尯鏃朵笉鎸� sys_user_dept 杩囨护鈥斺�擧IS 閲囬泦鍐欒琛ㄦ椂鏄庣‘鎺掗櫎浜� admin
+ * 锛圕ollectHISMapper 鐨� yhyksxx/yhybfxx 閮芥湁 {@code ud.user_id != 'admin'}锛夛紝
+ * 璧板叧鑱旀煡璇細寰楀埌绌哄垪琛紝琛ㄧ幇涓恒�岀櫥褰曟垚鍔熶絾鍒涘缓浠诲姟鏃堕�変笉鍒扮瀹ょ梾鍖恒�嶃��
+ */
+ private boolean isAdminUser(SysUser sysUser) {
+ if (sysUser == null) {
+ return false;
+ }
+ if ("admin".equalsIgnoreCase(sysUser.getUserName())) {
+ return true;
+ }
+ return sysUser.getUserId() != null && isAdmin != null && isAdmin.contains(sysUser.getUserId());
}
/**
@@ -1022,8 +1042,11 @@
public List<SysUserDept> selectLeafSysDeptList(SysUserDept sysUserDept){
List<SysDept> list = sysDeptMapper.selectSysDeptListBySysUserDept(sysUserDept);
- if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){
- list = TreeUtils.getLeafDepts(list);
+ // userId 涓虹┖ = 绠$悊鍛樺彇鏈満鏋勫叏閲忥細瑕併�屾墍鏈夌瀹ょ梾鍖恒�嶏紝涓嶈兘鍐嶆寜鍙跺瓙鑺傜偣杩囨护
+ if (sysUserDept == null || sysUserDept.getUserId() != null) {
+ if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){
+ list = TreeUtils.getLeafDepts(list);
+ }
}
List<SysUserDept> list1 = DtoConversionUtils.sourceToTarget(list, SysUserDept.class);
return list1;
@@ -1031,11 +1054,9 @@
public List<SysDept> selectLeafSysDeptForAdmin(SysDept sysDept){
SysUserDept sysUserDept = DtoConversionUtils.sourceToTarget(sysDept, SysUserDept.class);
- List<SysDept> list = sysDeptMapper.selectSysDeptListBySysUserDept(sysUserDept);
- if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){
- list = TreeUtils.getLeafDepts(list);
- }
- return list;
+ // 绠$悊鍛樺垎鏀細sysUserDept 涓嶅甫 userId锛宮apper 浼氱洿鎺ユ煡 sys_dept锛堜笉鍏宠仈 sys_user_dept锛夛紝
+ // 杩斿洖鏈満鏋勫叏閮ㄧ瀹�/鐥呭尯锛涜繖閲屼笉鍐嶅仛鍙跺瓙杩囨护锛屽惁鍒欍�屾墍鏈夌瀹ょ梾鍖恒�嶄細琚爫鎺夌埗绾ч儴闂ㄣ��
+ return sysDeptMapper.selectSysDeptListBySysUserDept(sysUserDept);
}
/**
--
Gitblit v1.9.3