递归方法,查询出树该组织及以下组织的组织ID
-- 查询出该组织下所有组织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的更多相关文章
- [ 订单查询 ]  性能 高并发 : 分表 与 用户id%1024 存放表
		逻辑剥离, 保留核心部分 下单 { 核心功能 -- 买家查看订单, 卖家查看收到订单, 修改价格 5个表 附属功能 -- 库存量, 发短信, 给卖家发通知, 订单统计, 销售额统计 } 下单时 一个数 ... 
- laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)
		laravel中比较常规的列表查询: /** * 活动列表 * @param Request $request * @return \Illuminate\Http\JsonResponse */ p ... 
- Oracle采购模块中的多组织访问控制(MOAC)
		 1. 概述 从Release12开始启用多组织访问控制功能,将允许用户在一个单独的职责中访问一个或者多个经营单位(OU-Operation Units)的数据.这个功能允许用户在一个可共享服务的 ... 
- Winform开发中对界面的组织布局
		在设计界面的时候,不管是在Web端,还是在Winform端,或者是WPF或者移动界面等应用上,我们对界面的组织布局,一直是比较有趣的话题,而组织界面的好坏从用户的感受来看,可以提供程序可使用性高低,也 ... 
- sql server 索引阐述系列三 表的堆组织
		一. 概述 这一节来详细介绍堆组织,通过讲解堆的结构,堆与非聚集索引的关系,堆的应用场景,堆与聚集索引的存储空间占用,堆的页拆分现象,最后堆的使用建议 ,这几个维度来描述堆组织.在sqlserve ... 
- CRM的组织架构
		PPOMA_CRM... 和ERP的组织架构一样的. 这边在功能参数里匹配ECC的组织.ECC的组织架构则会设置控制范围,成本中心啊,业务范围,公司,人事范围等. 下面说说常见函数RH_STRUC_G ... 
- Hyperledger Fabric 动态增加组织到网络中
		本文基于Hyperledger Fabric 1.4版本. 官方文档地址:传送门 动态添加一个组织到Fabric网络中也是一个比较重要的功能.官方文档写的已经很详细了,有能力的尽量还是看官方文档,本文 ... 
- 通过Ldap实现人事系统组织人事和AD的同步
		项目需求:同步人事系统的组织架构-对应AD的OU树同步人事系统的员工-对应AD的用户 创建OU 名字不能重复,需要父级路径(parentOrganizeUnit)以及新ou的名字(name),如果最父 ... 
- Fabric进阶(三)—— 使用SDK动态增加组织
		在fabric网络运行过程中动态追加新的组织是相当复杂的,网上的资料也十分匮乏,大多是基于first-network这样的简单示例,而且是使用启动cli容器的方法来增加组织,几乎没有针对实际应用的解决 ... 
随机推荐
- 洛谷 P1486 [NOI2004]郁闷的出纳员【Treap】题解+AC代码
			题目描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资 ... 
- 8、flask之flask-script组件
			Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任 ... 
- 读书简记-java与模式
- Linux常用命令详解(二)  -- 查找常用命令
			locate: 作用:在后台数据库中按文件名搜索,搜索速度更快 命令格式:locate 文件名 选项或参数: -l num(要显示的行数) ... 
- ERROR namenode.NameNode: Failed to start namenode. java.lang.IllegalArgument
			这个问题一般是配置文件配置没有配置好的原因 
- 03 JVM的垃圾回收机制
			1.前言 理解JVM的垃圾回收机制(简称GC)有什么好处呢?作为一名软件开发者,满足自己的好奇心将是一个很好的理由,不过更重要的是,理解GC工作机制可以帮助你写出更好的Java程序. 在学习GC前,你 ... 
- CSS布局(六) 对齐方式
			一.水平居中: (1). 行内元素的水平居中? 如果被设置元素为文本.图片等行内元素时,在父元素中设置text-align:center实现行内元素水平居中,将子元素的display设置为inline ... 
- mysql4 - 高级操作
			一.联结(使用 where(早) 和 join(晚) 都可以完成联结) 1.1 从 Teacher 表和 Profession 表中,查询出老师的名字和所属专业的名称. SELECT t.`l_nam ... 
- Opencv 330 如何裁剪图片中大的目标?
			main.cpp cv::Mat CropImage(cv::Mat& src, cv::RotatedRect& rotatedRect); cv::Mat MaxBoxSelect ... 
- uva11400 动态规划
			没种电压灯泡要么全换,要么不换.状态d(i)表示前i种灯泡的最低价格. 转移方程: dp[i]=min(dp[i],dp[j]+(s[i]-s[j])*d[i].c+d[i].k); AC代码: #i ... 
