551 lines
13 KiB
C#
551 lines
13 KiB
C#
namespace YD_Event.Application.Scoring.Dtos;
|
||
|
||
/// <summary>
|
||
/// 后台记分台:单个裁判类型的评分提交进度
|
||
/// </summary>
|
||
public class JudgeBoardRoleProgressOutput
|
||
{
|
||
/// <summary>
|
||
/// 裁判类型编码
|
||
/// </summary>
|
||
public string RoleType { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 裁判类型名称
|
||
/// </summary>
|
||
public string RoleName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 计分符号,如 T1、T2、T3
|
||
/// </summary>
|
||
public string Symbol { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 应提交人数
|
||
/// </summary>
|
||
public int ExpectedCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 已提交人数
|
||
/// </summary>
|
||
public int SubmittedCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 未提交的裁判姓名
|
||
/// </summary>
|
||
public List<string> PendingJudges { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 后台记分台:单个裁判的评分
|
||
/// </summary>
|
||
public class JudgeBoardSheetScoreOutput
|
||
{
|
||
/// <summary>
|
||
/// 评分单ID
|
||
/// </summary>
|
||
public long ScoreSheetId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 裁判ID
|
||
/// </summary>
|
||
public long RefereeId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 裁判姓名
|
||
/// </summary>
|
||
public string RefereeName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 裁判席位编码
|
||
/// </summary>
|
||
public string JudgeRole { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 裁判类型编码
|
||
/// </summary>
|
||
public string JudgeRoleType { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 该裁判的得分
|
||
/// </summary>
|
||
public string Value { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 是否由该裁判判定取消比赛资格
|
||
/// </summary>
|
||
public bool IsDisqualified { get; set; }
|
||
|
||
/// <summary>裁判记录画板地址。</summary>
|
||
public string? AnnotationUrl { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 后台记分台:单个计分符号的聚合得分
|
||
/// </summary>
|
||
public class JudgeSymbolScoreOutput
|
||
{
|
||
/// <summary>
|
||
/// 计分符号,如 T1
|
||
/// </summary>
|
||
public string Symbol { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 计分名称,如创意分
|
||
/// </summary>
|
||
public string Label { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 裁判类型编码
|
||
/// </summary>
|
||
public string RoleType { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 聚合方式:avg、sum、max、min
|
||
/// </summary>
|
||
public string Aggregate { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 参与总分的符号:1-加分,-1-减分
|
||
/// </summary>
|
||
public int Sign { get; set; }
|
||
|
||
/// <summary>
|
||
/// 聚合后的分值
|
||
/// </summary>
|
||
public string Value { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 参与聚合的各裁判评分
|
||
/// </summary>
|
||
public List<JudgeBoardSheetScoreOutput> Judges { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 后台记分台:一个出场的成绩
|
||
/// </summary>
|
||
public class JudgeScoreBoardEntryOutput
|
||
{
|
||
/// <summary>
|
||
/// 出场记录ID
|
||
/// </summary>
|
||
public long SessionEntryId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出场编号
|
||
/// </summary>
|
||
public string EntryNo { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 出场顺序
|
||
/// </summary>
|
||
public int PlayOrder { get; set; }
|
||
|
||
/// <summary>
|
||
/// 参赛者/参赛队名称
|
||
/// </summary>
|
||
public string ParticipantName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 出场状态:0-待出场,10-已检录,20-已叫号,30-进行中,40-已完成,80-退赛,90-取消比赛资格
|
||
/// </summary>
|
||
public int EntryStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否所有应到裁判都已提交评分
|
||
/// </summary>
|
||
public bool IsCompleted { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否跳过计分(退赛、成绩作废)
|
||
/// </summary>
|
||
public bool IsSkipped { get; set; }
|
||
|
||
/// <summary>
|
||
/// 跳过原因
|
||
/// </summary>
|
||
public string? SkipReason { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否取消比赛资格
|
||
/// </summary>
|
||
public bool IsDisqualified { get; set; }
|
||
|
||
/// <summary>
|
||
/// 总分
|
||
/// </summary>
|
||
public string TotalScore { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 名次,0 表示暂未排名
|
||
/// </summary>
|
||
public int Rank { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩状态:0-未生成,10-待复核,20-已确认,90-已作废
|
||
/// </summary>
|
||
public int ResultStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩状态名称
|
||
/// </summary>
|
||
public string ResultStatusName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 各计分符号的聚合明细
|
||
/// </summary>
|
||
public List<JudgeSymbolScoreOutput> Symbols { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 各裁判类型的提交进度
|
||
/// </summary>
|
||
public List<JudgeBoardRoleProgressOutput> Progress { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 后台记分台
|
||
/// </summary>
|
||
public class JudgeScoreBoardOutput
|
||
{
|
||
/// <summary>
|
||
/// 场次ID
|
||
/// </summary>
|
||
public long SessionId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事ID
|
||
/// </summary>
|
||
public long EventId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 场次名称
|
||
/// </summary>
|
||
public string SessionName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 场地名称
|
||
/// </summary>
|
||
public string VenueName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 计分规则名称
|
||
/// </summary>
|
||
public string RuleName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 计分公式,如 T1 + T2 - T3
|
||
/// </summary>
|
||
public string Formula { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 场次状态:0-草稿,10-就绪,20-检录中,30-进行中,40-暂停,50-待确认,60-已结束,90-已取消
|
||
/// </summary>
|
||
public int SessionStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出场总数
|
||
/// </summary>
|
||
public int EntryCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 已算出成绩的出场数
|
||
/// </summary>
|
||
public int CompletedCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出场成绩
|
||
/// </summary>
|
||
public List<JudgeScoreBoardEntryOutput> Entries { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 成绩排名查询
|
||
/// </summary>
|
||
public class JudgeRankingQueryInput
|
||
{
|
||
/// <summary>
|
||
/// 赛事ID
|
||
/// </summary>
|
||
public long EventId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目ID
|
||
/// </summary>
|
||
public long? ProjectId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string? GroupName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩状态:10-待复核,20-已确认
|
||
/// </summary>
|
||
public int? ResultStatus { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 成绩排名行
|
||
/// </summary>
|
||
public class JudgeRankingRowOutput
|
||
{
|
||
/// <summary>
|
||
/// 成绩ID
|
||
/// </summary>
|
||
public long ResultId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出场记录ID
|
||
/// </summary>
|
||
public long? SessionEntryId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目ID
|
||
/// </summary>
|
||
public long ProjectId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型名称
|
||
/// </summary>
|
||
public string ProjectTypeName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 参赛者/参赛队名称
|
||
/// </summary>
|
||
public string ParticipantName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 名次
|
||
/// </summary>
|
||
public int Rank { get; set; }
|
||
|
||
/// <summary>
|
||
/// 总分
|
||
/// </summary>
|
||
public string TotalScore { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 难度分
|
||
/// </summary>
|
||
public decimal DifficultyScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 表现分(规定赛创意分 T1)
|
||
/// </summary>
|
||
public decimal PerformanceScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 规定分(规定赛完成分 T2)
|
||
/// </summary>
|
||
public decimal RequiredScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 扣分(规定赛主裁扣分 T3)
|
||
/// </summary>
|
||
public decimal DeductionScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否取消比赛资格
|
||
/// </summary>
|
||
public bool IsDisqualified { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩状态:10-待复核,20-已确认,90-已作废
|
||
/// </summary>
|
||
public int ResultStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩状态名称
|
||
/// </summary>
|
||
public string ResultStatusName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 成绩版本号
|
||
/// </summary>
|
||
public int ResultVersion { get; set; }
|
||
|
||
/// <summary>
|
||
/// 复核人(后台系统用户ID)
|
||
/// </summary>
|
||
public long? ReviewUserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 复核时间
|
||
/// </summary>
|
||
public DateTime? ReviewTime { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 后台发起成绩修正
|
||
/// </summary>
|
||
public class InitiateJudgeCorrectionInput
|
||
{
|
||
/// <summary>
|
||
/// 评分单ID
|
||
/// </summary>
|
||
public long ScoreSheetId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 修正原因
|
||
/// </summary>
|
||
public string Reason { get; set; } = null!;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 审批成绩修正申请
|
||
/// </summary>
|
||
public class ApproveJudgeCorrectionInput
|
||
{
|
||
/// <summary>
|
||
/// 修正申请ID
|
||
/// </summary>
|
||
public long CorrectionId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否同意
|
||
/// </summary>
|
||
public bool Approved { get; set; }
|
||
|
||
/// <summary>
|
||
/// 审批意见
|
||
/// </summary>
|
||
public string? ApproveRemark { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 成绩修正申请
|
||
/// </summary>
|
||
public class JudgeCorrectionOutput
|
||
{
|
||
/// <summary>
|
||
/// 修正申请ID
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 场次ID
|
||
/// </summary>
|
||
public long SessionId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 场次名称
|
||
/// </summary>
|
||
public string SessionName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 出场记录ID
|
||
/// </summary>
|
||
public long SessionEntryId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出场编号
|
||
/// </summary>
|
||
public string EntryNo { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 参赛者/参赛队名称
|
||
/// </summary>
|
||
public string ParticipantName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 原评分单ID
|
||
/// </summary>
|
||
public long OriginalScoreSheetId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 修正后的新评分单ID
|
||
/// </summary>
|
||
public long? NewScoreSheetId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 裁判席位编码
|
||
/// </summary>
|
||
public string JudgeRole { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 裁判姓名
|
||
/// </summary>
|
||
public string RefereeName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 修正前的得分
|
||
/// </summary>
|
||
public string OriginalScore { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 修正后的得分
|
||
/// </summary>
|
||
public string? NewScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 申请修正原因
|
||
/// </summary>
|
||
public string ApplyReason { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 审批意见
|
||
/// </summary>
|
||
public string? ApproveRemark { get; set; }
|
||
|
||
/// <summary>
|
||
/// 修正状态:0-已申请,10-已批准,20-已拒绝,30-裁判修改中,40-已完成,90-已取消
|
||
/// </summary>
|
||
public int CorrectionStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 修正状态名称
|
||
/// </summary>
|
||
public string CorrectionStatusName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 申请时间
|
||
/// </summary>
|
||
public DateTime CreatedTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 审批时间
|
||
/// </summary>
|
||
public DateTime? ApproveTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 完成时间
|
||
/// </summary>
|
||
public DateTime? CompletedTime { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 场次成绩确认结果
|
||
/// </summary>
|
||
public class ConfirmSessionScoreOutput
|
||
{
|
||
/// <summary>
|
||
/// 已确认的成绩条数
|
||
/// </summary>
|
||
public int ConfirmedCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 仍未完成评分的出场编号
|
||
/// </summary>
|
||
public List<string> PendingEntries { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 场次是否已整场结束
|
||
/// </summary>
|
||
public bool SessionFinished { get; set; }
|
||
}
|