新增 区分外部人员部门 查询接口
This commit is contained in:
parent
c9510fb65f
commit
62afcb53d5
@ -2,9 +2,11 @@ package cn.iocoder.yudao.module.system.controller.admin.dept;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||
import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO;
|
||||
@ -13,6 +15,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -22,11 +25,12 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
|
||||
@Tag(name = "管理后台 - 部门")
|
||||
@RestController
|
||||
@ -39,6 +43,9 @@ public class DeptController {
|
||||
@Resource
|
||||
private AdminUserService userService;
|
||||
|
||||
@Resource
|
||||
private ConfigApi configApi;
|
||||
|
||||
@PostMapping("create")
|
||||
@Operation(summary = "创建部门")
|
||||
@PreAuthorize("@ss.hasPermission('system:dept:create')")
|
||||
@ -164,6 +171,47 @@ public class DeptController {
|
||||
return success(BeanUtils.toBean(list, DeptSimpleRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping(value = {"/all-list-outsiders"})
|
||||
@Operation(summary = "获取部门精简信息列表", description = "只包含被开启的部门,主要用于需要区分外部人员时的下拉选项")
|
||||
@DataPermission(enable = false)
|
||||
public CommonResult<List<DeptSimpleRespVO>> getAllDeptListOutsiders() {
|
||||
|
||||
// 获取外部人员 部门信息
|
||||
String deptString = configApi.getConfigKey("system.outsiders").getCheckedData();
|
||||
Map<String, String> deptMap = JsonUtils.parseObject(deptString, new TypeReference<Map<String, String>>(){});
|
||||
// 判断当前登录用户是否 属于外部人员
|
||||
for (String key : deptMap.keySet()) {
|
||||
String value = deptMap.get(key);
|
||||
if (value.contains(Objects.requireNonNull(getLoginUserId()).toString())) {
|
||||
|
||||
DeptDO deptDO = deptService.getDept(Long.valueOf(key));
|
||||
return success(BeanUtils.toBean(Collections.singletonList(deptDO), DeptSimpleRespVO.class));
|
||||
}
|
||||
}
|
||||
|
||||
List<DeptDO> list = deptService.getDeptList(
|
||||
new DeptListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()));
|
||||
|
||||
// 获得所有得虚机构部门信息
|
||||
List<DeptDO> virtuallyDeptId = list.stream()
|
||||
.filter(dept -> dept.getVirtuallyStatus() == 1)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
virtuallyDeptId.forEach(data -> {
|
||||
|
||||
// 将虚机构的子部门,父部门设置为虚机构的父部门
|
||||
list.stream().filter(dept -> dept.getParentId().equals(data.getId()))
|
||||
.map(dept -> dept.setParentId(data.getParentId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
});
|
||||
|
||||
// 移除虚机构,不展示
|
||||
list.removeIf(dept -> dept.getVirtuallyStatus() == 1);
|
||||
|
||||
return success(BeanUtils.toBean(list, DeptSimpleRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping(value = { "/get-factory-dept"})
|
||||
@Operation(summary = "获取工厂部门精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项")
|
||||
@DataPermission(enable = false)
|
||||
|
Loading…
Reference in New Issue
Block a user