public PagedResultDto <OATodoList> GetOATodoList(SearchProjectListStatus input) { //获取当前用户orgid var org = _organizeRepository.GetDeptByUserID(AbpSession.UserId.Value); var underuserids = new List <long>(); if (org != null) { int cout = 0; underuserids = _organizeRepository.GetAllUsersById(org.Id).Select(ite => ite.Id).ToList(); } //var userguids = _roadFlowUserRepository.GetAll().Where(ite => underuserids.Contains(ite.AbpUserId)).Select(ite => ite.Id).ToList(); underuserids.Add(AbpSession.UserId.Value); var oatask = _oataskRepository.GetAll().Where(ite => underuserids.Contains(ite.CreatorUserId.Value)); switch (input.Status) { case 0: oatask = oatask.Where(ite => ite.Status == 0); break; case 1: oatask = oatask.Where(ite => ite.Status == 2); break; case 2: oatask = oatask.Where(ite => ite.Status == 1); break; } var count = oatask.Count(); var ret = oatask.OrderByDescending(ite => ite.CreationTime).PageBy(input).ToList(); var model = new List <OATodoList>(); foreach (var i in ret) { var x = new OATodoList(); x.Doing = true; var memberIdArry = i.ExecutorUser.Split(","); //foreach (var member in memberIdArry) //{ // var memberName = ""; // if (member.IsGuid()) // { // var memberId = member.ToGuid(); // var memberModel = _organizeRepository.FirstOrDefault(r => r.Id == memberId); // if (memberModel != null) // { // memberName = "[部门]" + memberModel.Name; // } // } // else if (member.StartsWith(MemberPerfix.UserPREFIX)) // { // var memberId = MemberPerfix.RemovePrefix(member).ToGuid(); // var usermodel = // _roadFlowUserRepository.FirstOrDefault( // r => r.Id == memberId); // if (usermodel != null) // { // memberName = usermodel.Name; // } // } // else // { // } // if (!memberName.IsNullOrWhiteSpace()) // { // if (!x.DoUser.IsNullOrWhiteSpace()) // x.DoUser = x.DoUser + ","; // x.DoUser = x.DoUser + memberName; // } //} x.Level = "C"; switch (i.PriorityCode) { case "1": x.Level = "A"; break; case "2": x.Level = "B"; break; case "3": x.Level = "C"; break; } x.ReciveTime = i.CreationTime; x.Title = i.Title; var valuser = _userRepository.GetAll().FirstOrDefault(ite => ite.Id == i.ValUser); if (valuser != null) { x.WatchUser = valuser.Surname; } x.Des = i.Summary; model.Add(x); } return(new PagedResultDto <OATodoList>(count, model)); }
public PagedResultDto <ProjectListStatus> GetProjectListStatus(SearchProjectListStatus input) { //获取当前用户orgid //获取当前用户orgid var org = _organizeRepository.GetDeptByUserID(AbpSession.UserId.Value); var underuserids = new List <long>(); //判断是否部门主管,如果是这显示下级人员所有项目 var isleader = org.ChargeLeader.Contains("u_" + AbpSession.UserId.Value); if (isleader) { if (org != null) { int cout = 0; underuserids = _organizeRepository.GetAllUsersById(org.Id).Select(ite => ite.Id).ToList(); } } underuserids.Add(AbpSession.UserId.Value); var projectids = new List <Guid>(); //查询分派人表中的项目id var p1 = _projectAuditMemberRepository.GetAll().Where(ite => underuserids.Contains(ite.UserId)).Select(ite => ite.ProjectBaseId).Distinct().ToList(); projectids.AddRange(p1); //查询项目干系人表中的项目id var p2 = _projectRealationUserRepository.GetAll().Where(ite => underuserids.Contains(ite.UserID)).Select(ite => ite.InstanceID).ToList(); projectids.AddRange(p2); var project = //from a in _projectBaseRepository.GetAll() from single in _singleProjectInfoRepository.GetAll() join a in _projectBaseRepository.GetAll() on single.ProjectId equals a.Id join b in _constructionOrganizationRepository.GetAll() on a.SendUnit equals b.Id //join c in _projectAuditMemberRepository.GetAll() on a.Id equals c.ProjectBaseId join d in _userFollowProjectRepository.GetAll() on new { userid = AbpSession.UserId.Value, projectid = a.Id } equals new { userid = d.Userid, projectid = d.Projectid } into follow from tt in follow.DefaultIfEmpty() where underuserids.Contains(single.CreatorUserId.Value) || projectids.Contains(a.Id) select new ProjectListStatus() { AppraisalTypeId = a.AppraisalTypeId, AuditAmount = single.AuditAmount, FinishDays = a.Days, IsImportant = a.Is_Important ?? false, IsFollow = tt != null ? true : false, Id = a.Id, // ProjectManagerUser ProjectName = a.ProjectName, ProjectStatus = single.ProjectStatus, //ProjectStatusText = a.ProjectStatus.ToString(), SafaBudget = single.SingleProjectSafaBudget, SendTotalBudget = single.SingleProjectbudget, SendUnit = a.SendUnit, SendUnitText = b.Name, Status = single.Status, CreationTime = a.CreationTime, // StartTime = a.CreationTime, //AppraisalType //FinishTime=a.CreationTime.AddDays(a.Days) ReadyEndTime = a.ReadyEndTime, ReadyStartTime = a.ReadyStartTime, }; switch (input.Status) { case 1: project = project.Where(ite => ite.ProjectStatus.HasValue && (int)ite.ProjectStatus.Value > 0 && ite.Status != -1); break; case 2: project = project.Where(ite => ite.Status == -1); break; default: project = project.Where(ite => ite.ProjectStatus.HasValue == false || ite.ProjectStatus.Value == ProjectStatus.待审); break; } if (input.ProjectStatus.HasValue) { project = project.Where(ite => ite.ProjectStatus == input.ProjectStatus.Value); } project = project.Distinct(); var count = project.Count(); var ret = project.OrderByDescending(ite => ite.CreationTime).OrderByDescending(ite => ite.IsFollow).OrderByDescending(ite => ite.IsImportant).PageBy(input).ToList(); var projectid2 = ret.Select(ite => ite.Id).ToList(); foreach (var p in ret) { p.ProjectManagerUser = ""; p.ProjectStatusText = "待办"; if (p.ProjectStatus.HasValue) { p.ProjectStatusText = p.ProjectStatus.ToString(); } var a = _projectAuditMemberRepository.GetAll().FirstOrDefault(ite => ite.ProjectBaseId == p.Id && ite.GroupId.HasValue); if (a != null && a.GroupId.HasValue) { var group = _projectAuditGroupUserRepository.GetAll().FirstOrDefault(ite => ite.GroupId == a.GroupId.Value && ite.UserRole == 1); if (group != null) { var user = _userRepository.FirstOrDefault(group.UserId); if (user != null) { p.ProjectManagerUser = user.Surname; } } } p.AppraisalType = ""; p.FinishTime = p.CreationTime.AddDays(p.FinishDays ?? 0); p.StartTime = p.CreationTime; switch (p.AppraisalTypeId) { case 10: p.AppraisalType = "项目概算"; break; case 8: p.AppraisalType = "项目预算"; break; case 9: p.AppraisalType = "政府采购预算"; break; case 18: p.AppraisalType = "财政监管"; break; case 19: p.AppraisalType = "日常咨询"; break; case 12: p.AppraisalType = "项目调整预算"; break; case 1: p.AppraisalType = "项目概算"; break; case 13: p.AppraisalType = "支付审核"; break; case 11: p.AppraisalType = "专项核查"; break; case 15: p.AppraisalType = "项目结算"; break; case 16: p.AppraisalType = "项目决算"; break; case 17: p.AppraisalType = "绩效评价财务类"; break; case 20: p.AppraisalType = "绩效评价工程类"; break; } } return(new PagedResultDto <ProjectListStatus>(count, ret)); }