diff --git a/Learn.Archives.API/Controllers/ExamClassInfoController.cs b/Learn.Archives.API/Controllers/ExamClassInfoController.cs index 1318266..e3f022b 100644 --- a/Learn.Archives.API/Controllers/ExamClassInfoController.cs +++ b/Learn.Archives.API/Controllers/ExamClassInfoController.cs @@ -116,6 +116,12 @@ namespace Learn.Archives.API.Controllers } var grade = GradeHelper.GetStudentGradeBaseByGrade(s.Grade); var sub = ImportExamInfoSubjectDic(s); + if(sub is null) + { + s.Error = "遇到了无法处理成绩值! 请检查本行的成绩"; + errorExcelInfo.Add(s); + return null; + } var name = s.Class + s.Student; if (!userDic.ContainsKey(name)) { @@ -305,12 +311,12 @@ namespace Learn.Archives.API.Controllers var res = new Dictionary(); foreach (var item in c) { - if(string.IsNullOrWhiteSpace(item.Value)) + if (string.IsNullOrWhiteSpace(item.Value)) res.Add(item.Key, 0m); else if (decimal.TryParse(item.Value.Trim(), out decimal r)) res.Add(item.Key, r); else - res.Add(item.Key, 0m); + return null; } return res; } @@ -350,8 +356,9 @@ namespace Learn.Archives.API.Controllers var db = sService.Context; foreach (var schoolArr in userInfoArr.GroupBy(s => s.SchoolId)) { - var school = await sService.GetFirstAsync(s => s.Id == schoolArr.Key); + if(school is null) + continue; var classArr = await db.Queryable() .Where(c => c.SchoolId == school.Id && c.GradeLevel == exam.GradeLevel &&