diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta index b4c2943..18459ce 100644 Binary files a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta and b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta index 0c2683b..c1eaac0 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta index e51da73..69e8d70 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta index 56f2fa6..daa48a0 100644 Binary files a/minio_data/.minio.sys/buckets/.usage.json/xl.meta and b/minio_data/.minio.sys/buckets/.usage.json/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta index dd75913..3421130 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta index 5713ed0..a9f2e87 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta index 6c64e0a..c604737 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta index 12501b2..d12cda3 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta differ 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 a6206af..0897f93 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 @@ -1,5 +1,7 @@ package org.springblade.modules.martial.service.impl; +import org.springblade.modules.martial.service.IScheduleExportService; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.modules.martial.excel.ScheduleExportExcel; @@ -49,6 +51,9 @@ public class MartialScheduleServiceImpl extends ServiceImpl exportSchedule(Long competitionId) { - List exportList = new ArrayList<>(); - - // 使用与 getScheduleResult 相同的数据源 - List details = scheduleGroupMapper.selectScheduleGroupDetails(competitionId); - - if (details.isEmpty()) { - return exportList; - } - - // 按分组ID分组,然后按 displayOrder 排序 - Map> groupMap = details.stream() - .collect(Collectors.groupingBy(ScheduleGroupDetailVO::getGroupId)); - - // 获取分组的排序顺序 - List sortedGroupIds = details.stream() - .collect(Collectors.toMap( - ScheduleGroupDetailVO::getGroupId, - d -> d.getDisplayOrder() != null ? d.getDisplayOrder() : 999, - (a, b) -> a - )) - .entrySet().stream() - .sorted(Map.Entry.comparingByValue()) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - - // 按排序顺序遍历分组 - for (Long groupId : sortedGroupIds) { - List groupDetails = groupMap.get(groupId); - if (groupDetails == null || groupDetails.isEmpty()) { - continue; - } - - ScheduleGroupDetailVO firstDetail = groupDetails.get(0); - - // 过滤出有参赛者的记录,并按出场顺序排序 - List participants = groupDetails.stream() - .filter(d -> d.getParticipantId() != null) - .sorted(Comparator.comparing(d -> d.getPerformanceOrder() != null ? d.getPerformanceOrder() : 999)) - .collect(Collectors.toList()); - - if (participants.isEmpty()) { - // 没有参赛者,创建一条基础记录 - ScheduleExportExcel excel = new ScheduleExportExcel(); - excel.setScheduleDate(firstDetail.getScheduleDate() != null ? firstDetail.getScheduleDate() : ""); - excel.setTimeSlot(firstDetail.getTimeSlot()); - excel.setVenueName(firstDetail.getVenueName()); - excel.setProjectName(firstDetail.getGroupName()); - excel.setCategory(firstDetail.getCategory()); - excel.setStatus("completed".equals(firstDetail.getScheduleStatus()) ? "已完成" : "草稿"); - exportList.add(excel); - } else { - // 为每个参赛者创建导出记录 - for (ScheduleGroupDetailVO detail : participants) { - ScheduleExportExcel excel = new ScheduleExportExcel(); - excel.setScheduleDate(detail.getScheduleDate() != null ? detail.getScheduleDate() : ""); - excel.setTimeSlot(detail.getTimeSlot()); - excel.setVenueName(detail.getVenueName()); - excel.setProjectName(detail.getGroupName()); - excel.setCategory(detail.getCategory()); - excel.setAthleteName(detail.getPlayerName()); - excel.setTeamName(detail.getOrganization()); - excel.setSortOrder(detail.getPerformanceOrder()); - excel.setStatus(detail.getCheckInStatus() != null ? detail.getCheckInStatus() : "未签到"); - exportList.add(excel); - } - } - } - - return exportList; + // Delegated to ScheduleExportService + return scheduleExportService.exportSchedule(competitionId); } @Override public List exportScheduleTemplate2(Long competitionId, Long venueId) {