fix: 修复调度页面集体项目显示重复数据问题

集体项目(projectType=2)按organization分组,只返回一条记录代表整个队伍

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
Z-WICK
2026-01-26 12:13:32 +08:00
co-authored by factory-droid[bot]
parent 0a90f7e079
commit bf1ab59c9b
@@ -839,8 +839,33 @@ public class MartialScheduleServiceImpl extends ServiceImpl<MartialScheduleMappe
groupVO.setDetailId(detail.getId()); groupVO.setDetailId(detail.getId());
groupVO.setProjectType(group.getProjectType()); groupVO.setProjectType(group.getProjectType());
List<org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant> participantVOs = List<org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant> participantVOs;
participants.stream().map(p -> {
// 集体项目(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 = org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant pVO =
new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant(); new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant();
pVO.setId(p.getId()); pVO.setId(p.getId());
@@ -852,6 +877,7 @@ public class MartialScheduleServiceImpl extends ServiceImpl<MartialScheduleMappe
pVO.setPerformanceOrder(p.getPerformanceOrder()); pVO.setPerformanceOrder(p.getPerformanceOrder());
return pVO; return pVO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
}
groupVO.setParticipants(participantVOs); groupVO.setParticipants(participantVOs);
groups.add(groupVO); groups.add(groupVO);