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.
 
 
 
 
 
 

264 line
9.4 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.Text;
  8. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  9. {
  10. /// <summary>
  11. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  12. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  13. /// 创 建:超级管理员
  14. /// 日 期:2019-07-03 15:32
  15. /// 描 述:教学工作安排
  16. /// </summary>
  17. public class EADateArrangeService : RepositoryFactory
  18. {
  19. #region 获取数据
  20. /// <summary>
  21. /// 获取页面显示列表数据
  22. /// <summary>
  23. /// <param name="queryJson">查询参数</param>
  24. /// <returns></returns>
  25. public IEnumerable<EADateArrangeEntity> GetPageList(Pagination pagination, string queryJson)
  26. {
  27. try
  28. {
  29. var strSql = new StringBuilder();
  30. strSql.Append("SELECT ");
  31. strSql.Append(@"
  32. t.dm,
  33. t.WorkName,
  34. t.AcademicYearNo,
  35. t.Semester,
  36. t.MakeDate,
  37. t.EndDate,
  38. t.CheckMark,
  39. t.WhoArrange
  40. ");
  41. strSql.Append(" FROM EADateArrange t ");
  42. strSql.Append(" WHERE 1=1 ");
  43. var queryParam = queryJson.ToJObject();
  44. // 虚拟参数
  45. var dp = new DynamicParameters(new { });
  46. if (!queryParam["WorkName"].IsEmpty())
  47. {
  48. dp.Add("WorkName", "%" + queryParam["WorkName"].ToString() + "%", DbType.String);
  49. strSql.Append(" AND t.WorkName Like @WorkName ");
  50. }
  51. if (!queryParam["AcademicYearNo"].IsEmpty())
  52. {
  53. dp.Add("AcademicYearNo", "%" + queryParam["AcademicYearNo"].ToString() + "%", DbType.String);
  54. strSql.Append(" AND t.AcademicYearNo Like @AcademicYearNo ");
  55. }
  56. if (!queryParam["Semester"].IsEmpty())
  57. {
  58. dp.Add("Semester", "%" + queryParam["Semester"].ToString() + "%", DbType.String);
  59. strSql.Append(" AND t.Semester Like @Semester ");
  60. }
  61. return this.BaseRepository("CollegeMIS").FindList<EADateArrangeEntity>(strSql.ToString(), dp, pagination);
  62. }
  63. catch (Exception ex)
  64. {
  65. if (ex is ExceptionEx)
  66. {
  67. throw;
  68. }
  69. else
  70. {
  71. throw ExceptionEx.ThrowServiceException(ex);
  72. }
  73. }
  74. }
  75. /// <summary>
  76. /// 获取EADateArrange表实体数据
  77. /// <param name="keyValue">主键</param>
  78. /// <summary>
  79. /// <returns></returns>
  80. public EADateArrangeEntity GetEADateArrangeEntity(string keyValue)
  81. {
  82. try
  83. {
  84. return this.BaseRepository("CollegeMIS").FindEntity<EADateArrangeEntity>(keyValue);
  85. }
  86. catch (Exception ex)
  87. {
  88. if (ex is ExceptionEx)
  89. {
  90. throw;
  91. }
  92. else
  93. {
  94. throw ExceptionEx.ThrowServiceException(ex);
  95. }
  96. }
  97. }
  98. #endregion
  99. #region 提交数据
  100. /// <summary>
  101. /// 删除实体数据
  102. /// <param name="keyValue">主键</param>
  103. /// <summary>
  104. /// <returns></returns>
  105. public void DeleteEntity(string keyValue)
  106. {
  107. try
  108. {
  109. this.BaseRepository("CollegeMIS").Delete<EADateArrangeEntity>(t => t.dm == keyValue);
  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. /// <summary>
  124. /// 保存实体数据(新增、修改)
  125. /// <param name="keyValue">主键</param>
  126. /// <summary>
  127. /// <returns></returns>
  128. public void SaveEntity(string keyValue, EADateArrangeEntity entity)
  129. {
  130. try
  131. {
  132. if (!string.IsNullOrEmpty(keyValue))
  133. {
  134. entity.Modify(keyValue);
  135. this.BaseRepository("CollegeMIS").Update(entity);
  136. }
  137. else
  138. {
  139. entity.Create();
  140. this.BaseRepository("CollegeMIS").Insert(entity);
  141. }
  142. }
  143. catch (Exception ex)
  144. {
  145. if (ex is ExceptionEx)
  146. {
  147. throw;
  148. }
  149. else
  150. {
  151. throw ExceptionEx.ThrowServiceException(ex);
  152. }
  153. }
  154. }
  155. #endregion
  156. #region 扩展数据
  157. /// <summary>
  158. /// 审核、去审工作安排
  159. /// </summary>
  160. /// <param name="keyValue"></param>
  161. /// <param name="checkMark"></param>
  162. public void CheckEntity(string keyValue, int checkMark)
  163. {
  164. try
  165. {
  166. this.BaseRepository("CollegeMIS").ExecuteBySql("update EADateArrange set CheckMark=" + checkMark + " where dm='" + keyValue + "'");
  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. /// <summary>
  181. /// 初始化“评班主任和辅导员”表数据
  182. /// </summary>
  183. /// <param name="academicYearNo">学年</param>
  184. /// <param name="semester">学期</param>
  185. public void InitEvalTutorOfClass(string academicYearNo, string semester)
  186. {
  187. try
  188. {
  189. var strSql = new StringBuilder();
  190. strSql.Append("INSERT INTO EvalTutorofClass (academicyearno,semester,deptno,deptname,classno,ClassName,ClassDiredctorNo,ClassTutorNo,NumofParticipatingStu, InsertDate) ");
  191. strSql.Append(" select * from ( SELECT '" + academicYearNo + "'as academicyearno,'" + semester + "'as semester,ClassInfo.deptno,CdDept.deptname,ClassInfo.classno,ClassInfo.ClassName,ClassInfo.ClassDiredctorNo,ClassInfo.ClassTutorNo,ClassInfo.StuNum,GETDATE() as InsertDate ");
  192. strSql.Append(" FROM ClassInfo left join CdDept on ClassInfo.DeptNo=CdDept.DeptNo left join CdMajor on ClassInfo.MajorNo=CdMajor.MajorNo where ClassInfo.CheckMark='1' ) as bb ");
  193. strSql.Append(" where bb.deptno not in ( select a.deptno from EvalTutorofClass a where a.academicyearno=bb.academicyearno and a.semester=bb.semester and a.deptno=bb.deptno and a.classno=bb.classno and a.ClassDiredctorNo=bb.ClassDiredctorNo and a.ClassTutorNo=bb.ClassTutorNo ) ");
  194. this.BaseRepository("CollegeMIS").ExecuteBySql(strSql.ToString());
  195. }
  196. catch (Exception ex)
  197. {
  198. if (ex is ExceptionEx)
  199. {
  200. throw;
  201. }
  202. else
  203. {
  204. throw ExceptionEx.ThrowServiceException(ex);
  205. }
  206. }
  207. }
  208. /// <summary>
  209. /// 初始化“学生注册信息”表数据
  210. /// </summary>
  211. public void InitStuRegisterInfo()
  212. {
  213. try
  214. {
  215. var yearandsemster = Common.GetSemesterAndYear();
  216. var academicYearNo = yearandsemster.AcademicYearShort;
  217. var semester = yearandsemster.Semester;
  218. var grade = academicYearNo.Substring(0, 2);
  219. var gradeList = new List<Int32>();
  220. gradeList.Add(Convert.ToInt32(grade));
  221. if (Convert.ToInt32(grade) > 1)
  222. {
  223. gradeList.Add(Convert.ToInt32(grade) - 1);
  224. gradeList.Add(Convert.ToInt32(grade) - 2);
  225. }
  226. var gradeStr = string.Join(",", gradeList.ToArray());
  227. var strSql = new StringBuilder();
  228. strSql.Append("insert into StuRegisterInfo (StuNo, NoticebookNo, AcademicYearNo, Semester, RegisterStatusNo, CheckMark) ");
  229. strSql.Append(" select * from ( select s.StuNo,s.NoticeNo as NoticebookNo,'" + academicYearNo + "' as AcademicYearNo,'" + semester + "' as Semester,'0' as RegisterStatusNo,'0' as CheckMark from StuInfoBasic s ");
  230. strSql.Append(" where s.Grade in (" + gradeStr + ") and s.InSchoolStatus <> '不在籍' ) as bb ");
  231. strSql.Append(" where bb.StuNo not in (select r.StuNo from StuRegisterInfo r where r.AcademicYearNo=bb.AcademicYearNo and r.Semester=bb.Semester and r.StuNo =bb.StuNo) ");
  232. this.BaseRepository("CollegeMIS").ExecuteBySql(strSql.ToString());
  233. }
  234. catch (Exception ex)
  235. {
  236. if (ex is ExceptionEx)
  237. {
  238. throw;
  239. }
  240. else
  241. {
  242. throw ExceptionEx.ThrowServiceException(ex);
  243. }
  244. }
  245. }
  246. #endregion
  247. }
  248. }