/// <summary> /// 人员组织树进行切换 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tv_PersonPlan_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { try { //取得当前的被选择节点 itemOrgInfo = ((System.Windows.Controls.TreeView)(sender)).SelectedItem as PP_DepartmentInfo; if (itemOrgInfo == null) { return; } else { //界面赋值 PT.Profile.Types.DeptMemberList deptList = new PT.Profile.Types.DeptMemberList(); PT_BS_Service.Client.Framework.BeOperationInvoker.Invoke <PT.Profile.Interface.IOrganization, PT.Profile.Types.DeptMemberList>(p => { deptList = p.GetDeptMembersByDeptID(itemOrgInfo.GUID, false); return(deptList); }); personinfolist.Clear(); foreach (DeptMember dm in deptList) { if (dm.UserStatus == UserStatusEnum.Out || dm.UserStatus == UserStatusEnum.Forbid || dm.UserStatus == UserStatusEnum.Leave || dm.UserStatus == UserStatusEnum.Background || exsitUserIDList.Contains(dm.UserID)) { continue; } PP_PersonInfo tempPersonInfo = CreatePersonInfoSource(dm); personinfolist.Add(tempPersonInfo); } this.dg_GrouperList.ItemsSource = null; this.dg_GrouperList.ItemsSource = personinfolist; } } catch { throw; } }
//无限接循环子节点添加到根节点下面 private void ForeachPropertyNode(PP_DepartmentInfo node, string pid, DeptInfoList nodes) { foreach (DeptInfo tempNode in nodes) { if (tempNode.ParentDeptID == pid) { PP_DepartmentInfo pp_department = CreateDepartmentInfoSource(tempNode); ForeachPropertyNode(pp_department, pp_department.GUID, nodes); node.Children.Add(pp_department); } } }
private PP_DepartmentInfo CreateDepartmentInfoSource(DeptInfo pDeptInfo) { var dis = new PP_DepartmentInfo { ORG_TYPE = 0, GUID = pDeptInfo.DeptID, NAME = pDeptInfo.DeptName, DeptFax = pDeptInfo.DeptFax, DeptPhone = pDeptInfo.DeptPhone, DisplaySequence = pDeptInfo.DisplaySequence, DistrictCode = pDeptInfo.DistrictCode, IsOrganization = pDeptInfo.IsOrganization, PARENT_GUID = pDeptInfo.ParentDeptID, //XGZ:用户在线数量 //OnlineUserCount = "(1/10)" }; return(dis); }
private void OrganizationClientOnGetDeptInfos(DeptInfoList pDeptInfos) { try { var deptinfos = pDeptInfos; if (deptinfos == null) { throw new Exception("组织结构初始化失败。"); } if (deptinfos.Count == 0) { return; } DeptInfo foundRoot = (from i in deptinfos where i.DistrictCode == _areaCode && i.IsOrganization select i).FirstOrDefault(); if (foundRoot == null) { return; } PP_DepartmentInfoList.Clear(); PP_DepartmentInfo rootdepartment = CreateDepartmentInfoSource(foundRoot); ForeachPropertyNode(rootdepartment, rootdepartment.GUID, pDeptInfos); PP_DepartmentInfoList.Add(rootdepartment); this.tv_PersonPlan.ItemsSource = null; this.tv_PersonPlan.ItemsSource = PP_DepartmentInfoList; } catch { ////LogHelper.WriteLog("初始化组织结构", Utile.GetExceptionContext(ex)); //OnInitializeCompleted(false); } finally { //if (!completed) // OnInitializeCompleted(false); } }