Selaa lähdekoodia

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

新疆体育高职分支
liangkun 1 vuosi sitten
vanhempi
commit
53b1ddf9d9
19 muutettua tiedostoa jossa 7015 lisäystä ja 117 poistoa
  1. +1244
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuScoreOnlineController.cs
  2. +122
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/InputScoreIndex.cshtml
  3. +553
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/InputScoreIndex.js
  4. +38
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/Monitor.cshtml
  5. +132
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/Monitor.js
  6. +25
    -10
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuSelectLessonListOfElectiveOnline/QueryStuSelectResultForTeacher.cshtml
  7. +68
    -85
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuSelectLessonListOfElectiveOnline/QueryStuSelectResultForTeacher.js
  8. +5
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
  9. +13
    -22
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LessonInfoOfElectiveOnlineApi.cs
  10. +29
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/StuScoreOnlineMap.cs
  11. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj
  12. +1146
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineBLL.cs
  13. +452
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineEntity.cs
  14. +261
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineIBLL.cs
  15. +2468
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineService.cs
  16. +4
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
  17. +13
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
  18. +137
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/LessonInfoOfElectiveOnline/from.vue
  19. +304
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/LessonInfoOfElectiveOnline/list.vue

+ 1244
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuScoreOnlineController.cs
File diff suppressed because it is too large
Näytä tiedosto


+ 122
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/InputScoreIndex.cshtml Näytä tiedosto

@@ -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>&nbsp;查询</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">&nbsp;开始录入</i></a>
<a id="lr_save" class="btn btn-default" style="display:none;"><i class="fa fa-edit">&nbsp;提交成绩</i></a>
<a id="lr_check" class="btn btn-default"><i class="fa fa-lock">&nbsp;审核</i></a>
<a id="lr_uncheck" class="btn btn-default"><i class="fa fa-lock">&nbsp;取消审核</i></a>
@*<a id="lr_setScale" class="btn btn-default"><i class="fa fa-edit">&nbsp;设置成绩比例</i></a>*@
<a id="lr_importScore" class="btn btn-default"><i class="fa fa-edit">&nbsp;导入更新</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/InputScoreIndex.js")
<script>
var CanInputFlag = "@ViewBag.CanInputFlag";
if (CanInputFlag != "True") {
top.learun.layerConfirm('当前时间不是线上成绩录入时间!', function (res) {});
}
</script>

+ 553
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/InputScoreIndex.js Näytä tiedosto

@@ -0,0 +1,553 @@
/* * 版 本 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 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: 100, 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 () {
//todo:
});
},
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'
});
//学期
$('#Semester').lrselect({
placeholder: "学期",
allowSearch: false,
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetSemesterData',
value: 'value',
text: 'text'
});
//课程
$('#LessonNo').lrselect({
placeholder: "请选择课程",
allowSearch: true,
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetLessonNoDataOfAllWithNo',
value: 'value',
text: 'text',
select: function (item) {
if (!!item) {
$("#EmpNo").lrselectRefresh({
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEmpNoDataOfAll?lessonNo=' + item.value,
value: 'value',
text: 'text',
});
}
}
});
//教师
$('#EmpNo').lrselect({
placeholder: "请选择教师",
allowSearch: true,
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetEmpNoDataOfAll',
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();
}

+ 38
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/Monitor.cshtml Näytä tiedosto

@@ -0,0 +1,38 @@
@{
ViewBag.Title = "线上成绩录入监控管理";
Layout = "~/Views/Shared/_Index.cshtml";
}
<style>
.lr-select {
width: 150px;
}
</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="lr-layout-tool-left">
<div class="lr-layout-tool-item">
<div id="AcademicYearNo" type="lrselect" class="lr-select"></div>
</div>
<div class="lr-layout-tool-item">
<div id="Semester" 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>&nbsp;查询</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">
<a id="lr_submit" class="btn btn-default"><i class="fa fa-lock"></i>&nbsp;强制提交</a>
</div>
</div>
</div>
<div class="lr-layout-body" id="gridtable"></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuScoreOnline/Monitor.js")

+ 132
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreOnline/Monitor.js Näytä tiedosto

@@ -0,0 +1,132 @@
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
* Copyright (c) 2013-2018 北京泉江科技有限公司
* 创建人:超级管理员
* 日 期:2019-06-14 11:02
* 描 述:考试成绩同步
*/
var selectedRow;
var refreshGirdData;
var bootstrap = function ($, learun) {
"use strict";
var page = {
init: function () {
page.bind();
page.initGird();
},
bind: function () {
//学年
$('#AcademicYearNo').lrselect({
width: '150px',
placeholder: "请选择学年",
allowSearch: true,
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetAcademicYearNoData',
value: 'value',
text: 'text'
});
//学期
$('#Semester').lrselect({
width: '150px',
placeholder: "请选择学期",
allowSearch: true,
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetSemesterData',
value: 'value',
text: 'text'
});
// 查询
$('#btn_Search').on('click', function () {
page.search({ AcademicYearNo: $('#AcademicYearNo').lrselectGet(), Semester: $('#Semester').lrselectGet() });
});
// 刷新
$('#lr_refresh').on('click', function () {
location.reload();
});
//强制提交
$('#lr_submit').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('EmpNo');
if (learun.checkrow(keyValue)) {
var IsEditable = $('#gridtable').jfGridValue('IsEditable');
if (IsEditable == "1") {
learun.alert.warning("当前项目无需提交!");
return;
}
learun.layerConfirm('是否确认提交该项?未保存的成绩将会丢失!', function (res) {
if (res) {
learun.postForm(top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/Submit',
{
AcademicYearNo: $('#gridtable').jfGridValue('AcademicYearNo'),
Semester: $('#gridtable').jfGridValue('Semester'),
LessonNo: $('#gridtable').jfGridValue('LessonNo'),
EmpNo: $('#gridtable').jfGridValue('EmpNo'),
EditUserId: $('#gridtable').jfGridValue('EditUserId'),
},
function () {
refreshGirdData();
});
}
});
}
});
},
initGird: function () {
$('#gridtable').jfGrid({
url: top.$.rootUrl + '/EducationalAdministration/StuScoreOnline/GetMonitorList',
headData: [
{
label: "录入状态", name: "IsEditable", 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: 'LessonNo', width: 100, align: "left" },
{ label: '课程名称', name: 'LessonName', width: 150, align: "left" },
{ label: '代课教师编号', name: 'EmpNo', width: 100, align: "left" },
{
label: '代课教师姓名', name: 'EmpNo', width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'TeacherInfo',
key: value,
keyId: 'f_account',
callback: function (_data) {
callback(_data['f_realname']);
}
});
}
},
{ label: '占用教师编号', name: 'EditUserId', width: 100, align: "left" },
{
label: '占用教师姓名', name: 'EditUserId', width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'TeacherInfo',
key: value,
keyId: 'f_account',
callback: function (_data) {
callback(_data['f_realname']);
}
});
}
},
{ label: '开始录入日期', name: 'BeginModifyDate', width: 150, align: "left" },
{ label: '最后保存日期', name: 'ModifyDate', width: 150, align: "left" },

],
//mainId: 'ScoreId',
isPage: false
});
//page.search();
},
search: function (param) {
param = param || {};
param.AcademicYearNo = $('#AcademicYearNo').lrselectGet();
param.Semester = $('#Semester').lrselectGet();
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
page.search();
};
page.init();
}

