|
- 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
- {
- /// <summary>
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2019-05-24 10:27
- /// 描 述:排考数据同步
- /// </summary>
- 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 视图功能
-
- /// <summary>
- /// 主页面
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult Index()
- {
- return View();
- }
- /// <summary>
- /// 表单页
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult Form()
- {
- return View();
- }
-
- /// <summary>
- /// 考试表
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult ExamIndex()
- {
- return View();
- }
- /// <summary>
- /// 考试安排表【教师工作管理】
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult ExamIndexOfTeacher()
- {
- return View();
- }
- /// <summary>
- /// 考试安排表【学子在线】
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult ExamIndexOfStudent()
- {
- return View();
- }
- #endregion
-
- #region 获取数据
-
- /// <summary>
- /// 获取页面显示列表数据
- /// <summary>
- /// <param name="queryJson">查询参数</param>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = pagination.ToObject<Pagination>();
- var data = arrangeExamTermIBLL.GetPageList(paginationobj, queryJson);
- var jsonData = new
- {
- rows = data,
- total = paginationobj.total,
- page = paginationobj.page,
- records = paginationobj.records
- };
- return Success(jsonData);
- }
- /// <summary>
- /// 获取表单数据
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetFormData(string keyValue)
- {
- var ArrangeExamTermData = arrangeExamTermIBLL.GetArrangeExamTermEntity(keyValue);
- var jsonData = new
- {
- ArrangeExamTerm = ArrangeExamTermData,
- };
- return Success(jsonData);
- }
- #endregion
-
- #region 提交数据
-
- /// <summary>
- /// 删除实体数据
- /// <param name="keyValue">主键</param>
- /// <summary>
- /// <returns></returns>
- [HttpPost]
- [AjaxOnly]
- public ActionResult DeleteForm(string keyValue)
- {
- arrangeExamTermIBLL.DeleteEntity(keyValue);
- return Success("删除成功!");
- }
- /// <summary>
- /// 保存实体数据(新增、修改)
- /// <param name="keyValue">主键</param>
- /// <summary>
- /// <returns></returns>
- [HttpPost]
- [ValidateAntiForgeryToken]
- [AjaxOnly]
- public ActionResult SaveForm(string keyValue, string strEntity)
- {
- ArrangeExamTermEntity entity = strEntity.ToObject<ArrangeExamTermEntity>();
- arrangeExamTermIBLL.SaveEntity(keyValue, entity);
- return Success("保存成功!");
- }
- #endregion
-
- #region 扩展数据
-
- /// <summary>
- /// 排考数据同步
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public async Task<ActionResult> AsyncArrangeExamDataNew(ArrangeLessonTermEntity entity)
- {
- var data = await arrangeExamTermIBLL.AsyncArrangeExamDataNew(entity);
- return Success(data);
- }
-
- [HttpGet]
- [AjaxOnly]
- public async Task<ActionResult> AsyncArrangeExamData()
- {
- var data = await arrangeExamTermIBLL.AsyncArrangeExamData();
- return Success(data);
- }
-
- /// <summary>
- /// 考试表
- /// </summary>
- /// <returns></returns>
- [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);
- }
-
- /// <summary>
- /// 考试表【学子在线】
- /// </summary>
- /// <returns></returns>
- [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<TimeTable>();
-
- //获取考试数据
- 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);
- }
-
- /// <summary>
- /// 考试表--班级下拉框信息
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetClassData()
- {
- var data = arrangeExamTermIBLL.GetClassData();
-
- return Success(data);
- }
-
- /// <summary>
- /// 考试表--教师下拉框信息
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetTeacherData()
- {
- var data = arrangeExamTermIBLL.GetTeacherData();
-
- return Success(data);
- }
-
- /// <summary>
- /// 获取一周的日期
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetWeekDate(string startTime)
- {
- var data = new List<string>();
-
- var monday = Common.CalculateFirstDateOfWeek(Convert.ToDateTime(startTime));
- for (int i = 0; i < 7; i++)
- {
- data.Add(monday.AddDays(i).ToDateString());
- }
-
- return Success(data);
- }
-
- #endregion
-
-
- /// <summary>
- /// 测试【移动端-学生成绩查询】
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult test()
- {
- var data = stuScoreIBLL.GetScoreListByStuNo("18-19","2","2018010101", "20180101");
- return Success(data);
- }
-
-
- }
- }
|