From cad7a5518224ca88e8a11eba7d8a1dd92f160d42 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 14 十月 2026 14:42:41 +0800
Subject: [PATCH] 【丽水】patItemCount 随访系统内,登录时如该用户有超时任务,弹窗提醒用户,超时任务条数,去完成(查询条件为待随访-超时)
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 84 ++++++++++++++++++++++++++---------------
1 files changed, 53 insertions(+), 31 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 1c28e14..694c7bd 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
@@ -4,15 +4,18 @@
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.entity.*;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.TreeUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.common.core.service.IUserExtInfoService;
import com.ruoyi.system.mapper.SysUserDeptMapper;
@@ -44,6 +47,9 @@
@Autowired
private SysUserMapper userMapper;
+
+ @Autowired
+ private ISysDeptService sysDeptService;
@Autowired
private SysDeptMapper sysDeptMapper;
@@ -133,19 +139,20 @@
SysUserDept sysUserDept = new SysUserDept();
sysUserDept.setUserId(sysUser.getUserId());
sysUserDept.setDeptType(sysUser.getSearchscope());
+ sysUserDept.setOrgid(sysUser.getOrgid());
List<SysUserDept> sysUserDeptKSs = null;
List<SysUserDept> sysUserDeptBQs = null;
if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) {
sysUserDept.setDeptType("1");
- sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+ sysUserDeptKSs = selectLeafSysDeptList(sysUserDept);
sysUserDept.setDeptType("2");
- sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+ sysUserDeptBQs = selectLeafSysDeptList(sysUserDept);
} else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) {
sysUserDept.setDeptType("1");
- sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+ sysUserDeptKSs = selectLeafSysDeptList(sysUserDept);
} else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) {
sysUserDept.setDeptType("2");
- sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+ sysUserDeptBQs = selectLeafSysDeptList(sysUserDept);
}
sysUser.setDepts(deptIds);
@@ -181,14 +188,16 @@
String[] split = userName.split("&");
SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1], null);
if (Objects.isNull(sysUser)) return sysUser;
+ //杩欓噷鍙崱鐢ㄦ埛绫诲瀷涓衡�滄偅鑰呪�濈殑
+ 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]);
IUserExtInfoService userExtInfoService = SpringUtils.getBean(IUserExtInfoService.class);
Executor executor = SpringUtils.getBean("threadPoolTaskExecutor");
// === 骞惰鏌ヨ: 鐢ㄦ埛鏈烘瀯淇℃伅 + 閮ㄩ棬鍒楄〃 ===
- CompletableFuture<Map<String, String>> orgInfoFuture = CompletableFuture.supplyAsync(() ->
- userExtInfoService.getUserOrgInfo(sysUser.getUserId().toString(), split[1], split[2]), executor);
+ CompletableFuture<Map<String, String>> orgInfoFuture = CompletableFuture.supplyAsync(() -> userExtInfoService.getUserOrgInfo(sysUser.getUserId().toString(), split[1], split[2]), executor);
CompletableFuture<List<SysDept>> deptsFuture;
if (isAdmin) {
@@ -237,8 +246,8 @@
SysDept deptBQ = new SysDept();
deptBQ.setOrgid(split[1]);
deptBQ.setDeptType("2");
- CompletableFuture<List<SysDept>> ksFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(deptKS), executor);
- CompletableFuture<List<SysDept>> bqFuture = CompletableFuture.supplyAsync(() -> sysDeptMapper.selectDeptList(deptBQ), executor);
+ 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));
@@ -255,8 +264,8 @@
queryBQ.setUserId(sysUser.getUserId());
queryBQ.setDeptType("2");
queryBQ.setOrgid(split[1]);
- CompletableFuture<List<SysUserDept>> ksFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectSysUserDeptList(queryKS), executor);
- CompletableFuture<List<SysUserDept>> bqFuture = CompletableFuture.supplyAsync(() -> sysUserDeptMapper.selectSysUserDeptList(queryBQ), executor);
+ CompletableFuture<List<SysUserDept>> ksFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptList(queryKS), executor);
+ CompletableFuture<List<SysUserDept>> bqFuture = CompletableFuture.supplyAsync(() -> selectLeafSysDeptList(queryBQ), executor);
try {
sysUserDeptKSs = ksFuture.get(5, TimeUnit.SECONDS);
sysUserDeptBQs = bqFuture.get(5, TimeUnit.SECONDS);
@@ -269,13 +278,13 @@
queryKS.setUserId(sysUser.getUserId());
queryKS.setDeptType("1");
queryKS.setOrgid(split[1]);
- sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(queryKS);
+ sysUserDeptKSs = selectLeafSysDeptList(queryKS);
} else if ("2".equals(sysUser.getSearchscope())) {
SysUserDept queryBQ = new SysUserDept();
queryBQ.setUserId(sysUser.getUserId());
queryBQ.setDeptType("2");
queryBQ.setOrgid(split[1]);
- sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(queryBQ);
+ sysUserDeptBQs = selectLeafSysDeptList(queryBQ);
}
}
@@ -340,10 +349,7 @@
//鑾峰彇褰撳墠鐧婚檰浜虹殑鏈烘瀯鍜岄櫌锟�?
IUserExtInfoService userExtInfoService2 = SpringUtils.getBean(IUserExtInfoService.class);
- Map<String, String> userOrgInfo2 = userExtInfoService2.getUserOrgInfo(
- sysUser.getUserId().toString(),
- split[1],
- split[3]);
+ Map<String, String> userOrgInfo2 = userExtInfoService2.getUserOrgInfo(sysUser.getUserId().toString(), split[1], split[3]);
if (!userOrgInfo2.isEmpty()) {
sysUser.setOrgid(userOrgInfo2.get("orgid"));
sysUser.setCampusid(userOrgInfo2.get("campusid"));
@@ -374,20 +380,20 @@
sysUserDept.setUserId(null);
}
sysUserDept.setDeptType("1");
- sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+ sysUserDeptKSs = selectLeafSysDeptList(sysUserDept);
sysUserDept.setDeptType("2");
- sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
+ sysUserDeptBQs = selectLeafSysDeptList(sysUserDept);
//濡傛灉鏄痑dmin锛岄渶瑕佸sysUserDeptBQs锛宻ysUserDeptBQs鍘婚噸
if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
//濡傛灉鏄痑dmin锛屽彧鑳藉幓sys_dept鍘诲彇鏁版嵁
SysDept dept = new SysDept();
dept.setOrgid(split[1]);
dept.setDeptType("1");
- sysDepts = sysDeptMapper.selectDeptList(dept);
+ sysDepts = selectLeafSysDeptForAdmin(dept);
sysUserDeptKSs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class);
dept.setDeptType("2");
- sysDepts = sysDeptMapper.selectDeptList(dept);
+ sysDepts = selectLeafSysDeptForAdmin(dept);
sysUserDeptBQs = DtoConversionUtils.sourceToTarget(sysDepts, SysUserDept.class);
List<SysUserDept> distinctUserDepts = new ArrayList<>();
@@ -709,6 +715,12 @@
// sysUserDeptMapper.insertSysUserDept(sysUserDep);
// }
// }
+ //鍒犻櫎鍘熸湁鍏崇郴
+ SysUserDept delSysUserDept = new SysUserDept();
+ delSysUserDept.setUserId(user.getUserId());
+ delSysUserDept.setOrgid(user.getOrgid());
+ sysUserDeptMapper.deleteSysUserDeptByUserId(delSysUserDept);
+
if (!CollectionUtils.isEmpty(user.getDeptCodes())) {
for (String deptCode : user.getDeptCodes()) {
SysDept sysDept = sysDeptMapper.selectDeptByCode("1", user.getOrgid(), deptCode);
@@ -721,20 +733,15 @@
sysUserDept.setOrgid(user.getOrgid());
sysUserDept.setDeptCode(deptCode);
sysUserDept.setDeptId(sysDept.getDeptId());
- List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
sysUserDept.setDelFlag(0L);
sysUserDept.setDeptType("1");
sysUserDept.setDeptName(sysDept.getDeptName());
sysUserDept.setUpdateTime(new Date());
- if (!CollectionUtils.isEmpty(sysUserDepts)) {
- sysUserDept.setId(sysUserDepts.get(0).getId());
- sysUserDeptMapper.updateSysUserDept(sysUserDept);
- continue;
- }
sysUserDept.setCreateTime(new Date());
sysUserDeptMapper.insertSysUserDept(sysUserDept);
}
}
+
if (!CollectionUtils.isEmpty(user.getWardCodes())) {
for (String wardCode : user.getWardCodes()) {
SysDept sysDept = sysDeptMapper.selectDeptByCode("2", user.getOrgid(), wardCode);
@@ -746,16 +753,11 @@
sysUserDept.setDeptCode(wardCode);
sysUserDept.setDeptId(sysDept.getDeptId());
sysUserDept.setOrgid(user.getOrgid());
- List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
sysUserDept.setDelFlag(0L);
sysUserDept.setDeptType("2");
sysUserDept.setOrgid(user.getOrgid());
sysUserDept.setDeptName(sysDept.getDeptName());
sysUserDept.setUpdateTime(new Date());
- if (!CollectionUtils.isEmpty(sysUserDepts)) {
- sysUserDeptMapper.updateSysUserDept(sysUserDept);
- continue;
- }
sysUserDept.setCreateTime(new Date());
sysUserDeptMapper.insertSysUserDept(sysUserDept);
}
@@ -976,4 +978,24 @@
}
return successMsg.toString();
}
+
+ public List<SysUserDept> selectLeafSysDeptList(SysUserDept sysUserDept){
+ List<SysDept> list = sysDeptMapper.selectSysDeptListBySysUserDept(sysUserDept);
+ if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)){
+ List<SysDept> tree = TreeUtils.buildDeptTree(list);
+ list = TreeUtils.getLeafDepts(tree);
+ }
+ List<SysUserDept> list1 = DtoConversionUtils.sourceToTarget(list, SysUserDept.class);
+ return list1;
+ }
+
+ 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<SysDept> tree = TreeUtils.buildDeptTree(list);
+ list = TreeUtils.getLeafDepts(tree);
+ }
+ return list;
+ }
}
--
Gitblit v1.9.3