using Dapper; using Learun.DataBase.Repository; using Learun.Util; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace Learun.Application.TwoDevelopment.EducationalAdministration { /// /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 /// 创 建:超级管理员 /// 日 期:2021-11-29 11:43 /// 描 述:开课计划 /// public class ClassPlanService : RepositoryFactory { #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.*,l.LessonTypeId "); strSql.Append(" FROM OpenLessonPlan t "); strSql.Append(" left join lessoninfo l on t.lessonno=l.lessonno "); strSql.Append(" WHERE 1=1 and l.CheckMark=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["F_SchoolId"].IsEmpty()) { dp.Add("F_SchoolId", queryParam["F_SchoolId"].ToString(), DbType.String); strSql.Append(" AND t.F_SchoolId = @F_SchoolId "); } if (!queryParam["AcademicYearNo"].IsEmpty()) { dp.Add("AcademicYearNo", queryParam["AcademicYearNo"].ToString(), DbType.String); strSql.Append(" AND t.AcademicYearNo = @AcademicYearNo "); } if (!queryParam["Semester"].IsEmpty()) { dp.Add("Semester", queryParam["Semester"].ToString(), DbType.String); strSql.Append(" AND t.Semester = @Semester "); } if (!queryParam["DeptNo"].IsEmpty()) { dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); strSql.Append(" AND t.DeptNo = @DeptNo "); } if (!queryParam["MajorNo"].IsEmpty()) { dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); strSql.Append(" AND t.MajorNo = @MajorNo "); } if (!queryParam["Grade"].IsEmpty()) { dp.Add("Grade", "%" + queryParam["Grade"].ToString() + "%", DbType.String); strSql.Append(" AND t.Grade Like @Grade "); } if (!queryParam["LessonNo"].IsEmpty()) { dp.Add("LessonNo", queryParam["LessonNo"].ToString(), DbType.String); strSql.Append(" AND t.LessonNo = @LessonNo "); } return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 全校开课计划 /// /// /// /// public IEnumerable GetPageListForSchool(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.AcademicYearNo,t.Semester,t.Grade,t.LessonNo,t.LessonName,l.LessonTypeId,t.TeachClassNum,t.WeekLessonHour,t.WeekHourClassroom,t.PracticeHour,t.StartWeek,t.StudyScore,t.Remark,t.MakeDate "); strSql.Append(" FROM OpenLessonPlan t "); strSql.Append(" left join lessoninfo l on t.lessonno=l.lessonno "); strSql.Append(" where l.CheckMark=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); if (!queryParam["F_SchoolId"].IsEmpty()) { dp.Add("F_SchoolId", queryParam["F_SchoolId"].ToString(), DbType.String); strSql.Append(" AND t.F_SchoolId = @F_SchoolId "); } if (!queryParam["AcademicYearNo"].IsEmpty()) { dp.Add("AcademicYearNo", queryParam["AcademicYearNo"].ToString(), DbType.String); strSql.Append(" AND t.AcademicYearNo = @AcademicYearNo "); } if (!queryParam["Semester"].IsEmpty()) { dp.Add("Semester", queryParam["Semester"].ToString(), DbType.String); strSql.Append(" AND t.Semester = @Semester "); } if (!queryParam["DeptNo"].IsEmpty()) { dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String); strSql.Append(" AND t.DeptNo = @DeptNo "); } if (!queryParam["MajorNo"].IsEmpty()) { dp.Add("MajorNo", queryParam["MajorNo"].ToString(), DbType.String); strSql.Append(" AND t.MajorNo = @MajorNo "); } if (!queryParam["Grade"].IsEmpty()) { dp.Add("Grade", "%" + queryParam["Grade"].ToString() + "%", DbType.String); strSql.Append(" AND t.Grade Like @Grade "); } if (!queryParam["LessonNo"].IsEmpty()) { dp.Add("LessonNo", queryParam["LessonNo"].ToString(), DbType.String); strSql.Append(" AND t.LessonNo = @LessonNo "); } strSql.Append(" group by t.AcademicYearNo,t.Semester,t.Grade,t.LessonNo,t.LessonName,l.LessonTypeId,t.State, t.TeachClassNum, t.WeekLessonHour, t.WeekHourClassroom, t.PracticeHour, t.StartWeek, t.StudyScore, t.Remark,t.MakeDate "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取OpenLessonPlan表实体数据 /// /// 主键 /// public OpenLessonPlanEntity GetClassPlanEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(keyValue.ToInt()); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 提交数据 /// /// 删除实体数据 /// /// 主键 public void DeleteEntity(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyvalue = keyValue.Split(','); foreach (var items in keyvalue) { var OpList = this.BaseRepository("CollegeMIS").FindEntity(t => t.ID.ToString() == items); if (OpList != null) { var TeachList = this.BaseRepository("CollegeMIS").FindList( x => x.DeptNo == OpList.DeptNo && x.MajorNo == OpList.MajorNo && x.Grade == OpList.Grade && x.Semester == OpList.Semester && x.LessonNo == OpList.LessonNo && x.AcademicYearNo == OpList.AcademicYearNo ).ToList(); List StrTeach = null; if (TeachList.Count > 0) { StrTeach = TeachList.Select(x => x.TeachClassNo).ToList(); if (StrTeach.Count() > 0) { var LessonList = this.BaseRepository("CollegeMIS").FindList( y => y.DeptNo == OpList.DeptNo && y.MajorNo == OpList.MajorNo && y.Grade == OpList.Grade && y.Semester == OpList.Semester && y.LessonNo == OpList.LessonNo && y.AcademicYearNo == OpList.AcademicYearNo && StrTeach.Contains(y.ClassNo) ); foreach (var item in LessonList) { db.Delete(m => m.SelectId == Convert.ToInt32(item.SelectId)); } foreach (var item in TeachList) { db.Delete(m => m.ID == item.ID); } } } } db.Delete(m => m.ID.ToString() == items); } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// /// 主键 /// 实体 public void SaveEntity(string keyValue, OpenLessonPlanEntity entity) { try { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); this.BaseRepository("CollegeMIS").Update(entity); } else { entity.Create(); this.BaseRepository("CollegeMIS").Insert(entity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 扩展数据 /// /// 去重 /// /// 主键 /// 校区 /// 学年 /// 学期 /// 系部 /// 专业 /// 年级 /// 课程 /// public OpenLessonPlanEntity GetRepetitions(string School, string Year, string Semester, string Dept, string Major, string Grade, string Lesson) { try { return this.BaseRepository("CollegeMIS").FindEntity( x => x.F_SchoolId == School && x.AcademicYearNo == Year && x.Semester == Semester && x.DeptNo == Dept && x.MajorNo == Major && x.Grade == Grade && x.LessonNo == Lesson ); } catch (Exception e) { Console.WriteLine(e); throw; } } public void DelRelation(string keyValue) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyvalue = Convert.ToInt32(keyValue); var OpList = this.BaseRepository("CollegeMIS").FindEntity(t => t.ID == keyvalue); if (OpList != null) { var TeachList = this.BaseRepository("CollegeMIS").FindList( x => x.DeptNo == OpList.DeptNo && x.MajorNo == OpList.MajorNo && x.Grade == OpList.Grade && x.Semester == OpList.Semester && x.LessonNo == OpList.LessonNo && x.AcademicYearNo == OpList.AcademicYearNo ).ToList(); List StrTeach = null; if (TeachList.Count > 0) { StrTeach = TeachList.Select(x => x.TeachClassNo).ToList(); if (StrTeach.Count > 0) { var LessonList = this.BaseRepository("CollegeMIS").FindList( y => y.DeptNo == OpList.DeptNo && y.MajorNo == OpList.MajorNo && y.Grade == OpList.Grade && y.Semester == OpList.Semester && y.LessonNo == OpList.LessonNo && y.AcademicYearNo == OpList.AcademicYearNo && StrTeach.Contains(y.ClassNo) ); foreach (var item in LessonList) { db.Delete(m => m.SelectId == Convert.ToInt32(item.SelectId)); } foreach (var item in TeachList) { db.Delete(m => m.ID == item.ID); } } } } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取OpenLessonPlan表实体数据 /// 主键 /// /// public List GetListById(string keyValue) { try { var id = keyValue.Split(','); return this.BaseRepository("CollegeMIS") .FindList(x => id.Contains(x.ID.ToString())).ToList(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public void SaveEntityList(string keyValue, List entity) { var db = this.BaseRepository("CollegeMIS").BeginTrans(); try { var keyvalue = keyValue.Split(','); foreach (var item in keyvalue) { var entityList = this.BaseRepository("CollegeMIS").FindEntity(x => x.ID.ToString() == item); entityList.State = 1; db.Update(entityList); } db.Commit(); } catch (Exception ex) { db.Rollback(); if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion } }