fix: 修复调度页面集体项目显示重复数据问题
集体项目(projectType=2)按organization分组,只返回一条记录代表整个队伍 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
factory-droid[bot]
parent
0a90f7e079
commit
bf1ab59c9b
+28
-2
@@ -839,8 +839,33 @@ public class MartialScheduleServiceImpl extends ServiceImpl<MartialScheduleMappe
|
||||
groupVO.setDetailId(detail.getId());
|
||||
groupVO.setProjectType(group.getProjectType());
|
||||
|
||||
List<org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant> participantVOs =
|
||||
participants.stream().map(p -> {
|
||||
List<org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant> participantVOs;
|
||||
|
||||
// 集体项目(projectType=2)按organization分组,只返回一条记录代表整个队伍
|
||||
if (group.getProjectType() != null && group.getProjectType() == 2) {
|
||||
// 按organization分组,取每组第一个作为代表
|
||||
java.util.Map<String, MartialScheduleParticipant> orgMap = new java.util.LinkedHashMap<>();
|
||||
for (MartialScheduleParticipant p : participants) {
|
||||
String org = p.getOrganization() != null ? p.getOrganization() : "未知单位";
|
||||
if (!orgMap.containsKey(org)) {
|
||||
orgMap.put(org, p);
|
||||
}
|
||||
}
|
||||
participantVOs = orgMap.values().stream().map(p -> {
|
||||
org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant pVO =
|
||||
new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant();
|
||||
pVO.setId(p.getId());
|
||||
pVO.setParticipantId(p.getParticipantId());
|
||||
pVO.setOrganization(p.getOrganization());
|
||||
pVO.setPlayerName(p.getOrganization()); // 集体项目显示单位名称
|
||||
pVO.setProjectName(p.getProjectName());
|
||||
pVO.setCategory(p.getCategory());
|
||||
pVO.setPerformanceOrder(p.getPerformanceOrder());
|
||||
return pVO;
|
||||
}).collect(Collectors.toList());
|
||||
} else {
|
||||
// 单人项目,正常返回所有参赛者
|
||||
participantVOs = participants.stream().map(p -> {
|
||||
org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant pVO =
|
||||
new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant();
|
||||
pVO.setId(p.getId());
|
||||
@@ -852,6 +877,7 @@ public class MartialScheduleServiceImpl extends ServiceImpl<MartialScheduleMappe
|
||||
pVO.setPerformanceOrder(p.getPerformanceOrder());
|
||||
return pVO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
groupVO.setParticipants(participantVOs);
|
||||
groups.add(groupVO);
|
||||
|
||||
Reference in New Issue
Block a user