diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/DepartmentCoConvertor.java b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/DepartmentCoConvertor.java index 87a9c74..282b07b 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/DepartmentCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/DepartmentCoConvertor.java @@ -5,6 +5,7 @@ import com.zcloud.basic.info.dto.clientobject.DepartmentTreeInfoCO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.gbscommon.zclouddepartment.response.ZcloudDepartmentInfoCo; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; import java.util.List; diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java index 6cbdc7b..1683d8c 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/DepartmentQueryExe.java @@ -15,6 +15,7 @@ import com.zcloud.basic.info.dto.clientobject.DepartmentTreeInfoCO; import com.zcloud.basic.info.persistence.dataobject.DepartmentDO; import com.zcloud.basic.info.persistence.repository.DepartmentRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Tools; import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -50,37 +51,18 @@ public class DepartmentQueryExe { } public List listTree(DepartmentTreeQry departmentQry) { - if(Objects.isNull(departmentQry.getEqCorpinfoId())){ + if (Objects.isNull(departmentQry.getEqCorpinfoId())) { departmentQry.setEqCorpinfoId(AuthContext.getTenantId()); - } Map parmas = PageQueryHelper.toHashMap(departmentQry); List pageResponse = departmentRepository.listTree(parmas); - if(CollUtil.isEmpty(pageResponse)) { + if (CollUtil.isEmpty(pageResponse)) { return Collections.emptyList(); } List examCenterCOS = departmentCoConvertor.converDOsToInfoCOs(pageResponse); - Map> childrenMap = new HashMap<>(); - for (DepartmentTreeInfoCO dept : examCenterCOS) { - childrenMap - .computeIfAbsent(dept.getParentId(), k -> new ArrayList<>()) - .add(dept); - } - return buildTree(childrenMap, 0L); + return Tools.buildEntityTree(examCenterCOS, "id", "parentId", "childrenList"); } - private List buildTree(Map> childrenMap, Long parentId) { - List nodes = childrenMap.get(parentId); - if (nodes == null) { - return Collections.emptyList(); - } - for (DepartmentTreeInfoCO node : nodes) { - // 递归构建子节点 - List children = buildTree(childrenMap, node.getId()); - node.setChildrenList(children); - } - return nodes; - } public DepartmentCO info(Long id) { DepartmentDO info = departmentRepository.getById(id);