public ProjectTodoNewDto GetProjectStatic() { //获取当前用户orgid var org = _organizeRepository.GetDeptByUserID(AbpSession.UserId.Value); var underuserids = new List <long>(); //判断是否部门主管,如果是这显示下级人员所有项目 var isleader = org != null && string.IsNullOrWhiteSpace(org.ChargeLeader) == false && 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(); } } //var userguids = _roadFlowUserRepository.GetAll().Where(ite => underuserids.Contains(ite.AbpUserId)).Select(ite => ite.Id).ToList(); underuserids.Add(AbpSession.UserId.Value); var model = new ProjectTodoNewDto(); var projectids = new List <Guid>(); //查询分派人表中的项目id var p1 = _projectAuditMemberRepository.GetAll().Where(ite1 => underuserids.Contains(ite1.UserId)).Select(ite => ite.ProjectBaseId).Distinct().ToList(); projectids.AddRange(p1); //查询项目干系人表中的项目id var p2 = _projectRealationUserRepository.GetAll().Where(ite2 => underuserids.Contains(ite2.UserID)).Select(ite => ite.InstanceID).ToList(); projectids.AddRange(p2); var project = from a in _singleProjectInfoRepository.GetAll() join b in _projectBaseRepository.GetAll() on a.ProjectId equals b.Id //join b in _constructionOrganizationRepository.GetAll() on a.SendUnit equals b.Id where underuserids.Contains(a.CreatorUserId.Value) || projectids.Contains(b.Id) select a; project = project.Distinct(); model.DoingCount = project.Where(ite3 => ite3.ProjectStatus.HasValue && (int)ite3.ProjectStatus.Value > 0 && ite3.Status != -1).Count(); model.DoingSum = project.Where(ite4 => ite4.ProjectStatus.HasValue && (int)ite4.ProjectStatus.Value > 0 && ite4.Status != -1).Sum(ite => ite.SingleProjectbudget); model.DoingSum = Math.Round(model.DoingSum / 10000, 0); model.DoneCount = project.Where(ite5 => ite5.Status == -1).Count(); model.DoneSum = project.Where(ite6 => ite6.Status == -1).Sum(ite => ite.AuditAmount) ?? 0; model.DoneSum = Math.Round(model.DoneSum / 10000, 0); model.TodoCount = project.Where(ite7 => ite7.ProjectStatus.HasValue == false || ite7.ProjectStatus.Value == ProjectStatus.待审).Count(); var oatask = _oataskRepository.GetAll().Where(ite8 => underuserids.Contains(ite8.CreatorUserId.Value)); model.DoingCount += oatask.Where(ite9 => ite9.Status == 2).Count(); model.DoneCount += oatask.Where(ite10 => ite10.Status == -1).Count(); model.TodoCount += oatask.Where(ite11 => ite11.Status == 0).Count(); var count = Convert.ToDecimal(model.TodoCount + model.DoingCount + model.DoneCount); model.HandleRate = count != 0? Math.Round( Convert.ToDecimal(model.DoneCount) / count, 2):0; return(model); }
public ProjectTodoNewDto GetProjectStaticForMy() { //var orgid = _organizeRepository.GetAll().FirstOrDefault(ite => ite.Leader.Contains(userguid)).Id; //int cout = 0; //var underuserids = _projectBaseRepository.GetUsersWithCurrentAndUnderOrg(orgid, 100, 1, out cout).Select(ite => ite.Id).ToList(); //underuserids.Add(AbpSession.UserId.Value); //var userguids = _roadFlowUserRepository.GetAll().Where(ite => underuserids.Contains(ite.AbpUserId)).Select(ite => ite.Id).ToList(); var model = new ProjectTodoNewDto(); var tasks = _workFlowTaskRepository.GetAll().Where(ite => ite.ReceiveID == AbpSession.UserId.Value && ite.TodoType.Value > 0 && ite.Type != 6); model.DoingCount = tasks.Where(ite => ite.Status == 1).Count(); model.DoneCount = tasks.Where(ite => ite.Status >= 2).Count(); model.TodoCount = tasks.Where(ite => ite.Status == 0).Count(); return(model); }