递归方法,查询出树该组织及以下组织的组织ID

时间:2022-12-17 07:43:34
-- 查询出该组织下所有组织id的集合
--方法一:

public String getAllOrgidsTwo(Integer orgid){
List<Integer> orgids=new ArrayList<Integer>();
orgids.add(orgid);
List<Integer> result=new ArrayList<Integer>();
String result1=getAllOrgidTwo(orgids, result).toString();
result1=result1.replace("[", "");
result1=result1.replace("]", "");
String result2=getAllOrgids(orgid);
return result2;
}

/**
* 查询出该组织及以下组织的所有组织ID方法二
* @param orgid
* @param list
* @return
*/
public List<Integer> getAllOrgidTwo(List<Integer> orgid,List<Integer> list){
list.addAll(orgid);
List<Integer> intList=new ArrayList<Integer>();
for(Integer i : orgid){
List<Org> orglist = orgService.selectInfo(" FROM Org Where parentId="+i);
for(Org o : orglist){
intList.add(o.getOrgid());
}
}
if(intList.size()>0){
return getAllOrgidTwo(intList,list);
}
return list;
}

--方法二:

/**
* 传组织ID查询出该组织及以下组织的所有组织ID 2017-11-23 HJJ
*/
public String getAllOrgids(Integer orgid){
String allOrgId=getAllOrgid(orgid,"");
if("".equals(allOrgId)){
return orgid.toString();
}else{
allOrgId+=","+orgid;
return allOrgId;
}
}

/**
* 传组织ID和接收String,查询出该组织以下组织(不包括本组织)的所有组织ID 2017-11-23 HJJ
*/
public String getAllOrgid(Integer orgid,String str){
List<Org> orglist = orgService.selectInfo("FROM Org ");
if(orglist!=null&&orglist.size()>0){
int index = 0;
for(Org o : orglist){
String parentId1=o.getParentId().toString();
String orgidNow1=orgid.toString();
if(parentId1.equals(orgidNow1)){
if(index > 0){
str += ",";
index = 0;
}
str+=o.getOrgid();
boolean bool = false;
for(int j=0; j< orglist.size(); j++){
String parentId2=orglist.get(j).getParentId().toString();
String orgidNow2=o.getOrgid().toString();
if(parentId2.equals(orgidNow2)){
bool = true;
break;
}
}
if(bool){
// 调用自身,实现递归
str += ",";
str = getAllOrgid(o.getOrgid(),str);
}
index ++;
}
}
}
return str;
}

递归方法,查询出树该组织及以下组织的组织ID的更多相关文章

  1. &lbrack; 订单查询 &rsqb; 性能 高并发 : 分表 与 用户id&percnt;1024 存放表

    逻辑剥离, 保留核心部分 下单 { 核心功能 -- 买家查看订单, 卖家查看收到订单, 修改价格 5个表 附属功能 -- 库存量, 发短信, 给卖家发通知, 订单统计, 销售额统计 } 下单时 一个数 ...

  2. laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)

    laravel中比较常规的列表查询: /** * 活动列表 * @param Request $request * @return \Illuminate\Http\JsonResponse */ p ...

  3. Oracle采购模块中的多组织访问控制(MOAC)

     1. 概述 从Release12开始启用多组织访问控制功能,将允许用户在一个单独的职责中访问一个或者多个经营单位(OU-Operation Units)的数据.这个功能允许用户在一个可共享服务的 ...

  4. Winform开发中对界面的组织布局

    在设计界面的时候,不管是在Web端,还是在Winform端,或者是WPF或者移动界面等应用上,我们对界面的组织布局,一直是比较有趣的话题,而组织界面的好坏从用户的感受来看,可以提供程序可使用性高低,也 ...

  5. sql server 索引阐述系列三 表的堆组织

    一.   概述 这一节来详细介绍堆组织,通过讲解堆的结构,堆与非聚集索引的关系,堆的应用场景,堆与聚集索引的存储空间占用,堆的页拆分现象,最后堆的使用建议 ,这几个维度来描述堆组织.在sqlserve ...

  6. CRM的组织架构

    PPOMA_CRM... 和ERP的组织架构一样的. 这边在功能参数里匹配ECC的组织.ECC的组织架构则会设置控制范围,成本中心啊,业务范围,公司,人事范围等. 下面说说常见函数RH_STRUC_G ...

  7. Hyperledger Fabric 动态增加组织到网络中

    本文基于Hyperledger Fabric 1.4版本. 官方文档地址:传送门 动态添加一个组织到Fabric网络中也是一个比较重要的功能.官方文档写的已经很详细了,有能力的尽量还是看官方文档,本文 ...

  8. 通过Ldap实现人事系统组织人事和AD的同步

    项目需求:同步人事系统的组织架构-对应AD的OU树同步人事系统的员工-对应AD的用户 创建OU 名字不能重复,需要父级路径(parentOrganizeUnit)以及新ou的名字(name),如果最父 ...

  9. Fabric进阶(三)—— 使用SDK动态增加组织

    在fabric网络运行过程中动态追加新的组织是相当复杂的,网上的资料也十分匮乏,大多是基于first-network这样的简单示例,而且是使用启动cli容器的方法来增加组织,几乎没有针对实际应用的解决 ...

随机推荐

  1. XML 概述 (可扩展标记语言)

    XML:eXtensible Markup Language  可扩展标记语言 概念:可扩展:xml中所有的标签都是自定义的.没有预定义的.        功能:            存储数据   ...

  2. 史上最详细&OpenCurlyDoubleQuote;截图”搭建Hexo博客——For Windows

    http://angelen.me/2015/01/23/2015-01-23-%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86%E2%80%9C%E6%88 ...

  3. iOS:搭建本地的服务器

    一.介绍 作为一个专业的程序员,不管你是前端还是移动端或者是后台,能够自己试着搭建一个本地的服务器还是很有必要的,有的时候,我们可以自己测试一些数据,很方便开发.其实,mac是自带有本地的服务器的,用 ...

  4. iOS UIBezierPath知识介绍

    UIBezierPath是在画图,定制动画轨迹中都有应用. UIBezierPath有许多类方法,能够创建基本的曲线,比如利用一个rect创建一个椭圆path的方法:bezierPathWithOva ...

  5. C&num;计算某一些任务的执行时间&lpar;消耗时间&rpar;

    class Program { static void Main(string[] args) { System.Diagnostics.Stopwatch sw = new System.Diagn ...

  6. 浏览器中显示视频,flash等的代码处理

    window.flashView=function(flash_url){ var html=''; html+='<div id="obj_flash_div">'; ...

  7. angularJS之使用过滤器转化输出 &lpar;angularJS系列最后一篇&rpar;

    在视图模板中使用过滤器 过滤器也是一种服务,负责对输入的内容进行处理转换,以便更好地向用户显示. 过滤器可以在模板中的{{}}标记中使用: {{ expression | filter:arg1:ar ...

  8. 蓝桥杯-有奖猜谜-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  9. RestServer 2&period;0 正式版发布

    RestServer 2.0 正式版发布 使用许可&版权说明 在保持本软件完整的情况下可以将本软件用于任何商业用途. 本软件可以*传播,但是请保持软件相关文件和说明文档完整. 未经许可不得将 ...

  10. NSURLSession 所有的都在这里&lpar;二&rpar;

    前面一篇我们说了什么? 这是这个关于NSURLSession的第二篇文章,第一篇再加上这篇文章,就大概的把NSURLSession的API以及一些简单使用我们也就说的差不多了,这篇文章总结哪些点呢?相 ...