Пример #1
0
  /**
   * 一次访问数据库 获取 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;
  }
Пример #2
0
 @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;
 }
Пример #3
0
  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 {

    }
  }
Пример #4
0
 public String assemblyCurParentDeptTree(Integer id) {
   Department dept = entityDao.get(id);
   dept = entityDao.get(dept.getParentId());
   return assemblyCurSubDeptTree(dept.getId());
 }