教学评价闭环:

新增同行/督导评价、教师改进计划、教师完成申报、管理员复评与退回机制。
闭环数据按教学班和学期归档;管理端可追踪计划数、已复评数及未闭环事项。
保留原学生评教流程;同行不能评价本人教学班,所有查询与写入均受学院数据范围限制。
This commit is contained in:
biss committed 2026-08-18 10:28:36 +08:00
1 parent 390d0b123f
commit 73f870221b
9 files changed
+8314 -103

No files matched your search

@@ -82,3 +82,50 @@ public sealed class EvaluationScore
public int Score { get; set; }
}
/// <summary>同行或督导对教学班的独立评价,和学生匿名评教分开留痕。</summary>
public sealed class TeachingObservationEvaluation : EntityBase
{
public Guid AcademicTermId { get; set; }
public AcademicTerm AcademicTerm { get; set; } = null!;
public Guid TeachingTaskId { get; set; }
public TeachingTask TeachingTask { get; set; } = null!;
public Guid EvaluatorUserId { get; set; }
public EvaluationSource Source { get; set; }
public int Score { get; set; }
public string Strengths { get; set; } = string.Empty;
public string Issues { get; set; } = string.Empty;
public string Recommendation { get; set; } = string.Empty;
public DateTime SubmittedAt { get; set; }
}
public enum EvaluationSource { Peer = 1, Supervision = 2 }
/// <summary>教师针对评价结论形成的改进计划;复评记录挂在计划下。</summary>
public sealed class TeachingImprovementPlan : EntityBase
{
public Guid AcademicTermId { get; set; }
public AcademicTerm AcademicTerm { get; set; } = null!;
public Guid TeachingTaskId { get; set; }
public TeachingTask TeachingTask { get; set; } = null!;
public Guid TeacherId { get; set; }
public Teacher Teacher { get; set; } = null!;
public string ProblemSummary { get; set; } = string.Empty;
public string Actions { get; set; } = string.Empty;
public DateOnly? DueDate { get; set; }
public ImprovementPlanStatus Status { get; set; } = ImprovementPlanStatus.Draft;
public DateTime? SubmittedAt { get; set; }
public ICollection<TeachingImprovementReview> Reviews { get; set; } = new List<TeachingImprovementReview>();
}
public enum ImprovementPlanStatus { Draft = 0, Submitted = 1, InProgress = 2, Completed = 3, Rework = 4, Reviewed = 5 }
public sealed class TeachingImprovementReview : EntityBase
{
public Guid TeachingImprovementPlanId { get; set; }
public TeachingImprovementPlan TeachingImprovementPlan { get; set; } = null!;
public Guid ReviewerUserId { get; set; }
public bool IsApproved { get; set; }
public string Comment { get; set; } = string.Empty;
public DateTime ReviewedAt { get; set; }
}