using Learun.Util; using System.Data; using Learun.Application.TwoDevelopment.EducationalAdministration; using System.Web.Mvc; using System.Collections.Generic; using System.Threading.Tasks; using System; using System.Linq; namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 /// Copyright (c) 2013-2018 北京泉江科技有限公司 /// 创 建:超级管理员 /// 日 期:2019-05-24 10:27 /// 描 述:排考数据同步 /// public class ArrangeExamTermController : MvcControllerBase { private ArrangeExamTermIBLL arrangeExamTermIBLL = new ArrangeExamTermBLL(); private ArrangeExamStructureIBLL arrangeExamStructureIBLL = new ArrangeExamStructureBLL(); private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); private StuScoreIBLL stuScoreIBLL = new StuScoreBLL(); #region 视图功能 /// /// 主页面 /// /// [HttpGet] public ActionResult Index() { return View(); } /// /// 表单页 /// /// [HttpGet] public ActionResult Form() { return View(); } /// /// 考试表 /// /// [HttpGet] public ActionResult ExamIndex() { return View(); } /// /// 考试安排表【教师工作管理】 /// /// [HttpGet] public ActionResult ExamIndexOfTeacher() { return View(); } /// /// 考试安排表【学子在线】 /// /// [HttpGet] public ActionResult ExamIndexOfStudent() { return View(); } #endregion #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// [HttpGet] [AjaxOnly] public ActionResult GetPageList(string pagination, string queryJson) { Pagination paginationobj = pagination.ToObject(); var data = arrangeExamTermIBLL.GetPageList(paginationobj, queryJson); var jsonData = new { rows = data, total = paginationobj.total, page = paginationobj.page, records = paginationobj.records }; return Success(jsonData); } /// /// 获取表单数据 /// /// [HttpGet] [AjaxOnly] public ActionResult GetFormData(string keyValue) { var ArrangeExamTermData = arrangeExamTermIBLL.GetArrangeExamTermEntity(keyValue); var jsonData = new { ArrangeExamTerm = ArrangeExamTermData, }; return Success(jsonData); } #endregion #region 提交数据 /// /// 删除实体数据 /// 主键 /// /// [HttpPost] [AjaxOnly] public ActionResult DeleteForm(string keyValue) { arrangeExamTermIBLL.DeleteEntity(keyValue); return Success("删除成功!"); } /// /// 保存实体数据(新增、修改) /// 主键 /// /// [HttpPost] [ValidateAntiForgeryToken] [AjaxOnly] public ActionResult SaveForm(string keyValue, string strEntity) { ArrangeExamTermEntity entity = strEntity.ToObject(); arrangeExamTermIBLL.SaveEntity(keyValue, entity); return Success("保存成功!"); } #endregion #region 扩展数据 /// /// 排考数据同步 /// /// [HttpGet] [AjaxOnly] public async Task AsyncArrangeExamDataNew(ArrangeLessonTermEntity entity) { var data = await arrangeExamTermIBLL.AsyncArrangeExamDataNew(entity); return Success(data); } [HttpGet] [AjaxOnly] public async Task AsyncArrangeExamData() { var data = await arrangeExamTermIBLL.AsyncArrangeExamData(); return Success(data); } /// /// 考试表 /// /// [HttpGet] [AjaxOnly] public ActionResult GetData(string startTime, string endTime, string classNo, string empNo) { var userInfo = LoginUserInfo.Get(); //var startDate = startTime ?? Common.CalculateFirstDateOfWeek(DateTime.Today).ToString("yyyy-MM-dd"); //var endDate = endTime ?? Common.CalculateLastDateOfWeek(DateTime.Today).ToString("yyyy-MM-dd"); //开始时间 var startdate = string.IsNullOrEmpty(startTime) ? DateTime.Today : Convert.ToDateTime(startTime); var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd"); var endDate = Common.CalculateLastDateOfWeek(startdate).ToString("yyyy-MM-dd"); var semesterAndYear = Common.GetSemesterAndYear(startDate); var strAcademicYear = semesterAndYear.AcademicYearLong; var strSemester = semesterAndYear.Semester; //默认节次时间 var sectionNum = 6; var sectionTimeArr = new string[6]; //获取本学年本学期节次时间 var arrangeExamTermEntity = arrangeExamTermIBLL.GetArrangeExamTermEntityByYear(semesterAndYear.AcademicYearShort, strSemester); if (arrangeExamTermEntity != null) { var structureId = arrangeExamTermEntity.StructureId; if (!string.IsNullOrEmpty(structureId)) { var arrangeExamStructureEntity = arrangeExamStructureIBLL.GetArrangeExamStructureEntity(structureId); if (arrangeExamStructureEntity != null) { sectionNum = arrangeExamStructureEntity.MorningNum.Value + arrangeExamStructureEntity.AfternoonNum.Value + arrangeExamStructureEntity.NightNum.Value; if (!string.IsNullOrEmpty(arrangeExamStructureEntity.Time)) { sectionTimeArr = arrangeExamStructureEntity.Time.Split(','); } } } } //获取考试数据 var timeTables = arrangeExamTermIBLL.GetExamTable(startDate, endDate, classNo, empNo); var noDataResult = new { schoolName = "考试表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = "", sectionNum = sectionNum, sectionTimeArr = sectionTimeArr }; if (!timeTables.Any()) { return JsonResult(noDataResult); } var formatData = from d in timeTables let tt = d.LessonTime.Substring(1) group d by tt into g orderby g.Key select new { time = g.Key, list = from e in timeTables let ee = e.LessonTime.Substring(1) where ee == g.Key select new { day = e.LessonTime.ToCharArray()[0], academicyear = semesterAndYear.AcademicYearShort, semester = strSemester, lessonNo = e?.LessonNo, curriculum = e.LessonName, lessonSortNo = e.LessonSortNo, lessonTime = e.LessonTime, lessonDate = e.LessonDate.ToString("yyyy-MM-dd"), empno = e?.EmpNo, teacher = e.EmpName, classNo = e?.TeachClassNo, className = e.ClassName, classRoomName = e.ClassroomName.Trim(), classRoomNo = e?.ClassRoomNo.Trim() } } ; var result = new { schoolName = "考试表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = formatData, sectionNum = sectionNum, sectionTimeArr = sectionTimeArr }; return JsonResult(result); } /// /// 考试表【学子在线】 /// /// [HttpGet] [AjaxOnly] public ActionResult GetDataInStudent(string startTime, string endTime, string classNo, string empNo) { var userInfo = LoginUserInfo.Get(); //获取学生所在班级 var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(userInfo.account); if (stuInfoBasicEntity == null) { return Fail("学生不存在!"); } //开始时间 var startdate = string.IsNullOrEmpty(startTime) ? DateTime.Today : Convert.ToDateTime(startTime); var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd"); var endDate = Common.CalculateLastDateOfWeek(startdate).ToString("yyyy-MM-dd"); var semesterAndYear = Common.GetSemesterAndYear(startDate); var strAcademicYear = semesterAndYear.AcademicYearLong; var strSemester = semesterAndYear.Semester; //默认节次时间 var sectionNum = 6; var sectionTimeArr = new string[6]; //获取本学年本学期节次时间 var arrangeExamTermEntity = arrangeExamTermIBLL.GetArrangeExamTermEntityByYear(semesterAndYear.AcademicYearShort, strSemester); if (arrangeExamTermEntity != null) { var structureId = arrangeExamTermEntity.StructureId; if (!string.IsNullOrEmpty(structureId)) { var arrangeExamStructureEntity = arrangeExamStructureIBLL.GetArrangeExamStructureEntity(structureId); if (arrangeExamStructureEntity != null) { sectionNum = arrangeExamStructureEntity.MorningNum.Value + arrangeExamStructureEntity.AfternoonNum.Value + arrangeExamStructureEntity.NightNum.Value; if (!string.IsNullOrEmpty(arrangeExamStructureEntity.Time)) { sectionTimeArr = arrangeExamStructureEntity.Time.Split(','); } } } } var timeTables = new List(); //获取考试数据 var timeTablesOfBixiu = arrangeExamTermIBLL.GetExamTable(startDate, endDate, stuInfoBasicEntity.ClassNo, ""); timeTables.AddRange(timeTablesOfBixiu); //获取选修考试数据 var timeTablesOfElective = arrangeExamTermIBLL.GetExamTableOfElectiveInStudent(startDate, endDate, userInfo.account); timeTables.AddRange(timeTablesOfElective); var noDataResult = new { schoolName = "考试表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = "", sectionNum = sectionNum, sectionTimeArr = sectionTimeArr }; if (!timeTables.Any()) { return JsonResult(noDataResult); } var formatData = from d in timeTables let tt = d.LessonTime.Substring(1) group d by tt into g orderby g.Key select new { time = g.Key, list = from e in timeTables let ee = e.LessonTime.Substring(1) where ee == g.Key select new { day = e.LessonTime.ToCharArray()[0], academicyear = semesterAndYear.AcademicYearShort, semester = strSemester, lessonNo = e?.LessonNo, curriculum = e.LessonName, lessonSortNo = e.LessonSortNo, lessonTime = e.LessonTime, lessonDate = e.LessonDate.ToString("yyyy-MM-dd"), empno = e?.EmpNo, teacher = e.EmpName, classNo = e?.TeachClassNo, className = e.ClassName, classRoomName = e.ClassroomName.Trim(), classRoomNo = e?.ClassRoomNo.Trim() } } ; var result = new { schoolName = "考试表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = formatData, sectionNum = sectionNum, sectionTimeArr = sectionTimeArr }; return JsonResult(result); } /// /// 考试表--班级下拉框信息 /// /// [HttpGet] [AjaxOnly] public ActionResult GetClassData() { var data = arrangeExamTermIBLL.GetClassData(); return Success(data); } /// /// 考试表--教师下拉框信息 /// /// [HttpGet] [AjaxOnly] public ActionResult GetTeacherData() { var data = arrangeExamTermIBLL.GetTeacherData(); return Success(data); } /// /// 获取一周的日期 /// /// [HttpGet] [AjaxOnly] public ActionResult GetWeekDate(string startTime) { var data = new List(); var monday = Common.CalculateFirstDateOfWeek(Convert.ToDateTime(startTime)); for (int i = 0; i < 7; i++) { data.Add(monday.AddDays(i).ToDateString()); } return Success(data); } #endregion /// /// 测试【移动端-学生成绩查询】 /// /// [HttpGet] [AjaxOnly] public ActionResult test() { var data = stuScoreIBLL.GetScoreListByStuNo("18-19","2","2018010101", "20180101"); return Success(data); } } }