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.
 
 
 
 
 
 

383 lines
13 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. /// <summary>
  203. /// 获取页面显示列表数据
  204. /// <summary>
  205. /// <param name="queryJson">查询参数</param>
  206. /// <returns></returns>
  207. public IEnumerable<StuAttendanceLeaveEntity> GetListByJson(string queryJson)
  208. {
  209. try
  210. {
  211. var strSql = new StringBuilder();
  212. strSql.Append("SELECT t.* ");
  213. strSql.Append(" FROM StuAttendanceLeave t");
  214. strSql.Append(" WHERE 1=1 ");
  215. var queryParam = queryJson.ToJObject();
  216. // 虚拟参数
  217. var dp = new DynamicParameters(new { });
  218. if (!queryParam["LessonName"].IsEmpty())
  219. {
  220. dp.Add("LessonName", "%" + queryParam["LessonName"].ToString() + "%", DbType.String);
  221. strSql.Append(" AND t.LessonName Like @LessonName ");
  222. }
  223. if (!queryParam["Grade"].IsEmpty())
  224. {
  225. dp.Add("Grade", queryParam["Grade"].ToString(), DbType.String);
  226. strSql.Append(" AND t.Grade = @Grade ");
  227. }
  228. if (!queryParam["StuNo"].IsEmpty())
  229. {
  230. dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String);
  231. strSql.Append(" AND t.StuNo = @StuNo ");
  232. }
  233. if (!queryParam["StuName"].IsEmpty())
  234. {
  235. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  236. strSql.Append(" AND t.StuName Like @StuName ");
  237. }
  238. if (!queryParam["EmpNo"].IsEmpty())
  239. {
  240. dp.Add("EmpNo", "%" + queryParam["EmpNo"].ToString() + "%", DbType.String);
  241. strSql.Append(" AND t.EmpNo Like @EmpNo ");
  242. }
  243. if (!queryParam["AcademicYearNo"].IsEmpty())
  244. {
  245. dp.Add("AcademicYearNo", queryParam["AcademicYearNo"].ToString(), DbType.String);
  246. strSql.Append(" AND t.AcademicYearNo = @AcademicYearNo ");
  247. }
  248. if (!queryParam["Semester"].IsEmpty())
  249. {
  250. dp.Add("Semester", queryParam["Semester"].ToString(), DbType.String);
  251. strSql.Append(" AND t.Semester = @Semester ");
  252. }
  253. var result = this.BaseRepository("CollegeMIS").FindList<StuAttendanceLeaveEntity>(strSql.ToString(), dp);
  254. return result;
  255. }
  256. catch (Exception ex)
  257. {
  258. if (ex is ExceptionEx)
  259. {
  260. throw;
  261. }
  262. else
  263. {
  264. throw ExceptionEx.ThrowServiceException(ex);
  265. }
  266. }
  267. }
  268. #endregion
  269. #region 提交数据
  270. /// <summary>
  271. /// 删除实体数据
  272. /// <param name="keyValue">主键</param>
  273. /// <summary>
  274. /// <returns></returns>
  275. public void DeleteEntity(string keyValue)
  276. {
  277. try
  278. {
  279. this.BaseRepository("CollegeMIS").Delete<StuAttendanceLeaveEntity>(t => t.ID == keyValue);
  280. }
  281. catch (Exception ex)
  282. {
  283. if (ex is ExceptionEx)
  284. {
  285. throw;
  286. }
  287. else
  288. {
  289. throw ExceptionEx.ThrowServiceException(ex);
  290. }
  291. }
  292. }
  293. /// <summary>
  294. /// 保存实体数据(新增、修改)
  295. /// <param name="keyValue">主键</param>
  296. /// <summary>
  297. /// <returns></returns>
  298. public void SaveEntity(string keyValue, StuAttendanceLeaveEntity entity)
  299. {
  300. try
  301. {
  302. entity.UpdateDate = DateTime.Now;
  303. if (!string.IsNullOrEmpty(keyValue))
  304. {
  305. entity.Modify(keyValue);
  306. this.BaseRepository("CollegeMIS").Update(entity);
  307. }
  308. else
  309. {
  310. entity.Create();
  311. this.BaseRepository("CollegeMIS").Insert(entity);
  312. }
  313. }
  314. catch (Exception ex)
  315. {
  316. if (ex is ExceptionEx)
  317. {
  318. throw;
  319. }
  320. else
  321. {
  322. throw ExceptionEx.ThrowServiceException(ex);
  323. }
  324. }
  325. }
  326. /// <summary>
  327. /// 保存实体数据(新增、修改)
  328. /// <param name="keyValue">主键</param>
  329. /// <summary>
  330. /// <returns></returns>
  331. public void SaveEntity(UserInfo userInfo, string keyValue, StuAttendanceLeaveEntity entity)
  332. {
  333. try
  334. {
  335. if (!string.IsNullOrEmpty(keyValue))
  336. {
  337. entity.Modify(keyValue, userInfo);
  338. this.BaseRepository("CollegeMIS").Update(entity);
  339. }
  340. else
  341. {
  342. entity.Create(userInfo);
  343. this.BaseRepository("CollegeMIS").Insert(entity);
  344. }
  345. }
  346. catch (Exception ex)
  347. {
  348. if (ex is ExceptionEx)
  349. {
  350. throw;
  351. }
  352. else
  353. {
  354. throw ExceptionEx.ThrowServiceException(ex);
  355. }
  356. }
  357. }
  358. #endregion
  359. }
  360. }