文档拆分条款目录-查询/getSplitMenusByInfoId接口名字模糊查询(应该使用递归)
This commit is contained in:
+61
-6
@@ -3,22 +3,24 @@ package com.jero.modules.split.controller;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel;
|
||||
import com.jero.modules.laws.enterprise.util.FindsTreeNodeChildrenUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsTreeNode;
|
||||
import com.jero.modules.split.entity.SarFileSplitMenuEO;
|
||||
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
|
||||
import com.jero.modules.split.service.IFileSplitItemsEOService;
|
||||
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.slf4j.Logger;
|
||||
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;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/split/sarFileSplitMenu")
|
||||
@@ -50,16 +52,69 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
|
||||
@GetMapping("/getSplitMenusByInfoId")
|
||||
@RequiresPermissions("split:sarFileSplitItems:page")
|
||||
public Result<List<SarFileSplitMenuEO>> list(SarFileSplitMenuEOPage page) throws Exception {
|
||||
final String temporaryName = page.getName();
|
||||
page.setName(null);
|
||||
page.setValidFlag("0");
|
||||
// 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();
|
||||
List<SarFileSplitMenuEO> menuEOS = new ArrayList<>();
|
||||
if (StringUtils.isBlank(temporaryName)){
|
||||
menuEOS = convertToTree(getList);
|
||||
}
|
||||
if (StringUtils.isNotBlank(temporaryName)){
|
||||
menuEOS = convertToTree(getList, temporaryName);
|
||||
}
|
||||
return Result.OK(menuEOS);
|
||||
}
|
||||
|
||||
public List<SarFileSplitMenuEO> convertToTree(List<SarFileSplitMenuEO> menuList, String name) {
|
||||
Set<String> menuIds = new HashSet<>();
|
||||
for (SarFileSplitMenuEO menuEO : menuList) {
|
||||
String eoName = menuEO.getName();
|
||||
if (eoName.contains(name)){
|
||||
menuIds.add(menuEO.getId());
|
||||
String pId = menuEO.getPId();
|
||||
if (StringUtils.isNotBlank(pId)){
|
||||
SarFileSplitMenuEO eo = menuList.stream().filter(vo -> vo.getId().equals(pId)).collect(Collectors.toList()).get(0);
|
||||
menuIds.add(eo.getId());
|
||||
String pId1 = eo.getPId();
|
||||
if (StringUtils.isNotBlank(pId1)){
|
||||
SarFileSplitMenuEO eo2 = menuList.stream().filter(vo -> vo.getId().equals(pId1)).collect(Collectors.toList()).get(0);
|
||||
menuIds.add(eo2.getId());
|
||||
String pId2 = eo2.getPId();
|
||||
if (StringUtils.isNotBlank(pId2)){
|
||||
SarFileSplitMenuEO eo3 = menuList.stream().filter(vo -> vo.getId().equals(pId2)).collect(Collectors.toList()).get(0);
|
||||
menuIds.add(eo3.getId());
|
||||
String pId3 = eo3.getPId();
|
||||
if (StringUtils.isNotBlank(pId3)){
|
||||
SarFileSplitMenuEO eo4 = menuList.stream().filter(vo -> vo.getId().equals(pId3)).collect(Collectors.toList()).get(0);
|
||||
menuIds.add(eo4.getId());
|
||||
String pId4 = eo4.getPId();
|
||||
if (StringUtils.isNotBlank(pId4)){
|
||||
SarFileSplitMenuEO eo5 = menuList.stream().filter(vo -> vo.getId().equals(pId4)).collect(Collectors.toList()).get(0);
|
||||
menuIds.add(eo5.getId());
|
||||
String pId5 = eo5.getPId();
|
||||
if (StringUtils.isNotBlank(pId5)){
|
||||
SarFileSplitMenuEO eo6 = menuList.stream().filter(vo -> vo.getId().equals(pId5)).collect(Collectors.toList()).get(0);
|
||||
menuIds.add(eo6.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
List<SarFileSplitMenuEO> sarFileSplitMenuEOS = menuList.stream().filter(vo -> menuIds.contains(vo.getId())).collect(Collectors.toList());
|
||||
for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOS) {
|
||||
sarFileSplitMenuEO.setChildren(null);
|
||||
}
|
||||
List<SarFileSplitMenuEO> menuEOList = convertToTree(sarFileSplitMenuEOS);
|
||||
return menuEOList;
|
||||
}
|
||||
|
||||
public List<SarFileSplitMenuEO> convertToTree(List<SarFileSplitMenuEO> menuList) {
|
||||
// 创建一个Map来保存id与SarFileSplitMenuEO对象的映射关系
|
||||
Map<String, SarFileSplitMenuEO> menuMap = new HashMap<>();
|
||||
|
||||
Reference in New Issue
Block a user