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.
 
 
 
 
 
 

348 lines
14 KiB

  1. using Dapper;
  2. using Learun.Application.Organization;
  3. using Learun.DataBase.Repository;
  4. using Learun.Util;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Linq;
  9. using System.Text;
  10. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  11. {
  12. /// <summary>
  13. /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
  14. /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
  15. /// 创 建:超级管理员
  16. /// 日 期:2022-07-18 17:52
  17. /// 描 述:疫情
  18. /// </summary>
  19. public class VaccinationInfoService : RepositoryFactory
  20. {
  21. #region 获取数据
  22. /// <summary>
  23. /// 获取页面显示列表数据
  24. /// </summary>
  25. /// <param name="pagination">查询参数</param>
  26. /// <param name="queryJson">查询参数</param>
  27. /// <returns></returns>
  28. public IEnumerable<VaccinationInfoEntity> GetPageList(Pagination pagination, string queryJson)
  29. {
  30. try
  31. {
  32. var strSql = new StringBuilder();
  33. strSql.Append("SELECT ");
  34. strSql.Append(@" t.Id,t.StuNo,t.StuName,s.IdentityCardNo as CardId,s.DeptNo,s.MajorNo,s.ClassNo,s.Mobile,t.VaccineType,
  35. t.VaccineAddress,t.FirstNeedle,t.SecondNeedle,t.ThirdNeedle,t.NotReason,t.Remark,t.CreateTime,t.CreateUser,t.LastTime,t.LastUser ");
  36. strSql.Append(" FROM VaccinationInfo t ");
  37. strSql.Append(" left join StuInfoBasic s on s.stuno=t.stuno ");
  38. strSql.Append(" left join ClassInfo c on s.classno = c.classno ");
  39. strSql.Append(" WHERE 1=1 ");
  40. var login = LoginUserInfo.Get();
  41. var queryParam = queryJson.ToJObject();
  42. // 虚拟参数
  43. var dp = new DynamicParameters(new { });
  44. var StuOrTeach = queryParam["StuOrTeach"].ToString();
  45. if (StuOrTeach == "0")
  46. {
  47. if (!queryParam["StuOrTeach"].IsEmpty())
  48. {
  49. dp.Add("StuOrTeach", queryParam["StuOrTeach"].ToString(), DbType.Int32);
  50. strSql.Append(" AND t.StuOrTeach = @StuOrTeach ");
  51. }
  52. if (!queryParam["StuNo"].IsEmpty())
  53. {
  54. dp.Add("StuNo", "%" + queryParam["StuNo"].ToString() + "%", DbType.String);
  55. strSql.Append(" AND t.StuNo Like @StuNo ");
  56. }
  57. if (!queryParam["StuName"].IsEmpty())
  58. {
  59. dp.Add("StuName", "%" + queryParam["StuName"].ToString() + "%", DbType.String);
  60. strSql.Append(" AND t.StuName Like @StuName ");
  61. }
  62. if (!queryParam["DeptNo"].IsEmpty())
  63. {
  64. dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
  65. strSql.Append(" AND t.DeptNo = @DeptNo ");
  66. }
  67. if (!queryParam["MajorNo"].IsEmpty())
  68. {
  69. dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String);
  70. strSql.Append(" AND t.MajorNo = @MajorNo ");
  71. }
  72. if (!queryParam["ClassNo"].IsEmpty())
  73. {
  74. dp.Add("ClassNo", queryParam["ClassNo"].ToString(), DbType.String);
  75. strSql.Append(" AND t.ClassNo = @ClassNo ");
  76. }
  77. if (!queryParam["CardId"].IsEmpty())
  78. {
  79. dp.Add("CardId", "%" + queryParam["CardId"].ToString() + "%", DbType.String);
  80. strSql.Append(" AND t.CardId like @CardId ");
  81. }
  82. if (!queryParam["VaccineType"].IsEmpty())
  83. {
  84. dp.Add("VaccineType", "%" + queryParam["VaccineType"].ToString() + "%", DbType.String);
  85. strSql.Append(" AND t.VaccineType like @VaccineType ");
  86. }
  87. if (!queryParam["Mobile"].IsEmpty())
  88. {
  89. dp.Add("Mobile", "%" + queryParam["Mobile"].ToString() + "%", DbType.String);
  90. strSql.Append(" AND t.Mobile like @Mobile ");
  91. }
  92. //if (login.Description == "教师")
  93. //{
  94. // strSql.Append(" AND c.ClassDiredctorno = '" + login.account + "' ");
  95. //}
  96. //班主任查看自己班的学生数据
  97. var roleid = this.BaseRepository().FindEntity<RoleEntity>(a => a.F_FullName == "班主任")?.F_RoleId;
  98. if (!string.IsNullOrEmpty(roleid))
  99. {
  100. if (login.roleIds.Contains(roleid))
  101. {
  102. strSql.Append(" AND c.ClassDiredctorno = '" + login.account + "' ");
  103. }
  104. }
  105. }
  106. var data = this.BaseRepository("CollegeMIS").FindList<VaccinationInfoEntity>(strSql.ToString(), dp, pagination);
  107. if (data.Count() > 0 && StuOrTeach == "0")
  108. {
  109. foreach (var item in data)
  110. {
  111. if (!string.IsNullOrEmpty(item.CardId))
  112. {
  113. item.Age = DateTime.Now.Year - Convert.ToInt32(item.CardId.ToString().Substring(6, 4));
  114. }
  115. }
  116. }
  117. return data;
  118. }
  119. catch (Exception ex)
  120. {
  121. if (ex is ExceptionEx)
  122. {
  123. throw;
  124. }
  125. else
  126. {
  127. throw ExceptionEx.ThrowServiceException(ex);
  128. }
  129. }
  130. }
  131. /// <summary>
  132. /// 获取页面显示列表数据(老师)
  133. /// </summary>
  134. /// <param name="pagination">查询参数</param>
  135. /// <param name="queryJson">查询参数</param>
  136. /// <returns></returns>
  137. public IEnumerable<VaccinationInfoEntity> GetPageListForTeacher(Pagination pagination, string queryJson)
  138. {
  139. try
  140. {
  141. var strSql = new StringBuilder();
  142. strSql.Append("SELECT ");
  143. strSql.Append(@" t.Id,t.EmpNo,s.EmpName,s.IdentityCardNo as CardId,s.F_DepartmentId as DepartmentId,s.Mobile,s.IsInActiveStatus,t.VaccineType,
  144. t.VaccineAddress,t.FirstNeedle,t.SecondNeedle,t.ThirdNeedle,t.NotReason,t.Remark,t.CreateTime,t.CreateUser,t.LastTime,t.LastUser ");
  145. strSql.Append(" FROM VaccinationInfo t ");
  146. strSql.Append(" left join empinfo s on s.empno=t.empno ");
  147. strSql.Append(" WHERE 1=1 ");
  148. var login = LoginUserInfo.Get();
  149. var queryParam = queryJson.ToJObject();
  150. // 虚拟参数
  151. var dp = new DynamicParameters(new { });
  152. var StuOrTeach = queryParam["StuOrTeach"].ToString();
  153. if (!queryParam["StuOrTeach"].IsEmpty())
  154. {
  155. dp.Add("StuOrTeach", queryParam["StuOrTeach"].ToString(), DbType.Int32);
  156. strSql.Append(" AND t.StuOrTeach = @StuOrTeach ");
  157. }
  158. if (!queryParam["VaccineType"].IsEmpty())
  159. {
  160. dp.Add("VaccineType", queryParam["VaccineType"].ToString(), DbType.String);
  161. strSql.Append(" AND t.VaccineType =@VaccineType ");
  162. }
  163. if (!queryParam["DepartmentId"].IsEmpty())
  164. {
  165. dp.Add("DepartmentId", queryParam["DepartmentId"].ToString(), DbType.String);
  166. strSql.Append(" AND t.DepartmentId = @DepartmentId ");
  167. }
  168. if (!queryParam["CardId"].IsEmpty())
  169. {
  170. dp.Add("CardId", "%" + queryParam["CardId"].ToString() + "%", DbType.String);
  171. strSql.Append(" AND t.CardId like @CardId ");
  172. }
  173. if (!queryParam["Mobile"].IsEmpty())
  174. {
  175. dp.Add("Mobile", "%" + queryParam["Mobile"].ToString() + "%", DbType.String);
  176. strSql.Append(" AND t.Mobile like @Mobile ");
  177. }
  178. if (!queryParam["EmpNo"].IsEmpty())
  179. {
  180. dp.Add("EmpNo", "%" + queryParam["EmpNo"].ToString() + "%", DbType.String);
  181. strSql.Append(" AND t.EmpNo Like @EmpNo ");
  182. }
  183. if (!queryParam["EmpName"].IsEmpty())
  184. {
  185. dp.Add("EmpName", "%" + queryParam["EmpName"].ToString() + "%", DbType.String);
  186. strSql.Append(" AND t.EmpName Like @EmpName ");
  187. }
  188. var data = this.BaseRepository("CollegeMIS").FindList<VaccinationInfoEntity>(strSql.ToString(), dp, pagination);
  189. if (data.Count() > 0 && StuOrTeach == "0")
  190. {
  191. foreach (var item in data)
  192. {
  193. if (!string.IsNullOrEmpty(item.CardId))
  194. {
  195. item.Age = DateTime.Now.Year - Convert.ToInt32(item.CardId.ToString().Substring(6, 4));
  196. }
  197. }
  198. }
  199. return data;
  200. }
  201. catch (Exception ex)
  202. {
  203. if (ex is ExceptionEx)
  204. {
  205. throw;
  206. }
  207. else
  208. {
  209. throw ExceptionEx.ThrowServiceException(ex);
  210. }
  211. }
  212. }
  213. /// <summary>
  214. /// 获取VaccinationInfo表实体数据
  215. /// </summary>
  216. /// <param name="keyValue">主键</param>
  217. /// <returns></returns>
  218. public VaccinationInfoEntity GetVaccinationInfoEntity(string keyValue)
  219. {
  220. try
  221. {
  222. return this.BaseRepository("CollegeMIS").FindEntity<VaccinationInfoEntity>(keyValue);
  223. }
  224. catch (Exception ex)
  225. {
  226. if (ex is ExceptionEx)
  227. {
  228. throw;
  229. }
  230. else
  231. {
  232. throw ExceptionEx.ThrowServiceException(ex);
  233. }
  234. }
  235. }
  236. #endregion
  237. #region 提交数据
  238. /// <summary>
  239. /// 删除实体数据
  240. /// </summary>
  241. /// <param name="keyValue">主键</param>
  242. public void DeleteEntity(string keyValue)
  243. {
  244. try
  245. {
  246. this.BaseRepository("CollegeMIS").Delete<VaccinationInfoEntity>(t => t.Id == keyValue);
  247. }
  248. catch (Exception ex)
  249. {
  250. if (ex is ExceptionEx)
  251. {
  252. throw;
  253. }
  254. else
  255. {
  256. throw ExceptionEx.ThrowServiceException(ex);
  257. }
  258. }
  259. }
  260. /// <summary>
  261. /// 保存实体数据(新增、修改)
  262. /// </summary>
  263. /// <param name="keyValue">主键</param>
  264. /// <param name="entity">实体</param>
  265. public void SaveEntity(string keyValue, VaccinationInfoEntity entity)
  266. {
  267. try
  268. {
  269. var logininfo = LoginUserInfo.Get();
  270. if (!string.IsNullOrEmpty(keyValue))
  271. {
  272. entity.LastTime = DateTime.Now;
  273. entity.LastUser = logininfo.userId;
  274. entity.Modify(keyValue);
  275. this.BaseRepository("CollegeMIS").Update(entity);
  276. }
  277. else
  278. {
  279. entity.Create();
  280. this.BaseRepository("CollegeMIS").Insert(entity);
  281. }
  282. }
  283. catch (Exception ex)
  284. {
  285. if (ex is ExceptionEx)
  286. {
  287. throw;
  288. }
  289. else
  290. {
  291. throw ExceptionEx.ThrowServiceException(ex);
  292. }
  293. }
  294. }
  295. #endregion
  296. /// <summary>
  297. /// 生成实体数据
  298. /// </summary>
  299. /// <param name="keyValue">主键</param>
  300. public void CreateEntity(string userId, string Description)
  301. {
  302. try
  303. {
  304. if (Description == "0")
  305. {
  306. this.BaseRepository("CollegeMIS").ExecuteBySql(@"insert into VaccinationInfo(
  307. Id, StuOrTeach, stuno, stuname, CardId, deptno, majorno, classno, Mobile, birthday, CreateTime, CreateUser)
  308. select NEWID(),'" + Description + "',stuno,stuname,IdentityCardNo,DeptNo,MajorNo,ClassNo,Mobile,birthday,'"
  309. + DateTime.Now + "','" + userId
  310. + "' from StuInfoBasic where CheckMark = '1' and stuno not in (select stuno from VaccinationInfo where stuno is not null)");
  311. }
  312. else
  313. {
  314. this.BaseRepository("CollegeMIS").ExecuteBySql(@"insert into VaccinationInfo(
  315. Id,StuOrTeach,CardId,empno,empname,DepartmentId,Mobile,birthday,CreateTime,CreateUser)
  316. select NEWID(),'" + Description + "',IdentityCardNo,EmpNo,empname,F_DepartmentId,Mobile,birthday,'"
  317. + DateTime.Now + "','" + userId
  318. + "' from empinfo where CheckMark = '1' and EmpNo not in (select EmpNo from VaccinationInfo where EmpNo is not null)");
  319. }
  320. }
  321. catch (Exception ex)
  322. {
  323. if (ex is ExceptionEx)
  324. {
  325. throw;
  326. }
  327. else
  328. {
  329. throw ExceptionEx.ThrowServiceException(ex);
  330. }
  331. }
  332. }
  333. }
  334. }