单表tree递归java

如下

/**
	 * list 转换成tree
	 * @param allList
	 * @param parentNode
	 * @return
	 */
	private List<LaJlItemDir> createItemDirDataJhzl(List<LaJlItemDir> itemDirList){
		List<LaJlItemDir> arrayList = new ArrayList<LaJlItemDir>();
		for (int i=0; i< itemDirList.size(); i++) {
			  Map<String, Object> param = new HashMap<String, Object>();
			     param.put("pid", itemDirList.get(i).getId());
			     List<LaJlItemDir> itemDirList_son = dataService.list(TREE_SQL_ID, param);
			    for (LaJlItemDir laJlItemDirDto2 : itemDirList_son) {
			    	 itemDirList.add(laJlItemDirDto2);
				}
			    createItemDirDataJhzl(itemDirList_son);
			    arrayList.add(itemDirList.get(i));
		}
		return arrayList;
	}

调用的方法传入

/**
	 * 用于根据相关信息查询当前页面记录
	 * 
	 * @param param
	 *            相关参数
	 * @return list 当前页数据记录
	 */
	@Override
	public List<LaJlItemDir> listJhgl(Map<String, Object> param) {
		List<LaJlItemDir> createItemDirDataJhzl = new ArrayList<LaJlItemDir>();
		if (param.get("pid")!=null&&!"".equals(param.get("pid"))) {
			 Map<String, Object> pMap = new HashMap<String, Object>();
			 pMap.put("pid", param.get("pid"));
			List<LaJlItemDir> list = dataService.list(TREE_SQL_ID, pMap);
			createItemDirDataJhzl = createItemDirDataJhzl(list);
		}else {
			List<LaJlItemDir> list = dataService.list(TREE_SQL_ID);
			for (LaJlItemDir laJlItemDir : list) {
				createItemDirDataJhzl.add(laJlItemDir);
			}
		}
		ArrayList<LaJlItemDir> arrayList = new ArrayList<LaJlItemDir>();
		for (LaJlItemDir laJlItemDir : createItemDirDataJhzl) {
			if ("fxgc".equals(laJlItemDir.getType())) {
				arrayList.add(laJlItemDir);
			}
		}
		for (LaJlItemDir laJlItemDir : arrayList) {
			 Map<String, Object> dirMap = new HashMap<String, Object>();
			 dirMap.put("notes", laJlItemDir.getId());
			 List<LaJlWork> worklist = manageInformationService.getWorks(dirMap);
			 if (worklist.size()!=0) {
				 laJlItemDir.setActualStart(worklist.get(0).getCreatedTime());
				 if (worklist.get(0).getInspectLotCode()!=null&&!"".equals(worklist.get(0).getInspectLotCode())) {
					 laJlItemDir.setPlanNum(Double.parseDouble(worklist.get(0).getInspectLotCode()));
				 }
				 laJlItemDir.setPlacticalNum(worklist.get(worklist.size()-1).getWork());
				 if (laJlItemDir.getPlanNum()!=null&&laJlItemDir.getPlacticalNum()!=null) {
					 if (laJlItemDir.getPlacticalNum()==0) {
						 laJlItemDir.setCompletionRate((double) 0);
					 }else {
						 laJlItemDir.setCompletionRate(laJlItemDir.getPlanNum()/laJlItemDir.getPlacticalNum());
					 }
				 }
				 if (!"已完成".equals(laJlItemDir.getStatus())) {
					if (worklist.get(worklist.size()-1).getWork()==worklist.get(0).getWork()) {
						laJlItemDir.setStatus("待确认");
					}else if(worklist.get(worklist.size()-1).getWork()==0&&worklist.get(0).getWork()==0){
						laJlItemDir.setStatus("未开始");
					}else {
						laJlItemDir.setStatus("进行中");
					}
				 }else {
					 laJlItemDir.setStatus("已完成");
				 }
			}else {
				if (laJlItemDir.getStatus()==null&&!"已完成".equals(laJlItemDir.getStatus())) {
					laJlItemDir.setStatus("未开始");
				}
			}
		}
		ArrayList<LaJlItemDir> arrayList2 = new ArrayList<LaJlItemDir>();
		for (LaJlItemDir laJlItemDir : arrayList) {
			boolean flag = true;
			if (param.get("name")!=null&&!"".equals(param.get("name"))) {
				if (laJlItemDir.getName().contains(param.get("name").toString())) {
					
				}else {
					flag = false;
				}
			}
			if (param.get("status")!=null&&!"".equals(param.get("status"))) {
				if (laJlItemDir.getStatus().contains(param.get("status").toString())) {
					
				}else {
					flag = false;
				}
			}
			if (flag) {
				arrayList2.add(laJlItemDir);
			}
		}
		
		
		if (param.get("page")!=null&&param.get("rows")!=null) {
			List<LaJlItemDir> arrayList1 = new ArrayList<LaJlItemDir>();
			String pageStr = param.get("page").toString();
			String rowsStr = param.get("rows").toString();
			int page = Integer.parseInt(pageStr);
			int rows = Integer.parseInt(rowsStr);
			int num =page*rows-rows;
			if(arrayList2.size()<page*rows){
				for(int i=num;i<arrayList2.size();i++){
					arrayList1.add(arrayList2.get(i));
				}
			}else{
				for(int i=num;i<num+rows;i++){
					arrayList1.add(arrayList2.get(i));
				}
			}
			

			param.put("size", arrayList2.size());
			return arrayList1;
		}else {
			param.put("size", arrayList2.size());
			return arrayList2;
		}
	}

end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值