+ 25
- 10
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuSelectLessonListOfElectiveOnline/QueryStuSelectResultForTeacher.cshtml Näytä tiedosto

@@ -2,7 +2,7 @@
ViewBag.Title = "选修课课程";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="lr-layout " >
<div class="lr-layout ">
<div class="lr-layout-center">
<div class="lr-layout-wrap lr-layout-wrap-notitle ">
<div class="lr-layout-tool">
@@ -16,28 +16,40 @@
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">学期</div>
<div id="Semester" class="form-control"></div>
<div id="Semester"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">学号</div>
<input id="StuNo" class="form-control" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">姓名</div>
<input id="StuName" class="form-control" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">课程名称</div>
<div id="LessonNo"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">建课教师</div>
<input id="EmpName" class="form-control" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">校区</div>
<div id="F_SchoolId"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">系部</div>
<div class="lr-form-item-title">系</div>
<div id="DeptNo"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">专业</div>
<div id="MajorNo"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">班级</div>
<div id="ClassNo"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">选课状态</div>
<div id="ElectiveSelectStatus"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">报名状态</div>
<div id="ElectiveSignUpStatus"></div>
@@ -45,6 +57,9 @@
</div>
</div>
</div>
<div class="lr-layout-tool-item">
<div style="height:28px;line-height:28px;">提示:请输入学年和学期进行查询</div>
</div>
</div>
<div class="lr-layout-tool-right">
<div class=" btn-group btn-group-sm">
@@ -56,4 +71,4 @@
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuSelectLessonListOfElective/QueryStuSelectResultForTeacher.js")
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuSelectLessonListOfElectiveOnline/QueryStuSelectResultForTeacher.js")

+ 68
- 85
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuSelectLessonListOfElectiveOnline/QueryStuSelectResultForTeacher.js Näytä tiedosto

@@ -24,7 +24,7 @@ var bootstrap = function ($, learun) {
return;
}
page.search(queryJson);
}, 300, 400);
}, 330, 500);
$('#AcademicYearNo').lrselect({
placeholder: "请选择学年",
allowSearch: true,
@@ -40,12 +40,58 @@ var bootstrap = function ($, learun) {
value: 'value',
text: 'text'
});
$('#ElectiveSelectStatus').lrDataItemSelect({ code: 'ElectiveSelectStatus' });
$('#ElectiveSignUpStatus').lrDataItemSelect({ code: 'ElectiveSignUpStatus' });
//数据集不选择线上课程信息,选择选课情况里的课程信息
$('#LessonNo').lrselect({
allowSearch: true,
url: top.$.rootUrl + '/EducationalAdministration/StuSelectLessonListOfElectiveOnline/GetSelectLessonInfo',
value: "LessonNo",
text: "LessonName"
});
$('#F_SchoolId').lrDataSourceSelect({ code: 'company', value: 'f_companyid', text: 'f_fullname' });
$('#DeptNo').lrDataSourceSelect({ code: 'CdDeptInfo', value: 'deptno', text: 'deptname' });
$('#MajorNo').lrDataSourceSelect({ code: 'CdMajorInfo', value: 'majorno', text: 'majorname' });
$('#ClassNo').lrDataSourceSelect({ code: 'bjsj', value: 'classno', text: 'classname' });
$('#DeptNo').lrDataSourceSelect({
code: 'CdDeptInfo', value: 'deptno', text: 'deptname', select: function (item) {
if (!!item) {
$('#MajorNo').lrselectRefresh({
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdMajorInfo',
param: { strWhere: "deptno='" + item.deptno + "' order by majorno " },
});
} else {
$('#MajorNo').lrselectRefresh({
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdMajorInfo',
param: { strWhere: "1=1 order by majorno " },
});
}
}
});
$('#MajorNo').lrselect({
allowSearch: true,
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdMajorInfo',
param: { strWhere: "1=1 order by majorno " },
value: "majorno",
text: "majorname",
select: function (item) {
if (!!item) {
$('#ClassNo').lrselectRefresh({
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj',
param: { strWhere: "majorno='" + item.majorno + "' order by classno " },
});
} else {
$('#ClassNo').lrselectRefresh({
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj',
param: { strWhere: "1=1 order by classno " },
});
}
}
});
$('#ClassNo').lrselect({
allowSearch: true,
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=bjsj',
param: { strWhere: "1=1 order by classno " },
value: "classno",
text: "classname"
});
$('#ElectiveSignUpStatus').lrDataItemSelect({ code: 'ElectiveSignUpStatus' });

// 刷新
$('#lr_refresh').on('click', function () {
location.reload();
@@ -54,12 +100,22 @@ var bootstrap = function ($, learun) {
// 初始化列表
initGird: function () {
$('#gridtable').jfGrid({
url: top.$.rootUrl + '/EducationalAdministration/StuSelectLessonListOfElective/GetQueryStuSelectResultList',
url: top.$.rootUrl + '/EducationalAdministration/StuSelectLessonListOfElectiveOnline/GetQueryStuSelectResultList',
headData: [
{ label: "学年", name: "AcademicYearNo", width: 80, align: "left" },
{ label: "学期", name: "Semester", width: 60, align: "left" },
{ label: "学年", name: "AcademicYearNo", width: 50, align: "left" },
{ label: "学期", name: "Semester", width: 50, align: "left" },
{ label: "学号", name: "StuNo", width: 120, align: "left" },
{ label: "姓名", name: "StuName", width: 180, align: "left" },
{ label: "课程编号", name: "LessonNo", width: 100, align: "left" },
{
label: "课程名称", name: "LessonName", width: 150, align: "left"
},
//{ label: "教师编号", name: "EmpNo", width: 100, align: "left" },
{
label: "建课教师", name: "EmpName", width: 100, align: "left"
},
{
label: "校区", name: "F_SchoolId", width: 200, align: "left",
label: "建课学校", name: "F_SchoolId", width: 200, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
@@ -72,7 +128,7 @@ var bootstrap = function ($, learun) {
}
},
{
label: "系", name: "DeptNo", width: 100, align: "left",
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',
@@ -110,24 +166,6 @@ var bootstrap = function ($, learun) {
});
}
},
{ label: "学号", name: "StuNo", width: 100, align: "left" },
{ label: "姓名", name: "StuName", width: 100, align: "left" },
{
label: "性别", name: "GenderNo", width: 80, align: "left",
formatter: function (cellvalue) {
return cellvalue == true ? "男" : "女";
}
},
{
label: "选课状态", name: "Id", width: 100, align: "left",
formatter: function (cellvalue, row) {
if (cellvalue == null || cellvalue == undefined || cellvalue == "") {
return '<span class=\"label label-default\">未报名</span>';
} else {
return '<span class=\"label label-success\">已报名</span>';
}
}
},
{
label: "报名状态", name: "Status", width: 100, align: "left",
formatter: function (cellvalue, row) {
@@ -142,62 +180,7 @@ var bootstrap = function ($, learun) {
}
}
},
{ label: "所选课程号", name: "LessonNo", width: 100, align: "left" },
{
label: "所选课程名称", name: "LessonName", width: 150, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'LessonInfo',
key: row.LessonNo,
keyId: 'lessonno',
callback: function (_data) {
callback(_data['lessonname']);
}
});
}
},
{ label: "课程学分", name: "StudyScore", width: 100, align: "left" },
{ label: "教师编号", name: "EmpNo", width: 100, align: "left" },
{
label: "教师姓名", name: "EmpName", width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'EmpInfo',
key: row.EmpNo,
keyId: 'empno',
callback: function (_data) {
callback(_data['empname']);
}
});
}
},
{
label: "上课节次", name: "LessonSection", width: 150, align: "left",
formatter: function (cellvalue, row) {
if (cellvalue != "" && cellvalue != undefined && cellvalue != null) {
if (cellvalue.indexOf(',') == -1) {
return "星期" + weekChina[cellvalue.slice(0, 1) - 1] + "第" + cellvalue.slice(1) + "节";
} else {
return "星期" + weekChina[cellvalue.slice(0, 1) - 1] + "第" + cellvalue.slice(1, 2) + "、" + cellvalue.slice(4) + "节";
}
}
}
},
{ label: "上课时间", name: "LessonTime", width: 180, align: "left" },
{
label: "教室名称", name: "ClassRoomName", width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'ClassRoomInfo',
key: row.ClassRoomNo,
keyId: 'classroomno',
callback: function (_data) {
callback(_data['classroomname']);
}
});
}
},
{ label: "备注", name: "Remark", width: 100, align: "left" },

],
mainId: 'StuId',
isPage: true,


