/// <summary> /// 获取指定公司下的所有部门 /// </summary> /// <param name="request"></param> /// <returns></returns> public List <Department> GetDepartmentByCorp(GetDepartmentByCorpRQ request) { var result = new List <Department>(); DBHelper.NoLockInvokeDB(() => { using (var db = new WebFrameworksDB()) { var query = db.Department.GroupJoin(db.Corporation, department => department.CorporationId, corp => corp.Id, (department, corp) => new { department, corp = corp.FirstOrDefault() }); if (request.CorporationId > 0) { query = query.Where(p => p.department.CorporationId == request.CorporationId); } //排序 query = query.OrderBy(p => p.department.CorporationId).ThenBy(p => p.department.Code); result = query.ToList().ConvertAll(p => new Department { Id = p.department.Id, ParentId = p.department.ParentId, Name = p.department.Name, Code = p.department.Code, Enabled = p.department.Enabled, Sort = p.department.Sort, CreatedTime = p.department.CreatedTime, CorporationId = p.corp.Id, CorporationName = p.corp.Name }); } }); return(result); }
/// <summary> /// 获取指定公司下的部门 /// 如果没有指定则获取所有公司下的所有部门 /// </summary> /// <returns></returns> public ActionResult GetDepartmentByCorp(GetDepartmentByCorpRQ request) { var result = string.Empty; StringBuilder sb = new StringBuilder(); using (var factory = new ChannelFactory <IWebFxsDepartmentService>("*")) { var client = factory.CreateChannel(); var rs = client.GetDepartmentByCorp(request); if (rs.ReturnCode == Entity.ReturnCodeType.Success) { var depts = rs.Content; if (depts.HasValue()) { sb.Append(RecursionDepartment(depts, 0)); sb = sb.Remove(sb.Length - 2, 2); result = sb.ToString(); } else { result = "[]"; } } } return(Content(result)); }
/// <summary> /// 获取指定公司下的部门 /// </summary> /// <param name="request"></param> /// <returns></returns> public WebFxsResult <List <Department> > GetDepartmentByCorp(GetDepartmentByCorpRQ request) { var result = new WebFxsResult <List <Department> > { ReturnCode = ReturnCodeType.Error, Content = new List <Department>() }; var departments = repository.GetDepartmentByCorp(request); result.ReturnCode = ReturnCodeType.Success; result.Content = departments; return(result); }