@@ -21,7 +21,6 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
private Exam_ExamPlanClassIBLL exam_ExamPlanClassIBLL = new Exam_ExamPlanClassBLL(); | |||
private Exam_ExamStudentIBLL exam_ExamStudentIBLL = new Exam_ExamStudentBLL(); | |||
private Exam_ExamPlanRoomIBLL exam_ExamPlanRoomIBLL = new Exam_ExamPlanRoomBLL(); | |||
private StuInfoBasicIBLL StuInfoBasicIBLL = new StuInfoBasicBLL(); | |||
#region 视图功能 | |||
@@ -152,7 +151,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
/// <param name="pagination"></param> | |||
/// <param name="queryJson"></param> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetPageListForLesson(string pagination, string queryJson) | |||
{ | |||
@@ -227,6 +226,18 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
return Success(data); | |||
} | |||
/// <summary> | |||
/// 获取考试记录安排时间数据 | |||
/// </summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetExamDateSel(string EPLId) | |||
{ | |||
var data = exam_ExamPlanLessonIBLL.GetExamDateSel(EPLId); | |||
return Success(data); | |||
} | |||
#endregion | |||
#region 提交数据 | |||
@@ -334,12 +345,13 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||
} | |||
entity.EPLId = keyValue; | |||
//判断考试时间是否冲突 | |||
//var res = exam_ExamPlanLessonIBLL.IsExamTimeClash(entity); | |||
//if (res.flag && !string.IsNullOrEmpty(res.lessonname)) | |||
//{ | |||
// return Fail("考试时间与课程(" + res.lessonname + ")冲突!"); | |||
//} | |||
//判断考试时间是否冲突,同一专业同一时间段只能安排一门考试课程 | |||
var res = exam_ExamPlanLessonIBLL.IsAllowSave(entity); | |||
if (!res.flag && !string.IsNullOrEmpty(res.str)) | |||
{ | |||
return Fail(res.str); | |||
} | |||
//保存 | |||
exam_ExamPlanLessonIBLL.SaveEntity(keyValue, entity); | |||
@@ -4,16 +4,20 @@ | |||
} | |||
<div class="lr-form-wrap" id="form"> | |||
<div class="col-xs-12 lr-form-item" data-table="Exam_ExamPlanLesson"> | |||
<div class="lr-form-item-title">考试时间<font face="宋体">*</font></div> | |||
<div id="ExamDateSel" isvalid="yes" checkexpession="NotNull"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="Exam_ExamPlanLesson" style="display: none;"> | |||
<div class="lr-form-item-title">考试日期<font face="宋体">*</font></div> | |||
<input id="ExamDate" type="text" class="form-control lr-input-wdatepicker" isvalid="yes" checkexpession="NotNull" data-dateFmt="yyyy-MM-dd" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#ExamDate').trigger('change'); } })" /> | |||
<input id="ExamDate" type="text" class="form-control lr-input-wdatepicker" isvalid="yes" checkexpession="NotNull" data-dateFmt="yyyy-MM-dd" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#ExamDate').trigger('change'); } })" /> | |||
</div> | |||
<div class="col-xs-6 lr-form-item" data-table="Exam_ExamPlanLesson"> | |||
<div class="col-xs-6 lr-form-item" data-table="Exam_ExamPlanLesson" style="display: none;"> | |||
<div class="lr-form-item-title">开始时间<font face="宋体">*</font></div> | |||
<input id="ExamTimeStart" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" placeholder="请填写时分,例如:09:00"/> | |||
<input id="ExamTimeStart" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" placeholder="请填写时分,例如:09:00" /> | |||
</div> | |||
<div class="col-xs-6 lr-form-item" data-table="Exam_ExamPlanLesson"> | |||
<div class="col-xs-6 lr-form-item" data-table="Exam_ExamPlanLesson" style="display: none;"> | |||
<div class="lr-form-item-title">结束时间<font face="宋体">*</font></div> | |||
<input id="ExamTimeEnd" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" placeholder="请填写时分,例如:12:00"/> | |||
<input id="ExamTimeEnd" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" placeholder="请填写时分,例如:12:00" /> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/Exam_ExamPlanLesson/Form.js") |
@@ -15,17 +15,36 @@ var bootstrap = function ($, learun) { | |||
page.initData(); | |||
}, | |||
bind: function () { | |||
$('#ExamDateSel').lrselect({ | |||
placeholder: "请选择考试时间", | |||
allowSearch: false, | |||
url: top.$.rootUrl + '/EducationalAdministration/Exam_ExamPlanLesson/GetExamDateSel?EPLId='+keyValue, | |||
value: 'edate', | |||
text: 'edate', | |||
select: function(item) { | |||
if (item) { | |||
$('#ExamDate').val(item.ExamDate); | |||
$('#ExamTimeStart').val(item.ExamTimeStart); | |||
$('#ExamTimeEnd').val(item.ExamTimeEnd); | |||
} | |||
} | |||
}); | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Exam_ExamPlanLesson/GetFormData?keyValue=' + keyValue, function (data) { | |||
for (var id in data) { | |||
if (!!data[id].length && data[id].length > 0) { | |||
$('#' + id ).jfGridSet('refreshdata', data[id]); | |||
$('#' + id).jfGridSet('refreshdata', data[id]); | |||
} | |||
else { | |||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); | |||
} | |||
if (!!data[id] && !!data[id].ExamDate) { | |||
var edate=learun.formatDate(data[id].ExamDate,'yyyy-MM-dd')+" "+data[id].ExamTimeStart+'-'+data[id].ExamTimeEnd; | |||
$('#ExamDateSel').lrselectSet(edate); | |||
} | |||
} | |||
}); | |||
} | |||
@@ -80,6 +80,26 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
} | |||
public IEnumerable<Exam_ExamPlanTimeEntity> GetExamDateSel(string EPLId) | |||
{ | |||
try | |||
{ | |||
return exam_ExamPlanLessonService.GetExamDateSel(EPLId); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取Exam_ExamPlanLesson表实体数据 | |||
/// </summary> | |||
@@ -260,7 +280,24 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
} | |||
public (bool flag, string str) IsAllowSave(Exam_ExamPlanLessonEntity entity) | |||
{ | |||
try | |||
{ | |||
return exam_ExamPlanLessonService.IsAllowSave(entity); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 判断考试时间是否冲突 | |||
/// </summary> | |||
@@ -23,6 +23,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
IEnumerable<Exam_ExamPlanLessonEntity> GetPageList(Pagination pagination, string queryJson); | |||
IEnumerable<Exam_ExamPlanLessonEntity> GetPageListForLesson(Pagination pagination, string queryJson); | |||
IEnumerable<Exam_ExamPlanLessonEntity> GetListByEPId(string EPId); | |||
IEnumerable<Exam_ExamPlanTimeEntity> GetExamDateSel(string EPLId); | |||
/// <summary> | |||
/// 获取Exam_ExamPlanLesson表实体数据 | |||
/// </summary> | |||
@@ -54,7 +55,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
void SaveEntity(string keyValue, Exam_ExamPlanLessonEntity entity); | |||
(bool flag, string msg) PlanLessonTimeByEPId(string keyValue); | |||
(bool flag, string str) IsAllowSave(Exam_ExamPlanLessonEntity entity); | |||
(bool flag, string lessonname) IsExamTimeClash(Exam_ExamPlanLessonEntity entity); | |||
#endregion | |||
@@ -148,6 +148,55 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
} | |||
/// <summary> | |||
/// 获取考试记录安排时间数据 | |||
/// </summary> | |||
/// <param name="EPLId"></param> | |||
/// <returns></returns> | |||
public IEnumerable<Exam_ExamPlanTimeEntity> GetExamDateSel(string EPLId) | |||
{ | |||
try | |||
{ | |||
var epLesson = this.BaseRepository("CollegeMIS").FindEntity<Exam_ExamPlanLessonEntity>(EPLId); | |||
string sql = $"Select Id,ExamDate,ExamTimeStart,ExamTimeEnd,CONVERT(nvarchar(10),ExamDate,120)+' '+ExamTimeStart+'-'+ ExamTimeEnd as edate from [dbo].[Exam_ExamPlanTime] where epid='{epLesson.EPId}' "; | |||
var lessonno = epLesson.LessonNo; | |||
if (epLesson.LessonNo.Contains("(")) | |||
{ | |||
lessonno = epLesson.LessonNo.Split('(')[0]; | |||
} | |||
//查询课程信息 | |||
var lessoninfo = this.BaseRepository("CollegeMIS").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) | |||
{ | |||
if (lessoninfo.LessonTypeName.Contains("公开") || lessoninfo.LessonTypeName.Contains("公共")) | |||
{ | |||
sql += " and examtype='2'"; | |||
} | |||
else | |||
{ | |||
sql += " and examtype='1'"; | |||
} | |||
} | |||
sql += " order by cast((CONVERT(nvarchar(10),ExamDate,120)+' '+ExamTimeStart) as datetime)"; | |||
return this.BaseRepository("CollegeMIS").FindList<Exam_ExamPlanTimeEntity>(sql); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取Exam_ExamPlanLesson表实体数据 | |||
/// </summary> | |||
@@ -468,6 +517,50 @@ SELECT t.ClassNo,count(1) as StuNum FROM Exam_ExamStudent t | |||
} | |||
} | |||
/// <summary> | |||
/// 判断考试时间是否冲突 | |||
/// </summary> | |||
/// <param name="entity"></param> | |||
public (bool flag, string str) IsAllowSave(Exam_ExamPlanLessonEntity entity) | |||
{ | |||
try | |||
{ | |||
var ExamPlanLesson = this.BaseRepository("CollegeMIS") | |||
.FindEntity<Exam_ExamPlanLessonEntity>(entity.EPLId); | |||
//考试课程数据 | |||
var EPLessonList = this.BaseRepository("CollegeMIS").FindList<Exam_ExamPlanLessonEntity>($@" select distinct elesson.ExamTime as ExamLength,ltype.LessonTypeName,info.TeachMajorNo,t.* from Exam_ExamPlanLesson t | |||
join Exam_ExamLesson elesson on t.LessonNo=elesson.LessonNo | |||
left join LessonInfo info on t.LessonNo=info.LessonNo | |||
left join CdLessonType ltype on info.LessonTypeId=ltype.LTId | |||
where t.EPId='{ExamPlanLesson.EPId}' and info.CheckMark=1 "); | |||
if (ExamPlanLesson.LessonNo.Contains("(")) | |||
{ | |||
EPLessonList = this.BaseRepository("CollegeMIS").FindList<Exam_ExamPlanLessonEntity>($@" select distinct elesson.ExamTime as ExamLength,ltype.LessonTypeName,info.TeachMajorNo,t.* from Exam_ExamPlanLesson t | |||
join Exam_ExamLesson elesson on left(t.LessonNo,charindex('(',t.LessonNo)-1)=elesson.LessonNo | |||
left join LessonInfo info on left(t.LessonNo,charindex('(',t.LessonNo)-1)=info.LessonNo | |||
left join CdLessonType ltype on info.LessonTypeId=ltype.LTId | |||
where t.EPId='{ExamPlanLesson.EPId}' and info.CheckMark=1 "); | |||
} | |||
var EPLesson = EPLessonList.Where(x => x.EPLId == ExamPlanLesson.EPLId).FirstOrDefault(); | |||
if (EPLessonList.ToList().Exists(x => x.EPLId != entity.EPLId && x.TeachMajorNo == EPLesson.TeachMajorNo && x.ExamLength == EPLesson.ExamLength && x.ExamDate != null && x.ExamDate == entity.ExamDate && x.ExamTime == entity.ExamTime)) | |||
{ | |||
return (false, "同专业同时段只能安排一门课程!"); | |||
} | |||
return (true, ""); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 自动生成考试课程排考时间 | |||
/// </summary> | |||
@@ -69,6 +69,9 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||
} | |||
#endregion | |||
#region 扩展字段 | |||
[NotMapped] | |||
public string edate { get; set; } | |||
#endregion | |||
} | |||
} | |||