From 9a538d194969c30e58a55801d548c25f3d010a61 Mon Sep 17 00:00:00 2001 From: "hhb@hotmail.com" Date: Wed, 21 May 2025 15:41:05 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TeacherServiceImpl.java | 78 ++++++++++++++----- 1 file changed, 57 insertions(+), 21 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 3031314..b585672 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 @@ -670,11 +670,11 @@ 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 && teacher.getTeachingAge() > 0) { +// totalTeachingAge += teacher.getTeachingAge(); +// validTeachers++; +// } // 在遍历教师时统计 if (teacher.getTeachingAge() != null) { @@ -714,13 +714,13 @@ public class TeacherServiceImpl implements TeacherService { teachersList.add(teacherInfo); } - // 计算平均教龄(新增逻辑) + /* // 计算平均教龄(新增逻辑) int averageTeachingAge = validTeachers > 0 ? - Math.round((float) totalTeachingAge / validTeachers) : 0; + Math.round((float) totalTeachingAge / validTeachers) : 0;*/ result.put("teacher", teachersList); result.put("gradeCount", gradeCount); - result.put("teachingAge", averageTeachingAge); // 新增字段 + //result.put("teachingAge", averageTeachingAge); // 新增字段 result.put("teachingAgeDistribution", teachingAgeDistribution); } catch (Exception e) { @@ -738,6 +738,11 @@ public class TeacherServiceImpl implements TeacherService { Map> degreesMap = new HashMap<>(); Map> subjectsMap= new HashMap<>(); Map> teachingAgeMap = new HashMap<>(); + Map> averageTeachingAgeMap = new HashMap<>(); + //Map averageTeachingAgeMap = new HashMap<>(); + // 新增教龄统计变量 + int totalTeachingAge = 0; + int validTeachers = 0; List teachers = new ArrayList<>(); String code = String.format(PK.PTTEACHER, teacherDto.getCode()); try { @@ -751,6 +756,7 @@ public class TeacherServiceImpl implements TeacherService { Map degreeCount = new HashMap<>(); Map subjectCount = new HashMap<>(); Map teachingAgeCount = new HashMap<>(); + Map averageTeachingAgeCount = new HashMap<>(); if(StringUtils.isNotEmpty(teacherDto.getGrade()) && StringUtils.isNotEmpty(teacherDto.getSubjectId())) { for (PtTeacherInfo teacher : ptTeacherInfos) { if(teacher.getGrade() != null &&teacher.getSubjectIds() != null &&teacher.getGrade().contains(teacherDto.getGrade()) && teacher.getSubjectIds().contains(teacherDto.getSubjectId())) { @@ -778,15 +784,22 @@ public class TeacherServiceImpl implements TeacherService { int age = teacher.getTeachingAge(); String teachingAge = ""; if (age >= 0 && age <= 5) { - teachingAge = "0-5"; + teachingAge = "0-5年"; } else if (age > 5 && age <= 10) { - teachingAge = "5-10"; + teachingAge = "5-10年"; } else if (age > 10 && age <= 15) { - teachingAge = "10-15"; + teachingAge = "10-15年"; } Long count = teachingAgeCount.getOrDefault(teachingAge, 0L); teachingAgeCount.put(teachingAge, count + 1); + + totalTeachingAge += teacher.getTeachingAge(); + validTeachers++; + //计算评价教龄 } + // 计算平均教龄(新增逻辑) + long averageTeachingAge = validTeachers > 0 ? Math.round((float) totalTeachingAge / validTeachers) : 0; + averageTeachingAgeCount.put("averageTeachingAge", averageTeachingAge); /*if(teacher.getGroups() != null) { for (GpTeacherVo.IdNameCode group : teacher.getGroups()) { Long count = GroupCount.getOrDefault(group.getName(), 0L); @@ -824,15 +837,22 @@ public class TeacherServiceImpl implements TeacherService { int age = teacher.getTeachingAge(); String teachingAge = ""; if (age >= 0 && age <= 5) { - teachingAge = "0-5"; + teachingAge = "0-5年"; } else if (age > 5 && age <= 10) { - teachingAge = "5-10"; + teachingAge = "5-10年"; } else if (age > 10 && age <= 15) { - teachingAge = "10-15"; + teachingAge = "10-15年"; } Long count = teachingAgeCount.getOrDefault(teachingAge, 0L); teachingAgeCount.put(teachingAge, count + 1); + + totalTeachingAge += teacher.getTeachingAge(); + validTeachers++; + //计算评价教龄 } + // 计算平均教龄(新增逻辑) + long averageTeachingAge = validTeachers > 0 ? Math.round((float) totalTeachingAge / validTeachers) : 0; + averageTeachingAgeCount.put("averageTeachingAge", averageTeachingAge); } } }else if(StringUtils.isNotEmpty(teacherDto.getGrade()) && StringUtils.isEmpty(teacherDto.getSubjectId())) { @@ -865,15 +885,22 @@ public class TeacherServiceImpl implements TeacherService { int age = teacher.getTeachingAge(); String teachingAge = ""; if (age >= 0 && age <= 5) { - teachingAge = "0-5"; + teachingAge = "0-5年"; } else if (age > 5 && age <= 10) { - teachingAge = "5-10"; + teachingAge = "5-10年"; } else if (age > 10 && age <= 15) { - teachingAge = "10-15"; + teachingAge = "10-15年"; } Long count = teachingAgeCount.getOrDefault(teachingAge, 0L); teachingAgeCount.put(teachingAge, count + 1); + + totalTeachingAge += teacher.getTeachingAge(); + validTeachers++; + //计算评价教龄 } + // 计算平均教龄(新增逻辑) + long averageTeachingAge = validTeachers > 0 ? Math.round((float) totalTeachingAge / validTeachers) : 0; + averageTeachingAgeCount.put(teacherDto.getGrade(), averageTeachingAge); } } @@ -907,15 +934,22 @@ public class TeacherServiceImpl implements TeacherService { int age = teacher.getTeachingAge(); String teachingAge = ""; if (age >= 0 && age <= 5) { - teachingAge = "0-5"; + teachingAge = "0-5年"; } else if (age > 5 && age <= 10) { - teachingAge = "5-10"; + teachingAge = "5-10年"; } else if (age > 10 && age <= 15) { - teachingAge = "10-15"; + teachingAge = "10-15年"; } Long count = teachingAgeCount.getOrDefault(teachingAge, 0L); teachingAgeCount.put(teachingAge, count + 1); + + totalTeachingAge += teacher.getTeachingAge(); + validTeachers++; + //计算评价教龄 } + // 计算平均教龄(新增逻辑) + long averageTeachingAge = validTeachers > 0 ? Math.round((float) totalTeachingAge / validTeachers) : 0; + averageTeachingAgeCount.put("all", averageTeachingAge); } } @@ -923,7 +957,9 @@ public class TeacherServiceImpl implements TeacherService { gradesMap.put("grade", gradeCount); degreesMap.put("degree", degreeCount); subjectsMap.put("subject", subjectCount); - teachingAgeMap.put("group", teachingAgeCount); + teachingAgeMap.put("teachingAge", teachingAgeCount); + averageTeachingAgeMap.put("averageTeachingAge", averageTeachingAgeCount); + distributionList.add(averageTeachingAgeMap); distributionList.add(gradesMap); distributionList.add(degreesMap); distributionList.add(subjectsMap);