非递归方式查询某个部门及其子部门下的部门数据

表结构:

CREATE TABLE `dept` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
`dept_name` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '部门名称',
`dept_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '部门编码',
`parent_id` bigint DEFAULT NULL COMMENT '父级部门id',
`parent_code` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '父级编码',
`dept_level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '部门层级',
`data_state` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据状态(1 正常, -1 删除)',
`create_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`update_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='部门表';

数据初始化

-- 插入第一级部门(1个)
INSERT INTO `dept` (`dept_name`, `dept_code`, `parent_id`, `parent_code`, `dept_level`, `data_state`, `create_date`, `update_date`) VALUES
('总部', 'D001', NULL, NULL, '1', '1', NOW(), NOW());

-- 插入第二级部门(5个)
INSERT INTO `dept` (`dept_name`, `dept_code`, `parent_id`, `parent_code`, `dept_level`, `data_state`, `create_date`, `update_date`) VALUES
('技术研发中心', 'D001001', 1, 'D001', '2', '1', NOW(), NOW()),
('市场营销部', 'D001002', 1, 'D001', '2', '1', NOW(), NOW()),
('人力资源部', 'D001003', 1, 'D001', '2', '1', NOW(), NOW()),
('财务部', 'D001004', 1, 'D001', '2', '1', NOW(), NOW()),
('运营管理部', 'D001005', 1, 'D001', '2', '1', NOW(), NOW());

-- 插入第三级部门(25个)
INSERT INTO `dept` (`dept_name`, `dept_code`, `parent_id`, `parent_code`, `dept_level`, `data_state`, `create_date`, `update_date`) VALUES
-- 技术研发中心下属部门
('前端开发部', 'D001001001', 2, 'D001001', '3', '1', NOW(), NOW()),
('后端开发部', 'D001001002', 2, 'D001001', '3', '1', NOW(), NOW()),
('测试部', 'D001001003', 2, 'D001001', '3', '1', NOW(), NOW()),
('运维部', 'D001001004', 2, 'D001001', '3', '1', NOW(), NOW()),
('产品部', 'D001001005', 2, 'D001001', '3', '1', NOW(), NOW()),

-- 市场营销部下属部门
('品牌推广部', 'D001002001', 3, 'D001002', '3', '1', NOW(), NOW()),
('数字营销部', 'D001002002', 3, 'D001002', '3', '1', NOW(), NOW()),
('渠道管理部', 'D001002003', 3, 'D001002', '3', '1', NOW(), NOW()),
('市场调研部', 'D001002004', 3, 'D001002', '3', '1', NOW(), NOW()),
('公关部', 'D001002005', 3, 'D001002', '3', '1', NOW(), NOW()),

-- 人力资源部下属部门
('招聘部', 'D001003001', 4, 'D001003', '3', '1', NOW(), NOW()),
('培训发展部', 'D001003002', 4, 'D001003', '3', '1', NOW(), NOW()),
('薪酬福利部', 'D001003003', 4, 'D001003', '3', '1', NOW(), NOW()),
('绩效管理部', 'D001003004', 4, 'D001003', '3', '1', NOW(), NOW()),
('员工关系部', 'D001003005', 4, 'D001003', '3', '1', NOW(), NOW()),

-- 财务部下属部门
('会计核算部', 'D001004001', 5, 'D001004', '3', '1', NOW(), NOW()),
('预算管理部', 'D001004002', 5, 'D001004', '3', '1', NOW(), NOW()),
('税务管理部', 'D001004003', 5, 'D001004', '3', '1', NOW(), NOW()),
('资金管理部', 'D001004004', 5, 'D001004', '3', '1', NOW(), NOW()),
('审计部', 'D001004005', 5, 'D001004', '3', '1', NOW(), NOW()),

-- 运营管理部下属部门
('项目管理部', 'D001005001', 6, 'D001005', '3', '1', NOW(), NOW()),
('质量管理部', 'D001005002', 6, 'D001005', '3', '1', NOW(), NOW()),
('流程优化部', 'D001005003', 6, 'D001005', '3', '1', NOW(), NOW()),
('数据分析部', 'D001005004', 6, 'D001005', '3', '1', NOW(), NOW()),
('行政支持部', 'D001005005', 6, 'D001005', '3', '1', NOW(), NOW());

