예제 #1
0
        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));
        }
예제 #2
0
        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));
        }