@@ -222,7 +222,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
/// <summary> | /// <summary> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
[HttpGet] | [HttpGet] | ||||
public ActionResult InputScoreIndexInTeacherImport() | |||||
public ActionResult InputScoreIndexImport() | |||||
{ | { | ||||
return View(); | return View(); | ||||
} | } | ||||
@@ -363,7 +363,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
if (userEntity != null) | if (userEntity != null) | ||||
{ | { | ||||
var name = userEntity.F_Account + "_" + userEntity.F_RealName + "_线上成绩录入"; | var name = userEntity.F_Account + "_" + userEntity.F_RealName + "_线上成绩录入"; | ||||
//删除任务 | //删除任务 | ||||
RecurringJob.RemoveIfExists(name); | RecurringJob.RemoveIfExists(name); | ||||
} | } | ||||
@@ -522,9 +522,9 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
/// <returns></returns> | /// <returns></returns> | ||||
[HttpGet] | [HttpGet] | ||||
[AjaxOnly] | [AjaxOnly] | ||||
public ActionResult GetEmpNoDataOfAll(string lessonNo) | |||||
public ActionResult GetEmpNoDataOfAll(string lessonNo, string AcademicYearShort, string Semester) | |||||
{ | { | ||||
var data = stuScoreOnlineIBLL.GetEmpNoData("", "", lessonNo); | |||||
var data = stuScoreOnlineIBLL.GetEmpNoData("", "", lessonNo, AcademicYearShort, Semester); | |||||
return Success(data); | return Success(data); | ||||
} | } | ||||
@@ -534,10 +534,10 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
/// <returns></returns> | /// <returns></returns> | ||||
[HttpGet] | [HttpGet] | ||||
[AjaxOnly] | [AjaxOnly] | ||||
public ActionResult GetEmpNoData(string lessonNo) | |||||
public ActionResult GetEmpNoData(string lessonNo, string AcademicYearShort, string Semester) | |||||
{ | { | ||||
var loginInfo = LoginUserInfo.Get(); | var loginInfo = LoginUserInfo.Get(); | ||||
var data = stuScoreOnlineIBLL.GetEmpNoData(loginInfo.account, loginInfo.Description, lessonNo); | |||||
var data = stuScoreOnlineIBLL.GetEmpNoData(loginInfo.account, loginInfo.Description, lessonNo, AcademicYearShort, Semester); | |||||
return Success(data); | return Success(data); | ||||
} | } | ||||
@@ -560,9 +560,9 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
/// <returns></returns> | /// <returns></returns> | ||||
[HttpGet] | [HttpGet] | ||||
[AjaxOnly] | [AjaxOnly] | ||||
public ActionResult GetLessonNoDataOfAllWithNo() | |||||
public ActionResult GetLessonNoDataOfAllWithNo(string AcademicYearShort, string Semester) | |||||
{ | { | ||||
var data = stuScoreOnlineIBLL.GetLessonNoDataOfAll("", ""); | |||||
var data = stuScoreOnlineIBLL.GetLessonNoDataOfAll("", "", AcademicYearShort, Semester); | |||||
foreach (var item in data) | foreach (var item in data) | ||||
{ | { | ||||
item.text = string.Format("{0}({1})", item.text, item.value); | item.text = string.Format("{0}({1})", item.text, item.value); | ||||
@@ -1099,7 +1099,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
{ | { | ||||
var loginInfo = LoginUserInfo.Get(); | var loginInfo = LoginUserInfo.Get(); | ||||
var name = loginInfo.account + "_" + loginInfo.realName + "_线上成绩录入"; | var name = loginInfo.account + "_" + loginInfo.realName + "_线上成绩录入"; | ||||
stuScoreOnlineIBLL.SaveInputScoreStatus(queryJson); | stuScoreOnlineIBLL.SaveInputScoreStatus(queryJson); | ||||
//删除任务 | //删除任务 | ||||
RecurringJob.RemoveIfExists(name); | RecurringJob.RemoveIfExists(name); | ||||
@@ -1227,7 +1227,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
var data = new | var data = new | ||||
{ | { | ||||
Success = res.snum, | Success = res.snum, | ||||
Fail = res.failDt.Rows.Count | |||||
Fail = res.fnum | |||||
}; | }; | ||||
return Success(data); | return Success(data); | ||||
} | } | ||||
@@ -15,6 +15,9 @@ var headData; //常规列头 | |||||
var headDataEdit; //可编辑列头 | var headDataEdit; //可编辑列头 | ||||
var headDataNoEdit; //不可编辑列头 | var headDataNoEdit; //不可编辑列头 | ||||
var headDataFinally; //最终列头 | var headDataFinally; //最终列头 | ||||
var rowJson; | |||||
var columnJson; | |||||
var queryJson; | |||||
var bootstrap = function ($, learun) { | var bootstrap = function ($, learun) { | ||||
"use strict"; | "use strict"; | ||||
var page = { | var page = { | ||||
@@ -81,7 +84,7 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
{ label: '学生姓名', name: 'StuName', width: 100, align: "left" }, | |||||
{ label: '学生姓名', name: 'StuName', width: 150, align: "left" }, | |||||
{ label: '学生学号', name: 'StuNo', width: 100, align: "left" }, | { label: '学生学号', name: 'StuNo', width: 100, align: "left" }, | ||||
]; | ]; | ||||
headDataEdit = [ | headDataEdit = [ | ||||
@@ -383,7 +386,63 @@ var bootstrap = function ($, learun) { | |||||
}); | }); | ||||
//导入更新 | //导入更新 | ||||
$('#lr_importScore').on('click', function () { | $('#lr_importScore').on('click', function () { | ||||
//todo: | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
//判断成绩比例是否合理 | |||||
//var OrdinaryScoreScale = $('#OrdinaryScoreScale').html(); | |||||
//var TermInScoreScale = $('#TermInScoreScale').html(); | |||||
//var TermEndScoreScale = $('#TermEndScoreScale').html(); | |||||
//var OtherScoreScale = $('#OtherScoreScale').html(); | |||||
//var totalScale = Number(OrdinaryScoreScale) + Number(TermInScoreScale) + Number(TermEndScoreScale) + Number(OtherScoreScale); | |||||
//if (totalScale !== 100) { | |||||
// learun.alert.warning("成绩比例设置不合理!"); | |||||
// return false; | |||||
//} else { | |||||
//判断是否已审核;判断是否被其他教师占用 | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark == 1) { | |||||
learun.alert.warning("学生成绩已审核!"); | |||||
return false; | |||||
} | |||||
if (data.IsEditable == 0) { | |||||
if (data.EditUserId == learun.clientdata.get(['userinfo']).account) { | |||||
modifyDate = data.ModifyDate; | |||||
} else { | |||||
learun.alert.warning("当前班级成绩由账号为" + data.EditUserId + "的教师在使用!"); | |||||
return false; | |||||
} | |||||
} | |||||
rowJson = $('#gridtable').jfGridGet('showData'); | |||||
if (rowJson.length <= 0) { | |||||
learun.alert.warning("查询结果不存在!"); | |||||
return false; | |||||
} | |||||
columnJson = $('#gridtable').jfGridGet('settingInfo').headData; | |||||
//条件 | |||||
queryJson = query; | |||||
learun.layerForm({ | |||||
id: 'IndexImport', | |||||
title: "导入学生成绩", | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/InputScoreIndexImport?type=0', | |||||
width: 600, | |||||
height: 400, | |||||
maxmin: true, | |||||
btn: null, | |||||
end: function () { | |||||
refreshGirdData2(); | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
//} | |||||
} | |||||
}); | }); | ||||
}, | }, | ||||
@@ -399,7 +458,14 @@ var bootstrap = function ($, learun) { | |||||
allowSearch: false, | allowSearch: false, | ||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetAcademicYearNoData', | url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetAcademicYearNoData', | ||||
value: 'value', | value: 'value', | ||||
text: 'text' | |||||
text: 'text', | |||||
select: function (item) { | |||||
if (!!item) { | |||||
$("#LessonNo").lrselectRefresh({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetLessonNoDataOfAllWithNo?AcademicYearShort=' + item.value + '&Semester=' + $('#Semester').lrselectGet(), | |||||
}); | |||||
} | |||||
} | |||||
}); | }); | ||||
//学期 | //学期 | ||||
$('#Semester').lrselect({ | $('#Semester').lrselect({ | ||||
@@ -407,7 +473,14 @@ var bootstrap = function ($, learun) { | |||||
allowSearch: false, | allowSearch: false, | ||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetSemesterData', | url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetSemesterData', | ||||
value: 'value', | value: 'value', | ||||
text: 'text' | |||||
text: 'text', | |||||
select: function (item) { | |||||
if (!!item) { | |||||
$("#LessonNo").lrselectRefresh({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetLessonNoDataOfAllWithNo?AcademicYearShort=' + $('#AcademicYearNo').lrselectGet() + '&Semester=' + item.value, | |||||
}); | |||||
} | |||||
} | |||||
}); | }); | ||||
//课程 | //课程 | ||||
$('#LessonNo').lrselect({ | $('#LessonNo').lrselect({ | ||||
@@ -419,9 +492,7 @@ var bootstrap = function ($, learun) { | |||||
select: function (item) { | select: function (item) { | ||||
if (!!item) { | if (!!item) { | ||||
$("#EmpNo").lrselectRefresh({ | $("#EmpNo").lrselectRefresh({ | ||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEmpNoDataOfAll?lessonNo=' + item.value, | |||||
value: 'value', | |||||
text: 'text', | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEmpNoDataOfAll?lessonNo=' + item.value + '&AcademicYearShort=' + $('#AcademicYearNo').lrselectGet() + '&Semester=' + $('#Semester').lrselectGet(), | |||||
}); | }); | ||||
} | } | ||||
} | } | ||||
@@ -0,0 +1,27 @@ | |||||
@{ | |||||
ViewBag.Title = "Form"; | |||||
Layout = "~/Views/Shared/_Form.cshtml"; | |||||
} | |||||
<link href="~/Content/webuploader/webuploader.css" rel="stylesheet" /> | |||||
<script src="~/Content/webuploader/webuploader.nolog.min.js"></script> | |||||
@Html.AppendCssFile("/Areas/LR_SystemModule/Views/ExcelImport/ImportForm.css") | |||||
@*线上成绩录入导入*@ | |||||
<div class="lr-form-layout lr-form-layout-top-bottom"> | |||||
<div class="lr-form-layout-header"> | |||||
<div id="lr_add_file_btn"><i class="fa fa-cloud-upload"></i><span class="lrlt">上传文件</span></div> | |||||
<div class="webuploader-pick" id="lr_down_file_btn"><i class="fa fa-download"></i><span class="lrlt">下载模板</span></div> | |||||
</div> | |||||
<div class="lr-form-layout-body"> | |||||
<div class="lr-form-file-queue-wrap" id="lr_form_file_queue"> | |||||
<div class="lr-form-file-queue" id="lr_form_file_queue_list"> | |||||
</div> | |||||
<div class="lr-form-file-queue-bg"> | |||||
<h1><span class="lrlt">试试将电脑里的文件拖拽到此上传</span></h1> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuScoreOnline/InputScoreIndexImport.js") |
@@ -0,0 +1,195 @@ | |||||
/* | |||||
* 描 述:附件上传管理 | |||||
*/ | |||||
var gridId = request('gridtable'); | |||||
var type = request('type');//1:成绩录入;2:选修成绩录入 | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var fileInfo = {}; | |||||
// 触发合并文件碎片 | |||||
var mergeFileChunks = function (file) { | |||||
var param = {}; | |||||
param['type'] = type; | |||||
param['__RequestVerificationToken'] = $.lrToken; | |||||
param['fileGuid'] = fileInfo[file.id].fileGuid; | |||||
param['fileName'] = fileInfo[file.id].name; | |||||
param['chunks'] = fileInfo[file.id].chunks; | |||||
var queryJson = JSON.stringify(learun.frameTab.currentIframe().queryJson); | |||||
param['queryJson'] = queryJson; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/EducationalAdministration/StuScoreOnline/ExecuteImportExcel", param, function (res) { | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.find('.lr-uploader-progress').remove(); | |||||
if (res.code == learun.httpCode.success) { | |||||
if (res.data.Success != '0') { | |||||
learun.alert.success('导入成功' + res.data.Success + '条'); | |||||
} | |||||
// 文件保存成功后 | |||||
$fileItem.append('<div class="lr-msg2"><span>' + res.data.Success + '</span><span>/</span><span style="color:#b94a48;" >' + res.data.Fail + '</span></div>'); | |||||
// 如果有失败 | |||||
if (res.data.Fail != '0') { | |||||
learun.download({ url: top.$.rootUrl + '/LR_SystemModule/ExcelImport/DownImportErrorFile', param: { fileId: fileInfo[file.id].fileGuid, fileName: fileInfo[file.id].name, __RequestVerificationToken: $.lrToken }, method: 'POST' }); | |||||
} | |||||
} | |||||
else { | |||||
learun.alert.error(res.info); | |||||
$fileItem.append('<div class="lr-msg"><i class="fa fa-exclamation-circle"></i></div>'); | |||||
} | |||||
}); | |||||
} | |||||
// 触发清楚文件碎片 | |||||
var reomveFileChunks = function (file) { | |||||
var param = {}; | |||||
param['__RequestVerificationToken'] = $.lrToken; | |||||
param['fileGuid'] = fileInfo[file.id].fileGuid; | |||||
param['chunks'] = fileInfo[file.id].chunks; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/LR_SystemModule/Annexes/MergeAnnexesFile", param, function (res) { }); | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.find('.lr-uploader-progress').remove(); | |||||
$fileItem.append('<div class="lr-msg"><i class="fa fa-exclamation-circle"></i></div>'); | |||||
} | |||||
// 删除文件 | |||||
var DeleteFile = function (fileId) { | |||||
var param = {}; | |||||
param['__RequestVerificationToken'] = $.lrToken; | |||||
param['fileId'] = fileInfo[fileId].fileGuid; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/LR_SystemModule/Annexes/DeleteAnnexesFile", param, function (res) { }); | |||||
var file = page.uploader.getFile(fileId); | |||||
if (!!file) { | |||||
page.uploader.removeFile(file); | |||||
} | |||||
delete fileInfo[fileId]; | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + fileId); | |||||
$fileItem.remove(); | |||||
if ($('#lr_form_file_queue_list>div').length == 0) { | |||||
$('#lr_form_file_queue .lr-form-file-queue-bg').show(); | |||||
} | |||||
} | |||||
var page = { | |||||
uploader: null, | |||||
init: function () { | |||||
if (!WebUploader.Uploader.support()) { | |||||
alert('Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器'); | |||||
throw new Error('WebUploader does not support the browser you are using.'); | |||||
} | |||||
/*导入模板下载*/ | |||||
$('#lr_down_file_btn').on('click', function () { | |||||
var columnJson = learun.frameTab.currentIframe().columnJson; | |||||
columnJson = JSON.stringify(columnJson.filter(item => item.name !== 'TermEndScore')); | |||||
var rowJson = JSON.stringify(learun.frameTab.currentIframe().rowJson); | |||||
var fileName = "线上成绩录入数据"; | |||||
//if (type == '2') { | |||||
// fileName = "选修成绩录入数据"; | |||||
//} | |||||
//else if (type == '3') { | |||||
// fileName = "补考成绩录入"; | |||||
//} | |||||
//else if (type == '4') { | |||||
// fileName = "二次补考成绩录入"; | |||||
//} | |||||
learun.download({ | |||||
method: "POST", | |||||
url: '/EducationalAdministration/StuScoreOnline/ExportExcel', | |||||
param: { | |||||
fileName: fileName, | |||||
columnJson: columnJson, | |||||
dataJson: rowJson, | |||||
//exportField: String(exportField) | |||||
} | |||||
}); | |||||
}); | |||||
page.uploader = WebUploader.create({ | |||||
auto: true, | |||||
swf: top.$.rootUrl + '/Content/webuploader/Uploader.swf', | |||||
// 文件接收服务端。 | |||||
server: top.$.rootUrl + "/LR_SystemModule/Annexes/UploadAnnexesFileChunk", | |||||
// 选择文件的按钮。可选。 | |||||
// 内部根据当前运行是创建,可能是input元素,也可能是flash. | |||||
pick: '#lr_add_file_btn', | |||||
dnd: '#lr_form_file_queue', | |||||
paste: 'document.body', | |||||
disableGlobalDnd: true, | |||||
accept: { | |||||
extensions: "xls,xlsx" | |||||
}, | |||||
multiple: false, | |||||
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! | |||||
resize: false, | |||||
// 文件分片上传 | |||||
chunked: true, | |||||
chunkRetry: 3, | |||||
prepareNextFile: true, | |||||
chunkSize: '1048576', | |||||
// 上传参数 | |||||
formData: { | |||||
__RequestVerificationToken: $.lrToken | |||||
} | |||||
}); | |||||
page.uploader.on('fileQueued', page.fileQueued); | |||||
page.uploader.on('uploadStart', page.uploadStart); | |||||
page.uploader.on('uploadBeforeSend', page.uploadBeforeSend); | |||||
page.uploader.on('uploadProgress', page.uploadProgress); | |||||
page.uploader.on('uploadSuccess', page.uploadSuccess); | |||||
page.uploader.on('uploadError', page.uploadError); | |||||
page.uploader.on('uploadComplete', page.uploadComplete); | |||||
page.uploader.on('error', page.error); | |||||
//$('#lr_form_file_queue').mCustomScrollbar({ // 优化滚动条 | |||||
// theme: "minimal-dark" | |||||
//}); | |||||
}, | |||||
fileQueued: function (file) {// 文件加载到队列 | |||||
fileInfo[file.id] = { name: file.name }; | |||||
$('#lr_form_file_queue .lr-form-file-queue-bg').hide(); | |||||
// 添加一条文件记录 | |||||
var $item = $('<div class="lr-form-file-queue-item" id="lr_filequeue_' + file.id + '" ></div>'); | |||||
$item.append('<div class="lr-file-image"><img src="' + top.$.rootUrl + '/Content/images/filetype/' + file.ext + '.png"></div>'); | |||||
$item.append('<span class="lr-file-name">' + file.name + '(' + learun.countFileSize(file.size) + ')</span>'); | |||||
$('#lr_form_file_queue_list').append($item); | |||||
}, | |||||
uploadStart: function (file) { | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.append('<div class="lr-uploader-progress"><div class="lr-uploader-progress-bar" style="width:0%;"></div></div>'); | |||||
}, | |||||
uploadBeforeSend: function (object, data, headers) { | |||||
data.chunk = data.chunk || 0; | |||||
data.chunks = data.chunks || 1; | |||||
fileInfo[data.id].fileGuid = fileInfo[data.id].fileGuid || WebUploader.Base.guid(); | |||||
data.fileGuid = fileInfo[data.id].fileGuid; | |||||
fileInfo[data.id].chunks = data.chunks; | |||||
}, | |||||
uploadProgress: function (file, percentage) { | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.find('.lr-uploader-progress-bar').css('width', (percentage * 100 + '%')); | |||||
}, | |||||
uploadSuccess: function (file, res) { | |||||
if (res.code == 200) {// 上传成功 | |||||
mergeFileChunks(file); | |||||
} | |||||
else {// 上传失败 | |||||
reomveFileChunks(file); | |||||
} | |||||
}, | |||||
uploadError: function (file, code) { | |||||
reomveFileChunks(file); | |||||
}, | |||||
uploadComplete: function (file) { | |||||
}, | |||||
error: function (type) { | |||||
switch (type) { | |||||
case 'Q_TYPE_DENIED': | |||||
learun.alert.error('当前文件类型不允许上传'); | |||||
break; | |||||
}; | |||||
} | |||||
}; | |||||
page.init(); | |||||
} |
@@ -0,0 +1,122 @@ | |||||
@{ ViewBag.Title = "全院学生线上成绩录入"; Layout = "~/Views/Shared/_Index.cshtml"; } | |||||
<style> | |||||
.lr-select { | |||||
width: 150px; | |||||
} | |||||
#LessonNo { | |||||
width: 180px; | |||||
} | |||||
.lr-selectLittle { | |||||
width: 80px; | |||||
} | |||||
.lr-layout-tool { | |||||
height: 80px; | |||||
} | |||||
.lr-layout-center .lr-layout-wrap.lr-layout-wrap-notitle { | |||||
padding-top: 80px; | |||||
} | |||||
.divRow { | |||||
position: absolute; | |||||
width: 100%; | |||||
height: 55px; | |||||
top: 0; | |||||
left: 0; | |||||
} | |||||
.scaleRow { | |||||
top: 55px; | |||||
padding: 2px 10px; | |||||
height: 25px; | |||||
} | |||||
.scaleRow .timeBox { | |||||
float: right; | |||||
padding-right: 30px; | |||||
} | |||||
.scaleRow .tipBox { | |||||
display: inline-block; | |||||
color: #ff0000; | |||||
margin-left: 10px; | |||||
} | |||||
#addMinutesBtn { | |||||
display: inline-block; | |||||
cursor: pointer; | |||||
background-color: blue; | |||||
color: #fff; | |||||
padding: 1px 5px; | |||||
border-radius: 4px; | |||||
} | |||||
</style> | |||||
<div class="lr-layout"> | |||||
<div class="lr-layout-center"> | |||||
<div class="lr-layout-wrap lr-layout-wrap-notitle "> | |||||
<div class="lr-layout-tool"> | |||||
<div class="selectRow divRow"> | |||||
<div class="lr-layout-tool-left"> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="F_SchoolId" type="lrselect" class="lr-select"></div> | |||||
</div> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="AcademicYearNo" type="lrselect" class="lr-select lr-selectLittle"></div> | |||||
</div> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="Semester" type="lrselect" class="lr-select lr-selectLittle"></div> | |||||
</div> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="LessonNo" type="lrselect" class="lr-select"></div> | |||||
</div> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="EmpNo" type="lrselect" class="lr-select"></div> | |||||
</div> | |||||
<div class="lr-layout-tool-item"> | |||||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> 查询</a> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-tool-right"> | |||||
<div class="btn-group btn-group-sm"> | |||||
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> | |||||
</div> | |||||
<div class=" btn-group btn-group-sm" learun-authorize="yes" id="btnBox"> | |||||
<a id="lr_input" class="btn btn-default"><i class="fa fa-edit"> 开始录入</i></a> | |||||
<a id="lr_save" class="btn btn-default" style="display:none;"><i class="fa fa-edit"> 提交成绩</i></a> | |||||
<a id="lr_check" class="btn btn-default"><i class="fa fa-lock"> 审核</i></a> | |||||
<a id="lr_uncheck" class="btn btn-default"><i class="fa fa-lock"> 取消审核</i></a> | |||||
@*<a id="lr_setScale" class="btn btn-default"><i class="fa fa-edit"> 设置成绩比例</i></a>*@ | |||||
<a id="lr_importScore" class="btn btn-default"><i class="fa fa-edit"> 导入更新</i></a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="scaleRow divRow"> | |||||
@*<span>比例设置:</span> | |||||
<span>平时成绩占比 <span id="OrdinaryScoreScale">0</span> %,</span> | |||||
<span>期中成绩占比 <span id="TermInScoreScale">0</span> %,</span> | |||||
<span>期末成绩占比 <span id="TermEndScoreScale">0</span> %,</span> | |||||
<span>其他成绩占比 <span id="OtherScoreScale">0</span> %</span>*@ | |||||
<div class="tipBox">提示:录入完成后,请务必点击“提交成绩”按钮,避免成绩丢失!</div> | |||||
<div class="timeBox" style="display:none;"> | |||||
倒计时: | |||||
<span id="minutes" data-minutes="30"></span>分钟(<span id="seconds" data-seconds="60"></span>秒) | |||||
<div id="addMinutesBtn" data-minutes="30">续时</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuScoreOnline/InputScoreIndexInTeacher.js") | |||||
<script> | |||||
var CanInputFlag = "@ViewBag.CanInputFlag"; | |||||
if (CanInputFlag != "True") { | |||||
top.learun.layerConfirm('当前时间不是线上成绩录入时间!', function (res) {}); | |||||
} | |||||
</script> |
@@ -0,0 +1,624 @@ | |||||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||||
* Copyright (c) 2013-2018 北京泉江科技有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2023-06-12 11:02 | |||||
* 描 述:全院学生线上成绩录入 | |||||
*/ | |||||
var selectedRow; | |||||
var refreshGirdData; | |||||
var refreshGirdData2; | |||||
var judgeSelect; //判断下拉框是否选择 | |||||
var modifyDate; //成绩被占用,且是登录用户时,成绩表中的编辑时间; | |||||
var timer; //计时器 | |||||
var submitScoreTimer; //五分钟提交成绩计时器 | |||||
var headData; //常规列头 | |||||
var headDataEdit; //可编辑列头 | |||||
var headDataNoEdit; //不可编辑列头 | |||||
var headDataFinally; //最终列头 | |||||
var rowJson; | |||||
var columnJson; | |||||
var queryJson; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var page = { | |||||
init: function () { | |||||
headData = [ | |||||
{ | |||||
label: "审核状态", name: "CheckMark", width: 80, align: "center", | |||||
formatter: function (cellvalue) { | |||||
return cellvalue == "1" ? "<span class=\"label label-success\">已审核</span>" : "<span class=\"label label-danger\">未审核</span>"; | |||||
} | |||||
}, | |||||
{ label: '学年', name: 'AcademicYearNo', width: 50, align: "left" }, | |||||
{ label: '学期', name: 'Semester', width: 40, align: "left" }, | |||||
{ label: '课程名称', name: 'LessonName', width: 150, align: "left" }, | |||||
{ | |||||
label: "学校名称", name: "F_SchoolId", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('custmerData', { | |||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company', | |||||
key: value, | |||||
keyId: 'f_companyid', | |||||
callback: function (_data) { | |||||
callback(_data['f_fullname']); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ | |||||
label: "学院", name: "DeptNo", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('custmerData', { | |||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo', | |||||
key: value, | |||||
keyId: 'deptno', | |||||
callback: function (_data) { | |||||
callback(_data['deptname']); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ | |||||
label: "专业", name: "MajorNo", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('custmerData', { | |||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo', | |||||
key: value, | |||||
keyId: 'majorno', | |||||
callback: function (_data) { | |||||
callback(_data['majorname']); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ | |||||
label: "班级", name: "ClassNo", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('custmerData', { | |||||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj', | |||||
key: value, | |||||
keyId: 'classno', | |||||
callback: function (_data) { | |||||
callback(_data['classname']); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ label: '学生姓名', name: 'StuName', width: 150, align: "left" }, | |||||
{ label: '学生学号', name: 'StuNo', width: 100, align: "left" }, | |||||
]; | |||||
headDataEdit = [ | |||||
{ | |||||
label: '成绩', name: 'TermEndScore', width: 80, align: "left", | |||||
edit: { | |||||
type: 'input', | |||||
inputType: 'number', | |||||
change: function (row, rownum) { | |||||
row.Score = (parseFloat(row.TermEndScore || '0') * 1).toFixed(2); | |||||
$('#gridtable').jfGridSet('updateRow', rownum); | |||||
}, | |||||
} | |||||
}, | |||||
{ label: '最终核定成绩', name: 'Score', width: 80, align: "left" }, | |||||
{ | |||||
label: '备注', name: 'Remark', width: 100, align: "left", | |||||
edit: { | |||||
type: 'input', | |||||
} | |||||
}, | |||||
]; | |||||
headDataNoEdit = [ | |||||
{ | |||||
label: '成绩', name: 'TermEndScore', width: 80, align: "left" | |||||
}, | |||||
{ label: '最终核定成绩', name: 'Score', width: 80, align: "left" }, | |||||
{ | |||||
label: '备注', name: 'Remark', width: 100, align: "left" | |||||
}, | |||||
]; | |||||
headDataFinally = headData.concat(headDataNoEdit); | |||||
page.initGird(); | |||||
page.bind(); | |||||
page.bindSelect(); | |||||
}, | |||||
bind: function () { | |||||
//多条件选择 | |||||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||||
page.search(queryJson); | |||||
}, 220, 500); | |||||
// 刷新 | |||||
$('#lr_refresh').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
//查询 | |||||
$('#btn_Search').on('click', function () { | |||||
refreshGirdData2(); | |||||
}); | |||||
//设置成绩比例(暂时未使用未修改) | |||||
$('#lr_setScale').on('click', function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/OpenLessonPlan/GetOpenLessonPlanEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data["OpenLessonPlan"] != null) { | |||||
if (data["OpenLessonPlan"].IsAllowEdit) { //教务允许成绩录入时编辑比例 | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/OpenLessonPlan/GetStuSelectLessonListEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data["StuSelectLessonList"] != null) { | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark == 1) { //学生成绩已审核 | |||||
learun.alert.warning("学生成绩已审核!"); | |||||
return false; | |||||
} else { | |||||
learun.layerForm({ | |||||
id: 'FormOfClass', | |||||
title: '班级成绩比例设置', | |||||
url: top.$.rootUrl + '/EducationalAdministration/OpenLessonPlan/FormOfClass?F_SchoolId=' + query.F_SchoolId + '&AcademicYearNo=' + query.AcademicYearNo + '&Semester=' + query.Semester + '&LessonNo=' + query.LessonNo + '&ClassNo=' + query.ClassNo, | |||||
width: 600, | |||||
height: 400, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData2); | |||||
} | |||||
}); | |||||
} | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("学生选课数据不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("教务不允许设置成绩比例!"); | |||||
return false; | |||||
} | |||||
} else { | |||||
learun.alert.warning("开课计划不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 开始录入 | |||||
$('#lr_input').on('click', function () { | |||||
//提示弹框 | |||||
learun.layerConfirm('录入完成后,请务必点击“提交成绩”按钮,避免成绩丢失!', function (res) { | |||||
if (res) { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
//判断成绩比例是否合理 | |||||
//var OrdinaryScoreScale = $('#OrdinaryScoreScale').html(); | |||||
//var TermInScoreScale = $('#TermInScoreScale').html(); | |||||
//var TermEndScoreScale = $('#TermEndScoreScale').html(); | |||||
//var OtherScoreScale = $('#OtherScoreScale').html(); | |||||
//var totalScale = Number(OrdinaryScoreScale) + Number(TermInScoreScale) + Number(TermEndScoreScale) + Number(OtherScoreScale); | |||||
//if (totalScale !== 100) { | |||||
// learun.alert.warning("成绩比例设置不合理!"); | |||||
// return false; | |||||
//} else { | |||||
//判断是否已审核;判断是否被其他教师占用 | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark == 1) { | |||||
learun.alert.warning("学生成绩已审核!"); | |||||
return false; | |||||
} | |||||
if (data.IsEditable == 0) { | |||||
if (data.EditUserId == learun.clientdata.get(['userinfo']).account) { | |||||
modifyDate = data.ModifyDate; | |||||
} else { | |||||
learun.alert.warning("当前班级成绩由账号为" + data.EditUserId + "的教师在使用!"); | |||||
return false; | |||||
} | |||||
} else { | |||||
//占用成绩 | |||||
learun.postFormSilence(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/StartInputScore', { queryJson: JSON.stringify(query) }, function (res) { }); | |||||
} | |||||
//显示可编辑列头 | |||||
headDataFinally = headData.concat(headDataEdit); | |||||
$("#gridtable")[0].dfop = undefined; | |||||
page.initGird(); | |||||
page.search(query); | |||||
//显示“提交成绩”按钮 | |||||
$('#lr_save').show(); | |||||
//隐藏“开始录入”按钮 | |||||
$('#lr_input').hide(); | |||||
//显示“倒计时” | |||||
$('.timeBox').show(); | |||||
$('#minutes').html($('#minutes').attr('data-minutes')); | |||||
//开始倒计时 | |||||
page.countDown(); | |||||
//五分钟提交成绩 | |||||
page.submitScore(); | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
//} | |||||
} | |||||
} | |||||
}); | |||||
}); | |||||
//提交成绩 | |||||
$('#lr_save').on('click', function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
//成绩被占用,且是登录用户时,根据编辑时间判断是否是本人; | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark == 1) { | |||||
learun.alert.warning("学生成绩已审核!"); | |||||
return false; | |||||
} | |||||
if (data.IsEditable == 0) { | |||||
if (data.EditUserId == learun.clientdata.get(['userinfo']).account) { | |||||
if (modifyDate != null && modifyDate != data.ModifyDate) { | |||||
learun.alert.warning("当前班级成绩被修改,请重新获取!"); | |||||
return false; | |||||
} | |||||
} else { | |||||
learun.alert.warning("当前班级成绩由账号为" + data.EditUserId + "的教师在使用!"); | |||||
return false; | |||||
} | |||||
} else if (data.IsEditable == 1) { | |||||
learun.alert.warning("学生成绩已提交!"); | |||||
return false; | |||||
} | |||||
//提交成绩 | |||||
var rowdatas = $('#gridtable').jfGridGet('rowdatas'); | |||||
learun.postFormSilence(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/SaveInputScore', { data: JSON.stringify(rowdatas) }, function (res) { | |||||
if (res.code == 200) { | |||||
//提交成绩:取消占用 | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/SaveInputScoreStatus', { queryJson: JSON.stringify(query) }, function (res) { | |||||
if (res.code == 200) { | |||||
refreshGirdData2(); | |||||
modifyDate = null; | |||||
//隐藏“提交成绩”按钮 | |||||
$('#lr_save').hide(); | |||||
//显示“开始录入”按钮 | |||||
$('#lr_input').show(); | |||||
//隐藏“倒计时” | |||||
$('.timeBox').hide(); | |||||
//停止倒计时 | |||||
clearInterval(timer); | |||||
//停止五分钟提交成绩 | |||||
clearInterval(submitScoreTimer); | |||||
} else { | |||||
learun.alert.warning("提交成绩:取消占用失败!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("提交成绩失败!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 审核 | |||||
$('#lr_check').on('click', function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark == 1) { | |||||
learun.alert.warning("学生成绩已审核!"); | |||||
return false; | |||||
} | |||||
learun.layerConfirm('是否确认审核当前班级的学生成绩!', function (res) { | |||||
if (res) { | |||||
//审核成绩 | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/DoCheckScore', { queryJson: JSON.stringify(query), checkMark: 1 }, function (res) { | |||||
if (res.code == 200) { | |||||
refreshGirdData2(); | |||||
} else { | |||||
learun.alert.warning("审核成绩失败!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 去审核 | |||||
$('#lr_uncheck').on('click', function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark != 1) { | |||||
learun.alert.warning("学生成绩未审核!"); | |||||
return false; | |||||
} | |||||
learun.layerConfirm('是否确认去审核当前班级的学生成绩!', function (res) { | |||||
if (res) { | |||||
//去审核成绩 | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/DoCheckScore', { queryJson: JSON.stringify(query), checkMark: 0 }, function (res) { | |||||
if (res.code == 200) { | |||||
refreshGirdData2(); | |||||
} else { | |||||
learun.alert.warning("去审核成绩失败!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//续时 | |||||
$('#addMinutesBtn').on('click', function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
clearInterval(timer); | |||||
var addMinutes = $('#addMinutesBtn').attr('data-minutes'); | |||||
var newMinutes = addMinutes; | |||||
var minutes = $('#minutes').html(); | |||||
if (minutes > 0) { | |||||
newMinutes = Number(newMinutes) + Number(minutes); | |||||
} | |||||
$('#minutes').html(newMinutes); | |||||
page.countDown(); | |||||
//修改服务时间 | |||||
learun.postFormSilence(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/AddMinutes', { queryJson: JSON.stringify(query), minutes: newMinutes }, function (res) { }); | |||||
} | |||||
}); | |||||
//导入更新 | |||||
$('#lr_importScore').on('click', function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
//判断成绩比例是否合理 | |||||
//var OrdinaryScoreScale = $('#OrdinaryScoreScale').html(); | |||||
//var TermInScoreScale = $('#TermInScoreScale').html(); | |||||
//var TermEndScoreScale = $('#TermEndScoreScale').html(); | |||||
//var OtherScoreScale = $('#OtherScoreScale').html(); | |||||
//var totalScale = Number(OrdinaryScoreScale) + Number(TermInScoreScale) + Number(TermEndScoreScale) + Number(OtherScoreScale); | |||||
//if (totalScale !== 100) { | |||||
// learun.alert.warning("成绩比例设置不合理!"); | |||||
// return false; | |||||
//} else { | |||||
//判断是否已审核;判断是否被其他教师占用 | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEntityByJson?queryJson=' + JSON.stringify(query), function (data) { | |||||
if (data != null) { | |||||
if (data.CheckMark == 1) { | |||||
learun.alert.warning("学生成绩已审核!"); | |||||
return false; | |||||
} | |||||
if (data.IsEditable == 0) { | |||||
if (data.EditUserId == learun.clientdata.get(['userinfo']).account) { | |||||
modifyDate = data.ModifyDate; | |||||
} else { | |||||
learun.alert.warning("当前班级成绩由账号为" + data.EditUserId + "的教师在使用!"); | |||||
return false; | |||||
} | |||||
} | |||||
rowJson = $('#gridtable').jfGridGet('showData'); | |||||
if (rowJson.length <= 0) { | |||||
learun.alert.warning("查询结果不存在!"); | |||||
return false; | |||||
} | |||||
columnJson = $('#gridtable').jfGridGet('settingInfo').headData; | |||||
//条件 | |||||
queryJson = query; | |||||
learun.layerForm({ | |||||
id: 'IndexImport', | |||||
title: "导入学生成绩", | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/InputScoreIndexImport?type=0', | |||||
width: 600, | |||||
height: 400, | |||||
maxmin: true, | |||||
btn: null, | |||||
end: function () { | |||||
refreshGirdData2(); | |||||
} | |||||
}); | |||||
} else { | |||||
learun.alert.warning("学生成绩不存在!"); | |||||
return false; | |||||
} | |||||
}); | |||||
//} | |||||
} | |||||
}); | |||||
}, | |||||
bindSelect: function () { | |||||
//校区 | |||||
$('#F_SchoolId').lrDataSourceSelect({ | |||||
code: 'company', value: 'f_companyid', text: 'f_fullname', select: function (item) { } | |||||
}); | |||||
$('#F_SchoolId').lrselectSet(learun.clientdata.get(['userinfo']).companyId); | |||||
//学年 | |||||
$('#AcademicYearNo').lrselect({ | |||||
placeholder: "学年", | |||||
allowSearch: false, | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetAcademicYearNoData', | |||||
value: 'value', | |||||
text: 'text', | |||||
select: function (item) { | |||||
if (!!item) { | |||||
$("#LessonNo").lrselectRefresh({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetLessonNoDataWithNo?AcademicYearShort=' + item.value + '&Semester=' + $('#Semester').lrselectGet(), | |||||
}); | |||||
} | |||||
} | |||||
}); | |||||
//学期 | |||||
$('#Semester').lrselect({ | |||||
placeholder: "学期", | |||||
allowSearch: false, | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetSemesterData', | |||||
value: 'value', | |||||
text: 'text', | |||||
select: function (item) { | |||||
if (!!item) { | |||||
$("#LessonNo").lrselectRefresh({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetLessonNoDataWithNo?AcademicYearShort=' + $('#AcademicYearNo').lrselectGet() + '&Semester=' + item.value, | |||||
}); | |||||
} | |||||
} | |||||
}); | |||||
//课程 | |||||
$('#LessonNo').lrselect({ | |||||
placeholder: "请选择课程", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetLessonNoDataWithNo', | |||||
value: 'value', | |||||
text: 'text', | |||||
select: function (item) { | |||||
if (!!item) { | |||||
$("#EmpNo").lrselectRefresh({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEmpNoData?lessonNo=' + item.value + '&AcademicYearShort=' + $('#AcademicYearNo').lrselectGet() + '&Semester=' + $('#Semester').lrselectGet(), | |||||
}); | |||||
} | |||||
} | |||||
}); | |||||
//教师 | |||||
$('#EmpNo').lrselect({ | |||||
placeholder: "请选择教师", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEmpNoData', | |||||
value: 'value', | |||||
text: 'text' | |||||
}); | |||||
//绑定学年、学期 | |||||
$.get('/Home/GetYearAndSemesteResult', function (ref) { | |||||
if (ref.code == "200") { | |||||
$('#AcademicYearNo').lrselectSet(ref.data.Item1); | |||||
$('#Semester').lrselectSet(ref.data.Item3); | |||||
} | |||||
}.bind(this), "json"); | |||||
}, | |||||
initGird: function () { | |||||
$('#gridtable').jfGrid({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetList', | |||||
headData: headDataFinally, | |||||
mainId: 'ScoreId', | |||||
isPage: false, | |||||
sidx: 'StuNo', | |||||
sord: 'asc' | |||||
}); | |||||
//page.search(); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||||
}, | |||||
searchScale: function (param) { | |||||
param = param || {}; | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/OpenLessonPlan/GetStuSelectLessonListEntityByJson?queryJson=' + JSON.stringify(param), function (data) { | |||||
if (data["StuSelectLessonList"] != null) { | |||||
var ssll = data["StuSelectLessonList"]; | |||||
$('#OrdinaryScoreScale').html(ssll.OrdinaryScoreScale > 0 ? ssll.OrdinaryScoreScale : 0); | |||||
$('#TermInScoreScale').html(ssll.TermInScoreScale > 0 ? ssll.TermInScoreScale : 0); | |||||
$('#TermEndScoreScale').html(ssll.TermEndScoreScale > 0 ? ssll.TermEndScoreScale : 0); | |||||
$('#OtherScoreScale').html(ssll.OtherScoreScale > 0 ? ssll.OtherScoreScale : 0); | |||||
} else { | |||||
$('#OrdinaryScoreScale').html(0); | |||||
$('#TermInScoreScale').html(0); | |||||
$('#TermEndScoreScale').html(0); | |||||
$('#OtherScoreScale').html(0); | |||||
} | |||||
}); | |||||
}, | |||||
countDown: function () { | |||||
var minutes = $('#minutes').html(); | |||||
var minutesTemp = minutes; | |||||
var seconds = $('#seconds').attr('data-seconds'); | |||||
$('#seconds').html(seconds); | |||||
var secondsTemp = seconds; | |||||
timer = setInterval(function () { | |||||
secondsTemp--; | |||||
$('#seconds').html(secondsTemp); | |||||
if (secondsTemp == 0) { | |||||
secondsTemp = seconds; | |||||
minutesTemp--; | |||||
$('#minutes').html(minutesTemp); | |||||
if (minutesTemp == 0) { | |||||
//停止倒计时 | |||||
clearInterval(timer); | |||||
//自动提交成绩 | |||||
$('#lr_save').trigger("click"); | |||||
} | |||||
} | |||||
}, 1000); | |||||
}, | |||||
submitScore: function () { | |||||
submitScoreTimer = setInterval(function () { | |||||
var rowdatas = $('#gridtable').jfGridGet('rowdatas'); | |||||
learun.postFormSilence(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/SaveInputScore', { data: JSON.stringify(rowdatas) }, function (res) { | |||||
}); | |||||
}, 300000); | |||||
}, | |||||
}; | |||||
refreshGirdData = function () { | |||||
page.search(); | |||||
}; | |||||
refreshGirdData2 = function () { | |||||
var query = judgeSelect(); | |||||
if (query) { | |||||
//显示不可编辑列头 | |||||
headDataFinally = headData.concat(headDataNoEdit); | |||||
$("#gridtable")[0].dfop = undefined; | |||||
page.initGird(); | |||||
page.search(query); | |||||
//page.searchScale(query); | |||||
} | |||||
}; | |||||
judgeSelect = function () { | |||||
if (CanInputFlag != "True") { | |||||
top.learun.layerConfirm('当前时间不是线上成绩录入时间!', function (res) { }); | |||||
return false; | |||||
} | |||||
var $content = $('body').find('.lr-layout-tool-left'); | |||||
var query = $content.lrGetFormData(); | |||||
if (query.F_SchoolId == null || query.F_SchoolId == "") { | |||||
learun.alert.warning("请选择校区!"); | |||||
return false; | |||||
} | |||||
if (query.AcademicYearNo == null || query.AcademicYearNo == "") { | |||||
learun.alert.warning("请选择学年!"); | |||||
return false; | |||||
} | |||||
if (query.Semester == null || query.Semester == "") { | |||||
learun.alert.warning("请选择学期!"); | |||||
return false; | |||||
} | |||||
if (query.LessonNo == null || query.LessonNo == "") { | |||||
learun.alert.warning("请选择课程!"); | |||||
return false; | |||||
} | |||||
if (query.EmpNo == null || query.EmpNo == "") { | |||||
learun.alert.warning("请选择教师!"); | |||||
return false; | |||||
} | |||||
return query; | |||||
}; | |||||
page.init(); | |||||
} |
@@ -1031,7 +1031,9 @@ | |||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\IndexUnpassOfElective.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\IndexUnpassOfElective.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\InputScoreIndexOfElectiveInTeacher.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\InputScoreIndexOfElectiveInTeacher.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\InputScoreIndexOfElective.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\InputScoreIndexOfElective.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndexInTeacher.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndex.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndex.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndexImport.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\Monitor.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\Monitor.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\AuditForm.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\AuditForm.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\AuditIndex.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\AuditIndex.js" /> | ||||
@@ -8219,6 +8221,8 @@ | |||||
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\InitScoreForm.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\InitScoreForm.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndex.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndex.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\Monitor.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\Monitor.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndexImport.cshtml" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndexInTeacher.cshtml" /> | |||||
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | <None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | ||||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | <None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | ||||
<Content Include="Views\Login\Default-beifen.cshtml" /> | <Content Include="Views\Login\Default-beifen.cshtml" /> | ||||
@@ -545,11 +545,11 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
/// 教师下拉框信息【学生成绩录入可去审核】 | /// 教师下拉框信息【学生成绩录入可去审核】 | ||||
/// </summary> | /// </summary> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
public IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo) | |||||
public IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo, string AcademicYearNo = "", string Semester = "") | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
return stuScoreOnlineService.GetEmpNoData(userAccount, userType, lessonNo); | |||||
return stuScoreOnlineService.GetEmpNoData(userAccount, userType, lessonNo, AcademicYearNo, Semester); | |||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
@@ -140,7 +140,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
/// 教师下拉框信息【学生成绩录入可去审核】 | /// 教师下拉框信息【学生成绩录入可去审核】 | ||||
/// </summary> | /// </summary> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo); | |||||
IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo, string AcademicYearNo = "", string Semester = ""); | |||||
/// <summary> | /// <summary> | ||||
/// 课程下拉框信息【学生成绩录入可去审核】 | /// 课程下拉框信息【学生成绩录入可去审核】 | ||||
@@ -625,7 +625,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
} | } | ||||
#endregion | #endregion | ||||
private static HttpClient Client; | private static HttpClient Client; | ||||
internal List<StuScoreOnlineEntity> GetScoreInfo(string queryJson) | internal List<StuScoreOnlineEntity> GetScoreInfo(string queryJson) | ||||
{ | { | ||||
try | try | ||||
@@ -1145,7 +1145,7 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
/// 教师下拉框信息【学生成绩录入可去审核】 | /// 教师下拉框信息【学生成绩录入可去审核】 | ||||
/// </summary> | /// </summary> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
public IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo) | |||||
public IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo, string AcademicYearNo = "", string Semester = "") | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
@@ -1159,6 +1159,10 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
{ | { | ||||
strSql.Append(" and s.LessonNo='" + lessonNo + "' "); | strSql.Append(" and s.LessonNo='" + lessonNo + "' "); | ||||
} | } | ||||
if (!string.IsNullOrEmpty(AcademicYearNo)) | |||||
{ | |||||
strSql.Append(" and s.AcademicYearNo='" + AcademicYearNo + "' and s.Semester='" + Semester + "' "); | |||||
} | |||||
var data = this.BaseRepository("CollegeMIS").FindList<WebHelper.YearGrade>(strSql.ToString()); | var data = this.BaseRepository("CollegeMIS").FindList<WebHelper.YearGrade>(strSql.ToString()); | ||||
data = data.Where(x => !string.IsNullOrEmpty(x.value)).OrderBy(x => x.value); | data = data.Where(x => !string.IsNullOrEmpty(x.value)).OrderBy(x => x.value); | ||||
return data; | return data; | ||||
@@ -1604,7 +1608,7 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
//var notpass2 = this.BaseRepository("CollegeMIS") | //var notpass2 = this.BaseRepository("CollegeMIS") | ||||
// .FindList<StuScoreOnlineNotPassTwoEntity>(a => a.StuNo == stuNo).Count(); | // .FindList<StuScoreOnlineNotPassTwoEntity>(a => a.StuNo == stuNo).Count(); | ||||
//if ((notpass1 + notpass2) > 0) | //if ((notpass1 + notpass2) > 0) | ||||
if(0>0) | |||||
if (0 > 0) | |||||
{ | { | ||||
var result = new | var result = new | ||||
{ | { | ||||
@@ -1772,11 +1776,11 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
var Semester = queryParam["Semester"].ToString(); | var Semester = queryParam["Semester"].ToString(); | ||||
var LessonNo = queryParam["LessonNo"].ToString(); | var LessonNo = queryParam["LessonNo"].ToString(); | ||||
var EmpNo = queryParam["EmpNo"].ToString(); | var EmpNo = queryParam["EmpNo"].ToString(); | ||||
var now = DateTime.Now; | var now = DateTime.Now; | ||||
var loginUserInfo = LoginUserInfo.Get(); | var loginUserInfo = LoginUserInfo.Get(); | ||||
this.BaseRepository("CollegeMIS").ExecuteBySql("update StuScoreOnline set IsEditable='0',EditUserId='" + loginUserInfo.account + "',BeginModifyDate='" + now + "' where F_SchoolId='" + F_SchoolId + "' and AcademicYearNo='" + AcademicYearNo + "' and Semester='" + Semester + "' and LessonNo='" + LessonNo + "' and EmpNo='" + EmpNo + "' "); | this.BaseRepository("CollegeMIS").ExecuteBySql("update StuScoreOnline set IsEditable='0',EditUserId='" + loginUserInfo.account + "',BeginModifyDate='" + now + "' where F_SchoolId='" + F_SchoolId + "' and AcademicYearNo='" + AcademicYearNo + "' and Semester='" + Semester + "' and LessonNo='" + LessonNo + "' and EmpNo='" + EmpNo + "' "); | ||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
@@ -1848,11 +1852,11 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
var Semester = queryParam["Semester"].ToString(); | var Semester = queryParam["Semester"].ToString(); | ||||
var LessonNo = queryParam["LessonNo"].ToString(); | var LessonNo = queryParam["LessonNo"].ToString(); | ||||
var EmpNo = queryParam["EmpNo"].ToString(); | var EmpNo = queryParam["EmpNo"].ToString(); | ||||
var now = DateTime.Now; | var now = DateTime.Now; | ||||
var loginUserInfo = LoginUserInfo.Get(); | var loginUserInfo = LoginUserInfo.Get(); | ||||
this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuScoreOnline set IsEditable='1',EditUserId=null,BeginModifyDate=null,ModifyDate='{now}',ModifyUserId='{loginUserInfo.account}',ModifyUserName='{loginUserInfo.realName}' where F_SchoolId='{F_SchoolId}' and AcademicYearNo='{AcademicYearNo}' and Semester='{Semester}' and LessonNo='{LessonNo}' and EmpNo='{EmpNo}' "); | this.BaseRepository("CollegeMIS").ExecuteBySql($"update StuScoreOnline set IsEditable='1',EditUserId=null,BeginModifyDate=null,ModifyDate='{now}',ModifyUserId='{loginUserInfo.account}',ModifyUserName='{loginUserInfo.realName}' where F_SchoolId='{F_SchoolId}' and AcademicYearNo='{AcademicYearNo}' and Semester='{Semester}' and LessonNo='{LessonNo}' and EmpNo='{EmpNo}' "); | ||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
@@ -1880,7 +1884,7 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
var Semester = queryParam["Semester"].ToString(); | var Semester = queryParam["Semester"].ToString(); | ||||
var LessonNo = queryParam["LessonNo"].ToString(); | var LessonNo = queryParam["LessonNo"].ToString(); | ||||
var EmpNo = queryParam["EmpNo"].ToString(); | var EmpNo = queryParam["EmpNo"].ToString(); | ||||
var now = DateTime.Now; | var now = DateTime.Now; | ||||
var loginUserInfo = new | var loginUserInfo = new | ||||
{ | { | ||||
@@ -2150,16 +2154,18 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
public (DataTable failDt, int snum, int fnum) ExecuteImportExcel(int type, DataTable dt, string fileGuid, | public (DataTable failDt, int snum, int fnum) ExecuteImportExcel(int type, DataTable dt, string fileGuid, | ||||
string queryJson) | string queryJson) | ||||
{ | { | ||||
if (type == 1) | |||||
{ | |||||
//必修 | |||||
return ExecuteImportExcelForRequired(dt, fileGuid, queryJson); | |||||
} | |||||
else | |||||
{ | |||||
//选修 | |||||
return ExecuteImportExcelForElective(dt, fileGuid, queryJson); | |||||
} | |||||
return ExecuteImportExcelForRequired(dt, fileGuid, queryJson); | |||||
//if (type == 1) | |||||
//{ | |||||
// //必修 | |||||
// return ExecuteImportExcelForRequired(dt, fileGuid, queryJson); | |||||
//} | |||||
//else | |||||
//{ | |||||
// //选修 | |||||
// return ExecuteImportExcelForElective(dt, fileGuid, queryJson); | |||||
//} | |||||
} | } | ||||
@@ -2173,7 +2179,7 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
//成功记录数 | //成功记录数 | ||||
int snum = 0; | int snum = 0; | ||||
//总记录数 | //总记录数 | ||||
int num = 0; | |||||
int num = dt.Rows.Count; | |||||
var db = this.BaseRepository("CollegeMIS"); | var db = this.BaseRepository("CollegeMIS"); | ||||
var msg = ""; | var msg = ""; | ||||
try | try | ||||
@@ -2187,21 +2193,16 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
var AcademicYearNo = queryParam["AcademicYearNo"].ToString(); | var AcademicYearNo = queryParam["AcademicYearNo"].ToString(); | ||||
var Semester = queryParam["Semester"].ToString(); | var Semester = queryParam["Semester"].ToString(); | ||||
var LessonNo = queryParam["LessonNo"].ToString(); | var LessonNo = queryParam["LessonNo"].ToString(); | ||||
var ClassNo = queryParam["ClassNo"].ToString(); | |||||
var classInfoList = db.FindList<ClassInfoEntity>(); | |||||
var lessonInfoList = db.FindList<LessonInfoEntity>(); | |||||
var classInfoEntity = classInfoList.FirstOrDefault(x => x.ClassNo == ClassNo); | |||||
var lessonInfoEntity = lessonInfoList.FirstOrDefault(x => x.LessonNo == LessonNo && x.CheckMark == true); | |||||
var EmpNo = queryParam["EmpNo"].ToString(); | |||||
if (classInfoEntity != null) | |||||
//获取成绩比例数据 | |||||
//var stuSelectLessonListEntity = db.FindEntity<StuSelectLessonListOfElectiveOnlineEntity>(x => x.F_SchoolId == F_SchoolId && x.AcademicYearNo == AcademicYearNo && x.Semester == Semester && x.LessonNo == LessonNo && x.EmpNo == EmpNo && x.Status == 2); | |||||
//if (stuSelectLessonListEntity != null) | |||||
{ | { | ||||
//获取成绩比例数据 | |||||
var stuSelectLessonListEntity = db.FindEntity<StuSelectLessonListEntity>(x => x.F_SchoolId == F_SchoolId && x.AcademicYearNo == AcademicYearNo && x.Semester == Semester && x.OpenLessonDeptNo == classInfoEntity.DeptNo && x.OpenLessonMajorNo == classInfoEntity.MajorNo && x.LessonNo == LessonNo && x.LessonSortNo == "1" && x.ClassNo == ClassNo); | |||||
if (stuSelectLessonListEntity != null) | |||||
//当前班级学生成绩 | |||||
var list = GetList(queryJson).ToList(); | |||||
if (list.Any()) | |||||
{ | { | ||||
//当前班级学生成绩 | |||||
var list = GetList(queryJson).ToList(); | |||||
foreach (DataColumn dc in dt.Columns) | foreach (DataColumn dc in dt.Columns) | ||||
{ | { | ||||
failDt.Columns.Add(dc.ColumnName, dc.DataType); | failDt.Columns.Add(dc.ColumnName, dc.DataType); | ||||
@@ -2213,66 +2214,70 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
var stuno = dr["学号"].ToString().Trim(); | |||||
var stuNo_dr = dr["学生学号"].ToString().Trim(); | |||||
var stuName_dr = dr["学生姓名"].ToString().Trim(); | |||||
var academicYearNo_dr = dr["学年"].ToString().Trim(); | var academicYearNo_dr = dr["学年"].ToString().Trim(); | ||||
var semester_dr = dr["学期"].ToString().Trim(); | var semester_dr = dr["学期"].ToString().Trim(); | ||||
var lessoninfo_dr = dr["课程名称"].ToString().Trim(); | |||||
var classinfo_dr = dr["班级"].ToString().Trim(); | |||||
//var lessonNo_dr = lessonInfoList.FirstOrDefault(x => x.LessonName == lessoninfo_dr)?.LessonNo; | |||||
//var classNo_dr = classInfoList.FirstOrDefault(x => x.ClassName == classinfo_dr)?.ClassNo; | |||||
var lessonName_dr = dr["课程名称"].ToString().Trim(); | |||||
if (!string.IsNullOrEmpty(stuno)) | |||||
if (string.IsNullOrEmpty(stuNo_dr)) | |||||
{ | { | ||||
num++; | |||||
if (!academicYearNo_dr.Equals(AcademicYearNo) || !semester_dr.Equals(Semester)) | |||||
{ | |||||
dr["导入错误"] = "学年学期与查询条件不匹配!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (!classinfo_dr.Equals(classInfoEntity.ClassName)) | |||||
{ | |||||
dr["导入错误"] = "班级与查询条件班级(" + classInfoEntity.ClassName + ")不匹配!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (!lessoninfo_dr.Equals(lessonInfoEntity.LessonName)) | |||||
{ | |||||
dr["导入错误"] = "课程与查询条件课程(" + lessonInfoEntity.LessonName + ")不匹配!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (!lessoninfo_dr.Equals(lessonInfoEntity.LessonName) || !classinfo_dr.Equals(classInfoEntity.ClassName)) | |||||
{ | |||||
dr["导入错误"] = "课程:" + lessonInfoEntity.LessonName + ",班级:" + classInfoEntity.ClassName + "找不到学号为" + stuno + "的学生"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
var item = list.Find(x => x.StuNo == stuno && x.LessonNo == LessonNo && x.ClassNo == ClassNo); | |||||
var OrdinaryScore = Convert.ToDecimal(string.IsNullOrEmpty(dr["平时成绩"].ToString().Trim()) ? "0" : dr["平时成绩"].ToString().Trim()); | |||||
var TermInScore = Convert.ToDecimal(string.IsNullOrEmpty(dr["期中成绩"].ToString().Trim()) ? "0" : dr["期中成绩"].ToString().Trim()); | |||||
var TermEndScore = Convert.ToDecimal(string.IsNullOrEmpty(dr["期末成绩"].ToString().Trim()) ? "0" : dr["期末成绩"].ToString().Trim()); | |||||
var OtherScore = Convert.ToDecimal(string.IsNullOrEmpty(dr["其他成绩"].ToString().Trim()) ? "0" : dr["其他成绩"].ToString().Trim()); | |||||
if (OrdinaryScore < 0 || TermInScore < 0 || TermEndScore < 0 || OtherScore < 0) | |||||
{ | |||||
dr["导入错误"] = "成绩必须大于0!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
var Score = Math.Round(Convert.ToDouble(OrdinaryScore * (stuSelectLessonListEntity.OrdinaryScoreScale / 100) + | |||||
TermInScore * (stuSelectLessonListEntity.TermInScoreScale / 100) + | |||||
TermEndScore * (stuSelectLessonListEntity.TermEndScoreScale / 100) + | |||||
OtherScore * (stuSelectLessonListEntity.OtherScoreScale / 100)), MidpointRounding.AwayFromZero); | |||||
var remark = dr["备注"].ToString().Trim(); | |||||
db.ExecuteBySql($"update StuScoreOnline set OrdinaryScore={OrdinaryScore},TermInScore={TermInScore},TermEndScore={TermEndScore},OtherScore={OtherScore},Score={Score},Remark='{remark}' where ScoreId='{item.ScoreId}' "); | |||||
dr["导入错误"] = "学生学号不能为空!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | } | ||||
else | |||||
if (string.IsNullOrEmpty(stuName_dr)) | |||||
{ | { | ||||
break; | |||||
dr["导入错误"] = "学生姓名不能为空!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | } | ||||
if (string.IsNullOrEmpty(academicYearNo_dr)) | |||||
{ | |||||
dr["导入错误"] = "学年不能为空!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (string.IsNullOrEmpty(semester_dr)) | |||||
{ | |||||
dr["导入错误"] = "学期不能为空!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (string.IsNullOrEmpty(lessonName_dr)) | |||||
{ | |||||
dr["导入错误"] = "课程名称不能为空!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (!academicYearNo_dr.Equals(AcademicYearNo) || !semester_dr.Equals(Semester)) | |||||
{ | |||||
dr["导入错误"] = "学年学期与查询条件不匹配!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
if (!lessonName_dr.Equals(list.FirstOrDefault().LessonName)) | |||||
{ | |||||
dr["导入错误"] = "课程名称与查询条件课程(" + list.FirstOrDefault().LessonName + ")不匹配!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
var item = list.FirstOrDefault(x => x.StuNo == stuNo_dr && x.StuName == stuName_dr && x.LessonNo == LessonNo && x.EmpNo == EmpNo); | |||||
if (item == null) | |||||
{ | |||||
dr["导入错误"] = "找不到学生学号为" + stuNo_dr + ",学生姓名为" + stuName_dr + "的学生"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
var TermEndScore = Convert.ToDecimal(string.IsNullOrEmpty(dr["最终核定成绩"].ToString().Trim()) ? "0" : dr["最终核定成绩"].ToString().Trim()); | |||||
if (TermEndScore < 0) | |||||
{ | |||||
dr["导入错误"] = "最终核定成绩必须大于0!"; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
continue; | |||||
} | |||||
db.ExecuteBySql($"update StuScoreOnline set TermEndScore={TermEndScore},Score={TermEndScore},Remark='{dr["备注"].ToString().Trim()}' where ScoreId='{item.ScoreId}' "); | |||||
} | } | ||||
catch (Exception e) | catch (Exception e) | ||||
{ | { | ||||
@@ -2291,6 +2296,7 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad | |||||
cache.Write<string>(cacheKey + fileGuid, errordt, CacheId.excel); | cache.Write<string>(cacheKey + fileGuid, errordt, CacheId.excel); | ||||
} | } | ||||
snum = (num - failDt.Rows.Count) > 0 ? num - failDt.Rows.Count : 0; | snum = (num - failDt.Rows.Count) > 0 ? num - failDt.Rows.Count : 0; | ||||
} | } | ||||
} | } | ||||