-- 插入第四级部门(125个)
INSERT INTO `dept` (`dept_name`, `dept_code`, `parent_id`, `parent_code`, `dept_level`, `data_state`, `create_date`, `update_date`) VALUES
-- 前端开发部下属部门
('Web前端组', 'D001001001001', 7, 'D001001001', '4', '1', NOW(), NOW()),
('移动端开发组', 'D001001001002', 7, 'D001001001', '4', '1', NOW(), NOW()),
('UI设计组', 'D001001001003', 7, 'D001001001', '4', '1', NOW(), NOW()),
('交互设计组', 'D001001001004', 7, 'D001001001', '4', '1', NOW(), NOW()),
('前端架构组', 'D001001001005', 7, 'D001001001', '4', '1', NOW(), NOW()),

-- 后端开发部下属部门
('Java开发组', 'D001001002001', 8, 'D001001002', '4', '1', NOW(), NOW()),
('Python开发组', 'D001001002002', 8, 'D001001002', '4', '1', NOW(), NOW()),
('Go开发组', 'D001001002003', 8, 'D001001002', '4', '1', NOW(), NOW()),
('数据库开发组', 'D001001002004', 8, 'D001001002', '4', '1', NOW(), NOW()),
('中间件开发组', 'D001001002005', 8, 'D001001002', '4', '1', NOW(), NOW()),

-- 测试部下属部门
('功能测试组', 'D001001003001', 9, 'D001001003', '4', '1', NOW(), NOW()),
('性能测试组', 'D001001003002', 9, 'D001001003', '4', '1', NOW(), NOW()),
('自动化测试组', 'D001001003003', 9, 'D001001003', '4', '1', NOW(), NOW()),
('安全测试组', 'D001001003004', 9, 'D001001003', '4', '1', NOW(), NOW()),
('测试开发组', 'D001001003005', 9, 'D001001003', '4', '1', NOW(), NOW()),

-- 运维部下属部门
('系统运维组', 'D001001004001', 10, 'D001001004', '4', '1', NOW(), NOW()),
('网络运维组', 'D001001004002', 10, 'D001001004', '4', '1', NOW(), NOW()),
('数据库运维组', 'D001001004003', 10, 'D001001004', '4', '1', NOW(), NOW()),
('安全运维组', 'D001001004004', 10, 'D001001004', '4', '1', NOW(), NOW()),
('监控运维组', 'D001001004005', 10, 'D001001004', '4', '1', NOW(), NOW()),

-- 产品部下属部门
('产品设计组', 'D001001005001', 11, 'D001001005', '4', '1', NOW(), NOW()),
('需求分析组', 'D001001005002', 11, 'D001001005', '4', '1', NOW(), NOW()),
('原型设计组', 'D001001005003', 11, 'D001001005', '4', '1', NOW(), NOW()),
('产品运营组', 'D001001005004', 11, 'D001001005', '4', '1', NOW(), NOW()),
('产品规划组', 'D001001005005', 11, 'D001001005', '4', '1', NOW(), NOW()),

-- 品牌推广部下属部门
('品牌策划组', 'D001002001001', 12, 'D001002001', '4', '1', NOW(), NOW()),
('媒体关系组', 'D001002001002', 12, 'D001002001', '4', '1', NOW(), NOW()),
('活动执行组', 'D001002001003', 12, 'D001002001', '4', '1', NOW(), NOW()),
('创意设计组', 'D001002001004', 12, 'D001002001', '4', '1', NOW(), NOW()),
('品牌监测组', 'D001002001005', 12, 'D001002001', '4', '1', NOW(), NOW()),

