裁判场次分配顺序展示项目
This commit is contained in:
parent
141e5caffb
commit
5baec1c4b9
@ -77,15 +77,20 @@ public class JudgeAssignmentService : IDynamicApiController, ITransient
|
||||
var referees = await _refereeRepository.AsQueryable().Where(x => assignments.Select(a => a.RefereeId).Contains(x.Id)).ToListAsync();
|
||||
var result = new JudgeAssignmentBoardOutput { ArrangementConfirmed = true, Submitted = assignments.Count > 0 && assignments.All(x => x.AssignmentStatus == 1) };
|
||||
var projectMap = projects.ToDictionary(x => x.Id);
|
||||
var sessionsByEventProject = sessions
|
||||
.GroupBy(x => x.EventProjectId)
|
||||
.ToDictionary(x => x.Key, x => x.OrderBy(session => session.Id).ToList());
|
||||
foreach (var ep in eventProjects
|
||||
.OrderBy(x => projectMap.GetValueOrDefault(x.ProjectId)?.SortIndex ?? int.MaxValue)
|
||||
// 秩序册覆盖导入会按 Excel 中项目首次出现的顺序生成场次;
|
||||
// 普通赛事编排同样按项目 SortIndex 依次生成场次,因此以首个有效场次保持两条业务路径的原始顺序。
|
||||
.OrderBy(x => sessionsByEventProject.GetValueOrDefault(x.Id)?.FirstOrDefault()?.Id ?? long.MaxValue)
|
||||
.ThenBy(x => projectMap.GetValueOrDefault(x.ProjectId)?.SortIndex ?? int.MaxValue)
|
||||
.ThenBy(x => x.ProjectId)
|
||||
.ThenBy(x => x.Id))
|
||||
{
|
||||
var project = projectMap.GetValueOrDefault(ep.ProjectId);
|
||||
if (project == null) continue;
|
||||
var actualSessions = sessions.Where(x => x.EventProjectId == ep.Id).ToList();
|
||||
if (actualSessions.Count == 0) continue;
|
||||
if (!sessionsByEventProject.TryGetValue(ep.Id, out var actualSessions)) continue;
|
||||
if (!TryGetSessionRuleId(actualSessions, out var ruleId))
|
||||
throw Oops.Bah($"项目【{project.Name}】的场次计分规则不一致或无效,请先核查历史编排");
|
||||
var rule = rules.FirstOrDefault(x => x.Id == ruleId)
|
||||
|
||||
@ -771,7 +771,7 @@ BEGIN TRY
|
||||
SET RuleConfigJson=JSON_MODIFY(
|
||||
RuleConfigJson,
|
||||
N'append $.roleAggregations',
|
||||
JSON_QUERY(N'{"roleType":"T","symbol":"qI","label":"互动配合规定元素缺失","sourceField":"RequiredMissingCount","targetField":"RequiredScore","aggregate":"avg","aggregateDecimals":0,"sign":1,"factor":"Q","factorWeight":0.025}'))
|
||||
JSON_QUERY(N'{"roleType":"T","symbol":"qI","label":"互动配合规定元素缺失","sourceField":"RequiredMissingCount","targetField":"RequiredScore","aggregate":"avg","sign":1,"factor":"Q","factorWeight":0.025}'))
|
||||
WHERE RuleCode IN (N'ROPE_FREESTYLE_DOUBLE_SYNC',N'ROPE_FREESTYLE_QUAD_SYNC');
|
||||
|
||||
UPDATE r SET RuleName=s.RuleName,JudgeRoleSchemaJson=s.JudgeRoleSchemaJson,RuleConfigJson=s.RuleConfigJson,
|
||||
|
||||
@ -29,7 +29,7 @@ BEGIN TRY
|
||||
SET RuleConfigJson=JSON_MODIFY(
|
||||
RuleConfigJson,
|
||||
N'append $.roleAggregations',
|
||||
JSON_QUERY(N'{"roleType":"T","symbol":"qI","label":"互动配合规定元素缺失","sourceField":"RequiredMissingCount","targetField":"RequiredScore","aggregate":"avg","aggregateDecimals":0,"sign":1,"factor":"Q","factorWeight":0.025}'))
|
||||
JSON_QUERY(N'{"roleType":"T","symbol":"qI","label":"互动配合规定元素缺失","sourceField":"RequiredMissingCount","targetField":"RequiredScore","aggregate":"avg","sign":1,"factor":"Q","factorWeight":0.025}'))
|
||||
WHERE RuleCode IN (N'ROPE_FREESTYLE_DOUBLE_SYNC',N'ROPE_FREESTYLE_QUAD_SYNC');
|
||||
|
||||
UPDATE r SET RuleName=s.RuleName,JudgeRoleSchemaJson=s.JudgeRoleSchemaJson,RuleConfigJson=s.RuleConfigJson,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user