From 79e81a02076cdd1e828eb06029cd51eb37522f42 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 18 九月 2025 09:11:37 +0800
Subject: [PATCH] 首页下载问题修复
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 1 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java
index 3ec3f9a..7da3d7f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java
@@ -1,15 +1,33 @@
package org.springblade.mdm.basesetting.producedivision.service;
+import com.alibaba.nacos.common.utils.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmDept;
+import org.springblade.mdm.basesetting.producedivision.entity.MdmRole;
import org.springblade.mdm.basesetting.producedivision.entity.MdmUser;
import org.springblade.mdm.basesetting.producedivision.mapper.MdmUserMapper;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNodeVO;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
@Service
public class MdmUserService extends ServiceImpl<MdmUserMapper, MdmUser> {
-
+ @Autowired
+ private ParamService paramService;
+ @Autowired
+ private MdmRoleService roleService;
+ @Autowired
+ private MdmDeptService deptService;
public Long getUserIdByName(String name) {
List<MdmUser> users = this.lambdaQuery().eq(MdmUser::getName, name).eq(MdmUser::getStatus, 1).orderByDesc(MdmUser::getCreateTime).list();
Long userId = null;
@@ -19,4 +37,79 @@
return userId;
}
+
+ /**
+ * 鎵�鏈夊鎵圭敤鎴峰垪琛�
+ * @return
+ */
+ public List<MdmUser> listByDeptAndRoleAlias() {
+ List<String> approveRoleAliasList = Func.split(paramService.getApproveRoleAlias(),',');
+ List<MdmUser> approveUserList = userListByRoleAlias(approveRoleAliasList);
+
+ //鏌ヨ绋嬪簭绠$悊鍛樼敤鎴峰垪琛�
+ List<String> managerAliasList = Func.split(paramService.getProgramManagerRoleAlias(),',');
+ List<MdmUser> mgrUserList = userListByRoleAlias(managerAliasList);
+
+ for(MdmUser approveUser : approveUserList) {
+ for(MdmUser manager : mgrUserList) {
+ if(approveUser.getId().equals(manager.getId())) {
+ approveUser.setManager(true);
+ break;
+ }
+ }
+ }
+ return approveUserList;
+ }
+
+ private List<MdmUser> userListByRoleAlias(List<String> approveRoleAliasList) {
+ List<MdmRole> approveRoles = roleService.listRoleAlias(approveRoleAliasList);
+ List<MdmUser> userList= this.getBaseMapper().selectByRoleIds(approveRoles.stream().map(MdmRole::getId).map(rid -> rid+"").toList());
+ return userList;
+
+ }
+
+ /**
+ * 瀹℃壒鐢ㄦ埛鏍�
+ * @return 鏍硅妭鐐瑰垪琛�
+ */
+ public List<ProgramNodeVO> flowUserTree() {
+ List<ProgramNodeVO> rootNodeVOS = new ArrayList<>();
+ List<MdmUser> users = listByDeptAndRoleAlias();
+ Map<String,List<MdmUser>> userMap = users.stream().collect(Collectors.groupingBy(MdmUser::getDeptId));
+
+ List<Long> deptIds = new ArrayList<>();
+ userMap.keySet().stream().forEach(deptId -> {
+ deptIds.addAll(Func.toLongList(deptId));
+ });
+
+ List<MdmDept> deptList = deptService.lambdaQuery().in(MdmDept::getId,deptIds).list();
+ for(MdmDept dept : deptList) {
+ String strDeptId = String.valueOf(dept.getId());
+ ProgramNodeVO deptNode = new ProgramNodeVO();
+ deptNode.setId(strDeptId);
+ deptNode.setName(dept.getDeptName());
+ deptNode.setNodeType("dept");
+ deptNode.setChildren(new ArrayList<>());
+
+ userMap.forEach((k, usersInDept) -> {
+ if(k.contains(strDeptId)){
+ for(MdmUser u : usersInDept) {
+ ProgramNodeVO userNode = new ProgramNodeVO();
+ userNode.setId(String.valueOf(u.getId()));
+ userNode.setName(u.getName());
+ if(u.isManager()){
+ userNode.setNodeType("manager");
+ }else {
+ userNode.setNodeType("user");
+ }
+ deptNode.getChildren().add(userNode);
+ }
+ }
+ });
+
+ rootNodeVOS.add(deptNode);
+ }
+
+ return rootNodeVOS;
+ }
}
--
Gitblit v1.9.3