@RequestMapping("/getOrgTree") public void getOrgTree(HttpServletRequest request,HttpServletResponse response,HttpSession session) { List<Map<String, Object>> childArray = new ArrayList<Map<String, Object>>(); try { Integer parentId=0; // 將節點信息轉化成json串的樹形結構 AdminUser user = (AdminUser) session.getAttribute("user"); //當前登錄用戶的組織機構 if(user.getOrgId()==1) { parentId=0; } else { parentId=user.getOrgParentId(); } List<Organize> treeRootList = organizeService.getOrgRootList(parentId); for (Organize organize : treeRootList) { Map<String, Object> imageCategory = new HashMap<String, Object>(); Integer nodeId = Integer.valueOf(organize.getId()); // 獲取節點值 imageCategory.put("id", nodeId); imageCategory.put("pId", organize.getParentId()); imageCategory.put("name", organize.getOrgName()); //獲取子節點 List<Map<String, Object>> childMap = getOrgChildren(nodeId); if(childMap.size()>0) { imageCategory.put("children", childMap); childArray.add(imageCategory); } else { childArray.add(imageCategory); } } //System.out.println(childArray); String jsonStr = JSONArray.fromObject(childArray).toString(); JSONArray ja = JSONArray.fromObject(jsonStr); response.getWriter().print(ja); } catch (IOException e) { e.printStackTrace(); } } private List<Map<String, Object>> getOrgChildren(Integer nodeId) { List<Map<String, Object>> children = new ArrayList<Map<String, Object>>(); //獲取子組織機構 List<Organize> treeChildList = organizeService.getTreeChildList(nodeId); for (Organize child : treeChildList) { Map<String, Object> imageCategory = new HashMap<String, Object>(); Integer id = child.getId(); imageCategory.put("id", id); imageCategory.put("pId", child.getParentId()); imageCategory.put("name", child.getOrgName()); List<Map<String, Object>> childMap = getOrgChildren(child.getId()); if(childMap.size()>0) { imageCategory.put("children", childMap); children.add(imageCategory); } else { children.add(imageCategory); } } return children; }