using Dapper; using Learun.DataBase.Repository; using Learun.Util; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Linq; using System.Net.Http; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using Learun.Application.Base.SystemModule; using Learun.Application.Organization; using Newtonsoft.Json; using static Learun.Application.TwoDevelopment.EducationalAdministration.ArrangeExamTermService; namespace Learun.Application.TwoDevelopment.EducationalAdministration { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 /// Copyright (c) 2013-2018 北京泉江科技有限公司 /// 创 建:超级管理员 /// 日 期:2019-02-27 11:05 /// 描 述:排课 /// public class ArrangeLessonTermService : RepositoryFactory { private static readonly HttpClient Client; static ArrangeLessonTermService() { Client = new HttpClient(); } #region 构造函数和属性 private string fieldSql; public ArrangeLessonTermService() { fieldSql = @" t.ALTId, t.LessonDate, t.AcademicYearNo, t.Semester, t.DeptNo, t.MajorNo, t.LessonNo, t.LessonName, t.TeachClassNo, t.TeachClassSn, t.EmpNo, t.EmpName, t.LessonSortNo, t.StuSortNo, t.JoinLessonNum, t.RelatedClassNo, t.ClassroomNo, t.LessonTime, t.Remark, t.CheckMark, t.RecordMark "; } #endregion #region 获取数据 /// /// 获取列表数据 /// /// public IEnumerable GetList(string queryJson) { try { //参考写法 //var queryParam = queryJson.ToJObject(); // 虚拟参数 //var dp = new DynamicParameters(new { }); //dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(fieldSql); strSql.Append(" FROM ArrangeLessonTerm t "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString()); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } internal IEnumerable GetListByEmpNo(List empNos) { try { return this.BaseRepository("CollegeMIS").FindList(a => empNos.Contains(a.EmpNo)).ToList(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取列表分页数据 /// 分页参数 /// /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(fieldSql); strSql.Append(" FROM ArrangeLessonTerm t "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取实体数据 /// 主键 /// /// public ArrangeLessonTermEntity GetEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 提交数据 /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { try { this.BaseRepository("CollegeMIS").Delete(t => t.ALTId == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(string keyValue, ArrangeLessonTermEntity 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); } } } internal bool GetAny() { try { var semesterAndYear = Common.GetSemesterAndYear(); return this.BaseRepository("CollegeMIS").FindList(a => a.AcademicYearNo == semesterAndYear.AcademicYearShort && a.Semester == semesterAndYear.Semester).Any(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion /// /// 获取相关课程考勤的学生信息 /// /// /// /// /// /// /// public IEnumerable AttendanceStudents(Pagination pagination, string queryJson) { try { var queryParam = queryJson.ToJObject(); var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" a.[StuNo] ,a.[DeptNo] ,a.[MajorNo] ,a.[ClassNo] ,a.[StuName] ,a.[GenderNo] ,a.[AcademicYearNo] ,a.[Semester] ,a.[LessonNo] ,a.[LessonName] ,a.[TeachClassNo] ,a.[LessonSortNo] ,a.[Grade] ,a.[ConflictLessonNo] ,a.[EmpNo] ,a.[TeachPlanNo],b.ID as StuAttendanceNo,b.AttendOrNo,b.Sort,b.AttenCondition,b.AttenScore "); strSql.Append(" FROM StuSelectLessonList a left join StuAttendance b on a.AcademicYearNo=b.AcademicYearNo and a.StuNo=b.StuNo and a.Semester=b.Semester and a.EmpNo=b.EmpNo and a.LessonNo=b.LessonNo and a.TeachClassNo=b.TeachClassNo "); strSql.Append($" and b.LessonTime='{queryParam["lessonTime"]}'"); strSql.Append(" WHERE 1=1 "); strSql.Append($"and a.AcademicYearNo='{ queryParam["year"]}' and a.Semester='{queryParam["semester"]}' and a.EmpNo='{queryParam["empno"]}' and a.LessonNo='{queryParam["lessonNo"]}' and a.TeachClassNo='{queryParam["teachClassNo"]}' "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } private string strAcademicYear; private string strSemester; /// /// 同步排课系统数据 /// /// public async Task AsyncArrangeLessonData() { bool result = false; try { var apiData = await Client.GetStringAsync(Config.GetValue("ArrangeLessonAPI")); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); var dataList = data.entity.list; if (dataList.Any()) { var oldArrangeLessonTermList = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var insertDataList = new List(); var lessonData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var classData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); foreach (var item in dataList) { var classinfo = classData.FirstOrDefault(m => m.ClassNo == item.paike.clazzId); var insertData = new ArrangeLessonTermEntity { ALTId = Guid.NewGuid().ToString(), LessonDate = DateTime.Parse(item.times), AcademicYearNo = item.schoolYear, Semester = item.paike.semester, DeptNo = classinfo?.DeptNo, MajorNo = classinfo?.MajorNo, LessonNo = item.paike.curriculunId, LessonName = item.paike.curriculunName, TeachClassNo = item.paike.curriculunName + item.paike.clazzId, EmpNo = item.paike.teacherId, EmpName = item.paike.teacherName, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.paike.curriculunId)?.LessonSortNo, ClassroomNo = item.paike.classRoomId, LessonTime = item.paike.week + item.paike.section, CheckMark = "1", F_SchoolId = item.schoolId }; strAcademicYear = insertData.AcademicYearNo; strSemester = insertData.Semester; if (oldArrangeLessonTermList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime && m.F_SchoolId == insertData.F_SchoolId) == 0 && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime && m.F_SchoolId == insertData.F_SchoolId) == 0) { insertDataList.Add(insertData); } } var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList); //TeachClass数据处理 var arrangeLessonTermData = (await BaseRepository("CollegeMIS").FindListAsync(@"select AcademicYearNo,Semester,DeptNo,majorno,lessonno,replace(teachclassno,lessonname,'') as teachclassno,empno from [dbo].[ArrangeLessonTerm] where (AcademicYearNo = '" + strAcademicYear + "') and semester='" + strSemester + @"' group by AcademicYearNo,Semester,DeptNo,majorno,lessonno,replace(teachclassno,lessonname,'') ,empno ")).ToList(); var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync(@"SELECT * FROM TeachClass WHERE (AcademicYearNo = '" + strAcademicYear + "') and semester='" + strSemester + "' ")).ToList(); var insertTeachClassDataList = new List(); if (arrangeLessonTermData.Any()) { foreach (var altitem in arrangeLessonTermData) { var insertTeachClassData = new TeachClassEntity() { AcademicYearNo = altitem.AcademicYearNo, Semester = altitem.Semester, DeptNo = altitem.DeptNo, MajorNo = altitem.MajorNo, LessonNo = altitem.LessonNo, Grade = classData.FirstOrDefault(m => m.ClassNo == altitem.TeachClassNo)?.Grade, LessonSortNo = altitem.LessonSortNo, TeachClassNo = altitem.TeachClassNo, EmpNo = altitem.EmpNo, F_SchoolId = altitem.F_SchoolId }; //非空判断 if (TeachClassData.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo && m.Semester == insertTeachClassData.Semester && m.DeptNo == insertTeachClassData.DeptNo && m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo && m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo && m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo && m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0 && insertTeachClassDataList.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo && m.Semester == insertTeachClassData.Semester && m.DeptNo == insertTeachClassData.DeptNo && m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo && m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo && m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo && m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0) { insertTeachClassDataList.Add(insertTeachClassData); } } await BaseRepository("CollegeMIS").InsertAsync(insertTeachClassDataList); } //继续openlessonplan同步 await AsyncOpenLessonPlanData(); if (insertResult > 0) { result = true; } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } /// /// 同步专业开课计划数据,学生选课数据 /// /// public async Task AsyncOpenLessonPlanData() { bool result = false; try { var apiData = await Client.GetStringAsync(Config.GetValue("OpenLessonPlanAPI")); if (!string.IsNullOrEmpty(apiData)) { var openLessonPlanData = await BaseRepository("CollegeMIS").FindListAsync(); var data = JsonConvert.DeserializeObject(apiData); var dataList = data.entity.list; if (dataList.Any()) { var insertDataList = new List(); var majorData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var lessonData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); foreach (var item in dataList) { var insertData = new OpenLessonPlanEntity() { MakeDate = DateTime.Now, AcademicYearNo = item.schoolYear, Semester = item.semester.shangxia, DeptNo = majorData.Find(m => m.MajorNo == item.majorNumber).DeptNo, MajorNo = item.majorNumber, LessonNo = item.curriculumNumber, LessonName = item.curriculumName, PartCode = "", Grade = item.grade, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculumNumber)?.LessonSortNo, LessonSortDetailNo = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculumNumber)?.LessonSortDetailNo, StartWeek = 1, EndWeek = !string.IsNullOrEmpty(item.semester.zhouci) ? Convert.ToInt32(item.semester.zhouci) : 1, CheckStyleNo = "1", ScoreRecordStyleNo = "1", TeachDeptNo = majorData.Find(m => m.MajorNo == item.majorNumber).DeptNo, StudyScore = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculumNumber)?.StudyScore, AmendDate = DateTime.Now, ClassroomType = 1, ClassroomPracticeType = 99, CheckMarkDept = "1", CheckMark = "1", TestMark = 0, F_SchoolId = item.schoolId }; if (openLessonPlanData.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.LessonNo == insertData.LessonNo && m.Grade == insertData.Grade && m.LessonSortNo == insertData.LessonSortNo && m.LessonName == insertData.LessonName && m.F_SchoolId == insertData.F_SchoolId) == 0 && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.LessonNo == insertData.LessonNo && m.Grade == insertData.Grade && m.LessonSortNo == insertData.LessonSortNo && m.LessonName == insertData.LessonName && m.F_SchoolId == insertData.F_SchoolId) == 0) { insertDataList.Add(insertData); } } var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList); //学生选课数据 var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync(@"SELECT * FROM TeachClass WHERE (AcademicYearNo = '" + strAcademicYear + "') and semester='" + strSemester + "' ")).ToList(); var stuinfobasicData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var stuSelectLessonListEntityData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var insertStuSelectLessonListDataList = new List(); if (TeachClassData.Any()) { foreach (var itemteachclass in TeachClassData) { var classstulist = stuinfobasicData.Where(m => m.ClassNo == itemteachclass.TeachClassNo) .ToList(); foreach (var stu in classstulist) { var insertDatastuselect = new StuSelectLessonListEntity(); insertDatastuselect.NoticeBookNo = stu.NoticeNo; insertDatastuselect.StuNo = stu.StuNo; insertDatastuselect.DeptNo = stu.DeptNo; insertDatastuselect.ClassNo = stu.ClassNo; insertDatastuselect.MajorNo = stu.MajorNo; insertDatastuselect.StuName = stu.StuName; insertDatastuselect.GenderNo = stu.GenderNo != null && stu.GenderNo.Value ? "1" : "0"; insertDatastuselect.AcademicYearNo = itemteachclass.AcademicYearNo; insertDatastuselect.Semester = itemteachclass.Semester; insertDatastuselect.OpenLessonDeptNo = itemteachclass.DeptNo; insertDatastuselect.OpenLessonMajorNo = itemteachclass.MajorNo; insertDatastuselect.LessonNo = itemteachclass.LessonNo; insertDatastuselect.LessonName = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo)?.LessonName; insertDatastuselect.PartCode = ""; insertDatastuselect.OrdinaryScoreScale = 1; insertDatastuselect.TermInScoreScale = 1; insertDatastuselect.TermEndScoreScale = 1; insertDatastuselect.OtherScoreScale = 1; insertDatastuselect.TeachClassNo = stu.ClassNo; insertDatastuselect.LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo)?.LessonSortNo; insertDatastuselect.StuSortNo = "02"; insertDatastuselect.Grade = stu.Grade; insertDatastuselect.StudyScore = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).StudyScore == null ? 0 : lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).StudyScore; insertDatastuselect.TotalStudyHour = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).TotalStudyHour == null ? 0 : lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).TotalStudyHour; insertDatastuselect.IsInEffect = "1"; insertDatastuselect.EmpNo = itemteachclass.EmpNo; insertDatastuselect.IsPitchOn = "1"; insertDatastuselect.CheckMark = "0"; insertDatastuselect.InsertTime = DateTime.Now; insertDatastuselect.F_SchoolId = itemteachclass.F_SchoolId; if (stuSelectLessonListEntityData.Count(m => m.StuNo == insertDatastuselect.StuNo && m.AcademicYearNo == insertDatastuselect.AcademicYearNo && m.Semester == insertDatastuselect.Semester && m.DeptNo == insertDatastuselect.DeptNo && m.MajorNo == insertDatastuselect.MajorNo && m.LessonNo == insertDatastuselect.LessonNo && m.Grade == insertDatastuselect.Grade && m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo && m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo && m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo && m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0 && insertStuSelectLessonListDataList.Count(m => m.StuNo == insertDatastuselect.StuNo && m.AcademicYearNo == insertDatastuselect.AcademicYearNo && m.Semester == insertDatastuselect.Semester && m.DeptNo == insertDatastuselect.DeptNo && m.MajorNo == insertDatastuselect.MajorNo && m.LessonNo == insertDatastuselect.LessonNo && m.Grade == insertDatastuselect.Grade && m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo && m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo && m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo && m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0) { insertStuSelectLessonListDataList.Add(insertDatastuselect); } } } await BaseRepository("CollegeMIS").InsertAsync(insertStuSelectLessonListDataList); } if (insertResult > 0) { result = true; } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } /// /// 清空当前学期排课数据 /// /// public async Task AsyncModifyArrangeLessonData() { bool result = false; try { var apiData = await Client.GetStringAsync(Config.GetValue("ModifyArrangeLessonAPI")); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); if (data.success) { var semesterAndYear = Common.GetSemesterAndYear(); var strAcademicYear = semesterAndYear.AcademicYearShort; var strSemester = semesterAndYear.Semester; var executeResult = await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from ArrangeLessonTerm where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' "); await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from TeachClass where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' "); await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from OpenLessonPlan where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' "); await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from StuSelectLessonList where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' "); if (executeResult > 0) { result = true; } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } private string stringSchoolId; private string stringAcademicYear; private string stringSemester; /// /// 按条件同步排课数据 /// /// public async Task AsyncArrangeLessonDataByCondition(ArrangeLessonTermEntity entity) { bool result = false; try { HttpContent httpContent = new StringContent("{\"school\":\"" + entity.F_SchoolId + "\",\"year\":\"" + entity.AcademicYearNo + "\",\"number\":\"" + entity.Semester + "\"}"); httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); string apiData = await Client.PostAsync(Config.GetValue("ArrangeLessonAPI"), httpContent).Result.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); var dataList = data.entity.list; if (dataList.Any()) { var oldArrangeLessonTermList = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var insertDataList = new List(); var lessonData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var classData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var classroomData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); foreach (var item in dataList) { var classinfo = classData.FirstOrDefault(m => m.ClassId == item.clazzSid); var timesArr = item.timeText.Substring(0, item.timeText.Length - 1).Split(','); foreach (var timesItem in timesArr) { if (item.section.Contains(",")) { foreach (var sec in item.section.Split(',')) { var insertData = new ArrangeLessonTermEntity { ALTId = Guid.NewGuid().ToString(), LessonDate = DateTime.Parse(timesItem), AcademicYearNo = item.year, Semester = item.number, DeptNo = classinfo?.DeptNo, MajorNo = classinfo?.MajorNo, LessonNo = item.curriculunNumber, LessonName = item.curriculunName, TeachClassNo = item.curriculunName + classinfo?.ClassNo, EmpNo = item.teacherNumber, EmpName = item.teacherName, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonId == item.curriculunSid)?.LessonSortNo, ClassroomNo = classroomData.FirstOrDefault(m => m.ClassroomId == item.classRoomSid)?.ClassroomNo, LessonTime = item.week + sec, CheckMark = "1", F_SchoolId = item.schoolSid }; stringSchoolId = insertData.F_SchoolId; stringAcademicYear = insertData.AcademicYearNo; stringSemester = insertData.Semester; if (oldArrangeLessonTermList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime && m.F_SchoolId == insertData.F_SchoolId) == 0 && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime && m.F_SchoolId == insertData.F_SchoolId) == 0) { insertDataList.Add(insertData); } //if (!oldArrangeLessonTermList.Any(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester // && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate // && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo // && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo // && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime // && m.F_SchoolId == insertData.F_SchoolId) // && !insertDataList.Any(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester // && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate // && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo // && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo // && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime // && m.F_SchoolId == insertData.F_SchoolId)) //{ // insertDataList.Add(insertData); //} } } else { var insertData = new ArrangeLessonTermEntity { ALTId = Guid.NewGuid().ToString(), LessonDate = DateTime.Parse(timesItem), AcademicYearNo = item.year, Semester = item.number, DeptNo = classinfo?.DeptNo, MajorNo = classinfo?.MajorNo, LessonNo = item.curriculunNumber, LessonName = item.curriculunName, TeachClassNo = item.curriculunName + classinfo?.ClassNo, EmpNo = item.teacherNumber, EmpName = item.teacherName, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonId == item.curriculunSid)?.LessonSortNo, ClassroomNo = classroomData.FirstOrDefault(m => m.ClassroomId == item.classRoomSid)?.ClassroomNo, LessonTime = item.week + item.section, CheckMark = "1", F_SchoolId = item.schoolSid }; stringSchoolId = insertData.F_SchoolId; stringAcademicYear = insertData.AcademicYearNo; stringSemester = insertData.Semester; if (oldArrangeLessonTermList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime && m.F_SchoolId == insertData.F_SchoolId) == 0 && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime && m.F_SchoolId == insertData.F_SchoolId) == 0) { insertDataList.Add(insertData); } } } } var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList); //TeachClass数据处理 var arrangeLessonTermData = (await BaseRepository("CollegeMIS").FindListAsync(@"select F_SchoolId,AcademicYearNo,Semester,DeptNo,majorno,lessonno,replace(teachclassno,lessonname,'') as teachclassno,empno from [dbo].[ArrangeLessonTerm] where (AcademicYearNo = '" + stringAcademicYear + "') and semester='" + stringSemester + "' and F_SchoolId = '" + stringSchoolId + @"' group by F_SchoolId,AcademicYearNo,Semester,DeptNo,majorno,lessonno,replace(teachclassno,lessonname,'') ,empno ")).ToList(); var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync(@"SELECT * FROM TeachClass WHERE (AcademicYearNo = '" + stringAcademicYear + "') and semester='" + stringSemester + "' and F_SchoolId='" + stringSchoolId + "' ")).ToList(); var insertTeachClassDataList = new List(); if (arrangeLessonTermData.Any()) { foreach (var altitem in arrangeLessonTermData) { var insertTeachClassData = new TeachClassEntity() { AcademicYearNo = altitem.AcademicYearNo, Semester = altitem.Semester, DeptNo = altitem.DeptNo, MajorNo = altitem.MajorNo, LessonNo = altitem.LessonNo, Grade = classData.FirstOrDefault(m => m.ClassNo == altitem.TeachClassNo)?.Grade, LessonSortNo ="1", TeachClassNo = altitem.TeachClassNo, EmpNo = altitem.EmpNo, F_SchoolId = altitem.F_SchoolId }; //非空判断 if (TeachClassData.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo && m.Semester == insertTeachClassData.Semester && m.DeptNo == insertTeachClassData.DeptNo && m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo && m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo && m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo && m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0 && insertTeachClassDataList.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo && m.Semester == insertTeachClassData.Semester && m.DeptNo == insertTeachClassData.DeptNo && m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo && m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo && m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo && m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0) { insertTeachClassDataList.Add(insertTeachClassData); } } await BaseRepository("CollegeMIS").InsertAsync(insertTeachClassDataList); } //继续openlessonplan同步 await AsyncOpenLessonPlanDataByCondition(entity); if (insertResult > 0) { result = true; } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } /// /// 按条件同步专业开课计划数据,学生选课数据 /// /// public async Task AsyncOpenLessonPlanDataByCondition(ArrangeLessonTermEntity entity) { bool result = false; try { HttpContent httpContent = new StringContent("{\"school\":\"" + entity.F_SchoolId + "\",\"year\":\"" + entity.AcademicYearNo + "\",\"number\":\"" + entity.Semester + "\"}"); httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); string apiData = await Client.PostAsync(Config.GetValue("OpenLessonPlanAPI"), httpContent).Result.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); var dataList = data.entity.list; var openLessonPlanData = await BaseRepository("CollegeMIS").FindListAsync(); if (dataList.Any()) { var insertDataList = new List(); var majorData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var lessonData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var now = DateTime.Now; foreach (var item in dataList) { var insertData = new OpenLessonPlanEntity() { MakeDate = now, AcademicYearNo = item.semester.year, Semester = item.semester.number, DeptNo = majorData.FirstOrDefault(m => m.ID == item.major.sid)?.DeptNo, MajorNo = item.major.number, LessonNo = item.course.course.number, LessonName = item.course.course.name, PartCode = "", Grade = item.grade, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.course.course.number)?.LessonSortNo, LessonSortDetailNo = lessonData.FirstOrDefault(m => m.LessonNo == item.course.course.number)?.LessonSortDetailNo, StartWeek = item.semester.yesNo, EndWeek = item.semester.week, CheckStyleNo = "1", ScoreRecordStyleNo = "1", TeachDeptNo = majorData.FirstOrDefault(m => m.ID == item.major.sid)?.DeptNo, StudyScore = 0, AmendDate = now, ClassroomType = 1, ClassroomPracticeType = 99, CheckMarkDept = "1", CheckMark = "1", TestMark = 0, F_SchoolId = item.school.sid }; if (openLessonPlanData.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.LessonNo == insertData.LessonNo && m.Grade == insertData.Grade && m.LessonSortNo == insertData.LessonSortNo && m.LessonName == insertData.LessonName && m.F_SchoolId == insertData.F_SchoolId) == 0 && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester && m.DeptNo == insertData.DeptNo && m.MajorNo == insertData.MajorNo && m.LessonNo == insertData.LessonNo && m.Grade == insertData.Grade && m.LessonSortNo == insertData.LessonSortNo && m.LessonName == insertData.LessonName && m.F_SchoolId == insertData.F_SchoolId) == 0) { insertDataList.Add(insertData); } } var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList); //学生选课数据 var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync(@"SELECT * FROM TeachClass WHERE (AcademicYearNo = '" + stringAcademicYear + "') and semester='" + stringSemester + "' and F_SchoolId='" + stringSchoolId + "' ")).ToList(); var stuinfobasicData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var stuSelectLessonListEntityData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var insertStuSelectLessonListDataList = new List(); if (TeachClassData.Any()) { foreach (var itemteachclass in TeachClassData) { var classstulist = stuinfobasicData.Where(m => m.ClassNo == itemteachclass.TeachClassNo) .ToList(); foreach (var stu in classstulist) { var insertDatastuselect = new StuSelectLessonListEntity(); insertDatastuselect.NoticeBookNo = stu.NoticeNo; insertDatastuselect.StuNo = stu.StuNo; insertDatastuselect.DeptNo = stu.DeptNo; insertDatastuselect.ClassNo = stu.ClassNo; insertDatastuselect.MajorNo = stu.MajorNo; insertDatastuselect.StuName = stu.StuName; insertDatastuselect.GenderNo = stu.GenderNo != null && stu.GenderNo.Value ? "1" : "0"; insertDatastuselect.AcademicYearNo = itemteachclass.AcademicYearNo; insertDatastuselect.Semester = itemteachclass.Semester; insertDatastuselect.OpenLessonDeptNo = itemteachclass.DeptNo; insertDatastuselect.OpenLessonMajorNo = itemteachclass.MajorNo; insertDatastuselect.LessonNo = itemteachclass.LessonNo; insertDatastuselect.LessonName = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo)?.LessonName; insertDatastuselect.PartCode = ""; insertDatastuselect.OrdinaryScoreScale = 1; insertDatastuselect.TermInScoreScale = 1; insertDatastuselect.TermEndScoreScale = 1; insertDatastuselect.OtherScoreScale = 1; insertDatastuselect.TeachClassNo = stu.ClassNo; insertDatastuselect.LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo)?.LessonSortNo; insertDatastuselect.StuSortNo = "02"; insertDatastuselect.Grade = stu.Grade; insertDatastuselect.StudyScore = 0; insertDatastuselect.TotalStudyHour = 0; insertDatastuselect.IsInEffect = "1"; insertDatastuselect.EmpNo = itemteachclass.EmpNo; insertDatastuselect.IsPitchOn = "1"; insertDatastuselect.CheckMark = "1"; insertDatastuselect.InsertTime = DateTime.Now; insertDatastuselect.F_SchoolId = itemteachclass.F_SchoolId; if (stuSelectLessonListEntityData.Count(m => m.StuNo == insertDatastuselect.StuNo && m.AcademicYearNo == insertDatastuselect.AcademicYearNo && m.Semester == insertDatastuselect.Semester && m.DeptNo == insertDatastuselect.DeptNo && m.MajorNo == insertDatastuselect.MajorNo && m.LessonNo == insertDatastuselect.LessonNo && m.Grade == insertDatastuselect.Grade && m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo && m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo && m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo && m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0 && insertStuSelectLessonListDataList.Count(m => m.StuNo == insertDatastuselect.StuNo && m.AcademicYearNo == insertDatastuselect.AcademicYearNo && m.Semester == insertDatastuselect.Semester && m.DeptNo == insertDatastuselect.DeptNo && m.MajorNo == insertDatastuselect.MajorNo && m.LessonNo == insertDatastuselect.LessonNo && m.Grade == insertDatastuselect.Grade && m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo && m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo && m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo && m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0) { insertStuSelectLessonListDataList.Add(insertDatastuselect); } } } await BaseRepository("CollegeMIS").InsertAsync(insertStuSelectLessonListDataList); } if (insertResult > 0) { result = true; } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } /// /// 按条件清空排课数据 /// /// public async Task AsyncModifyArrangeLessonDataByCondition(ArrangeLessonTermEntity entity) { bool result = false; try { HttpContent httpContent = new StringContent("{\"school\":\"" + entity.F_SchoolId + "\",\"year\":\"" + entity.AcademicYearNo + "\",\"number\":\"" + entity.Semester + "\"}"); httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); string apiData = await Client.PostAsync(Config.GetValue("ModifyArrangeLessonAPI"), httpContent).Result.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); if (data.success) { var executeResult = await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from ArrangeLessonTerm where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' "); await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from TeachClass where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' "); await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from OpenLessonPlan where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' "); await BaseRepository("CollegeMIS").ExecuteAsyncBySql( $"delete from StuSelectLessonList where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' "); if (executeResult > 0) { result = true; } } } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } /// /// 课程表 /// /// 账号 /// 用户类型 学生 教师 /// 查询开始时间 /// 查询截止时间 /// public IEnumerable GetTimeTable(string userAccount, string userType, string startDate, string endDate) { var semesterAndYear = Common.GetSemesterAndYear(startDate); var strAcademicYear = semesterAndYear.AcademicYearShort; var strSemester = semesterAndYear.Semester; string sql; if (userType == "学生") { sql = @"SELECT b.LessonNo,b.AcademicYearNo as AcademicYear,b.LessonName,b.LessonTime,b.LessonDate,b.Empname EmpName,b.EmpNo,c.ClassroomName,b.Semester,b.ClassroomNo as ClassRoomNo,b.LessonSortNo,d.ClassName,e.EnName from StuSelectLessonList a left join ArrangeLessonTerm b on b.TeachClassNo=RTRIM(a.LessonName) + RTRIM(a.PartCode) + RTRIM(a.TeachClassNo) left join ClassroomInfo c on c.ClassroomNo=b.classroomNo left join ClassInfo d on replace(b.TeachClassNo,b.LessonName,'')=d.ClassNo left join LessonInfo e on a.LessonNo=e.LessonNo where a.StuNo=@userAccount and a.AcademicYearNo=@strAcademicYear and a.Semester=@strSemester and b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester and b.LessonDate>=@startDate and b.LessonDate<=@endDate and b.CheckMark=1"; } else { sql = @"select b.AcademicYearNo as AcademicYear,b.LessonNo,e.EnName,b.LessonName,b.LessonTime,b.LessonDate,b.EmpNo,b.Empname EmpName,replace(b.TeachClassNo,b.LessonName,'') TeachClassNo, c.ClassroomName,b.Semester,b.ClassroomNo as ClassRoomNo,b.LessonSortNo,d.ClassName from ArrangeLessonTerm b left join ClassroomInfo c on c.ClassroomNo=b.classroomNo left join ClassInfo d on replace(b.TeachClassNo,b.LessonName,'')=d.ClassNo left join LessonInfo e on b.LessonNo=e.LessonNo where b.EmpNo=@userAccount and b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester and b.LessonDate>=@startDate and b.LessonDate<=@endDate and b.CheckMark=1"; } try { var result = BaseRepository("CollegeMIS").FindList(sql, new { userAccount, startDate, endDate, strAcademicYear, strSemester }); return result; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable GetMajors(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "3"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update CdMajor set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from CdMajor where CheckMark=1 and ID not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.ID)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "3"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetMajorsNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from CdMajor where CheckMark=1 and ID not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetClassrooms(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "6"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update ClassroomInfo set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from ClassroomInfo where CheckMark=1 and ClassroomId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.ClassroomId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "6"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetClassroomsNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from ClassroomInfo where CheckMark=1 and ClassroomId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetClassType() { try { var data = BaseRepository("CollegeMIS").FindList(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetLessons(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "5"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update LessonInfo set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from LessonInfo where CheckMark=1 and LessonId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.LessonId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "5"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetLessonsNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from LessonInfo where CheckMark=1 and LessonId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetLessonSortDetails() { try { var data = BaseRepository("CollegeMIS").FindList(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetLessonSorts() { try { var data = BaseRepository("CollegeMIS").FindList(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetTeachers(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join adms7ultimate2.dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1"); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "7"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); var dbbase = BaseRepository(); db.BeginTrans(); var data = db.FindList("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1 and a.ishaslesson=1 and b.F_DeleteMark=0 and a.EmpId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.EmpId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "7"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetTeachersNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join adms7ultimate2.dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1"); var db = BaseRepository("CollegeMIS"); var dbbase = BaseRepository(); db.BeginTrans(); var data = db.FindList("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1 and a.ishaslesson=1 and b.F_DeleteMark=0 and a.EmpId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetClasses(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "4"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update ClassInfo set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from ClassInfo where CheckMark=1 and ClassId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.ClassId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "4"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetClassesNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(m => m.CheckMark == true); var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from ClassInfo where CheckMark=1 and ClassId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetStus(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(@"select a.StuId,a.StuNo,a.DeptNo,a.MajorNo,a.Grade,a.ClassNo,a.StuName,a.GenderNo,a.Birthday,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join adms7ultimate2.dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark='1'"); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "8"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update StuInfoBasic set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); var dbbase = BaseRepository(); db.BeginTrans(); var data = db.FindList("select a.*,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark=1 and a.StuId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.StuId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "8"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetStusNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(@"select a.StuId,a.StuNo,a.DeptNo,a.MajorNo,a.Grade,a.ClassNo,a.StuName,a.GenderNo,a.Birthday,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join adms7ultimate2.dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark='1'"); //数据 var db = BaseRepository("CollegeMIS"); var dbbase = BaseRepository(); db.BeginTrans(); var data = db.FindList("select a.*,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark=1 and a.StuId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetStudents() { try { var data = BaseRepository("CollegeMIS").FindList(@"select a.StuId,a.StuNo,a.DeptNo,a.MajorNo,a.Grade,a.ClassNo, a.StuName,GenderNo,a.Birthday,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join adms7ultimate2.dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark='1'"); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetClassLessons() { try { var data = BaseRepository("CollegeMIS").FindList(@"select AcademicYearNo,Semester,DeptNo,MajorNo,LessonNo,TeachClassNo,EmpNo,LessonSortNo from TeachClass group by AcademicYearNo,Semester,DeptNo,MajorNo,LessonNo,TeachClassNo,EmpNo,LessonSortNo"); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } /// /// 课程表【教务】 /// /// 查询开始时间 /// 查询截止时间 /// 班级编号 /// 教师编号 /// public IEnumerable GetTimeTableInEducation(string startDate, string endDate, string classNo, string empNo, string schoolId) { var semesterAndYear = Common.GetSemesterAndYear(startDate); var strAcademicYear = semesterAndYear.AcademicYearShort; var strSemester = semesterAndYear.Semester; string sql = @"select b.F_SchoolId,b.DeptNo,b.MajorNo,b.AcademicYearNo as AcademicYear,b.LessonNo,b.LessonName,b.LessonTime,b.LessonDate,b.EmpNo,b.Empname EmpName,replace (b.TeachClassNo,b.LessonName,'') TeachClassNo, c.ClassroomName,b.Semester,b.ClassroomNo as ClassRoomNo,b.LessonSortNo,d.ClassName from ArrangeLessonTerm b left join ClassroomInfo c on c.ClassroomNo=b.classroomNo left join ClassInfo d on replace(b.TeachClassNo,b.LessonName,'')=d.ClassNo where b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester and b.LessonDate>=@startDate and b.LessonDate<=@endDate and b.CheckMark=1"; try { var result = BaseRepository("CollegeMIS").FindList(sql, new { startDate, endDate, strAcademicYear, strSemester }); if (!string.IsNullOrEmpty(classNo)) { result = result.Where(x => x.TeachClassNo == classNo); } if (!string.IsNullOrEmpty(empNo)) { result = result.Where(x => x.EmpNo == empNo); } if (!string.IsNullOrEmpty(schoolId)) { result = result.Where(x => x.F_SchoolId == schoolId); } return result; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 课程表【教务】--班级下拉框信息 /// /// public IEnumerable GetClassData(string schoolId) { try { //前三年-后三年 var preYear = DateTime.Now.AddYears(-3).Year; var nextYear = DateTime.Now.AddYears(3).Year; var yearList = new List(); for (int i = preYear; i <= nextYear; i++) { yearList.Add(string.Format("'{0}-{1}'", i.ToString().Substring(2), (i + 1).ToString().Substring(2))); } var yearListStr = string.Join(",", yearList.ToArray()); var strSql = new StringBuilder(); strSql.Append("select distinct REPLACE(a.TeachClassNo,a.LessonName,'') as value,c.ClassName as text from "); strSql.Append("ArrangeLessonTerm a inner join ClassInfo c on REPLACE(a.TeachClassNo,a.LessonName,'')=c.ClassNo "); strSql.Append("where a.AcademicYearNo in (" + yearListStr + ") "); if (!string.IsNullOrEmpty(schoolId)) { strSql.Append(" and a.F_SchoolId = '" + schoolId + "' "); } var result = this.BaseRepository("CollegeMIS").FindList(strSql.ToString()).OrderBy(x => x.value); return result; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 课程表【教务】--教师下拉框信息 /// /// /// public IEnumerable GetTeacherData(string schoolId) { try { //前三年-后三年 var preYear = DateTime.Now.AddYears(-3).Year; var nextYear = DateTime.Now.AddYears(3).Year; var yearList = new List(); for (int i = preYear; i <= nextYear; i++) { yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2))); } var aa = new List(); //必修课 var teacherData = this.BaseRepository("CollegeMIS").FindList(x => yearList.Contains(x.AcademicYearNo)); if (!string.IsNullOrEmpty(schoolId)) { teacherData = teacherData.Where(x => x.F_SchoolId == schoolId); } var teacherDataModel = teacherData.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList() .Select(x => new SelectModel() { text = x.EmpName, value = x.EmpNo }); aa.AddRange(teacherDataModel); //选修课 var teacherData2 = this.BaseRepository("CollegeMIS").FindList(x => yearList.Contains(x.AcademicYearNo)); if (!string.IsNullOrEmpty(schoolId)) { teacherData2 = teacherData2.Where(x => x.F_SchoolId == schoolId); } var teacherDataModel2 = teacherData2.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList() .Select(x => new SelectModel() { text = x.EmpName, value = x.EmpNo }); aa.AddRange(teacherDataModel2); var aaaa = aa.Select(x => new { x.text, x.value }).Distinct().ToList(); var aaaaa = aaaa.Select(x => new SelectModel() { text = x.text, value = x.value }).OrderBy(x => x.value); return aaaaa; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } public IEnumerable GetDepts(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "2"); if (aa == null) { this.BaseRepository("CollegeMIS").ExecuteBySql("update CdDept set SyncFlag='false' "); } //数据 var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from CdDept where DeptId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.DeptId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "2"; alsEntity.SDate = syncdate; alsEntity.STableId = item; db.Insert(alsEntity); } db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetDeptsNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository("CollegeMIS").FindList(); var db = BaseRepository("CollegeMIS"); db.BeginTrans(); var data = db.FindList("select * from CdDept where DeptId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); db.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetSchools(string academicYearNo, string semester) { try { //var data = BaseRepository().FindList(); //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false; var aa = this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "1"); if (aa == null) { this.BaseRepository().ExecuteBySql("update LR_Base_Company set SyncFlag='false' "); } //数据 var dbCollegeMIS = BaseRepository("CollegeMIS"); dbCollegeMIS.BeginTrans(); var data = BaseRepository().FindList("select * from LR_Base_Company where F_CompanyId not in (select STableId from " + dbCollegeMIS.getDbConnection().Database + ".dbo.ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); DateTime syncdate = DateTime.Now; foreach (var item in data.Select(m => m.F_CompanyId)) { ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity(); alsEntity.Create(); alsEntity.AcademicYearNo = academicYearNo; alsEntity.Semester = semester; alsEntity.STypeId = "1"; alsEntity.SDate = syncdate; alsEntity.STableId = item; dbCollegeMIS.Insert(alsEntity); } dbCollegeMIS.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetSchoolsNotRecord(string academicYearNo, string semester) { try { //var data = BaseRepository().FindList(); var dbCollegeMIS = BaseRepository("CollegeMIS"); dbCollegeMIS.BeginTrans(); var data = BaseRepository().FindList("select * from LR_Base_Company where F_CompanyId not in (select STableId from " + dbCollegeMIS.getDbConnection().Database + ".dbo.ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )"); dbCollegeMIS.Commit(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetLessonTypes() { try { var data = BaseRepository("CollegeMIS").FindList(); return data; } catch (Exception e) { Console.WriteLine(e); throw; } } public IEnumerable GetPageListForTeacherWorkload(Pagination paginationobj, string queryJson) { try { var queryParam = queryJson.ToJObject(); var strSql = new StringBuilder(); strSql.Append("select count(ALTId)as lessoncount,EmpName,EmpNo,1 as coefficient from ArrangeLessonTerm "); strSql.Append(" WHERE 1=1 "); strSql.Append($"and AcademicYearNo='{ queryParam["AcademicYearNo"]}' and Semester='{queryParam["Semester"]}' group by EmpName,EmpNo order by EmpNo "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString()); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 教学工作量 /// /// /// /// public IEnumerable GetPageListForTeacherWorkloadByEmpNo(Pagination paginationobj, string queryJson, string empNo) { try { var queryParam = queryJson.ToJObject(); var strSql = new StringBuilder(); strSql.Append("select count(t.ALTId) as lessoncount,t.LessonNo,t.LessonName,1 as coefficient from ArrangeLessonTerm t "); strSql.Append($" WHERE 1=1 and t.EmpNo='{empNo}' "); strSql.Append(" group by t.LessonNo,t.LessonName "); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString()); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 教学调度【教务】--课程下拉框信息 /// /// public IEnumerable GetLessonDataInTerm(string queryJson) { try { return this.BaseRepository("CollegeMIS").FindList("select distinct t.LessonNo as value,t.LessonName as text from ArrangeLessonTerm t where 1=1 "); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取本学期开课计划 /// /// /// /// public IEnumerable GetAllClassLesson(string academicYearNo, string semester) { try { return this.BaseRepository("CollegeMIS").FindList(@"select b.F_SchoolId,b.DeptNo,b.MajorNo,b.AcademicYearNo as AcademicYear,b.Semester,b.LessonNo, b.LessonName, b.LessonTime, b.EmpNo, b.Empname EmpName, replace(b.TeachClassNo, b.LessonName, '') TeachClassNo, c.ClassroomName, b.ClassroomNo as ClassRoomNo, d.ClassName from ArrangeLessonTerm b left join ClassroomInfo c on c.ClassroomNo = b.classroomNo left join ClassInfo d on replace(b.TeachClassNo, b.LessonName, '') = d.ClassNo where b.AcademicYearNo = '" + academicYearNo + "' and b.Semester = '" + semester + @"' and b.CheckMark = 1 group by b.F_SchoolId, b.DeptNo, b.MajorNo, b.AcademicYearNo, b.Semester, b.LessonNo, b.LessonName, b.LessonTime, b.EmpNo, b.Empname, b.TeachClassNo, c.ClassroomName, b.ClassroomNo, d.ClassName "); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 按条件重置基础数据同步状态 /// /// /// public bool InitAsyncDataByCondition(ArrangeLessonTermEntity entity) { bool result = true; var db = BaseRepository("CollegeMIS").BeginTrans(); try { foreach (var tablename in entity.SyncBasicTable.Split(',')) { if (tablename == "CdDept") { //清空同步记录表 db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" + entity.AcademicYearNo + "' and Semester='" + entity.Semester + "' and STypeId='2'"); } if (tablename == "CdMajor") { //清空同步记录表 db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" + entity.AcademicYearNo + "' and Semester='" + entity.Semester + "' and STypeId='3'"); } if (tablename == "ClassInfo") { //清空同步记录表 db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" + entity.AcademicYearNo + "' and Semester='" + entity.Semester + "' and STypeId='4'"); } if (tablename == "ClassroomInfo") { //清空同步记录表 db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" + entity.AcademicYearNo + "' and Semester='" + entity.Semester + "' and STypeId='6'"); } if (tablename == "LessonInfo") { //清空同步记录表 db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" + entity.AcademicYearNo + "' and Semester='" + entity.Semester + "' and STypeId='5'"); } if (tablename == "EmpInfo") { //清空同步记录表 db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" + entity.AcademicYearNo + "' and Semester='" + entity.Semester + "' and STypeId='7'"); } //重置基础数据表 db.ExecuteBySql("update " + tablename + " set SyncFlag=0"); } db.Commit(); } catch (Exception e) { result = false; } return result; } } #region MyRegion public class TimeTable { public DateTime LessonDate { get; set; } public string EnName { get; set; } public string AcademicYear { get; set; } public string LessonNo { get; set; } public string LessonName { get; set; } public string LessonTime { get; set; } public string EmpNo { get; set; } public string EmpName { get; set; } public string TeachClassNo { get; set; } public string ClassroomName { get; set; } public string Semester { get; set; } public string ClassRoomNo { get; set; } public string LessonSortNo { get; set; } public string ClassName { get; set; } public string OLPEId { get; set; } /// /// 排考结构Id /// public string StructureId { get; set; } public string LeaveType { get; set; } public string IsCheck { get; set; } /// /// 校区Id /// public string F_SchoolId { get; set; } public string DeptNo { get; set; } public string MajorNo { get; set; } } public class Common { /// /// 根据当前时间获取学年和学期 /// /// public static (string AcademicYearShort, string AcademicYearLong, string Semester) GetSemesterAndYear(string startDate = "") { string AcademicYearShort = "";//短格式学年度 string AcademicYearLong = "";//长格式学年度 string Semester = "";//学期 DateTime dateParam = DateTime.Now; if (!string.IsNullOrEmpty(startDate)) { dateParam = DateTime.Parse(startDate); } if (dateParam.Month >= 8) { AcademicYearShort = dateParam.Year.ToString().Substring(2, 2) + "-"; AcademicYearShort += (dateParam.Year + 1).ToString().Substring(2, 2); AcademicYearLong = dateParam.Year.ToString() + "-"; AcademicYearLong += (dateParam.Year + 1).ToString(); Semester = "1"; } else { if (dateParam.Month >= 2)//根据当前时间获取学年和学期,注意跨年份 { AcademicYearShort = (dateParam.Year - 1).ToString().Substring(2, 2) + "-"; AcademicYearShort += dateParam.Year.ToString().Substring(2, 2); AcademicYearLong = (dateParam.Year - 1).ToString() + "-"; AcademicYearLong += dateParam.Year.ToString(); Semester = "2"; } else { AcademicYearShort = (dateParam.Year - 1).ToString().Substring(2, 2) + "-"; AcademicYearShort += dateParam.Year.ToString().Substring(2, 2); AcademicYearLong = (dateParam.Year - 1).ToString() + "-"; AcademicYearLong += dateParam.Year.ToString(); Semester = "1"; } } return (AcademicYearShort, AcademicYearLong, Semester); } /// /// 计算周一的时间 /// /// /// public static DateTime CalculateFirstDateOfWeek(DateTime someDate) { int i = someDate.DayOfWeek - DayOfWeek.Monday; if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。 TimeSpan ts = new TimeSpan(i, 0, 0, 0); return someDate.Subtract(ts); } /// /// 计算周日的时间 /// /// /// public static DateTime CalculateLastDateOfWeek(DateTime someDate) { int i = someDate.DayOfWeek - DayOfWeek.Sunday; if (i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。 TimeSpan ts = new TimeSpan(i, 0, 0, 0); return someDate.Add(ts); } } #region 当期学期排课数据同步 public class Paike { public string id { get; set; } /// /// 20180101 /// public string clazzId { get; set; } /// /// 18学前教育01班 /// public string clazzName { get; set; } /// /// XCMY0016 /// public string teacherId { get; set; } /// /// 薛雅馨 /// public string teacherName { get; set; } /// /// 0103 /// public string curriculunId { get; set; } /// /// 大学体育(学前系)(合) /// public string curriculunName { get; set; } public string curriculuntype { get; set; } /// /// 1 /// public string section { get; set; } /// /// 1 /// public string week { get; set; } /// /// 08:00-09:00 /// public string curriculunTime { get; set; } /// /// 1 /// public string kebiaoType { get; set; } /// /// 1102 /// public string classRoomId { get; set; } /// /// 1102教室 /// public string classRoomName { get; set; } /// /// 1 /// public string rankSchedule { get; set; } /// /// 0 /// public string periodTime { get; set; } /// /// [{"date":"2019-03-04 08:00-09:00","endTime":"2019-03-04 09:00:00","startTime":"2019-03-04 08:00:00"},{"date":"2019-03-18 08:00-09:00","endTime":"2019-03-18 09:00:00","startTime":"2019-03-18 08:00:00"},{"date":"2019-04-01 08:00-09:00","endTime":"2019-04-01 09:00:00","startTime":"2019-04-01 08:00:00"},{"date":"2019-04-15 08:00-09:00","endTime":"2019-04-15 09:00:00","startTime":"2019-04-15 08:00:00"},{"date":"2019-04-29 08:00-09:00","endTime":"2019-04-29 09:00:00","startTime":"2019-04-29 08:00:00"},{"date":"2019-05-13 08:00-09:00","endTime":"2019-05-13 09:00:00","startTime":"2019-05-13 08:00:00"},{"date":"2019-05-27 08:00-09:00","endTime":"2019-05-27 09:00:00","startTime":"2019-05-27 08:00:00"},{"date":"2019-06-10 08:00-09:00","endTime":"2019-06-10 09:00:00","startTime":"2019-06-10 08:00:00"},{"date":"2019-06-24 08:00-09:00","endTime":"2019-06-24 09:00:00","startTime":"2019-06-24 08:00:00"},{"date":"2019-07-08 08:00-09:00","endTime":"2019-07-08 09:00:00","startTime":"2019-07-08 08:00:00"}] /// public string timeText { get; set; } /// /// 2 /// public string semester { get; set; } /// /// Flag /// public bool flag { get; set; } public string year { get; set; } public string number { get; set; } public string curriculunNumber { get; set; } public string teacherNumber { get; set; } public string classRoomNumber { get; set; } } public class StuScore { public string id { get; set; } public string examname { get; set; } public string stuno { get; set; } public string stuname { get; set; } public string classno { get; set; } public string classname { get; set; } public string teachclassno { get; set; } public string termendscore { get; set; } public string examtime { get; set; } public string lessonno { get; set; } public string lessonname { get; set; } public string scoolYear { get; set; } public string term { get; set; } } public class Major { /// /// 01 /// public string id { get; set; } /// /// 学前教育 /// public string majorName { get; set; } /// /// 01 /// public string majorNumber { get; set; } /// /// /// public string bz { get; set; } } public class semester { public DateTime? starttime { get; set; } public DateTime? endtime { get; set; } public string zhouci { get; set; } public string shangxia { get; set; } } public class List { public StuScore stuscore { get; set; } /// /// Paike /// public Paike paike { get; set; } /// /// 2019-03-04 08:00-09:00 /// public string times { get; set; } /// /// Major /// public Major major { get; set; } /// /// 18-19 /// public string schoolYear { get; set; } /// /// 学期类 /// public semester semester { get; set; } /// /// 第几级 /// public string grade { get; set; } /// /// 专业编号 /// public string majorNumber { get; set; } /// /// 课程名称 /// public string curriculumName { get; set; } /// /// 课程编号 /// public string curriculumNumber { get; set; } /// /// 选修必修 /// public string isElective { get; set; } /// /// 周学时 /// public string classhour { get; set; } /// /// 教师编号 /// public string teacherId { get; set; } /// /// 教师姓名 /// public string teacherName { get; set; } /// /// 学校主键 /// public string schoolId { get; set; } } public class Entity { /// /// true /// public string opflag { get; set; } /// /// 1000 /// public string opCode { get; set; } /// /// OK! /// public string message { get; set; } /// /// List /// public List list { get; set; } public List stuScoreList { get; set; } } public class Root { /// /// 操作成功 /// public string message { get; set; } /// /// Success /// public bool success { get; set; } /// /// Entity /// public Entity entity { get; set; } } #endregion #region 按条件同步排课数据 public class RootByCondition { /// /// 操作成功 /// public string message { get; set; } /// /// Success /// public bool success { get; set; } /// /// Entity /// public EntityByCondition entity { get; set; } } public class EntityByCondition { /// /// true /// public string opflag { get; set; } /// /// 1000 /// public string opCode { get; set; } /// /// OK! /// public string message { get; set; } /// /// List /// public List list { get; set; } } public class ListByCondition { public string year { get; set; } public string number { get; set; } public string curriculunNumber { get; set; } public string curriculunName { get; set; } /// /// Paike /// public PaikeByCondition paike { get; set; } /// /// "2019-03-12,2019-03-26,2019-04-09,2019-04-23,2019-05-07,2019-05-21,2019-06-04,2019-06-18,2019-07-02,2019-07-16,2019-07-30," /// public string timeText { get; set; } /// /// Major /// public MajorByCondition major { get; set; } public string teacherNumber { get; set; } public string teacherName { get; set; } public string curriculunSid { get; set; } public string classRoomSid { get; set; } public string schoolSid { get; set; } public object week { get; set; } public string section { get; set; } public string clazzSid { get; set; } } public class PaikeByCondition { public string id { get; set; } /// /// 班级Id /// public string clazzId { get; set; } /// /// 班级名称 /// public string clazzName { get; set; } /// /// 班级编号 /// public string clazzSid { get; set; } /// /// 年级 /// public string grade { get; set; } /// /// 教师Id /// public string teacherId { get; set; } /// /// 教师名称 /// public string teacherName { get; set; } /// /// 教师编号 /// public string teacherSid { get; set; } /// /// 课程Id /// public string curriculunId { get; set; } /// /// 课程名称 /// public string curriculunName { get; set; } /// /// 课程编号 /// public string curriculunSid { get; set; } /// /// 第几节次 /// public string section { get; set; } /// /// 星期几 /// public string week { get; set; } /// /// 课表类型 /// public string kebiaoType { get; set; } /// 教室Id /// public string classRoomId { get; set; } /// /// 教室名称 /// public string classRoomName { get; set; } /// /// 教室编号 /// public string classRoomSid { get; set; } /// /// 排课安排 /// public string rankSchedule { get; set; } /// /// "2019-03-12,2019-03-26,2019-04-09,2019-04-23,2019-05-07,2019-05-21,2019-06-04,2019-06-18,2019-07-02,2019-07-16,2019-07-30," /// public string timeText { get; set; } /// /// 学年 /// public string semester { get; set; } /// /// Flag /// public bool flag { get; set; } } public class MajorByCondition { /// /// 专业Id /// public string id { get; set; } /// /// 专业名称 /// public string name { get; set; } /// /// 专业编号 /// public string number { get; set; } /// /// 系 /// public DepartmentByCondition department { get; set; } /// /// 学年学期 /// public SemesterByCondition semester { get; set; } /// /// 学校 /// public SchoolByCondition school { get; set; } public string sid { get; set; } public string qsid { get; set; } } public class DepartmentByCondition { /// /// 系Id /// public string id { get; set; } /// /// 系名称 /// public string name { get; set; } /// /// 系编号【开课计划接口】 /// public string number { get; set; } } public class SemesterByCondition { public string id { get; set; } /// /// 学年 /// public string year { get; set; } /// /// 学期 /// public string number { get; set; } /// /// 开始时间【开课计划接口】 /// public DateTime starTime { get; set; } /// /// 结束时间【开课计划接口】 /// public DateTime endTime { get; set; } /// /// 开始周次【开课计划接口】 /// public int yesNo { get; set; } /// /// 结束周次【开课计划接口】 /// public int week { get; set; } } public class SchoolByCondition { /// /// 学校Id /// public string sid { get; set; } /// /// 学校名称 /// public string name { get; set; } } public class RootOfPlanByCondition { /// /// 操作成功 /// public string message { get; set; } /// /// Success /// public bool success { get; set; } /// /// Entity /// public EntityOfPlanByCondition entity { get; set; } } public class EntityOfPlanByCondition { /// /// true /// public string opflag { get; set; } /// /// 1000 /// public string opCode { get; set; } /// /// OK! /// public string message { get; set; } /// /// List /// public List list { get; set; } } public class ListOfPlanByCondition { public SchoolByCondition school { get; set; } public SemesterByCondition semester { get; set; } public DepartmentByCondition department { get; set; } public MajorByCondition major { get; set; } /// /// 开课计划 /// public CourseOfPlanByCondition course { get; set; } public int classhour { get; set; } public int credit { get; set; } public string grade { get; set; } } public class CourseOfPlanByCondition { /// /// 开课计划Id /// public string id { get; set; } /// /// 课程编号 /// public string number { get; set; } /// /// 课程信息 /// public CourseInfoOfPlanByCondition course { get; set; } /// /// 课程名称 /// public string coursename { get; set; } } public class CourseInfoOfPlanByCondition { /// /// 课程Id /// public string id { get; set; } /// /// 课程名称 /// public string name { get; set; } public string number { get; set; } } #endregion #endregion }