From 86079d1c2bd7981165487e6e08d2399b80687f6e Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 04 九月 2025 14:21:49 +0800
Subject: [PATCH] 工控网导出使用实际编程人匹配

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/MdmUserService.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 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 067bec7..01c30cd 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,18 +1,24 @@
 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> {
@@ -20,6 +26,8 @@
 	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;
@@ -30,6 +38,10 @@
 		return userId;
 	}
 
+	/**
+	 * 鎵�鏈夊鎵圭敤鎴峰垪琛�
+	 * @return
+	 */
 	public List<MdmUser> listByDeptAndRoleAlias() {
 		List<String> approveRoleAliasList = Func.split(paramService.getApproveRoleAlias(),',');
 		List<MdmUser> approveUserList = userListByRoleAlias(approveRoleAliasList);
@@ -55,4 +67,45 @@
 		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());
+						userNode.setNodeType("user");
+						deptNode.getChildren().add(userNode);
+					}
+				}
+			});
+
+			rootNodeVOS.add(deptNode);
+		}
+
+		return rootNodeVOS;
+	}
 }

--
Gitblit v1.9.3