fix: 修复成绩工作台运行与编排顺序
This commit is contained in:
parent
48ae547de9
commit
482e2341c9
@ -763,7 +763,7 @@ public class JudgeScoringController : IDynamicApiController
|
||||
{
|
||||
var referee = await EnsureRefereeAsync();
|
||||
var userId = _authManager.UserId;
|
||||
var messages = await _messageRepository.AsQueryable()
|
||||
var messages = (await _messageRepository.AsQueryable()
|
||||
.Where(x => x.RefereeId == referee.Id || x.ReceiverUserId == userId)
|
||||
.WhereIF(onlyUnread == true, x => !x.IsRead)
|
||||
.ToListAsync())
|
||||
|
||||
@ -230,6 +230,16 @@ public class WorkbenchEntryDetailDto
|
||||
/// </summary>
|
||||
public int PlayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 该运动员在秩序册预览中的实际场次号
|
||||
/// </summary>
|
||||
public int SessionOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 秩序册预览/赛事编排中的全局出场顺序
|
||||
/// </summary>
|
||||
public long ScheduleOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 参赛者姓名
|
||||
/// </summary>
|
||||
|
||||
@ -290,6 +290,9 @@ public class WorkbenchController : IDynamicApiController
|
||||
?? throw Oops.Bah("场次不存在");
|
||||
var scoreRule = await _scoreRuleRepository.GetByIdAsync(session.ScoreRuleId);
|
||||
var roleSlots = JudgeRoleSchemaService.ParseSlots(scoreRule?.JudgeRoleSchemaJson);
|
||||
var venue = await _venueRepository.GetByIdAsync(session.VenueId);
|
||||
var venueOrder = venue?.Sort > 0 ? venue.Sort : 1;
|
||||
var sessionArrangementOrder = GetArrangementSequence(session.SessionNo);
|
||||
|
||||
var query = _entryRepository.AsQueryable()
|
||||
.Where(e => !e.DeleteMark && e.SessionId == sessionId);
|
||||
@ -311,6 +314,7 @@ public class WorkbenchController : IDynamicApiController
|
||||
e.Id,
|
||||
e.EntryNo,
|
||||
e.PlayOrder,
|
||||
e.SourceType,
|
||||
e.ParticipantName,
|
||||
e.TeamName,
|
||||
e.GroupName,
|
||||
@ -474,6 +478,11 @@ public class WorkbenchController : IDynamicApiController
|
||||
SessionEntryId = e.Id,
|
||||
EntryNo = e.EntryNo,
|
||||
PlayOrder = e.PlayOrder,
|
||||
SessionOrder = BuildEntrySessionOrder(sessionArrangementOrder, e.PlayOrder),
|
||||
// 导入数据按预览行生成雪花 ID;自动编排数据按场次起始序号、出场序号和场地序号还原。
|
||||
ScheduleOrder = e.SourceType == 1
|
||||
? e.Id
|
||||
: BuildEntryScheduleOrder(sessionArrangementOrder, venueOrder, e.PlayOrder),
|
||||
ParticipantName = e.ParticipantName,
|
||||
TeamName = e.TeamName,
|
||||
UnitName = result?.MerchantCertificationId is long merchantId
|
||||
@ -2025,6 +2034,29 @@ public class WorkbenchController : IDynamicApiController
|
||||
: int.MaxValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将自动编排场次中的出场记录还原为秩序册预览的全局顺序。
|
||||
/// 同一组别、同一场地的多条记录共用一个场次,因此需要在场次起始序号上叠加出场序号。
|
||||
/// </summary>
|
||||
private static long BuildEntryScheduleOrder(int sessionArrangementOrder, int venueOrder, int playOrder)
|
||||
{
|
||||
var taskSessionOrder = BuildEntrySessionOrder(sessionArrangementOrder, playOrder);
|
||||
|
||||
return (long)taskSessionOrder * 1_000_000L + Math.Max(venueOrder, 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单条出场记录在秩序册中的实际场次号。
|
||||
/// 花样项目的场次号保存的是本场起始序号;速度项目没有起始序号时按出场顺序计算。
|
||||
/// </summary>
|
||||
private static int BuildEntrySessionOrder(int sessionArrangementOrder, int playOrder)
|
||||
{
|
||||
var safePlayOrder = Math.Max(playOrder, 1);
|
||||
return sessionArrangementOrder > 0 && sessionArrangementOrder < int.MaxValue
|
||||
? sessionArrangementOrder + safePlayOrder - 1
|
||||
: safePlayOrder;
|
||||
}
|
||||
|
||||
private static string GetSessionStatusName(int status)
|
||||
{
|
||||
return status switch
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user