You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

167 lines
6.2 KiB

  1. using Learun.Util;
  2. using System.Data;
  3. using Learun.Application.TwoDevelopment.EducationalAdministration;
  4. using System.Web.Mvc;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
  8. {
  9. /// <summary>
  10. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  11. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  12. /// 创 建:超级管理员
  13. /// 日 期:2019-08-26 16:58
  14. /// 描 述:选修合班设置
  15. /// </summary>
  16. public class ElectiveMergeController : MvcControllerBase
  17. {
  18. private ElectiveMergeIBLL electiveMergeIBLL = new ElectiveMergeBLL();
  19. private LessonInfoIBLL lessonInfoIbll = new LessonInfoBLL();
  20. private OpenLessonPlanOfElectiveIBLL openLessonPlanOfElectiveIbll = new OpenLessonPlanOfElectiveBLL();
  21. #region 视图功能
  22. /// <summary>
  23. /// 主页面
  24. /// <summary>
  25. /// <returns></returns>
  26. [HttpGet]
  27. public ActionResult Index()
  28. {
  29. return View();
  30. }
  31. /// <summary>
  32. /// 表单页
  33. /// <summary>
  34. /// <returns></returns>
  35. [HttpGet]
  36. public ActionResult Form()
  37. {
  38. return View();
  39. }
  40. #endregion
  41. #region 获取数据
  42. /// <summary>
  43. /// 获取页面显示列表数据
  44. /// <summary>
  45. /// <param name="queryJson">查询参数</param>
  46. /// <returns></returns>
  47. [HttpGet]
  48. [AjaxOnly]
  49. public ActionResult GetPageList(string pagination, string queryJson)
  50. {
  51. Pagination paginationobj = pagination.ToObject<Pagination>();
  52. var data = electiveMergeIBLL.GetPageList(paginationobj, queryJson);
  53. var jsonData = new
  54. {
  55. rows = data,
  56. total = paginationobj.total,
  57. page = paginationobj.page,
  58. records = paginationobj.records
  59. };
  60. return Success(jsonData);
  61. }
  62. /// <summary>
  63. /// 获取表单数据
  64. /// <summary>
  65. /// <returns></returns>
  66. [HttpGet]
  67. [AjaxOnly]
  68. public ActionResult GetFormData(string keyValue)
  69. {
  70. var ElectiveMergeData = electiveMergeIBLL.GetElectiveMergeEntity(keyValue);
  71. var jsonData = new
  72. {
  73. ElectiveMerge = ElectiveMergeData,
  74. };
  75. return Success(jsonData);
  76. }
  77. #endregion
  78. #region 提交数据
  79. /// <summary>
  80. /// 删除实体数据
  81. /// <param name="keyValue">主键</param>
  82. /// <summary>
  83. /// <returns></returns>
  84. [HttpPost]
  85. [AjaxOnly]
  86. public ActionResult DeleteForm(string keyValue)
  87. {
  88. electiveMergeIBLL.DeleteEntity(keyValue);
  89. return Success("取消成功!");
  90. }
  91. /// <summary>
  92. /// 保存实体数据(新增、修改)
  93. /// <param name="keyValue">主键</param>
  94. /// <summary>
  95. /// <returns></returns>
  96. [HttpPost]
  97. [ValidateAntiForgeryToken]
  98. [AjaxOnly]
  99. public ActionResult SaveForm(string keyValue, string strEntity)
  100. {
  101. ElectiveMergeEntity entity = strEntity.ToObject<ElectiveMergeEntity>();
  102. electiveMergeIBLL.SetStuNumMax(keyValue, entity.StuNumMax.Value);
  103. return Success("设置成功!");
  104. }
  105. [HttpPost]
  106. [AjaxOnly]
  107. public ActionResult Merge(string AcademicYearNo, string Semester, string LessonNo, string EmpNo, string keyValue, string F_SchoolId)
  108. {
  109. var keyValueArr = keyValue.Split(',');
  110. if (AcademicYearNo.Split(',').Distinct().Count() == 1 &&
  111. Semester.Split(',').Distinct().Count() == 1 &&
  112. LessonNo.Split(',').Distinct().Count() == 1 && EmpNo.Split(',').Distinct().Count() == 1)
  113. {
  114. var lesson = lessonInfoIbll.GetLessonInfoEntityByLessonNo(LessonNo.Split(',')[0]);
  115. if (lesson == null)
  116. {
  117. return Fail("合班失败!课程库和排课数据不匹配,请检查。");
  118. }
  119. ElectiveMergeEntity emMergeEntity = new ElectiveMergeEntity();
  120. emMergeEntity.Create();
  121. emMergeEntity.AcademicYearNo = AcademicYearNo.Split(',')[0];
  122. emMergeEntity.Semester = Semester.Split(',')[0];
  123. emMergeEntity.F_SchoolId = F_SchoolId.Split(',')[0];
  124. emMergeEntity.LessonId = lesson.LessonId;
  125. emMergeEntity.LessonNo = lesson.LessonNo;
  126. emMergeEntity.LessonName = lesson.LessonName;
  127. List<ElectiveMergeItemEntity> listElectiveMergeItemEntity = new List<ElectiveMergeItemEntity>();
  128. foreach (var item in keyValueArr)
  129. {
  130. ElectiveMergeItemEntity emItemEntity = new ElectiveMergeItemEntity();
  131. emItemEntity.Create();
  132. emItemEntity.EmId = emMergeEntity.EMId;
  133. emItemEntity.OLPOEId = item;
  134. var olpoe = openLessonPlanOfElectiveIbll.GetOpenLessonPlanOfElectiveEntity(item);
  135. emItemEntity.LessonSection = olpoe.LessonSection;
  136. emItemEntity.LessonTime = olpoe.LessonTime;
  137. emItemEntity.EmpNo = olpoe.EmpNo;
  138. emItemEntity.EmpName = olpoe.EmpName;
  139. emItemEntity.ClassRoomNo = olpoe.ClassRoomNo;
  140. emItemEntity.ClassRoomName = olpoe.ClassRoomName;
  141. listElectiveMergeItemEntity.Add(emItemEntity);
  142. }
  143. if (listElectiveMergeItemEntity.Select(m=>m.LessonSection.Substring(0,1)).Distinct().Count()>1)
  144. {
  145. return Fail("合班失败!请确认所选课程是否为同一天课程。");
  146. }
  147. electiveMergeIBLL.SaveEntity(null, emMergeEntity, listElectiveMergeItemEntity);
  148. return Success("合班成功!");
  149. }
  150. else
  151. return Fail("合班失败!请确认所选课程是否为可合并课程。");
  152. }
  153. #endregion
  154. }
  155. }