|
|
@ -1331,7 +1331,8 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
gpTeacherDto.setOwnerIds(ownerIds);
|
|
|
|
gpTeacherDto.setOwnerIds(ownerIds);
|
|
|
|
gpTeacherDto.setIds(ownerIds);
|
|
|
|
gpTeacherDto.setIds(ownerIds);
|
|
|
|
gpTeacherDto.setSchoolId(teacherDto.getCode());
|
|
|
|
gpTeacherDto.setSchoolId(teacherDto.getCode());
|
|
|
|
|
|
|
|
gpTeacherDto.setStartTime(teacherDto.getStartTime());
|
|
|
|
|
|
|
|
gpTeacherDto.setEndTime(teacherDto.getEndTime());
|
|
|
|
|
|
|
|
|
|
|
|
// 遍历并提取八项数据
|
|
|
|
// 遍历并提取八项数据
|
|
|
|
for (Map.Entry<String, Object> entry : resMap.entrySet()) {
|
|
|
|
for (Map.Entry<String, Object> entry : resMap.entrySet()) {
|
|
|
@ -1447,6 +1448,44 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
gpTeacherDto.setOwnerIds(tmdIds);
|
|
|
|
gpTeacherDto.setOwnerIds(tmdIds);
|
|
|
|
gpTeacherDto.setIds(tmdIds);
|
|
|
|
gpTeacherDto.setIds(tmdIds);
|
|
|
|
}*/
|
|
|
|
}*/
|
|
|
|
|
|
|
|
gpTeacherDto.setOwnerId(teacherDto.getCode());
|
|
|
|
|
|
|
|
Map<String, Object> statics = getTeacherStatis(gpTeacherDto, request);
|
|
|
|
|
|
|
|
//科研总次数
|
|
|
|
|
|
|
|
int totalResearcherCount = 0;
|
|
|
|
|
|
|
|
double staticScores = 0;
|
|
|
|
|
|
|
|
List<Map<String, Object>> researcherCounts = (List<Map<String, Object>>) statics.get("researcherCounts");
|
|
|
|
|
|
|
|
if (researcherCounts != null) {
|
|
|
|
|
|
|
|
for (Map<String, Object> map : researcherCounts) {
|
|
|
|
|
|
|
|
for (String id : gpTeacherDto.getOwnerIds()) {
|
|
|
|
|
|
|
|
if (map.get("id").equals(id)) {
|
|
|
|
|
|
|
|
totalResearcherCount += (int) map.get("count");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
double averageCount = totalResearcherCount > 0 ? (double) totalResearcherCount / gpTeacherDto.getOwnerIds().size() : 0;
|
|
|
|
|
|
|
|
if (averageCount <= 0) {
|
|
|
|
|
|
|
|
staticScores = 60;
|
|
|
|
|
|
|
|
} else if (averageCount <= 3) {
|
|
|
|
|
|
|
|
// 分段插值:0→60, 1→80, 2→90, 3→100
|
|
|
|
|
|
|
|
int lower = (int) Math.floor(averageCount);
|
|
|
|
|
|
|
|
int upper = (int) Math.ceil(averageCount);
|
|
|
|
|
|
|
|
double ratio = averageCount - lower;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义各区间的基础分和增幅
|
|
|
|
|
|
|
|
int[] baseScores = {60, 80, 90, 100};
|
|
|
|
|
|
|
|
double score;
|
|
|
|
|
|
|
|
if (lower >= 3) {
|
|
|
|
|
|
|
|
score = 100;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
score = baseScores[lower] + (baseScores[upper] - baseScores[lower]) * ratio;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
staticScores = score;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
staticScores = 100; // ≥3次满分
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//保留2位小数
|
|
|
|
|
|
|
|
staticScores = Math.round(staticScores * 100) / 100.0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> honor = getTeacherHonors(gpTeacherDto, request);
|
|
|
|
Map<String, Object> honor = getTeacherHonors(gpTeacherDto, request);
|
|
|
@ -1544,7 +1583,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
result.put("researchScore", totalTeachingScore);
|
|
|
|
result.put("researchScore", totalTeachingScore);
|
|
|
|
result.put("honorScore", honorScore);
|
|
|
|
result.put("honorScore", honorScore);
|
|
|
|
result.put("trainingScore", TrainingScore);
|
|
|
|
result.put("trainingScore", TrainingScore);
|
|
|
|
result.put("scientificScore", 60);
|
|
|
|
result.put("scientificScore", staticScores);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
} catch (Exception ex) {
|
|
|
@ -2085,10 +2124,37 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
gpTeacherDto.setOwnerIds(teacherIds);
|
|
|
|
gpTeacherDto.setOwnerIds(teacherIds);
|
|
|
|
gpTeacherDto.setIds(teacherIds);
|
|
|
|
gpTeacherDto.setIds(teacherIds);
|
|
|
|
gpTeacherDto.setSchoolId(teacherDto.getCode());
|
|
|
|
gpTeacherDto.setSchoolId(teacherDto.getCode());
|
|
|
|
|
|
|
|
gpTeacherDto.setStartTime(teacherDto.getStartTime());
|
|
|
|
|
|
|
|
gpTeacherDto.setEndTime(teacherDto.getEndTime());
|
|
|
|
|
|
|
|
gpTeacherDto.setOwnerId(teacherDto.getCode());
|
|
|
|
//获取所有老师对应的荣誉数量
|
|
|
|
//获取所有老师对应的荣誉数量
|
|
|
|
Map<String,Double> honorScore = getHonorScore(gpTeacherDto, request, teacherIds);
|
|
|
|
Map<String,Double> honorScore = getHonorScore(gpTeacherDto, request, teacherIds);
|
|
|
|
//处理研修数据
|
|
|
|
//处理研修数据
|
|
|
|
Map<String,Double> trainingScore = extracted(request, gpTeacherDto, teacherIds);
|
|
|
|
Map<String,Double> trainingScore = extracted(request, gpTeacherDto, teacherIds);
|
|
|
|
|
|
|
|
//处理科研数据
|
|
|
|
|
|
|
|
Map<String,Double> staticScore = new HashMap<>();
|
|
|
|
|
|
|
|
Map<String, Object> statics = getTeacherStatis(gpTeacherDto, request);
|
|
|
|
|
|
|
|
Map<String,Integer> researcherCount = new HashMap<>();
|
|
|
|
|
|
|
|
//科研总次数
|
|
|
|
|
|
|
|
List<Map<String, Object>> researcherCounts = (List<Map<String, Object>>) statics.get("researcherCounts");
|
|
|
|
|
|
|
|
if (researcherCounts != null) {
|
|
|
|
|
|
|
|
for (Map<String, Object> map : researcherCounts) {
|
|
|
|
|
|
|
|
for (String id : gpTeacherDto.getOwnerIds()) {
|
|
|
|
|
|
|
|
if (id.equals(map.get("id"))) {
|
|
|
|
|
|
|
|
researcherCount.put(id, (Integer) map.get("count"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (String id : teacherIds) {
|
|
|
|
|
|
|
|
// 根据科研次数计算得分
|
|
|
|
|
|
|
|
int[] scoreMap = {60, 80, 90, 100}; // 索引对应次数0、1、2、≥3
|
|
|
|
|
|
|
|
int personalCount = researcherCount.getOrDefault(id, 0);
|
|
|
|
|
|
|
|
int index = Math.min(personalCount, 3); // 限制最大索引为3
|
|
|
|
|
|
|
|
double staticScores = scoreMap[index];
|
|
|
|
|
|
|
|
staticScore.put(id, staticScores);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!ptTeacherInfos.isEmpty()) {
|
|
|
|
if (!ptTeacherInfos.isEmpty()) {
|
|
|
|
for (PtTeacherInfo ptTeacherInfo : ptTeacherInfos) {
|
|
|
|
for (PtTeacherInfo ptTeacherInfo : ptTeacherInfos) {
|
|
|
@ -2103,7 +2169,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
ptTeacher.put("researchScore", researchScore.get(ptTeacherInfo.getId()));
|
|
|
|
ptTeacher.put("researchScore", researchScore.get(ptTeacherInfo.getId()));
|
|
|
|
ptTeacher.put("honorScore", honorScore.get(ptTeacherInfo.getId()));
|
|
|
|
ptTeacher.put("honorScore", honorScore.get(ptTeacherInfo.getId()));
|
|
|
|
ptTeacher.put("trainingScore", trainingScore.get(ptTeacherInfo.getId()));
|
|
|
|
ptTeacher.put("trainingScore", trainingScore.get(ptTeacherInfo.getId()));
|
|
|
|
ptTeacher.put("scientificScore", 60);
|
|
|
|
ptTeacher.put("scientificScore", staticScore.get(ptTeacherInfo.getId()));
|
|
|
|
// ptTeacher.put("teachingScore", ptTeacherInfo.getTeachingScore());
|
|
|
|
// ptTeacher.put("teachingScore", ptTeacherInfo.getTeachingScore());
|
|
|
|
// ptTeacher.put("researchScore", ptTeacherInfo.getResearchScore());
|
|
|
|
// ptTeacher.put("researchScore", ptTeacherInfo.getResearchScore());
|
|
|
|
// ptTeacher.put("honorScore", ptTeacherInfo.getHonorScore());
|
|
|
|
// ptTeacher.put("honorScore", ptTeacherInfo.getHonorScore());
|
|
|
@ -2568,6 +2634,20 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return gradeMap;
|
|
|
|
return gradeMap;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Map<String, Object> getTeacherStatis(GpTeacherDto gpTeacherDto, HttpServletRequest request) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> statisMap;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
String url = "open_statis/pt_winteach";
|
|
|
|
|
|
|
|
gpTeacherDto.setGrant_type("home");
|
|
|
|
|
|
|
|
statisMap = GroupUtil.getTeacherInfo(gpTeacherDto,new GroupUtil(env), request, url);
|
|
|
|
|
|
|
|
}catch (Exception e) {
|
|
|
|
|
|
|
|
throw new ServiceException(ErrorCode.SYSTEM_ERROR.getCode(), "国培数据转换错误");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return statisMap;
|
|
|
|
|
|
|
|
}
|
|
|
|
public Map<String, Object> getTeacherTraining(GpTeacherDto gpTeacherDto, HttpServletRequest request) {
|
|
|
|
public Map<String, Object> getTeacherTraining(GpTeacherDto gpTeacherDto, HttpServletRequest request) {
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> gradeMap;
|
|
|
|
Map<String, Object> gradeMap;
|
|
|
|