+ 5
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj Näytä tiedosto

@@ -340,6 +340,7 @@
<Compile Include="Areas\AssetManagementSystem\Controllers\Ass_UserChangeInfoController.cs" />
<Compile Include="Areas\AssetManagementSystem\Controllers\Ass_WarningController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\ElectiveMajorOnlineController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\StuScoreOnlineController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\StuSelectLessonListOfElectiveOnlineController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\YKTStateMentController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\ArrangeLessonSyncController.cs" />
@@ -1030,6 +1031,8 @@
<Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\IndexUnpassOfElective.js" />
<Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\InputScoreIndexOfElectiveInTeacher.js" />
<Content Include="Areas\EducationalAdministration\Views\StuScoreNotPass\InputScoreIndexOfElective.js" />
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndex.js" />
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\Monitor.js" />
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\AuditForm.js" />
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\AuditIndex.js" />
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\FinishIndex.js" />
@@ -8214,6 +8217,8 @@
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\QueryStuSelectResultForTeacher.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\LessonInfoOfElectiveOnline\StudentIndex.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuSelectLessonListOfElectiveOnline\InitScoreForm.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\InputScoreIndex.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuScoreOnline\Monitor.cshtml" />
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" />
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<Content Include="Views\Login\Default-beifen.cshtml" />


+ 13
- 22
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LessonInfoOfElectiveOnlineApi.cs Näytä tiedosto

@@ -52,13 +52,13 @@ namespace Learun.Application.WebApi
var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(account);
if (stuInfoBasicEntity == null)
{
return Fail("当前学员不存在!");
return Success(new { msg = "当前学员不存在!" });
}
//课程信息
var olpeEntity = lessonInfoOfElectiveOnlineIbll.GetLessonInfoOfElectiveOnlineEntity(keyValue);
if (olpeEntity == null)
{
return Fail("当前课程不存在!");
return Success(new { msg = "当前课程不存在!" });
}

//当前学员本学期是否有报名课程:每学期一门
@@ -96,11 +96,11 @@ namespace Learun.Application.WebApi
{
if (sslleEntity.Status == 1)
{
return Fail("当前课程报名审核中,请耐心等待!");
return Success(new { msg = "当前课程报名审核中,请耐心等待!" });
}
else if (sslleEntity.Status == 2)
{
return Fail("当前课程已报名成功!");
return Success(new { msg = "当前课程已报名成功!" });
}
}
else
@@ -110,7 +110,7 @@ namespace Learun.Application.WebApi
var aaa = aa.Count(x => x.Status == 1 || x.Status == 2);
if (aaa >= olpeEntity.StuNumMax)
{
return Fail("当前课程报名人数已满,请选择其他课程!");
return Success(new { msg = "当前课程报名人数已满,请选择其他课程!" });
}
//每学期最多两门
var sslleList = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineListByStuNo(account);
@@ -118,15 +118,15 @@ namespace Learun.Application.WebApi
var sslleListOfNow1 = sslleListOfNow.Where(x => x.Status == 1 || x.Status == 2);
if (sslleListOfNow1.Count() >= Config.GetValue("OnlineElectiveLessonApplyMax").ToInt())
{
return Fail("每学期最多选择" + Config.GetValue("OnlineElectiveLessonApplyMax").ToInt() + "门线上选修课!");
return Success(new { msg = "每学期最多选择" + Config.GetValue("OnlineElectiveLessonApplyMax").ToInt() + "门线上选修课!" });
}
//相同时间不能报名
if (sslleListOfNow1.Where(x => x.LessonSection == olpeEntity.LessonSection).Any())
if (!string.IsNullOrEmpty(olpeEntity.LessonSection) && sslleListOfNow1.Where(x => x.LessonSection == olpeEntity.LessonSection).Any())
{
//相同时间不能报名
return Fail("本学期此时间段已有报名的选修课!");
return Success(new { msg = "本学期此时间段已有报名的选修课!" });
}
}

