public async Task <MessageModel <ObjectiveStudent> > Get(int GradeId, string AcademicYearSchoolTerm, string ExamName, int CourseId, int ClazzId, int page = 1) { int intPageSize = 100; if (!(GradeId > 0 && CourseId > 0 && ClazzId > 0 && !string.IsNullOrEmpty(AcademicYearSchoolTerm) && !string.IsNullOrEmpty(ExamName))) { return(new MessageModel <ObjectiveStudent>()); } var gradeList = await _iGradeRepository.Query(d => d.IsDeleted == false && d.Id == GradeId); var clazzList = await _iClazzRepository.Query(d => d.IsDeleted == false && d.GradeId == GradeId); var courseList = await _iCourseRepository.Query(d => d.IsDeleted == false); var examList = await _iExamRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var studentsList = await _iStudentsRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var cctList = await _iCCTRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var teachersList = await _iTeacherRepository.Query(d => d.IsDeleted == false && d.gradeId == GradeId); //题目 var examDetailList = await _iExamDetailRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId && d.EDType == "客观题"); var examDetailScoreList = await _iExamDetailScoreRepository.Query(d => d.IsDeleted == false); foreach (var item in examList) { item.grade = gradeList.Where(d => d.Id == item.gradeid).FirstOrDefault(); item.course = courseList.Where(d => d.Id == item.courseid).FirstOrDefault(); } foreach (var item in examDetailList) { item.exam = examList.Where(d => d.Id == item.examid).FirstOrDefault(); } //题目 examDetailList = examDetailList.Where(d => AcademicYearSchoolTerm == (d.exam.AcademicYear + d.exam.SchoolTerm) && d.exam.ExamName == ExamName && d.exam.gradeid == GradeId && d.exam.courseid == CourseId && d.courseid == CourseId).ToList(); // 如果选中班级,则是部分学生 studentsList = studentsList.Where(d => d.gradeid == GradeId && d.clazzid == ClazzId).ToList(); StringBuilder jsonBuilder = new StringBuilder(); StringBuilder jsonBuilderHeader = new StringBuilder(); jsonBuilder.Append("["); jsonBuilderHeader.Append("["); jsonBuilderHeader.Append("{\"prop\": \"学号\", \"label\": \"学号\"},"); jsonBuilderHeader.Append("{\"prop\": \"姓名\", \"label\": \"姓名\"},"); jsonBuilderHeader.Append("{\"prop\": \"班级\", \"label\": \"班级\"},"); foreach (var item in studentsList) { var clazzModel = clazzList.Where(d => d.Id == item.clazzid).FirstOrDefault(); jsonBuilder.Append("{"); jsonBuilder.Append("\""); jsonBuilder.Append("学号"); jsonBuilder.Append("\":\""); jsonBuilder.Append(item.StudentNo.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("姓名"); jsonBuilder.Append("\":\""); jsonBuilder.Append(item.Name.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("班级"); jsonBuilder.Append("\":\""); jsonBuilder.Append(clazzModel.ClassNo.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); for (int j = 0; j < examDetailList.Count; j++) { var examDetailScore = examDetailScoreList.Where(d => d.ExamDetailId == examDetailList[j].Id && d.studentid == item.Id).FirstOrDefault(); jsonBuilder.Append("\""); jsonBuilder.Append(examDetailList[j].Name); jsonBuilder.Append("\":\""); jsonBuilder.Append(examDetailScore.StudentAnswer.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("},"); } for (int j = 0; j < examDetailList.Count; j++) { jsonBuilderHeader.Append("{\"prop\": \"" + examDetailList[j].Name + "\", \"label\": \"" + examDetailList[j].Name + "\"},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilderHeader.Remove(jsonBuilderHeader.Length - 1, 1); jsonBuilder.Append("]"); jsonBuilderHeader.Append("]"); ObjectiveStudent objectiveStudent = new ObjectiveStudent() { Header = jsonBuilderHeader.ObjToString(), Content = jsonBuilder.ObjToString() }; return(new MessageModel <ObjectiveStudent>() { msg = "获取成功", success = true, response = objectiveStudent }); }
public async Task <MessageModel <ObjectiveStudent> > Get(int GradeId, string AcademicYearSchoolTerm, string ExamName, int CourseId, int ClazzId, int page = 1) { int intPageSize = 100; if (!(GradeId > 0 && CourseId > 0 && ClazzId > 0 && !string.IsNullOrEmpty(AcademicYearSchoolTerm) && !string.IsNullOrEmpty(ExamName))) { return(new MessageModel <ObjectiveStudent>()); } var exScoreList = await _iExScoreRepository.Query(d => d.IsDeleted == false); var gradeList = await _iGradeRepository.Query(d => d.IsDeleted == false && d.Id == GradeId); var clazzList = await _iClazzRepository.Query(d => d.IsDeleted == false && d.GradeId == GradeId); var courseList = await _iCourseRepository.Query(d => d.IsDeleted == false); var examList = await _iExamRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var studentsList = await _iStudentsRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var cctList = await _iCCTRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var teachersList = await _iTeacherRepository.Query(d => d.IsDeleted == false && d.gradeId == GradeId); //题目 var examDetailList = await _iExamDetailRepository.Query(d => d.IsDeleted == false && d.gradeid == GradeId); var examDetailScoreList = await _iExamDetailScoreRepository.Query(d => d.IsDeleted == false); foreach (var item in examList) { item.grade = gradeList.Where(d => d.Id == item.gradeid).FirstOrDefault(); item.course = courseList.Where(d => d.Id == item.courseid).FirstOrDefault(); } foreach (var exscore in exScoreList) { exscore.exam = examList.Where(d => d.Id == exscore.examid).FirstOrDefault(); var teacherid = cctList.Where(d => d.clazzid == exscore.clazzid && d.gradeid == exscore.exam.gradeid && d.courseid == exscore.exam.courseid).FirstOrDefault()?.teacherid; exscore.Teacher = teachersList.Where(d => d.Id == teacherid.ObjToInt()).FirstOrDefault()?.Name; exscore.clazz = clazzList.Where(d => d.Id == exscore.clazzid).FirstOrDefault(); exscore.student = studentsList.Where(d => d.Id == exscore.studentid).FirstOrDefault(); } // 统计 全年级的 某次考试 全部科目的 全部成绩 var examSortAllCourse = exScoreList.Where(d => d.clazzid == ClazzId && AcademicYearSchoolTerm == (d.exam.AcademicYear + d.exam.SchoolTerm) && d.exam.ExamName == ExamName && d.exam.gradeid == GradeId).ToList(); // 统计 全年级的 某次考试 某门科目中 的全部成绩 var exscoreGrade = examSortAllCourse.Where(d => d.courseid == CourseId).ToList(); List <SingleCourseStudent> totalGradeSingleCourseStudents = new List <SingleCourseStudent>(); foreach (var item in exscoreGrade) { SingleCourseStudent SingleCourseStudent = new SingleCourseStudent() { StudentNo = item.student.StudentNo, StudentName = item.student.Name, TotalScore = item.score.ObjToDecimal(), SubjectiveScore = item.SubjectiveScore.ObjToDecimal(), ObjectiveScore = item.ObjectiveScore.ObjToDecimal(), Clazz = item.clazz.ClassNo, Clazzid = item.clazz.Id, }; totalGradeSingleCourseStudents.Add(SingleCourseStudent); } // 如果选中班级,则是部分学生 studentsList = studentsList.Where(d => d.gradeid == GradeId && d.clazzid == ClazzId).ToList(); StringBuilder jsonBuilder = new StringBuilder(); StringBuilder jsonBuilderHeader = new StringBuilder(); jsonBuilder.Append("["); jsonBuilderHeader.Append("["); jsonBuilderHeader.Append("{\"prop\": \"学号\", \"label\": \"学号\"},"); jsonBuilderHeader.Append("{\"prop\": \"姓名\", \"label\": \"姓名\"},"); jsonBuilderHeader.Append("{\"prop\": \"班级\", \"label\": \"班级\"},"); jsonBuilderHeader.Append("{\"prop\": \"主观分数\", \"label\": \"主观分数\"},"); jsonBuilderHeader.Append("{\"prop\": \"客观分数\", \"label\": \"客观分数\"},"); jsonBuilderHeader.Append("{\"prop\": \"总分数\", \"label\": \"总分数\"},"); foreach (var item in studentsList) { var clazzModel = clazzList.Where(d => d.Id == item.clazzid).FirstOrDefault(); var examdetailscoreModel = totalGradeSingleCourseStudents.Where(d => d.StudentNo == item.StudentNo).FirstOrDefault(); jsonBuilder.Append("{"); jsonBuilder.Append("\""); jsonBuilder.Append("学号"); jsonBuilder.Append("\":\""); jsonBuilder.Append(item.StudentNo.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("姓名"); jsonBuilder.Append("\":\""); jsonBuilder.Append(item.Name.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("班级"); jsonBuilder.Append("\":\""); jsonBuilder.Append(clazzModel.ClassNo.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("主观分数"); jsonBuilder.Append("\":\""); jsonBuilder.Append(examdetailscoreModel.SubjectiveScore.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("客观分数"); jsonBuilder.Append("\":\""); jsonBuilder.Append(examdetailscoreModel.ObjectiveScore.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); jsonBuilder.Append("\""); jsonBuilder.Append("总分数"); jsonBuilder.Append("\":\""); jsonBuilder.Append(examdetailscoreModel.TotalScore.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); for (int j = 0; j < examDetailList.Count; j++) { var examDetailScore = examDetailScoreList.Where(d => d.ExamDetailId == examDetailList[j].Id && d.studentid == item.Id).FirstOrDefault(); jsonBuilder.Append("\""); jsonBuilder.Append(examDetailList[j].Name); jsonBuilder.Append("\":\""); jsonBuilder.Append(examDetailScore.StudentScore.ObjToString().Replace("\"", "\\\"")); jsonBuilder.Append("\","); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("},"); } for (int j = 0; j < examDetailList.Count; j++) { jsonBuilderHeader.Append("{\"prop\": \"" + examDetailList[j].Name + "\", \"label\": \"" + examDetailList[j].Name + "\"},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilderHeader.Remove(jsonBuilderHeader.Length - 1, 1); jsonBuilder.Append("]"); jsonBuilderHeader.Append("]"); ObjectiveStudent objectiveStudent = new ObjectiveStudent() { Header = jsonBuilderHeader.ObjToString(), Content = jsonBuilder.ObjToString() }; return(new MessageModel <ObjectiveStudent>() { msg = "获取成功", success = true, response = objectiveStudent }); }