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 a06ceb0..b829692 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 @@ -841,19 +841,47 @@ public class MartialScheduleServiceImpl extends ServiceImpl participantVOs; - // 所有项目都返回全部参赛者 - 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()); - pVO.setParticipantId(p.getParticipantId()); - pVO.setOrganization(p.getOrganization()); - pVO.setPlayerName(p.getPlayerName()); - pVO.setProjectName(p.getProjectName()); - pVO.setCategory(p.getCategory()); - pVO.setPerformanceOrder(p.getPerformanceOrder()); - return pVO; - }).collect(Collectors.toList()); + // 集体项目按单位分组,选手姓名合并显示 + if (group.getProjectType() != null && group.getProjectType() == 2) { + java.util.Map> orgMap = new java.util.LinkedHashMap<>(); + for (MartialScheduleParticipant p : participants) { + String org = p.getOrganization() != null ? p.getOrganization() : "未知单位"; + orgMap.computeIfAbsent(org, k -> new ArrayList<>()).add(p); + } + participantVOs = new ArrayList<>(); + int order = 1; + for (java.util.Map.Entry> entry : orgMap.entrySet()) { + List teamMembers = entry.getValue(); + MartialScheduleParticipant first = teamMembers.get(0); + String playerNames = teamMembers.stream() + .map(MartialScheduleParticipant::getPlayerName) + .collect(Collectors.joining("、")); + org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant pVO = + new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant(); + pVO.setId(first.getId()); + pVO.setParticipantId(first.getParticipantId()); + pVO.setOrganization(first.getOrganization()); + pVO.setPlayerName(playerNames); + pVO.setProjectName(first.getProjectName()); + pVO.setCategory(first.getCategory()); + pVO.setPerformanceOrder(order++); + participantVOs.add(pVO); + } + } 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()); + pVO.setParticipantId(p.getParticipantId()); + pVO.setOrganization(p.getOrganization()); + pVO.setPlayerName(p.getPlayerName()); + pVO.setProjectName(p.getProjectName()); + pVO.setCategory(p.getCategory()); + pVO.setPerformanceOrder(p.getPerformanceOrder()); + return pVO; + }).collect(Collectors.toList()); + } groupVO.setParticipants(participantVOs); groups.add(groupVO);