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.
 
 
 
 
 
 

241 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 V7.0.6 力软敏捷开发框架
  13. /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
  14. /// 创 建:超级管理员
  15. /// 日 期:2022-07-11 14:34
  16. /// 描 述:宿舍调换申请
  17. /// </summary>
  18. public class YKTStateMentService : RepositoryFactory
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取页面显示列表数据
  23. /// </summary>
  24. /// <param name="pagination">分页参数</param>
  25. /// <param name="queryJson">查询参数</param>
  26. /// <returns></returns>
  27. public IEnumerable<YKTStateMentEntity> GetPageList(Pagination pagination, string queryJson)
  28. {
  29. try
  30. {
  31. var queryParam = queryJson.ToJObject();
  32. var strSql = new StringBuilder();
  33. strSql.Append(@"SELECT A.OUTID AS STUPHONE,A.CUSTOMERID AS YKTNO,round(A.OPFARE/100,2) AS MONEY,round(A.ODDFARE/100,2) AS BALANCE,A.OPDT AS HAPPENTIME,A.DSCRP AS SUBJECT,B.TERMNAME,C.StuNo,C.StuName,d.DeptName,e.ClassName,c.identityno as IdentityCardNo, f.MajorName,c.GenderNo
  34. FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
  35. left join ds_stuinfo C on A.OUTID = C.mobile
  36. left join ds_dept d on c.deptno = d.deptno
  37. left join ds_classinfo e on c.classno = e.classno
  38. left join ds_major f on c.majorno=f.majorno
  39. where 1=1 and stuno is not null ");
  40. if (!queryParam["StuNo"].IsEmpty())
  41. {
  42. strSql.Append($" AND C.StuNo like '%{queryParam["StuNo"].ToString()}%' ");
  43. }
  44. if (!queryParam["StuName"].IsEmpty())
  45. {
  46. strSql.Append($" AND C.StuName like '%{queryParam["StuName"].ToString()}%' ");
  47. }
  48. if (!queryParam["DeptNo"].IsEmpty())
  49. {
  50. strSql.Append($" AND C.DeptNo='{queryParam["DeptNo"].ToString()}' ");
  51. }
  52. if (!queryParam["ClassNo"].IsEmpty())
  53. {
  54. strSql.Append($" AND C.ClassNo ='{queryParam["ClassNo"].ToString()}' ");
  55. }
  56. if (!queryParam["YKTNO"].IsEmpty())
  57. {
  58. strSql.Append($" AND a.CUSTOMERID like '%{queryParam["CUSTOMERID"].ToString()}%' ");
  59. }
  60. if (!queryParam["StartDate"].IsEmpty() && !queryParam["EndDate"].IsEmpty())
  61. {
  62. strSql.Append(" and (A.OPDT>=to_date('" + queryParam["StartDate"] + "','yyyy-mm-dd hh24:mi:ss') and A.OPDT<=to_date('" + queryParam["EndDate"] + "','yyyy-mm-dd hh24:mi:ss'))");
  63. }
  64. return BaseRepository("TLMZYMIDDLEString").FindList<YKTStateMentEntity>(strSql.ToString(), pagination);
  65. }
  66. catch (Exception ex)
  67. {
  68. if (ex is ExceptionEx)
  69. {
  70. throw;
  71. }
  72. else
  73. {
  74. throw ExceptionEx.ThrowServiceException(ex);
  75. }
  76. }
  77. }
  78. /// <summary>
  79. /// 一卡通学生月统计
  80. /// </summary>
  81. /// <param name="pagination"></param>
  82. /// <param name="queryJson"></param>
  83. /// <returns></returns>
  84. public IEnumerable<YKTStateMentEntity> GetAnalysisByMonthForStudentPageList(Pagination pagination, string queryJson)
  85. {
  86. try
  87. {
  88. var queryParam = queryJson.ToJObject();
  89. var strSql = new StringBuilder();
  90. strSql.Append(
  91. @"SELECT C.StuNo,C.StuName,c.GenderNo,d.DeptName,f.MajorName,e.ClassName,c.identityno as IdentityCardNo, sum(round(A.OPFARE/100,2)) AS MONEY,count(stuno) as PayTimes,round(sum(round(A.OPFARE/100,2))/count(stuno),2) as PerMoney
  92. FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
  93. left join ds_stuinfo C on A.OUTID = C.mobile
  94. left join ds_dept d on c.deptno = d.deptno
  95. left join ds_classinfo e on c.classno = e.classno
  96. left join ds_major f on c.majorno=f.majorno
  97. where 1=1 and stuno is not null ");
  98. if (!queryParam["DeptNo"].IsEmpty())
  99. {
  100. strSql.Append($" AND C.DeptNo='{queryParam["DeptNo"].ToString()}' ");
  101. }
  102. if (!queryParam["MajorNo"].IsEmpty())
  103. {
  104. strSql.Append($" AND C.MajorNo='{queryParam["MajorNo"].ToString()}' ");
  105. }
  106. if (!queryParam["ClassNo"].IsEmpty())
  107. {
  108. strSql.Append($" AND C.ClassNo ='{queryParam["ClassNo"].ToString()}' ");
  109. }
  110. if (!queryParam["Months"].IsEmpty())
  111. {
  112. strSql.Append(" and extract(month from A.OPDT) in("+ queryParam["Months"].ToString() + ")");
  113. }
  114. if (!queryParam["Year"].IsEmpty())
  115. {
  116. strSql.Append(" and extract(year from A.OPDT) in(" + queryParam["Year"].ToString() + ")");
  117. }
  118. strSql.Append("group by C.StuNo,c.GenderNo, C.StuName,d.DeptNo, d.DeptName, f.MajorName,f.MajorNo, e.ClassNo,e.ClassName, c.identityno");
  119. return BaseRepository("TLMZYMIDDLEString").FindList<YKTStateMentEntity>(strSql.ToString(), pagination);
  120. }
  121. catch (Exception ex)
  122. {
  123. if (ex is ExceptionEx)
  124. {
  125. throw;
  126. }
  127. else
  128. {
  129. throw ExceptionEx.ThrowServiceException(ex);
  130. }
  131. }
  132. }
  133. public IEnumerable<YKTStateMentEntity> GetTeacherPageList(Pagination pagination, string queryJson)
  134. {
  135. try
  136. {
  137. var queryParam = queryJson.ToJObject();
  138. var strSql = new StringBuilder();
  139. strSql.Append(@"SELECT A.OUTID AS STUPHONE,A.CUSTOMERID AS YKTNO,round(A.OPFARE/100,2) AS MONEY,round(A.ODDFARE/100,2) AS BALANCE,A.OPDT AS HAPPENTIME,A.DSCRP AS SUBJECT,
  140. B.TERMNAME,c.EmpNo,c.EmpName,d.Name as DepartmentName,c.identityno as IdentityCardNo,c.GenderNo
  141. FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
  142. left join ds_empinfo C on A.OUTID = C.mobile
  143. left join ds_department d on c.departmentid=d.id
  144. where 1=1 and EmpNo is not null");
  145. if (!queryParam["EmpNo"].IsEmpty())
  146. {
  147. strSql.Append($" AND C.EmpNo like '%{queryParam["EmpNo"].ToString()}%' ");
  148. }
  149. if (!queryParam["EmpName"].IsEmpty())
  150. {
  151. strSql.Append($" AND C.EmpName like '%{queryParam["EmpName"].ToString()}%' ");
  152. }
  153. if (!queryParam["DepartmentId"].IsEmpty())
  154. {
  155. strSql.Append($" AND C.DepartmentId='{queryParam["DepartmentId"].ToString()}' ");
  156. }
  157. if (!queryParam["YKTNO"].IsEmpty())
  158. {
  159. strSql.Append($" AND a.CUSTOMERID like '%{queryParam["CUSTOMERID"].ToString()}%' ");
  160. }
  161. if (!queryParam["StartDate"].IsEmpty() && !queryParam["EndDate"].IsEmpty())
  162. {
  163. strSql.Append(" and (A.OPDT>=to_date('" + queryParam["StartDate"] + "','yyyy-mm-dd hh24:mi:ss') and A.OPDT<=to_date('" + queryParam["EndDate"] + "','yyyy-mm-dd hh24:mi:ss'))");
  164. }
  165. return BaseRepository("TLMZYMIDDLEString").FindList<YKTStateMentEntity>(strSql.ToString(), pagination);
  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. /// 一卡通教师月统计
  181. /// </summary>
  182. /// <param name="pagination"></param>
  183. /// <param name="queryJson"></param>
  184. /// <returns></returns>
  185. public IEnumerable<YKTStateMentEntity> GetAnalysisByMonthForTeacherPageList(Pagination pagination, string queryJson)
  186. {
  187. try
  188. {
  189. var queryParam = queryJson.ToJObject();
  190. var strSql = new StringBuilder();
  191. strSql.Append(
  192. @"SELECT c.EmpNo,c.EmpName,d.Name as DepartmentName,c.identityno as IdentityCardNo, sum(round(A.OPFARE/100,2)) AS MONEY,count(EmpNo) as PayTimes,round(sum(round(A.OPFARE/100,2))/count(EmpNo),2) as PerMoney
  193. FROM M_REC_CONSUME@ykt A LEFT JOIN M_BASE_TERM@ykt B ON A.TERMID = B.TERMID
  194. left join ds_empinfo C on A.OUTID = C.mobile
  195. left join ds_department d on c.departmentid=d.id
  196. where 1=1 and EmpNo is not null ");
  197. if (!queryParam["EmpNo"].IsEmpty())
  198. {
  199. strSql.Append($" AND C.EmpNo like '%{queryParam["EmpNo"].ToString()}%' ");
  200. }
  201. if (!queryParam["EmpName"].IsEmpty())
  202. {
  203. strSql.Append($" AND C.EmpName like '%{queryParam["EmpName"].ToString()}%' ");
  204. }
  205. if (!queryParam["DepartmentId"].IsEmpty())
  206. {
  207. strSql.Append($" AND C.DepartmentId='{queryParam["DepartmentId"].ToString()}' ");
  208. }
  209. if (!queryParam["Months"].IsEmpty())
  210. {
  211. strSql.Append(" and extract(month from A.OPDT) in(" + queryParam["Months"].ToString() + ")");
  212. }
  213. strSql.Append("group by c.EmpNo,c.EmpName,d.DepartmentId,d.Name,c.identityno");
  214. return BaseRepository("TLMZYMIDDLEString").FindList<YKTStateMentEntity>(strSql.ToString(), pagination);
  215. }
  216. catch (Exception ex)
  217. {
  218. if (ex is ExceptionEx)
  219. {
  220. throw;
  221. }
  222. else
  223. {
  224. throw ExceptionEx.ThrowServiceException(ex);
  225. }
  226. }
  227. }
  228. #endregion
  229. }
  230. }