部門上查,下鑽

//不定下鑽次數 循環
	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);





 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章