|
|
|
@ -1010,7 +1010,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
|
|
|
|
|
// 获取原始数据集合
|
|
|
|
|
Map<String, Object> resMap = getTeachingAndResearch(teacherDto, request);
|
|
|
|
|
Map<String, Object> detailMap = getTeacherDetail(teacherDto, request);
|
|
|
|
|
|
|
|
|
|
GpTeacherDto gpTeacherDto = new GpTeacherDto();
|
|
|
|
|
List<String> ownerIds = gpTeacherDto.getOwnerIds(); // 假设有一个 getOwnerIds 方法
|
|
|
|
|
if (ownerIds == null) {
|
|
|
|
@ -1018,9 +1018,9 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
}
|
|
|
|
|
ownerIds.add(teacherDto.getTmdId());
|
|
|
|
|
gpTeacherDto.setOwnerIds(ownerIds);
|
|
|
|
|
gpTeacherDto.setIds(ownerIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<GpTeacherVo> teachersList = new ArrayList<>();
|
|
|
|
|
teachersList = (List<GpTeacherVo>) detailMap.get("info");
|
|
|
|
|
// 遍历并提取八项数据
|
|
|
|
|
for (Map.Entry<String, Object> entry : resMap.entrySet()) {
|
|
|
|
|
String key = entry.getKey();
|
|
|
|
@ -1038,7 +1038,10 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!StringUtils.isNotEmpty(teacherDto.getTmdId())) {
|
|
|
|
|
if (!StringUtils.isNotEmpty(teacherDto.getTmdId()) && !StringUtils.isNotEmpty(teacherDto.getGrade())) {
|
|
|
|
|
Map<String, Object> detailMap = getTeacherDetail(teacherDto, request);
|
|
|
|
|
List<GpTeacherVo> teachersList = new ArrayList<>();
|
|
|
|
|
teachersList = (List<GpTeacherVo>) detailMap.get("info");
|
|
|
|
|
TData = Math.round((TData / teachersList.size()) * 100.0) / 100.0;
|
|
|
|
|
TGreen = Math.round((TGreen / teachersList.size()) * 100.0) / 100.0;
|
|
|
|
|
Lessons = Math.round((Lessons / teachersList.size()) * 100.0) / 100.0;
|
|
|
|
@ -1051,8 +1054,53 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
.map(GpTeacherVo::getId)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
gpTeacherDto.setOwnerIds(ids);
|
|
|
|
|
gpTeacherDto.setIds(ids);
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(teacherDto.getGradeName())) {
|
|
|
|
|
//调用年级相关接口数据
|
|
|
|
|
Map<String, Object> gradeMap = getTeacherGradeCount(teacherDto,request);
|
|
|
|
|
Map<String, Object> gradeList = (Map<String, Object>) gradeMap.get("gradeCount");
|
|
|
|
|
int count = (int) gradeList.get(teacherDto.getGradeName());
|
|
|
|
|
List<Map<String, Object>> teachers = (List<Map<String, Object>>) gradeMap.get("teacher");
|
|
|
|
|
List<String> tmdIds = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
for (Map<String, Object> teacher : teachers) {
|
|
|
|
|
// 获取grade列表
|
|
|
|
|
Object gradeObj = teacher.get("grade");
|
|
|
|
|
if (!(gradeObj instanceof List)) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
List<Map<String, Object>> grades = (List<Map<String, Object>>) gradeObj;
|
|
|
|
|
|
|
|
|
|
// 检查是否存在匹配的年级
|
|
|
|
|
boolean isGradeMatch = grades.stream()
|
|
|
|
|
.anyMatch(grade ->
|
|
|
|
|
teacherDto.getGradeName().equals(grade.get("gradeName"))
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 如果匹配且tmdId存在,则收集
|
|
|
|
|
if (isGradeMatch) {
|
|
|
|
|
Object tmdIdObj = teacher.get("tmdId");
|
|
|
|
|
if (tmdIdObj instanceof String) {
|
|
|
|
|
tmdIds.add((String) tmdIdObj);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(count > 0) {
|
|
|
|
|
TData = Math.round((TData / count) * 100.0) / 100.0;
|
|
|
|
|
TGreen = Math.round((TGreen / count) * 100.0) / 100.0;
|
|
|
|
|
Lessons = Math.round((Lessons / count) * 100.0) / 100.0;
|
|
|
|
|
paperCount = Math.round((paperCount / count) * 100.0) / 100.0;
|
|
|
|
|
LessonCount = Math.round((LessonCount / count) * 100.0) / 100.0;
|
|
|
|
|
DoubleGreenCount = Math.round((DoubleGreenCount / count) * 100.0) / 100.0;
|
|
|
|
|
MaterialCount = Math.round((MaterialCount / count) * 100.0) / 100.0;
|
|
|
|
|
PublicCount = Math.round((PublicCount / count) * 100.0) / 100.0;
|
|
|
|
|
}
|
|
|
|
|
gpTeacherDto.setOwnerIds(tmdIds);
|
|
|
|
|
gpTeacherDto.setIds(tmdIds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> honor = getTeacherHonors(gpTeacherDto, request);
|
|
|
|
|
List<HonorInfo> honors = new ArrayList<>();
|
|
|
|
|
Object honorsObj = honor.get("honors");
|
|
|
|
@ -1079,6 +1127,23 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
double score = honorInfo.getScore().doubleValue();
|
|
|
|
|
honorScores += score;
|
|
|
|
|
}
|
|
|
|
|
//研修分数获取
|
|
|
|
|
double TrainingScore = 0;
|
|
|
|
|
Map<String, Object> training = getTeacherTraining(gpTeacherDto, request);
|
|
|
|
|
List<Map<String, Object>> trainings = (List<Map<String, Object>>) training.get("studyScores");
|
|
|
|
|
if (trainings != null) {
|
|
|
|
|
// 计算总分数
|
|
|
|
|
for (Map<String, Object> trainingMap : trainings) {
|
|
|
|
|
Object scoreObj = trainingMap.get("score");
|
|
|
|
|
if (scoreObj instanceof Integer) {
|
|
|
|
|
int score = (int) scoreObj;
|
|
|
|
|
TrainingScore += score;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (TrainingScore > 0) {
|
|
|
|
|
TrainingScore = Math.round(TrainingScore / gpTeacherDto.getIds().size() * 100.0) / 100.0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 基础分计算
|
|
|
|
|
double honorScore = (honorScores > 0) ? 100.0 - 20.0 / honorScores : 60;
|
|
|
|
@ -1115,7 +1180,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
result.put("teachingScore", totalScore);
|
|
|
|
|
result.put("researchScore", totalTeachingScore);
|
|
|
|
|
result.put("honorScore", honorScore);
|
|
|
|
|
result.put("trainingScore", 0);
|
|
|
|
|
result.put("trainingScore", TrainingScore);
|
|
|
|
|
result.put("scientificScore", 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1242,6 +1307,19 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
}
|
|
|
|
|
return gradeMap;
|
|
|
|
|
}
|
|
|
|
|
public Map<String, Object> getTeacherTraining(GpTeacherDto gpTeacherDto, HttpServletRequest request) {
|
|
|
|
|
|
|
|
|
|
Map<String, Object> gradeMap;
|
|
|
|
|
try {
|
|
|
|
|
String url = "open_study/find";
|
|
|
|
|
gpTeacherDto.setGrant_type("study_average_score");
|
|
|
|
|
gradeMap = GroupUtil.getTeacherInfo(gpTeacherDto,new GroupUtil(env), request, url);
|
|
|
|
|
}catch (Exception e) {
|
|
|
|
|
throw new ServiceException(ErrorCode.SYSTEM_ERROR.getCode(), "国培数据转换错误");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return gradeMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static @NotNull Map<String, Integer> getStringIntegerMap(List<School.Subject> subjects, List<SchoolTeacher> schoolTeachers) {
|
|
|
|
|
Map<String, String> subjectNameMap = new HashMap<>();
|
|
|
|
|