Browse Source

Merge branch '塔里木分支' of http://123.57.209.16:3000/bjquanjiang/DigitalScholl into 塔里木分支

新疆影视学院高职
ndbs 2 years ago
parent
commit
d6978aa539
7 changed files with 182 additions and 13 deletions
  1. +6
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/Exam_ExamPlanLessonController.cs
  2. +2
    -2
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanClass/Exam_ExamPlanClassService.cs
  3. +20
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanLesson/Exam_ExamPlanLessonBLL.cs
  4. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanLesson/Exam_ExamPlanLessonIBLL.cs
  5. +65
    -9
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanLesson/Exam_ExamPlanLessonService.cs
  6. +11
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomEntity.cs
  7. +77
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomService.cs

+ 6
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/Exam_ExamPlanLessonController.cs View File

@@ -196,6 +196,12 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
Exam_ExamPlanLessonData.ExamTimeEnd = etime[1];
}

if ((Exam_ExamPlanLessonData.ClassNum == null || Exam_ExamPlanLessonData.ClassNum <= 0) ||
(Exam_ExamPlanLessonData.SeatCount == null || Exam_ExamPlanLessonData.SeatCount <= 0))
{
exam_ExamPlanLessonIBLL.UpdateClassNumAndStuCount(Exam_ExamPlanLessonData.EPLId);
}

var jsonData = new
{
Exam_ExamPlanLesson = Exam_ExamPlanLessonData,


+ 2
- 2
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanClass/Exam_ExamPlanClassService.cs View File

@@ -364,9 +364,9 @@ where l.EPLId='{EPLId}'

}

//更新排考安排课程表实排班级数、实排人数
//更新排考安排课程表实排班级数、实排人数和应排班级数、应排人数(如果没有点击【一键安排班级】,应排班级数、应排人数在安排考试页面切换课程时候更新)
string sql = $@"update l
set l.RealStuCount=t.RealStuCount,l.RealClassNum=t.RealClassNum
set l.RealStuCount=t.RealStuCount,l.RealClassNum=t.RealClassNum,ClassNum=t.RealClassNum,StuCount=t.RealStuCount
from Exam_ExamPlanLesson l
join (select '{lesson.EPLId}' as EPLId,count(1) as RealClassNum,sum(ClassStuNum) as RealStuCount from Exam_ExamPlanClass where EPLId='{lesson.EPLId}'
)t on l.EPLId=t.EPLId


+ 20
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanLesson/Exam_ExamPlanLessonBLL.cs View File

@@ -216,6 +216,26 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
}
}
}

public void UpdateClassNumAndStuCount(string EPLId)
{
try
{
exam_ExamPlanLessonService.UpdateClassNumAndStuCount(EPLId);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 保存实体数据(新增、修改)
/// </summary>


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanLesson/Exam_ExamPlanLessonIBLL.cs View File

@@ -45,6 +45,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
void DeleteEntity(string keyValue);
void Check(string keyValue,int ELCheckMark);
void InitExamPlanLesson(string EPId);
void UpdateClassNumAndStuCount(string EPLId);
/// <summary>
/// 保存实体数据(新增、修改)
/// </summary>


+ 65
- 9
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanLesson/Exam_ExamPlanLessonService.cs View File

@@ -311,15 +311,7 @@ and AcademicYearNo='{exam_ExamPlan.AcademicYearNo}' and Semester='{exam_ExamPlan
group by LessonNo,lessonname";
this.BaseRepository("CollegeMIS").ExecuteBySql(sql);
}

//排考课程表
var EPLIdlist = this.BaseRepository("CollegeMIS").FindList<Exam_ExamPlanLessonEntity>(x => x.EPId == EPId).Select(x => x.EPLId);
var EPLIds = string.Join("','", EPLIdlist);
//班级
var classInfo = this.BaseRepository("CollegeMIS").FindList<Exam_ExamStudentEntity>($"select ClassNo,count(1) as StuNum FROM Exam_ExamStudent where ESEnabled=1 and ESType='{exam_ExamPlan.PlanType}' and AcademicYearNo='{exam_ExamPlan.AcademicYearNo}' and Semester='{exam_ExamPlan.Semester}' group by ClassNo");
//修改应排班级数和应考人数
var UpdSql = $"update Exam_ExamPlanLesson set ClassNum='{classInfo.Count()}',StuCount='{classInfo.Sum(x => x.StuNum)}' where EPLId in ('{EPLIds}')";
this.BaseRepository("CollegeMIS").ExecuteBySql(UpdSql);
}
catch (Exception ex)
{
@@ -334,6 +326,70 @@ and AcademicYearNo='{exam_ExamPlan.AcademicYearNo}' and Semester='{exam_ExamPlan
}
}

