|
- 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-14 09:49
- /// 描 述:选修课排课
- /// </summary>
- public class ArrangeLessonTermOfElectiveService : RepositoryFactory
- {
- private static readonly HttpClient Client;
- static ArrangeLessonTermOfElectiveService()
- {
- Client = new HttpClient();
- }
- #region 获取数据
-
- /// <summary>
- /// 获取页面显示列表数据
- /// <summary>
- /// <param name="queryJson">查询参数</param>
- /// <returns></returns>
- public IEnumerable<ArrangeLessonTermOfElectiveEntity> GetPageList(Pagination pagination, string queryJson)
- {
- try
- {
- var strSql = new StringBuilder();
- strSql.Append("SELECT ");
- strSql.Append(@"
- t.Id,
- t.PaiKeId,
- t.LessonDate,
- t.AcademicYearNo,
- t.Semester,
- t.LessonNo,
- t.LessonName,
- t.LessonSortNo,
- t.LessonSection,
- t.LessonTime,
- t.StudyScore,
- t.EmpNo,
- t.EmpName,
- t.ClassRoomNo,
- t.ClassRoomName,
- t.CheckMark
- ");
- strSql.Append(" FROM ArrangeLessonTermOfElective t ");
- strSql.Append(" WHERE 1=1 ");
- var queryParam = queryJson.ToJObject();
- // 虚拟参数
- var dp = new DynamicParameters(new { });
- return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermOfElectiveEntity>(strSql.ToString(), dp, pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 获取ArrangeLessonTermOfElective表实体数据
- /// <param name="keyValue">主键</param>
- /// <summary>
- /// <returns></returns>
- public ArrangeLessonTermOfElectiveEntity GetArrangeLessonTermOfElectiveEntity(string keyValue)
- {
- try
- {
- return this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonTermOfElectiveEntity>(keyValue);
- }
- 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<ArrangeLessonTermOfElectiveEntity>(t => t.Id == 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, ArrangeLessonTermOfElectiveEntity 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>
- /// 按条件同步选修排课系统数据
- /// </summary>
- /// <returns></returns>
- public async Task<bool> AsyncArrangeLessonOfElectiveDataByCondition(ArrangeLessonTermOfElectiveEntity 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("ArrangeLessonOfElectiveAPI"), httpContent).Result.Content.ReadAsStringAsync();
-
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<Root>(apiData);
- if (!data.success)
- {
- return result;
- }
- var dataList = data.entity.list;
- if (dataList.Any())
- {
- //ArrangeLessonTermOfElective数据处理
- var insertDataList = new List<ArrangeLessonTermOfElectiveEntity>();
- var lessonData = (await BaseRepository("CollegeMIS").FindListAsync<LessonInfoEntity>()).ToList();
- var oldArrangeLessonTermOfElectiveDataList = BaseRepository("CollegeMIS")
- .FindList<ArrangeLessonTermOfElectiveEntity>(m => m.F_SchoolId == entity.F_SchoolId
- && m.AcademicYearNo == entity.AcademicYearNo && m.Semester == entity.Semester).ToList();
- foreach (var item in dataList)
- {
- if (!string.IsNullOrEmpty(item.paike.timeText))
- {
- foreach (var lessontime in item.paike.timeText.TrimEnd(',').Split(','))
- {
- string tmplessontime = "";
- if (item.paike.section == "1")
- {
- tmplessontime = "10:00-10:40";
- }
- if (item.paike.section == "2")
- {
- tmplessontime = "10:50-11:30";
- }
- if (item.paike.section == "3")
- {
- tmplessontime = "12:00-12:40";
- }
- if (item.paike.section == "4")
- {
- tmplessontime = "12:50-13:30";
- }
- if (item.paike.section == "5")
- {
- tmplessontime = "16:00-16:40";
- }
- if (item.paike.section == "6")
- {
- tmplessontime = "16:50-17:30";
- }
- if (item.paike.section == "7")
- {
- tmplessontime = "18:00-18:40";
- }
- if (item.paike.section == "8")
- {
- tmplessontime = "18:50-19:30";
- }
- if (item.paike.section == "9")
- {
- tmplessontime = "20:20-21:00";
- }
- if (item.paike.section == "10")
- {
- tmplessontime = "21:10-21:50";
- }
- var insertData = new ArrangeLessonTermOfElectiveEntity
- {
- Id = Guid.NewGuid().ToString(),
- PaiKeId = item.paike.id,
- LessonDate = DateTime.Parse(lessontime),
- AcademicYearNo = item.paike.year,
- Semester = item.paike.number,
- LessonNo = item.paike.curriculunNumber,
- LessonName = item.paike.curriculunName,
- LessonSortNo = "2",
- LessonTime = tmplessontime,
- LessonSection = item.paike.week + item.paike.section,
- StudyScore = lessonData.FirstOrDefault(x => x.LessonNo == item.paike.curriculunNumber)?.StudyScore,
- EmpNo = item.paike.teacherNumber,
- EmpName = item.paike.teacherName,
- ClassRoomNo = item.paike.classRoomNumber,
- ClassRoomName = item.paike.classRoomName,
- F_SchoolId = entity.F_SchoolId,
- CheckMark = "1"
- };
- if (oldArrangeLessonTermOfElectiveDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo
- && m.Semester == insertData.Semester && m.LessonNo == insertData.LessonNo
- && m.LessonSection == insertData.LessonSection && m.EmpNo == insertData.EmpNo
- && m.ClassRoomNo == insertData.ClassRoomNo) == 0)
- {
- insertDataList.Add(insertData);
- }
- }
- }
-
- }
- var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList);
-
- //OpenLessonPlanOfElective数据处理
- var strAcademicYear = entity.AcademicYearNo;
- var strSemester = entity.Semester;
- var schoolId = entity.F_SchoolId;
- var ArrangeLessonTermOfElectiveData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermOfElectiveEntity>(@"select * from ArrangeLessonTermOfElective where AcademicYearNo='" + strAcademicYear + "' and Semester='" + strSemester + "' and F_SchoolId='" + schoolId + "'")).ToList();
- var arrangeLessonTermData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermOfElectiveEntity>(@"select PaiKeId,AcademicYearNo,Semester,LessonNo,LessonName,LessonSection,EmpNo,EmpName,ClassRoomNo,ClassRoomName,F_SchoolId from ArrangeLessonTermOfElective where AcademicYearNo='" + strAcademicYear + "' and Semester='" + strSemester + "' and F_SchoolId='" + schoolId + "' group by PaiKeId, AcademicYearNo, Semester, LessonNo, LessonName, LessonSection, EmpNo, EmpName, ClassRoomNo, ClassRoomName,F_SchoolId ")).ToList();
- var OpenLessonPlanOfElectiveData = (await BaseRepository("CollegeMIS").FindListAsync<OpenLessonPlanOfElectiveEntity>(@"select * from OpenLessonPlanOfElective where AcademicYearNo='" + strAcademicYear + "' and Semester='" + strSemester + "' and F_SchoolId='" + schoolId + "'")).ToList();
- var insertOpenLessonPlanOfElectiveDataList = new List<OpenLessonPlanOfElectiveEntity>();
- if (arrangeLessonTermData.Any())
- {
- foreach (var item in arrangeLessonTermData)
- {
- var insertOpenLessonPlanOfElectiveData = new OpenLessonPlanOfElectiveEntity()
- {
- Id = item.PaiKeId,
- MakeDate = DateTime.Now,
- AcademicYearNo = item.AcademicYearNo,
- Semester = item.Semester,
- LessonNo = item.LessonNo,
- PartCode = "",
- LessonName = item.LessonName,
- LessonSortNo = lessonData.FirstOrDefault(x => x.LessonNo == item.LessonNo)?.LessonSortNo,
- LessonSortDetailNo = lessonData.FirstOrDefault(x => x.LessonNo == item.LessonNo)?.LessonSortDetailNo,
- LessonSection = item.LessonSection,
- LessonTime = ArrangeLessonTermOfElectiveData.FirstOrDefault(x => x.PaiKeId == item.PaiKeId)?.LessonTime,
- StudyScore = lessonData.FirstOrDefault(x => x.LessonNo == item.LessonNo)?.StudyScore,
- StartWeek = 1,
- EndWeek = ArrangeLessonTermOfElectiveData.Count(x => x.PaiKeId == item.PaiKeId),
- StartDate = ArrangeLessonTermOfElectiveData.Where(x => x.PaiKeId == item.PaiKeId).OrderBy(x => x.LessonDate).FirstOrDefault()?.LessonDate,
- EndDate = ArrangeLessonTermOfElectiveData.Where(x => x.PaiKeId == item.PaiKeId).OrderBy(x => x.LessonDate).LastOrDefault()?.LessonDate,
- CheckStyleNo = "1",
- ScoreRecordStyleNo = "1",
- EmpNo = item.EmpNo,
- EmpName = item.EmpName,
- ClassRoomNo = item.ClassRoomNo,
- ClassRoomName = item.ClassRoomName,
- CheckMark = "1",
- StuNumMax = 0,
- StuNum = 0,
- F_SchoolId = item.F_SchoolId
- };
- //非空判断
- if (OpenLessonPlanOfElectiveData.Count(x =>
- x.AcademicYearNo == insertOpenLessonPlanOfElectiveData.AcademicYearNo &&
- x.Semester == insertOpenLessonPlanOfElectiveData.Semester &&
- x.LessonNo == insertOpenLessonPlanOfElectiveData.LessonNo &&
- x.LessonSortNo == insertOpenLessonPlanOfElectiveData.LessonSortNo &&
- x.LessonSection == insertOpenLessonPlanOfElectiveData.LessonSection &&
- x.EmpNo == insertOpenLessonPlanOfElectiveData.EmpNo &&
- x.ClassRoomNo == insertOpenLessonPlanOfElectiveData.ClassRoomNo &&
- x.F_SchoolId == insertOpenLessonPlanOfElectiveData.F_SchoolId) == 0 && insertOpenLessonPlanOfElectiveDataList.Count(x =>
- x.AcademicYearNo == insertOpenLessonPlanOfElectiveData.AcademicYearNo &&
- x.Semester == insertOpenLessonPlanOfElectiveData.Semester &&
- x.LessonNo == insertOpenLessonPlanOfElectiveData.LessonNo &&
- x.LessonSortNo == insertOpenLessonPlanOfElectiveData.LessonSortNo &&
- x.LessonSection == insertOpenLessonPlanOfElectiveData.LessonSection &&
- x.EmpNo == insertOpenLessonPlanOfElectiveData.EmpNo &&
- x.ClassRoomNo == insertOpenLessonPlanOfElectiveData.ClassRoomNo &&
- x.F_SchoolId == insertOpenLessonPlanOfElectiveData.F_SchoolId) == 0)
- {
- if (BaseRepository("CollegeMIS").FindEntity<OpenLessonPlanOfElectiveEntity>(m => m.Id == insertOpenLessonPlanOfElectiveData.Id) == null
- && BaseRepository("CollegeMIS").FindEntity<OpenLessonPlanOfElectiveDelEntity>(m => m.Id == insertOpenLessonPlanOfElectiveData.Id) == null)
- {
- insertOpenLessonPlanOfElectiveDataList.Add(insertOpenLessonPlanOfElectiveData);
- }
- }
- }
-
- await BaseRepository("CollegeMIS").InsertAsync(insertOpenLessonPlanOfElectiveDataList);
- }
-
- if (insertResult > 0)
- {
- result = true;
- }
- }
- }
-
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- return result;
- }
-
- /// <summary>
- /// 按条件清空选修排课数据
- /// </summary>
- /// <returns></returns>
- public async Task<bool> AsyncModifyArrangeLessonOfElectiveDataByCondition(ArrangeLessonTermOfElectiveEntity entity)
- {
- var db = BaseRepository("CollegeMIS");
- bool result = false;
- try
- {
- db.BeginTrans();
- 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("ModifyArrangeLessonOfElectiveAPI"), httpContent).Result.Content.ReadAsStringAsync();
-
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<Root>(apiData);
- if (data.success)
- {
- var strAcademicYear = entity.AcademicYearNo;
- var strSemester = entity.Semester;
- var schoolId = entity.F_SchoolId;
- await db.ExecuteAsyncBySql(
- $"delete from ElectiveMajor where OLPOEId in(select id from OpenLessonPlanOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}' ) or OLPOEId in (select id from OpenLessonPlanOfElectiveDel where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}' ) ");
- var executeResult = await db.ExecuteAsyncBySql(
- $"delete from ArrangeLessonTermOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}'");
- await db.ExecuteAsyncBySql(
- $"delete from OpenLessonPlanOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}'");
- await db.ExecuteAsyncBySql(
- $"delete from ElectiveMergeItem where emid in (select emid from ElectiveMerge where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}')");
- await db.ExecuteAsyncBySql(
- $"delete from ElectiveMerge where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}'");
- await db.ExecuteAsyncBySql(
- $"delete from OpenLessonPlanOfElectiveDel where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}'");
- await db.ExecuteAsyncBySql(
- $"delete from StuSelectLessonListOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' and F_SchoolId='{schoolId}'");
- if (executeResult > 0)
- {
- result = true;
- }
- db.Commit();
- }
- }
- }
- catch (Exception ex)
- {
- db.Rollback();
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- return result;
- }
-
- /// <summary>
- /// 同步当前学期选修排课系统数据
- /// </summary>
- /// <returns></returns>
- public async Task<bool> AsyncArrangeLessonOfElectiveData()
- {
- bool result = false;
- try
- {
- var apiData = await Client.GetStringAsync(Config.GetValue("ArrangeLessonOfElectiveAPI"));
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<Root>(apiData);
- if (!data.success)
- {
- return result;
- }
- var dataList = data.entity.list;
- if (dataList.Any())
- {
- //ArrangeLessonTermOfElective数据处理
- var insertDataList = new List<ArrangeLessonTermOfElectiveEntity>();
- var lessonData = (await BaseRepository("CollegeMIS").FindListAsync<LessonInfoEntity>()).ToList();
- foreach (var item in dataList)
- {
- var insertData = new ArrangeLessonTermOfElectiveEntity
- {
- Id = Guid.NewGuid().ToString(),
- PaiKeId = item.paike.id,
- LessonDate = DateTime.Parse(item.times),
- AcademicYearNo = item.schoolYear,
- Semester = item.paike.semester,
- LessonNo = item.paike.curriculunId,
- LessonName = item.paike.curriculunName,
- LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.paike.curriculunId)?.LessonSortNo,
- LessonTime = item.paike.curriculunTime,
- LessonSection = item.paike.week + item.paike.section,
- StudyScore = lessonData.FirstOrDefault(x => x.LessonNo == item.paike.curriculunId)?.StudyScore,
- EmpNo = item.paike.teacherId,
- EmpName = item.paike.teacherName,
- ClassRoomNo = item.paike.classRoomId,
- ClassRoomName = item.paike.classRoomName,
- CheckMark = "1"
- };
- insertDataList.Add(insertData);
- }
- var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList);
-
- //OpenLessonPlanOfElective数据处理
- var strAcademicYear = insertDataList.First().AcademicYearNo;
- var strSemester = insertDataList.First().Semester;
- var ArrangeLessonTermOfElectiveData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermOfElectiveEntity>(@"select * from ArrangeLessonTermOfElective where AcademicYearNo='" + strAcademicYear + "' and Semester='" + strSemester + "'")).ToList();
- var arrangeLessonTermData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermOfElectiveEntity>(@"select PaiKeId,AcademicYearNo,Semester,LessonNo,LessonName,LessonSection,EmpNo,EmpName,ClassRoomNo,ClassRoomName from ArrangeLessonTermOfElective where AcademicYearNo='" + strAcademicYear + "' and Semester='" + strSemester + "' group by PaiKeId, AcademicYearNo, Semester, LessonNo, LessonName, LessonSection, EmpNo, EmpName, ClassRoomNo, ClassRoomName")).ToList();
- var OpenLessonPlanOfElectiveData = (await BaseRepository("CollegeMIS").FindListAsync<OpenLessonPlanOfElectiveEntity>(@"select * from OpenLessonPlanOfElective where AcademicYearNo='" + strAcademicYear + "' and Semester='" + strSemester + "'")).ToList();
- var insertOpenLessonPlanOfElectiveDataList = new List<OpenLessonPlanOfElectiveEntity>();
- if (arrangeLessonTermData.Any())
- {
- foreach (var item in arrangeLessonTermData)
- {
- var insertOpenLessonPlanOfElectiveData = new OpenLessonPlanOfElectiveEntity()
- {
- Id = item.PaiKeId,
- MakeDate = DateTime.Now,
- AcademicYearNo = item.AcademicYearNo,
- Semester = item.Semester,
- LessonNo = item.LessonNo,
- PartCode = "",
- LessonName = item.LessonName,
- LessonSortNo = lessonData.FirstOrDefault(x => x.LessonNo == item.LessonNo)?.LessonSortNo,
- LessonSortDetailNo = lessonData.FirstOrDefault(x => x.LessonNo == item.LessonNo)?.LessonSortDetailNo,
- LessonSection = item.LessonSection,
- LessonTime = ArrangeLessonTermOfElectiveData.FirstOrDefault(x => x.PaiKeId == item.PaiKeId)?.LessonTime,
- StudyScore = lessonData.FirstOrDefault(x => x.LessonNo == item.LessonNo)?.StudyScore,
- StartWeek = 1,
- EndWeek = ArrangeLessonTermOfElectiveData.Count(x => x.PaiKeId == item.PaiKeId),
- StartDate = ArrangeLessonTermOfElectiveData.Where(x => x.PaiKeId == item.PaiKeId).OrderBy(x => x.LessonDate).FirstOrDefault()?.LessonDate,
- EndDate = ArrangeLessonTermOfElectiveData.Where(x => x.PaiKeId == item.PaiKeId).OrderBy(x => x.LessonDate).LastOrDefault()?.LessonDate,
- CheckStyleNo = "1",
- ScoreRecordStyleNo = "1",
- EmpNo = item.EmpNo,
- EmpName = item.EmpName,
- ClassRoomNo = item.ClassRoomNo,
- ClassRoomName = item.ClassRoomName,
- CheckMark = "1",
- StuNumMax = 0,
- StuNum = 0
- };
- //非空判断
- if (OpenLessonPlanOfElectiveData.Count(x =>
- x.AcademicYearNo == insertOpenLessonPlanOfElectiveData.AcademicYearNo &&
- x.Semester == insertOpenLessonPlanOfElectiveData.Semester &&
- x.LessonNo == insertOpenLessonPlanOfElectiveData.LessonNo &&
- x.LessonSortNo == insertOpenLessonPlanOfElectiveData.LessonSortNo &&
- x.LessonSection == insertOpenLessonPlanOfElectiveData.LessonSection &&
- x.EmpNo == insertOpenLessonPlanOfElectiveData.EmpNo &&
- x.ClassRoomNo == insertOpenLessonPlanOfElectiveData.ClassRoomNo) == 0 && insertOpenLessonPlanOfElectiveDataList.Count(x =>
- x.AcademicYearNo == insertOpenLessonPlanOfElectiveData.AcademicYearNo &&
- x.Semester == insertOpenLessonPlanOfElectiveData.Semester &&
- x.LessonNo == insertOpenLessonPlanOfElectiveData.LessonNo &&
- x.LessonSortNo == insertOpenLessonPlanOfElectiveData.LessonSortNo &&
- x.LessonSection == insertOpenLessonPlanOfElectiveData.LessonSection &&
- x.EmpNo == insertOpenLessonPlanOfElectiveData.EmpNo &&
- x.ClassRoomNo == insertOpenLessonPlanOfElectiveData.ClassRoomNo) == 0)
- {
- insertOpenLessonPlanOfElectiveDataList.Add(insertOpenLessonPlanOfElectiveData);
- }
- }
-
- await BaseRepository("CollegeMIS").InsertAsync(insertOpenLessonPlanOfElectiveDataList);
- }
-
- if (insertResult > 0)
- {
- result = true;
- }
- }
- }
-
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- return result;
- }
-
- /// <summary>
- /// 清空当前学期选修排课数据
- /// </summary>
- /// <returns></returns>
- public async Task<bool> AsyncModifyArrangeLessonOfElectiveData()
- {
- var db = BaseRepository("CollegeMIS");
- bool result = false;
- try
- {
- db.BeginTrans();
- var apiData = await Client.GetStringAsync(Config.GetValue("ModifyArrangeLessonOfElectiveAPI"));
- if (!string.IsNullOrEmpty(apiData))
- {
- var data = JsonConvert.DeserializeObject<Root>(apiData);
- if (data.success)
- {
- var semesterAndYear = Common.GetSemesterAndYear();
- var strAcademicYear = semesterAndYear.AcademicYearShort;
- var strSemester = semesterAndYear.Semester;
- await db.ExecuteAsyncBySql(
- $"delete from ElectiveMajor where OLPOEId in(select id from OpenLessonPlanOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}') or OLPOEId in (select id from OpenLessonPlanOfElectiveDel where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}') ");
- var executeResult = await db.ExecuteAsyncBySql(
- $"delete from ArrangeLessonTermOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
- await db.ExecuteAsyncBySql(
- $"delete from OpenLessonPlanOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
- await db.ExecuteAsyncBySql(
- $"delete from ElectiveMergeItem where emid in (select emid from ElectiveMerge where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}') ");
- await db.ExecuteAsyncBySql(
- $"delete from ElectiveMerge where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
- await db.ExecuteAsyncBySql(
- $"delete from OpenLessonPlanOfElectiveDel where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
- await db.ExecuteAsyncBySql(
- $"delete from StuSelectLessonListOfElective where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
- if (executeResult > 0)
- {
- result = true;
- }
- db.Commit();
- }
- }
- }
- catch (Exception ex)
- {
- db.Rollback();
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- return result;
- }
-
- /// <summary>
- /// 选修课课程表
- /// </summary>
- /// <param name="userAccount">账号</param>
- /// <param name="userType">用户类型 学生 教师</param>
- /// <param name="startDate">查询开始时间</param>
- /// <param name="endDate">查询截止时间</param>
- /// <returns></returns>
- public IEnumerable<TimeTable> 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 a.LessonDate,a.AcademicYearNo as AcademicYear,a.Semester,a.LessonNo,a.LessonName+'[选修]' as LessonName,a.LessonSection as LessonTime,a.EmpNo,a.EmpName,a.ClassRoomName as ClassroomName,a.ClassRoomNo,a.LessonSortNo,b.OLPEId
- // from StuSelectLessonListOfElective b
- // left join ArrangeLessonTermOfElective a on b.OLPEId=a.PaiKeId
- // where b.StuNo=@userAccount and b.Status=2
- // and b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester
- // and a.AcademicYearNo=@strAcademicYear and a.Semester=@strSemester
- // and a.LessonDate >= @startDate and a.LessonDate <=@endDate
- // and a.CheckMark='1'";
- sql = @" select e.EnName,a.LessonDate,a.AcademicYearNo as AcademicYear,a.Semester,a.LessonNo,e.LessonName,a.LessonSection as LessonTime,a.EmpNo,emp.EmpName,cr.ClassroomName,a.ClassRoomNo,a.LessonSortNo,ccc.olpoeid as OLPEId
- from
- (select olpoeid from ElectiveMergeItem
- where emid in (select emid from ElectiveMergeItem aa left
- join StuSelectLessonListOfElective bb on aa.olpoeid = bb.olpeid
-
- where bb.StuNo = @userAccount and bb.Status = 2
- and bb.AcademicYearNo = @strAcademicYear and bb.Semester = @strSemester
- )) as ccc
- left join
- ArrangeLessonTermOfElective a on ccc.olpoeid = a.PaiKeId
- left join LessonInfo e on a.LessonNo=e.LessonNo
- left join EmpInfo emp on a.EmpNo=emp.EmpNo
- left join ClassroomInfo cr on a.ClassRoomNo=cr.ClassroomNo
- where
- a.AcademicYearNo = @strAcademicYear and a.Semester = @strSemester
- and a.LessonDate >= @startDate and a.LessonDate <=@endDate
- and a.CheckMark = '1'
- union
- select e.EnName,a.LessonDate,a.AcademicYearNo as AcademicYear,a.Semester,a.LessonNo,e.LessonName,a.LessonSection as LessonTime,a.EmpNo,emp.EmpName,cr.ClassroomName,a.ClassRoomNo,a.LessonSortNo,b.OLPEId
- from StuSelectLessonListOfElective b
- left join ArrangeLessonTermOfElective a on b.OLPEId=a.PaiKeId
- left join LessonInfo e on a.LessonNo=e.LessonNo
- left join EmpInfo emp on a.EmpNo=emp.EmpNo
- left join ClassroomInfo cr on a.ClassRoomNo=cr.ClassroomNo
- where b.StuNo=@userAccount and b.Status=2
- and b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester
- and a.AcademicYearNo=@strAcademicYear and a.Semester=@strSemester
- and a.LessonDate >= @startDate and a.LessonDate <=@endDate
- and a.CheckMark='1'
- ";
- }
- else
- {
- sql = @"select e.EnName,a.LessonDate,a.AcademicYearNo as AcademicYear,a.Semester,a.LessonNo,e.LessonName,a.LessonSection as LessonTime,a.EmpNo,emp.EmpName,cr.ClassroomName,a.ClassRoomNo,a.LessonSortNo
- from ArrangeLessonTermOfElective a
- left join LessonInfo e on a.LessonNo=e.LessonNo
- left join EmpInfo emp on a.EmpNo=emp.EmpNo
- left join ClassroomInfo cr on a.ClassRoomNo=cr.ClassroomNo
- where a.EmpNo=@userAccount
- and a.AcademicYearNo=@strAcademicYear and a.Semester=@strSemester
- and a.LessonDate >= @startDate and a.LessonDate <=@endDate
- and a.CheckMark='1'";
- }
- try
- {
- var result = BaseRepository("CollegeMIS").FindList<TimeTable>(sql, new { userAccount, startDate, endDate, strAcademicYear, strSemester });
- return result;
- }
- 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> 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 e.EnName,a.F_SchoolId,a.LessonDate,a.AcademicYearNo as AcademicYear,a.Semester,a.LessonNo,e.LessonName,a.LessonSection as LessonTime,a.EmpNo,emp.EmpName,cr.ClassroomName,a.ClassRoomNo,a.LessonSortNo
- from ArrangeLessonTermOfElective a
- left join LessonInfo e on a.LessonNo=e.LessonNo
- left join EmpInfo emp on a.EmpNo=emp.EmpNo
- left join ClassroomInfo cr on a.ClassRoomNo=cr.ClassroomNo
- where a.AcademicYearNo=@strAcademicYear and a.Semester=@strSemester
- and a.LessonDate>=@startDate and a.LessonDate<=@endDate
- and a.CheckMark=1";
- try
- {
- var result = BaseRepository("CollegeMIS").FindList<TimeTable>(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);
- }
- }
- }
-
-
- /// <summary>
- /// 获取相关课程考勤的学生信息--选修课
- /// </summary>
- /// <param name="year"></param>
- /// <param name="semester"></param>
- /// <param name="empno"></param>
- /// <param name="lessonNo"></param>
- /// <param name="teachClassNo"></param>
- /// <param name="lessonSortNo"></param>
- /// <param name="classRoomNo"></param>
- /// <param name="lessonTime"></param>
- /// <returns></returns>
- public IEnumerable<StuSelectLessonListEntity> 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.[LessonSortNo]
- ,a.[Grade]
- ,a.[EmpNo],a.Id as StuSelectLessonListOfElectiveId,b.ID as StuAttendanceNo,b.AttendOrNo,b.Sort,b.AttenCondition,b.AttenScore
- ");
- strSql.Append(" FROM StuSelectLessonListOfElective 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.ClassRoomNo=b.ClassRoomNo and a.LessonSection=b.LessonTime ");
- strSql.Append($" and b.LessonDate='{queryParam["lessonDate"]}'");
- strSql.Append(" WHERE 1=1 ");
- strSql.Append($"and a.AcademicYearNo='{ queryParam["year"]}' and a.Semester='{queryParam["semester"]}' and a.Status=2 and a.EmpNo='{queryParam["empno"]}' and a.LessonNo='{queryParam["lessonNo"]}' and a.ClassRoomNo='{queryParam["classRoomNo"]}' and a.LessonSection like '%{queryParam["lessonTime"]}%'");
-
-
-
- return this.BaseRepository("CollegeMIS").FindList<StuSelectLessonListEntity>(strSql.ToString(), pagination);
-
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- /// <summary>
- /// 考试系统中获取学生成绩数据
- /// </summary>
- /// <returns></returns>
- public async Task<bool> AsyncStuScoreData()
- {
- bool result = false;
- var db = this.BaseRepository("CollegeMIS").BeginTrans();
- try
- {
- var values = new List<KeyValuePair<string, string>>();
- values.Add(new KeyValuePair<string, string>("scoolYear", "18-19"));
- values.Add(new KeyValuePair<string, string>("term ", "2"));
-
- var content = new FormUrlEncodedContent(values);
-
- var response = await Client.PostAsync("http://192.168.2.125:8088/app/stuScore", content);
- response.EnsureSuccessStatusCode();
-
- var responseString = await response.Content.ReadAsStringAsync();
-
- if (!string.IsNullOrEmpty(responseString))
- {
- var data = JsonConvert.DeserializeObject<StuScoreRoot>(responseString);
- if (data.success)
- {
- var dataList = data.entity.stuScoreList;
- if (dataList.Any())
- {
- foreach (var item in dataList)
- {
- if (item.lessonno.IndexOf(',') == -1)//单课程
- {
- //todo:测试是否能找到对应的成绩记录
- var aa = this.BaseRepository("CollegeMIS").FindObject("select * from StuScore where where StuNo='" + item.stuno + "' and AcademicYearNo='" + item.scoolYear + "' and Semester='" + item.term + "' and LessonNo='" + item.lessonno + "' and TeachClassNo='" + item.teachclassno + "' and LessonSortNo='1' and CheckMark='0' ");
-
- this.BaseRepository("CollegeMIS").ExecuteBySql("update StuScore set TermEndScore='" + Convert.ToDecimal(item.termendscore) + "' where StuNo='" + item.stuno + "' and AcademicYearNo='" + item.scoolYear + "' and Semester='" + item.term + "' and LessonNo='" + item.lessonno + "' and TeachClassNo='" + item.teachclassno + "' and LessonSortNo='1' and CheckMark='0' ");
- }
- else//多课程
- {
- var lessonnoList = item.lessonno.Split(',');
- foreach (var lessonnoItem in lessonnoList)
- {
- this.BaseRepository("CollegeMIS").ExecuteBySql("update StuScore set TermEndScore='" + Convert.ToDecimal(item.termendscore) + "' where StuNo='" + item.stuno + "' and AcademicYearNo='" + item.scoolYear + "' and Semester='" + item.term + "' and LessonNo='" + lessonnoItem + "' and TeachClassNo='" + item.teachclassno + "' and LessonSortNo='1' and CheckMark='0' ");
- }
- }
- }
- db.Commit();
- result = true;
- }
- }
-
- }
-
- }
- catch (Exception ex)
- {
- db.Rollback();
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- return result;
- }
-
- #endregion
-
-
- #region 学生成绩数据
-
- public class StuScoreList
- {
- 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 StuScoreEntity
- {
- /// <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<StuScoreList> stuScoreList { get; set; }
- }
-
- public class StuScoreRoot
- {
- /// <summary>
- /// 操作成功
- /// </summary>
- public string message { get; set; }
- /// <summary>
- /// Success
- /// </summary>
- public bool success { get; set; }
- /// <summary>
- /// Entity
- /// </summary>
- public StuScoreEntity entity { get; set; }
- }
-
- #endregion
- }
- }
|