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); }