diff --git a/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs b/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs index 8745436..a6b065e 100644 --- a/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs +++ b/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs @@ -17,7 +17,7 @@ namespace Learn.Archives.API.Controllers.Dto /// /// 导入的错误结果 /// - public class ImportExamInfoError: ImportExamInfo + public class ImportExamInfoError : ImportExamInfo { /// /// 学校 @@ -25,10 +25,10 @@ namespace Learn.Archives.API.Controllers.Dto [ExcelColumnName("错误信息")] public string? Error { get; set; } } - /// - /// 导入考试成绩 - /// - public class ImportExamInfo + /// + /// 导入考试成绩 + /// + public class ImportExamInfo { /// /// 学校 @@ -117,6 +117,12 @@ namespace Learn.Archives.API.Controllers.Dto /// [ExcelColumnName("赋分后总分")] public decimal 赋分后总分 { get; set; } + + /// + /// 总分资源校排名 + /// + [ExcelColumn(Name="赋分总分资源校排名",Width =20)] + public int 资源校排名 { get; set; } } public class RestartEntryDto diff --git a/Learn.Archives.API/Controllers/ExamClassInfoController.cs b/Learn.Archives.API/Controllers/ExamClassInfoController.cs index ed75abf..33632fe 100644 --- a/Learn.Archives.API/Controllers/ExamClassInfoController.cs +++ b/Learn.Archives.API/Controllers/ExamClassInfoController.cs @@ -84,6 +84,11 @@ namespace Learn.Archives.API.Controllers var errorExcelInfo = new List(); var insertUserInfo = new List(); var insertClassInfo = new List(); + var oldUidAr = await examUserInfoService.AsQueryable() + .Where(s => s.ExamId == exam.Id) + .Select(s=>s.UserId) + .ToArrayAsync(); + var oldUidHash = oldUidAr.ToHashSet(); var db = schoolService.Context; SqlSugarExpand.SetDbAop(db); foreach (var schoolArr in dataList.GroupBy(s => s.School)) @@ -135,6 +140,12 @@ namespace Learn.Archives.API.Controllers return null; } var uid = userDic[name]; + if(oldUidHash!=null &&oldUidHash.Contains((long)uid)) + { + s.Error = "此学生已经在考试中已经录入过成绩"; + errorExcelInfo.Add(s); + return null; + } return new ExamUserInfo() { ExamId = exam.Id, @@ -149,7 +160,7 @@ namespace Learn.Archives.API.Controllers Type = exam.Type, SubjectDic = sub, AssignScore = s.赋分后总分, - AssignRanking = 0, + AssignRanking = s.资源校排名, }; }).ToList(); insertUserInfo.AddRange(userList); @@ -196,14 +207,15 @@ namespace Learn.Archives.API.Controllers eCInfo.Average = avgTotal / eCInfo.PeopleCount; //计算上线率 eCInfo.OnLineRate = (decimal)eCInfo.OnLineCount / (decimal)eCInfo.PeopleCount; - //处理学生班级排名 - var i = 0; - foreach (var item in classUserArr.OrderByDescending(s => s.AssignScore) - .GroupBy(s => s.AssignScore)) - { - foreach (var u in item) - u.AssignRanking =++ i; - } + //不计算 直接Excel导入 + ////处理学生班级排名 + //var i = 0; + //foreach (var item in classUserArr.OrderByDescending(s => s.AssignScore) + // .GroupBy(s => s.AssignScore)) + //{ + // foreach (var u in item) + // u.AssignRanking =++ i; + //} } }; diff --git a/Learn.Archives.API/Controllers/ExamUserInfoController.cs b/Learn.Archives.API/Controllers/ExamUserInfoController.cs index d113338..8b0754e 100644 --- a/Learn.Archives.API/Controllers/ExamUserInfoController.cs +++ b/Learn.Archives.API/Controllers/ExamUserInfoController.cs @@ -2,11 +2,13 @@ using Learn.Archives.API.Expand; using Learn.Archives.Core.Common; using Learn.Archives.Core.Model; +using Learn.Archives.Core.Model.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using System.Security.Claims; using UserCenter.Model; +using UserCenter.Model.Common; namespace Learn.Archives.API.Controllers { @@ -22,5 +24,29 @@ namespace Learn.Archives.API.Controllers this.baseService = baseService; this.userInfo = userInfo; } + public override Task PageList([FromBody] QueryRequestBase model) + { + var c = model.Conditions.FirstOrDefault(s => s.FieldName == "Grade"); + if (c != null) + { + var gInfo = GradeHelper.GetStudentGradeBaseByGrade(c.FieldValue); + if (gInfo != null) + { + model.Conditions = model.Conditions.Where(s => s != c).ToList(); + model.Conditions.Add(new SqlSugar.ConditionalModel() + { + FieldName = "GradeLevel", + FieldValue = gInfo.GradeLevel, + }); + model.Conditions.Add(new SqlSugar.ConditionalModel() + { + FieldName = "GradeYear", + FieldValue = gInfo.GradeYear.ToString(), + CSharpTypeName = "int" + }); + } + } + return base.PageList(model); + } } } diff --git a/Learn.Archives.API/Controllers/StudentController.cs b/Learn.Archives.API/Controllers/StudentController.cs index 60a9b1f..f09e55c 100644 --- a/Learn.Archives.API/Controllers/StudentController.cs +++ b/Learn.Archives.API/Controllers/StudentController.cs @@ -210,6 +210,7 @@ namespace Learn.Archives.API.Controllers ReliefApplication=s.ReliefApplication?.Contains("已申请")??false, ReliefSubTime = s.ReliefSubTime, ReliefType =s.ReliefType, + StudentType =s.StudentType.ToEnum(), }); userCenterImp.Add(new UserExcelExportData() { @@ -269,8 +270,9 @@ namespace Learn.Archives.API.Controllers ClassType = "必填:可选值\r\n[云校班 海豚智学班 蓝鲸智库班 中职班 其他 雅思班 点阵笔班级 移动校园班级 智学班 ...]", Status = "选填 可选值\r\n[就读,退出]", AmountRelief ="选填: 为0则视为 '未申请减免'", - ReliefType ="选填: 1.建卡贫困户\r\n2.低保户\r\n3.教师子女 \r\n4.孤儿\r\n5.艺体生\r\n6.残疾学生\r\n7.领导特殊承诺减免\r\n8.领导同意的特殊贫困减免", + ReliefType ="选填: 建卡贫困户\r\n低保户\r\n教师子女 \r\n孤儿\r\n艺体生\r\n残疾学生\r\n领导特殊承诺减免\r\n领导同意的特殊贫困减免", ReliefApplication ="选填: [已申请, 未申请]", + StudentType = "选填: 可选值:\r\n复读生\r\n艺术生\r\n春招生\r\n领导承诺批准全免\r\n资源班\r\n国际班\r\n合同制收费学校\r\n渠道商家属\r\n新开班但领导承诺第一学期不收费", Phone="选填", Remark="选填", } }; diff --git a/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs b/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs index aecc8d9..374f7fc 100644 --- a/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs +++ b/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs @@ -50,6 +50,10 @@ namespace Learn.Archives.Core.Model.Dto /// 执行时间 /// public DateTime? ExecutionTime { get; set; } + /// + /// 操作人 [后台自动赋值提交人名称] + /// + public string? Operator { get; set; } public string? ExecutionTimeStr => ExecutionTime?.ToString("yyyy-MM-dd"); diff --git a/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs b/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs index 9f85394..8cbf78c 100644 --- a/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs +++ b/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs @@ -162,6 +162,12 @@ namespace Learn.Archives.Core.Model.Dto + + /// + /// 学生类型 + /// + [ExcelColumn(Name = "学生类型", Width = 20)] + public string StudentType { get; set; } /// /// 学生状态[就读/退出] /// diff --git a/Learn.Archives.Core/Model/Enum/StudentTypeEnum.cs b/Learn.Archives.Core/Model/Enum/StudentTypeEnum.cs new file mode 100644 index 0000000..5796f7b --- /dev/null +++ b/Learn.Archives.Core/Model/Enum/StudentTypeEnum.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Learn.Archives.Core.Model.Enum +{ + /// + /// 学生类型 + /// + public enum StudentTypeEnum + { + 复读生 = 1, + 艺术生 = 10, + 春招生 = 20, + 领导承诺批准全免 = 30, + 资源班 = 40, + 国际班 = 50, + 合同制收费学校 = 60, + 渠道商家属 = 70, + 新开班但领导承诺第一学期不收费 = 80, + } +} diff --git a/Learn.Archives.Core/Model/Student.cs b/Learn.Archives.Core/Model/Student.cs index 81c5618..08ba783 100644 --- a/Learn.Archives.Core/Model/Student.cs +++ b/Learn.Archives.Core/Model/Student.cs @@ -36,6 +36,12 @@ namespace Learn.Archives.Core.Model /// [SugarColumn(IsNullable = true, Length = 20)] public string? ReliefType { get; set; } + + /// + /// 学生类型 + /// + [SugarColumn(IsNullable = true)] + public StudentTypeEnum? StudentType { get; set; } /// /// 减免申请时间 ///