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.
 
 
 
 
 
 

417 lines
16 KiB

  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Text;
  9. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  10. {
  11. /// <summary>
  12. /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
  13. /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
  14. /// 创 建:超级管理员
  15. /// 日 期:2021-12-08 12:19
  16. /// 描 述:排考2021新
  17. /// </summary>
  18. public class ArrangeExamTermNewService : RepositoryFactory
  19. {
  20. #region 构造函数和属性
  21. private string fieldSql;
  22. /// <summary>
  23. /// 构造方法
  24. /// </summary>
  25. public ArrangeExamTermNewService()
  26. {
  27. fieldSql = @"*";
  28. }
  29. #endregion
  30. #region 获取数据
  31. /// <summary>
  32. /// 获取列表数据
  33. /// </summary>
  34. /// <param name="queryJson">条件参数</param>
  35. /// <returns></returns>
  36. public IEnumerable<ArrangeExamTermNewEntity> GetList(string queryJson)
  37. {
  38. try
  39. {
  40. //参考写法
  41. //var queryParam = queryJson.ToJObject();
  42. // 虚拟参数
  43. //var dp = new DynamicParameters(new { });
  44. //dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  45. var strSql = new StringBuilder();
  46. strSql.Append("SELECT ");
  47. strSql.Append(fieldSql);
  48. strSql.Append(" FROM ArrangeExamTermNew t ");
  49. return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermNewEntity>(strSql.ToString());
  50. }
  51. catch (Exception ex)
  52. {
  53. if (ex is ExceptionEx)
  54. {
  55. throw;
  56. }
  57. else
  58. {
  59. throw ExceptionEx.ThrowServiceException(ex);
  60. }
  61. }
  62. }
  63. /// <summary>
  64. /// 获取列表分页数据
  65. /// </summary>
  66. /// <param name="pagination">分页参数</param>
  67. /// <param name="queryJson">条件参数</param>
  68. /// <returns></returns>
  69. public IEnumerable<ArrangeExamTermNewEntity> GetPageList(Pagination pagination, string queryJson)
  70. {
  71. try
  72. {
  73. var strSql = new StringBuilder();
  74. strSql.Append("SELECT ");
  75. strSql.Append(fieldSql);
  76. strSql.Append(" FROM ArrangeExamTermNew t where 1=1 ");
  77. var queryParam = queryJson.ToJObject();
  78. var dp = new DynamicParameters(new { });
  79. if (!queryParam["AcademicYearNo"].IsEmpty())
  80. {
  81. strSql.Append(" and t.AcademicYearNo=@AcademicYearNo ");
  82. dp.Add("AcademicYearNo", queryParam["AcademicYearNo"].ToString(), DbType.String);
  83. }
  84. if (!queryParam["Semester"].IsEmpty())
  85. {
  86. strSql.Append(" and t.Semester=@Semester ");
  87. dp.Add("Semester", queryParam["Semester"].ToString(), DbType.String);
  88. }
  89. if (!queryParam["EmpNo"].IsEmpty())
  90. {
  91. strSql.Append(" and t.EmpNo=@EmpNo ");
  92. dp.Add("EmpNo", queryParam["EmpNo"].ToString(), DbType.String);
  93. }
  94. if (!queryParam["LessonNo"].IsEmpty())
  95. {
  96. strSql.Append(" and t.LessonNo=@LessonNo ");
  97. dp.Add("LessonNo", queryParam["LessonNo"].ToString(), DbType.String);
  98. }
  99. if (!queryParam["ClassNo"].IsEmpty())
  100. {
  101. strSql.Append(" and t.ClassNo=@ClassNo ");
  102. dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
  103. }
  104. if (!queryParam["ClassRoomNo"].IsEmpty())
  105. {
  106. strSql.Append(" and t.ClassRoomNo=@ClassRoomNo ");
  107. dp.Add("ClassRoomNo", queryParam["ClassRoomNo"].ToString(), DbType.String);
  108. }
  109. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  110. {
  111. dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  112. dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
  113. strSql.Append(" AND ( ExamDate >= @startTime AND ExamDate <= @endTime ) ");
  114. }
  115. return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermNewEntity>(strSql.ToString(), dp, pagination);
  116. }
  117. catch (Exception ex)
  118. {
  119. if (ex is ExceptionEx)
  120. {
  121. throw;
  122. }
  123. else
  124. {
  125. throw ExceptionEx.ThrowServiceException(ex);
  126. }
  127. }
  128. }
  129. /// <summary>
  130. /// 获取排考详情
  131. /// </summary>
  132. /// <param name="pagination"></param>
  133. /// <param name="queryJson"></param>
  134. /// <returns></returns>
  135. public IEnumerable<ArrangeExamTermItemNewEntity> GetItemPageList(Pagination pagination, string queryJson)
  136. {
  137. try
  138. {
  139. var strSql = new StringBuilder();
  140. strSql.Append(@"select * from ArrangeExamTermItemNew t where 1=1 ");
  141. var queryParam = queryJson.ToJObject();
  142. if (!queryParam["AcademicYearNo"].IsEmpty())
  143. {
  144. strSql.Append(" and t.AcademicYearNo='"+ queryParam["AcademicYearNo"].ToString() + "' ");
  145. }
  146. if (!queryParam["Semester"].IsEmpty())
  147. {
  148. strSql.Append(" and t.Semester='" + queryParam["Semester"].ToString() + "' ");
  149. }
  150. if (!queryParam["LessonNo"].IsEmpty())
  151. {
  152. strSql.Append(" and t.LessonNo='" + queryParam["LessonNo"].ToString() + "' ");
  153. }
  154. if (!queryParam["ClassNo"].IsEmpty())
  155. {
  156. strSql.Append(" and t.ClassNo='" + queryParam["ClassNo"].ToString() + "' ");
  157. }
  158. if (!queryParam["StuNo"].IsEmpty())
  159. {
  160. strSql.Append(" and t.StuNo='" + queryParam["StuNo"].ToString() + "' ");
  161. }
  162. if (!queryParam["EmpNo"].IsEmpty())
  163. {
  164. strSql.Append(" and t.EmpNo like '%" + queryParam["EmpNo"].ToString() + "%' ");
  165. }
  166. if (!queryParam["ClassRoomNo"].IsEmpty())
  167. {
  168. strSql.Append(" and t.ClassRoomNo='" + queryParam["ClassRoomNo"].ToString() + "' ");
  169. }
  170. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  171. {
  172. strSql.Append(" AND ( ExamDate >= '" + queryParam["StartTime"].ToString() + "' AND ExamDate <= '" + queryParam["EndTime"].ToString() + "' ) ");
  173. }
  174. return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermItemNewEntity>(strSql.ToString(), null, pagination);
  175. }
  176. catch (Exception ex)
  177. {
  178. if (ex is ExceptionEx)
  179. {
  180. throw;
  181. }
  182. else
  183. {
  184. throw ExceptionEx.ThrowServiceException(ex);
  185. }
  186. }
  187. }
  188. /// <summary>
  189. /// 获取实体数据
  190. /// </summary>
  191. /// <param name="keyValue">主键</param>
  192. /// <returns></returns>
  193. public ArrangeExamTermNewEntity GetEntity(string keyValue)
  194. {
  195. try
  196. {
  197. return this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamTermNewEntity>(keyValue);
  198. }
  199. catch (Exception ex)
  200. {
  201. if (ex is ExceptionEx)
  202. {
  203. throw;
  204. }
  205. else
  206. {
  207. throw ExceptionEx.ThrowServiceException(ex);
  208. }
  209. }
  210. }
  211. #endregion
  212. #region 提交数据
  213. /// <summary>
  214. /// 删除实体数据
  215. /// </summary>
  216. /// <param name="keyValue">主键</param>
  217. public void DeleteEntity(string keyValue)
  218. {
  219. try
  220. {
  221. this.BaseRepository("CollegeMIS").Delete<ArrangeExamTermNewEntity>(t => t.AETId == keyValue);
  222. }
  223. catch (Exception ex)
  224. {
  225. if (ex is ExceptionEx)
  226. {
  227. throw;
  228. }
  229. else
  230. {
  231. throw ExceptionEx.ThrowServiceException(ex);
  232. }
  233. }
  234. }
  235. /// <summary>
  236. /// 保存实体数据(新增、修改)
  237. /// <param name="keyValue">主键</param>
  238. /// <param name="entity">实体</param>
  239. /// </summary>
  240. public void SaveEntity(string keyValue, ArrangeExamTermNewEntity entity)
  241. {
  242. try
  243. {
  244. if (!string.IsNullOrEmpty(keyValue))
  245. {
  246. entity.Modify(keyValue);
  247. this.BaseRepository("CollegeMIS").Update(entity);
  248. }
  249. else
  250. {
  251. entity.Create();
  252. this.BaseRepository("CollegeMIS").Insert(entity);
  253. }
  254. }
  255. catch (Exception ex)
  256. {
  257. if (ex is ExceptionEx)
  258. {
  259. throw;
  260. }
  261. else
  262. {
  263. throw ExceptionEx.ThrowServiceException(ex);
  264. }
  265. }
  266. }
  267. #endregion
  268. public IEnumerable<ClassInfoEntity> GetClassTree()
  269. {
  270. try
  271. {
  272. return this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>("select ClassNo,ClassName from ArrangeExamTermItemNew group by ClassNo,ClassName order by ClassNo");
  273. }
  274. catch (Exception ex)
  275. {
  276. if (ex is ExceptionEx)
  277. {
  278. throw;
  279. }
  280. else
  281. {
  282. throw ExceptionEx.ThrowServiceException(ex);
  283. }
  284. }
  285. }
  286. public IEnumerable<ArrangeExamTermItemNewEntity> GetPageListForClass(Pagination pagination, string queryJson)
  287. {
  288. try
  289. {
  290. var strSql = new StringBuilder();
  291. strSql.Append(@"select AcademicYearNo, Semester, ExamDate, ExamTime, LessonNo, LessonName,ClassRoomNo,ClassRoomName,EmpNo, EmpName, ClassNo,ClassName, count(StuNo) as ClassStuNum
  292. from [dbo].[ArrangeExamTermItemNew] where 1=1 ");
  293. var queryParam = queryJson.ToJObject();
  294. if (!queryParam["AcademicYearNo"].IsEmpty())
  295. {
  296. strSql.Append(" and AcademicYearNo='" + queryParam["AcademicYearNo"].ToString() + "' ");
  297. }
  298. if (!queryParam["Semester"].IsEmpty())
  299. {
  300. strSql.Append(" and Semester='" + queryParam["Semester"].ToString() + "' ");
  301. }
  302. if (!queryParam["LessonNo"].IsEmpty())
  303. {
  304. strSql.Append(" and LessonNo='" + queryParam["LessonNo"].ToString() + "' ");
  305. }
  306. if (!queryParam["ClassNo"].IsEmpty())
  307. {
  308. strSql.Append(" and ClassNo='" + queryParam["ClassNo"].ToString() + "' ");
  309. }
  310. if (!queryParam["EmpNo"].IsEmpty())
  311. {
  312. strSql.Append(" and EmpNo like '%" + queryParam["EmpNo"].ToString() + "%' ");
  313. }
  314. if (!queryParam["ClassRoomNo"].IsEmpty())
  315. {
  316. strSql.Append(" and ClassRoomNo='" + queryParam["ClassRoomNo"].ToString() + "' ");
  317. }
  318. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  319. {
  320. strSql.Append(" AND ( ExamDate >= '" + queryParam["StartTime"].ToString() + "' AND ExamDate <= '" + queryParam["EndTime"].ToString() + "' ) ");
  321. }
  322. strSql.Append(@" group by AcademicYearNo, Semester, ExamDate, ExamTime,LessonNo, LessonName,ClassRoomNo,ClassRoomName,EmpNo, EmpName, ClassNo,ClassName
  323. ");
  324. var list= this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermItemNewEntity>(strSql.ToString(), pagination);
  325. var stulist = BaseRepository("CollegeMIS").FindList<ArrangeExamTermItemNewEntity>("select * from ArrangeExamTermItemNew");
  326. foreach (var item in list)
  327. {
  328. if (item.ClassStuNum>0)
  329. {
  330. var stunolist = stulist.Where(m => m.AcademicYearNo == item.AcademicYearNo && m.Semester == item.Semester
  331. && m.LessonNo == item.LessonNo && m.ExamDate == item.ExamDate && m.ExamTime == item.ExamTime
  332. && m.ClassRoomNo == item.ClassRoomNo && m.EmpNo == item.EmpNo && m.ClassNo == item.ClassNo).OrderBy(m=>m.StuNo);
  333. if (stunolist.Count()>0)
  334. {
  335. item.StuNoRange = stunolist.First().StuNo+ "~"+stunolist.Last().StuNo;
  336. }
  337. }
  338. }
  339. return list;
  340. }
  341. catch (Exception ex)
  342. {
  343. if (ex is ExceptionEx)
  344. {
  345. throw;
  346. }
  347. else
  348. {
  349. throw ExceptionEx.ThrowServiceException(ex);
  350. }
  351. }
  352. }
  353. public IEnumerable<ArrangeExamTermNewEntity> GetPageListForLesson(Pagination pagination, string queryJson)
  354. {
  355. try
  356. {
  357. var strSql = new StringBuilder();
  358. strSql.Append("SELECT AcademicYearNo,Semester,ExamDate,ExamTime,LessonNo,LessonName ");
  359. strSql.Append(" FROM ArrangeExamTermNew t where 1=1 ");
  360. var queryParam = queryJson.ToJObject();
  361. var dp = new DynamicParameters(new { });
  362. if (!queryParam["AcademicYearNo"].IsEmpty())
  363. {
  364. strSql.Append(" and t.AcademicYearNo=@AcademicYearNo ");
  365. dp.Add("AcademicYearNo", queryParam["AcademicYearNo"].ToString(), DbType.String);
  366. }
  367. if (!queryParam["Semester"].IsEmpty())
  368. {
  369. strSql.Append(" and t.Semester=@Semester ");
  370. dp.Add("Semester", queryParam["Semester"].ToString(), DbType.String);
  371. }
  372. if (!queryParam["LessonNo"].IsEmpty())
  373. {
  374. strSql.Append(" and t.LessonNo=@LessonNo ");
  375. dp.Add("LessonNo", queryParam["LessonNo"].ToString(), DbType.String);
  376. }
  377. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  378. {
  379. dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  380. dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
  381. strSql.Append(" AND ( ExamDate >= @startTime AND ExamDate <= @endTime ) ");
  382. }
  383. strSql.Append(" group by AcademicYearNo,Semester,ExamDate,ExamTime,LessonNo,LessonName");
  384. return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermNewEntity>(strSql.ToString(), dp, pagination);
  385. }
  386. catch (Exception ex)
  387. {
  388. if (ex is ExceptionEx)
  389. {
  390. throw;
  391. }
  392. else
  393. {
  394. throw ExceptionEx.ThrowServiceException(ex);
  395. }
  396. }
  397. }
  398. }
  399. }