From 736c21bb213b9836a475526ea620f3aa36b58999 Mon Sep 17 00:00:00 2001 From: wanghu Date: Thu, 20 Aug 2026 14:36:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bschclassmanage/enums/AcademicStage.java | 67 +++++++++++++++++++ .../service/impl/SchBinSchsystemService.java | 20 ++++-- .../service/impl/com/UserBaseTreeService.java | 44 ++++++++++++ .../bschclassmanage/utils/RedisConstants.java | 2 +- 4 files changed, 126 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/yunhai/bschclassmanage/service/impl/com/UserBaseTreeService.java diff --git a/src/main/java/com/yunhai/bschclassmanage/enums/AcademicStage.java b/src/main/java/com/yunhai/bschclassmanage/enums/AcademicStage.java index 86ab7f9..4d2a3c2 100644 --- a/src/main/java/com/yunhai/bschclassmanage/enums/AcademicStage.java +++ b/src/main/java/com/yunhai/bschclassmanage/enums/AcademicStage.java @@ -1,5 +1,6 @@ package com.yunhai.bschclassmanage.enums; +import com.yunhai.bschclassmanage.model.vo.SelectIntVO; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -7,6 +8,8 @@ import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Getter @NoArgsConstructor @@ -22,8 +25,72 @@ public enum AcademicStage private Integer key; private String value; + + AcademicStage(int key, String value) + { + this.key = key; + this.value = value; + } + + public int getId() + { + return key; + } + + public void setId(int id) + { + this.key = id; + } + + public String getName() + { + return value; + } + + public void setName(String name) + { + this.value = name; + } + public static List list() { return new ArrayList<>(EnumSet.allOf(AcademicStage.class)); } + + public static List select() { + List list= list().stream() + .map(type -> new SelectIntVO(type.getId(), type.getName())) + .collect(Collectors.toList()); + return new ArrayList<>(list); + } + + public static Map map() + { + return list().stream().collect(Collectors.toMap(AcademicStage::getId, QuestionType->QuestionType)); + } + + public static String nameById(int id) { + for (AcademicStage type : list()) { + if (type.getId() == id) return type.getName(); + } + return null; + } + public static Integer getIdByName(String name) { + for (AcademicStage type : list()) { + if (type.getName().equals(name)) return type.getId(); + } + return null; + } + public static AcademicStage getById(int id) + { + for (AcademicStage na : list()) + { + if (na.getId() == id) + { + return na; + } + } + + return null; + } } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java index bb087e1..2301586 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/SchBinSchsystemService.java @@ -249,21 +249,29 @@ public class SchBinSchsystemService implements ISchBinSchsystemService { //创建校长室 sendUserBaseService.addGroup("校长室", teaGroup.getId(),1,NodeType.NORMAL,schId); - //获取学制 + //获取学段 + List schsystemIds= getSchBinSchsystemIds(schId); - Map schsystemMap=getSchBinSchsystemMap(schId); + List baseSchsystems=baseSchsystemService.getSchsystemList().stream().filter(s->schsystemIds.contains(s.getId())).collect(Collectors.toList()); + List schBinSchsystemList= getSchBinSchsystemList(schId); if(newList.size()==1) { }else if(newList.size()>1) { Integer scort=1; - for (SchBinSchsystem schsystem:newList) { + for (SchBinSchsystem schsystem:schBinSchsystemList) { //添加学段组 - BoaGroup sectionGroup= sendUserBaseService.addGroup(schsystemMap.get(schsystem.getSchSystemId()),stuGroup.getId(),scort,NodeType.SECTION,schId); - schsystem.setGroupId(sectionGroup.getId()); - scort++; + Optional baseSchsystemFirst= baseSchsystems.stream().filter(s->Objects.equals( schsystem.getSchSystemId(),s.getId())).findFirst(); + if(baseSchsystemFirst.isPresent()) + { + String academicStageName= AcademicStage.nameById(baseSchsystemFirst.get().getType()); + BoaGroup sectionGroup= sendUserBaseService.addGroup(academicStageName,stuGroup.getId(),scort,NodeType.SECTION,schId); + schsystem.setGroupId(sectionGroup.getId()); + scort++; + } + } }else { throw new DException("请选择学制!"); diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/com/UserBaseTreeService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/com/UserBaseTreeService.java new file mode 100644 index 0000000..2550e06 --- /dev/null +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/com/UserBaseTreeService.java @@ -0,0 +1,44 @@ +package com.yunhai.bschclassmanage.service.impl.com; + +import com.alibaba.fastjson.JSON; +import com.yunhai.bschclassmanage.Repository.SchClassRepository; +import com.yunhai.bschclassmanage.Repository.SchDicMajorsRepository; +import com.yunhai.bschclassmanage.Repository.SchTeacherGroupRepository; +import com.yunhai.bschclassmanage.entity.*; +import com.yunhai.bschclassmanage.enums.AcademicStage; +import com.yunhai.bschclassmanage.enums.NodeType; +import com.yunhai.bschclassmanage.enums.SchType; +import com.yunhai.bschclassmanage.model.vo.SchSystemTreeVO; +import com.yunhai.bschclassmanage.model.vo.SelectIntVO; +import com.yunhai.bschclassmanage.service.*; +import com.yunhai.bschclassmanage.utils.RedisConstants; +import com.yunhai.bschclassmanage.utils.RedisUtil; +import com.yunhai.platform.openapi.client.YschBaseOpenApi; +import com.yunhai.platform.utils.exception.DException; +import com.yunhai.platform.utils.model.BoaGroup; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class UserBaseTreeService { + + @Autowired + private RedisUtil redisUtil; + + /** + * 清除全部缓存(Redis 组树/学校列表 + 本地内存缓存) + * 调用时机:组树、学校组织信息变更后 + */ + public void clearCache() { + redisUtil.del(RedisConstants.SYSTEM_GROUP_TREE); + } + + + +} diff --git a/src/main/java/com/yunhai/bschclassmanage/utils/RedisConstants.java b/src/main/java/com/yunhai/bschclassmanage/utils/RedisConstants.java index 4b24905..7d23ce2 100644 --- a/src/main/java/com/yunhai/bschclassmanage/utils/RedisConstants.java +++ b/src/main/java/com/yunhai/bschclassmanage/utils/RedisConstants.java @@ -49,7 +49,7 @@ public class RedisConstants { //---------------------------学校------------------------------------------------------- //学校树 - public static final String SCHOOL_TREE =CachePrefix+ ".sch_tree"; + //public static final String SCHOOL_TREE =CachePrefix+ ".sch_tree"; //学校列表 public static final String SCHOOL_LIST =CachePrefix+ ".sch_list";