From 25598fa9d9a5bde7978cf0d8a6623a09bb679461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sun, 20 Feb 2022 01:46:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/ctrl/XmMenuController.java | 41 ++++++++++++++----- .../core/ctrl/XmProjectPhaseController.java | 12 +++++- .../com/xm/core/ctrl/XmTaskController.java | 25 +++++++++-- 3 files changed, 62 insertions(+), 16 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java index 7eae7731..3343153c 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java @@ -23,10 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; 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; import static com.mdp.core.utils.BaseUtils.map; @@ -95,8 +92,16 @@ public class XmMenuController { List> xmMenuList = xmMenuService.selectListMapByWhere(xmMenu); //列出XmMenu列表 PageUtils.responePage(m, xmMenuList); if("1".equals(xmMenu.get("withParents")) && !"1".equals(xmMenu.get("isTop"))){ - List pidPathsList=xmMenuList.stream().map(i-> PubTool.getPidPaths((String)i.get("pidPaths"),(String)i.get("menuId"))).collect(Collectors.toSet()).stream().collect(Collectors.toList()); - List> parentList=xmMenuService.selectListMapByWhere(map("pidPathsList",pidPathsList)); + Set pidPathsSet=new HashSet<>(); + Set idSet=new HashSet<>(); + for (Map map : xmMenuList) { + String id= (String) map.get("menuId"); + idSet.add(id); + String pidPaths= (String) map.get("pidPaths"); + pidPathsSet.add(PubTool.getPidPaths(pidPaths,id)); + } + List> parentList=xmMenuService.selectListMapByWhere(map("pidPathsList",pidPathsSet.stream().collect(Collectors.toList()))); + parentList=parentList.stream().filter(i->!idSet.contains(i.get("menuId"))).collect(Collectors.toList()); xmMenuList.addAll(parentList); m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); } @@ -132,8 +137,16 @@ public class XmMenuController { List> xmMenuList = xmMenuService.selectListMapByWhereWithState(xmMenu); //列出XmMenu列表 PageUtils.responePage(m, xmMenuList); if("1".equals(xmMenu.get("withParents")) && !"1".equals(xmMenu.get("isTop"))){ - List pidPathsList=xmMenuList.stream().map(i-> PubTool.getPidPaths((String)i.get("pidPaths"),(String)i.get("menuId"))).collect(Collectors.toSet()).stream().collect(Collectors.toList()); - List> parentList=xmMenuService.selectListMapByWhereWithState(map("pidPathsList",pidPathsList)); + Set pidPathsSet=new HashSet<>(); + Set idSet=new HashSet<>(); + for (Map map : xmMenuList) { + String id= (String) map.get("menuId"); + idSet.add(id); + String pidPaths= (String) map.get("pidPaths"); + pidPathsSet.add(PubTool.getPidPaths(pidPaths,id)); + } + List> parentList=xmMenuService.selectListMapByWhereWithState(map("pidPathsList",pidPathsSet.stream().collect(Collectors.toList()))); + parentList=parentList.stream().filter(i->!idSet.contains(i.get("menuId"))).collect(Collectors.toList()); xmMenuList.addAll(parentList); m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); } @@ -155,8 +168,16 @@ public class XmMenuController { List> xmMenuList = xmMenuService.selectListMapByWhereWithPlan(xmMenu); //列出XmMenu列表 PageUtils.responePage(m, xmMenuList); if("1".equals(xmMenu.get("withParents")) && !"1".equals(xmMenu.get("isTop"))){ - List pidPathsList=xmMenuList.stream().map(i-> PubTool.getPidPaths((String)i.get("pidPaths"),(String)i.get("menuId"))).collect(Collectors.toSet()).stream().collect(Collectors.toList()); - List> parentList=xmMenuService.selectListMapByWhereWithPlan(map("pidPathsList",pidPathsList)); + Set pidPathsSet=new HashSet<>(); + Set idSet=new HashSet<>(); + for (Map map : xmMenuList) { + String id= (String) map.get("menuId"); + idSet.add(id); + String pidPaths= (String) map.get("pidPaths"); + pidPathsSet.add(PubTool.getPidPaths(pidPaths,id)); + } + List> parentList=xmMenuService.selectListMapByWhereWithPlan(map("projectId",xmMenu.get("projectId"),"pidPathsList",pidPathsSet.stream().collect(Collectors.toList()))); + parentList=parentList.stream().filter(i->!idSet.contains(i.get("menuId"))).collect(Collectors.toList()); xmMenuList.addAll(parentList); m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); } diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java index 18666f7e..6ac23f10 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmProjectPhaseController.java @@ -118,8 +118,16 @@ public class XmProjectPhaseController { List> xmProjectPhaseList = xmProjectPhaseService.selectListMapByWhere(xmProjectPhase); //列出XmProjectPhase列表 PageUtils.responePage(m, xmProjectPhaseList); if("1".equals(xmProjectPhase.get("withParents")) && !"1".equals(xmProjectPhase.get("isTop"))){ - List pidPathsList=xmProjectPhaseList.stream().map(i-> PubTool.getPidPaths((String)i.get("pidPaths"),(String)i.get("id"))).collect(Collectors.toSet()).stream().collect(Collectors.toList()); - List> parentList=xmProjectPhaseService.selectListMapByWhere(map("pidPathsList",pidPathsList)); + Set pidPathsSet=new HashSet<>(); + Set idSet=new HashSet<>(); + for (Map map : xmProjectPhaseList) { + String id= (String) map.get("id"); + idSet.add(id); + String pidPaths= (String) map.get("pidPaths"); + pidPathsSet.add(PubTool.getPidPaths(pidPaths,id)); + } + List> parentList=xmProjectPhaseService.selectListMapByWhere(map("pidPathsList",pidPathsSet.stream().collect(Collectors.toList()))); + parentList=parentList.stream().filter(i->!idSet.contains(i.get("id"))).collect(Collectors.toList()); xmProjectPhaseList.addAll(parentList); m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); } diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java index 2e76fa36..f8ebe903 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java @@ -143,8 +143,16 @@ public class XmTaskController { List> xmTaskVoList = xmTaskService.getTask(xmTask); //列出XmTask列表 PageUtils.responePage(m,xmTaskVoList); if("1".equals(xmTask.get("withParents")) && !"1".equals(xmTask.get("isTop"))){ - List pidPathsList=xmTaskVoList.stream().map(i->PubTool.getPidPaths((String)i.get("pidPaths"),(String)i.get("id"))).collect(Collectors.toSet()).stream().collect(Collectors.toList()); - List> parentList=xmTaskService.getTask(map("pidPathsList",pidPathsList)); + Set pidPathsSet=new HashSet<>(); + Set idSet=new HashSet<>(); + for (Map map : xmTaskVoList) { + String id= (String) map.get("id"); + idSet.add(id); + String pidPaths= (String) map.get("pidPaths"); + pidPathsSet.add(PubTool.getPidPaths(pidPaths,id)); + } + List> parentList=xmTaskService.getTask(map("pidPathsList",pidPathsSet.stream().collect(Collectors.toList()))); + parentList=parentList.stream().filter(i->!idSet.contains(i.get("id"))).collect(Collectors.toList()); xmTaskVoList.addAll(parentList); m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); } @@ -227,8 +235,17 @@ public class XmTaskController { xmTaskVoList = xmTaskService.getTask(xmTask); //列出XmTask列表 PageUtils.responePage(m,xmTaskVoList); if("1".equals(xmTask.get("withParents")) && !"1".equals(xmTask.get("isTop"))){ - List pidPathsList=xmTaskVoList.stream().map(i-> PubTool.getPidPaths((String)i.get("pidPaths"),(String)i.get("id"))).collect(Collectors.toSet()).stream().collect(Collectors.toList()); - List> parentList=xmTaskService.getTask(map("pidPathsList",pidPathsList)); + + Set pidPathsSet=new HashSet<>(); + Set idSet=new HashSet<>(); + for (Map map : xmTaskVoList) { + String id= (String) map.get("id"); + idSet.add(id); + String pidPaths= (String) map.get("pidPaths"); + pidPathsSet.add(PubTool.getPidPaths(pidPaths,id)); + } + List> parentList=xmTaskService.getTask(map("pidPathsList",pidPathsSet.stream().collect(Collectors.toList()))); + parentList=parentList.stream().filter(i->!idSet.contains(i.get("id"))).collect(Collectors.toList()); xmTaskVoList.addAll(parentList); m.put("total", NumberUtil.getInteger(m.get("total"),0)+parentList.size()); }