From 0513cb1e5903ec10e0f770677ccdd18d9a1b9287 Mon Sep 17 00:00:00 2001 From: caozhen <18736171426@139.com> Date: Fri, 22 Sep 2023 16:37:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=8B=86=E5=88=86=E6=9D=A1?= =?UTF-8?q?=E6=AC=BE=E7=9B=AE=E5=BD=95-=E6=9F=A5=E8=AF=A2/getSplitMenusByI?= =?UTF-8?q?nfoId=E6=8E=A5=E5=8F=A3=E5=90=8D=E5=AD=97=E6=A8=A1=E7=B3=8A?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=88=E5=BA=94=E8=AF=A5=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=80=92=E5=BD=92=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SarFileSplitMenuEOController.java | 67 +++++++++++++++++-- 1 file changed, 61 insertions(+), 6 deletions(-) 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<>();