优化 导入考试信息功能

This commit is contained in:
小肥羊 2025-11-27 12:30:38 +08:00
parent 7d5f8984df
commit 8463f7ec86
2 changed files with 14 additions and 17 deletions

View File

@ -57,18 +57,8 @@ namespace Learn.Archives.API.Controllers
{ {
var exam = await examService.GetByIdAsync(dto.eId); var exam = await examService.GetByIdAsync(dto.eId);
var fl = dto.File!=null? dto .File: accessor.HttpContext?.Request.Form.Files[0]; if (exam == null ) Oh.ModelError("为传入有效的数据");
if (exam == null || fl == null) Oh.ModelError("为传入有效的数据"); var dataList = await accessor.ParsingExcelAsync<ImportExamInfoError>();
if (!Path.GetExtension(fl.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
Oh.ModelError("请选择导入文件为.xlsx的后缀名!");
//分析excel
IEnumerable<ImportExamInfoError> dataList;
using var stream = new MemoryStream();
{
await fl.CopyToAsync(stream);
dataList = stream.Query<ImportExamInfoError>()
.Where(s => !string.IsNullOrEmpty(s.Student));
}
if (dataList == null || dataList.Count() == 0) if (dataList == null || dataList.Count() == 0)
Oh.ModelError("导入失败:无有效数据"); Oh.ModelError("导入失败:无有效数据");
@ -353,7 +343,7 @@ namespace Learn.Archives.API.Controllers
c.GraduationYear == exam.GradeYear && !c.DeleteState) c.GraduationYear == exam.GradeYear && !c.DeleteState)
.ToArrayAsync(); .ToArrayAsync();
foreach (var classUserArr in userInfoArr.Where(s=>s.SchoolId == school.Id).GroupBy(s => s.ClassId)) foreach (var classUserArr in schoolArr.GroupBy(s => s.ClassId))
{ {
var classInfo = classArr.FirstOrDefault(s => s.Id == classUserArr.Key); var classInfo = classArr.FirstOrDefault(s => s.Id == classUserArr.Key);
if (classInfo is null) if (classInfo is null)

View File

@ -416,7 +416,7 @@ namespace Learn.Archives.API.Controllers
var u = new Student() var u = new Student()
{ {
UserCenterId = uid, UserCenterId = uid,
AmountRelief = decimal.TryParse(row.AmountRelief, out var v) ? v : 0, AmountRelief = decimal.TryParse(row.AmountRelief, out var v) ? v : null,
ReliefApplication = row.ReliefApplication?.Contains("已申请") ?? false, ReliefApplication = row.ReliefApplication?.Contains("已申请") ?? false,
ReliefType = row.ReliefType, ReliefType = row.ReliefType,
ReliefSubTime = row.ReliefSubTime, ReliefSubTime = row.ReliefSubTime,
@ -453,6 +453,16 @@ namespace Learn.Archives.API.Controllers
if (updateArr.Count > 0) if (updateArr.Count > 0)
{ {
updateArr = updateArr.Where(s =>
new object[] { s.AmountRelief,
s.ReliefType,
s.ReliefSubTime,
s.StudentType,
s.Status,
s.JoinTime,
s.ExitTime,
s.Remark}.Any(x => !(x == default || x == null))).ToList();
// 测试IgnoreColumns是否真实有效
await baseService.AsUpdateable(updateArr) await baseService.AsUpdateable(updateArr)
.UpdateColumns(s => new .UpdateColumns(s => new
{ {
@ -484,9 +494,6 @@ namespace Learn.Archives.API.Controllers
.IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true) .IgnoreColumns(ignoreAllNullColumns: true, ignoreAllDefaultValue: true)
.WhereColumns(it => new { it.Id }) .WhereColumns(it => new { it.Id })
.ExecuteCommandAsync(); .ExecuteCommandAsync();
Oh.Error("需要测试"); Oh.Error("需要测试");
return Ok(); return Ok();
} }