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.
 
 
 
 
 
 

382 lines
15 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.Text;
  8. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  9. {
  10. /// <summary>
  11. /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
  12. /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
  13. /// 创 建:超级管理员
  14. /// 日 期:2023-03-13 10:37
  15. /// 描 述:定制功能助学金
  16. /// </summary>
  17. public class StuFellowshipService : RepositoryFactory
  18. {
  19. #region 获取数据
  20. /// <summary>
  21. /// 获取列表数据
  22. /// </summary>
  23. /// <param name="queryJson">条件参数</param>
  24. /// <returns></returns>
  25. public IEnumerable<StuFellowshipEntity> GetList(string queryJson)
  26. {
  27. try
  28. {
  29. //参考写法
  30. //var queryParam = queryJson.ToJObject();
  31. // 虚拟参数
  32. //var dp = new DynamicParameters(new { });
  33. //dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  34. var strSql = new StringBuilder();
  35. strSql.Append("SELECT t.*");
  36. strSql.Append(" FROM StuFellowship t ");
  37. var queryParam = queryJson.ToJObject();
  38. // 虚拟参数
  39. var dp = new DynamicParameters(new { });
  40. return this.BaseRepository("CollegeMIS").FindList<StuFellowshipEntity>(strSql.ToString(), dp);
  41. }
  42. catch (Exception ex)
  43. {
  44. if (ex is ExceptionEx)
  45. {
  46. throw;
  47. }
  48. else
  49. {
  50. throw ExceptionEx.ThrowServiceException(ex);
  51. }
  52. }
  53. }
  54. /// <summary>
  55. /// 获取列表分页数据
  56. /// </summary>
  57. /// <param name="pagination">分页参数</param>
  58. /// <param name="queryJson">条件参数</param>
  59. /// <returns></returns>
  60. public IEnumerable<StuFellowshipEntity> GetPageList(Pagination pagination, string queryJson)
  61. {
  62. try
  63. {
  64. var strSql = new StringBuilder();
  65. strSql.Append("SELECT t.*,s.StuName,s.DeptNo,s.ClassNo,s.IdentityCardNo,s.IdCardType,s.DepositBank as OpenBank,s.BankCard as OpenAccount ");
  66. strSql.Append(" FROM StuFellowship t ");
  67. strSql.Append(" left join StuInfoBasic s on t.StuNo=s.StuNo ");
  68. //资助调整为学生可以申请后,取消对发起人必须是班级辅导员的限制
  69. //strSql.Append(" left join ClassInfo c on t.CreateUserNo=c.ClassTutorNo and s.ClassNo=c.ClassNo ");
  70. strSql.Append(" left join ClassInfo c on s.ClassNo=c.ClassNo ");
  71. strSql.Append(" left join CdDept d on c.DeptNo=d.DeptNo ");
  72. strSql.Append(" where 1=1 ");
  73. var queryParam = queryJson.ToJObject();
  74. // 虚拟参数
  75. var dp = new DynamicParameters(new { });
  76. if (!queryParam["Types"].IsEmpty())//助学金类型:1国家助学金,2校级助学金
  77. {
  78. dp.Add("Types", queryParam["Types"].ToString(), DbType.String);
  79. strSql.Append(" AND t.Types=@Types ");
  80. }
  81. if (!queryParam["StuNo"].IsEmpty())
  82. {
  83. dp.Add("StuNo", "%" + queryParam["StuNo"].ToString() + "%", DbType.String);
  84. strSql.Append(" AND t.StuNo Like @StuNo ");
  85. }
  86. if (!queryParam["StuName"].IsEmpty())
  87. {
  88. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  89. strSql.Append(" AND s.StuName Like @StuName ");
  90. }
  91. if (!queryParam["DeptNo"].IsEmpty())
  92. {
  93. dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
  94. strSql.Append(" AND s.DeptNo=@DeptNo ");
  95. }
  96. if (!queryParam["ClassNo"].IsEmpty())
  97. {
  98. dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
  99. strSql.Append(" AND s.ClassNo=@ClassNo ");
  100. }
  101. if (!queryParam["IdentityCardNo"].IsEmpty())
  102. {
  103. dp.Add("IdentityCardNo", "%" + queryParam["IdentityCardNo"].ToString() + "%", DbType.String);
  104. strSql.Append(" AND s.IdentityCardNo like @IdentityCardNo ");
  105. }
  106. if (!queryParam["SubsidizeType"].IsEmpty())
  107. {
  108. dp.Add("SubsidizeType", queryParam["SubsidizeType"].ToString(), DbType.String);
  109. strSql.Append(" AND t.SubsidizeType=@SubsidizeType ");
  110. }
  111. if (!queryParam["OpenBankNo"].IsEmpty())
  112. {
  113. dp.Add("OpenBankNo", "%" + queryParam["OpenBankNo"].ToString() + "%", DbType.String);
  114. strSql.Append(" AND t.OpenBankNo Like @OpenBankNo ");
  115. }
  116. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  117. {
  118. dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  119. dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
  120. strSql.Append(" AND ( t.ApplyDate >= @startTime AND t.ApplyDate <= @endTime ) ");
  121. }
  122. if (!queryParam["StartTimeRelease"].IsEmpty() && !queryParam["EndTimeRelease"].IsEmpty())
  123. {
  124. dp.Add("StartTimeRelease", queryParam["StartTimeRelease"].ToDate(), DbType.DateTime);
  125. dp.Add("EndTimeRelease", queryParam["EndTimeRelease"].ToDate(), DbType.DateTime);
  126. strSql.Append(" AND ( t.ReleaseDate >= @StartTimeRelease AND t.ReleaseDate <= @EndTimeRelease ) ");
  127. }
  128. if (!queryParam["Step"].IsEmpty() && queryParam["Step"].ToString() == "2")//第二步:二级学院审核
  129. {
  130. //不查看状态为草稿的记录
  131. strSql.Append(" AND t.Status > 0 ");
  132. //二级学院审核专员==系部的资助审核人==登录用户,系统管理员除外
  133. if (LoginUserInfo.Get().account.ToLower() != "system")
  134. {
  135. strSql.Append($" and d.DeptSubsidizer='{LoginUserInfo.Get().account}' ");
  136. }
  137. }
  138. if (!queryParam["Step"].IsEmpty() && queryParam["Step"].ToString() == "3")//第三步:学工部审核
  139. {
  140. //不查看状态为草稿的记录
  141. strSql.Append(" AND t.Status > 1 ");
  142. }
  143. if (!queryParam["Status"].IsEmpty())
  144. {
  145. dp.Add("Status", queryParam["Status"].ToString(), DbType.String);
  146. strSql.Append(" AND t.Status = @Status ");
  147. }
  148. if (!queryParam["CreateUserNo"].IsEmpty())
  149. {
  150. dp.Add("CreateUserNo", queryParam["CreateUserNo"].ToString(), DbType.String);
  151. strSql.Append(" AND t.CreateUserNo = @CreateUserNo ");
  152. }
  153. return this.BaseRepository("CollegeMIS").FindList<StuFellowshipEntity>(strSql.ToString(), dp, pagination);
  154. }
  155. catch (Exception ex)
  156. {
  157. if (ex is ExceptionEx)
  158. {
  159. throw;
  160. }
  161. else
  162. {
  163. throw ExceptionEx.ThrowServiceException(ex);
  164. }
  165. }
  166. }
  167. /// <summary>
  168. /// 获取实体数据
  169. /// </summary>
  170. /// <param name="keyValue">主键</param>
  171. /// <returns></returns>
  172. public StuFellowshipEntity GetEntity(string keyValue)
  173. {
  174. try
  175. {
  176. var strsql = $"select t.*,s.StuName,s.DeptNo,s.ClassNo,s.IdentityCardNo,s.IdCardType,s.DepositBank as OpenBank,s.BankCard as OpenAccount from StuFellowship t left join StuInfoBasic s on t.StuNo=s.StuNo where 1=1 and t.ID='{keyValue}' ";
  177. return this.BaseRepository("CollegeMIS").FindEntity<StuFellowshipEntity>(strsql, null);
  178. }
  179. catch (Exception ex)
  180. {
  181. if (ex is ExceptionEx)
  182. {
  183. throw;
  184. }
  185. else
  186. {
  187. throw ExceptionEx.ThrowServiceException(ex);
  188. }
  189. }
  190. }
  191. /// <summary>
  192. /// 获取统计列表数据
  193. /// </summary>
  194. /// <param name="queryJson">条件参数</param>
  195. /// <returns></returns>
  196. public IEnumerable<StuFellowshipEntity> GetStatisticList(string queryJson)
  197. {
  198. try
  199. {
  200. //参考写法
  201. var queryParam = queryJson.ToJObject();
  202. // 虚拟参数
  203. var dp = new DynamicParameters(new { });
  204. var strSql = new StringBuilder();
  205. strSql.Append("select bb.* from ( ");
  206. strSql.Append("select t.Types,YEAR(t.ApplyDate) as YearName,count(t.ID) as TotalCount,SUM(t.FinalPayingAmount) as TotalAmount ");
  207. strSql.Append("from StuFellowship t where 1=1 and t.Status='3' ");
  208. if (!queryParam["ApplyDate"].IsEmpty())//年份
  209. {
  210. dp.Add("ApplyDate", '%'+queryParam["ApplyDate"].ToString()+'%', DbType.String);
  211. strSql.Append(" AND t.ApplyDate like @ApplyDate ");
  212. }
  213. strSql.Append("group by t.Types,YEAR(t.ApplyDate) union ");
  214. strSql.Append("select '3' as Types,YEAR(t.ApplyDate) as YearName,count(t.Id) as TotalCount,SUM(t.ActualAmount) as TotalAmount ");
  215. strSql.Append("from SchoolLevelScholarship t where 1=1 and t.Status='3' ");
  216. if (!queryParam["ApplyDate"].IsEmpty())//年份
  217. {
  218. dp.Add("ApplyDate2", '%' + queryParam["ApplyDate"].ToString() + '%', DbType.String);
  219. strSql.Append(" AND t.ApplyDate like @ApplyDate2 ");
  220. }
  221. strSql.Append("group by YEAR(t.ApplyDate) ");
  222. strSql.Append(")bb where 1=1 ");
  223. if (!queryParam["Types"].IsEmpty())//1国家助学金,2校级助学金,3校级奖学金
  224. {
  225. dp.Add("Types", queryParam["Types"].ToString(), DbType.String);
  226. strSql.Append(" AND bb.Types=@Types ");
  227. }
  228. return this.BaseRepository("CollegeMIS").FindList<StuFellowshipEntity>(strSql.ToString(), dp);
  229. }
  230. catch (Exception ex)
  231. {
  232. if (ex is ExceptionEx)
  233. {
  234. throw;
  235. }
  236. else
  237. {
  238. throw ExceptionEx.ThrowServiceException(ex);
  239. }
  240. }
  241. }
  242. #endregion
  243. #region 提交数据
  244. /// <summary>
  245. /// 删除实体数据
  246. /// </summary>
  247. /// <param name="keyValue">主键</param>
  248. public void DeleteEntity(string keyValue)
  249. {
  250. try
  251. {
  252. this.BaseRepository("CollegeMIS").Delete<StuFellowshipEntity>(t => t.ID == keyValue);
  253. }
  254. catch (Exception ex)
  255. {
  256. if (ex is ExceptionEx)
  257. {
  258. throw;
  259. }
  260. else
  261. {
  262. throw ExceptionEx.ThrowServiceException(ex);
  263. }
  264. }
  265. }
  266. /// <summary>
  267. /// 保存实体数据(新增、修改)
  268. /// <param name="keyValue">主键</param>
  269. /// <param name="entity">实体</param>
  270. /// </summary>
  271. public void SaveEntity(string keyValue, StuFellowshipEntity entity)
  272. {
  273. try
  274. {
  275. if (!string.IsNullOrEmpty(keyValue))
  276. {
  277. entity.Modify(keyValue);
  278. this.BaseRepository("CollegeMIS").Update(entity);
  279. }
  280. else
  281. {
  282. entity.Create();
  283. this.BaseRepository("CollegeMIS").Insert(entity);
  284. }
  285. }
  286. catch (Exception ex)
  287. {
  288. if (ex is ExceptionEx)
  289. {
  290. throw;
  291. }
  292. else
  293. {
  294. throw ExceptionEx.ThrowServiceException(ex);
  295. }
  296. }
  297. }
  298. /// <summary>
  299. /// 提交
  300. /// </summary>
  301. /// <param name="keyValue">主键</param>
  302. public void DoSubmit(string keyValue, string status, string step)
  303. {
  304. try
  305. {
  306. if (step == "1")//第一步:提交二级学院审核
  307. {
  308. this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuFellowship set SubmitTime='{DateTime.Now}',SubmitUserId='{LoginUserInfo.Get().userId}',Status='{status}' where Id='{keyValue}' ");
  309. }
  310. else if (step == "2")//第二步:提交学工部审核
  311. {
  312. this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuFellowship set FirstCheckTime='{DateTime.Now}',FirstCheckUserId='{LoginUserInfo.Get().userId}',Status='{status}' where Id='{keyValue}' ");
  313. }
  314. else if (step == "3")//第三步:归档
  315. {
  316. this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuFellowship set SecondCheckTime='{DateTime.Now}',SecondCheckUserId='{LoginUserInfo.Get().userId}',Status='{status}' where Id='{keyValue}' ");
  317. }
  318. }
  319. catch (Exception ex)
  320. {
  321. if (ex is ExceptionEx)
  322. {
  323. throw;
  324. }
  325. else
  326. {
  327. throw ExceptionEx.ThrowServiceException(ex);
  328. }
  329. }
  330. }
  331. /// <summary>
  332. /// 退回
  333. /// </summary>
  334. /// <param name="keyValue">主键</param>
  335. public void DoBack(string keyValue, string status, string step)
  336. {
  337. try
  338. {
  339. if (step == "2")//第二步:退回辅导员
  340. {
  341. this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuFellowship set FirstCheckTime='{DateTime.Now}',FirstCheckUserId='{LoginUserInfo.Get().userId}',Status='{status}' where Id='{keyValue}' ");
  342. }
  343. else if (step == "3")//第三步:退回辅导员、退回二级学院、取消归档
  344. {
  345. this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuFellowship set SecondCheckTime='{DateTime.Now}',SecondCheckUserId='{LoginUserInfo.Get().userId}',Status='{status}' where Id='{keyValue}' ");
  346. }
  347. }
  348. catch (Exception ex)
  349. {
  350. if (ex is ExceptionEx)
  351. {
  352. throw;
  353. }
  354. else
  355. {
  356. throw ExceptionEx.ThrowServiceException(ex);
  357. }
  358. }
  359. }
  360. #endregion
  361. }
  362. }