|
- using Dapper;
- using Learun.DataBase.Repository;
- using Learun.Util;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace Learun.Application.TwoDevelopment.EducationalAdministration
- {
- /// <summary>
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创 建:超级管理员
- /// 日 期:2019-05-24 10:27
- /// 描 述:排考数据同步
- /// </summary>
- public class ArrangeExamTermService : RepositoryFactory
- {
- private static readonly HttpClient Client;
- static ArrangeExamTermService()
- {
- Client = new HttpClient();
- }
- #region 获取数据
-
- /// <summary>
- /// 获取页面显示列表数据
- /// <summary>
- /// <param name="queryJson">查询参数</param>
- /// <returns></returns>
- public IEnumerable<ArrangeExamTermEntity> GetPageList(Pagination pagination, string queryJson)
- {
- try
- {
- var strSql = new StringBuilder();
- strSql.Append("SELECT ");
- strSql.Append(@"
- t.AETId,
- t.AcademicYearNo,
- t.Semester,
- t.ExamDate,
- t.ExamTime,
- t.ExamSection,
- t.ClassNo,
- t.ClassName,
- t.LessonNo,
- t.LessonName,
- t.LessonSortNo,
- t.EmpNo,
- t.EmpName,
- t.ClassRoomNo,
- t.ClassRoomName
- ");
- strSql.Append(" FROM ArrangeExamTerm t ");
- strSql.Append(" WHERE 1=1 ");
- var queryParam = queryJson.ToJObject();
- // 虚拟参数
- var dp = new DynamicParameters(new { });
- return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(strSql.ToString(), dp, pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 获取ArrangeExamTerm表实体数据
- /// <param name="keyValue">主键</param>
- /// <summary>
- /// <returns></returns>
- public ArrangeExamTermEntity GetArrangeExamTermEntity(string keyValue)
- {
- try
- {
- return this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamTermEntity>(keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 获取ArrangeExamTerm表实体数据
- /// <param name="academicYearNo">学年</param>
- /// <param name="semester">学期</param>
- /// <summary>
- /// <returns></returns>
- public ArrangeExamTermEntity GetArrangeExamTermEntityByYear(string academicYearNo, string semester)
- {
- try
- {
- return this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamTermEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- #endregion
-
- #region 提交数据
-
- /// <summary>
- /// 删除实体数据
- /// <param name="keyValue">主键</param>
- /// <summary>
- /// <returns></returns>
- public void DeleteEntity(string keyValue)
- {
- try
- {
- this.BaseRepository("CollegeMIS").Delete<ArrangeExamTermEntity>(t => t.AETId == keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 保存实体数据(新增、修改)
- /// <param name="keyValue">主键</param>
- /// <summary>
- /// <returns></returns>
- public void SaveEntity(string keyValue, ArrangeExamTermEntity 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 扩展数据
-
- /// <summary>
- /// 2021新排考接口
- /// </summary>
- /// <param name="entity"></param>
- /// <returns></returns>
- public async Task<bool> AsyncArrangeExamDataNew(ArrangeLessonTermEntity entity)
- {
- bool result = false;
- try
- {
- //清空本学年本学期排考数据
- var academicYearNo =entity.AcademicYearNo;
- var semester =entity.Semester;
- var schoolid = entity.F_SchoolId;
- this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTermNew where AcademicYearNo='{academicYearNo}' and Semester='{semester}' and F_SchoolId='{schoolid}'");
- this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTermItemNew where AcademicYearNo='{academicYearNo}' and Semester='{semester}' and F_SchoolId='{schoolid}'");
- //排考数据处理
- var insertList = new List<ArrangeExamTermNewEntity>();
- var arrangeExamTermData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeExamTermNewEntity>()).ToList();
- var classinfoData = (await BaseRepository("CollegeMIS").FindListAsync<ClassInfoEntity>()).ToList();
- var studentData = (await BaseRepository("CollegeMIS").FindListAsync<StuInfoBasicEntity>()).ToList();
- 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");
- var apiData = await Client.PostAsync(Config.GetValue("ArrangeExamAPINew"), httpContent).Result.Content.ReadAsStringAsync();
- //明细接口
- //Client.PostAsync(Config.GetValue("ArrangeExamItemAPINew"), httpContent);
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<ArrangeExamRoot>(apiData);
- if (!data.success)
- {
- return result;
- }
- var dataList = data.entity.list;
- if (dataList.Any())
- {
- var insertDataList = new List<ArrangeExamTermNewEntity>();
- foreach (var item in dataList)
- {
- var insertData = new ArrangeExamTermNewEntity
- {
- AETId = Guid.NewGuid().ToString(),
- AcademicYearNo = academicYearNo,
- Semester = semester,
- F_SchoolId = schoolid,
- ExamDate = Convert.ToDateTime(item.date).Date,
- ExamTime = Convert.ToDateTime(item.date).ToShortTimeString()+"~"+Convert.ToDateTime(item.time).ToShortTimeString(),
- LessonNo =item.lessonNo,
- LessonName=item.lessonName,
- EmpNo=item.empNo,
- EmpName = item.empName,
- ClassRoomNo=item.classroomNo,
- ClassRoomName = item.classroomName
- };
- if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.LessonNo == insertData.LessonNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0
- && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.LessonNo == insertData.LessonNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0)
- {
- insertDataList.Add(insertData);
- }
- }
- insertList.AddRange(insertDataList);
- result = await BaseRepository("CollegeMIS").InsertAsync(insertList)>0;
- }
- }
- //明细对接
- string sql = @"SELECT semester.year AS 'AcademicYearNo',semester.number AS 'Semester',currid.number AS 'LessonNo',currid.name AS 'LessonName',
- student.name AS 'StuName',student.number AS 'StuNo',classroom.name 'ClassRoomName',classroom.number AS 'ClassRoomNo',
- paikao.time AS 'StartDate',paikao.endtime 'EndDate',a.number 'SitNumber',
- (SELECT GROUP_CONCAT(teachername) FROM tb_paikao WHERE currid = a.`currid` AND classroomid = a.`classroom`) AS EmpName,
- (SELECT GROUP_CONCAT(number) FROM tb_teacher WHERE id IN
- (SELECT teacherid FROM tb_paikao WHERE currid = a.`currid` AND classroomid = a.`classroom`) ) AS EmpNo
- FROM tb_studentpaikao a
-
- LEFT JOIN tb_student student ON student.id = a.student
- LEFT JOIN tb_classroom classroom ON classroom.id = a.classroom
- LEFT JOIN tb_curriculum currid ON currid.id = a.currid
- LEFT JOIN tb_semester semester ON semester.id = a.semester
- LEFT JOIN tb_paikaorule paikao ON paikao.currid = a.currid where semester.year='"+academicYearNo+ "' and semester.number='"+semester+"'";
- var list= BaseRepository("paikeDbString").FindList<ArrangeExamTermItemNewEntity>(sql);
- var listsqlserver =new List<ArrangeExamTermItemNewEntity>();
- foreach (var item in list)
- {
- ArrangeExamTermItemNewEntity aetitem = new ArrangeExamTermItemNewEntity();
- aetitem.Create();
- aetitem.AcademicYearNo = item.AcademicYearNo;
- aetitem.Semester = item.Semester;
- aetitem.LessonNo = item.LessonNo;
- aetitem.LessonName = item.LessonName;
- item.ExamDate = Convert.ToDateTime(item.StartDate);
- aetitem.ExamDate = item.ExamDate;
- item.ExamTime = Convert.ToDateTime(item.StartDate).ToShortTimeString() + "~" + Convert.ToDateTime(item.EndDate).ToShortTimeString();
- aetitem.ExamTime = item.ExamTime;
- aetitem.ClassNo = item.ClassNo;
- aetitem.ClassName = item.ClassName;
- aetitem.EmpNo = item.EmpNo;
- aetitem.EmpName = item.EmpName;
- aetitem.ClassRoomNo = item.ClassRoomNo;
- aetitem.ClassRoomName = item.ClassRoomName;
- aetitem.F_SchoolId = schoolid;
- aetitem.SitNumber = item.SitNumber;
- aetitem.StuNo = item.StuNo;
- aetitem.StuName = item.StuName;
- var classitem = studentData.Find(m => m.StuNo == item.StuNo);
- item.ClassNo = classitem?.ClassNo;
- aetitem.ClassNo = item.ClassNo;
- aetitem.ClassName = classinfoData.Find(m=>m.ClassNo==aetitem.ClassNo)?.ClassName;
- listsqlserver.Add(aetitem);
- }
- BaseRepository("CollegeMIS").Insert(listsqlserver);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return result;
- }
-
- /// <summary>
- /// 排考数据同步
- /// </summary>
- /// <returns></returns>
- public async Task<bool> AsyncArrangeExamData()
- {
- bool result = false;
- try
- {
- //清空本学年本学期排考数据
- var academicYearNo = Common.GetSemesterAndYear().AcademicYearShort;
- var semester = Common.GetSemesterAndYear().Semester;
- this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTerm where AcademicYearNo='{academicYearNo}' and Semester='{semester}' ");
-
- //排考结构处理
- var insertListOfStructure = new List<ArrangeExamStructureEntity>();
- var apiDataOfStructure = await Client.GetStringAsync(Config.GetValue("ArrangeExamStructureAPI"));
- if (!string.IsNullOrEmpty(apiDataOfStructure))
- {
- var data = JsonConvert.DeserializeObject<ArrangeExamRootOfStructure>(apiDataOfStructure);
- if (!data.success)
- {
- return result;
- }
- var dataList = data.entity.list;
- if (dataList.Any())
- {
- foreach (var item in dataList)
- {
- var model = this.BaseRepository("CollegeMIS").FindEntity<ArrangeExamStructureEntity>(x => x.StructureId == item.id);
- if (model == null)
- {
- var insertDataOfStructure = new ArrangeExamStructureEntity()
- {
- Id = Guid.NewGuid().ToString(),
- StructureId = item.id,
- StartTime = Convert.ToDateTime(item.starttime),
- EndTime = Convert.ToDateTime(item.endtime),
- MorningNum = Convert.ToInt32(item.morning),
- AfternoonNum = Convert.ToInt32(item.afternoon),
- NightNum = Convert.ToInt32(item.night),
- Time = item.time
- };
- if (insertListOfStructure.Count(x => x.StructureId == insertDataOfStructure.StructureId) == 0)
- {
- insertListOfStructure.Add(insertDataOfStructure);
- }
- }
- else
- {
- model.StartTime = Convert.ToDateTime(item.starttime);
- model.EndTime = Convert.ToDateTime(item.endtime);
- model.MorningNum = Convert.ToInt32(item.morning);
- model.AfternoonNum = Convert.ToInt32(item.afternoon);
- model.NightNum = Convert.ToInt32(item.night);
- model.Time = item.time;
- this.BaseRepository("CollegeMIS").Update<ArrangeExamStructureEntity>(model);
- }
- }
- }
- }
- var insertResultOfStructure = await BaseRepository("CollegeMIS").InsertAsync(insertListOfStructure);
-
- //排考数据处理
- var insertList = new List<ArrangeExamTermEntity>();
- var arrangeExamTermData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeExamTermEntity>()).ToList();
- var classRoomInfoData = this.BaseRepository("CollegeMIS").FindList<ClassroomInfoEntity>().ToList();
- var lessonData = this.BaseRepository("CollegeMIS").FindList<LessonInfoEntity>().ToList();
- //必修数据处理
- var apiData = await Client.GetStringAsync(Config.GetValue("ArrangeExamAPI"));
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<ArrangeExamRoot>(apiData);
- if (!data.success)
- {
- return result;
- }
- var dataList = data.entity.list;
- if (dataList.Any())
- {
- var insertDataList = new List<ArrangeExamTermEntity>();
- foreach (var item in dataList)
- {
- var insertData = new ArrangeExamTermEntity
- {
- AETId = Guid.NewGuid().ToString(),
- PaiKaoId = item.id,
- AcademicYearNo = Common.GetSemesterAndYear(item.date).AcademicYearShort,
- Semester = Common.GetSemesterAndYear(item.date).Semester,
- ExamDate = Convert.ToDateTime(item.date),
- ExamTime = item.time,
- ExamSection = item.section,
- ClassNo = item.classId,
- ClassName = item.className,
- LessonNo = item.currId,
- LessonName = item.currName,
- LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.currId)?.LessonSortNo,
- EmpNo = item.teacherId,
- EmpName = item.teacherName,
- ClassRoomNo = classRoomInfoData.FirstOrDefault(x => x.ClassroomId.Trim() == item.classroomId.Trim())?.ClassroomNo.Trim(),
- ClassRoomName = item.classroomName,
- StructureId = item.kaoshis
- };
- if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.ClassNo == insertData.ClassNo && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0
- && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.ClassNo == insertData.ClassNo && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0)
- {
- insertDataList.Add(insertData);
- }
- }
- insertList.AddRange(insertDataList);
- }
- }
- //选修数据处理
- var apiDataOfElective = await Client.GetStringAsync(Config.GetValue("ArrangeExamOfElectiveAPI"));
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<ArrangeExamRoot>(apiDataOfElective);
- if (!data.success)
- {
- return result;
- }
- var dataList = data.entity.list;
- if (dataList.Any())
- {
- var insertDataList = new List<ArrangeExamTermEntity>();
- foreach (var item in dataList)
- {
- var insertData = new ArrangeExamTermEntity
- {
- AETId = Guid.NewGuid().ToString(),
- PaiKaoId = item.id,
- AcademicYearNo = Common.GetSemesterAndYear(item.date).AcademicYearShort,
- Semester = Common.GetSemesterAndYear(item.date).Semester,
- ExamDate = Convert.ToDateTime(item.date),
- ExamTime = item.time,
- ExamSection = item.section,
- ClassNo = "",
- ClassName = "",
- LessonNo = item.currId,
- LessonName = item.currName,
- LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.currId)?.LessonSortNo,
- EmpNo = item.teacherId,
- EmpName = item.teacherName,
- ClassRoomNo = classRoomInfoData.FirstOrDefault(x => x.ClassroomId.Trim() == item.classroomId.Trim())?.ClassroomNo.Trim(),
- ClassRoomName = item.classroomName,
- StructureId = item.kaoshis
- };
- if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0
- && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0)
- {
- insertDataList.Add(insertData);
- }
- }
- insertList.AddRange(insertDataList);
- }
- }
-
- var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertList);
-
- if (insertResultOfStructure > 0 && insertResult > 0)
- {
- result = true;
- }
-
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- return result;
- }
-
- internal bool GetAny()
- {
- try
- {
- return this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>().Any();
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 考试表
- /// </summary>
- /// <param name="startDate">查询开始时间</param>
- /// <param name="endDate">查询截止时间</param>
- /// <param name="classNo">班级号</param>
- /// <param name="empNo">监考教师号</param>
- /// <returns></returns>
- public IEnumerable<TimeTable> GetExamTable(string startDate, string endDate, string classNo, string empNo)
- {
- try
- {
- var semesterAndYear = Common.GetSemesterAndYear(startDate);
- var strAcademicYear = semesterAndYear.AcademicYearShort;
- var strSemester = semesterAndYear.Semester;
- var st = Convert.ToDateTime(startDate);
- var et = Convert.ToDateTime(endDate);
-
- var arrangeExamTermList = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(x => x.AcademicYearNo == strAcademicYear && x.Semester == strSemester && x.ExamDate >= st && x.ExamDate <= et);
- if (!string.IsNullOrEmpty(classNo))
- {
- arrangeExamTermList = arrangeExamTermList.Where(x => x.ClassNo == classNo);
- }
- if (!string.IsNullOrEmpty(empNo))
- {
- arrangeExamTermList = arrangeExamTermList.Where(x => x.EmpNo.Contains(empNo));
- }
- foreach (var arrangeExamTermItem in arrangeExamTermList)
- {
- var week = Convert.ToDateTime(arrangeExamTermItem.ExamDate).DayOfWeek.GetHashCode();
- if (week == 0)
- {
- week = 7;
- }
- arrangeExamTermItem.week = week;
- }
-
- var data = arrangeExamTermList.Select(x => new TimeTable()
- {
- AcademicYear = x.AcademicYearNo,
- Semester = x.Semester,
- LessonDate = x.ExamDate.HasValue ? x.ExamDate.Value : DateTime.MinValue,
- LessonNo = x.LessonNo,
- LessonName = x.LessonSortNo == "1" ? x.LessonName : (x.LessonSortNo == "2" ? x.LessonName + "[选修]" : x.LessonName + "[未知]"),
- LessonTime = string.Format("{0}{1}", x.week, x.ExamSection),
- EmpNo = x.EmpNo,
- EmpName = x.EmpName,
- TeachClassNo = x.ClassNo,
- ClassRoomNo = x.ClassRoomNo,
- ClassroomName = x.ClassRoomName,
- LessonSortNo = x.LessonSortNo,
- ClassName = x.ClassName,
- StructureId = x.StructureId
- });
- return data;
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 考试表-选修课【学子在线】
- /// </summary>
- /// <param name="startDate">查询开始时间</param>
- /// <param name="endDate">查询截止时间</param>
- /// <param name="stuNo">学号</param>
- /// <returns></returns>
- public IEnumerable<TimeTable> GetExamTableOfElectiveInStudent(string startDate, string endDate, string stuNo)
- {
- try
- {
- var semesterAndYear = Common.GetSemesterAndYear(startDate);
- var strAcademicYear = semesterAndYear.AcademicYearShort;
- var strSemester = semesterAndYear.Semester;
- var st = Convert.ToDateTime(startDate);
- var et = Convert.ToDateTime(endDate);
-
- var strSql = new StringBuilder();
- strSql.Append("select t.* from ");
- strSql.Append(" [dbo].[ArrangeExamTerm] t left join [dbo].[StuSelectLessonListOfElective] s on t.AcademicYearNo=s.AcademicYearNo and t.Semester=s.Semester and t.LessonSortNo=s.LessonSortNo and t.LessonNo=s.LessonNo and s.Status=2 ");
- strSql.Append(" and s.StuNo='" + stuNo + "' ");
- strSql.Append(" where t.AcademicYearNo='" + strAcademicYear + "' and t.Semester='" + strSemester + "'and t.LessonSortNo='2' and t.ExamDate >= '" + st + "' and t.ExamDate <= '" + et + "' ");
- var arrangeExamTermList = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(strSql.ToString());
-
- foreach (var arrangeExamTermItem in arrangeExamTermList)
- {
- var week = Convert.ToDateTime(arrangeExamTermItem.ExamDate).DayOfWeek.GetHashCode();
- if (week == 0)
- {
- week = 7;
- }
- arrangeExamTermItem.week = week;
- }
-
- var data = arrangeExamTermList.Select(x => new TimeTable()
- {
- AcademicYear = x.AcademicYearNo,
- Semester = x.Semester,
- LessonDate = x.ExamDate.HasValue ? x.ExamDate.Value : DateTime.MinValue,
- LessonNo = x.LessonNo,
- LessonName = x.LessonSortNo == "1" ? x.LessonName : (x.LessonSortNo == "2" ? x.LessonName + "[选修]" : x.LessonName + "[未知]"),
- LessonTime = string.Format("{0}{1}", x.week, x.ExamSection),
- EmpNo = x.EmpNo,
- EmpName = x.EmpName,
- TeachClassNo = x.ClassNo,
- ClassRoomNo = x.ClassRoomNo,
- ClassroomName = x.ClassRoomName,
- LessonSortNo = x.LessonSortNo,
- ClassName = x.ClassName,
- StructureId = x.StructureId
- });
- return data;
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 考试表--班级下拉框信息
- /// </summary>
- /// <param name="startDate"></param>
- /// <returns></returns>
- public IEnumerable<SelectModel> GetClassData()
- {
- try
- {
- //前三年-后三年
- var preYear = DateTime.Now.AddYears(-3).Year;
- var nextYear = DateTime.Now.AddYears(3).Year;
- var yearList = new List<string>();
- for (int i = preYear; i <= nextYear; i++)
- {
- yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2)));
- }
-
- var classData = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(x => yearList.Contains(x.AcademicYearNo));
- var aa = classData.Where(x => !string.IsNullOrEmpty(x.ClassNo)).Select(x => new { x.ClassNo, x.ClassName }).Distinct().ToList();
- var aaa = aa.Select(x => new SelectModel()
- {
- text = x.ClassName,
- value = x.ClassNo
- }).OrderBy(x => x.value);
-
- return aaa;
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 考试表--教师下拉框信息
- /// </summary>
- /// <param name="startDate"></param>
- /// <returns></returns>
- public IEnumerable<SelectModel> GetTeacherData()
- {
- try
- {
- //前三年-后三年
- var preYear = DateTime.Now.AddYears(-3).Year;
- var nextYear = DateTime.Now.AddYears(3).Year;
- var yearList = new List<string>();
- for (int i = preYear; i <= nextYear; i++)
- {
- yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2)));
- }
-
- var teacherData = this.BaseRepository("CollegeMIS").FindList<ArrangeExamTermEntity>(x => yearList.Contains(x.AcademicYearNo));
- var aa = new List<SelectModel>();
-
- var aaa = teacherData.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList();
- foreach (var item in aaa)
- {
- if (item.EmpNo.IndexOf(',') == -1)//单个教师
- {
- var model = new SelectModel()
- {
- text = item.EmpName,
- value = item.EmpNo
- };
- aa.Add(model);
- }
- else//多个教师
- {
- var arrEmpNo = item.EmpNo.Split(',');
- var arrEmpName = item.EmpName.Split(',');
- for (int i = 0; i < arrEmpNo.Length; i++)
- {
- var model = new SelectModel()
- {
- text = arrEmpName[i],
- value = arrEmpNo[i]
- };
- aa.Add(model);
- }
- }
- }
-
- 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);
- }
- }
- }
- #endregion
-
- /// <summary>
- /// 下拉框模型
- /// </summary>
- public class SelectModel
- {
- public string value { get; set; }
- public string text { get; set; }
- }
-
- #region 排考结构接口数据模型
- public class ArrangeExamListOfStructure
- {
- public string id { get; set; }
- public string starttime { get; set; }
- public string endtime { get; set; }
- public string morning { get; set; }
- public string afternoon { get; set; }
- public string night { get; set; }
- public string time { get; set; }
- public string kaoshis { get; set; }
- }
-
- public class ArrangeExamEntityOfStructure
- {
- /// <summary>
- /// true
- /// </summary>
- public string opflag { get; set; }
- /// <summary>
- /// 1000
- /// </summary>
- public string opCode { get; set; }
- /// <summary>
- /// OK!
- /// </summary>
- public string message { get; set; }
- /// <summary>
- /// List
- /// </summary>
- public List<ArrangeExamListOfStructure> list { get; set; }
- }
-
- public class ArrangeExamRootOfStructure
- {
- /// <summary>
- /// 操作成功
- /// </summary>
- public string message { get; set; }
- /// <summary>
- /// Success
- /// </summary>
- public bool success { get; set; }
- /// <summary>
- /// Entity
- /// </summary>
- public ArrangeExamEntityOfStructure entity { get; set; }
- }
- #endregion
- #region 排考接口数据模型
- public class ArrangeExamList
- {
- public string id { get; set; }
- public string classId { get; set; }
- public string className { get; set; }
- public string currId { get; set; }
- public string currName { get; set; }
- public string teacherId { get; set; }
- public string teacherName { get; set; }
- public string section { get; set; }
- public string time { get; set; }
- public string date { get; set; }
- public string classroomId { get; set; }
- public string classroomNo { get; set; }
- public string classroomName { get; set; }
- public string kaoshis { get; set; }
- public string lessonNo { get; set; }
- public string lessonName { get; set; }
- public string empNo { get; set; }
- public string empName { get; set; }
- }
-
- public class ArrangeExamEntity
- {
- /// <summary>
- /// true
- /// </summary>
- public string opflag { get; set; }
- /// <summary>
- /// 1000
- /// </summary>
- public string opCode { get; set; }
- /// <summary>
- /// OK!
- /// </summary>
- public string message { get; set; }
- /// <summary>
- /// List
- /// </summary>
- public List<ArrangeExamList> list { get; set; }
- }
-
- public class ArrangeExamRoot
- {
- /// <summary>
- /// 操作成功
- /// </summary>
- public string message { get; set; }
- /// <summary>
- /// Success
- /// </summary>
- public bool success { get; set; }
- /// <summary>
- /// Entity
- /// </summary>
- public ArrangeExamEntity entity { get; set; }
- }
- #endregion
-
- }
- }
|