✨ Introducing new features. org component
This commit is contained in:
1 parent
93f02b9d8b
commit
e0fd01d74b
5 files changed
+6
-217
No files matched your search
-44
@@ -1,44 +0,0 @@
|
||||
package com.pig4cloud.pigx.flow.task.controller;
|
||||
|
||||
import com.pig4cloud.pigx.common.core.util.R;
|
||||
import com.pig4cloud.pigx.flow.task.service.IOrgService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author : willian fu
|
||||
* @date : 2022/6/27
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/org")
|
||||
public class OrgController {
|
||||
|
||||
private final IOrgService orgService;
|
||||
|
||||
/**
|
||||
* 查询组织架构树
|
||||
* @param deptId 部门id
|
||||
* @param showLeave 是否显示离职员工
|
||||
* @return 组织架构树数据
|
||||
*/
|
||||
@GetMapping("tree")
|
||||
public R getOrgTreeData(@RequestParam(defaultValue = "0") Long deptId, String type,
|
||||
@RequestParam(defaultValue = "false") Boolean showLeave) {
|
||||
return orgService.getOrgTreeData(deptId, type, showLeave);
|
||||
}
|
||||
|
||||
/**
|
||||
* 模糊搜索用户
|
||||
* @param userName 用户名/拼音/首字母
|
||||
* @return 匹配到的用户
|
||||
*/
|
||||
@GetMapping("tree/user/search")
|
||||
public R getOrgTreeUser(@RequestParam String userName) {
|
||||
return orgService.getOrgTreeUser(userName.trim());
|
||||
}
|
||||
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
package com.pig4cloud.pigx.flow.task.service;
|
||||
|
||||
import com.pig4cloud.pigx.common.core.util.R;
|
||||
|
||||
/**
|
||||
* @author : willian fu
|
||||
* @version : 1.0
|
||||
*/
|
||||
public interface IOrgService {
|
||||
|
||||
/**
|
||||
* 查询组织架构树
|
||||
* @param deptId 部门id
|
||||
* @param type 只查询部门架构
|
||||
* @param showLeave 是否显示离职员工
|
||||
* @return 组织架构树数据
|
||||
*/
|
||||
R getOrgTreeData(Long deptId, String type, Boolean showLeave);
|
||||
|
||||
/**
|
||||
* 模糊搜索用户
|
||||
* @param userName 用户名/拼音/首字母
|
||||
* @return 匹配到的用户
|
||||
*/
|
||||
R getOrgTreeUser(String userName);
|
||||
|
||||
}
|
||||
-139
@@ -1,139 +0,0 @@
|
||||
package com.pig4cloud.pigx.flow.task.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysDept;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysRole;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysUser;
|
||||
import com.pig4cloud.pigx.admin.api.feign.RemoteDeptService;
|
||||
import com.pig4cloud.pigx.admin.api.feign.RemoteRoleService;
|
||||
import com.pig4cloud.pigx.admin.api.feign.RemoteUserService;
|
||||
import com.pig4cloud.pigx.common.core.util.R;
|
||||
import com.pig4cloud.pigx.common.core.util.RetOps;
|
||||
import com.pig4cloud.pigx.flow.task.constant.NodeUserTypeEnum;
|
||||
import com.pig4cloud.pigx.flow.task.service.IOrgService;
|
||||
import com.pig4cloud.pigx.flow.task.utils.DataUtil;
|
||||
import com.pig4cloud.pigx.flow.task.vo.OrgTreeVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class OrgServiceImpl implements IOrgService {
|
||||
|
||||
private final RemoteUserService remoteUserService;
|
||||
|
||||
private final RemoteRoleService remoteRoleService;
|
||||
|
||||
private final RemoteDeptService remoteDeptService;
|
||||
|
||||
/**
|
||||
* 查询组织架构树
|
||||
* @param deptId 部门id
|
||||
* @param type 只查询部门架构
|
||||
* @param showLeave 是否显示离职员工
|
||||
* @return 组织架构树数据
|
||||
*/
|
||||
@Override
|
||||
public R getOrgTreeData(Long deptId, String type, Boolean showLeave) {
|
||||
List<OrgTreeVo> orgs = new LinkedList<>();
|
||||
|
||||
if (StrUtil.equals(type, NodeUserTypeEnum.ROLE.getKey())) {
|
||||
// 角色
|
||||
|
||||
List<SysRole> roleList = remoteRoleService.getAllRole().getData();
|
||||
|
||||
for (SysRole role : roleList) {
|
||||
OrgTreeVo orgTreeVo = new OrgTreeVo();
|
||||
orgTreeVo.setId(role.getRoleId());
|
||||
orgTreeVo.setName(role.getRoleName());
|
||||
orgTreeVo.setType(NodeUserTypeEnum.ROLE.getKey());
|
||||
orgTreeVo.setSelected(false);
|
||||
orgs.add(orgTreeVo);
|
||||
}
|
||||
|
||||
Dict dict = Dict.create()
|
||||
.set("roleList", orgs)
|
||||
.set("childDepartments", orgs)
|
||||
.set("employees", new ArrayList<>());
|
||||
return R.ok(dict);
|
||||
|
||||
}
|
||||
|
||||
Dict dict = Dict.create()
|
||||
.set("titleDepartments", new ArrayList<>())
|
||||
.set("roleList", new ArrayList<>())
|
||||
.set("employees", new ArrayList<>());
|
||||
|
||||
List<SysDept> deptList = remoteDeptService.getAllDept().getData();
|
||||
|
||||
// 查询所有部门及员工
|
||||
{
|
||||
List deptVoList = new ArrayList();
|
||||
for (SysDept dept : deptList) {
|
||||
OrgTreeVo orgTreeVo = new OrgTreeVo();
|
||||
orgTreeVo.setId(dept.getDeptId());
|
||||
orgTreeVo.setName(dept.getName());
|
||||
orgTreeVo.setType(NodeUserTypeEnum.DEPT.getKey());
|
||||
orgTreeVo.setSelected(false);
|
||||
deptVoList.add(orgTreeVo);
|
||||
}
|
||||
dict.set("childDepartments", deptVoList);
|
||||
}
|
||||
if (!StrUtil.equals(type, NodeUserTypeEnum.DEPT.getKey())) {
|
||||
|
||||
List userVoList = new ArrayList();
|
||||
|
||||
List<SysUser> userList = remoteUserService.getUserIdListByDeptIdList(CollUtil.toList(deptId)).getData();
|
||||
|
||||
for (SysUser user : userList) {
|
||||
OrgTreeVo orgTreeVo = new OrgTreeVo();
|
||||
orgTreeVo.setId(user.getUserId());
|
||||
orgTreeVo.setName(user.getUsername());
|
||||
orgTreeVo.setType(NodeUserTypeEnum.USER.getKey());
|
||||
orgTreeVo.setSelected(false);
|
||||
orgTreeVo.setAvatar(user.getAvatar());
|
||||
userVoList.add(orgTreeVo);
|
||||
}
|
||||
dict.set("employees", userVoList);
|
||||
}
|
||||
|
||||
if (deptId > 0) {
|
||||
List<SysDept> allDept = remoteDeptService.getAllDept().getData();
|
||||
List<SysDept> depts = DataUtil.selectParentByDept(deptId, allDept);
|
||||
dict.set("titleDepartments", CollUtil.reverse(depts));
|
||||
}
|
||||
|
||||
return R.ok(dict);
|
||||
}
|
||||
|
||||
/**
|
||||
* 模糊搜索用户
|
||||
* @param userName 用户名/拼音/首字母
|
||||
* @return 匹配到的用户
|
||||
*/
|
||||
@Override
|
||||
public R getOrgTreeUser(String userName) {
|
||||
return R.ok(RetOps.of(remoteUserService.getUserListByUserName(userName))
|
||||
.getData()
|
||||
.orElseGet(ArrayList::new)
|
||||
.stream()
|
||||
.map(user -> {
|
||||
OrgTreeVo orgTreeVo = new OrgTreeVo();
|
||||
orgTreeVo.setId(user.getUserId());
|
||||
orgTreeVo.setName(user.getUsername());
|
||||
orgTreeVo.setType(NodeUserTypeEnum.USER.getKey());
|
||||
orgTreeVo.setSelected(false);
|
||||
orgTreeVo.setAvatar(user.getAvatar());
|
||||
return orgTreeVo;
|
||||
})
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
}
|
||||
+3
-6
@@ -8,6 +8,7 @@ import com.pig4cloud.pigx.admin.api.entity.SysDept;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysUser;
|
||||
import com.pig4cloud.pigx.admin.api.feign.RemoteDeptService;
|
||||
import com.pig4cloud.pigx.admin.api.feign.RemoteUserService;
|
||||
import com.pig4cloud.pigx.admin.api.utils.DataUtil;
|
||||
import com.pig4cloud.pigx.common.core.util.R;
|
||||
import com.pig4cloud.pigx.flow.task.constant.NodeStatusEnum;
|
||||
import com.pig4cloud.pigx.flow.task.dto.*;
|
||||
@@ -16,7 +17,6 @@ import com.pig4cloud.pigx.flow.task.entity.ProcessCopy;
|
||||
import com.pig4cloud.pigx.flow.task.entity.ProcessGroup;
|
||||
import com.pig4cloud.pigx.flow.task.entity.ProcessInstanceRecord;
|
||||
import com.pig4cloud.pigx.flow.task.service.*;
|
||||
import com.pig4cloud.pigx.flow.task.utils.DataUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -112,7 +112,7 @@ public class RemoteServiceImpl implements IRemoteService {
|
||||
Long parentId = checkParentDto.getParentId();
|
||||
List<Long> deptIdList = checkParentDto.getDeptIdList();
|
||||
// 查询子级包括自己
|
||||
List<SysDept> allDept = deptService.getAllDept().getData();
|
||||
List<SysDept> allDept = deptService.getAllDept(null).getData();
|
||||
List<SysDept> childrenDeptList = DataUtil.selectChildrenByDept(parentId, allDept);
|
||||
|
||||
List<Long> childrenDeptIdList = childrenDeptList.stream().map(SysDept::getDeptId).collect(Collectors.toList());
|
||||
@@ -148,14 +148,11 @@ public class RemoteServiceImpl implements IRemoteService {
|
||||
Long childId = checkChildDto.getChildId();
|
||||
List<Long> deptIdList = checkChildDto.getDeptIdList();
|
||||
// 查询父级包括自己
|
||||
List<SysDept> allDept = deptService.getAllDept().getData();
|
||||
List<SysDept> allDept = deptService.getAllDept(null).getData();
|
||||
List<SysDept> parentDeptList = DataUtil.selectParentByDept(childId, allDept);
|
||||
|
||||
List<Long> parentDeptIdList = parentDeptList.stream().map(SysDept::getDeptId).collect(Collectors.toList());
|
||||
parentDeptIdList.remove(childId);
|
||||
|
||||
List<Long> remainIdList = CollUtil.removeAny(deptIdList, ArrayUtil.toArray(parentDeptIdList, Long.class));
|
||||
|
||||
return R.ok(remainIdList.isEmpty());
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -25,6 +25,7 @@ import com.pig4cloud.pigx.common.core.util.R;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,10 +38,11 @@ public interface RemoteDeptService {
|
||||
|
||||
/**
|
||||
* 获取所有部门接口
|
||||
* @param parentDeptId 父部门ID
|
||||
* @return R 返回结果对象,包含所有部门信息列表
|
||||
*/
|
||||
@GetMapping("/dept/list")
|
||||
R<List<SysDept>> getAllDept();
|
||||
R<List<SysDept>> getAllDept(@RequestParam("parentDeptId") Long parentDeptId);
|
||||
|
||||
/**
|
||||
* 通过部门ID获取负责人列表
|
||||
|
||||
Reference in new issue
Block a user