转树结构

This commit is contained in:
caozhen
2023-09-22 12:00:19 +08:00
parent 0352b6412b
commit 00d44c155a
@@ -15,7 +15,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/split/sarFileSplitMenu")
@@ -51,9 +54,40 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
// page.setOrderBy("regexp_replace(replace('.'||NAME, '.', '.00000000'), '0+([^\\.]{8})', '\\1')");
page.setOrderBy("display_seq asc");
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
//转树结构
List<SarFileSplitMenuEO> menuEOS = convertToTree(getList);
getList = menuEOS.get(0).getChildren();
return Result.OK(getList);
}
public List<SarFileSplitMenuEO> convertToTree(List<SarFileSplitMenuEO> menuList) {
// 创建一个Map来保存id与SarFileSplitMenuEO对象的映射关系
Map<String, SarFileSplitMenuEO> menuMap = new HashMap<>();
for (SarFileSplitMenuEO menu : menuList) {
menuMap.put(menu.getId(), menu);
}
List<SarFileSplitMenuEO> rootNodes = new ArrayList<>();
for (SarFileSplitMenuEO menu : menuList) {
String parentId = menu.getPId();
if (parentId == null) {
// 如果pid为空,将其作为根节点添加到结果集
rootNodes.add(menu);
} else {
// 如果pid不为空,将其作为子节点添加到父节点中
SarFileSplitMenuEO parentMenu = menuMap.get(parentId);
if (parentMenu != null) {
List<SarFileSplitMenuEO> childList = parentMenu.getChildren();
if (childList == null) {
childList = new ArrayList<SarFileSplitMenuEO>();
parentMenu.setChildren(childList);
}
childList.add(menu);
}
}
}
return rootNodes;
}
@ApiOperation(value = "文档拆分条款目录-新增Y")
@PostMapping("/addMenu")
@RequiresPermissions("split:sarFileSplitMenu:add")