二级部门的人员树状结构封装

一下代码只供参考,不保证正确。

@Override
    public TreeItem getAllTreeData() throws Exception {
        TreeItem rootNode = new TreeItem();
        rootNode.setId("0");
        rootNode.setText("根");

        List<TreeItem> list = new ArrayList<TreeItem>();
        TreeItem gwNode = getGuangWaiOrGuangXinDeptTreeData("1", "广外公司", CommonConstant.DB_DEPT_ROOT_ID_广外);
        list.add(gwNode);
        TreeItem gxNode = getGuangWaiOrGuangXinDeptTreeData("2", "广信公司", CommonConstant.DB_DEPT_ROOT_ID_广信);
        list.add(gxNode);

        //加载人员
        List<TFsqsgTeacher> gwUserList = getUsersByDeptId(CommonConstant.DB_DEPT_ROOT_ID_广外);
        List<TreeItem> gw = getUserTree(gwUserList);
        list.addAll(gw);
        List<TFsqsgTeacher> gxUserList = getUsersByDeptId(CommonConstant.DB_DEPT_ROOT_ID_广信);
        List<TreeItem> gx = getUserTree(gxUserList);
        list.addAll(gx);



        rootNode.setChildren(list);

        return rootNode;
    }

    //获取广外部门数据
    @Override
    public TreeItem getGuangWaiOrGuangXinDeptTreeData(String id, String text, String fid) throws Exception {
        TreeItem rootNode = new TreeItem();
        rootNode.setId(id);
        rootNode.setText(text);
        //根据总节点查询部门节点
        List<TreeItem> children = getChildrenByParentId(fid);
        rootNode.setChildren(children);

        return rootNode;
    }
    /**
     * 根据部门id获取该部门的孩子
     * @param deptId
     * @return
     * @throws Exception
     */
    public List<TreeItem> getChildrenByParentId(String deptId) throws Exception {
        List<TFsqsgDepartment> deptList = getDeptByParentId(deptId);
        List<TreeItem> list = null;

        if(deptList != null && deptList.size() > 0) {
            list = new ArrayList<TreeItem>();
            for(TFsqsgDepartment d: deptList) {
                String fid = d.getFid();
                TreeItem deptNode = new TreeItem();
                deptNode.setId(fid);
                deptNode.setText(d.getFname());

                //加载部门下的员工数据
                List<TreeItem> userTree = getUserTree(getUsersByDeptId(fid));
                deptNode.setChildren(userTree);


                list.add(deptNode);
            }
        }

        return list;
    }
    /**
     * 
     * @param userLst
     * @return
     */
    public List<TreeItem> getUserTree(List<TFsqsgTeacher> userLst) {
        if(userLst == null || userLst.size() == 0) {
            return null;
        }

        List<TreeItem> list = new ArrayList<TreeItem>();
        for(TFsqsgTeacher d: userLst) {
            String fid = d.getFid();
            TreeItem userNode = new TreeItem();
            userNode.setId(fid);
            userNode.setText(d.getFname());


            list.add(userNode);
        }

        return list;
    }
    /**
     * 根据部门id查询部门下的用户信息
     * @param deptId
     * @return
     * @throws Exception
     */
    public List<TFsqsgTeacher> getUsersByDeptId(String deptId) throws Exception {
        StringBuffer sb = new StringBuffer();
        sb.append("FROM TFsqsgTeacher o ");
        sb.append("WHERE o.departmentId=? ");
        //根据父节点查询子节点
        return commonService.findByHql(sb.toString(), deptId);
    }

    /**
     * 根据父部门id查询子节点
     * @param pid
     * @return
     * @throws Exception 
     */
    public List<TFsqsgDepartment> getDeptByParentId(String pid) throws Exception {
        StringBuffer sb = new StringBuffer();
        sb.append("FROM TFsqsgDepartment o ");
        sb.append("WHERE o.parentId=? ");

        //根据父节点查询子节点
        return commonService.findByHql(sb.toString(), pid);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值