update 调整getCount

develop
hhb@hotmail.com 1 day ago
parent f074f604be
commit 3912b2b6f2

@ -110,11 +110,11 @@ public class TeacherServiceImpl implements TeacherService {
public List<Map<String, Integer>> getTeacherList(TeacherDto teacherDto) { public List<Map<String, Integer>> getTeacherList(TeacherDto teacherDto) {
List<Map<String, Integer>> result = new ArrayList<>(); List<Map<String, Integer>> result = new ArrayList<>();
Map<String, Integer> teacherCountMap = new HashMap<>(); Map<String, Integer> teacherCountMap = new HashMap<>();
Map<String, Integer> groupCountMap = new HashMap<>(); //Map<String, Integer> groupCountMap = new HashMap<>();
String code = teacherDto.getCode(); String code = String.format(PK.PTTEACHER, teacherDto.getCode());
List<GroupList> groupLists = getCachedGroupLists(code); //List<GroupList> groupLists = getCachedGroupLists(code);
List<SchoolTeacher> schoolTeachers = getTeacherInfos(code); List<PtTeacherInfo> ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code);
teacherCountMap.put("教师总人数", schoolTeachers.size()); teacherCountMap.put("教师总人数", ptTeacherInfos.size());
List<School> school = schoolRepository.findBaseById(teacherDto.getCode()); List<School> school = schoolRepository.findBaseById(teacherDto.getCode());
List<School.Subject> subjects = new ArrayList<>(); List<School.Subject> subjects = new ArrayList<>();
List<School.Period> periods = new ArrayList<>(); List<School.Period> periods = new ArrayList<>();
@ -133,13 +133,13 @@ public class TeacherServiceImpl implements TeacherService {
} }
Map<String, Integer> updatedSubjectCountMap = getStringIntegerMap(subjects, schoolTeachers); Map<String, Integer> updatedSubjectCountMap = getStringIntegerMap(subjects, ptTeacherInfos);
// 创建一个映射,用于存储每个职位的教师数量 // 创建一个映射,用于存储每个职位的教师数量
Map<String, Integer> jobCountMap = new HashMap<>(); Map<String, Integer> jobCountMap = new HashMap<>();
// 遍历所有教师 // 遍历所有教师
for (SchoolTeacher teacher : schoolTeachers) { for (PtTeacherInfo teacher : ptTeacherInfos) {
// 获取教师的职位 // 获取教师的职位
String job = teacher.getJob(); String job = teacher.getJob();
if (job != null) { if (job != null) {
@ -148,17 +148,17 @@ public class TeacherServiceImpl implements TeacherService {
} }
} }
jobCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty()); jobCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty());
Map<String, Integer> periodCountMap = getPeriodCountMap(periods,schoolTeachers); Map<String, Integer> periodCountMap = getPeriodCountMap(periods,ptTeacherInfos);
for (GroupList groupList : groupLists) { // for (GroupList groupList : groupLists) {
groupCountMap.put(groupList.getName(), groupList.getMembers().size()); // groupCountMap.put(groupList.getName(), groupList.getMembers().size());
} // }
periodCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty()); periodCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty());
updatedSubjectCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty()); updatedSubjectCountMap.entrySet().removeIf(entry -> entry.getKey().isEmpty());
result.add(updatedSubjectCountMap); result.add(updatedSubjectCountMap);
result.add(jobCountMap); result.add(jobCountMap);
result.add(periodCountMap); result.add(periodCountMap);
result.add(teacherCountMap); result.add(teacherCountMap);
result.add(groupCountMap); //result.add(groupCountMap);
return result; return result;
} }
@ -1987,7 +1987,7 @@ public class TeacherServiceImpl implements TeacherService {
return gradeMap; return gradeMap;
} }
private static @NotNull Map<String, Integer> getStringIntegerMap(List<School.Subject> subjects, List<SchoolTeacher> schoolTeachers) { private static @NotNull Map<String, Integer> getStringIntegerMap(List<School.Subject> subjects, List<PtTeacherInfo> ptTeacherInfos) {
Map<String, String> subjectNameMap = new HashMap<>(); Map<String, String> subjectNameMap = new HashMap<>();
for (School.Subject subject : subjects) { for (School.Subject subject : subjects) {
subjectNameMap.put(subject.getId(), subject.getName()); subjectNameMap.put(subject.getId(), subject.getName());
@ -1995,7 +1995,7 @@ public class TeacherServiceImpl implements TeacherService {
Map<String, Integer> subjectCountMap = new HashMap<>(); Map<String, Integer> subjectCountMap = new HashMap<>();
// 遍历所有教师 // 遍历所有教师
for (SchoolTeacher teacher : schoolTeachers) { for (PtTeacherInfo teacher : ptTeacherInfos) {
// 获取教师的科目列表 // 获取教师的科目列表
List<String> subjectIds = teacher.getSubjectIds(); List<String> subjectIds = teacher.getSubjectIds();
if (subjectIds != null) { if (subjectIds != null) {
@ -2017,12 +2017,12 @@ public class TeacherServiceImpl implements TeacherService {
return updatedSubjectCountMap; return updatedSubjectCountMap;
} }
private static @NotNull Map<String, Integer> getPeriodCountMap(List<School.Period> periods,List<SchoolTeacher> schoolTeachers) { private static @NotNull Map<String, Integer> getPeriodCountMap(List<School.Period> periods,List<PtTeacherInfo> ptTeacherInfos) {
Map<String, Integer> periodCountMap = new HashMap<>(); Map<String, Integer> periodCountMap = new HashMap<>();
for (School.Period period : periods) { for (School.Period period : periods) {
for ( School.Subject subject : period.getSubjects()) { for ( School.Subject subject : period.getSubjects()) {
for (SchoolTeacher schoolTeacher : schoolTeachers) { for (PtTeacherInfo schoolTeacher : ptTeacherInfos) {
if (schoolTeacher.getSubjectIds().contains(subject.getId())) { if (schoolTeacher.getSubjectIds().contains(subject.getId())) {
periodCountMap.put(period.getId(), periodCountMap.getOrDefault(period.getId(), 0) + 1); periodCountMap.put(period.getId(), periodCountMap.getOrDefault(period.getId(), 0) + 1);
} }

@ -23,7 +23,7 @@ public interface SchoolRepository extends CosmosRepository<School, String> {
List<School.Semester> findSemestersById(@Param("schoolId") String schoolId, @Param("periodId") String periodId); List<School.Semester> findSemestersById(@Param("schoolId") String schoolId, @Param("periodId") String periodId);
@Query("select value p.subjects from School as s join p in s.period where s.id = @schoolId and s.code = 'Base' and p.id = @periodId") @Query("select value p.subjects from School as s join p in s.period where s.id = @schoolId and s.code = 'Base' and p.id = @periodId")
List<School.Subject> findSubjectById(@Param("schoolId") String schoolId, @Param("periodId") String periodId); List<School.Subject> findSubjectById(@Param("schoolId") String schoolId, @Param("periodId") String periodId);
@Query("select * from School as s where s.id = @schoolId and s.code = 'Base' ") @Query("select s.period,s.subjects from School as s where s.id = @schoolId and s.code = 'Base' ")
List<School> findBaseById(@Param("schoolId") String schoolId); List<School> findBaseById(@Param("schoolId") String schoolId);
School findSchoolByIdAndCode(String schoolId, String code); School findSchoolByIdAndCode(String schoolId, String code);

Loading…
Cancel
Save