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.
 
 
 
 
 
 

754 lines
30 KiB

  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Linq;
  9. using System.Net.Http;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  13. {
  14. /// <summary>
  15. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  16. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  17. /// 创 建:超级管理员
  18. /// 日 期:2019-05-24 10:27
  19. /// 描 述:排考数据同步
  20. /// </summary>
  21. public class ArrangeExamTermService : RepositoryFactory
  22. {
  23. private static readonly HttpClient Client;
  24. static ArrangeExamTermService()
  25. {
  26. Client = new HttpClient();
  27. }
  28. #region 获取数据
  29. /// <summary>
  30. /// 获取页面显示列表数据
  31. /// <summary>
  32. /// <param name="queryJson">查询参数</param>
  33. /// <returns></returns>
  34. public IEnumerable<ArrangeExamTermEntity> GetPageList(Pagination pagination, string queryJson)
  35. {
  36. try
  37. {
  38. var strSql = new StringBuilder();
  39. strSql.Append("SELECT ");
  40. strSql.Append(@"
  41. t.AETId,
  42. t.AcademicYearNo,
  43. t.Semester,
  44. t.ExamDate,
  45. t.ExamTime,
  46. t.ExamSection,
  47. t.ClassNo,
  48. t.ClassName,
  49. t.LessonNo,
  50. t.LessonName,
  51. t.LessonSortNo,
  52. t.EmpNo,
  53. t.EmpName,
  54. t.ClassRoomNo,
  55. t.ClassRoomName
  56. ");
  57. strSql.Append(" FROM ArrangeExamTerm t ");
  58. strSql.Append(" WHERE 1=1 ");
  59. var queryParam = queryJson.ToJObject();
  60. // 虚拟参数
  61. var dp = new DynamicParameters(new { });
  62. return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(strSql.ToString(), dp, pagination);
  63. }
  64. catch (Exception ex)
  65. {
  66. if (ex is ExceptionEx)
  67. {
  68. throw;
  69. }
  70. else
  71. {
  72. throw ExceptionEx.ThrowServiceException(ex);
  73. }
  74. }
  75. }
  76. /// <summary>
  77. /// 获取ArrangeExamTerm表实体数据
  78. /// <param name="keyValue">主键</param>
  79. /// <summary>
  80. /// <returns></returns>
  81. public ArrangeExamTermEntity GetArrangeExamTermEntity(string keyValue)
  82. {
  83. try
  84. {
  85. return this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamTermEntity>(keyValue);
  86. }
  87. catch (Exception ex)
  88. {
  89. if (ex is ExceptionEx)
  90. {
  91. throw;
  92. }
  93. else
  94. {
  95. throw ExceptionEx.ThrowServiceException(ex);
  96. }
  97. }
  98. }
  99. /// <summary>
  100. /// 获取ArrangeExamTerm表实体数据
  101. /// <param name="academicYearNo">学年</param>
  102. /// <param name="semester">学期</param>
  103. /// <summary>
  104. /// <returns></returns>
  105. public ArrangeExamTermEntity GetArrangeExamTermEntityByYear(string academicYearNo, string semester)
  106. {
  107. try
  108. {
  109. return this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamTermEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester);
  110. }
  111. catch (Exception ex)
  112. {
  113. if (ex is ExceptionEx)
  114. {
  115. throw;
  116. }
  117. else
  118. {
  119. throw ExceptionEx.ThrowServiceException(ex);
  120. }
  121. }
  122. }
  123. #endregion
  124. #region 提交数据
  125. /// <summary>
  126. /// 删除实体数据
  127. /// <param name="keyValue">主键</param>
  128. /// <summary>
  129. /// <returns></returns>
  130. public void DeleteEntity(string keyValue)
  131. {
  132. try
  133. {
  134. this.BaseRepository("CollegeMIS").Delete<ArrangeExamTermEntity>(t => t.AETId == keyValue);
  135. }
  136. catch (Exception ex)
  137. {
  138. if (ex is ExceptionEx)
  139. {
  140. throw;
  141. }
  142. else
  143. {
  144. throw ExceptionEx.ThrowServiceException(ex);
  145. }
  146. }
  147. }
  148. /// <summary>
  149. /// 保存实体数据(新增、修改)
  150. /// <param name="keyValue">主键</param>
  151. /// <summary>
  152. /// <returns></returns>
  153. public void SaveEntity(string keyValue, ArrangeExamTermEntity entity)
  154. {
  155. try
  156. {
  157. if (!string.IsNullOrEmpty(keyValue))
  158. {
  159. entity.Modify(keyValue);
  160. this.BaseRepository("CollegeMIS").Update(entity);
  161. }
  162. else
  163. {
  164. entity.Create();
  165. this.BaseRepository("CollegeMIS").Insert(entity);
  166. }
  167. }
  168. catch (Exception ex)
  169. {
  170. if (ex is ExceptionEx)
  171. {
  172. throw;
  173. }
  174. else
  175. {
  176. throw ExceptionEx.ThrowServiceException(ex);
  177. }
  178. }
  179. }
  180. #endregion
  181. #region 扩展数据
  182. /// <summary>
  183. /// 排考数据同步
  184. /// </summary>
  185. /// <returns></returns>
  186. public async Task<bool> AsyncArrangeExamData()
  187. {
  188. bool result = false;
  189. try
  190. {
  191. //清空本学年本学期排考数据
  192. var academicYearNo = Common.GetSemesterAndYear().AcademicYearShort;
  193. var semester = Common.GetSemesterAndYear().Semester;
  194. this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTerm where AcademicYearNo='{academicYearNo}' and Semester='{semester}' ");
  195. //排考结构处理
  196. var insertListOfStructure = new List<ArrangeExamStructureEntity>();
  197. var apiDataOfStructure = await Client.GetStringAsync(Config.GetValue("ArrangeExamStructureAPI"));
  198. if (!string.IsNullOrEmpty(apiDataOfStructure))
  199. {
  200. var data = JsonConvert.DeserializeObject<ArrangeExamRootOfStructure>(apiDataOfStructure);
  201. if (!data.success)
  202. {
  203. return result;
  204. }
  205. var dataList = data.entity.list;
  206. if (dataList.Any())
  207. {
  208. foreach (var item in dataList)
  209. {
  210. var model = this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamStructureEntity>(x => x.StructureId == item.id);
  211. if (model == null)
  212. {
  213. var insertDataOfStructure = new ArrangeExamStructureEntity()
  214. {
  215. Id = Guid.NewGuid().ToString(),
  216. StructureId = item.id,
  217. StartTime = Convert.ToDateTime(item.starttime),
  218. EndTime = Convert.ToDateTime(item.endtime),
  219. MorningNum = Convert.ToInt32(item.morning),
  220. AfternoonNum = Convert.ToInt32(item.afternoon),
  221. NightNum = Convert.ToInt32(item.night),
  222. Time = item.time
  223. };
  224. if (insertListOfStructure.Count(x => x.StructureId == insertDataOfStructure.StructureId) == 0)
  225. {
  226. insertListOfStructure.Add(insertDataOfStructure);
  227. }
  228. }
  229. else
  230. {
  231. model.StartTime = Convert.ToDateTime(item.starttime);
  232. model.EndTime = Convert.ToDateTime(item.endtime);
  233. model.MorningNum = Convert.ToInt32(item.morning);
  234. model.AfternoonNum = Convert.ToInt32(item.afternoon);
  235. model.NightNum = Convert.ToInt32(item.night);
  236. model.Time = item.time;
  237. this.BaseRepository("CollegeMIS").Update<ArrangeExamStructureEntity>(model);
  238. }
  239. }
  240. }
  241. }
  242. var insertResultOfStructure = await BaseRepository("CollegeMIS").InsertAsync(insertListOfStructure);
  243. //排考数据处理
  244. var insertList = new List<ArrangeExamTermEntity>();
  245. var arrangeExamTermData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeExamTermEntity>()).ToList();
  246. var classRoomInfoData = this.BaseRepository("CollegeMIS").FindList<ClassroomInfoEntity>().ToList();
  247. var lessonData = this.BaseRepository("CollegeMIS").FindList<LessonInfoEntity>().ToList();
  248. //必修数据处理
  249. var apiData = await Client.GetStringAsync(Config.GetValue("ArrangeExamAPI"));
  250. if (!string.IsNullOrEmpty(apiData))
  251. {
  252. var data = JsonConvert.DeserializeObject<ArrangeExamRoot>(apiData);
  253. if (!data.success)
  254. {
  255. return result;
  256. }
  257. var dataList = data.entity.list;
  258. if (dataList.Any())
  259. {
  260. var insertDataList = new List<ArrangeExamTermEntity>();
  261. foreach (var item in dataList)
  262. {
  263. var insertData = new ArrangeExamTermEntity
  264. {
  265. AETId = Guid.NewGuid().ToString(),
  266. PaiKaoId = item.id,
  267. AcademicYearNo = Common.GetSemesterAndYear(item.date).AcademicYearShort,
  268. Semester = Common.GetSemesterAndYear(item.date).Semester,
  269. ExamDate = Convert.ToDateTime(item.date),
  270. ExamTime = item.time,
  271. ExamSection = item.section,
  272. ClassNo = item.classId,
  273. ClassName = item.className,
  274. LessonNo = item.currId,
  275. LessonName = item.currName,
  276. LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.currId)?.LessonSortNo,
  277. EmpNo = item.teacherId,
  278. EmpName = item.teacherName,
  279. ClassRoomNo = classRoomInfoData.FirstOrDefault(x => x.ClassroomId.Trim() == item.classroomId.Trim())?.ClassroomNo.Trim(),
  280. ClassRoomName = item.classroomName,
  281. StructureId = item.kaoshis
  282. };
  283. if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.ClassNo == insertData.ClassNo && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0
  284. && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.ClassNo == insertData.ClassNo && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0)
  285. {
  286. insertDataList.Add(insertData);
  287. }
  288. }
  289. insertList.AddRange(insertDataList);
  290. }
  291. }
  292. //选修数据处理
  293. var apiDataOfElective = await Client.GetStringAsync(Config.GetValue("ArrangeExamOfElectiveAPI"));
  294. if (!string.IsNullOrEmpty(apiData))
  295. {
  296. var data = JsonConvert.DeserializeObject<ArrangeExamRoot>(apiDataOfElective);
  297. if (!data.success)
  298. {
  299. return result;
  300. }
  301. var dataList = data.entity.list;
  302. if (dataList.Any())
  303. {
  304. var insertDataList = new List<ArrangeExamTermEntity>();
  305. foreach (var item in dataList)
  306. {
  307. var insertData = new ArrangeExamTermEntity
  308. {
  309. AETId = Guid.NewGuid().ToString(),
  310. PaiKaoId = item.id,
  311. AcademicYearNo = Common.GetSemesterAndYear(item.date).AcademicYearShort,
  312. Semester = Common.GetSemesterAndYear(item.date).Semester,
  313. ExamDate = Convert.ToDateTime(item.date),
  314. ExamTime = item.time,
  315. ExamSection = item.section,
  316. ClassNo = "",
  317. ClassName = "",
  318. LessonNo = item.currId,
  319. LessonName = item.currName,
  320. LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.currId)?.LessonSortNo,
  321. EmpNo = item.teacherId,
  322. EmpName = item.teacherName,
  323. ClassRoomNo = classRoomInfoData.FirstOrDefault(x => x.ClassroomId.Trim() == item.classroomId.Trim())?.ClassroomNo.Trim(),
  324. ClassRoomName = item.classroomName,
  325. StructureId = item.kaoshis
  326. };
  327. if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0
  328. && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0)
  329. {
  330. insertDataList.Add(insertData);
  331. }
  332. }
  333. insertList.AddRange(insertDataList);
  334. }
  335. }
  336. var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertList);
  337. if (insertResultOfStructure > 0 && insertResult > 0)
  338. {
  339. result = true;
  340. }
  341. }
  342. catch (Exception ex)
  343. {
  344. if (ex is ExceptionEx)
  345. {
  346. throw;
  347. }
  348. else
  349. {
  350. throw ExceptionEx.ThrowServiceException(ex);
  351. }
  352. }
  353. return result;
  354. }
  355. internal bool GetAny()
  356. {
  357. try
  358. {
  359. return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>().Any();
  360. }
  361. catch (Exception ex)
  362. {
  363. if (ex is ExceptionEx)
  364. {
  365. throw;
  366. }
  367. else
  368. {
  369. throw ExceptionEx.ThrowServiceException(ex);
  370. }
  371. }
  372. }
  373. /// <summary>
  374. /// 考试表
  375. /// </summary>
  376. /// <param name="startDate">查询开始时间</param>
  377. /// <param name="endDate">查询截止时间</param>
  378. /// <param name="classNo">班级号</param>
  379. /// <param name="empNo">监考教师号</param>
  380. /// <returns></returns>
  381. public IEnumerable<TimeTable> GetExamTable(string startDate, string endDate, string classNo, string empNo)
  382. {
  383. try
  384. {
  385. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  386. var strAcademicYear = semesterAndYear.AcademicYearShort;
  387. var strSemester = semesterAndYear.Semester;
  388. var st = Convert.ToDateTime(startDate);
  389. var et = Convert.ToDateTime(endDate);
  390. var arrangeExamTermList = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(x => x.AcademicYearNo == strAcademicYear && x.Semester == strSemester && x.ExamDate >= st && x.ExamDate <= et);
  391. if (!string.IsNullOrEmpty(classNo))
  392. {
  393. arrangeExamTermList = arrangeExamTermList.Where(x => x.ClassNo == classNo);
  394. }
  395. if (!string.IsNullOrEmpty(empNo))
  396. {
  397. arrangeExamTermList = arrangeExamTermList.Where(x => x.EmpNo.Contains(empNo));
  398. }
  399. foreach (var arrangeExamTermItem in arrangeExamTermList)
  400. {
  401. var week = Convert.ToDateTime(arrangeExamTermItem.ExamDate).DayOfWeek.GetHashCode();
  402. if (week == 0)
  403. {
  404. week = 7;
  405. }
  406. arrangeExamTermItem.week = week;
  407. }
  408. var data = arrangeExamTermList.Select(x => new TimeTable()
  409. {
  410. AcademicYear = x.AcademicYearNo,
  411. Semester = x.Semester,
  412. LessonDate = x.ExamDate.HasValue ? x.ExamDate.Value : DateTime.MinValue,
  413. LessonNo = x.LessonNo,
  414. LessonName = x.LessonSortNo == "1" ? x.LessonName : (x.LessonSortNo == "2" ? x.LessonName + "[选修]" : x.LessonName + "[未知]"),
  415. LessonTime = string.Format("{0}{1}", x.week, x.ExamSection),
  416. EmpNo = x.EmpNo,
  417. EmpName = x.EmpName,
  418. TeachClassNo = x.ClassNo,
  419. ClassRoomNo = x.ClassRoomNo,
  420. ClassroomName = x.ClassRoomName,
  421. LessonSortNo = x.LessonSortNo,
  422. ClassName = x.ClassName,
  423. StructureId = x.StructureId
  424. });
  425. return data;
  426. }
  427. catch (Exception ex)
  428. {
  429. if (ex is ExceptionEx)
  430. {
  431. throw;
  432. }
  433. else
  434. {
  435. throw ExceptionEx.ThrowServiceException(ex);
  436. }
  437. }
  438. }
  439. /// <summary>
  440. /// 考试表-选修课【学子在线】
  441. /// </summary>
  442. /// <param name="startDate">查询开始时间</param>
  443. /// <param name="endDate">查询截止时间</param>
  444. /// <param name="stuNo">学号</param>
  445. /// <returns></returns>
  446. public IEnumerable<TimeTable> GetExamTableOfElectiveInStudent(string startDate, string endDate, string stuNo)
  447. {
  448. try
  449. {
  450. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  451. var strAcademicYear = semesterAndYear.AcademicYearShort;
  452. var strSemester = semesterAndYear.Semester;
  453. var st = Convert.ToDateTime(startDate);
  454. var et = Convert.ToDateTime(endDate);
  455. var strSql = new StringBuilder();
  456. strSql.Append("select t.* from ");
  457. strSql.Append(" [dbo].[ArrangeExamTerm] t left join [dbo].[StuSelectLessonListOfElective] s on t.AcademicYearNo=s.AcademicYearNo and t.Semester=s.Semester and t.LessonSortNo=s.LessonSortNo and t.LessonNo=s.LessonNo and s.Status=2 ");
  458. strSql.Append(" and s.StuNo='" + stuNo + "' ");
  459. strSql.Append(" where t.AcademicYearNo='" + strAcademicYear + "' and t.Semester='" + strSemester + "'and t.LessonSortNo='2' and t.ExamDate >= '" + st + "' and t.ExamDate <= '" + et + "' ");
  460. var arrangeExamTermList = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(strSql.ToString());
  461. foreach (var arrangeExamTermItem in arrangeExamTermList)
  462. {
  463. var week = Convert.ToDateTime(arrangeExamTermItem.ExamDate).DayOfWeek.GetHashCode();
  464. if (week == 0)
  465. {
  466. week = 7;
  467. }
  468. arrangeExamTermItem.week = week;
  469. }
  470. var data = arrangeExamTermList.Select(x => new TimeTable()
  471. {
  472. AcademicYear = x.AcademicYearNo,
  473. Semester = x.Semester,
  474. LessonDate = x.ExamDate.HasValue ? x.ExamDate.Value : DateTime.MinValue,
  475. LessonNo = x.LessonNo,
  476. LessonName = x.LessonSortNo == "1" ? x.LessonName : (x.LessonSortNo == "2" ? x.LessonName + "[选修]" : x.LessonName + "[未知]"),
  477. LessonTime = string.Format("{0}{1}", x.week, x.ExamSection),
  478. EmpNo = x.EmpNo,
  479. EmpName = x.EmpName,
  480. TeachClassNo = x.ClassNo,
  481. ClassRoomNo = x.ClassRoomNo,
  482. ClassroomName = x.ClassRoomName,
  483. LessonSortNo = x.LessonSortNo,
  484. ClassName = x.ClassName,
  485. StructureId = x.StructureId
  486. });
  487. return data;
  488. }
  489. catch (Exception ex)
  490. {
  491. if (ex is ExceptionEx)
  492. {
  493. throw;
  494. }
  495. else
  496. {
  497. throw ExceptionEx.ThrowServiceException(ex);
  498. }
  499. }
  500. }
  501. /// <summary>
  502. /// 考试表--班级下拉框信息
  503. /// </summary>
  504. /// <param name="startDate"></param>
  505. /// <returns></returns>
  506. public IEnumerable<SelectModel> GetClassData()
  507. {
  508. try
  509. {
  510. //前三年-后三年
  511. var preYear = DateTime.Now.AddYears(-3).Year;
  512. var nextYear = DateTime.Now.AddYears(3).Year;
  513. var yearList = new List<string>();
  514. for (int i = preYear; i <= nextYear; i++)
  515. {
  516. yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2)));
  517. }
  518. var classData = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(x => yearList.Contains(x.AcademicYearNo));
  519. var aa = classData.Where(x => !string.IsNullOrEmpty(x.ClassNo)).Select(x => new { x.ClassNo, x.ClassName }).Distinct().ToList();
  520. var aaa = aa.Select(x => new SelectModel()
  521. {
  522. text = x.ClassName,
  523. value = x.ClassNo
  524. }).OrderBy(x => x.value);
  525. return aaa;
  526. }
  527. catch (Exception ex)
  528. {
  529. if (ex is ExceptionEx)
  530. {
  531. throw;
  532. }
  533. else
  534. {
  535. throw ExceptionEx.ThrowServiceException(ex);
  536. }
  537. }
  538. }
  539. /// <summary>
  540. /// 考试表--教师下拉框信息
  541. /// </summary>
  542. /// <param name="startDate"></param>
  543. /// <returns></returns>
  544. public IEnumerable<SelectModel> GetTeacherData()
  545. {
  546. try
  547. {
  548. //前三年-后三年
  549. var preYear = DateTime.Now.AddYears(-3).Year;
  550. var nextYear = DateTime.Now.AddYears(3).Year;
  551. var yearList = new List<string>();
  552. for (int i = preYear; i <= nextYear; i++)
  553. {
  554. yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2)));
  555. }
  556. var teacherData = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(x => yearList.Contains(x.AcademicYearNo));
  557. var aa = new List<SelectModel>();
  558. var aaa = teacherData.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList();
  559. foreach (var item in aaa)
  560. {
  561. if (item.EmpNo.IndexOf(',') == -1)//单个教师
  562. {
  563. var model = new SelectModel()
  564. {
  565. text = item.EmpName,
  566. value = item.EmpNo
  567. };
  568. aa.Add(model);
  569. }
  570. else//多个教师
  571. {
  572. var arrEmpNo = item.EmpNo.Split(',');
  573. var arrEmpName = item.EmpName.Split(',');
  574. for (int i = 0; i < arrEmpNo.Length; i++)
  575. {
  576. var model = new SelectModel()
  577. {
  578. text = arrEmpName[i],
  579. value = arrEmpNo[i]
  580. };
  581. aa.Add(model);
  582. }
  583. }
  584. }
  585. var aaaa = aa.Select(x => new { x.text, x.value }).Distinct().ToList();
  586. var aaaaa = aaaa.Select(x => new SelectModel()
  587. {
  588. text = x.text,
  589. value = x.value
  590. }).OrderBy(x => x.value);
  591. return aaaaa;
  592. }
  593. catch (Exception ex)
  594. {
  595. if (ex is ExceptionEx)
  596. {
  597. throw;
  598. }
  599. else
  600. {
  601. throw ExceptionEx.ThrowServiceException(ex);
  602. }
  603. }
  604. }
  605. #endregion
  606. /// <summary>
  607. /// 下拉框模型
  608. /// </summary>
  609. public class SelectModel
  610. {
  611. public string value { get; set; }
  612. public string text { get; set; }
  613. }
  614. #region 排考结构接口数据模型
  615. public class ArrangeExamListOfStructure
  616. {
  617. public string id { get; set; }
  618. public string starttime { get; set; }
  619. public string endtime { get; set; }
  620. public string morning { get; set; }
  621. public string afternoon { get; set; }
  622. public string night { get; set; }
  623. public string time { get; set; }
  624. public string kaoshis { get; set; }
  625. }
  626. public class ArrangeExamEntityOfStructure
  627. {
  628. /// <summary>
  629. /// true
  630. /// </summary>
  631. public string opflag { get; set; }
  632. /// <summary>
  633. /// 1000
  634. /// </summary>
  635. public string opCode { get; set; }
  636. /// <summary>
  637. /// OK!
  638. /// </summary>
  639. public string message { get; set; }
  640. /// <summary>
  641. /// List
  642. /// </summary>
  643. public List<ArrangeExamListOfStructure> list { get; set; }
  644. }
  645. public class ArrangeExamRootOfStructure
  646. {
  647. /// <summary>
  648. /// 操作成功
  649. /// </summary>
  650. public string message { get; set; }
  651. /// <summary>
  652. /// Success
  653. /// </summary>
  654. public bool success { get; set; }
  655. /// <summary>
  656. /// Entity
  657. /// </summary>
  658. public ArrangeExamEntityOfStructure entity { get; set; }
  659. }
  660. #endregion
  661. #region 排考接口数据模型
  662. public class ArrangeExamList
  663. {
  664. public string id { get; set; }
  665. public string classId { get; set; }
  666. public string className { get; set; }
  667. public string currId { get; set; }
  668. public string currName { get; set; }
  669. public string teacherId { get; set; }
  670. public string teacherName { get; set; }
  671. public string section { get; set; }
  672. public string time { get; set; }
  673. public string date { get; set; }
  674. public string classroomId { get; set; }
  675. public string classroomName { get; set; }
  676. public string kaoshis { get; set; }
  677. }
  678. public class ArrangeExamEntity
  679. {
  680. /// <summary>
  681. /// true
  682. /// </summary>
  683. public string opflag { get; set; }
  684. /// <summary>
  685. /// 1000
  686. /// </summary>
  687. public string opCode { get; set; }
  688. /// <summary>
  689. /// OK!
  690. /// </summary>
  691. public string message { get; set; }
  692. /// <summary>
  693. /// List
  694. /// </summary>
  695. public List<ArrangeExamList> list { get; set; }
  696. }
  697. public class ArrangeExamRoot
  698. {
  699. /// <summary>
  700. /// 操作成功
  701. /// </summary>
  702. public string message { get; set; }
  703. /// <summary>
  704. /// Success
  705. /// </summary>
  706. public bool success { get; set; }
  707. /// <summary>
  708. /// Entity
  709. /// </summary>
  710. public ArrangeExamEntity entity { get; set; }
  711. }
  712. #endregion
  713. }
  714. }