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.
 
 
 
 
 
 

297 lines
9.3 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-01-22 16:32
  14. /// 描 述:专业信息管理
  15. /// </summary>
  16. public class CdMajorController : MvcControllerBase
  17. {
  18. private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
  19. private ArrangeLessonSyncIBLL arrangeLessonSyncIBLL = new ArrangeLessonSyncBLL();
  20. private StuEnrollScoreIBLL stuEnrollScoreIBLL = new StuEnrollScoreBLL();
  21. private ExamSubjectIBLL examSubjectIBLL = new ExamSubjectBLL();
  22. private MajorAndSubjectIBLL majorAndSubjectIBLL = new MajorAndSubjectBLL();
  23. #region 视图功能
  24. /// <summary>
  25. /// 主页面
  26. /// <summary>
  27. /// <returns></returns>
  28. [HttpGet]
  29. public ActionResult Index()
  30. {
  31. return View();
  32. }
  33. /// <summary>
  34. /// 管理省份
  35. /// <summary>
  36. /// <returns></returns>
  37. [HttpGet]
  38. public ActionResult IndexProvince()
  39. {
  40. return View();
  41. }
  42. /// <summary>
  43. /// 管理省份
  44. /// <summary>
  45. /// <returns></returns>
  46. [HttpGet]
  47. public ActionResult FormProvince()
  48. {
  49. return View();
  50. }
  51. /// <summary>
  52. /// 表单页
  53. /// <summary>
  54. /// <returns></returns>
  55. [HttpGet]
  56. public ActionResult Form()
  57. {
  58. return View();
  59. }
  60. /// <summary>
  61. /// 主页面【设置选课专业】
  62. /// <summary>
  63. /// <returns></returns>
  64. [HttpGet]
  65. public ActionResult IndexOfElective()
  66. {
  67. return View();
  68. }
  69. /// <summary>
  70. /// 主页面【线上选修课程-设置选课专业】
  71. /// <summary>
  72. /// <returns></returns>
  73. [HttpGet]
  74. public ActionResult IndexOfElectiveOnline()
  75. {
  76. return View();
  77. }
  78. #endregion
  79. #region 获取数据
  80. /// <summary>
  81. /// 返回前五年+后五年的年份yyyy
  82. /// </summary>
  83. /// <returns></returns>
  84. public ActionResult GenerateNearByYear()
  85. {
  86. return Success(WebHelper.GenerateNearByYear());
  87. }
  88. /// <summary>
  89. /// 获取页面显示列表数据
  90. /// <summary>
  91. /// <param name="queryJson">查询参数</param>
  92. /// <returns></returns>
  93. [HttpGet]
  94. [AjaxOnly]
  95. public ActionResult GetPageList(string pagination, string queryJson)
  96. {
  97. Pagination paginationobj = pagination.ToObject<Pagination>();
  98. var data = cdMajorIBLL.GetPageList(paginationobj, queryJson);
  99. var jsonData = new
  100. {
  101. rows = data,
  102. total = paginationobj.total,
  103. page = paginationobj.page,
  104. records = paginationobj.records
  105. };
  106. return Success(jsonData);
  107. }
  108. /// <summary>
  109. /// 获取专业省份关联数据
  110. /// <summary>
  111. /// <param name="queryJson">查询参数</param>
  112. /// <returns></returns>
  113. [HttpGet]
  114. [AjaxOnly]
  115. public ActionResult GetListForProvince(string queryJson)
  116. {
  117. var data = cdMajorIBLL.GetListForProvince(queryJson);
  118. return Success(data);
  119. }
  120. [HttpGet]
  121. [AjaxOnly]
  122. public ActionResult GetElectivePageList(string queryJson)
  123. {
  124. var data = cdMajorIBLL.GetElectivePageList(queryJson).OrderBy(x => x.MajorNo).ThenBy(x => x.Grade);
  125. return Success(data);
  126. }
  127. [HttpGet]
  128. [AjaxOnly]
  129. public ActionResult GetElectiveOnlinePageList(string queryJson)
  130. {
  131. var data = cdMajorIBLL.GetElectiveOnlinePageList(queryJson).OrderBy(x => x.MajorNo).ThenBy(x => x.Grade);
  132. return Success(data);
  133. }
  134. [HttpGet]
  135. [AjaxOnly]
  136. public ActionResult GetListByDeptNo(string DeptNo)
  137. {
  138. var data = cdMajorIBLL.GetListByDeptNo(DeptNo);
  139. return Success(data);
  140. }
  141. /// <summary>
  142. /// 获取表单数据
  143. /// <summary>
  144. /// <returns></returns>
  145. [HttpGet]
  146. [AjaxOnly]
  147. public ActionResult GetFormData(string keyValue)
  148. {
  149. var CdMajorData = cdMajorIBLL.GetCdMajorEntity(keyValue);
  150. var jsonData = new
  151. {
  152. CdMajor = CdMajorData,
  153. };
  154. return Success(jsonData);
  155. }
  156. #endregion
  157. #region 提交数据
  158. [HttpPost]
  159. [AjaxOnly]
  160. public ActionResult Lock(string keyValue)
  161. {
  162. cdMajorIBLL.Lock(keyValue);
  163. return Success("操作成功!");
  164. }
  165. [HttpPost]
  166. [AjaxOnly]
  167. public ActionResult UnLock(string keyValue)
  168. {
  169. cdMajorIBLL.UnLock(keyValue);
  170. return Success("操作成功!");
  171. }
  172. /// <summary>
  173. /// 删除实体数据
  174. /// <param name="keyValue">主键</param>
  175. /// <summary>
  176. /// <returns></returns>
  177. [HttpPost]
  178. [AjaxOnly]
  179. public ActionResult DeleteForm(string keyValue)
  180. {
  181. var keyValueArr = keyValue.Split(',');
  182. foreach (var item in keyValueArr)
  183. {
  184. var model = cdMajorIBLL.GetCdMajorEntity(item);
  185. int AuditCout = stuEnrollScoreIBLL.IsExistNoCheck(model.Year, keyValue);
  186. if (AuditCout > 0)
  187. {
  188. return Fail("不能删除关联学科");
  189. }
  190. }
  191. cdMajorIBLL.DeleteEntity(keyValue);
  192. return Success("删除成功!");
  193. }
  194. /// <summary>
  195. /// 保存实体数据(新增、修改)
  196. /// <param name="keyValue">主键</param>
  197. /// <summary>
  198. /// <returns></returns>
  199. [HttpPost]
  200. [ValidateAntiForgeryToken]
  201. [AjaxOnly]
  202. public ActionResult SaveForm(string keyValue, string strEntity)
  203. {
  204. CdMajorEntity entity = strEntity.ToObject<CdMajorEntity>();
  205. entity.SyncFlag = false;
  206. var model = cdMajorIBLL.GetCdMajorEntityByMajorNo(entity.MajorNo);
  207. if (string.IsNullOrEmpty(keyValue))
  208. {
  209. if (model != null)
  210. {
  211. return Fail("专业编号已存在!");
  212. }
  213. }
  214. else
  215. {
  216. if (model != null && model.ID != keyValue)
  217. {
  218. return Fail("专业编号已存在!");
  219. }
  220. entity.SyncFlag = true;
  221. //判断排课同步数据是否存在:若存在,清除同步数据;
  222. var arrangeLessonSyncList = arrangeLessonSyncIBLL.GetArrangeLessonSyncListByTableId(keyValue);
  223. if (arrangeLessonSyncList.Any())
  224. {
  225. arrangeLessonSyncIBLL.DeleteEntityByTableId(keyValue);
  226. }
  227. else
  228. {
  229. entity.SyncFlag = false;
  230. }
  231. //删除所关联的科目
  232. majorAndSubjectIBLL.DeleteEntityById(keyValue);
  233. }
  234. int AuditCout = stuEnrollScoreIBLL.IsExistNoCheck(entity.Year, keyValue);
  235. if (AuditCout > 0)
  236. {
  237. return Fail("不能修改关联学科");
  238. }
  239. cdMajorIBLL.SaveEntity(keyValue, entity);
  240. //#region 给关联表添加科目
  241. //MajorAndSubjectEntity majorAndSubjectEntity = new MajorAndSubjectEntity();
  242. //string[] SubNo = entity.SubjectNo.Split(',');
  243. //for (int i = 0; i < SubNo.Length; i++)
  244. //{
  245. // majorAndSubjectEntity.MajorId = entity.ID;//关联专业主键
  246. // majorAndSubjectEntity.SubId = SubNo[i];//考试科目的主键
  247. // majorAndSubjectIBLL.SaveEntity("", majorAndSubjectEntity);
  248. //}
  249. //#endregion
  250. return Success("保存成功!");
  251. }
  252. /// <summary>
  253. /// 保存实体数据(新增、修改)
  254. /// <param name="keyValue">主键</param>
  255. /// <summary>
  256. /// <returns></returns>
  257. [HttpPost]
  258. [ValidateAntiForgeryToken]
  259. [AjaxOnly]
  260. public ActionResult SaveProvince(string keyValue, string strEntity,string MajorNo)
  261. {
  262. List<DIC_PROVINCEEntity> list = strEntity.ToObject<List<DIC_PROVINCEEntity>>();
  263. cdMajorIBLL.SaveProvince(list, MajorNo);
  264. return Success("保存成功!");
  265. }
  266. /// <summary>
  267. /// 删除实体数据
  268. /// <param name="keyValue">主键</param>
  269. /// <summary>
  270. /// <returns></returns>
  271. [HttpPost]
  272. [AjaxOnly]
  273. public ActionResult DeleteProvince(string keyValue)
  274. {
  275. cdMajorIBLL.DeleteProvince(keyValue);
  276. return Success("删除成功!");
  277. }
  278. #endregion
  279. }
  280. }