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