部门上查,下钻

//不定下钻次数 循环
	public Map<String,Object> doAllFor(TSDepart tSDepart){
		Map<String,Object> map = Maps.newHashMap();
		List<String> departsId = Lists.newArrayList();
		departsId.add(tSDepart.getId());
		for (TSDepart tsdc : tSDepart.getTSDeparts()) {
			departsId.add(tsdc.getId());
		}
		map.put("departsId", departsId);//
		map.put("childsList", tSDepart.getTSDeparts());//
		return map;
	}
使用
//提取部门id
		List<String> departsId = Lists.newArrayList();
		departsId.add(departId);//本部门
		//下属部门=========================
		List<TSDepart> tempList = Lists.newArrayList();//1
		List<TSDepart> childsList = Lists.newArrayList();//2
		tempList.addAll(departsList);//第一层
		//遍历第一层的数据并汇总第二层的数据...
		k:for (int i = 0; i < tempList.size(); i++) {
			TSDepart tsd = tempList.get(i);
			Map<String,Object> map = doAllFor(tsd);
			departsId.addAll((List<String>) map.get("departsId"));
			childsList.addAll((List<TSDepart>) map.get("childsList"));
			
			if(oConvertUtils.isNotEmpty(childsList) && i == (tempList.size()-1) ) {
				tempList = Lists.newArrayList();
				tempList.addAll(childsList);
				childsList = Lists.newArrayList();
				i = 0;
				continue k;
			}
		}
		

		String[]  departIdArr = new String[departsId.size()];













	
	//不定上钻次数 循环
	public Map<String,Object> doGetForP(TSDepart tSDepart){
		Map<String,Object> map = Maps.newHashMap(); 
		map.put("departsName", tSDepart.getTSPDepart().getDepartname());//
		map.put("p", tSDepart.getTSPDepart());//
		return map;
	}

/使用
			String depart = jrInfo.getDepart();
			TSDepart tsDepart_pa = new TSDepart();
			if(StringUtils.isNotBlank(depart)) {
				tsDepart_pa = this.systemService.get(TSDepart.class,depart);
			}
			//
			TSDepart tsDepartP = new TSDepart();
			String pDepartStr = tsDepart_pa.getDepartname();
			tsDepartP = tsDepart_pa;
			//当不是空那么就找父级
			while(oConvertUtils.isNotEmpty(tsDepartP)) {
				Map<String,Object> map_p = doGetForP(tsDepartP);
				tsDepartP = ((TSDepart)map_p.get("p"));
				pDepartStr = map_p.get("departsName").toString() + ">" + pDepartStr;
				if(oConvertUtils.isEmpty(tsDepartP.getTSPDepart())) {
					break;
				}
			}
			
			
			//上级部门串
			map.put("pDepartStr",pDepartStr);





 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值