zoukankan      html  css  js  c++  java
  • 根据租户id获取部门树状结构有父子结构的数据list

    /**
         * 根据租户id获取部门树状结构
         * @param tenantId
         * @return
         */
        @GetMapping("getDeptTreeList")
        public R getDeptTreeList(String tenantId){
            List<Dept>list=deptUserUtil.getDeptList(tenantId);
            System.out.println("根据租户id获取部门树状结构list================"+list);
            //实体类转map
            List<Map<String,Object>> listMap=EntityConvertMap(list);
            //把带有父子机构的数据变成treelist形式
            List<Map<String,Object>>treeList=getTreeList("id","parentId","children", listMap);
            System.out.println("根据租户id获取部门树状结构treeList================"+treeList);
            return R.data(treeList);
        }
        //list实体类转换成map
        public static  List<Map<String,Object>> EntityConvertMap(List<Dept> list){
            List<Map<String,Object>> l = new LinkedList<>();
            try {
                for(Dept t : list){
                    Map<String,Object> map = new HashMap<>();
                    Method[] methods = t.getClass().getMethods();
                    for (Method method : methods) {
                        if (method.getName().startsWith("get")) {
                            String name = method.getName().substring(3);
                            name = name.substring(0, 1).toLowerCase() + name.substring(1);
                            Object value = method.invoke(t);
                            map.put(name,value);
                        }
                    }
                    l.add(map);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return l;
        }
    
        //把带有父子机构的数据变成treelist形式
        public static List<Map<String, Object>> getTreeList(String id, String pid, String children, List<Map<String, Object>>list) {
    
            //给list的每一项加一个子项
            for(int i=0;i<list.size();i++) {
                list.get(i).put(children, new ArrayList<Map<String, Object>>());
                list.get(i).put("id",list.get(i).get("id").toString());
                list.get(i).put("parentId",list.get(i).get("parentId").toString());
                //managerUser
                list.get(i).put("managerUser",list.get(i).get("managerUser").toString());
            }
            System.out.println("把带有父子机构的数据变成treelist形式list==============="+list);
            List<Map<String, Object>>treelist=new ArrayList<Map<String, Object>>();
            for(Map<String, Object> outmap:list) {
                //System.out.println("把带有父子机构的数据变成outmap==============="+outmap);
                for(Map<String, Object> inmap:list) {
                    String outid=outmap.get(id).toString();
                    String inpid=inmap.get(pid).toString();
                    if(outid.equals(inpid)) {
                        List<Map<String, Object>>maplist=(ArrayList) outmap.get(children);
                        maplist.add(inmap);
                    }
                }
                String prid=outmap.get(pid).toString();
                if(!Func.isEmpty(prid)&& prid.equals("0")) {
                    treelist.add(outmap);
                }
            }
            return treelist;
        }
  • 相关阅读:
    MySQL Workbench的使用教程 (初级入门版)
    优化MySQL语句的十个建议
    Openfire+Spark+Spark Web安装配置(一)
    agsxmpp官方源代码
    (转载)Oracle中删除外键约束、禁用约束、启用约束
    8.手工备份恢复备用数据库(练习10、11)
    (转载)图文推荐给开发人员非常实用的站点
    13.服务器管理恢复RMAN备份(练习20)
    9.手工备份恢复表空间时间点恢复(练习12.13.14)
    12.服务器管理恢复RMAN配置(练习19)
  • 原文地址:https://www.cnblogs.com/xianz666/p/13553451.html
Copyright © 2011-2022 走看看