Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

202 linhas
6.7 KiB

  1. using Learun.Application.Base.SystemModule;
  2. using Learun.Application.TwoDevelopment.EducationalAdministration;
  3. using Learun.Application.TwoDevelopment.LogisticsManagement;
  4. using Learun.Application.TwoDevelopment.PersonnelManagement;
  5. using Learun.Util;
  6. using Nancy;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.IO;
  10. namespace Learun.Application.WebApi.Modules
  11. {
  12. /// <summary>
  13. /// 考勤打卡功能
  14. /// </summary>
  15. public class AttendanceApi : BaseApi
  16. {
  17. public AttendanceApi()
  18. : base("/learun/adms/attendance")
  19. {
  20. //判断当前时间是否可以打卡
  21. Get["/IsAttendance"] = IsAttendance;
  22. //上下班打卡
  23. Post["/clockin"] = ClockIn;
  24. //获取考勤打卡记录
  25. Get["/getrecordpagelist"] = GetRecordPageList;
  26. //判断学生当前打卡状态
  27. Get["IsAttendanceStudent"] = IsAttendanceStudent;
  28. //学生打卡
  29. Post["/clockinStudent"] = ClockInStudent;
  30. //打卡记录
  31. Get["/GetTeacherRecord"] = GetTeacherRecord;
  32. //教师上下课打卡:判断当前打卡状态
  33. Get["IsAttendanceTeacher"] = IsAttendanceTeacher;
  34. //教师上下课打卡
  35. Post["/clockinTeacher"] = ClockInTeacher;
  36. //判断教师是否授课
  37. Get["JudgeTeacherIsHasLesson"] = JudgeTeacherIsHasLesson;
  38. }
  39. private ADR_RestrictionIBLL adr_RestrictionBLL = new ADR_RestrictionBLL();
  40. private ADR_RecordIBLL adr_RecordBLL = new ADR_RecordBLL();
  41. private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL();
  42. public Response GetTeacherRecord(dynamic _)
  43. {
  44. ReqPageParam parameter = this.GetReqData<ReqPageParam>();
  45. var res=adr_RecordBLL.GetList(parameter.queryJson);
  46. var jsondata =
  47. new
  48. {
  49. data = res
  50. };
  51. return Success(jsondata);
  52. }
  53. /// <summary>
  54. /// 判断当前时间是否可以打卡
  55. /// </summary>
  56. /// <param name="_"></param>
  57. /// <returns></returns>
  58. public Response IsAttendance(dynamic _)
  59. {
  60. var res = adr_RestrictionBLL.IsAttendance();
  61. var jsondata =
  62. new
  63. {
  64. data = res
  65. };
  66. return Success(jsondata);
  67. }
  68. /// <summary>
  69. /// 学生打卡判断
  70. /// </summary>
  71. /// <param name="_"></param>
  72. /// <returns></returns>
  73. public Response IsAttendanceStudent(dynamic _)
  74. {
  75. var res = adr_RestrictionBLL.IsAttendanceStudent();
  76. var jsondata =
  77. new
  78. {
  79. data = res
  80. };
  81. return Success(jsondata);
  82. }
  83. public class Attendance
  84. {
  85. public decimal ALon { get; set; }
  86. public decimal ALat { get; set; }
  87. public bool AIsOut { get; set; }
  88. public string ARemark { get; set; }
  89. public string ADPhoto { get; set; }
  90. public string ClockPlace { get; set; }
  91. public string LessonSortNo { get; set; }
  92. public string ALTId { get; set; }
  93. public string ALTOEId { get; set; }
  94. public string Img { get; set; }
  95. }
  96. /// <summary>
  97. /// 上下班打卡
  98. /// </summary>
  99. /// <param name="_"></param>
  100. /// <returns></returns>
  101. public Response ClockIn(dynamic _)
  102. {
  103. Attendance parameter = this.GetReqData<Attendance>();
  104. adr_RestrictionBLL.ClockIn(parameter.ALon, parameter.ALat, parameter.AIsOut, parameter.ARemark,parameter.ADPhoto,parameter.ClockPlace,parameter.Img);
  105. return Success("打卡成功");
  106. }
  107. /// <summary>
  108. /// 学生打卡
  109. /// </summary>
  110. /// <param name="_"></param>
  111. /// <returns></returns>
  112. public Response ClockInStudent(dynamic _)
  113. {
  114. Attendance parameter = this.GetReqData<Attendance>();
  115. adr_RestrictionBLL.ClockInStudent(parameter.ALon, parameter.ALat, parameter.AIsOut, parameter.ARemark, parameter.ADPhoto, parameter.ClockPlace,parameter.LessonSortNo,parameter.ALTId,parameter.ALTOEId);
  116. return Success("打卡成功");
  117. }
  118. /// <summary>
  119. /// 打卡
  120. /// </summary>
  121. /// <param name="_"></param>
  122. /// <returns></returns>
  123. public Response GetRecordPageList(dynamic _)
  124. {
  125. ReqPageParam parameter = this.GetReqData<ReqPageParam>();
  126. var data = adr_RecordBLL.GetPageList(parameter.pagination, parameter.queryJson);
  127. var jsonData = new
  128. {
  129. rows = data,
  130. total = parameter.pagination.total,
  131. page = parameter.pagination.page,
  132. records = parameter.pagination.records
  133. };
  134. return Success(jsonData);
  135. }
  136. /// <summary>
  137. /// 教师上下课打卡:判断当前打卡状态
  138. /// </summary>
  139. /// <param name="_"></param>
  140. /// <returns></returns>
  141. public Response IsAttendanceTeacher(dynamic _)
  142. {
  143. var res = adr_RestrictionBLL.IsAttendanceTeacher();
  144. var jsondata =
  145. new
  146. {
  147. data = res
  148. };
  149. return Success(jsondata);
  150. }
  151. /// <summary>
  152. /// 教师上下课打卡
  153. /// </summary>
  154. /// <param name="_"></param>
  155. /// <returns></returns>
  156. public Response ClockInTeacher(dynamic _)
  157. {
  158. Attendance parameter = this.GetReqData<Attendance>();
  159. adr_RestrictionBLL.ClockInTeacher(parameter.ALon, parameter.ALat, parameter.AIsOut, parameter.ARemark, parameter.ADPhoto, parameter.ClockPlace, parameter.LessonSortNo, parameter.ALTId, parameter.ALTOEId,parameter.Img);
  160. return Success("打卡成功");
  161. }
  162. /// <summary>
  163. /// 判断教师是否授课
  164. /// </summary>
  165. /// <param name="_"></param>
  166. /// <returns></returns>
  167. public Response JudgeTeacherIsHasLesson(dynamic _)
  168. {
  169. var jsondata =
  170. new
  171. {
  172. data = false
  173. };
  174. var empInfo = empInfoIBLL.GetEmpInfoEntityByEmpNo(userInfo.account);
  175. if (empInfo == null)
  176. {
  177. return Success(jsondata);
  178. }
  179. if (empInfo.IsHasLesson == true)//授课
  180. {
  181. jsondata = new { data = true };
  182. return Success(jsondata);
  183. }
  184. return Success(jsondata);
  185. }
  186. }
  187. }