/// <summary> /// 递归生成子树 /// </summary> /// <param name="AllMenuList"></param> /// <param name="vmMenu"></param> /// <returns></returns> private List <TS_DEPTDTO> CreateChildTree2(List <TS_DEPT> AllMenuList, TS_DEPTDTO vmMenu) { string parentMenuID = vmMenu.C_ID;//根节点ID List <TS_DEPTDTO> nodeList = new List <TS_DEPTDTO>(); var children = AllMenuList.Where(t => t.C_PARENT_ID == parentMenuID); foreach (var chl in children) { TS_DEPTDTO node = new TS_DEPTDTO(); node.C_ID = chl.C_ID; node.C_CODE = chl.C_CODE; node.C_NAME = chl.C_NAME; node.C_PARENT_ID = chl.C_PARENT_ID; node.C_DESC = chl.C_DESC; node.N_STATUS = Convert.ToInt32(chl.N_STATUS); node.C_DEPTH = Convert.ToInt32(chl.C_DEPTH); node.N_DEPTATTR = chl.N_DEPTATTR; node.C_EMP_ID = chl.C_EMP_ID; node.C_EMP_NAME = chl.C_EMP_NAME; node.D_MOD_DT = chl.D_MOD_DT; node.Depts = CreateChildTree2(AllMenuList, node); nodeList.Add(node); } return(nodeList); }
/// <summary> /// 查询部门 /// </summary> /// <returns></returns> public ActionResult QueryDept() { List <TS_DEPTDTO> list = serviceCom.GetDetp("1"); List <DEPTDTO> deptDto = MAPPING.ConvertDept(list); TS_DEPTDTO dto = new TS_DEPTDTO(); string strDept = NF.Framework.SerializationHelper.JsonSerialize(deptDto).Replace("\"nodes\":[],", ""); dto.JsonDept = strDept; return(View(dto)); }
/// <summary> /// 获取部门 /// </summary> /// <param name="parentID">parentID</param> /// <returns></returns> public List <TS_DEPTDTO> GetDetp(string parentID) { List <TS_DEPT> list = ExcuteQuery <TS_DEPT>(" select * from TS_DEPT start with c_id ='" + parentID + "' connect by prior c_id = C_PARENT_ID ").ToList(); List <TS_DEPTDTO> areas = new List <TS_DEPTDTO>(); foreach (var item in list.Where(x => x.C_PARENT_ID == parentID)) { TS_DEPTDTO dto = new TS_DEPTDTO(); dto.C_ID = item.C_ID; dto.C_CODE = item.C_CODE; dto.C_NAME = item.C_NAME; dto.C_PARENT_ID = item.C_PARENT_ID; dto.C_DESC = item.C_DESC; dto.N_STATUS = Convert.ToInt32(item.N_STATUS); dto.C_DEPTH = Convert.ToInt32(item.C_DEPTH); dto.N_DEPTATTR = item.N_DEPTATTR; dto.C_EMP_ID = item.C_EMP_ID; dto.C_EMP_NAME = item.C_EMP_NAME; dto.D_MOD_DT = item.D_MOD_DT; dto.Depts = CreateChildTree2(list, dto); areas.Add(dto); } return(areas); }