-- 数字营销部下属部门
('SEO优化组', 'D001002002001', 13, 'D001002002', '4', '1', NOW(), NOW()),
('SEM投放组', 'D001002002002', 13, 'D001002002', '4', '1', NOW(), NOW()),
('社交媒体组', 'D001002002003', 13, 'D001002002', '4', '1', NOW(), NOW()),
('内容营销组', 'D001002002004', 13, 'D001002002', '4', '1', NOW(), NOW()),
('数据分析组', 'D001002002005', 13, 'D001002002', '4', '1', NOW(), NOW()),

-- 渠道管理部下属部门
('渠道拓展组', 'D001002003001', 14, 'D001002003', '4', '1', NOW(), NOW()),
('渠道支持组', 'D001002003002', 14, 'D001002003', '4', '1', NOW(), NOW()),
('渠道培训组', 'D001002003003', 14, 'D001002003', '4', '1', NOW(), NOW()),
('渠道评估组', 'D001002003004', 14, 'D001002003', '4', '1', NOW(), NOW()),
('渠道优化组', 'D001002003005', 14, 'D001002003', '4', '1', NOW(), NOW()),

-- 市场调研部下属部门
('定量研究组', 'D001002004001', 15, 'D001002004', '4', '1', NOW(), NOW()),
('定性研究组', 'D001002004002', 15, 'D001002004', '4', '1', NOW(), NOW()),
('竞品分析组', 'D001002004003', 15, 'D001002004', '4', '1', NOW(), NOW()),
('用户研究组', 'D001002004004', 15, 'D001002004', '4', '1', NOW(), NOW()),
('数据建模组', 'D001002004005', 15, 'D001002004', '4', '1', NOW(), NOW()),

-- 公关部下属部门
('媒体公关组', 'D001002005001', 16, 'D001002005', '4', '1', NOW(), NOW()),
('政府关系组', 'D001002005002', 16, 'D001002005', '4', '1', NOW(), NOW()),
('危机处理组', 'D001002005003', 16, 'D001002005', '4', '1', NOW(), NOW()),
('企业传播组', 'D001002005004', 16, 'D001002005', '4', '1', NOW(), NOW()),
('社会责任组', 'D001002005005', 16, 'D001002005', '4', '1', NOW(), NOW()),

-- 招聘部下属部门
('校园招聘组', 'D001003001001', 17, 'D001003001', '4', '1', NOW(), NOW()),
('社会招聘组', 'D001003001002', 17, 'D001003001', '4', '1', NOW(), NOW()),
('猎头合作组', 'D001003001003', 17, 'D001003001', '4', '1', NOW(), NOW()),
('招聘流程组', 'D001003001004', 17, 'D001003001', '4', '1', NOW(), NOW()),
('雇主品牌组', 'D001003001005', 17, 'D001003001', '4', '1', NOW(), NOW()),

-- 培训发展部下属部门
('新员工培训组', 'D001003002001', 18, 'D001003002', '4', '1', NOW(), NOW()),
('管理培训组', 'D001003002002', 18, 'D001003002', '4', '1', NOW(), NOW()),
('专业技能组', 'D001003002003', 18, 'D001003002', '4', '1', NOW(), NOW()),
('在线学习组', 'D001003002004', 18, 'D001003002', '4', '1', NOW(), NOW()),
('培训评估组', 'D001003002005', 18, 'D001003002', '4', '1', NOW(), NOW()),

-- 薪酬福利部下属部门
('薪酬管理组', 'D001003003001', 19, 'D001003003', '4', '1', NOW(), NOW()),
('绩效薪酬组', 'D001003003002', 19, 'D001003003', '4', '1', NOW(), NOW()),
('福利管理组', 'D001003003003', 19, 'D001003003', '4', '1', NOW(), NOW()),
('薪酬分析组', 'D001003003004', 19, 'D001003003', '4', '1', NOW(), NOW()),
('薪酬调研组', 'D001003003005', 19, 'D001003003', '4', '1', NOW(), NOW()),

