diff --git a/src/main/java/org/springblade/modules/martial/service/impl/MartialScheduleServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/MartialScheduleServiceImpl.java index 23a6bdc..2805a11 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/MartialScheduleServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/MartialScheduleServiceImpl.java @@ -839,8 +839,33 @@ public class MartialScheduleServiceImpl extends ServiceImpl participantVOs = - participants.stream().map(p -> { + List participantVOs; + + // 集体项目(projectType=2)按organization分组,只返回一条记录代表整个队伍 + if (group.getProjectType() != null && group.getProjectType() == 2) { + // 按organization分组,取每组第一个作为代表 + java.util.Map 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