@@ -21,7 +21,6 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
private Exam_ExamPlanClassIBLL exam_ExamPlanClassIBLL = new Exam_ExamPlanClassBLL(); | private Exam_ExamPlanClassIBLL exam_ExamPlanClassIBLL = new Exam_ExamPlanClassBLL(); | ||||
private Exam_ExamStudentIBLL exam_ExamStudentIBLL = new Exam_ExamStudentBLL(); | private Exam_ExamStudentIBLL exam_ExamStudentIBLL = new Exam_ExamStudentBLL(); | ||||
private Exam_ExamPlanRoomIBLL exam_ExamPlanRoomIBLL = new Exam_ExamPlanRoomBLL(); | private Exam_ExamPlanRoomIBLL exam_ExamPlanRoomIBLL = new Exam_ExamPlanRoomBLL(); | ||||
private StuInfoBasicIBLL StuInfoBasicIBLL = new StuInfoBasicBLL(); | |||||
#region 视图功能 | #region 视图功能 | ||||
@@ -152,7 +151,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
/// <param name="pagination"></param> | /// <param name="pagination"></param> | ||||
/// <param name="queryJson"></param> | /// <param name="queryJson"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
[HttpGet] | |||||
[HttpGet] | |||||
[AjaxOnly] | [AjaxOnly] | ||||
public ActionResult GetPageListForLesson(string pagination, string queryJson) | public ActionResult GetPageListForLesson(string pagination, string queryJson) | ||||
{ | { | ||||
@@ -227,6 +226,18 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
return Success(data); | return Success(data); | ||||
} | } | ||||
/// <summary> | |||||
/// 获取考试记录安排时间数据 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
[AjaxOnly] | |||||
public ActionResult GetExamDateSel(string EPLId) | |||||
{ | |||||
var data = exam_ExamPlanLessonIBLL.GetExamDateSel(EPLId); | |||||
return Success(data); | |||||
} | |||||
#endregion | #endregion | ||||
#region 提交数据 | #region 提交数据 | ||||
@@ -334,12 +345,13 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
} | } | ||||
entity.EPLId = keyValue; | 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); | exam_ExamPlanLessonIBLL.SaveEntity(keyValue, entity); | ||||
@@ -4,16 +4,20 @@ | |||||
} | } | ||||
<div class="lr-form-wrap" id="form"> | <div class="lr-form-wrap" id="form"> | ||||
<div class="col-xs-12 lr-form-item" data-table="Exam_ExamPlanLesson"> | <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> | <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> | ||||
<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> | <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> | ||||
<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> | <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> | ||||
</div> | </div> | ||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/Exam_ExamPlanLesson/Form.js") | @Html.AppendJsFile("/Areas/EducationalAdministration/Views/Exam_ExamPlanLesson/Form.js") |
@@ -15,17 +15,36 @@ var bootstrap = function ($, learun) { | |||||
page.initData(); | page.initData(); | ||||
}, | }, | ||||
bind: function () { | 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 () { | initData: function () { | ||||
if (!!keyValue) { | if (!!keyValue) { | ||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Exam_ExamPlanLesson/GetFormData?keyValue=' + keyValue, function (data) { | $.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Exam_ExamPlanLesson/GetFormData?keyValue=' + keyValue, function (data) { | ||||
for (var id in data) { | for (var id in data) { | ||||
if (!!data[id].length && data[id].length > 0) { | if (!!data[id].length && data[id].length > 0) { | ||||
$('#' + id ).jfGridSet('refreshdata', data[id]); | |||||
$('#' + id).jfGridSet('refreshdata', data[id]); | |||||
} | } | ||||
else { | else { | ||||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); | $('[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> | /// <summary> | ||||
/// 获取Exam_ExamPlanLesson表实体数据 | /// 获取Exam_ExamPlanLesson表实体数据 | ||||
/// </summary> | /// </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> | ||||
/// 判断考试时间是否冲突 | /// 判断考试时间是否冲突 | ||||
/// </summary> | /// </summary> | ||||
@@ -23,6 +23,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
IEnumerable<Exam_ExamPlanLessonEntity> GetPageList(Pagination pagination, string queryJson); | IEnumerable<Exam_ExamPlanLessonEntity> GetPageList(Pagination pagination, string queryJson); | ||||
IEnumerable<Exam_ExamPlanLessonEntity> GetPageListForLesson(Pagination pagination, string queryJson); | IEnumerable<Exam_ExamPlanLessonEntity> GetPageListForLesson(Pagination pagination, string queryJson); | ||||
IEnumerable<Exam_ExamPlanLessonEntity> GetListByEPId(string EPId); | IEnumerable<Exam_ExamPlanLessonEntity> GetListByEPId(string EPId); | ||||
IEnumerable<Exam_ExamPlanTimeEntity> GetExamDateSel(string EPLId); | |||||
/// <summary> | /// <summary> | ||||
/// 获取Exam_ExamPlanLesson表实体数据 | /// 获取Exam_ExamPlanLesson表实体数据 | ||||
/// </summary> | /// </summary> | ||||
@@ -54,7 +55,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
void SaveEntity(string keyValue, Exam_ExamPlanLessonEntity entity); | void SaveEntity(string keyValue, Exam_ExamPlanLessonEntity entity); | ||||
(bool flag, string msg) PlanLessonTimeByEPId(string keyValue); | (bool flag, string msg) PlanLessonTimeByEPId(string keyValue); | ||||
(bool flag, string str) IsAllowSave(Exam_ExamPlanLessonEntity entity); | |||||
(bool flag, string lessonname) IsExamTimeClash(Exam_ExamPlanLessonEntity entity); | (bool flag, string lessonname) IsExamTimeClash(Exam_ExamPlanLessonEntity entity); | ||||
#endregion | #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> | /// <summary> | ||||
/// 获取Exam_ExamPlanLesson表实体数据 | /// 获取Exam_ExamPlanLesson表实体数据 | ||||
/// </summary> | /// </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> | ||||
/// 自动生成考试课程排考时间 | /// 自动生成考试课程排考时间 | ||||
/// </summary> | /// </summary> | ||||
@@ -69,6 +69,9 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
} | } | ||||
#endregion | #endregion | ||||
#region 扩展字段 | #region 扩展字段 | ||||
[NotMapped] | |||||
public string edate { get; set; } | |||||
#endregion | #endregion | ||||
} | } | ||||
} | } | ||||