From cb51543aff0d82243034cc06f5171ecb939c66fa Mon Sep 17 00:00:00 2001 From: wanghu Date: Tue, 25 Aug 2026 14:41:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/com/ComSchTreeService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/com/ComSchTreeService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/com/ComSchTreeService.java index 9e8e135..303175c 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/com/ComSchTreeService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/com/ComSchTreeService.java @@ -1152,7 +1152,7 @@ public class ComSchTreeService implements IComSchTreeService { // 高职学制长度(按学校专业最大学制,与 getHigherSchGradeClassTree 保持一致;无则默认3) Integer majorLeng = schDicMajorsRepository.findMaxSchsystemLengBySchId(schId).orElse(0); - if (majorLeng == null || majorLeng <= 0) { + if (majorLeng <= 0) { majorLeng = 3; } @@ -1169,7 +1169,14 @@ public class ComSchTreeService implements IComSchTreeService { .collect(Collectors.groupingBy(SchClass::getEnrollYear)); // 4. 确定年份范围 - Integer currentYear = baseYearTermService.getNowYearTerm().getYear(); + // getNowYearTerm 在"当前时间不在任何学年区间"时抛 DException,此处降级为返回空树,避免 500 + Integer currentYear; + try { + currentYear = baseYearTermService.getNowYearTerm().getYear(); + } catch (DException e) { + root.setChildren(Collections.emptyList()); + return root; + } Integer minYear = classByYear.keySet().stream().min(Integer::compareTo).orElse(null); if (minYear == null) { root.setChildren(Collections.emptyList());