-- 绩效管理部下属部门
('绩效计划组', 'D001003004001', 20, 'D001003004', '4', '1', NOW(), NOW()),
('绩效评估组', 'D001003004002', 20, 'D001003004', '4', '1', NOW(), NOW()),
('绩效反馈组', 'D001003004003', 20, 'D001003004', '4', '1', NOW(), NOW()),
('绩效改进组', 'D001003004004', 20, 'D001003004', '4', '1', NOW(), NOW()),
('绩效系统组', 'D001003004005', 20, 'D001003004', '4', '1', NOW(), NOW()),

-- 员工关系部下属部门
('员工沟通组', 'D001003005001', 21, 'D001003005', '4', '1', NOW(), NOW()),
('员工活动组', 'D001003005002', 21, 'D001003005', '4', '1', NOW(), NOW()),
('劳动法务组', 'D001003005003', 21, 'D001003005', '4', '1', NOW(), NOW()),
('员工关怀组', 'D001003005004', 21, 'D001003005', '4', '1', NOW(), NOW()),
('离职管理组', 'D001003005005', 21, 'D001003005', '4', '1', NOW(), NOW()),

-- 会计核算部下属部门
('总账会计组', 'D001004001001', 22, 'D001004001', '4', '1', NOW(), NOW()),
('成本会计组', 'D001004001002', 22, 'D001004001', '4', '1', NOW(), NOW()),
('税务会计组', 'D001004001003', 22, 'D001004001', '4', '1', NOW(), NOW()),
('固定资产组', 'D001004001004', 22, 'D001004001', '4', '1', NOW(), NOW()),
('报表编制组', 'D001004001005', 22, 'D001004001', '4', '1', NOW(), NOW()),

-- 预算管理部下属部门
('预算编制组', 'D001004002001', 23, 'D001004002', '4', '1', NOW(), NOW()),
('预算控制组', 'D001004002002', 23, 'D001004002', '4', '1', NOW(), NOW()),
('预算分析组', 'D001004002003', 23, 'D001004002', '4', '1', NOW(), NOW()),
('成本控制组', 'D001004002004', 23, 'D001004002', '4', '1', NOW(), NOW()),
('预算报告组', 'D001004002005', 23, 'D001004002', '4', '1', NOW(), NOW()),

-- 税务管理部下属部门
('税务申报组', 'D001004003001', 24, 'D001004003', '4', '1', NOW(), NOW()),
('税务筹划组', 'D001004003002', 24, 'D001004003', '4', '1', NOW(), NOW()),
('税务合规组', 'D001004003003', 24, 'D001004003', '4', '1', NOW(), NOW()),
('税务审计组', 'D001004003004', 24, 'D001004003', '4', '1', NOW(), NOW()),
('税务培训组', 'D001004003005', 24, 'D001004003', '4', '1', NOW(), NOW()),

-- 资金管理部下属部门
('资金结算组', 'D001004004001', 25, 'D001004004', '4', '1', NOW(), NOW()),
('资金计划组', 'D001004004002', 25, 'D001004004', '4', '1', NOW(), NOW()),
('融资管理组', 'D001004004003', 25, 'D001004004', '4', '1', NOW(), NOW()),
('投资管理组', 'D001004004004', 25, 'D001004004', '4', '1', NOW(), NOW()),
('风险管理组', 'D001004004005', 25, 'D001004004', '4', '1', NOW(), NOW()),

-- 审计部下属部门
('内部审计组', 'D001004005001', 26, 'D001004005', '4', '1', NOW(), NOW()),
('合规审计组', 'D001004005002', 26, 'D001004005', '4', '1', NOW(), NOW()),
('财务审计组', 'D001004005003', 26, 'D001004005', '4', '1', NOW(), NOW()),
('运营审计组', 'D001004005004', 26, 'D001004005', '4', '1', NOW(), NOW()),
('IT审计组', 'D001004005005', 26, 'D001004005', '4', '1', NOW(), NOW()),

-- 项目管理部下属部门
('项目规划组', 'D001005001001', 27, 'D001005001', '4', '1', NOW(), NOW()),
('项目执行组', 'D001005001002', 27, 'D001005001', '4', '1', NOW(), NOW()),
('项目监控组', 'D001005001003', 27, 'D001005001', '4', '1', NOW(), NOW()),
('项目收尾组', 'D001005001004', 27, 'D001005001', '4', '1', NOW(), NOW()),
('项目资源组', 'D001005001005', 27, 'D001005001', '4', '1', NOW(), NOW()),