/// <summary>
/// 更新应考班级数和应考人数(安排考试切换课程时更新)
/// 【一键安排班级】功能也有更新
/// </summary>
/// <param name="EPLId">主键</param>
public void UpdateClassNumAndStuCount(string EPLId)
{
var db = this.BaseRepository("CollegeMIS");
try
{
db.BeginTrans();
var lesson = db.FindEntity<Exam_ExamPlanLessonEntity>(x => x.EPLId == EPLId);
//排考记录表
var examPlan = db.FindEntity<Exam_ExamPlanEntity>(lesson.EPId);
var lessonno = lesson.LessonNo;
if (lesson.LessonNo.Contains("("))
{
lessonno = lesson.LessonNo.Split('(')[0];
}

//查询课程信息
var lessoninfo = db.FindList<LessonInfoEntity>($@"select top 1 t.LessonTypeName,l.* from lessoninfo l
join [dbo].[CdLessonType] t on l.LessonTypeId = t.LTId where l.LessonNo='{lessonno}' ").FirstOrDefault();
if (lessoninfo != null)
{
var updSql = $@"update a set a.ClassNum=b.ClassNum,a.StuCount=b.StuCount
from Exam_ExamPlanLesson a join
(
select count(1) as ClassNum,SUM(StuNum) as StuCount,'{EPLId}' as EPLId from (
SELECT t.ClassNo,count(1) as StuNum FROM Exam_ExamStudent t
left join classinfo c on t.ClassNo=c.ClassNo WHERE t.ESEnabled=1 and t.AcademicYearNo='{examPlan.AcademicYearNo}' and t.Semester='{examPlan.Semester}' and t.ESType='{examPlan.PlanType}'

";
if (lessoninfo.LessonTypeName.Contains("专业"))
{
updSql += $" and c.majorno='{lessoninfo.TeachMajorNo}' ";
}
//else if (lessoninfo.LessonTypeName.Contains("公共") || lessoninfo.LessonTypeName.Contains("公开"))
//{
// //公共课添加所有班级
//}

updSql += $@" group by t.ClassNo,t.AcademicYearNo,t.Semester,t.ESType,c.ClassName
) t) b on a.EPLId=b.EPLId
where a.EPLId='{EPLId}'";

db.ExecuteBySql(updSql);
db.Commit();
}

}
catch (Exception ex)
{
db.Rollback();
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 保存实体数据(新增、修改)
/// </summary>


+ 11
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomEntity.cs View File

@@ -11,7 +11,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
/// 日 期:2022-04-15 18:12
/// 描 述:排考安排考场表
/// </summary>
public class Exam_ExamPlanRoomEntity
public class Exam_ExamPlanRoomEntity
{
#region 实体成员
/// <summary>
@@ -75,6 +75,16 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
this.EPRId = keyValue;
}
#endregion
/// <summary>
/// 考试日期
/// </summary>
[NotMapped]
public DateTime? ExamDate { get; set; }
/// <summary>
/// 考试时间
/// </summary>
[NotMapped]
public string ExamTime { get; set; }
}
}


+ 77
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Exam_ExamPlanRoom/Exam_ExamPlanRoomService.cs View File

@@ -300,8 +300,84 @@ where l.EPLId='{EPLId}'";
return (false, "请先设置排考时间!");
}
//考试班级
var EPLIds = examLessonList.Select(y => y.EPLId).ToList();
if (db.FindList<Exam_ExamPlanClassEntity>(x => EPLIds.Contains(x.EPLId)).Count() <= 0)
{
return (false, "请先添加考试班级!");
}

