public string GetEmpTreeforRole(int roId) { if (sb.ToString().Trim() != "") { sb.Clear(); str = ""; } List<tb_Dept> ListDept = DB.tb_Dept.OrderBy(m => m.deParentCode).OrderBy(m => m.deSortId).ToList(); List<tb_Employee> ListEmp = DB.tb_Employee.Where(m => m.emState == 1).ToList(); List<int> ListEmpId = DB.tb_EmpRole.Where(m => m.erRoId == roId).Select(m => m.eremId).ToList(); SetEmpTreeNode("-1", ListDept, ListEmp, ListEmpId); return sb.ToString(); }
时间: 2024-04-13 19:25:00 浏览: 113
这段代码是一个名为 `GetEmpTreeforRole` 的公共方法。它的目的是根据角色 ID 获取员工树的字符串表示。下面是代码的详细解释:
1. `if (sb.ToString().Trim() != "")`:这行代码检查字符串变量 `sb` 是否为空。如果 `sb` 不为空,说明之前已经生成过员工树字符串,需要进行清空操作。
2. `sb.Clear();`:这行代码清空 `sb` 对象,以便重新生成员工树字符串。
3. `str = "";`:这行代码将字符串变量 `str` 清空。变量 `str` 可能在 `SetEmpTreeNode` 方法中使用,但在这段代码中没有给出。
4. `List<tb_Dept> ListDept = DB.tb_Dept.OrderBy(m => m.deParentCode).OrderBy(m => m.deSortId).ToList();`:这行代码从数据库中获取所有的部门信息,并按照 `deParentCode` 和 `deSortId` 进行排序,然后将结果存储在名为 `ListDept` 的 `List<tb_Dept>` 对象中。
5. `List<tb_Employee> ListEmp = DB.tb_Employee.Where(m => m.emState == 1).ToList();`:这行代码从数据库中获取状态为 1(代表激活状态)的所有员工信息,并存储在名为 `ListEmp` 的 `List<tb_Employee>` 对象中。
6. `List<int> ListEmpId = DB.tb_EmpRole.Where(m => m.erRoId == roId).Select(m => m.eremId).ToList();`:这行代码从数据库中获取与角色 ID (`roId`) 相关联的员工 ID,并存储在名为 `ListEmpId` 的 `List<int>` 对象中。
7. `SetEmpTreeNode("-1", ListDept, ListEmp, ListEmpId);`:这行代码调用名为 `SetEmpTreeNode` 的方法,传递了四个参数:"-1" 表示根节点的 ID,`ListDept` 表示部门列表,`ListEmp` 表示员工列表,`ListEmpId` 表示与角色相关的员工 ID 列表。
8. `return sb.ToString();`:这行代码将生成的员工树字符串返回。
根据这段代码,可以推测 `SetEmpTreeNode` 方法的实现与递归有关,它可能会根据传入的参数递归地构建员工树的字符串表示,并且根据角色相关的员工 ID 进行特殊处理。
阅读全文