文档拆分条款目录-查询/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.alibaba.fastjson.JSONObject;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
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.entity.SarFileSplitMenuEO;
|
||||||
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
|
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
|
||||||
import com.jero.modules.split.service.IFileSplitItemsEOService;
|
import com.jero.modules.split.service.IFileSplitItemsEOService;
|
||||||
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
import java.util.stream.Collectors;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/split/sarFileSplitMenu")
|
@RequestMapping("/split/sarFileSplitMenu")
|
||||||
@@ -50,16 +52,69 @@ public class SarFileSplitMenuEOController extends JeroController<SarFileSplitMen
|
|||||||
@GetMapping("/getSplitMenusByInfoId")
|
@GetMapping("/getSplitMenusByInfoId")
|
||||||
@RequiresPermissions("split:sarFileSplitItems:page")
|
@RequiresPermissions("split:sarFileSplitItems:page")
|
||||||
public Result<List<SarFileSplitMenuEO>> list(SarFileSplitMenuEOPage page) throws Exception {
|
public Result<List<SarFileSplitMenuEO>> list(SarFileSplitMenuEOPage page) throws Exception {
|
||||||
|
final String temporaryName = page.getName();
|
||||||
|
page.setName(null);
|
||||||
page.setValidFlag("0");
|
page.setValidFlag("0");
|
||||||
// page.setOrderBy("regexp_replace(replace('.'||NAME, '.', '.00000000'), '0+([^\\.]{8})', '\\1')");
|
// page.setOrderBy("regexp_replace(replace('.'||NAME, '.', '.00000000'), '0+([^\\.]{8})', '\\1')");
|
||||||
page.setOrderBy("display_seq asc");
|
page.setOrderBy("display_seq asc");
|
||||||
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
|
List<SarFileSplitMenuEO> getList = sarFileSplitMenuEOService.queryByList(page);
|
||||||
//转树结构
|
//转树结构
|
||||||
List<SarFileSplitMenuEO> menuEOS = convertToTree(getList);
|
List<SarFileSplitMenuEO> menuEOS = new ArrayList<>();
|
||||||
// getList = menuEOS.get(0).getChildren();
|
if (StringUtils.isBlank(temporaryName)){
|
||||||
|
menuEOS = convertToTree(getList);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(temporaryName)){
|
||||||
|
menuEOS = convertToTree(getList, temporaryName);
|
||||||
|
}
|
||||||
return Result.OK(menuEOS);
|
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) {
|
public List<SarFileSplitMenuEO> convertToTree(List<SarFileSplitMenuEO> menuList) {
|
||||||
// 创建一个Map来保存id与SarFileSplitMenuEO对象的映射关系
|
// 创建一个Map来保存id与SarFileSplitMenuEO对象的映射关系
|
||||||
Map<String, SarFileSplitMenuEO> menuMap = new HashMap<>();
|
Map<String, SarFileSplitMenuEO> menuMap = new HashMap<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user