证书单位赋值

This commit is contained in:
马梓彭 2026-05-18 11:49:41 +08:00
parent 1a62270421
commit f823dfb7eb
2 changed files with 44 additions and 12 deletions

View File

@ -850,6 +850,22 @@ public class EventScoreService : BaseService<EventResult>, ITransient
})
.ToListAsync();
// 预加载所有相关的单位认证数据
var merchantCertIds = allPersonsWithTeam
.Where(p => p.MerchantCertificationId.HasValue)
.Select(p => p.MerchantCertificationId.Value)
.Distinct()
.ToList();
Dictionary<long, string> merchantNameDict = new Dictionary<long, string>();
if (merchantCertIds.Any())
{
var merchantCerts = await _merchantCertificationRepository.AsQueryable()
.Where(mc => merchantCertIds.Contains(mc.Id) && !mc.DeleteMark)
.ToListAsync();
merchantNameDict = merchantCerts.ToDictionary(mc => mc.Id, mc => mc.MerchantName);
}
// 处理 PersonIds:将负的 Id 转换为 UserId,然后尝试找到或创建对应的 EventRegistrationPerson
var processedPersonIds = new List<long>();
var userIdToNewPersonId = new Dictionary<long, long>();
@ -1135,8 +1151,16 @@ public class EventScoreService : BaseService<EventResult>, ITransient
isNewCert = true;
}
// 获取单位名称
string unitName = string.Empty;
if (person.MerchantCertificationId.HasValue &&
merchantNameDict.TryGetValue(person.MerchantCertificationId.Value, out var merchantName))
{
unitName = merchantName;
}
// 构建占位符数据(传递合并后的姓名)
var placeholderData = BuildPlaceholderData(person.Person, resultRecord, combinedNames);
var placeholderData = BuildPlaceholderData(person.Person, resultRecord, unitName, combinedNames);
// 生成 PDF 证书
try
@ -1200,8 +1224,16 @@ public class EventScoreService : BaseService<EventResult>, ITransient
isNewCert = true;
}
// 获取单位名称
string unitName = string.Empty;
if (person.MerchantCertificationId.HasValue &&
merchantNameDict.TryGetValue(person.MerchantCertificationId.Value, out var merchantName))
{
unitName = merchantName;
}
// 构建占位符数据(教练/领队没有成绩记录)
var placeholderData = BuildPlaceholderDataForCoachLeader(person.Person);
var placeholderData = BuildPlaceholderDataForCoachLeader(person.Person, unitName);
// 生成 PDF 证书
try
@ -1288,7 +1320,7 @@ public class EventScoreService : BaseService<EventResult>, ITransient
/// <summary>
/// 构建运动员占位符数据
/// </summary>
private Dictionary<string, string> BuildPlaceholderData(EventRegistrationPerson person, EventResult result, string combinedNames = null)
private Dictionary<string, string> BuildPlaceholderData(EventRegistrationPerson person, EventResult result, string unitName, string combinedNames = null)
{
var displayName = string.IsNullOrEmpty(combinedNames) ? person.Name : combinedNames;
var data = new Dictionary<string, string>
@ -1304,9 +1336,9 @@ public class EventScoreService : BaseService<EventResult>, ITransient
["成绩"] = result.Score,
["rank"] = result.Rank.ToString(),
["名次"] = GetRankText(result.Rank),
["danwei"] = person.ProjectName ?? "个人",
["单位"] = "上海跃动文化科技有限公司",
["参赛单位"] = "上海跃动文化科技有限公司"
["danwei"] = unitName ?? "个人",
["单位"] = unitName ?? "个人",
["参赛单位"] = unitName ?? "个人"
};
// 添加日期信息
@ -1323,7 +1355,7 @@ public class EventScoreService : BaseService<EventResult>, ITransient
/// <summary>
/// 构建教练/领队占位符数据
/// </summary>
private Dictionary<string, string> BuildPlaceholderDataForCoachLeader(EventRegistrationPerson person)
private Dictionary<string, string> BuildPlaceholderDataForCoachLeader(EventRegistrationPerson person, string unitName)
{
var data = new Dictionary<string, string>
{
@ -1332,9 +1364,9 @@ public class EventScoreService : BaseService<EventResult>, ITransient
["group"] = person.GroupName,
["组别"] = person.GroupName,
["项目组别"] = person.GroupName,
["danwei"] = person.ProjectName ?? "个人",
["单位"] = person.ProjectName ?? "个人",
["参赛单位"] = person.ProjectName ?? "个人"
["danwei"] = unitName ?? "个人",
["单位"] = unitName ?? "个人",
["参赛单位"] = unitName ?? "个人"
};
// 添加日期信息

View File

@ -8873,12 +8873,12 @@
<param name="pageType">页面类型:1-运动员页面,2-教练页面,3-领队页面</param>
<returns>允许的人员类型列表</returns>
</member>
<member name="M:YD_Event.Application.Event.EventScoreService.BuildPlaceholderData(YD_Event.Core.Entities.EventRegistrationPerson,YD_Event.Core.Entities.EventResult,System.String)">
<member name="M:YD_Event.Application.Event.EventScoreService.BuildPlaceholderData(YD_Event.Core.Entities.EventRegistrationPerson,YD_Event.Core.Entities.EventResult,System.String,System.String)">
<summary>
构建运动员占位符数据
</summary>
</member>
<member name="M:YD_Event.Application.Event.EventScoreService.BuildPlaceholderDataForCoachLeader(YD_Event.Core.Entities.EventRegistrationPerson)">
<member name="M:YD_Event.Application.Event.EventScoreService.BuildPlaceholderDataForCoachLeader(YD_Event.Core.Entities.EventRegistrationPerson,System.String)">
<summary>
构建教练/领队占位符数据
</summary>