/** * 一次访问数据库 获取 ext 树 * * @param nodeId * @return * @create 2012-1-11 上午10:06:05 jinrey * @history */ public String getDepartmentByNodeId(String deptType) { // 执行查询,取得所有记录 Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("deptType", deptType); List<Department> list = entityDao.getDeptList(paramMap); // map Map<Integer, Department> map = new HashMap<Integer, Department>(); Department root = null; // 根结点 // 第一次循环,将结果集放到一个"Map键-值对"结构中,方便取出指定元素 for (Department treeNode : list) { map.put(treeNode.getId(), treeNode); if (treeNode.getParentId() == 1) { root = treeNode; } } // 第二次循环所有结点,将每个结点的子结点存入一个TreeSet中。*/ for (Department treeNode : list) { if (treeNode.getParentId() != 1) { map.get(treeNode.getParentId()).addChild(treeNode); } } // 递归方法toJsonString() 生成树字符串 String treeStr = "[" + root.toJsonString() + "]"; return treeStr; }
@SuppressWarnings("unchecked") public List<Department> getParentDeptList(Integer id) { List tempList = new ArrayList(); while (true) { // id 为 顶级部门 (父节点)为0 if (id.intValue() == Department.rootNode.intValue()) { break; } Department dept = entityDao.queryByDepartmentId(id); tempList.add(dept); if (dept.getParentId().intValue() != Department.rootNode.intValue()) { dept = entityDao.queryByDepartmentId(dept.getParentId()); tempList.add(dept); } id = dept.getParentId(); } return tempList; }
public void insertDepartment(Department o) { try { if (o.getParentId() == 0) { o.setParentId(Department.rootNode); // o.setParentName(o.getDeptName()); entityDao.insert(o); } else { Department dept = this.getDepartmentId(o.getParentId()); dept.setIsLeaf("n"); entityDao.update(dept); String idPath = dept.getFullIdPath() == null ? "" : dept.getFullIdPath(); String namePath = dept.getFullNamePath() == null ? "" : dept.getFullNamePath(); // id全路径格式:/1/2/ o.setFullIdPath(idPath + dept.getId() + "/"); o.setFullNamePath(namePath + dept.getDeptName() + "/"); o.setOrgLever(Integer.valueOf((dept.getOrgLever().intValue() + 1))); // o.setParentName(dept.getDeptName()); entityDao.insert(o); } } finally { } }
public String assemblyCurParentDeptTree(Integer id) { Department dept = entityDao.get(id); dept = entityDao.get(dept.getParentId()); return assemblyCurSubDeptTree(dept.getId()); }