123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Text;
- using EMIS.Entities;
- using EMIS.ViewModel;
- using EMIS.ViewModel.ScoreManage;
- namespace EMIS.ExtensionLogic.DataLogic.GraduationManage
- {
- public class GraduationPreliminaryDAL : EMIS.DataLogic.GraduationManage.GraduationManage.GraduationPreliminaryDAL
- {
- /// <summary>
- /// 查询对应的毕业预审学生最终成绩信息StudentScoreView(根据相应的学生信息、毕业学期并且匹配执行计划)
- /// 注:学生最终成绩以执行计划为准(左连),未修习成绩默认为0分
- /// 注:匹配规则(以学生信息、课程信息为准,广中医个性化配置)
- /// </summary>
- /// <param name="expStudent"></param>
- /// <param name="expSchoolyear"></param>
- /// <returns></returns>
- public override IQueryable<StudentScoreView> GetGraPreStuFinScoreExecutablePlanViewQueryable(Expression<Func<CF_Student, bool>> expStudent,
- Expression<Func<EMIS.Entities.CF_Schoolyear, bool>> expSchoolyear)
- {
- var graPreStudentList = from gpstu in this.GetGraPreStudentQueryable(expStudent, expSchoolyear)
- select gpstu;
- var graPreStuFinScoreList = from finsco in FinallyScoreRepository.GetList(x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE)
- join stu in graPreStudentList
- on finsco.UserID equals stu.UserID
- select new
- {
- FinallyScoreID = finsco.FinallyScoreID,
- SchoolyearID = finsco.SchoolyearID,
- UserID = finsco.UserID,
- CoursematerialID = finsco.CoursematerialID,
- CourseTypeID = finsco.CourseTypeID,
- SchoolyearNumID = finsco.SchoolyearNumID,
- StarttermID = finsco.StarttermID,
- ResultTypeID = finsco.ResultTypeID,
- CreateUserID = finsco.CreateUserID,
- Credit = finsco.Credit,
- TotalHours = finsco.TotalHours,
- ExamsCategoryID = finsco.ExamsCategoryID,
- ExamsStateID = finsco.ExamsStateID,
- TotalScore = finsco.TotalScore,
- ScoreCredit = finsco.ScoreCredit,
- GradePoint = finsco.GradePoint,
- CreateTime = finsco.CreateTime
- };
- var query = from stuep in this.GetGraPreStudentExecutablePlanViewQueryable(expStudent, expSchoolyear)
- join finsco in graPreStuFinScoreList
- on
- new { UserID = stuep.UserID, CoursematerialID = stuep.CoursematerialID }
- equals
- new { UserID = finsco.UserID.Value, CoursematerialID = finsco.CoursematerialID }
- into tempepfinsco
- from epfinsco in tempepfinsco.DefaultIfEmpty()
- select new StudentScoreView
- {
- SchoolyearID = stuep.SchoolyearID,
- SchoolyearCode = stuep.SchoolyearCode,
- UserID = stuep.UserID,
- CoursematerialID = stuep.CoursematerialID,
- CourseCode = stuep.CourseCode,
- CourseName = stuep.CourseName,
- CourseTypeID = stuep.CourseTypeID,
- SchoolyearNumID = stuep.SchoolyearNumID,
- StarttermID = stuep.StarttermID,
- ResultTypeID = stuep.ResultTypeID,
- Credit = stuep.Credit,
- //TotalHours = stuep.Totalhours,(执行计划总学时类型不对,暂时不处理)
- ExamsCategoryID = epfinsco.ExamsCategoryID,
- ExamsStateID = epfinsco.ExamsStateID,
- TotalScore = epfinsco.TotalScore ?? 0,
- ScoreCredit = epfinsco.ScoreCredit ?? 0
- };
- return query;
- }
- }
- }
|