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.

TimeTableController.cs 24 KiB

4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. using Learun.Util;
  2. using System.Data;
  3. using Learun.Application.TwoDevelopment.PersonnelManagement;
  4. using System.Web.Mvc;
  5. using System.Collections.Generic;
  6. using Learun.Application.TwoDevelopment.EducationalAdministration;
  7. using System;
  8. using System.Linq;
  9. using System.Threading.Tasks;
  10. using Newtonsoft.Json;
  11. namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers
  12. {
  13. /// <summary>
  14. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  15. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  16. /// 创 建:超级管理员
  17. /// 日 期:2019-03-25 11:16
  18. /// 描 述:课程表
  19. /// </summary>
  20. public class TimeTableController : MvcControllerBase
  21. {
  22. private ArrangeLessonTermIBLL arrangeLessonTermIBLL = new ArrangeLessonTermBLL();
  23. private StuAttendanceIBLL stuAttendanceIBLL = new StuAttendanceBLL();
  24. private ArrangeLessonTermOfElectiveIBLL arrangeLessonTermOfElectiveIBLL = new ArrangeLessonTermOfElectiveBLL();
  25. private StuAttendanceLeaveIBLL stuAttendanceLeaveIBLL = new StuAttendanceLeaveBLL();
  26. private StuSelectLessonListOfElectiveIBLL stuSelectLessonList = new StuSelectLessonListOfElectiveBLL();
  27. private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
  28. private LessonInfoIBLL lessonInfoIBLL = new LessonInfoBLL();
  29. private Edu_ChangeTeacherLessonIBLL edu_ChangeTeacherLessonIBLL = new Edu_ChangeTeacherLessonBLL();
  30. #region 视图功能
  31. /// <summary>
  32. /// 主页面
  33. /// <summary>
  34. /// <returns></returns>
  35. [HttpGet]
  36. public ActionResult Index()
  37. {
  38. return View();
  39. }
  40. /// <summary>
  41. /// 考勤
  42. /// <summary>
  43. /// <returns></returns>
  44. [HttpGet]
  45. public ActionResult Attendance()
  46. {
  47. return View();
  48. }
  49. [HttpGet]
  50. public ActionResult AttendanceDetail()
  51. {
  52. return View();
  53. }
  54. [HttpGet]
  55. public ActionResult AttendanceStatistic()
  56. {
  57. return View();
  58. }
  59. [HttpGet]
  60. public ActionResult AttendanceList()
  61. {
  62. return View();
  63. }
  64. [HttpGet]
  65. public ActionResult Leave()
  66. {
  67. return View();
  68. }
  69. /// <summary>
  70. /// 课程表【教务】
  71. /// <summary>
  72. /// <returns></returns>
  73. [HttpGet]
  74. public ActionResult IndexInEducation()
  75. {
  76. return View();
  77. }
  78. /// <summary>
  79. /// 班级课程表【教务】
  80. /// <summary>
  81. /// <returns></returns>
  82. [HttpGet]
  83. public ActionResult ClassIndexInEducation()
  84. {
  85. return View();
  86. }
  87. /// <summary>
  88. /// 课程表【教学调度】
  89. /// <summary>
  90. /// <returns></returns>
  91. [HttpGet]
  92. public ActionResult IndexInEducationSelect()
  93. {
  94. return View();
  95. }
  96. /// <summary>
  97. /// 课程表--修改教师所带的课程【教务】
  98. /// <summary>
  99. /// <returns></returns>
  100. [HttpGet]
  101. public ActionResult IndexInEducationModify()
  102. {
  103. return View();
  104. }
  105. /// <summary>
  106. /// 表单--修改教师所带的课程【教务】
  107. /// <summary>
  108. /// <returns></returns>
  109. [HttpGet]
  110. public ActionResult ModifyLessonForm()
  111. {
  112. return View();
  113. }
  114. /// <summary>
  115. /// 获取表单数据
  116. /// <summary>
  117. /// <returns></returns>
  118. [HttpGet]
  119. [AjaxOnly]
  120. public ActionResult GetFormData()
  121. {
  122. var userInfo = LoginUserInfo.Get();
  123. var stuInfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(userInfo.account);
  124. StuAttendanceLeaveEntity entity = new StuAttendanceLeaveEntity();
  125. entity.ClassNo = stuInfo.ClassNo;
  126. entity.DeptNo = stuInfo.DeptNo;
  127. entity.Grade = stuInfo.Grade;
  128. entity.MajorNo = stuInfo.MajorNo;
  129. entity.StuNo = userInfo.account;
  130. entity.StuName = userInfo.realName;
  131. var jsonData = new
  132. {
  133. StuAttendanceLeave = entity,
  134. };
  135. return Success(jsonData);
  136. }
  137. /// <summary>
  138. /// 获取相关课程考勤的学生信息
  139. /// </summary>
  140. /// <returns></returns>
  141. [HttpGet]
  142. [AjaxOnly]
  143. public ActionResult AttendanceStudents(string pagination, string queryJson, string lessonSortNo)
  144. {
  145. Pagination paginationobj = pagination.ToObject<Pagination>();
  146. var data = new List<StuSelectLessonListEntity>();
  147. if (lessonSortNo == "1")//必修课
  148. {
  149. data = arrangeLessonTermIBLL.AttendanceStudents(paginationobj, queryJson).ToList();
  150. }
  151. else if (lessonSortNo == "2")//选修课
  152. {
  153. data = arrangeLessonTermOfElectiveIBLL.AttendanceStudents(paginationobj, queryJson).ToList();
  154. }
  155. var jsonData = new
  156. {
  157. rows = data,
  158. total = paginationobj.total,
  159. page = paginationobj.page,
  160. records = paginationobj.records
  161. };
  162. return Success(jsonData);
  163. }
  164. /// <summary>
  165. /// 提交课程考勤
  166. /// </summary>
  167. /// <returns></returns>
  168. [HttpPost]
  169. [AjaxOnly]
  170. public async Task<ActionResult> AttendanceApply(string kqType, string lessonTime, string lessonDate, string classRoomNo, string dataJson, decimal? attenScore, string attenCondition)
  171. {
  172. var data = await stuAttendanceIBLL.AttendanceApply(kqType, lessonTime, lessonDate, classRoomNo, dataJson, attenScore, attenCondition);
  173. return Success(data);
  174. }
  175. /// <summary>
  176. /// 教师/学生课程表
  177. /// </summary>
  178. /// <returns></returns>
  179. [HttpGet]
  180. [AjaxOnly]
  181. public ActionResult GetData(string startTime, string endTime)
  182. {
  183. var userInfo = LoginUserInfo.Get();
  184. //var startDate = startTime ?? Common.CalculateFirstDateOfWeek(DateTime.Today).ToString("yyyy-MM-dd");
  185. //var endDate = endTime ?? Common.CalculateLastDateOfWeek(DateTime.Today).ToString("yyyy-MM-dd");
  186. //开始时间
  187. var startdate = string.IsNullOrEmpty(startTime) ? DateTime.Today : Convert.ToDateTime(startTime);
  188. var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd");
  189. var endDate = Common.CalculateLastDateOfWeek(startdate).ToString("yyyy-MM-dd");
  190. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  191. var strAcademicYear = semesterAndYear.AcademicYearLong;
  192. var strSemester = semesterAndYear.Semester;
  193. var timeTableList = new List<TimeTable>();
  194. //课程表
  195. var data = arrangeLessonTermIBLL.GetTimeTable(userInfo.account, userInfo.Description, startDate, endDate);
  196. timeTableList.AddRange(data);
  197. //选修课课程表
  198. var dataOfElective = arrangeLessonTermOfElectiveIBLL.GetTimeTable(userInfo.account, userInfo.Description, startDate, endDate);
  199. timeTableList.AddRange(dataOfElective);
  200. //var timeTables = data.ToList();
  201. var timeTables = timeTableList.ToList();
  202. var noDataResult = new
  203. { schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = "", teacherName = userInfo.realName };
  204. if (!timeTables.Any())
  205. {
  206. return JsonResult(noDataResult);
  207. }
  208. var formatDataa = from d in timeTables
  209. let tt = d.LessonTime.Substring(1)
  210. group d by tt into g
  211. orderby g.Key
  212. select new
  213. {
  214. time = g.Key,
  215. list = from e in timeTables
  216. let ee = e.LessonTime.Substring(1)
  217. where ee == g.Key
  218. select new
  219. {
  220. day = e.LessonTime.ToCharArray()[0],
  221. curriculum = string.IsNullOrEmpty(e.EnName) ? (e.LessonSortNo == "2" ? e.LessonName + "[选修]" : e.LessonName) : (e.LessonSortNo == "2" ? e.EnName + "[选修]" : e.EnName),
  222. lessonName = e.LessonName,
  223. teacher = e.EmpName,
  224. classRoom = e.ClassroomName.Trim(),
  225. academicyear = semesterAndYear.AcademicYearShort,
  226. semester = strSemester,
  227. lessonNo = e?.LessonNo,
  228. teachClassNo = e?.TeachClassNo,
  229. empno = e?.EmpNo,
  230. lessonTime = e.LessonTime,
  231. lessonDate = e.LessonDate.ToString("yyyy-MM-dd"),
  232. classRoomNo = e?.ClassRoomNo.Trim(),
  233. lessonSortNo = e.LessonSortNo,
  234. e.OLPEId,
  235. className = string.IsNullOrEmpty(e.ClassName) ? "" : e.ClassName
  236. }
  237. }
  238. ;
  239. var leaveList = stuAttendanceLeaveIBLL.GetList();
  240. var formatData = timeTables.OrderBy(a => a.LessonTime.Substring(1))
  241. .Select(a => new
  242. {
  243. time = a.LessonTime.Substring(1),
  244. list = timeTables.Where(b => b.LessonTime.Substring(1) == a.LessonTime.Substring(1))
  245. .Select(b => new
  246. {
  247. day = b.LessonTime.ToCharArray()[0],
  248. curriculum = string.IsNullOrEmpty(b.EnName) ? (b.LessonSortNo == "2" ? b.LessonName + "[选修]" : b.LessonName) : (b.LessonSortNo == "2" ? b.EnName + "[选修]" : b.EnName),
  249. lessonName = b.LessonName,
  250. teacher = b.EmpName,
  251. classRoom = b.ClassroomName.Trim(),
  252. academicyear = semesterAndYear.AcademicYearShort,
  253. semester = strSemester,
  254. lessonNo = b?.LessonNo,
  255. teachClassNo = b?.TeachClassNo,
  256. empno = b?.EmpNo,
  257. lessonTime = b.LessonTime,
  258. lessonDate = b.LessonDate.ToString("yyyy-MM-dd"),
  259. classRoomNo = b?.ClassRoomNo.Trim(),
  260. lessonSortNo = b.LessonSortNo,
  261. b.OLPEId,
  262. className = string.IsNullOrEmpty(b.ClassName) ? "" : b.ClassName,
  263. leaveType = leaveList.Any(c => c.LessonNo == b.LessonNo && c.StuNo == userInfo.account && c.LessonDate == b.LessonDate && c.LessonTime == b.LessonTime) ? 1 : 0,
  264. checkType = leaveList.FirstOrDefault(c => c.LessonNo == b.LessonNo && c.StuNo == userInfo.account && c.LessonDate == b.LessonDate && c.LessonTime == b.LessonTime)?.IsCheck,
  265. })
  266. });
  267. //foreach (var item in formatData.list)
  268. //{
  269. // if(leaveList.Any(a=>a.LessonNo==item.))
  270. //}
  271. var result = new
  272. { schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", teacherName = userInfo.realName, weekList = formatData };
  273. return JsonResult(result);
  274. }
  275. /// <summary>
  276. /// 课程表【教务】
  277. /// </summary>
  278. /// <returns></returns>
  279. [HttpGet]
  280. [AjaxOnly]
  281. public ActionResult GetDataInEducation(string startTime, string endTime, string classNo, string empNo, string schoolId)
  282. {
  283. var userInfo = LoginUserInfo.Get();
  284. //开始时间
  285. var startdate = string.IsNullOrEmpty(startTime) ? DateTime.Today : Convert.ToDateTime(startTime);
  286. var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd");
  287. var endDate = Common.CalculateLastDateOfWeek(startdate).ToString("yyyy-MM-dd");
  288. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  289. var strAcademicYear = semesterAndYear.AcademicYearLong;
  290. var strSemester = semesterAndYear.Semester;
  291. var timeTableList = new List<TimeTable>();
  292. //课程表
  293. var data = arrangeLessonTermIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId);
  294. timeTableList.AddRange(data);
  295. //选修课课程表
  296. var dataOfElective = arrangeLessonTermOfElectiveIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId);
  297. timeTableList.AddRange(dataOfElective);
  298. var timeTables = timeTableList.ToList();
  299. var noDataResult = new
  300. { schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = "" };
  301. if (!timeTables.Any())
  302. {
  303. return JsonResult(noDataResult);
  304. }
  305. var formatData = from d in timeTables
  306. let tt = d.LessonTime.Substring(1)
  307. group d by tt into g
  308. orderby g.Key
  309. select new
  310. {
  311. time = g.Key,
  312. list = from e in timeTables
  313. let ee = e.LessonTime.Substring(1)
  314. where ee == g.Key
  315. select new
  316. {
  317. day = e.LessonTime.ToCharArray()[0],
  318. curriculum = e.LessonSortNo == "2" ? e.LessonName + "[选修]" : e.LessonName,
  319. teacher = e?.EmpName,
  320. classRoom = string.IsNullOrEmpty(e.ClassroomName) ? "" : e.ClassroomName.Trim(),
  321. academicyear = semesterAndYear.AcademicYearShort,
  322. semester = strSemester,
  323. lessonNo = e?.LessonNo,
  324. teachClassNo = e?.TeachClassNo,
  325. empno = e?.EmpNo,
  326. lessonTime = e.LessonTime,
  327. lessonDate = e.LessonDate.ToString("yyyy-MM-dd"),
  328. classRoomNo = string.IsNullOrEmpty(e.ClassRoomNo) ? "" : e.ClassRoomNo.Trim(),
  329. lessonSortNo = e.LessonSortNo,
  330. e?.OLPEId,
  331. className = string.IsNullOrEmpty(e.ClassName) ? "" : e.ClassName
  332. }
  333. }
  334. ;
  335. var result = new
  336. { schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = formatData };
  337. return JsonResult(result);
  338. }
  339. /// <summary>
  340. /// 课程表【教务】
  341. /// </summary>
  342. /// <returns></returns>
  343. [HttpGet]
  344. [AjaxOnly]
  345. public ActionResult GetDataInEducationSelect(string startTime, string endTime, string classNo, string empNo, string schoolId)
  346. {
  347. var userInfo = LoginUserInfo.Get();
  348. //开始时间
  349. var startdate = string.IsNullOrEmpty(startTime) ? DateTime.Today : Convert.ToDateTime(startTime);
  350. var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd");
  351. var endDate = Common.CalculateLastDateOfWeek(startdate).ToString("yyyy-MM-dd");
  352. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  353. var strAcademicYear = semesterAndYear.AcademicYearLong;
  354. var strSemester = semesterAndYear.Semester;
  355. var timeTableList = new List<TimeTable>();
  356. //课程表
  357. var data = arrangeLessonTermIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId);
  358. timeTableList.AddRange(data);
  359. //选修课课程表
  360. //var dataOfElective = arrangeLessonTermOfElectiveIBLL.GetTimeTableInEducation(startDate, endDate, classNo, empNo, schoolId);
  361. //timeTableList.AddRange(dataOfElective);
  362. var timeTables = timeTableList.ToList();
  363. var noDataResult = new
  364. { schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = "" };
  365. if (!timeTables.Any())
  366. {
  367. return JsonResult(noDataResult);
  368. }
  369. var formatData = from d in timeTables
  370. let tt = d.LessonTime.Substring(1)
  371. group d by tt into g
  372. orderby g.Key
  373. select new
  374. {
  375. time = g.Key,
  376. list = from e in timeTables
  377. let ee = e.LessonTime.Substring(1)
  378. where ee == g.Key
  379. select new
  380. {
  381. day = e.LessonTime.ToCharArray()[0],
  382. lessonTime = e.LessonTime,
  383. lessonDate = e.LessonDate.ToString("yyyy-MM-dd"),
  384. schooldId = e?.F_SchoolId,
  385. academicyear = semesterAndYear.AcademicYearShort,
  386. semester = strSemester,
  387. deptNo = e?.DeptNo,
  388. majorNo = e?.MajorNo,
  389. lessonNo = e?.LessonNo,
  390. curriculum = e.LessonSortNo == "2" ? e.LessonName + "[选修]" : e.LessonName,
  391. teachClassNo = e?.TeachClassNo,
  392. className = string.IsNullOrEmpty(e.ClassName) ? "" : e.ClassName,
  393. empno = e?.EmpNo,
  394. teacher = e?.EmpName,
  395. classRoomNo = string.IsNullOrEmpty(e.ClassRoomNo) ? "" : e.ClassRoomNo.Trim(),
  396. classRoom = string.IsNullOrEmpty(e.ClassroomName) ? "" : e.ClassroomName.Trim(),
  397. lessonSortNo = e.LessonSortNo
  398. }
  399. }
  400. ;
  401. var result = new
  402. { schoolName = "课程表", semester = $"{strAcademicYear}学年度 第{strSemester}学期", weekList = formatData };
  403. return JsonResult(result);
  404. }
  405. /// <summary>
  406. /// 课程表【教务】--班级下拉框信息
  407. /// </summary>
  408. /// <returns></returns>
  409. [HttpGet]
  410. [AjaxOnly]
  411. public ActionResult GetClassData(string schoolId = "")
  412. {
  413. var data = arrangeLessonTermIBLL.GetClassData(schoolId);
  414. return Success(data);
  415. }
  416. /// <summary>
  417. /// 课程表【教务】--教师下拉框信息
  418. /// </summary>
  419. /// <returns></returns>
  420. [HttpGet]
  421. [AjaxOnly]
  422. public ActionResult GetTeacherData(string schoolId = "")
  423. {
  424. var data = arrangeLessonTermIBLL.GetTeacherData(schoolId);
  425. return Success(data);
  426. }
  427. /// <summary>
  428. /// 表单--修改教师所带的课程【教务】--课程下拉框信息
  429. /// </summary>
  430. /// <returns></returns>
  431. [HttpGet]
  432. [AjaxOnly]
  433. public ActionResult GetLessonData()
  434. {
  435. var lessonList = lessonInfoIBLL.GetAllLesson().OrderBy(x => x.LessonNo);
  436. var data = lessonList.Select(x => new { value = x.LessonId, text = x.LessonName + "(" + x.LessonNo + ")" });
  437. return Success(data);
  438. }
  439. #endregion
  440. #region 保存数据
  441. [HttpPost]
  442. [ValidateAntiForgeryToken]
  443. [AjaxOnly]
  444. public ActionResult SaveForm(string keyValue, string strEntity)
  445. {
  446. StuAttendanceLeaveEntity entity = strEntity.ToObject<StuAttendanceLeaveEntity>();
  447. entity.TeachClassNo = entity.ClassNo;
  448. stuAttendanceLeaveIBLL.SaveEntity(keyValue, entity);
  449. return Success("保存成功!");
  450. }
  451. /// <summary>
  452. /// 修改教师课程--保存
  453. /// </summary>
  454. /// <param name="keyValue"></param>
  455. /// <param name="strEntity"></param>
  456. /// <returns></returns>
  457. [HttpPost]
  458. [ValidateAntiForgeryToken]
  459. [AjaxOnly]
  460. public ActionResult SaveChangeTeacherLesson(string strEntity)
  461. {
  462. Edu_ChangeTeacherLessonEntity entity = strEntity.ToObject<Edu_ChangeTeacherLessonEntity>();
  463. entity.CToTeacherId = entity.CFromTeacherId;
  464. entity.CToTeacherName = entity.CFromTeacherName;
  465. //获取目标课程
  466. var lessonInfoEntity = lessonInfoIBLL.GetLessonInfoEntity(entity.CToLessonId);
  467. if (lessonInfoEntity == null)
  468. {
  469. return Fail("目标课程不存在!");
  470. }
  471. entity.CToLessonId = lessonInfoEntity.LessonNo;
  472. entity.CToLessonName = lessonInfoEntity.LessonName;
  473. entity.CreateTime = DateTime.Now;
  474. if (entity.CFromLessonId == entity.CToLessonId)
  475. {
  476. return Fail("目标课程与原目标一致!");
  477. }
  478. //修改排课、成绩录入相关表
  479. edu_ChangeTeacherLessonIBLL.ModifyTableAboutTeacherLesson(entity);
  480. //新增Edu_ChangeTeacherLesson记录
  481. edu_ChangeTeacherLessonIBLL.SaveEntity("", entity);
  482. return Success("保存成功!");
  483. }
  484. /// <summary>
  485. /// 考勤统计
  486. /// <summary>
  487. /// <param name="pagination">分页参数</param>
  488. /// <param name="queryJson">查询参数</param>
  489. /// <returns></returns>
  490. [HttpGet]
  491. [AjaxOnly]
  492. public ActionResult GetAttendanceStatisticPageList(string pagination, string queryJson)
  493. {
  494. Pagination paginationobj = pagination.ToObject<Pagination>();
  495. var data = stuAttendanceIBLL.GetAttendanceStatisticPageList(paginationobj, queryJson);
  496. var jsonData = new
  497. {
  498. rows = data,
  499. total = paginationobj.total,
  500. page = paginationobj.page,
  501. records = paginationobj.records
  502. };
  503. return Success(jsonData);
  504. }
  505. /// <summary>
  506. /// 全校学生课程考勤
  507. /// <summary>
  508. /// <param name="pagination">分页参数</param>
  509. /// <param name="queryJson">查询参数</param>
  510. /// <returns></returns>
  511. [HttpGet]
  512. [AjaxOnly]
  513. public ActionResult GetAttendancePageList(string pagination, string queryJson)
  514. {
  515. Pagination paginationobj = pagination.ToObject<Pagination>();
  516. var data = stuAttendanceIBLL.GetAttendancePageList(paginationobj, queryJson);
  517. var jsonData = new
  518. {
  519. rows = data,
  520. total = paginationobj.total,
  521. page = paginationobj.page,
  522. records = paginationobj.records
  523. };
  524. return Success(jsonData);
  525. }
  526. #endregion
  527. }
  528. }