二级部门的人员树状结构封装
来源:互联网 发布:公安大数据分析研判 编辑:程序博客网 时间:2024/06/05 17:33
一下代码只供参考,不保证正确。
@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 0
- 二级部门的人员树状结构封装
- javaEE 部门树状结构显示以及要注意的问题
- 部门下拉框的树状结构展示小功能的实现
- 公司 部门 二级联动的JS
- 设计及封装无限层级的树状结构
- CTE递归应用,树状结构,查询所有子部门、子部门数量、按层级显示部门名称
- Html中Select的用法(多选人员和部门)
- 如何拿取微信企业号人员的完整部门
- 开发团队的人员结构
- “微风”团队的人员结构
- 树状结构的设计
- 树状结构的实现
- 人事管理系统之部门结构树的展示
- 部门人员多选页面---
- json实现部门二级联动
- 封装好的二级链动SELECT
- sharepoint 获得上级和部门的封装函数
- 树状结构的综合讨论
- 数据库的触发器
- MVC
- 《C++ Concurrency in Action》笔记25 std::atomic<>类模板、全局函数
- 炮兵阵地 POJ
- iphone开发每日一练
- 二级部门的人员树状结构封装
- NOIP2016普及组T1买铅笔解题报告
- mysql&pymysql
- 关于启动Tomcat时的异常
- CentOS上安装KVM
- unix--网络编程IO复用
- 古典密码——vigenre多表代换密码
- 数据库实例:用户登录
- C++内存模型