已完成“成绩管理与学业档案”模块:

教师批量录入平时、期中、期末成绩。
自动计算总评、绩点和及格状态。
支持缺考、缓考、免修。
教师提交 → 学院审核/退回 → 校级发布。
学生只能查看正式发布成绩。
自动统计平均分、完成度、及格率和加权 GPA。
SQLite 本地增量升级和 MySQL 正式迁移均已完成。
分级权限在前后端同时校验。
This commit is contained in:
2026-07-24 15:33:47 +08:00 Unverified
parent 151a22554f
commit af52e27a3a
18 changed files with 3686 additions and 22 deletions
@@ -0,0 +1,50 @@
using Jiaowu.Api.Domain.Common;
namespace Jiaowu.Api.Domain.Academic;
public sealed class GradeSheet : EntityBase
{
public Guid TeachingTaskId { get; set; }
public TeachingTask? TeachingTask { get; set; }
public decimal RegularWeight { get; set; } = 30;
public decimal MidtermWeight { get; set; }
public decimal FinalWeight { get; set; } = 70;
public GradeSheetStatus Status { get; set; } = GradeSheetStatus.Draft;
public string? ReviewComment { get; set; }
public DateTime? SubmittedAt { get; set; }
public DateTime? ReviewedAt { get; set; }
public DateTime? PublishedAt { get; set; }
public ICollection<GradeRecord> Records { get; set; } = [];
}
public sealed class GradeRecord : EntityBase
{
public Guid GradeSheetId { get; set; }
public GradeSheet? GradeSheet { get; set; }
public Guid StudentId { get; set; }
public Student? Student { get; set; }
public decimal? RegularScore { get; set; }
public decimal? MidtermScore { get; set; }
public decimal? FinalScore { get; set; }
public decimal? TotalScore { get; set; }
public decimal? GradePoint { get; set; }
public GradeExamStatus ExamStatus { get; set; } = GradeExamStatus.Normal;
public string? Notes { get; set; }
}
public enum GradeSheetStatus
{
Draft = 1,
Submitted = 2,
Approved = 3,
Published = 4,
Returned = 5
}
public enum GradeExamStatus
{
Normal = 1,
Absent = 2,
Deferred = 3,
Exempt = 4
}