学籍异动:休学、复学、退学申请及辅导员→学院→教务处分级审批。
毕业审核:批次计算、缺失课程检查、人工复核、结果发布。 学位授予:毕业资格与 GPA 计算、人工调整、发布授予结果。 毕业离校:离校事项配置、责任角色分工、逐项办理及批次关闭。
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using Jiaowu.Api.Domain.Common;
|
||||
|
||||
namespace Jiaowu.Api.Domain.Academic;
|
||||
|
||||
public sealed class DegreeAwardBatch : EntityBase
|
||||
{
|
||||
public required string Name { get; set; }
|
||||
public int GraduationYear { get; set; }
|
||||
public required string DegreeName { get; set; }
|
||||
public decimal MinimumGradePoint { get; set; } = 2.0m;
|
||||
public DegreeAwardBatchStatus Status { get; set; } = DegreeAwardBatchStatus.Draft;
|
||||
public string? Notes { get; set; }
|
||||
public DateTime? CalculatedAt { get; set; }
|
||||
public DateTime? PublishedAt { get; set; }
|
||||
public ICollection<DegreeAwardResult> Results { get; set; } = [];
|
||||
}
|
||||
|
||||
public sealed class DegreeAwardResult : EntityBase
|
||||
{
|
||||
public Guid DegreeAwardBatchId { get; set; }
|
||||
public DegreeAwardBatch? DegreeAwardBatch { get; set; }
|
||||
public Guid StudentId { get; set; }
|
||||
public Student? Student { get; set; }
|
||||
public Guid GraduationAuditResultId { get; set; }
|
||||
public GraduationAuditResult? GraduationAuditResult { get; set; }
|
||||
public decimal AverageGradePoint { get; set; }
|
||||
public DegreeAwardConclusion CalculatedConclusion { get; set; }
|
||||
public DegreeAwardConclusion Conclusion { get; set; }
|
||||
public required string ExceptionReason { get; set; }
|
||||
public bool IsOverridden { get; set; }
|
||||
public string? ReviewComment { get; set; }
|
||||
public DateTime? ReviewedAt { get; set; }
|
||||
}
|
||||
|
||||
public enum DegreeAwardBatchStatus
|
||||
{
|
||||
Draft = 1,
|
||||
Published = 2
|
||||
}
|
||||
|
||||
public enum DegreeAwardConclusion
|
||||
{
|
||||
NotGranted = 1,
|
||||
Granted = 2
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using Jiaowu.Api.Domain.Common;
|
||||
|
||||
namespace Jiaowu.Api.Domain.Academic;
|
||||
|
||||
public sealed class GraduationAuditBatch : EntityBase
|
||||
{
|
||||
public required string Name { get; set; }
|
||||
public int GraduationYear { get; set; }
|
||||
public int EnrollmentYear { get; set; }
|
||||
public GraduationAuditBatchStatus Status { get; set; } =
|
||||
GraduationAuditBatchStatus.Draft;
|
||||
public string? Notes { get; set; }
|
||||
public DateTime? CalculatedAt { get; set; }
|
||||
public DateTime? PublishedAt { get; set; }
|
||||
public ICollection<GraduationAuditResult> Results { get; set; } = [];
|
||||
}
|
||||
|
||||
public sealed class GraduationAuditResult : EntityBase
|
||||
{
|
||||
public Guid GraduationAuditBatchId { get; set; }
|
||||
public GraduationAuditBatch? GraduationAuditBatch { get; set; }
|
||||
public Guid StudentId { get; set; }
|
||||
public Student? Student { get; set; }
|
||||
public Guid? CurriculumPlanId { get; set; }
|
||||
public CurriculumPlan? CurriculumPlan { get; set; }
|
||||
public StudentStatus StudentStatusSnapshot { get; set; }
|
||||
public decimal RequiredCredits { get; set; }
|
||||
public decimal EarnedCredits { get; set; }
|
||||
public int RequiredCourseCount { get; set; }
|
||||
public int PassedRequiredCourseCount { get; set; }
|
||||
public int FailedCourseCount { get; set; }
|
||||
public required string MissingCourseNames { get; set; }
|
||||
public GraduationAuditConclusion CalculatedConclusion { get; set; }
|
||||
public GraduationAuditConclusion Conclusion { get; set; }
|
||||
public bool IsOverridden { get; set; }
|
||||
public string? ReviewComment { get; set; }
|
||||
public DateTime? ReviewedAt { get; set; }
|
||||
}
|
||||
|
||||
public enum GraduationAuditBatchStatus
|
||||
{
|
||||
Draft = 1,
|
||||
Published = 2
|
||||
}
|
||||
|
||||
public enum GraduationAuditConclusion
|
||||
{
|
||||
Ineligible = 1,
|
||||
Eligible = 2
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using Jiaowu.Api.Domain.Common;
|
||||
|
||||
namespace Jiaowu.Api.Domain.Academic;
|
||||
|
||||
public sealed class GraduationClearanceBatch : EntityBase
|
||||
{
|
||||
public required string Name { get; set; }
|
||||
public int GraduationYear { get; set; }
|
||||
public GraduationClearanceBatchStatus Status { get; set; } =
|
||||
GraduationClearanceBatchStatus.Open;
|
||||
public string? Notes { get; set; }
|
||||
public DateTime? ClosedAt { get; set; }
|
||||
public ICollection<GraduationClearanceItem> Items { get; set; } = [];
|
||||
}
|
||||
|
||||
public sealed class GraduationClearanceItem : EntityBase
|
||||
{
|
||||
public Guid GraduationClearanceBatchId { get; set; }
|
||||
public GraduationClearanceBatch? GraduationClearanceBatch { get; set; }
|
||||
public required string Code { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public required string ResponsibleUnit { get; set; }
|
||||
public required string ResponsibleRole { get; set; }
|
||||
public bool IsRequired { get; set; } = true;
|
||||
public int SortOrder { get; set; }
|
||||
public ICollection<GraduationClearanceRecord> Records { get; set; } = [];
|
||||
}
|
||||
|
||||
public sealed class GraduationClearanceRecord : EntityBase
|
||||
{
|
||||
public Guid GraduationClearanceItemId { get; set; }
|
||||
public GraduationClearanceItem? GraduationClearanceItem { get; set; }
|
||||
public Guid StudentId { get; set; }
|
||||
public Student? Student { get; set; }
|
||||
public GraduationClearanceRecordStatus Status { get; set; } =
|
||||
GraduationClearanceRecordStatus.Pending;
|
||||
public string? Notes { get; set; }
|
||||
public DateTime? CompletedAt { get; set; }
|
||||
public Guid? CompletedByUserId { get; set; }
|
||||
}
|
||||
|
||||
public enum GraduationClearanceBatchStatus
|
||||
{
|
||||
Open = 1,
|
||||
Closed = 2
|
||||
}
|
||||
|
||||
public enum GraduationClearanceRecordStatus
|
||||
{
|
||||
Pending = 1,
|
||||
Completed = 2,
|
||||
Waived = 3
|
||||
}
|
||||
Reference in New Issue
Block a user