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.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);
|
||||||
|
|||||||
Reference in New Issue
Block a user