return Fail("正在提交,请等待!");
@@ -173,20 +173,11 @@ namespace Learun.Application.WebApi
public Response GetForm(dynamic _)
{
string keyValue = this.GetReqData();
var JournalReceiveData = lessonInfoOfElectiveOnlineIbll.GetLessonInfoOfElectiveOnlineEntity(keyValue);
if (lessonInfoIbll.GetLessonInfoEntityByLessonNo(JournalReceiveData.LessonNo) != null)
{
if (!string.IsNullOrEmpty(lessonInfoIbll.GetLessonInfoEntityByLessonNo(JournalReceiveData.LessonNo).Introduction))
JournalReceiveData.Introduction = WebHelper.NoHtml(WebHelper.HtmlDecode(lessonInfoIbll.GetLessonInfoEntityByLessonNo(JournalReceiveData.LessonNo).Introduction)) ?? "";
}
if (empInfoIbll.GetEmpInfoEntityByEmpNo(JournalReceiveData.EmpNo) != null)
{
if (!string.IsNullOrEmpty(empInfoIbll.GetEmpInfoEntityByEmpNo(JournalReceiveData.EmpNo).resume))
JournalReceiveData.resume = WebHelper.NoHtml(WebHelper.HtmlDecode(empInfoIbll.GetEmpInfoEntityByEmpNo(JournalReceiveData.EmpNo).resume)) ?? "";
}
var Data = lessonInfoOfElectiveOnlineIbll.GetLessonInfoOfElectiveOnlineEntity(keyValue);

var jsonData = new
{
JournalReceive = JournalReceiveData,
data = Data,
};
return Success(jsonData);
}
@@ -223,7 +214,7 @@ namespace Learun.Application.WebApi
if (sslleEntity.Status != 2)
{
stuSelectLessonListOfElectiveOnlineIBLL.DeleteEntity(sslleEntity.Id);
return Fail("取消成功");
return Success("取消成功");
}
else
{


+ 29
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/StuScoreOnlineMap.cs Näytä tiedosto

@@ -0,0 +1,29 @@
using Learun.Application.TwoDevelopment.EducationalAdministration;
using System.Data.Entity.ModelConfiguration;

namespace Learun.Application.Mapping
{
/// <summary>
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创 建:超级管理员
/// 日 期:2019-06-14 11:02
/// 描 述:考试成绩同步
/// </summary>
public class StuScoreOnlineMap : EntityTypeConfiguration<StuScoreOnlineEntity>
{
public StuScoreOnlineMap()
{
#region 表、主键
//表
this.ToTable("STUSCOREONLINE");
//主键
this.HasKey(t => t.ScoreId);
#endregion

#region 配置关系
#endregion
}
}
}


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj Näytä tiedosto

@@ -112,6 +112,7 @@
<Compile Include="EducationalAdministration\StuInfoBasicChangeMap.cs" />
<Compile Include="EducationalAdministration\StuInfoFreshMap.cs" />
<Compile Include="EducationalAdministration\StuInfoFreshOnlineServiceMap.cs" />
<Compile Include="EducationalAdministration\StuScoreOnlineMap.cs" />
<Compile Include="EducationalAdministration\StuScoreNotPassMap.cs" />
<Compile Include="EducationalAdministration\StuSelectLessonListOfElectiveOnlineMap.cs" />
<Compile Include="EducationalAdministration\StuSelectLessonListOfElectivePreMap.cs" />


+ 1146
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineBLL.cs
File diff suppressed because it is too large
Näytä tiedosto


+ 452
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineEntity.cs Näytä tiedosto

@@ -0,0 +1,452 @@
using Learun.Util;
using System;
using System.ComponentModel.DataAnnotations.Schema;
namespace Learun.Application.TwoDevelopment.EducationalAdministration

{
/// <summary>
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创 建:超级管理员
/// 日 期:2019-06-14 11:02
/// 描 述:考试成绩同步
/// </summary>
public class StuScoreOnlineEntity
{
#region 实体成员
/// <summary>
/// ScoreId
/// </summary>
/// <returns></returns>
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("SCOREID")]
public int? ScoreId { get; set; }
/// <summary>
/// 通知书号
/// </summary>
/// <returns></returns>
[Column("NOTICEBOOKNO")]
public string NoticeBookNo { get; set; }
/// <summary>
/// 学号
/// </summary>
/// <returns></returns>
[Column("STUNO")]
public string StuNo { get; set; }
/// <summary>
/// 学生所在系部
/// </summary>
/// <returns></returns>
[Column("DEPTNO")]
public string DeptNo { get; set; }
/// <summary>
/// 学生所在专业号
/// </summary>
/// <returns></returns>
[Column("MAJORNO")]
public string MajorNo { get; set; }
/// <summary>
/// 行政班号
/// </summary>
/// <returns></returns>
[Column("CLASSNO")]
public string ClassNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
/// <returns></returns>
[Column("STUNAME")]
public string StuName { get; set; }
/// <summary>
/// GenderNo
/// </summary>
/// <returns></returns>
[Column("GENDERNO")]
public string GenderNo { get; set; }
/// <summary>
/// 学年度
/// </summary>
/// <returns></returns>
[Column("ACADEMICYEARNO")]
public string AcademicYearNo { get; set; }
/// <summary>
/// 学期
/// </summary>
/// <returns></returns>
[Column("SEMESTER")]
public string Semester { get; set; }
/// <summary>
/// 开课系部码
/// </summary>
/// <returns></returns>
[Column("OPENLESSONDEPTNO")]
public string OpenLessonDeptNo { get; set; }
/// <summary>
/// 开课专业码
/// </summary>
/// <returns></returns>
[Column("OPENLESSONMAJORNO")]
public string OpenLessonMajorNo { get; set; }
/// <summary>
/// 课程号
/// </summary>
/// <returns></returns>
[Column("LESSONNO")]
public string LessonNo { get; set; }
/// <summary>
/// 课程名称
/// </summary>
/// <returns></returns>
[Column("LESSONNAME")]
public string LessonName { get; set; }
/// <summary>
/// LessonNameEn
/// </summary>
/// <returns></returns>
[Column("LESSONNAMEEN")]
public string LessonNameEn { get; set; }
/// <summary>
/// 教学班号
/// </summary>
/// <returns></returns>
[Column("TEACHCLASSNO")]
public string TeachClassNo { get; set; }
/// <summary>
/// 课程类别码
/// </summary>
/// <returns></returns>
[Column("LESSONSORTNO")]
public string LessonSortNo { get; set; }
/// <summary>
/// 学生类别
/// </summary>
/// <returns></returns>
[Column("STUSORTNO")]
public string StuSortNo { get; set; }
/// <summary>
/// 年级
/// </summary>
/// <returns></returns>
[Column("GRADE")]
public string Grade { get; set; }
/// <summary>
/// 学分
/// </summary>
/// <returns></returns>
[Column("STUDYSCORE")]
public decimal? StudyScore { get; set; }
/// <summary>
/// 总学时
/// </summary>
/// <returns></returns>
[Column("TOTALSTUDYHOUR")]
public decimal? TotalStudyHour { get; set; }
/// <summary>
/// 专业属性
/// </summary>
/// <returns></returns>
[Column("ZYSX")]
public string zysx { get; set; }
/// <summary>
/// 考核(试)方式码(关联表BCdTestMode)
/// </summary>
/// <returns></returns>
[Column("TESTMODENO")]
public string TestModeNo { get; set; }
/// <summary>
/// ScoreRecordStyleNo
/// </summary>
/// <returns></returns>
[Column("SCORERECORDSTYLENO")]
public string ScoreRecordStyleNo { get; set; }
/// <summary>
/// 平时成绩
/// </summary>
/// <returns></returns>
[Column("ORDINARYSCORE")]
public decimal? OrdinaryScore { get; set; }
/// <summary>
/// 期中成绩
/// </summary>
/// <returns></returns>
[Column("TERMINSCORE")]
public decimal? TermInScore { get; set; }
/// <summary>
/// 期末成绩 学期
/// </summary>
/// <returns></returns>
[Column("TERMENDSCORE")]
public decimal? TermEndScore { get; set; }
/// <summary>
/// OtherScore
/// </summary>
/// <returns></returns>
[Column("OTHERSCORE")]
public decimal? OtherScore { get; set; }
/// <summary>
/// 总评成绩
/// </summary>
/// <returns></returns>
[Column("SCORE")]
public decimal? Score { get; set; }
/// <summary>
/// 绩点
/// </summary>
/// <returns></returns>
[Column("SCOREPOINT")]
public decimal? ScorePoint { get; set; }
/// <summary>
/// 考试日期
/// </summary>
/// <returns></returns>
[Column("TESTDATE")]
public DateTime? TestDate { get; set; }
/// <summary>
/// 是否有效
/// </summary>
/// <returns></returns>
[Column("ISINEFFECT")]
public string IsInEffect { get; set; }
/// <summary>
/// 备注
/// </summary>
/// <returns></returns>
[Column("REMARK")]
public string Remark { get; set; }
/// <summary>
/// 冲突课程代码
/// </summary>
/// <returns></returns>
[Column("CONFLICTLESSONNO")]
public string ConflictLessonNo { get; set; }
/// <summary>
/// 是否重修成绩
/// </summary>
/// <returns></returns>
[Column("ISRESTUDY")]
public string IsReStudy { get; set; }
/// <summary>
/// 审查标志
/// </summary>
/// <returns></returns>
[Column("CHECKMARK")]
public string CheckMark { get; set; }
/// <summary>
/// 是否选中
/// </summary>
/// <returns></returns>
[Column("ISPITCHON")]
public string IsPitchOn { get; set; }
/// <summary>
/// 教师号
/// </summary>
/// <returns></returns>
[Column("EMPNO")]
public string EmpNo { get; set; }
/// <summary>
/// 专业教学计划编码
/// </summary>
/// <returns></returns>
[Column("TECHPLANNO")]
public string TechPlanNo { get; set; }
/// <summary>
/// 考试性质码(关联表CdTestKind)
/// </summary>
/// <returns></returns>
[Column("TESTKINDNO")]
public string TestKindNo { get; set; }
/// <summary>
/// 课程区别码(此编码针对同一课程编号,同一门课程、不同课时、学分的情况而加,由系统自动产生以区分此类课程)
/// </summary>
/// <returns></returns>
[Column("PARTCODE")]
public string PartCode { get; set; }
/// <summary>
/// LessonSection
/// </summary>
/// <returns></returns>
[Column("LESSONSECTION")]
public string LessonSection { get; set; }
/// <summary>
/// ClassRoomNo
/// </summary>
/// <returns></returns>
[Column("CLASSROOMNO")]
public string ClassRoomNo { get; set; }
/// <summary>
/// ClassRoomName
/// </summary>
/// <returns></returns>
[Column("CLASSROOMNAME")]
public string ClassRoomName { get; set; }
/// <summary>
/// IsEditable
/// </summary>
/// <returns></returns>
[Column("ISEDITABLE")]
public string IsEditable { get; set; }
/// <summary>
/// EditUserId
/// </summary>
/// <returns></returns>
[Column("EDITUSERID")]
public string EditUserId { get; set; }
/// <summary>
/// ModifyDate
/// </summary>
/// <returns></returns>
[Column("MODIFYDATE")]
public DateTime? ModifyDate { get; set; }

[Column("BEGINMODIFYDATE")]
public DateTime? BeginModifyDate { get; set; }
/// <summary>
/// ModifyUserId
/// </summary>
/// <returns></returns>
[Column("MODIFYUSERID")]
public string ModifyUserId { get; set; }
/// <summary>
/// ModifyUserName
/// </summary>
/// <returns></returns>
[Column("MODIFYUSERNAME")]
public string ModifyUserName { get; set; }
/// <summary>
/// 学校主键
/// </summary>
/// <returns></returns>
[Column("F_SCHOOLID")]
public string F_SchoolId { get; set; }

#endregion

#region 扩展操作
/// <summary>
/// 新增调用
/// </summary>
public void Create()
{
}
/// <summary>
/// 编辑调用
/// </summary>
/// <param name="keyValue"></param>
public void Modify(int? keyValue)
{
this.ScoreId = keyValue;
}
#endregion


/// <summary>
/// 学生Id
/// </summary>
[NotMapped]
public string StuId { get; set; }
/// <summary>
/// 课程Id
/// </summary>
[NotMapped]
public string LessonId { get; set; }
/// <summary>
/// 班级名称
/// </summary>
[NotMapped]
public string ClassName { get; set; }
/// <summary>
/// 班级Id
/// </summary>
[NotMapped]
public string ClassId { get; set; }
/// <summary>
/// 教师姓名
/// </summary>
[NotMapped]
public string EmpName { get; set; }
/// <summary>
/// 教师主键
/// </summary>
[NotMapped]
public string EmpId { get; set; }
/// <summary>
/// 补考标识(1:一次补考;2:二次补考)
/// </summary>
[NotMapped]
public int BuKaoFlag { get; set; }
/// <summary>
/// 学生成绩数量
/// </summary>
[NotMapped]
public int StuScoreOnlineNum { get; set; }
/// <summary>
/// 临时主键
/// </summary>
[NotMapped]
public string TempId { get; set; }
[NotMapped]
public string DepositBank { get; set; }
[NotMapped]
public string BankCard { get; set; }
[NotMapped]
public string IdCard { get; set; }
[NotMapped]
public string Birthday { get; set; }
[NotMapped]
public string NationalityNo { get; set; }
[NotMapped]
public string PartyFaceNo { get; set; }


/// <summary>
/// 成绩格式化(补)(重)(选修)
/// </summary>
[NotMapped]
public string ScoreFormat { get; set; }

/// <summary>
/// 补考成绩
/// </summary>
[NotMapped]
public string ScoreOfNotPass { get; set; }
/// <summary>
/// 二次补考成绩
/// </summary>
[NotMapped]
public string ScoreOfNotPassTwo { get; set; }
/// <summary>
/// 课程类别名称
/// </summary>
/// <returns></returns>
[NotMapped]
public string LessonSortName { get; set; }
/// <summary>
/// 专业名称
/// </summary>
[NotMapped]
public string MajorName { get; set; }
/// <summary>
/// 专业排名
/// </summary>
[NotMapped]
public int RankInMajor { get; set; }
/// <summary>
/// 班级排名
/// </summary>
[NotMapped]
public int RankInClass { get; set; }
/// <summary>
/// 学习形式
/// </summary>
[NotMapped]
public string StudyModality { get; set; }
/// <summary>
/// 异动类型
/// </summary>
[NotMapped]
public string MoveType { get; set; }


}
}


