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.
 
 
 
 
 
 

271 line
8.9 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. /// 日 期:2021-10-14 10:09
  16. /// 描 述:教学计划
  17. /// </summary>
  18. public class TeachingPlanService : 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<TeachingPlanEntity> GetPageList(Pagination pagination, string queryJson)
  28. {
  29. try
  30. {
  31. var strSql = new StringBuilder();
  32. strSql.Append("SELECT ");
  33. strSql.Append(@"
  34. t.Id,
  35. t.Name,
  36. t.Grade,
  37. t.Major,
  38. t.SchoolSystem,
  39. t.Credit,
  40. t.Enabled,
  41. t.Remark
  42. ");
  43. strSql.Append(" FROM TeachingPlan t ");
  44. strSql.Append(" WHERE 1=1 ");
  45. var queryParam = queryJson.ToJObject();
  46. // 虚拟参数
  47. var dp = new DynamicParameters(new { });
  48. if (!queryParam["Name"].IsEmpty())
  49. {
  50. dp.Add("Name", "%" + queryParam["Name"].ToString() + "%", DbType.String);
  51. strSql.Append(" AND t.Name Like @Name ");
  52. }
  53. return this.BaseRepository("CollegeMIS").FindList<TeachingPlanEntity>(strSql.ToString(), dp, pagination);
  54. }
  55. catch (Exception ex)
  56. {
  57. if (ex is ExceptionEx)
  58. {
  59. throw;
  60. }
  61. else
  62. {
  63. throw ExceptionEx.ThrowServiceException(ex);
  64. }
  65. }
  66. }
  67. public IEnumerable<TeachingPlanEntity> GetPageListForManage(Pagination pagination, string queryJson)
  68. {
  69. try
  70. {
  71. string sql = "select * from TeachingPlan ";
  72. var dp = new DynamicParameters(new { });
  73. var list = this.BaseRepository("CollegeMIS").FindList<TeachingPlanEntity>(sql, dp, pagination);
  74. string tsql = @"select t.*,c.LessonTypeName from
  75. (select t.Major,b.LessonTypeId,count(1) as num from TeachingPlan t
  76. join TeachingPlanItem a on t.Id=a.TeachingPlanId
  77. join LessonInfo b on a.LessonNo=b.LessonNo
  78. group by b.LessonTypeId,t.Major) t
  79. join CdLessonType c on t.LessonTypeId=c.ltid ";
  80. var lessonList = this.BaseRepository("CollegeMIS").FindList<LessonData>(tsql);
  81. foreach (var item in list)
  82. {
  83. var lessonData = lessonList.Where(x => x.Major == item.Major);
  84. foreach (var lesson in lessonData)
  85. {
  86. if (lesson.LessonTypeName.Contains("专业课"))
  87. {
  88. item.Zyknum = lesson.num;
  89. }
  90. else if (lesson.LessonTypeName.Contains("公开课"))
  91. {
  92. item.Ggknum = lesson.num;
  93. }
  94. }
  95. }
  96. return list;
  97. }
  98. catch (Exception ex)
  99. {
  100. if (ex is ExceptionEx)
  101. {
  102. throw;
  103. }
  104. else
  105. {
  106. throw ExceptionEx.ThrowServiceException(ex);
  107. }
  108. }
  109. }
  110. /// <summary>
  111. /// 获取TeachingPlan表实体数据
  112. /// </summary>
  113. /// <param name="keyValue">主键</param>
  114. /// <returns></returns>
  115. public TeachingPlanEntity GetTeachingPlanEntity(string keyValue)
  116. {
  117. try
  118. {
  119. return this.BaseRepository("CollegeMIS").FindEntity<TeachingPlanEntity>(keyValue);
  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. /// <summary>
  134. /// 根据学年获取教学计划
  135. /// </summary>
  136. /// <param name="AcademicYearNo"></param>
  137. /// <param name="Semester"></param>
  138. /// <returns></returns>
  139. public List<TeachingPlanRes> GetTeachingPlan(string AcademicYearNo, string Semester)
  140. {
  141. try
  142. {
  143. var res = new List<TeachingPlanRes>();
  144. var list = new List<TeachingPlanEntity>();
  145. if (!string.IsNullOrEmpty(AcademicYearNo))
  146. {
  147. list = this.BaseRepository("CollegeMIS")
  148. .FindList<TeachingPlanEntity>(x => x.Grade == AcademicYearNo).ToList();
  149. }
  150. else
  151. {
  152. list = this.BaseRepository("CollegeMIS")
  153. .FindList<TeachingPlanEntity>().ToList();
  154. }
  155. foreach (var entity in list)
  156. {
  157. var data = new TeachingPlanRes();
  158. data.TeachingPlan = entity;
  159. data.TeachingPlanItem = this.BaseRepository("CollegeMIS")
  160. .FindList<TeachingPlanItemEntity>(x => x.TeachingPlanId == entity.Id);
  161. res.Add(data);
  162. }
  163. return res;
  164. }
  165. catch (Exception ex)
  166. {
  167. if (ex is ExceptionEx)
  168. {
  169. throw;
  170. }
  171. else
  172. {
  173. throw ExceptionEx.ThrowServiceException(ex);
  174. }
  175. }
  176. }
  177. #endregion
  178. #region 提交数据
  179. /// <summary>
  180. /// 删除实体数据
  181. /// </summary>
  182. /// <param name="keyValue">主键</param>
  183. public void DeleteEntity(string keyValue)
  184. {
  185. try
  186. {
  187. this.BaseRepository("CollegeMIS").Delete<TeachingPlanEntity>(t => t.Id == keyValue);
  188. }
  189. catch (Exception ex)
  190. {
  191. if (ex is ExceptionEx)
  192. {
  193. throw;
  194. }
  195. else
  196. {
  197. throw ExceptionEx.ThrowServiceException(ex);
  198. }
  199. }
  200. }
  201. /// <summary>
  202. /// 保存实体数据(新增、修改)
  203. /// </summary>
  204. /// <param name="keyValue">主键</param>
  205. /// <param name="entity">实体</param>
  206. public void SaveEntity(string keyValue, TeachingPlanEntity entity, List<TeachingPlanItemEntity> teachingPlanItemList)
  207. {
  208. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  209. try
  210. {
  211. if (!string.IsNullOrEmpty(keyValue))
  212. {
  213. entity.Modify(keyValue);
  214. db.Update(entity);
  215. //删除课程子表
  216. db.Delete<TeachingPlanItemEntity>(x => x.TeachingPlanId == entity.Id);
  217. foreach (var itemEntity in teachingPlanItemList)
  218. {
  219. itemEntity.TeachingPlanId = entity.Id;
  220. db.Insert(itemEntity);
  221. }
  222. }
  223. else
  224. {
  225. entity.Create();
  226. db.Insert(entity);
  227. //新增
  228. var lessonInfoList = db.FindList<LessonInfoEntity>(x => x.TeachMajorNo == entity.Major);
  229. foreach (var lessonInfo in lessonInfoList)
  230. {
  231. TeachingPlanItemEntity itemEntity = new TeachingPlanItemEntity();
  232. itemEntity.Create();
  233. itemEntity.TeachingPlanId = entity.Id;
  234. itemEntity.LessonNo = lessonInfo.LessonNo;
  235. itemEntity.LessonTime = lessonInfo.TotalStudyHour;
  236. db.Insert(itemEntity);
  237. }
  238. }
  239. db.Commit();
  240. }
  241. catch (Exception ex)
  242. {
  243. db.Rollback();
  244. if (ex is ExceptionEx)
  245. {
  246. throw;
  247. }
  248. else
  249. {
  250. throw ExceptionEx.ThrowServiceException(ex);
  251. }
  252. }
  253. }
  254. #endregion
  255. }
  256. }