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.
 
 
 
 
 
 

190 lines
6.2 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-06-14 10:24
  16. /// 描 述:教师考勤
  17. /// </summary>
  18. public class TeachAttendanceService : RepositoryFactory
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取页面显示列表数据
  23. /// <summary>
  24. /// <param name="queryJson">查询参数</param>
  25. /// <returns></returns>
  26. public IEnumerable<Teach_attendanceEntity> GetPageList(Pagination pagination, string queryJson)
  27. {
  28. try
  29. {
  30. var strSql = new StringBuilder();
  31. strSql.Append("SELECT ");
  32. strSql.Append(@"
  33. t.ID,
  34. t.EmpNo,
  35. t.EmpName,
  36. t.ClockTime,
  37. t.ClockPlace,
  38. t.Remark
  39. ");
  40. strSql.Append(" FROM Teach_attendance t ");
  41. strSql.Append(" WHERE 1=1 ");
  42. var queryParam = queryJson.ToJObject();
  43. // 虚拟参数
  44. var dp = new DynamicParameters(new { });
  45. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  46. {
  47. dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  48. dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
  49. strSql.Append(" AND ( t.ClockTime >= @startTime AND t.ClockTime <= @endTime ) ");
  50. }
  51. return this.BaseRepository("CollegeMIS").FindList<Teach_attendanceEntity>(strSql.ToString(), dp, pagination);
  52. }
  53. catch (Exception ex)
  54. {
  55. if (ex is ExceptionEx)
  56. {
  57. throw;
  58. }
  59. else
  60. {
  61. throw ExceptionEx.ThrowServiceException(ex);
  62. }
  63. }
  64. }
  65. internal object GetAttendanceByEmpNo(string empNo)
  66. {
  67. try
  68. {
  69. var entityList = this.BaseRepository("CollegeMIS").FindList<Teach_attendanceEntity>(a => a.EmpNo == empNo).ToList();
  70. var dataK = entityList.GroupBy(a => a.ClockTime?.ToString("yyyyMMdd"))
  71. .Select(a => new
  72. {
  73. key = a.Key,
  74. y = a.Key.Substring(0, 4),
  75. m = a.Key.Substring(4, 2),
  76. d = a.Key.Substring(6),
  77. day = $"{entityList.FirstOrDefault(b => b.ClockTime?.ToString("yyyyMMdd") == a.Key)?.ClockTime?.ToString("yyyy年MM月dd日")} {System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(Convert.ToDateTime(entityList.FirstOrDefault(b => b.ClockTime?.ToString("yyyyMMdd") == a.Key)?.ClockTime).DayOfWeek)}",
  78. list = entityList.Where(b => b.ClockTime?.ToString("yyyyMMdd") == a.Key).OrderBy(b => b.ClockTime).Select(b => new { time = b.ClockTime?.ToString("HH:mm"), location = b.ClockPlace, status = "1" }),
  79. state = "1"
  80. });
  81. return dataK;
  82. }
  83. catch (Exception ex)
  84. {
  85. if (ex is ExceptionEx)
  86. {
  87. throw;
  88. }
  89. else
  90. {
  91. throw ExceptionEx.ThrowServiceException(ex);
  92. }
  93. }
  94. }
  95. /// <summary>
  96. /// 获取Teach_attendance表实体数据
  97. /// <param name="keyValue">主键</param>
  98. /// <summary>
  99. /// <returns></returns>
  100. public Teach_attendanceEntity GetTeach_attendanceEntity(string keyValue)
  101. {
  102. try
  103. {
  104. return this.BaseRepository("CollegeMIS").FindEntity<Teach_attendanceEntity>(keyValue);
  105. }
  106. catch (Exception ex)
  107. {
  108. if (ex is ExceptionEx)
  109. {
  110. throw;
  111. }
  112. else
  113. {
  114. throw ExceptionEx.ThrowServiceException(ex);
  115. }
  116. }
  117. }
  118. #endregion
  119. #region 提交数据
  120. /// <summary>
  121. /// 删除实体数据
  122. /// <param name="keyValue">主键</param>
  123. /// <summary>
  124. /// <returns></returns>
  125. public void DeleteEntity(string keyValue)
  126. {
  127. try
  128. {
  129. this.BaseRepository("CollegeMIS").Delete<Teach_attendanceEntity>(t => t.ID == keyValue);
  130. }
  131. catch (Exception ex)
  132. {
  133. if (ex is ExceptionEx)
  134. {
  135. throw;
  136. }
  137. else
  138. {
  139. throw ExceptionEx.ThrowServiceException(ex);
  140. }
  141. }
  142. }
  143. /// <summary>
  144. /// 保存实体数据(新增、修改)
  145. /// <param name="keyValue">主键</param>
  146. /// <summary>
  147. /// <returns></returns>
  148. public void SaveEntity(string keyValue, Teach_attendanceEntity entity)
  149. {
  150. try
  151. {
  152. if (!string.IsNullOrEmpty(keyValue))
  153. {
  154. entity.Modify(keyValue);
  155. this.BaseRepository("CollegeMIS").Update(entity);
  156. }
  157. else
  158. {
  159. entity.Create();
  160. this.BaseRepository("CollegeMIS").Insert(entity);
  161. }
  162. }
  163. catch (Exception ex)
  164. {
  165. if (ex is ExceptionEx)
  166. {
  167. throw;
  168. }
  169. else
  170. {
  171. throw ExceptionEx.ThrowServiceException(ex);
  172. }
  173. }
  174. }
  175. #endregion
  176. }
  177. }