+ 261
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineIBLL.cs Näytä tiedosto

@@ -0,0 +1,261 @@
using Learun.Util;
using System.Data;
using System.Collections.Generic;
using static Learun.Application.TwoDevelopment.EducationalAdministration.StuScoreOnlineService;

namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
/// <summary>
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创 建:超级管理员
/// 日 期:2019-06-14 11:02
/// 描 述:考试成绩同步
/// </summary>
public interface StuScoreOnlineIBLL
{
#region 获取数据

/// <summary>
/// 获取列表数据
/// <summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetList(string queryJson);
DataTable GetListForExport(string queryJson);

IEnumerable<StuScoreOnlineEntity> GetMonitorList(string queryJson);
/// <summary>
/// 获取列表分页数据
/// <param name="pagination">分页参数</param>
/// <summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetPageList(Pagination pagination, string queryJson);
/// <summary>
/// 获取实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
StuScoreOnlineEntity GetEntity(string keyValue);
/// <summary>
/// 获取列表分页数据
/// <param name="pagination">分页参数</param>
/// <summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetScoreInputCancelPageList(Pagination pagination, string queryJson);


List<object> GetStuGraduateInfo(string queryJson);
List<object> GetPassInfo(string queryJson);
List<object> GetClassOfMy();
/// <summary>
/// 获取列表分页数据
/// <param name="pagination">分页参数</param>
/// <summary>
/// <returns></returns>
StuSelectLessonListEntity GetStuSelectLessonListEntity(StuScoreOnlineEntity entity);

/// <summary>
/// 获取列表数据
/// <summary>
/// <returns></returns>
StuScoreOnlineEntity GetEntityByJson(string queryJson);
#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
void DeleteEntity(string keyValue);
void SubmitStuScoreOnline(string AcademicYearNo, string Semester, string LessonNo, string EmpNo);
/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
void SaveEntity(string keyValue, StuScoreOnlineEntity entity);
#endregion

void DeleteList();

#region 扩展数据

/// <summary>
/// 获取学年学期列表
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetAcademicAndSemesterList();
/// <summary>
/// 根据学号获取成绩列表
/// </summary>
/// <param name="academic"></param>
/// <param name="semester"></param>
/// <param name="stuNo">学号</param>
/// <param name="classNo">班级编号</param>
/// <returns></returns>
ScoreListByStuNoModel GetScoreListByStuNo(string academic, string semester, string stuNo, string classNo);
bool GetAny();


/// <summary>
/// 获取一次补考名单数据
/// </summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetStuScoreOnlineNotPassList();

/// <summary>
/// 获取二次补考名单数据
/// </summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetStuScoreOnlineNotPassTwoList();

/// <summary>
/// 获取班级成绩初始化信息
/// </summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetPageListAboutClass(Pagination pagination, string queryJson);

/// <summary>
/// 班级学生成绩初始化
/// </summary>
/// <returns></returns>
void DoInitAboutClass(string academicYearNo, string semester, string classNo);

/// <summary>
/// 学年下拉框信息【班级成绩查看】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetAcademicYearNoData();

/// <summary>
/// 班级下拉框信息【班级成绩查看】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetClassNoData(string userAccount, string userType, string lessonNo);
IEnumerable<WebHelper.YearGrade> GetClassNoDataForInput(string userAccount, string userType, string lessonNo, string academicYearShort, string semester);

/// <summary>
/// 教师下拉框信息【学生成绩录入可去审核】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetEmpNoData(string userAccount, string userType, string lessonNo);

/// <summary>
/// 课程下拉框信息【学生成绩录入可去审核】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetLessonNoDataOfAll(string userAccount, string userType, string AcademicYearNo = "", string Semester = "");

/// <summary>
/// 课程下拉框信息【选修课】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetElectiveLessonNoDataOfAll(string userAccount, string userType, string AcademicYearNo = "", string Semester = "");

/// <summary>
/// 教室下拉框信息【选修课】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetElectiveClassRoomNoData(string userAccount, string userType, string lessonNo);

/// <summary>
/// 节次下拉框信息【选修课】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetElectiveLessonSectionData(string userAccount, string userType, string classRoomNo);

/// <summary>
/// 课程信息【班级成绩查看】
/// </summary>
/// <returns></returns>
IEnumerable<WebHelper.YearGrade> GetLessonNoData(string academicYearNo, string semester, string classNo);

/// <summary>
/// 获取班级成绩列表
/// <summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetScoreListByClassNo(string queryJson);
IEnumerable<StuScoreOnlineEntity> GetScoreListByClassNoForScholarship(string queryJson);
/// <summary>
/// 获取学生成绩
/// </summary>
/// <param name="queryJson"></param>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetScoreListByStuNo(string queryJson);
/// <summary>
/// 根据学号/姓名获取学生成绩列表
/// </summary>
/// <param name="queryJson"></param>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetScoreListByStuInfo(string queryJson);

/// <summary>
/// 获取个人成绩列表
/// <summary>
/// <returns></returns>
IEnumerable<StuScoreOnlineEntity> GetAllScoreListByStuNo(string stuNo);
object GetScoreCharts(string academicYearNo, string semester, string classNo, string lessonNo);
void UpEmpNos(string xn, string xq, string classNo, string LessonNo, string EmpNo, string HisEmpNo, string Grade);


/// <summary>
/// 审核学生成绩
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
void CheckStuScoreOnline(string keyValue);
/// <summary>
/// 去审核学生成绩
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
void UnCheckStuScoreOnline(string keyValue);
List<StuScoreOnlineEntity> GetScoreInfo(string queryJson);

/// <summary>
/// 获取个人补考成绩
/// <summary>
/// <returns></returns>
StuScoreOnlineEntity GetScoreNotPassByEntity(StuScoreOnlineEntity entity);

/// <summary>
/// 获取个人二次补考成绩
/// <summary>
/// <returns></returns>
StuScoreOnlineEntity GetScoreNotPassTwoByEntity(StuScoreOnlineEntity entity);
/// <summary>
/// 开始录入:占用成绩
/// <summary>
/// <returns></returns>
void StartInputScore(string queryJson);
/// <summary>
/// 提交成绩
/// <summary>
/// <returns></returns>
void SaveInputScore(List<StuScoreOnlineEntity> list);
/// <summary>
/// 提交成绩:取消占用
/// <summary>
/// <returns></returns>
void SaveInputScoreStatus(string queryJson);
/// <summary>
/// 提交成绩:取消占用【服务】
/// <summary>
/// <returns></returns>
void SaveInputScoreStatus2(string queryJson, string name);
/// <summary>
/// 审核成绩
/// </summary>
/// <param name="queryJson"></param>
/// <param name="checkMark">已审核:1;未审核:0;</param>
void DoCheckScore(string queryJson, int checkMark);

(DataTable failDt, int snum, int fnum) ExecuteImportExcel(int type, DataTable dt, string fileGuid, string queryJson);

#endregion

IEnumerable<WebHelper.YearGrade> GetLessonNoDataFromStuNo(string academicYearNo, string semester, string stuNo);
}
}

