using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Transactions; using Bowin.Common.Linq; using Bowin.Common.Linq.Entity; using EMIS.Entities; using EMIS.ViewModel; using EMIS.ViewModel.EducationManage.EducationArrange; using EMIS.DataLogic.EducationManage.EducationArrange; using EMIS.CommonLogic.StudentManage.StudentStatistics; namespace EMIS.CommonLogic.EducationManage.EducationArrange { public class EducationMissionClassStudentServices : BaseServices, IEducationMissionClassStudentServices { public EducationMissionClassStudentDAL EducationMissionClassStudentDAL { get; set; } public Lazy InSchoolSettingServices { get; set; } /// /// 查询对应的教学任务班学生名单信息EducationMissionClassStudentView /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// public IGridResultSet GetEducationMissionClassStudentViewGrid(ConfiguretView configuretView, Guid? schoolyearID, Guid? campusID, Guid? collegeID, int? gradeID, int? standardID, int? educationID, int? learningformID, string learnSystem, Guid? classmajorID, Guid? coursematerialID, int? inSchoolStatus, int? approvalStatus, int pageIndex, int pageSize) { Expression> expEducationSchedulingClass = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); Expression> expEducationMissionClass = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (coursematerialID.HasValue) { expEducationMissionClass = expEducationMissionClass.And(x => x.CoursematerialID == coursematerialID); } if (approvalStatus.HasValue) { expEducationMissionClass = expEducationMissionClass.And(x => x.RecordStatus == approvalStatus); } Expression> expEducationMission = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (schoolyearID.HasValue) { expEducationMission = expEducationMission.And(x => x.SchoolyearID == schoolyearID); } Expression> expStudent = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (classmajorID.HasValue) { expStudent = expStudent.And(x => x.ClassmajorID == classmajorID); } if (inSchoolStatus != null && inSchoolStatus > -1) { var inschoolStatusList = InSchoolSettingServices.Value.GetInschoolStatusList(true); if (inSchoolStatus == 1) { expStudent = expStudent.And(x => inschoolStatusList.Contains(x.InSchoolStatusID)); } if (inSchoolStatus == 0) { expStudent = expStudent.And(x => !inschoolStatusList.Contains(x.InSchoolStatusID)); } } var query = EducationMissionClassStudentDAL.GetEducationMissionClassStudentViewQueryable(expEducationSchedulingClass, expEducationMissionClass, expEducationMission, expStudent); if (campusID.HasValue) { query = query.Where(x => x.CampusID == campusID); } if (collegeID.HasValue) { query = query.Where(x => x.CollegeID == collegeID); } if (gradeID.HasValue) { query = query.Where(x => x.GradeID == gradeID); } if (standardID.HasValue) { query = query.Where(x => x.StandardID == standardID); } if (educationID.HasValue) { query = query.Where(x => x.EducationID == educationID); } if (learningformID.HasValue) { query = query.Where(x => x.LearningformID == learningformID); } if (!string.IsNullOrEmpty(learnSystem) && learnSystem != "-1") { var LearnSystems = Convert.ToDecimal(learnSystem); query = query.Where(x => x.LearnSystem == LearnSystems); } if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return this.GetQueryByAssistant(query, (x => x.ClassmajorID), this.GetQueryByDataRangeByCollege(query)).OrderByDescending(x => x.Value) .ThenBy(x => x.CourseCode.Length).ThenBy(x => x.CourseCode).ThenBy(x => x.CourseTypeID).ThenBy(x => x.TeachingModeID) .ThenBy(x => x.MissionClassName).ThenBy(x => x.OrderNo).ThenBy(x => x.ClassmajorNo.Length).ThenBy(x => x.ClassmajorNo) .ThenBy(x => x.ClassNum).ThenBy(x => x.StudentNo.Length).ThenBy(x => x.StudentNo) .ToGridResultSet(pageIndex, pageSize); } /// /// 查询对应的教学任务班学生名单信息List /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// public IList GetEducationMissionClassStudentViewList(ConfiguretView configuretView, Guid? schoolyearID, Guid? campusID, Guid? collegeID, int? gradeID, int? standardID, int? educationID, int? learningformID, string learnSystem, Guid? classmajorID, Guid? coursematerialID, int? inSchoolStatus, int? approvalStatus) { Expression> expEducationSchedulingClass = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); Expression> expEducationMissionClass = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (coursematerialID.HasValue) { expEducationMissionClass = expEducationMissionClass.And(x => x.CoursematerialID == coursematerialID); } if (approvalStatus.HasValue) { expEducationMissionClass = expEducationMissionClass.And(x => x.RecordStatus == approvalStatus); } Expression> expEducationMission = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (schoolyearID.HasValue) { expEducationMission = expEducationMission.And(x => x.SchoolyearID == schoolyearID); } Expression> expStudent = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (classmajorID.HasValue) { expStudent = expStudent.And(x => x.ClassmajorID == classmajorID); } if (inSchoolStatus != null && inSchoolStatus > -1) { var inschoolStatusList = InSchoolSettingServices.Value.GetInschoolStatusList(true); if (inSchoolStatus == 1) { expStudent = expStudent.And(x => inschoolStatusList.Contains(x.InSchoolStatusID)); } if (inSchoolStatus == 0) { expStudent = expStudent.And(x => !inschoolStatusList.Contains(x.InSchoolStatusID)); } } var query = EducationMissionClassStudentDAL.GetEducationMissionClassStudentViewQueryable(expEducationSchedulingClass, expEducationMissionClass, expEducationMission, expStudent); if (campusID.HasValue) { query = query.Where(x => x.CampusID == campusID); } if (collegeID.HasValue) { query = query.Where(x => x.CollegeID == collegeID); } if (gradeID.HasValue) { query = query.Where(x => x.GradeID == gradeID); } if (standardID.HasValue) { query = query.Where(x => x.StandardID == standardID); } if (educationID.HasValue) { query = query.Where(x => x.EducationID == educationID); } if (learningformID.HasValue) { query = query.Where(x => x.LearningformID == learningformID); } if (!string.IsNullOrEmpty(learnSystem) && learnSystem != "-1") { var LearnSystems = Convert.ToDecimal(learnSystem); query = query.Where(x => x.LearnSystem == LearnSystems); } if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return this.GetQueryByAssistant(query, (x => x.ClassmajorID), this.GetQueryByDataRangeByCollege(query)).OrderByDescending(x => x.Value) .ThenBy(x => x.CourseCode.Length).ThenBy(x => x.CourseCode).ThenBy(x => x.CourseTypeID).ThenBy(x => x.TeachingModeID) .ThenBy(x => x.MissionClassName).ThenBy(x => x.OrderNo).ThenBy(x => x.ClassmajorNo.Length).ThenBy(x => x.ClassmajorNo) .ThenBy(x => x.ClassNum).ThenBy(x => x.StudentNo.Length).ThenBy(x => x.StudentNo).ToList(); } } }