From f1d453b93fa86f756934994473d3e9f20fabd056 Mon Sep 17 00:00:00 2001 From: "hhb@hotmail.com" Date: Fri, 23 May 2025 11:46:07 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=A4=84=E7=90=86=E5=AD=A6=E6=AE=B5?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E4=B8=8B=E7=9A=84=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TeacherServiceImpl.java | 73 ++++++++++++++----- 1 file changed, 53 insertions(+), 20 deletions(-) diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java index 466e93e..e2bed48 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java @@ -116,6 +116,7 @@ public class TeacherServiceImpl implements TeacherService { public List> getTeacherList(TeacherDto teacherDto) { List> result = new ArrayList<>(); Map teacherCountMap = new HashMap<>(); + Map gradeCount = new LinkedHashMap<>(); //Map groupCountMap = new HashMap<>(); String code = String.format(PK.PTTEACHER, teacherDto.getCode()); //List groupLists = getCachedGroupLists(code); @@ -139,6 +140,17 @@ public class TeacherServiceImpl implements TeacherService { } + // 收集所有学段的年级名称(去重并保持顺序) + Set allGradeNames = new LinkedHashSet<>(); + for (School.Period p : periods) { + List grades = p.getGrades(); + if (grades != null) { + allGradeNames.addAll(grades); + } + } + // 初始化年级统计 + allGradeNames.forEach(grade -> gradeCount.put(grade, 0)); + Map updatedSubjectCountMap = getStringIntegerMap(subjects, ptTeacherInfos); // 创建一个映射,用于存储每个职位的教师数量 @@ -152,6 +164,21 @@ public class TeacherServiceImpl implements TeacherService { // 更新每个职位的教师数量 jobCountMap.put(job, jobCountMap.getOrDefault(job, 0) + 1); } + + // 构建年级信息 + List grades = teacher.getGrade(); + List gradeNameList = teacher.getGradeName(); + + if (grades != null && gradeNameList != null) { + int size = Math.min(grades.size(), gradeNameList.size()); + for (int i = 0; i < size; i++) { + // 统计年级人数 + String gradeName = gradeNameList.get(i); + if (gradeCount.containsKey(gradeName)) { + gradeCount.put(gradeName, gradeCount.get(gradeName) + 1); + } + } + } } jobCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty()); Map periodCountMap = getPeriodCountMap(periods,ptTeacherInfos); @@ -164,6 +191,7 @@ public class TeacherServiceImpl implements TeacherService { result.add(jobCountMap); result.add(periodCountMap); result.add(teacherCountMap); + result.add(gradeCount); //result.add(groupCountMap); return result; } @@ -650,27 +678,26 @@ public class TeacherServiceImpl implements TeacherService { teachingAgeDistribution.put("6-10", 0); teachingAgeDistribution.put("11+", 0); - List periods = schoolRepository.findPeriodById(teacherDto.getCode()); - if (periods.isEmpty()) { + List period = schoolRepository.findPeriodById(teacherDto.getCode(), teacherDto.getPeriodId()); + if (period.isEmpty()) { throw new ServiceException(ErrorCode.PARAMS_ERROR); } - - // 收集所有学段的年级名称(去重并保持顺序) - Set allGradeNames = new LinkedHashSet<>(); - for (School.Period p : periods) { - List grades = p.getGrades(); - if (grades != null) { - allGradeNames.addAll(grades); - } - } - // 初始化年级统计 - allGradeNames.forEach(grade -> gradeCount.put(grade, 0)); + School.Period periodModel = period.get(0); + List gradeNames = periodModel.getGrades(); + // 初始化年级统计(按示例顺序) + //List gradeNames = Arrays.asList("一年级", "二年级", "三年级", "四年级", "五年级"); + gradeNames.forEach(grade -> gradeCount.put(grade, 0)); try { - List teachers = ptTeacherRepository.findAdminTeacher( + List teachers = ptTeacherRepository.findAllTeacher( teacherDto.getCode(), - String.format(PK.PTTEACHER, teacherDto.getCode()) + String.format(PK.PTTEACHER, teacherDto.getCode()), + teacherDto.getPeriodId() ); + teachers = teachers.stream() + .filter(teacher -> teacherDto.periodId.equals(teacher.getPeriodId())) + .collect(Collectors.toList()); + for (PtTeacherInfo teacher : teachers) { // 构建教师基本信息 Map teacherInfo = new HashMap<>(); @@ -678,6 +705,12 @@ public class TeacherServiceImpl implements TeacherService { teacherInfo.put("name", teacher.getName()); teacherInfo.put("periodId", teacher.getPeriodId()); +// // 收集教龄数据(新增逻辑) +// if (teacher.getTeachingAge() != null && teacher.getTeachingAge() > 0) { +// totalTeachingAge += teacher.getTeachingAge(); +// validTeachers++; +// } + // 在遍历教师时统计 if (teacher.getTeachingAge() != null) { if (teacher.getTeachingAge() <= 5) teachingAgeDistribution.put("0-5", teachingAgeDistribution.getOrDefault("0-5", 0) + 1); @@ -2301,11 +2334,11 @@ public class TeacherServiceImpl implements TeacherService { List teachers = ptTeacherInfos.stream() .peek(ptTeacherInfo -> { Map scores = getTeacherOfCapabilityAssessment(teacherDto, request); - /*ptTeacherInfo.setTeachingScore(parseScore(scores.get("teachingScore"), 0.0)); - ptTeacherInfo.setResearchScore(parseScore(scores.get("researchScore"), 0.0)); - ptTeacherInfo.setHonorScore(parseScore(scores.get("honorScore"), 0.0)); - ptTeacherInfo.setTrainingScore(parseScore(scores.get("trainingScore"), 0.0)); - ptTeacherInfo.setScientificScore(parseScore(scores.get("scientificScore"), 0.0));*/ +// ptTeacherInfo.setTeachingScore(parseScore(scores.get("teachingScore"), 0.0)); +// ptTeacherInfo.setResearchScore(parseScore(scores.get("researchScore"), 0.0)); +// ptTeacherInfo.setHonorScore(parseScore(scores.get("honorScore"), 0.0)); +// ptTeacherInfo.setTrainingScore(parseScore(scores.get("trainingScore"), 0.0)); +// ptTeacherInfo.setScientificScore(parseScore(scores.get("scientificScore"), 0.0)); }) .collect(Collectors.toList());