体测系统

This commit is contained in:
biss committed 2026-09-29 10:24:14 +08:00
1 parent 33b875b21a
commit c74c1e3914
19 files changed
+10507 -7

No files matched your search

@@ -0,0 +1,81 @@
using Jiaowu.Api.Domain.Common;
namespace Jiaowu.Api.Domain.Academic;
public sealed class PhysicalTestBatch : EntityBase
{
public required string Name { get; set; }
public required string AcademicYear { get; set; }
public DateOnly TestDate { get; set; }
public required string StandardVersion { get; set; }
public PhysicalTestBatchStatus Status { get; set; } = PhysicalTestBatchStatus.Draft;
public int PublicationCount { get; set; }
public DateTime? PublishedAt { get; set; }
public ICollection<PhysicalTestRecord> Records { get; set; } = [];
}
public sealed class PhysicalTestRecord : EntityBase
{
public Guid PhysicalTestBatchId { get; set; }
public PhysicalTestBatch? PhysicalTestBatch { get; set; }
public Guid StudentId { get; set; }
public Student? Student { get; set; }
public int GradeLevel { get; set; }
public PhysicalTestRecordStatus Status { get; set; } = PhysicalTestRecordStatus.Normal;
public string? SpecialReason { get; set; }
public decimal? StandardScore { get; set; }
public decimal? BonusScore { get; set; }
public decimal? TotalScore { get; set; }
public PhysicalTestGrade? Grade { get; set; }
public DateTime? CalculatedAt { get; set; }
public string? Notes { get; set; }
public ICollection<PhysicalTestItemResult> Items { get; set; } = [];
}
public sealed class PhysicalTestItemResult : EntityBase
{
public Guid PhysicalTestRecordId { get; set; }
public PhysicalTestRecord? PhysicalTestRecord { get; set; }
public PhysicalTestItemCode ItemCode { get; set; }
public decimal Value { get; set; }
public required string Unit { get; set; }
public decimal? Score { get; set; }
public decimal BonusScore { get; set; }
public decimal Weight { get; set; }
public decimal? WeightedScore { get; set; }
}
public enum PhysicalTestBatchStatus
{
Draft = 1,
Published = 2
}
public enum PhysicalTestRecordStatus
{
Normal = 1,
Missing = 2,
Deferred = 3,
Exempt = 4
}
public enum PhysicalTestGrade
{
Fail = 1,
Pass = 2,
Good = 3,
Excellent = 4
}
public enum PhysicalTestItemCode
{
Height = 1,
Weight = 2,
Bmi = 3,
VitalCapacity = 4,
Sprint50M = 5,
SitAndReach = 6,
StandingLongJump = 7,
Strength = 8,
EnduranceRun = 9
}
@@ -39,6 +39,7 @@ public static class SystemRoles
public const string Leader = "Leader";
public const string MaintenanceAdmin = "MaintenanceAdmin";
public const string MaintenanceStaff = "MaintenanceStaff";
public const string PhysicalEducationAdmin = "PhysicalEducationAdmin";
public static readonly string[] All =
[
@@ -50,6 +51,7 @@ public static class SystemRoles
Student,
Leader,
MaintenanceAdmin,
MaintenanceStaff
MaintenanceStaff,
PhysicalEducationAdmin
];
}