diff --git a/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java b/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java index 2e641857..716d949d 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java +++ b/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java @@ -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> 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 getList = sarFileSplitMenuEOService.queryByList(page); //转树结构 - List menuEOS = convertToTree(getList); -// getList = menuEOS.get(0).getChildren(); + List menuEOS = new ArrayList<>(); + if (StringUtils.isBlank(temporaryName)){ + menuEOS = convertToTree(getList); + } + if (StringUtils.isNotBlank(temporaryName)){ + menuEOS = convertToTree(getList, temporaryName); + } return Result.OK(menuEOS); } + public List convertToTree(List menuList, String name) { + Set 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 sarFileSplitMenuEOS = menuList.stream().filter(vo -> menuIds.contains(vo.getId())).collect(Collectors.toList()); + for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOS) { + sarFileSplitMenuEO.setChildren(null); + } + List menuEOList = convertToTree(sarFileSplitMenuEOS); + return menuEOList; + } + public List convertToTree(List menuList) { // 创建一个Map来保存id与SarFileSplitMenuEO对象的映射关系 Map menuMap = new HashMap<>();