From ee0cf5d6e8c06b4b77bae72b8de1201c1e88413a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=85=E6=88=BF?= Date: Sun, 18 Jan 2026 00:25:19 +0800 Subject: [PATCH] refactor: integrate ScheduleExportService into MartialScheduleServiceImpl Phase 2, Step 2.4: Delegate export methods to ScheduleExportService - Add IScheduleExportService dependency with @Autowired - Replace exportSchedule method body with service delegation - Replace exportScheduleTemplate2 method body with service delegation - Maintain method signatures for backward compatibility - All 443 tests passing Related to Phase 2 refactoring plan --- .../buckets/.bloomcycle.bin/xl.meta | Bin 743 -> 743 bytes .../buckets/.usage-cache.bin.bkp/xl.meta | Bin 637 -> 637 bytes .../buckets/.usage-cache.bin/xl.meta | Bin 637 -> 637 bytes .../.minio.sys/buckets/.usage.json/xl.meta | Bin 2360 -> 2360 bytes .../.usage-cache.bin.bkp/xl.meta | Bin 636 -> 636 bytes .../000000-assets/.usage-cache.bin/xl.meta | Bin 636 -> 636 bytes .../assets/.usage-cache.bin.bkp/xl.meta | Bin 575 -> 575 bytes .../buckets/assets/.usage-cache.bin/xl.meta | Bin 575 -> 575 bytes .../impl/MartialScheduleServiceImpl.java | 76 ++---------------- 9 files changed, 7 insertions(+), 69 deletions(-) diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta index b4c2943be8eb656a60a58c34ca0a983f3262369f..18459ce00677cdcc3edc5afa2c948d96731b257e 100644 GIT binary patch delta 460 zcmaFP`kZxw2G7I@V@;cqBP?;Q6{{zj7z>=q+0%Pvp;OA9N`)jw4dI-L<@Ib3H531s zPL5zyt6!2@l9+x|!Pqj@GSSf7B+Vk#)XX%^B-u1MDKXj1%-AR~G1Yl$v8W_9rT#b%D@aLZ_V#mXYkz%Rmt2{glj@wG zTac3ql)l3t09UZZOTF^17J}QR!RjT8;2tts-N=mK{?quS#RBJUwNgK=^##E#)2KT< z8N{sz+r4#@hUeT)g!DU&*5#Ms+-+Lw*Z&6$Cd-BQe(-!JQR;GfelQK$p}wh^I` delta 460 zcmaFP`kZxw22bs)C&e%AkFcx}oLxQ9#8}|bUcPYG1V5R+Ly^lqw$E{zSYFQtQ8V$6 zsrr)ClEn0z3Z|*%<|d|QiKfOzhUS(giN=-|21zMNW+ukQhG}M&7LyGb)#?|Pol8$T z&2Ub`L2C|UiDoV{OVOWxvT2XSg*kpNeNn%k+YRYjQR*;I!?36fZ@1is7k}H#QQl0a2 z3vyC{vUeB+APVY%DiUtVWItUE*N`YCGw1nf1UE?L!V`N0w@+s4B@+bqluTzABb=MW zCKETQ9>H}|U#I4V;MU1(QH?=xcgg(B-jBrpCi7(fOt^Hik<7kdTM^tmnIrdRAh@e! eHpm`9aG%L6x+4eYrYOmLo4XCcjg#3bd>H^v+n*Z% 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 0c2683b3038472c117ed5d345d4ec457949848d4..c1eaac0ad51c5f0cfbd5b26dd638093becfa901f 100644 GIT binary patch delta 177 zcmey%@|R_T2G7I@V`lZ|M_8&2YcnUB7z>mJuZ#-0=3}%-amqiYy4!9O%j?-7Y9{`% zQAkNNv@|z2OiVMhFt9L5F*h(aH8)8yFf=t!HZn^#HJKd2sHdCsKh%w}aY1HLm>P;p$o=E+?-IV<|^X$^LO_dCJ6VGQYI3ub2vSadQMs=Bz>8pGai%UWaQW8s2 ckMpoH06}K<_H*j@erits#@Nhq>TG%%0FpLF!vFvP delta 177 zcmey%@|R_T22bs)Cw}_zM_Bk+weC$cF&2Hp8V#M<1pMNHAW>l9cHeThESX>fXkdj!E cdYp%q0SGd)Q{rT@-Oo<`#@NjAPTay70OiO=bN~PV 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 e51da73644727a05a39d36c79c4071012b2f9833..69e8d708983e304229b5f18c20b4a916c4e09ce8 100644 GIT binary patch delta 192 zcmV;x06+iz1pNe%C=8KUGS#Am;t!E`e+H3Q zGSL9BF##qu zp?1z^V#@%|on9lR0fD4$b!=?J>Ss1|EhmCB*yI}d+k$KTY0agEvUvb*kh*c;wG-kJgBi3tkfht+j3zW%VRREN}k#XYyu7 qb(v!0RX&NuC7}f=i6yDWc~}{MATv89PA1#^?Bs8Z%`ET4Et~-)|4%jm diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta index 56f2fa60d74352073d7606fce03f854df305a2fa..daa48a0949ded8227f02e3b333fc8d83ee97e045 100644 GIT binary patch delta 162 zcmdlXv_oiu2G7I@W36=(M_5jLpVmLo#8^Oa!;2S1{ND9*b{7lSYG|C8SYFQtQ8V$6 zje@0FVv>=id7_0usztJarG>evp;?l#Nup_TvblwEvial)Mm4>ib8oURHZI94&B-~+ zzGhqhtoJ+JL#?m-Rqy=RGp~TfE$3#`lxrn5yIt<3CuaYcyoOO)z|6|X#LC1>&&1Mli~AB_6^iIg<=^~BogU$7sEr5mE~qC_E+tN|MkFgh|gIy5#e QG&eRkIWjjmv)2J(2UPh+4gdfE 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 dd759130925682cced5066060b3cad2d51d9dd7e..34211309391afeb10f7d41c7276d9c463bdc3244 100644 GIT binary patch delta 176 zcmeyv@`q)D2G7I@BT<|7BP{bcm*q?}F&5xetjf|7bmg7G9JYn`MUL6T@_IIinu&jG z6q1uHOp*;#jgu_WEK^gBOcRsL4a_XkjFXK`3=K@pOeaS$>gg_=S!Bf6xFoMMC+En^ zic6ww7PI}r&YqEY_4Z#&&Z5G?gr90$>NdXq55KOjFrK`b(NLyj`YNBq;*!vUl*E$M b<2|W%7RMDCzjWBSGe`47`#>ORir8zlA zUg})bK6GYPYdgzUZdQeJhj)uG3olB%b;0IS%!`OMTB`#lZ)P-rDcvs2=v>z|*W#8koZpkmTT0JcX=9smFU 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 5713ed0176e090445a37ee3e0f37eebb684c223b..a9f2e8795248d4b3909bff0c62d7183ec070afd7 100644 GIT binary patch delta 176 zcmeyv@`q)D2G7I@!~6D+kFeae^x>FjVl2QOadTZ)jBn1=T~C&jO_^^pvAmuQqGsYB z8-?T~3zKBSRO2LzG|SXfBh$nra|1JrG~;Ar6GH=2Gtq*VHZI94&B;0P zvf`2`o5gIuu(M|*UcLR-lC!9=FyW^fm%5Fw|HH5AD~u;^W;B#3nZC*=vA86(ASJOR b^*9eJ0}y0pZ$GE@>>bM_rV5tBw{@if0!~Na delta 176 zcmeyv@`q)D22bs)$4;wG9%0!c(498X#8{x6&;7AFm&eP#3*C%QXK{U*SYFQtQ8V$6 zje@y_X_}Flp{2Q5ig{A1S&CtbnPrltfrW*kL7I_)Y0BgXMm=5mKU$fLjZ5-Mb8?Qn z)VZjA=*+6tc9yN&tP1B2?-pSeUX*z2g3YIx7ZGc;RtHSp%xEZ6Y`n@RvA86(ASJOR b^*9eJ0}y0pr^HFuKR-W-seW5>f_gpjZ5-Mb8?QX zk?i()TTpP!t=@d9RB>@$*7@MK0#j!ONi4WlGjrMUg@TheGiu3{Okd@bSX>fXkdj!E cdYp%q0SGd)x1UolGQK?dC!-Tf=<+#y0LD>8D*ylh delta 177 zcmdnbvY%yw22bs)$N%il9bs`RIy-lwiLt=cPXFS|@BJ5aU1P2}&$Xs*VtG9qM9suM zHVWpZ#>vJeMrlTANlC_u2A0Mtrm4w^CWeNoDdq+i2BwoE81;1L{L%V06N()j3ONR{=(95zWV0o5~yS0|r+5pikqW=1WUV&hdliNz(M1u2Oo dsmFO(8Gs-&J0(s=WbebtKN+1^nv>J2mZe%me;dE)J*(i zqhMf>mS&n{VvwAiXl80;X=Z9@Y-C_!XqK92VU}WPnL0UwQBPNth4&g`_uqx_k~F0JOqFr~m)} delta 177 zcmdnbvY%yw22bs)$JaJ*Il>~xwYYAgiLpTao?B8~&prRPx~g2O8A}&qd%%~+(Y`n@RvA86(ASJOR c^*9eJ0}y0pr^LyK?0q=-C!-Tfb5hiA0Lm~(LI3~& 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) {