+ 2468
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreOnline/StuScoreOnlineService.cs
File diff suppressed because it is too large
Näytä tiedosto


+ 4
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj Näytä tiedosto

@@ -96,6 +96,10 @@
<Compile Include="EducationalAdministration\ElectiveMajorOnline\ElectiveMajorOnlineIBLL.cs" />
<Compile Include="EducationalAdministration\ElectiveMajorOnline\ElectiveMajorOnlineService.cs" />
<Compile Include="EducationalAdministration\SignUpOnlineHelper.cs" />
<Compile Include="EducationalAdministration\StuScoreOnline\StuScoreOnlineBLL.cs" />
<Compile Include="EducationalAdministration\StuScoreOnline\StuScoreOnlineEntity.cs" />
<Compile Include="EducationalAdministration\StuScoreOnline\StuScoreOnlineIBLL.cs" />
<Compile Include="EducationalAdministration\StuScoreOnline\StuScoreOnlineService.cs" />
<Compile Include="EducationalAdministration\StuSelectLessonListOfElectiveOnline\StuSelectLessonListOfElectiveOnlineBLL.cs" />
<Compile Include="EducationalAdministration\StuSelectLessonListOfElectiveOnline\StuSelectLessonListOfElectiveOnlineEntity.cs" />
<Compile Include="EducationalAdministration\StuSelectLessonListOfElectiveOnline\StuSelectLessonListOfElectiveOnlineIBLL.cs" />


