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);
}
}
}