-- 质量管理部下属部门
('质量体系组', 'D001005002001', 28, 'D001005002', '4', '1', NOW(), NOW()),
('质量控制组', 'D001005002002', 28, 'D001005002', '4', '1', NOW(), NOW()),
('质量改进组', 'D001005002003', 28, 'D001005002', '4', '1', NOW(), NOW()),
('质量培训组', 'D001005002004', 28, 'D001005002', '4', '1', NOW(), NOW()),
('质量审核组', 'D001005002005', 28, 'D001005002', '4', '1', NOW(), NOW()),

-- 流程优化部下属部门
('流程设计组', 'D001005003001', 29, 'D001005003', '4', '1', NOW(), NOW()),
('流程实施组', 'D001005003002', 29, 'D001005003', '4', '1', NOW(), NOW()),
('流程监控组', 'D001005003003', 29, 'D001005003', '4', '1', NOW(), NOW()),
('流程改进组', 'D001005003004', 29, 'D001005003', '4', '1', NOW(), NOW()),
('流程培训组', 'D001005003005', 29, 'D001005003', '4', '1', NOW(), NOW()),

-- 数据分析部下属部门
('数据采集组', 'D001005004001', 30, 'D001005004', '4', '1', NOW(), NOW()),
('数据清洗组', 'D001005004002', 30, 'D001005004', '4', '1', NOW(), NOW()),
('数据分析组', 'D001005004003', 30, 'D001005004', '4', '1', NOW(), NOW()),
('数据可视化组', 'D001005004004', 30, 'D001005004', '4', '1', NOW(), NOW()),
('数据报告组', 'D001005004005', 30, 'D001005004', '4', '1', NOW(), NOW()),

-- 行政支持部下属部门
('办公行政组', 'D001005005001', 31, 'D001005005', '4', '1', NOW(), NOW()),
('后勤保障组', 'D001005005002', 31, 'D001005005', '4', '1', NOW(), NOW()),
('资产管理组', 'D001005005003', 31, 'D001005005', '4', '1', NOW(), NOW()),
('文档管理组', 'D001005005004', 31, 'D001005005', '4', '1', NOW(), NOW()),
('会议服务组', 'D001005005005', 31, 'D001005005', '4', '1', NOW(), NOW());

代码:

public class DeptDTO {
private Set<Dept> deptSet;
private Integer total;

public Set<Dept> getDeptSet() {
return deptSet;
}

public void setDeptSet(Set<Dept> deptSet) {
this.deptSet = deptSet;
}

public Integer getTotal() {
return total;
}

public void setTotal(Integer total) {
this.total = total;
}

@Override
public String toString() {
return "DeptDTO{" +
"deptSet=" + deptSet +
", total=" + total +
'}';
}

package com.cjy.study.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.time.LocalDateTime;

/**
* <p>
* 部门表
* </p>
*
* @author Cheng
* @since 2025-11-22
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("dept")
@ApiModel(value = "Dept对象", description = "部门表")
public class Dept implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty("部门名称")
@TableField("dept_name")
private String deptName;

@ApiModelProperty("部门编码")
@TableField("dept_code")
private String deptCode;

@ApiModelProperty("父级部门id")
@TableField("parent_id")
private Long parentId;

@ApiModelProperty("父级编码")
@TableField("parent_code")
private String parentCode;

@ApiModelProperty("部门层级")
@TableField("dept_level")
private String deptLevel;

@ApiModelProperty("数据状态")
@TableField("data_state")
private String dataState;

@ApiModelProperty("创建时间")
@TableField("create_date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;

@ApiModelProperty("更新时间")
@TableField("update_date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateDate;

/**
* 指定部门编码
*/
@ApiModelProperty("指定部门编码")
@TableField(exist = false)
private String specifyDeptCode;
}

package com.cjy.study.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.time.LocalDateTime;