+ 13
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json Näytä tiedosto

@@ -745,6 +745,19 @@
"navigationBarTitleText": "查看详情"
}
},
//线上课程选课
{
"path": "pages/EducationalAdministration/LessonInfoOfElectiveOnline/list",
"style": {
"navigationBarTitleText": "线上课程选课"
}
},
{
"path": "pages/EducationalAdministration/LessonInfoOfElectiveOnline/from",
"style": {
"navigationBarTitleText": "查看详情"
}
},
//学费查询
{
"path": "pages/StuPayFee/list",


+ 137
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/LessonInfoOfElectiveOnline/from.vue Näytä tiedosto

@@ -0,0 +1,137 @@
<template>
<view class="page">
<l-input title="学年" placeholder="请填写学年" :value="data.AcademicYearNo" disabled right />
<l-input title="学期" placeholder="请填写学期" :value="data.Semester" disabled right />
<l-input title="课程编号" placeholder="请填写课程编号" :value="data.LessonNo" disabled right />
<l-input title="课程名称" placeholder="请填写课程名称" :value="data.LessonName" disabled right />
<l-input title="建课教师" placeholder="请填写建课教师" :value="data.EmpName" disabled right />
<l-input title="建课学校" placeholder="请填写建课学校" :value="F_SchoolName" disabled right />

<l-input title="已报人数" placeholder="请填写已报人数" :value="data.StuNumOfApply" disabled right />
<view class="btn" @click="fromBtn" v-show="showFlag">报名</view>
</view>
</template>

<script>
export default {
data() {
return {
keyValue: '', //列表页面传参
data: {},
param: {}, //列表页面传参-对象
showFlag: true,
// 数据源
dataSource: {
F_SchoolId: []
},
F_SchoolName: '', //建课学校名称
}
},
methods: {
init() {
//this.keyValue = this.GET_PARAM(); //获取页面传递参数
// console.log(this.keyValue);

this.param = this.GET_PARAM();
//console.log(this.param);
this.keyValue = this.param.keyValue;
//审核中或者报名成功不显示报名按钮
if (this.param.Status == 1 || this.param.Status == 2) {
this.showFlag = false;
}

this.LOADING('加载数据中…');
this.HTTP_GET('learun/LessonInfoOfElectiveOnline/form', this.keyValue, '加载数据时出错').then(res => {
this.HIDE_LOADING();
this.data = res.data;
let timer3 = setTimeout(() => {
let checkedSchool = this.dataSource.F_SchoolId.find((item) => {
return item.value === this.data.F_SchoolId
});
if (checkedSchool) {
this.F_SchoolName = checkedSchool.text;
}
clearTimeout(timer3);
}, 500);

});
},
fromBtn() {
var _postData = {}
// let _this = this;
let user = this.GET_GLOBAL('loginUser');;
_postData.keyValue = this.keyValue;
_postData.StuNo = user.account;
this.LOADING('正在提交…');
this.HTTP_POST('learun/LessonInfoOfElectiveOnline/SignInByMobile', _postData, '加载数据时出错').then((res, info,
code) => {
//console.log(res)
if (res) { // 表单数据保存成功
//判断队列结果
let timer = setInterval(() => {
this.HTTP_POST('learun/LessonInfoOfElectiveOnline/GetApplyResult', _postData,
'报名状态').then(
(dataresult) => {
//console.log(dataresult)
clearInterval(timer);
if (!dataresult) return
this.HIDE_LOADING();
this.EMIT('LessonInfoOfElectiveOnline')
this.TOAST(dataresult.msg);
let timer2 = setTimeout(() => {
clearTimeout(timer2);
this.NAV_BACK();
}, 2000);
});
}, 5000);
}
});

}

},
created() {
// 拉取加载列表和数据源
Promise.all([
this.FETCH_DATASOURCE('company').then(result => {
this.dataSource.F_SchoolId = result.data.map(t => ({
text: t.f_fullname,
value: t.f_companyid
}))
}),
() => {},
]);
this.init()
}
}
</script>

<style lang="less" scoped>
.txt {
line-height: 24px;
font-size: 15px;
background-color: #fff;
padding: 10px 0 10px 15px;
}

.page {
background-color: #fff;
padding-bottom: 1px;
}

/deep/ .cu-form-group uni-textarea {
height: auto;
}

.remarks {
border-bottom: 0.5px solid #eee;
padding-bottom: 10px;
}

.remarks textarea {
width: 100%;
padding: 0 15px;
}
</style>

+ 304
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/EducationalAdministration/LessonInfoOfElectiveOnline/list.vue Näytä tiedosto

@@ -0,0 +1,304 @@
<template>
<view class="page">
<view class="mainpage" :class="sideOpen ? 'show' : ''" style="padding-top: 40px;">
<!-- 顶部条目/分页信息栏 -->
<l-customlist-banner @buttonClick="sideOpen = true">{{
tips
}}</l-customlist-banner>
<!-- <view class="records">共 {{ records }} 条数据</view> -->
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="data">
<l-customlist :tips="loadState" showTips>
<view class="pageBox customlist-item" showDelete="true" v-for="(item, ind) in data" :key="item.Id"
@click="tapClick(item)">
<view class="">
<text>学年:</text>
{{ item.AcademicYearNo }}
</view>
<view class="">
<text>学期:</text>
{{ item.Semester }}
</view>
<view class="">
<text>课程编号:</text>
{{ item.LessonNo }}
</view>
<view class="">
<text>课程名称:</text>
{{ item.LessonName }}
</view>
<view class="">
<text>建课教师:</text>
{{ item.EmpName }}
</view>
<view class="">
<text>建课学校:</text>
{{ dataSource.F_SchoolId.find(x=>x.value==item.F_SchoolId).text }}
</view>
<view class="">
<text>已报人数:</text>
{{ item.StuNumOfApply }}
</view>
<view class="pageType">
<text>报名状态:</text>
{{ typePd(item.Status) }}
</view>
<view class="delbtn" v-if="item.Status == 1" @click.stop="delTap(item)">取消报名</view>
</view>
</l-customlist>
</l-scroll-list>
</view>

<!-- 关闭侧边抽屉按钮 -->
<view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose">
<l-icon type="pullright" color="blue" />
</view>

<!-- 侧边栏,用于设置查询条件 -->
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y>
<view v-if="ready" class="padding">

<l-input v-model="queryData.LessonNo" @change="searchChange" title="课程编号" placeholder="按课程编号查询" />
<l-input v-model="queryData.LessonName" @change="searchChange" title="课程名称" placeholder="按课程名称查询" />

<!-- 重置查询条件按钮 -->
<view class="padding-tb">
<l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button>
</view>
</view>
</scroll-view>

</view>
</template>

<script>
import pickBy from "lodash/pickBy";
import mapValues from "lodash/mapValues";

export default {
data() {
return {
weekChina: ['一', '二', '三', '四', '五', '六', '日'],
user: null,
data: [],
total: 1,
records: 0,
ready: false,
page: 1,
rows: 10,
multipleData: null,
sideOpen: false,
tips: "加载中...",
loadState: '向下翻以加载更多',
// 数据源
dataSource: {
F_SchoolId: []
},

// 查询条件
searchData: {},
defaultQueryData: {},
queryData: {
LessonNo: "",
LessonName: "",
},

};
},
onUnload() {
this.OFF('LessonInfoOfElectiveOnline');
},
onShow() {
if (this.data.length) {
this.pullDown()
}
},
methods: {
init() {
this.ON('LessonInfoOfElectiveOnline', this.refreshList);
// 拉取加载列表和数据源
Promise.all([
this.FETCH_DATASOURCE('company').then(result => {
this.dataSource.F_SchoolId = result.data.map(t => ({
text: t.f_fullname,
value: t.f_companyid
}))
}),
() => {},
]);
// var _this = this;
this.user = this.GET_GLOBAL('loginUser');
this.fetchList();
// 初始化查询条件
this.defaultQueryData = this.COPY(this.queryData);
this.ready = true;
},
// 拉取列表
async fetchList() {
if (this.page > this.total) {
return;
}
// let _this = this;
this.searchData.StuNo = this.user.account;
this.searchData.StuMajorNo = this.user.majorno;
this.searchData.StuGrade = this.user.grade;
let _postParam = {
pagination: {
rows: this.rows,
page: this.page,
sidx: 'AcademicYearNo DESC, Semester DESC, LessonNo ASC,EmpNo ASC',
sord: 'asc'
},
//queryJson: '{}'
queryJson: JSON.stringify(this.searchData),
};
this.LOADING('加载数据中…')
this.HTTP_GET('learun/LessonInfoOfElectiveOnline/pagelist', _postParam, '加载数据时出错').then(res => {
this.HIDE_LOADING();
this.data = this.data.concat(res.rows);
this.total = res.total;
this.records = res.records;
this.page = res.page + 1;
this.loadState = res.page >= res.total ? '已加载所有项目' : '向下翻以加载更多';
this.tips = `已加载 ${Math.min(res.page, res.total)} / ${
res.total
} 页,共 ${res.records} 项`;
// console.log(_this.data);
});
},
// 列表下拉
pullDown() {
this.refreshList().then(() => {
this.$refs.data.stopPullDown();
});
},
async refreshList() {
this.page = 1;
this.total = 1;
this.data = [];

this.fetchList();
},
tapClick(data) {
this.NAV_TO('./from', {
keyValue: data.Id,
Status: data.Status
}, true);
},
delTap(item) {
// console.log(item)
// let this = this;
this.CONFIRM('数字化校园提示', '确定要取消报名吗?', true).then(res => {
if (res) {
let _postData = {
keyValue: item.Id,
StuNo: this.user.account
}
this.LOADING('正在取消报名…')
this.HTTP_POST(
'learun/LessonInfoOfElectiveOnline/Cancel',
_postData,
'加载数据时出错'
).then(data => {
this.HIDE_LOADING()
// console.log(data)
if (data) { // 成功
this.TOAST('取消报名成功!');
this.refreshList()
}
})
}
})
},

// 设置搜索条件
async searchChange() {
const result = {};

// 将其他查询项添加到查询 JSON 中
const queryObj = pickBy(this.queryData, (t) =>
Array.isArray(t) ? t.length > 0 : t
);
Object.assign(
result,
mapValues(queryObj, (t) => (Array.isArray(t) ? t.join(",") : t))
);
this.searchData = result;
this.refreshList();
},

// 点击「清空查询条件」按钮
reset() {
this.queryData = this.COPY(this.defaultQueryData);
this.searchChange();
},

},
computed: {
typePd() {
return num => {
let txt = '';
if (num == 1) {
txt = '审核中';
} else if (num == 2) {
txt = '报名成功';
} else if (num == 3) {
txt = '报名失败';
} else {
txt = '未报名';
}
return txt;
};
}
},
created() {
this.init();
}
};
</script>

<style lang="less" scoped>
@import '~@/common/css/sidepage.less';
@import '~@/common/css/customlist.less';

.page {
background-color: #fff;
}

.page-content {
margin-top: 39px;
}

.records {
color: #8f8f94;
background: #ffffff;
padding: 10px 12px;
width: 100%;
vertical-align: middle;
border-bottom: 0.5px solid #ddd;
position: fixed;
top: var(--window-top);
z-index: 1024;
border-bottom: 0.5px solid #ddd;
height: 40px;
width: 100%;
box-shadow: 0 0.5px 3px rgba(0, 0, 0, 0.1);
// background: #f1f1f1;
}

.pageBox {
// margin-top: 34px;
padding: 5px 15px;
line-height: 24px;
border-bottom: 5px solid #f5f5f5;
}

.delbtn {
position: absolute;
right: 15px;
bottom: 7px;
padding: 3px 10px;
background: #dd524d;
color: #fff;
border-radius: 3px;
}
</style>

Ladataan…
Peruuta
Tallenna