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.
 
 
 
 
 
 

314 lines
10 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-Ultimate V7.0.0 数字化智慧校园
  13. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  14. /// 创 建:超级管理员
  15. /// 日 期:2019-05-24 15:40
  16. /// 描 述:学生请假记录
  17. /// </summary>
  18. public class StuAttendanceLeaveService : RepositoryFactory
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取页面显示列表数据
  23. /// <summary>
  24. /// <param name="queryJson">查询参数</param>
  25. /// <returns></returns>
  26. public IEnumerable<StuAttendanceLeaveEntity> GetPageList(Pagination pagination, string queryJson)
  27. {
  28. try
  29. {
  30. var strSql = new StringBuilder();
  31. strSql.Append("SELECT t.*,c.ClassDiredctorNo,c.ClassTutorNo ");
  32. strSql.Append(" FROM StuAttendanceLeave t left join ClassInfo c on t.ClassNo=c.ClassNo ");
  33. strSql.Append(" WHERE 1=1 ");
  34. var queryParam = queryJson.ToJObject();
  35. // 虚拟参数
  36. var dp = new DynamicParameters(new { });
  37. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  38. {
  39. dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  40. dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
  41. strSql.Append(" AND ( t.LessonDate >= @startTime AND t.LessonDate <= @endTime ) ");
  42. }
  43. if (!queryParam["LessonName"].IsEmpty())
  44. {
  45. dp.Add("LessonName", "%" + queryParam["LessonName"].ToString() + "%", DbType.String);
  46. strSql.Append(" AND t.LessonName Like @LessonName ");
  47. }
  48. if (!queryParam["Grade"].IsEmpty())
  49. {
  50. dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
  51. strSql.Append(" AND t.Grade = @Grade ");
  52. }
  53. if (!queryParam["StuNo"].IsEmpty())
  54. {
  55. dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String);
  56. strSql.Append(" AND t.StuNo = @StuNo ");
  57. }
  58. if (!queryParam["StuName"].IsEmpty())
  59. {
  60. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  61. strSql.Append(" AND t.StuName Like @StuName ");
  62. }
  63. if (!queryParam["EmpNo"].IsEmpty())
  64. {
  65. dp.Add("EmpNo", "%" + queryParam["EmpNo"].ToString() + "%", DbType.String);
  66. strSql.Append(" AND t.EmpNo Like @EmpNo ");
  67. }
  68. //班级班主任/辅导员
  69. if (!queryParam["ClassManagerNo"].IsEmpty())
  70. {
  71. dp.Add("ClassManagerNo", queryParam["ClassManagerNo"].ToString(), DbType.String);
  72. strSql.Append(" AND (c.ClassDiredctorNo = @ClassManagerNo or c.ClassTutorNo = @ClassManagerNo) ");
  73. }
  74. var result = this.BaseRepository("CollegeMIS").FindList<StuAttendanceLeaveEntity>(strSql.ToString(), dp, pagination);
  75. return result;
  76. }
  77. catch (Exception ex)
  78. {
  79. if (ex is ExceptionEx)
  80. {
  81. throw;
  82. }
  83. else
  84. {
  85. throw ExceptionEx.ThrowServiceException(ex);
  86. }
  87. }
  88. }
  89. /// <summary>
  90. /// 获取页面显示列表数据
  91. /// <summary>
  92. /// <param name="queryJson">查询参数</param>
  93. /// <returns></returns>
  94. public IEnumerable<StuAttendanceLeaveEntity> GetList(string queryJson)
  95. {
  96. try
  97. {
  98. var strSql = new StringBuilder();
  99. strSql.Append("SELECT ");
  100. strSql.Append(@"
  101. t.ID,
  102. t.AcademicYearNo,
  103. t.Semester,
  104. t.StuNo,
  105. t.StuName,
  106. t.Grade,
  107. t.DeptNo,
  108. t.DeptName,
  109. t.MajorNo,
  110. t.MajorName,
  111. t.ClassNo
  112. ");
  113. strSql.Append(" FROM StuAttendanceLeave t ");
  114. strSql.Append(" WHERE 1=1 ");
  115. var queryParam = queryJson.ToJObject();
  116. // 虚拟参数
  117. var dp = new DynamicParameters(new { });
  118. var result = this.BaseRepository("CollegeMIS").FindList<StuAttendanceLeaveEntity>(strSql.ToString(), dp);
  119. //获取登录帐号
  120. var userInfo = LoginUserInfo.Get();
  121. //获取当前帐号所管理的班级
  122. var classes = this.BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(a => a.ClassDiredctorNo == userInfo.account).Select(a => a.ClassNo);
  123. var list = result.Where(a => classes.Contains(a.ClassNo)).ToList();
  124. return list;
  125. }
  126. catch (Exception ex)
  127. {
  128. if (ex is ExceptionEx)
  129. {
  130. throw;
  131. }
  132. else
  133. {
  134. throw ExceptionEx.ThrowServiceException(ex);
  135. }
  136. }
  137. }
  138. internal void Check(string keyValue, string checkValue)
  139. {
  140. try
  141. {
  142. var entity = this.BaseRepository("CollegeMIS").FindEntity<StuAttendanceLeaveEntity>(a => a.ID == keyValue);
  143. if (null != entity)
  144. {
  145. entity.IsCheck = checkValue;
  146. }
  147. entity.Modify(keyValue);
  148. }
  149. catch (Exception ex)
  150. {
  151. if (ex is ExceptionEx)
  152. {
  153. throw;
  154. }
  155. else
  156. {
  157. throw ExceptionEx.ThrowServiceException(ex);
  158. }
  159. }
  160. }
  161. public List<StuAttendanceLeaveEntity> GetList()
  162. {
  163. try
  164. {
  165. return this.BaseRepository("CollegeMIS").FindList<StuAttendanceLeaveEntity>().ToList();
  166. }
  167. catch (Exception ex)
  168. {
  169. if (ex is ExceptionEx)
  170. {
  171. throw;
  172. }
  173. else
  174. {
  175. throw ExceptionEx.ThrowServiceException(ex);
  176. }
  177. }
  178. }
  179. /// <summary>
  180. /// 获取StuAttendanceLeave表实体数据
  181. /// <param name="keyValue">主键</param>
  182. /// <summary>
  183. /// <returns></returns>
  184. public StuAttendanceLeaveEntity GetStuAttendanceLeaveEntity(string keyValue)
  185. {
  186. try
  187. {
  188. return this.BaseRepository("CollegeMIS").FindEntity<StuAttendanceLeaveEntity>(keyValue);
  189. }
  190. catch (Exception ex)
  191. {
  192. if (ex is ExceptionEx)
  193. {
  194. throw;
  195. }
  196. else
  197. {
  198. throw ExceptionEx.ThrowServiceException(ex);
  199. }
  200. }
  201. }
  202. #endregion
  203. #region 提交数据
  204. /// <summary>
  205. /// 删除实体数据
  206. /// <param name="keyValue">主键</param>
  207. /// <summary>
  208. /// <returns></returns>
  209. public void DeleteEntity(string keyValue)
  210. {
  211. try
  212. {
  213. this.BaseRepository("CollegeMIS").Delete<StuAttendanceLeaveEntity>(t => t.ID == keyValue);
  214. }
  215. catch (Exception ex)
  216. {
  217. if (ex is ExceptionEx)
  218. {
  219. throw;
  220. }
  221. else
  222. {
  223. throw ExceptionEx.ThrowServiceException(ex);
  224. }
  225. }
  226. }
  227. /// <summary>
  228. /// 保存实体数据(新增、修改)
  229. /// <param name="keyValue">主键</param>
  230. /// <summary>
  231. /// <returns></returns>
  232. public void SaveEntity(string keyValue, StuAttendanceLeaveEntity entity)
  233. {
  234. try
  235. {
  236. entity.UpdateDate = DateTime.Now;
  237. if (!string.IsNullOrEmpty(keyValue))
  238. {
  239. entity.Modify(keyValue);
  240. this.BaseRepository("CollegeMIS").Update(entity);
  241. }
  242. else
  243. {
  244. entity.Create();
  245. this.BaseRepository("CollegeMIS").Insert(entity);
  246. }
  247. }
  248. catch (Exception ex)
  249. {
  250. if (ex is ExceptionEx)
  251. {
  252. throw;
  253. }
  254. else
  255. {
  256. throw ExceptionEx.ThrowServiceException(ex);
  257. }
  258. }
  259. }
  260. /// <summary>
  261. /// 保存实体数据(新增、修改)
  262. /// <param name="keyValue">主键</param>
  263. /// <summary>
  264. /// <returns></returns>
  265. public void SaveEntity(UserInfo userInfo, string keyValue, StuAttendanceLeaveEntity entity)
  266. {
  267. try
  268. {
  269. if (!string.IsNullOrEmpty(keyValue))
  270. {
  271. entity.Modify(keyValue, userInfo);
  272. this.BaseRepository("CollegeMIS").Update(entity);
  273. }
  274. else
  275. {
  276. entity.Create(userInfo);
  277. this.BaseRepository("CollegeMIS").Insert(entity);
  278. }
  279. }
  280. catch (Exception ex)
  281. {
  282. if (ex is ExceptionEx)
  283. {
  284. throw;
  285. }
  286. else
  287. {
  288. throw ExceptionEx.ThrowServiceException(ex);
  289. }
  290. }
  291. }
  292. #endregion
  293. }
  294. }