|
|
|
@ -116,6 +116,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
public List<Map<String, Integer>> getTeacherList(TeacherDto teacherDto) {
|
|
|
|
|
List<Map<String, Integer>> result = new ArrayList<>();
|
|
|
|
|
Map<String, Integer> teacherCountMap = new HashMap<>();
|
|
|
|
|
Map<String, Integer> gradeCount = new LinkedHashMap<>();
|
|
|
|
|
//Map<String, Integer> groupCountMap = new HashMap<>();
|
|
|
|
|
String code = String.format(PK.PTTEACHER, teacherDto.getCode());
|
|
|
|
|
//List<GroupList> groupLists = getCachedGroupLists(code);
|
|
|
|
@ -139,6 +140,17 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 收集所有学段的年级名称(去重并保持顺序)
|
|
|
|
|
Set<String> allGradeNames = new LinkedHashSet<>();
|
|
|
|
|
for (School.Period p : periods) {
|
|
|
|
|
List<String> grades = p.getGrades();
|
|
|
|
|
if (grades != null) {
|
|
|
|
|
allGradeNames.addAll(grades);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 初始化年级统计
|
|
|
|
|
allGradeNames.forEach(grade -> gradeCount.put(grade, 0));
|
|
|
|
|
|
|
|
|
|
Map<String, Integer> updatedSubjectCountMap = getStringIntegerMap(subjects, ptTeacherInfos);
|
|
|
|
|
|
|
|
|
|
// 创建一个映射,用于存储每个职位的教师数量
|
|
|
|
@ -152,6 +164,21 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
// 更新每个职位的教师数量
|
|
|
|
|
jobCountMap.put(job, jobCountMap.getOrDefault(job, 0) + 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 构建年级信息
|
|
|
|
|
List<String> grades = teacher.getGrade();
|
|
|
|
|
List<String> 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<String, Integer> 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<School.Period> periods = schoolRepository.findPeriodById(teacherDto.getCode());
|
|
|
|
|
if (periods.isEmpty()) {
|
|
|
|
|
List<School.Period> period = schoolRepository.findPeriodById(teacherDto.getCode(), teacherDto.getPeriodId());
|
|
|
|
|
if (period.isEmpty()) {
|
|
|
|
|
throw new ServiceException(ErrorCode.PARAMS_ERROR);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 收集所有学段的年级名称(去重并保持顺序)
|
|
|
|
|
Set<String> allGradeNames = new LinkedHashSet<>();
|
|
|
|
|
for (School.Period p : periods) {
|
|
|
|
|
List<String> grades = p.getGrades();
|
|
|
|
|
if (grades != null) {
|
|
|
|
|
allGradeNames.addAll(grades);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 初始化年级统计
|
|
|
|
|
allGradeNames.forEach(grade -> gradeCount.put(grade, 0));
|
|
|
|
|
School.Period periodModel = period.get(0);
|
|
|
|
|
List<String> gradeNames = periodModel.getGrades();
|
|
|
|
|
// 初始化年级统计(按示例顺序)
|
|
|
|
|
//List<String> gradeNames = Arrays.asList("一年级", "二年级", "三年级", "四年级", "五年级");
|
|
|
|
|
gradeNames.forEach(grade -> gradeCount.put(grade, 0));
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
List<PtTeacherInfo> teachers = ptTeacherRepository.findAdminTeacher(
|
|
|
|
|
List<PtTeacherInfo> 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<String, Object> 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<PtTeacherInfo> teachers = ptTeacherInfos.stream()
|
|
|
|
|
.peek(ptTeacherInfo -> {
|
|
|
|
|
Map<String, Object> 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());
|
|
|
|
|