diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuScoreNotPassController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuScoreNotPassController.cs index 138b149c9..ca0f374d9 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuScoreNotPassController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuScoreNotPassController.cs @@ -112,6 +112,16 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers { return View(); } + /// + /// 补考名单查看【选修课】 + /// + /// + [HttpGet] + public ActionResult IndexUnpassOfElective() + { + return View(); + } + #endregion #region 获取数据 @@ -190,6 +200,27 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers return Success(jsonData); } + /// + /// 补考名单查看【选修课】 + /// 分页参数 + /// + /// + [HttpGet] + [AjaxOnly] + public ActionResult GetPageListForUnpassOfElective(string pagination, string queryJson) + { + Pagination paginationobj = pagination.ToObject(); + var data = stuScoreNotPassIBLL.GetPageListForUnpassOfElective(paginationobj, queryJson); + var jsonData = new + { + rows = data, + total = paginationobj.total, + page = paginationobj.page, + records = paginationobj.records + }; + return Success(jsonData); + } + /// /// 获取表单数据 /// 主键 @@ -255,7 +286,9 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers stuScoreNotPassIBLL.SaveEntity(keyValue, entity); return Success("保存成功!"); } + /// /// 初始化补考成绩 + /// /// [HttpPost] [AjaxOnly] @@ -264,6 +297,17 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers stuScoreNotPassIBLL.InitScore(); return Success("操作成功!"); } + /// + /// 初始化补考成绩【选修课】 + /// + /// + [HttpPost] + [AjaxOnly] + public ActionResult InitScoreOfElective() + { + stuScoreNotPassIBLL.InitScoreOfElective(); + return Success("操作成功!"); + } #endregion diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.cshtml new file mode 100644 index 000000000..430a5073e --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.cshtml @@ -0,0 +1,66 @@ +@{ + ViewBag.Title = "补考名单查看【选修课】"; + Layout = "~/Views/Shared/_Index.cshtml"; +} +
+
+
+
+
+
+
+
+
+
学年
+
+
+
+
学期
+
+
+
+
年级
+
+
+
+
系部
+
+
+
+
专业
+
+
+
+
班级
+
+
+
+
课程
+
+
+
+
教室
+
+
+
+
节次
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.js") diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.js new file mode 100644 index 000000000..aaeb8ef46 --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuScoreNotPass/IndexUnpassOfElective.js @@ -0,0 +1,207 @@ +/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) + * Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + * 创建人:超级管理员 + * 日 期:2021-12-16 10:14 + * 描 述:补考名单查看【选修课】 + */ +var refreshGirdData; +var bootstrap = function ($, learun) { + "use strict"; + var page = { + init: function () { + page.initGird(); + page.bind(); + }, + bind: function () { + $('#multiple_condition_query').lrMultipleQuery(function (queryJson) { + page.search(queryJson); + }, 300, 400); + $('#AcademicYearNo').lrselect({ + placeholder: "学年", + allowSearch: false, + url: top.$.rootUrl + '/EducationalAdministration/EADateArrange/GetAcademicYearNo', + value: 'value', + text: 'text' + }); + //学期 + $('#Semester').lrselect({ + placeholder: "学期", + allowSearch: false, + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetSemesterData', + value: 'value', + text: 'text' + }); + //年级 + $('#grade').lrselect({ + url: top.$.rootUrl + '/EducationalAdministration/ClassInfo/GenerateNearByYear', + value: 'value', + text: 'text' + }); + $('#DeptNo').lrDataSourceSelect({ + allowSearch: true, + code: 'CdDeptInfo', value: 'deptno', text: 'deptname', select: function (val) { + var deptno = ""; + if (val) { + deptno = val.deptno; + } + $('#MajorNo').lrselectRefresh({ + url: top.$.rootUrl + '/EducationalAdministration/CdMajor/GetListByDeptNo?DeptNo=' + deptno, + text: "MajorName", + value: "MajorNo" + }) + } + }); + $('#MajorNo').lrDataSourceSelect({ + allowSearch: true, + code: 'CdMajorInfo', value: 'majorno', text: 'majorname', select: + function (val) { + var majorNo = ''; + if (val) { + majorNo = val.MajorNo; + } + $('#ClassNo').lrselectRefresh({ + url: top.$.rootUrl + + '/EducationalAdministration/ClassInfo/GetClassByMajorNo?majorNo=' + + majorNo, + text: "ClassName", + value: "ClassNo" + }); + $('#LessonNo').lrselectRefresh({ + url: top.$.rootUrl + + '/EducationalAdministration/LessonInfo/GetLessonByMajorNo?majorNo=' + + majorNo, + text: "LessonName", + value: "LessonNo" + }); + } + }); + $('#ClassNo').lrDataSourceSelect({ + allowSearch: true, + code: 'bjsj', value: 'classno', text: 'classname' + }); + //课程 + $('#LessonNo').lrselect({ + placeholder: "请选择课程", + allowSearch: true, + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveLessonNoDataOfAllWithNo', + value: 'value', + text: 'text', + select: function (item) { + if (!!item) { + $("#ClassRoomNo").lrselectRefresh({ + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveClassRoomNoDataOfAll?lessonNo=' + item.value, + }); + } else { + $("#ClassRoomNo").lrselectRefresh({ + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveClassRoomNoDataOfAll', + }); + } + } + }); + //教室 + $('#ClassRoomNo').lrselect({ + placeholder: "请选择教室", + allowSearch: true, + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveClassRoomNoDataOfAll', + value: 'value', + text: 'text', + select: function (item) { + if (!!item) { + $("#LessonSection").lrselectRefresh({ + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveLessonSectionDataOfAll?classRoomNo=' + item.value, + }); + } else { + $("#LessonSection").lrselectRefresh({ + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveLessonSectionDataOfAll', + }); + } + } + }); + //节次 + $('#LessonSection').lrselect({ + placeholder: "请选择节次", + allowSearch: true, + url: top.$.rootUrl + '/EducationalAdministration/StuScore/GetElectiveLessonSectionDataOfAll', + value: 'value', + text: 'text' + }); + + // 刷新 + $('#lr_refresh').on('click', function () { + location.reload(); + }); + // 初始化补考成绩 + $('#lr_Init').on('click', function () { + learun.layerConfirm('是否确认初始化补考成绩!', function (res) { + if (res) { + learun.postForm(top.$.rootUrl + '/EducationalAdministration/StuScoreNotPass/InitScoreOfElective', function () { + refreshGirdData(); + }); + } + }); + }); + }, + // 初始化列表 + initGird: function () { + $('#gridtable').jfGrid({ + url: top.$.rootUrl + '/EducationalAdministration/StuScoreNotPass/GetPageListForUnpassOfElective', + headData: [ + { + label: "学号", name: "stuno", width: 100, align: "left" + }, + { + label: "姓名", name: "stuname", width: 150, align: "left" + }, + { label: "课程", name: "LessonName", width: 150, align: "left" }, + { label: "任课老师", name: "EmpName", width: 100, align: "left" }, + { label: "考试年级", name: "Grade", width: 100, align: "left" }, + { + label: "学年", name: "AcademicYearNo", width: 80, align: "left", + }, + { label: "学期", name: "Semester", width: 80, align: "left" }, + { label: "班级", name: "classname", width: 100, align: "left" }, + { label: "教室", name: "ClassRoomName", width: 100, align: "left" }, + { label: "节次", name: "LessonSection", width: 100, align: "left" }, + { label: "平时成绩", name: "OrdinaryScore2", width: 150, align: "left" }, + { label: "期末成绩", name: "TermEndScore2", width: 150, align: "left" }, + { label: "成绩", name: "Score2", width: 150, align: "left" }, + { + label: "学习形式", name: "StudyModality", width: 100, align: "left", formatterAsync: function (callback, value, row, op, $cell) { + learun.clientdata.getAsync('dataItem', { + key: value, + code: 'StudyModality', + callback: function (_data) { + callback(_data.text); + } + }); + } + }, + { + label: "异动类型", name: "MoveType", width: 100, align: "left", + formatterAsync: function (callback, value, row, op, $cell) { + learun.clientdata.getAsync('dataItem', { + key: value, + code: 'StuChangeType', + callback: function (_data) { + callback(_data.text); + } + }); + } + }, + ], + mainId: 'ID', + isPage: true, + sidx: 'Grade desc,LessonNo,ClassRoomNo,LessonSection', + }); + page.search(); + }, + search: function (param) { + param = param || {}; + $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); + } + }; + refreshGirdData = function () { + $('#gridtable').jfGridSet('reload'); + }; + page.init(); +} diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj index 43ca6cdd3..0e97f5ad9 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj @@ -1003,6 +1003,7 @@ + @@ -8136,6 +8137,7 @@ + diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassBLL.cs index 80710a988..161d47a27 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassBLL.cs @@ -64,7 +64,13 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } - + + /// + /// 获取补考名单查看列表 + /// + /// + /// + /// public IEnumerable GetPageListForUnpass(Pagination pagination, string queryJson) { try @@ -84,6 +90,32 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } + /// + /// 获取补考名单查看列表【选修课】 + /// + /// + /// + /// + public IEnumerable GetPageListForUnpassOfElective(Pagination pagination, string queryJson) + { + try + { + + return stuScoreNotPassService.GetPageListForUnpassOfElective(pagination, queryJson); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } + /// /// 获取实体数据 /// 主键 @@ -227,6 +259,28 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } + + /// + /// 初始化补考成绩【选修课】 + /// + public void InitScoreOfElective() + { + try + { + stuScoreNotPassService.InitScoreOfElective(); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } #endregion #region 扩展数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassEntity.cs index eab37a02b..57aa30a58 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassEntity.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassEntity.cs @@ -308,6 +308,24 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// [Column("F_SCHOOLID")] public string F_SchoolId { get; set; } + /// + /// 节次 + /// + /// + [Column("LESSONSECTION")] + public string LessonSection { get; set; } + /// + /// 教室编号 + /// + /// + [Column("CLASSROOMNO")] + public string ClassRoomNo { get; set; } + /// + /// 教室名称 + /// + /// + [Column("CLASSROOMNAME")] + public string ClassRoomName { get; set; } #endregion @@ -358,6 +376,9 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration public string IsSubmit { get; set; } public string MoveType { get; set; } public string StudyModality { get; set; } + public string LessonSection { get; set; } + public string ClassRoomNo { get; set; } + public string ClassRoomName { get; set; } } } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassIBLL.cs index 1d5d80971..f24e05c3f 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassIBLL.cs @@ -26,8 +26,21 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// /// IEnumerable GetPageList(Pagination pagination, string queryJson); + /// + /// 获取补考名单查看列表 + /// + /// + /// + /// IEnumerable GetPageListForUnpass(Pagination pagination, string queryJson); /// + /// 获取补考名单查看列表【选修课】 + /// + /// + /// + /// + IEnumerable GetPageListForUnpassOfElective(Pagination pagination, string queryJson); + /// /// 获取实体数据 /// 主键 /// @@ -62,7 +75,15 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// /// void SaveEntity(string keyValue, StuScoreNotPassEntity entity); + + /// + /// 初始化补考成绩 + /// void InitScore(); + /// + /// 初始化补考成绩 + /// + void InitScoreOfElective(); #endregion #region 扩展数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassService.cs index 66c0cdd7b..6f09948ca 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScoreNotPass/StuScoreNotPassService.cs @@ -170,7 +170,12 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } - + /// + /// 获取补考名单查看列表 + /// + /// + /// + /// public IEnumerable GetPageListForUnpass(Pagination pagination, string queryJson) { try @@ -259,6 +264,93 @@ and (b.EduSystem is null or b.EduSystem != '6') "); } } + /// + /// 获取补考名单查看列表【选修课】 + /// + /// + /// + /// + public IEnumerable GetPageListForUnpassOfElective(Pagination pagination, string queryJson) + { + try + { + var queryParam = queryJson.ToJObject(); + // 虚拟参数 + var dp = new DynamicParameters(new { }); + var strSql = new StringBuilder(); + + //新 + strSql.Append(@"select ISNULL(ssnp.Score,0) as BKScore,ssnp.CheckMark as IsSubmit,c.classname,a.*,CONVERT(varchar,a.OrdinaryScore) as OrdinaryScore2,CONVERT(varchar,a.TermEndScore) as TermEndScore2,CONVERT(varchar,a.Score) as Score2,b.MoveType,b.StudyModality,e.EmpName +from StuScore a +left join StuScoreNotPass ssnp on ssnp.StuNo=a.StuNo and ssnp.AcademicYearNo=a.AcademicYearNo and ssnp.Semester=a.Semester and ssnp.LessonNo=a.LessonNo and ssnp.LessonSection=a.LessonSection and ssnp.ClassRoomNo=a.ClassRoomNo +left join ClassInfo c on c.ClassNo=a.ClassNo +left join StuInfoBasic b on b.StuNo=a.StuNo +left join EmpInfo e on e.EmpNo=a.EmpNo +where 1=1 and a.StuNo not in (select StuNo from StuInfoBasic where ChangeStatus =1) +and a.LessonSortNo='2' +and a.Score<60 +and b.StuId is not null +and (b.EduSystem is null or b.EduSystem != '6') "); + + if (!queryParam["AcademicYearNo"].IsEmpty()) + { + strSql.Append($" and a.AcademicYearNo ='{queryParam["AcademicYearNo"].ToString()}'"); + } + if (!queryParam["Semester"].IsEmpty()) + { + strSql.Append($" and a.Semester ='{queryParam["Semester"].ToString().Trim()}'"); + } + if (!queryParam["grade"].IsEmpty()) + { + strSql.Append($" and a.grade ='{queryParam["grade"].ToString()}'"); + } + if (!queryParam["DeptNo"].IsEmpty()) + { + strSql.Append($" and a.DeptNo ='{queryParam["DeptNo"].ToString()}'"); + } + if (!queryParam["MajorNo"].IsEmpty()) + { + strSql.Append($" and a.MajorNo ='{queryParam["MajorNo"].ToString()}'"); + } + if (!queryParam["LessonNo"].IsEmpty()) + { + strSql.Append($" and a.LessonNo ='{queryParam["LessonNo"].ToString()}'"); + } + if (!queryParam["ClassNo"].IsEmpty()) + { + strSql.Append($" and a.ClassNo ='{queryParam["ClassNo"].ToString()}'"); + } + if (!queryParam["EmpNo"].IsEmpty()) + { + strSql.Append($" and a.EmpNo ='{queryParam["EmpNo"].ToString()}'"); + } + if (!queryParam["CheckMark"].IsEmpty()) + { + strSql.Append($" and ssnp.CheckMark ='{queryParam["CheckMark"].ToString()}'"); + } + if (!queryParam["LessonSection"].IsEmpty()) + { + strSql.Append($" and a.LessonSection ='{queryParam["LessonSection"].ToString()}'"); + } + if (!queryParam["ClassRoomNo"].IsEmpty()) + { + strSql.Append($" and a.ClassRoomNo ='{queryParam["ClassRoomNo"].ToString()}'"); + } + return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), pagination); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } + /// /// 获取实体数据 /// 主键 @@ -468,6 +560,53 @@ and a.StuNo not in ( select StuNo from StuScoreNotPass p where p.AcademicYearNo=a.AcademicYearNo and p.Semester=a.Semester and p.LessonNo=a.LessonNo and p.TeachClassNo=a.TeachClassNo and p.LessonSortNo=a.LessonSortNo and p.OpenLessonDeptNo=a.OpenLessonDeptNo and p.OpenLessonMajorNo=a.OpenLessonMajorNo ) ) as bb +order by bb.ScoreId"; + this.BaseRepository("CollegeMIS").ExecuteBySql(sql); + + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } + + /// + /// 初始化补考成绩【选修课】 + /// + public void InitScoreOfElective() + { + try + { + string sql = @"insert into StuScoreNotPass +(NoticeBookNo, StuNo, DeptNo, MajorNo, ClassNo, StuName, GenderNo, AcademicYearNo, Semester, + OpenLessonDeptNo, OpenLessonMajorNo, LessonNo, LessonName, LessonNameEn, TeachClassNo, LessonSortNo, + StuSortNo, Grade, StudyScore, TotalStudyHour, zysx, TestModeNo, ScoreRecordStyleNo, OrdinaryScore, TermInScore, + TermEndScore, OtherScore, IsInEffect, ConflictLessonNo, IsReStudy, CheckMark, + IsPitchOn, EmpNo, TechPlanNo, TestKindNo, PartCode, IsEditable,F_SchoolId,LessonSection,ClassRoomNo,ClassRoomName) + select + NoticeBookNo, StuNo, DeptNo, MajorNo, ClassNo, StuName, GenderNo, AcademicYearNo, Semester, + OpenLessonDeptNo, OpenLessonMajorNo, LessonNo, LessonName, LessonNameEn, TeachClassNo, LessonSortNo, + StuSortNo, Grade, StudyScore, TotalStudyHour, zysx, TestModeNo, ScoreRecordStyleNo, '0', '0', + '0', '0', IsInEffect, ConflictLessonNo, IsReStudy, '0', + IsPitchOn, EmpNo, TechPlanNo, TestKindNo, PartCode, '1',F_SchoolId,LessonSection,ClassRoomNo,ClassRoomName + from + ( +select a.* from +StuScore a +left join StuInfoBasic b on b.StuNo=a.StuNo +where a.LessonSortNo='2' and (b.ChangeStatus is null or len(b.ChangeStatus)=0 or b.ChangeStatus <> '1') +and ( (a.Score >= 0 and a.Score<60) or a.Score=(-5) or a.Score=(-10) ) +and a.StuNo not in ( +select StuNo from StuScoreNotPass p where p.DeptNo=a.DeptNo and p.MajorNo=a.MajorNo and p.ClassNo=a.ClassNo and p.Grade=a.Grade and p.AcademicYearNo=a.AcademicYearNo and p.Semester=a.Semester and p.LessonNo=a.LessonNo and p.LessonSortNo=a.LessonSortNo and p.LessonSection=a.LessonSection and p.ClassRoomNo=a.ClassRoomNo +) +) as bb order by bb.ScoreId"; this.BaseRepository("CollegeMIS").ExecuteBySql(sql);