Beispiel #1
0
        public static List <Dto.PerformData.OrgSelectInfo> SelectOrgSelectInfo(XkSystem.Models.DbContext db, List <System.Web.Mvc.SelectListItem> orgSelectList, int YearId)
        {
            var orgSelectInfoList = new List <Dto.PerformData.OrgSelectInfo>();

            if (YearId == 0)
            {
                return(orgSelectInfoList);
            }

            var tbPerformComment = (from p in db.Table <Perform.Entity.tbPerformComment>()
                                    where p.tbYear.Id == YearId && p.tbYear.IsDeleted == false &&
                                    p.tbStudent.IsDeleted == false
                                    select new
            {
                YearId = p.tbYear.Id,
                StudentId = p.tbStudent.Id
            }).Distinct().ToList();

            foreach (var org in orgSelectList)
            {
                var orgId          = org.Value.ConvertToInt();
                var orgSelectInfo  = new Dto.PerformData.OrgSelectInfo();
                var orgStudentList = (from p in db.Table <Basis.Entity.tbClassStudent>()
                                      .Include(d => d.tbClass)
                                      where p.tbClass.Id == orgId && p.tbClass.IsDeleted == false
                                      select new
                {
                    ClassId = p.tbClass.Id,
                    StudentId = p.tbStudent.Id,
                    YearId = p.tbClass.tbYear.Id
                }).ToList();
                if (orgStudentList != null)
                {
                    orgSelectInfo.OrgId    = orgId;
                    orgSelectInfo.SumCount = orgStudentList.Distinct().Count();//赋值总人数
                    foreach (var student in orgStudentList)
                    {
                        if (tbPerformComment.Where(d => d.YearId == student.YearId && d.StudentId == student.StudentId).Count() > 0)
                        {
                            orgSelectInfo.Count += 1;
                        }
                    }
                    orgSelectInfoList.Add(orgSelectInfo);
                }
            }
            return(orgSelectInfoList);
        }
        public static List <Dto.PerformData.OrgSelectInfo> SelectOrgSelectInfo(XkSystem.Models.DbContext db, List <System.Web.Mvc.SelectListItem> orgSelectList, int performId)
        {
            var orgSelectInfoList = new List <Dto.PerformData.OrgSelectInfo>();

            if (performId == 0)
            {
                return(orgSelectInfoList);
            }
            var tbPerform = (from p in db.Table <Perform.Entity.tbPerform>()
                             join m in db.Table <Perform.Entity.tbPerformGroup>() on p.Id equals m.tbPerform.Id
                             join n in db.Table <Perform.Entity.tbPerformCourse>() on m.Id equals n.tbPerformGroup.Id
                             join l in db.Table <Perform.Entity.tbPerformItem>() on m.Id equals l.tbPerformGroup.Id
                             where m.tbPerform.IsDeleted == false &&
                             n.tbPerformGroup.IsDeleted == false &&
                             l.tbPerformGroup.IsDeleted == false
                             where p.Id == performId
                             select new
            {
                PerformId = p.Id,
                PerformGroupId = m.Id,
                CourseId = n.tbCourse.Id,
                PerformItemId = l.Id
            }).Distinct().ToList();

            var tbPerformData = (from p in db.Table <Perform.Entity.tbPerformData>()
                                 where p.tbPerformItem.tbPerformGroup.tbPerform.Id == performId &&
                                 p.tbPerformItem.IsDeleted == false &&
                                 p.tbPerformItem.tbPerformGroup.IsDeleted == false &&
                                 p.tbCourse.IsDeleted == false &&
                                 p.tbStudent.IsDeleted == false
                                 select new
            {
                CourseId = p.tbCourse.Id,
                PerformItemId = p.tbPerformItem.Id,
                StudentId = p.tbStudent.Id
            }).Distinct().ToList();

            foreach (var org in orgSelectList)
            {
                var orgId         = org.Value.ConvertToInt();
                var orgSelectInfo = new Dto.PerformData.OrgSelectInfo();
                var tbOrg         = (from p in db.Table <Course.Entity.tbOrg>()
                                     .Include(d => d.tbClass)
                                     .Include(d => d.tbCourse)
                                     where p.Id == orgId
                                     select p).ToList().FirstOrDefault();

                if (tbOrg != null)
                {
                    var orgStudentList = new List <Dto.PerformData.List>();
                    #region 加载学生
                    //行政班级
                    if (tbOrg.IsClass)
                    {
                        if (tbOrg.tbClass != null)
                        {
                            orgStudentList = (from p in db.Table <Basis.Entity.tbClassStudent>()
                                              where p.tbClass.Id == tbOrg.tbClass.Id &&
                                              p.tbStudent.IsDeleted == false &&
                                              p.tbClass.IsDeleted == false
                                              orderby p.No, p.tbStudent.StudentCode
                                              select new Dto.PerformData.List
                            {
                                StudentId = p.tbStudent.Id,
                                StudentCode = p.tbStudent.StudentCode,
                                CourseId = tbOrg.tbCourse.Id,
                            }).ToList();
                        }
                    }
                    else//教学班级
                    {
                        orgStudentList = (from p in db.Table <Course.Entity.tbOrgStudent>()
                                          where p.tbOrg.Id == tbOrg.Id &&
                                          p.tbStudent.IsDeleted == false &&
                                          p.tbOrg.IsDeleted == false
                                          orderby p.No, p.tbStudent.StudentCode
                                          select new Dto.PerformData.List
                        {
                            StudentId = p.tbStudent.Id,
                            StudentCode = p.tbStudent.StudentCode,
                            CourseId = tbOrg.tbCourse.Id
                        }).ToList();
                    }
                    #endregion
                    if (orgStudentList != null)
                    {
                        orgSelectInfo.OrgId    = tbOrg.Id;
                        orgSelectInfo.OrgName  = tbOrg.OrgName;
                        orgSelectInfo.No       = tbOrg.No;
                        orgSelectInfo.SumCount = orgStudentList.Distinct().Count();//赋值总人数

                        foreach (var student in orgStudentList)
                        {
                            var perform = (from p in tbPerform
                                           where p.CourseId == student.CourseId
                                           select p).Distinct().ToList();
                            var i = 0;
                            foreach (var p in perform)
                            {
                                if (tbPerformData.Where(d => d.StudentId == student.StudentId && d.CourseId == p.CourseId && d.PerformItemId == p.PerformItemId).Count() > 0)
                                {
                                    i++;
                                }
                            }
                            if (i > 0 && i == perform.Count())
                            {
                                orgSelectInfo.Count += 1;
                            }
                        }
                        orgSelectInfoList.Add(orgSelectInfo);
                    }
                }
            }
            return(orgSelectInfoList);
        }