/**
* <p>
* 部门表
* </p>
*
* @author Cheng
* @since 2025-11-22
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("dept")
@ApiModel(value = "Dept对象", description = "部门表")
public class Dept implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;

@ApiModelProperty("部门名称")
@TableField("dept_name")
private String deptName;

@ApiModelProperty("部门编码")
@TableField("dept_code")
private String deptCode;

@ApiModelProperty("父级部门id")
@TableField("parent_id")
private Long parentId;

@ApiModelProperty("父级编码")
@TableField("parent_code")
private String parentCode;

@ApiModelProperty("部门层级")
@TableField("dept_level")
private String deptLevel;

@ApiModelProperty("数据状态")
@TableField("data_state")
private String dataState;

@ApiModelProperty("创建时间")
@TableField("create_date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;

@ApiModelProperty("更新时间")
@TableField("update_date")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateDate;

/**
* 指定部门编码
*/
@ApiModelProperty("指定部门编码")
@TableField(exist = false)
private String specifyDeptCode;
}

@Mapper
public interface DeptMapper extends BaseMapper<Dept> {

}

@Resource
private DeptMapper deptMapper;

public List<Dept> findDeptLevelOrderByAscAllList() {
QueryWrapper<Dept> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(DeptEnum.DATA_STATE.getCode(), CommonEnum.DATA_STATE_VALID.getCode()).orderByAsc(DeptEnum.DEPT_LEVEL.getCode());
List<Dept> deptList = deptMapper.selectList(queryWrapper);
return deptList;
}

核心逻辑实现:

public DeptDTO findSpecifyDeptAndSunDeptSet(List<String> deptCodeList) {
DeptDTO deptDTO = new DeptDTO();
deptDTO.setTotal(Constant.INT_ZERO);
deptDTO.setDeptSet(new LinkedHashSet<>());
Set<Dept> deptSetResult = new LinkedHashSet<>();
if (ObjectUtil.isEmpty(deptCodeList)) {
return deptDTO;
}
//必须正序排序
List<Dept> deptAllList = this.findDeptLevelOrderByAscAllList();
if (ObjectUtil.isEmpty(deptAllList)) {
return deptDTO;
}

Map<String, String> deptCodeSpecifyMap = new HashMap<>();
for (String deptCode : deptCodeList) {
deptCodeSpecifyMap.put(deptCode, deptCode);
}
//必须是LinkedHashMap
Map<String, Dept> deptMap = new LinkedHashMap<>();
for (Dept dept : deptAllList) {
deptMap.put(dept.getDeptCode(), dept);
}

for (Map.Entry<String, Dept> entry : deptMap.entrySet()) {
String deptCode = entry.getKey();
Dept dept = entry.getValue();
String deptLevel = dept.getDeptLevel();
String parentCode = dept.getParentCode();
if (deptCodeSpecifyMap.containsKey(deptCode)) {
dept.setSpecifyDeptCode(deptCode);
deptSetResult.add(dept);
}
if (!CommonEnum.DATA_STATE_VALID.getCode().equalsIgnoreCase(deptLevel)) {
Dept deptParent = deptMap.get(parentCode);
String specifyDeptCodeParent = deptParent.getSpecifyDeptCode();
if (ObjectUtil.isNotEmpty(specifyDeptCodeParent) && deptCodeSpecifyMap.containsKey(specifyDeptCodeParent)) {
dept.setSpecifyDeptCode(specifyDeptCodeParent);
deptSetResult.add(dept);
}
}
}
deptDTO.setTotal(deptSetResult.size());
deptDTO.setDeptSet(deptSetResult);
return deptDTO;
}

阅读剩余
THE END
阿里云ECS特惠活动
阿里云ECS服务器 - 限时特惠活动

云服务器爆款直降90%

新客首单¥68起 | 人人可享99元套餐,续费同价 | u2a指定配置低至2.5折1年,立即选购享更多福利!

新客首单¥68起
人人可享99元套餐
弹性计费
7x24小时售后
立即查看活动详情
阿里云ECS服务器特惠活动