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.
 
 
 
 
 
 

337 lines
12 KiB

  1. using Learun.Util;
  2. using System.Data;
  3. using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement;
  4. using System.Web.Mvc;
  5. using System.Collections.Generic;
  6. using Learun.Application.TwoDevelopment.EducationalAdministration;
  7. using System.Linq;
  8. using System;
  9. using static Learun.Util.WebHelper;
  10. using Newtonsoft.Json;
  11. namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers
  12. {
  13. /// <summary>
  14. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  15. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  16. /// 创 建:超级管理员
  17. /// 日 期:2019-06-04 15:14
  18. /// 描 述:收费标准设置
  19. /// </summary>
  20. public class FinaChargesStandardController : MvcControllerBase
  21. {
  22. private FinaChargesStandardIBLL finaChargesStandardIBLL = new FinaChargesStandardBLL();
  23. private FinaChargeItemIBLL finaChargeItemIBLL = new FinaChargeItemBLL();
  24. #region 视图功能
  25. /// <summary>
  26. /// 主页面
  27. /// <summary>
  28. /// <returns></returns>
  29. [HttpGet]
  30. public ActionResult Index()
  31. {
  32. return View();
  33. }
  34. /// <summary>
  35. /// 表单页
  36. /// <summary>
  37. /// <returns></returns>
  38. [HttpGet]
  39. public ActionResult Form()
  40. {
  41. return View();
  42. }
  43. /// <summary>
  44. /// 编辑表单页
  45. /// <summary>
  46. /// <returns></returns>
  47. [HttpGet]
  48. public ActionResult EditForm()
  49. {
  50. return View();
  51. }
  52. /// <summary>
  53. /// 主页面
  54. /// <summary>
  55. /// <returns></returns>
  56. [HttpGet]
  57. public ActionResult ShowIndex()
  58. {
  59. var semesterAndYear = Common.GetSemesterAndYear();
  60. var queryObject = new { AcademicYearNo = semesterAndYear.AcademicYearShort, Semester = semesterAndYear.Semester, Grade = semesterAndYear.AcademicYearShort.Substring(0, 2) };
  61. var queryJson = JsonConvert.SerializeObject(queryObject);
  62. var data = finaChargesStandardIBLL.GetTreeList(queryJson).Where(x => x.ParentId == "0");
  63. var result = new modelTemp()
  64. {
  65. AcademicYearNoList = WebHelper.GenerateNearByAcademic(),
  66. SemesterList = WebHelper.GenerateNearBySemeter(),
  67. GradeList = WebHelper.GenerateNearByYear2(),
  68. AcademicYearNo = semesterAndYear.AcademicYearShort,
  69. Semester = semesterAndYear.Semester,
  70. Grade = semesterAndYear.AcademicYearShort.Substring(0, 2),
  71. FinaChargesStandardList = data.ToList(),
  72. TotalNum = data.Count()
  73. };
  74. return View(result);
  75. }
  76. /// <summary>
  77. /// 页面临时模型
  78. /// </summary>
  79. public class modelTemp
  80. {
  81. public List<YearGrade> AcademicYearNoList { get; set; }
  82. public List<YearGrade> SemesterList { get; set; }
  83. public List<YearGrade> GradeList { get; set; }
  84. public string AcademicYearNo { get; set; }
  85. public string Semester { get; set; }
  86. public string Grade { get; set; }
  87. public List<FinaChargesStandardEntity> FinaChargesStandardList { get; set; }
  88. public int TotalNum { get; set; }
  89. }
  90. #endregion
  91. #region 获取数据
  92. /// <summary>
  93. /// 获取页面显示列表数据
  94. /// <summary>
  95. /// <param name="queryJson">查询参数</param>
  96. /// <returns></returns>
  97. [HttpGet]
  98. [AjaxOnly]
  99. public ActionResult GetPageList(string pagination, string queryJson)
  100. {
  101. Pagination paginationobj = pagination.ToObject<Pagination>();
  102. var data = finaChargesStandardIBLL.GetPageList(paginationobj, queryJson);
  103. var jsonData = new
  104. {
  105. rows = data,
  106. total = paginationobj.total,
  107. page = paginationobj.page,
  108. records = paginationobj.records
  109. };
  110. return Success(jsonData);
  111. }
  112. /// <summary>
  113. /// 获取页面显示列表数据
  114. /// <summary>
  115. /// <param name="queryJson">查询参数</param>
  116. /// <returns></returns>
  117. [HttpGet]
  118. [AjaxOnly]
  119. public ActionResult GetTreeList(string queryJson)
  120. {
  121. var data = finaChargesStandardIBLL.GetTreeList(queryJson);
  122. var jsonData = new
  123. {
  124. rows = data
  125. };
  126. return Success(jsonData);
  127. }
  128. /// <summary>
  129. /// 获取页面显示列表数据
  130. /// <summary>
  131. /// <param name="queryJson">查询参数</param>
  132. /// <returns></returns>
  133. [HttpGet]
  134. [AjaxOnly]
  135. public ActionResult GetList(string queryJson)
  136. {
  137. var data = finaChargesStandardIBLL.GetTreeList(queryJson).Where(x => x.ParentId == "0");
  138. return Success(data);
  139. }
  140. /// <summary>
  141. /// 获取表单数据
  142. /// <summary>
  143. /// <returns></returns>
  144. [HttpGet]
  145. [AjaxOnly]
  146. public ActionResult GetFormData(string majorNo, string academicYearNo, string semester, string grade)
  147. {
  148. var FinaChargesStandardData = finaChargesStandardIBLL.GetFinaChargesStandardListByMajorNo(majorNo, academicYearNo, semester, grade);
  149. var jsonData = new
  150. {
  151. FinaChargesStandard = FinaChargesStandardData,
  152. };
  153. return Success(jsonData);
  154. }
  155. /// <summary>
  156. /// 获取编辑表单数据
  157. /// <summary>
  158. /// <returns></returns>
  159. [HttpGet]
  160. [AjaxOnly]
  161. public ActionResult GetFormDataOfEdit(string keyValue)
  162. {
  163. var FinaChargesStandardData = finaChargesStandardIBLL.GetFinaChargesStandardEntity(keyValue);
  164. var FinaChargeItemData = finaChargeItemIBLL.GetFinaChargeItemEntity(FinaChargesStandardData.ChargeItemID.ToString());
  165. FinaChargesStandardData.ChargeItemName = FinaChargeItemData.ChargeItemName;
  166. var jsonData = new
  167. {
  168. FinaChargesStandard = FinaChargesStandardData,
  169. };
  170. return Success(jsonData);
  171. }
  172. /// <summary>
  173. /// 获取某专业下的收费项目收费标准信息
  174. /// <summary>
  175. /// <returns></returns>
  176. [AjaxOnly]
  177. public ActionResult GetFinaChargesStandardListByMajorNo(string majorNo, string academicYearNo, string semester, string grade)
  178. {
  179. var FinaChargesStandardData = finaChargesStandardIBLL.GetFinaChargesStandardListByMajorNo(majorNo, academicYearNo, semester, grade);
  180. var hasStandardData = FinaChargesStandardData.Where(x => x.ChargeStandardID > 0);
  181. var nohasStandardData = FinaChargesStandardData.Except(hasStandardData);
  182. var hasStandardResult = hasStandardData.Select(x => new
  183. {
  184. id = x.ChargeItemID,
  185. title = x.ChargeItemName,
  186. money = x.Standard.HasValue ? x.Standard.Value : 0
  187. }).OrderBy(x => x.id).ToArray();
  188. var nohasStandardResult = nohasStandardData.Select(x => new
  189. {
  190. id = x.ChargeItemID,
  191. title = x.ChargeItemName,
  192. money = x.Standard.HasValue ? x.Standard.Value : 0
  193. }).OrderBy(x => x.id).ToArray();
  194. var jsonData = new
  195. {
  196. hasStandardResult = hasStandardResult,
  197. nohasStandardResult = nohasStandardResult
  198. };
  199. return Success(jsonData);
  200. }
  201. #endregion
  202. #region 提交数据
  203. /// <summary>
  204. /// 删除实体数据
  205. /// <param name="keyValue">主键</param>
  206. /// <summary>
  207. /// <returns></returns>
  208. [HttpPost]
  209. [AjaxOnly]
  210. public ActionResult DeleteForm(string keyValue)
  211. {
  212. var entity = finaChargesStandardIBLL.GetFinaChargesStandardEntity(keyValue);
  213. if (entity == null)
  214. {
  215. return Fail("收费标准不存在!");
  216. }
  217. //判断某专业收费标准是否已使用
  218. var isCharge = finaChargesStandardIBLL.IsChargeByMajorNo(entity.MajorNo, entity.AcademicYearNo, entity.Semester, entity.Grade);
  219. if (isCharge)
  220. {
  221. return Fail("该信息正在被系统使用,不能删除!");
  222. }
  223. finaChargesStandardIBLL.DeleteEntity(keyValue);
  224. return Success("删除成功!");
  225. }
  226. /// <summary>
  227. /// 保存实体数据(新增、修改)
  228. /// <param name="keyValue">主键</param>
  229. /// <summary>
  230. /// <returns></returns>
  231. [HttpPost]
  232. [AjaxOnly]
  233. public ActionResult SaveForm(string majorNo, string academicYearNo, string semester, string grade, string strEntity)
  234. {
  235. var aa = strEntity.ToObject<List<FinaChargesStandardEntity>>();
  236. var aaa = aa.Where(x => x.Standard.HasValue && x.Standard.Value > 0).ToList();
  237. finaChargesStandardIBLL.SaveFinaChargesStandardList(majorNo, academicYearNo, semester, grade, aaa);
  238. return Success("保存成功!");
  239. }
  240. /// <summary>
  241. /// 保存实体数据(新增、修改)
  242. /// <param name="keyValue">主键</param>
  243. /// <summary>
  244. /// <returns></returns>
  245. [HttpPost]
  246. [AjaxOnly]
  247. public ActionResult SaveFormOfEdit(string keyValue, string strEntity)
  248. {
  249. var entity = strEntity.ToObject<FinaChargesStandardEntity>();
  250. var model = finaChargesStandardIBLL.GetFinaChargesStandardEntity(keyValue);
  251. model.Standard = entity.Standard;
  252. finaChargesStandardIBLL.SaveEntity(keyValue, model);
  253. return Success("保存成功!");
  254. }
  255. /// <summary>
  256. /// 判断当前专业的收费标准是否已使用
  257. /// <param name="keyValue">主键</param>
  258. /// <summary>
  259. /// <returns></returns>
  260. [AjaxOnly]
  261. public ActionResult IsChargeByMajorNo(string majorNo, string academicYearNo, string semester, string grade)
  262. {
  263. var isCharge = finaChargesStandardIBLL.IsChargeByMajorNo(majorNo, academicYearNo, semester, grade);
  264. return Success(isCharge);
  265. }
  266. #endregion
  267. #region 扩展数据
  268. /// <summary>
  269. /// 学年
  270. /// </summary>
  271. /// <returns></returns>
  272. [HttpGet]
  273. public ActionResult GenerateNearByAcademic()
  274. {
  275. return Success(Learun.Util.WebHelper.GenerateNearByAcademic());
  276. }
  277. /// <summary>
  278. /// 学期
  279. /// </summary>
  280. /// <returns></returns>
  281. [HttpGet]
  282. public ActionResult GenerateNearBySemeter()
  283. {
  284. return Success(Learun.Util.WebHelper.GenerateNearBySemeter());
  285. }
  286. /// <summary>
  287. /// 年级
  288. /// </summary>
  289. /// <returns></returns>
  290. [HttpGet]
  291. public ActionResult GenerateNearByYear2()
  292. {
  293. return Success(Learun.Util.WebHelper.GenerateNearByYear2());
  294. }
  295. /// <summary>
  296. /// 当前时间的学年与学期
  297. /// </summary>
  298. /// <returns></returns>
  299. [HttpGet]
  300. public ActionResult AcademicAndSemeter()
  301. {
  302. var semesterAndYear = Common.GetSemesterAndYear();
  303. return Success(new { academic = semesterAndYear.AcademicYearShort, semester = semesterAndYear.Semester, grade = semesterAndYear.AcademicYearShort.Substring(0, 2) });
  304. }
  305. #endregion
  306. }
  307. }