List<Exam_ExamPlanRoomEntity> list = new List<Exam_ExamPlanRoomEntity>();
//循环考试课程
foreach (var examLesson in examLessonList)
{
//删除考场
db.ExecuteBySql($"delete Exam_ExamPlanRoom where EPLId='{examLesson.EPLId}'");
//已设置考试时间且已添加班级
if (examLesson.ExamDate != null && examLesson.ExamTime.Contains("-") && examLesson.RealStuCount > 0)
{
//当前考试课程考试时间
var examtimeStart = Convert.ToDateTime(examLesson.ExamDate.Value.ToString("yyyy-MM-dd") + " " + (examLesson.ExamTime).Split('-')[0]);
var examtimeEnd = Convert.ToDateTime(examLesson.ExamDate.Value.ToString("yyyy-MM-dd") + " " + examLesson.ExamTime.Split('-')[1]);

//查询与考试课程的考试时间在同一天的考场,如果存在考试时间冲突的考场 则排除此考场
List<string> conflictRoom = new List<string>();
var examRoomByDateSql = $@"select a.ClassroomNo,b.ExamDate,b.ExamTime from [dbo].[Exam_ExamPlanRoom] a
join Exam_ExamPlanLesson b on a.EPLId = b.EPLId
where ExamDate = '{examLesson.ExamDate}'";
var examRoomsByDate = db.FindList<Exam_ExamPlanRoomEntity>(examRoomByDateSql).ToList();
//并集(和当前考试记录的考试课程在同一天的)
var examDatelist = list.Where(x => x.ExamDate == examLesson.ExamDate);
examRoomsByDate = examRoomsByDate.Union(examDatelist).ToList();
foreach (var examRoom in examRoomsByDate)
{
var examRoomTime1 = Convert.ToDateTime(examRoom.ExamDate.Value.ToString("yyyy-MM-dd") + " " + examRoom.ExamTime.Split('-')[0]);
var examRoomTime2 = Convert.ToDateTime(examRoom.ExamDate.Value.ToString("yyyy-MM-dd") + " " + examRoom.ExamTime.Split('-')[1]);

//此处判断当前考场时间是否在考试课程排考时间的开始前30分钟到结束后30分钟
if ((examRoomTime1 >= examtimeStart.AddMinutes(-30) && examRoomTime1 <= examtimeEnd.AddMinutes(30)) || (examRoomTime2 >= examtimeStart.AddMinutes(-30) && examRoomTime2 <= examtimeEnd.AddMinutes(30)))
{
conflictRoom.Add(examRoom.ClassroomNo);
}
}

//考场座位数
int? seatCount = 0;
var roomListSql =
$"select * from Exam_ExamRoom where AcademicYearNo='{examPlan.AcademicYearNo}' and Semester='{examPlan.Semester}' and EREnabled=1 ";
if (conflictRoom.Count() > 0)
{
var classroomNo = string.Join("','", conflictRoom.ToList());
roomListSql += $" and ClassroomNo not in ('{classroomNo}')";
}
var examRoomList = db.FindList<Exam_ExamRoomEntity>(roomListSql).OrderBy(x => Guid.NewGuid());
foreach (var room in examRoomList)
{
list.Add(new Exam_ExamPlanRoomEntity
{
ClassroomNo = room.ClassroomNo,
ExamDate = examLesson.ExamDate,
ExamTime = examLesson.ExamTime,
});
Exam_ExamPlanRoomEntity EPRoom = new Exam_ExamPlanRoomEntity();
EPRoom.Create();
EPRoom.EPLId = examLesson.EPLId;
EPRoom.ClassroomName = room.ClassroomName;
EPRoom.ClassroomNo = room.ClassroomNo;
EPRoom.SeatCount = room.SeatCount;
db.Insert(EPRoom);
seatCount += room.SeatCount;
if (seatCount >= examLesson.RealStuCount)
{
break;
}
}

db.ExecuteBySql(
$"update Exam_ExamPlanLesson set SeatCount='{seatCount}' where EPLId='{examLesson.EPLId}'");
}

}
db.Commit();
return (true, "");
}


Loading…
Cancel
Save