修改理论考试计算平均分

master
xiaoCJ 1 month ago
parent 8630ad3be5
commit 9dad07aa61

@ -114,32 +114,32 @@ public class ScoreRankServiceImpl implements ScoreRankService {
Integer resourceStatus = stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 9999 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus() == null ? 9999 : stuTraining.getExpTrainingCompleteStatus();
if (knowledgeStatus > 5) {
knowledgeStatus = 5;
if(knowledgeStatus>5){
knowledgeStatus=5;
}
if (resourceStatus > 5) {
resourceStatus = 5;
if(resourceStatus>5){
resourceStatus=5;
}
StudentScoreWeight studentScoreWeight = studentScoreWeightMap.get(stuTraining.getChapterName());
BigDecimal summaryScore = studentScoreWeight.getSummaryOfKnowledgeScore().multiply(BigDecimal.valueOf(knowledgeStatus)).multiply(studentScoreWeight.getSummaryOfKnowledgeWeight());
BigDecimal resourceScore = studentScoreWeight.getResourceLearningScore().multiply(BigDecimal.valueOf(resourceStatus)).multiply(studentScoreWeight.getResourceLearningWeight());
BigDecimal learningScore = BigDecimal.valueOf(0);
BigDecimal experimentalScore = BigDecimal.valueOf(0);
if (learningEvalCompleteStatus != 9999) {
if (learningEvalCompleteStatus <= 10) {
BigDecimal learningScore= BigDecimal.valueOf(0);
BigDecimal experimentalScore= BigDecimal.valueOf(0);
if(learningEvalCompleteStatus!=9999){
if(learningEvalCompleteStatus<=10){
learningScore = BigDecimal.valueOf(100).subtract(studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(learningEvalCompleteStatus))).multiply(studentScoreWeight.getLearningAssessmentWeight());
}
}
if (expStatus != 9999) {
if (expStatus <= 5) {
if(expStatus!=9999){
if(expStatus<=5){
experimentalScore = BigDecimal.valueOf(100).subtract(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus))).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
//财产分配特殊处理
if ("11".equals(stuTraining.getChapterId())) {
if (stuTraining.getExpTrainingCompleteStatus().compareTo(100) > 0) {
if("11".equals(stuTraining.getChapterId())){
if(stuTraining.getExpTrainingCompleteStatus().compareTo(100)>0){
stuTraining.setExpTrainingCompleteStatus(100);
}
experimentalScore = BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight());
experimentalScore= BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
}
//计算报告分数
@ -147,7 +147,7 @@ public class ScoreRankServiceImpl implements ScoreRankService {
TrainingReportExample trainingReportExample = new TrainingReportExample();
trainingReportExample.createCriteria().andChapterIdEqualTo(chapterId).andUserIdEqualTo(userId);
List<TrainingReport> trainingReports = trainingReportMapper.selectByExample(trainingReportExample);
BigDecimal reportScore = BigDecimal.ZERO;
BigDecimal reportScore=BigDecimal.ZERO;
if (!trainingReports.isEmpty()) {
if (trainingReports.get(0).getTeacherScore() != null) {
reportScore = trainingReports.get(0).getTeacherScore().multiply(studentScoreWeight.getReportWeight());
@ -203,10 +203,10 @@ public class ScoreRankServiceImpl implements ScoreRankService {
long countCase = synthesisPlanClientMapper.countByExample(synthesisPlanClientExample);
scoreRank.setCountCase((int) countCase);
StuSynthesisPlanScoreAndAvgScoreDto dto = trainingService.selectStuSynthesisPlanScoreList(userId, schoolId);
if (dto == null) {
StuSynthesisPlanScoreAndAvgScoreDto dto = trainingService.selectStuSynthesisPlanScoreList(userId,schoolId);
if(dto==null){
scoreRank.setZhghScore(BigDecimal.ZERO);
} else {
}else {
scoreRank.setZhghScore(dto.getAvgScore());
}
@ -402,32 +402,32 @@ public class ScoreRankServiceImpl implements ScoreRankService {
Integer resourceStatus = stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 9999 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus() == null ? 9999 : stuTraining.getExpTrainingCompleteStatus();
if (knowledgeStatus > 5) {
knowledgeStatus = 5;
if(knowledgeStatus>5){
knowledgeStatus=5;
}
if (resourceStatus > 5) {
resourceStatus = 5;
if(resourceStatus>5){
resourceStatus=5;
}
StudentScoreWeight studentScoreWeight = studentScoreWeightMap.get(stuTraining.getChapterName());
BigDecimal summaryScore = studentScoreWeight.getSummaryOfKnowledgeScore().multiply(BigDecimal.valueOf(knowledgeStatus)).multiply(studentScoreWeight.getSummaryOfKnowledgeWeight());
BigDecimal resourceScore = studentScoreWeight.getResourceLearningScore().multiply(BigDecimal.valueOf(resourceStatus)).multiply(studentScoreWeight.getResourceLearningWeight());
BigDecimal learningScore = BigDecimal.valueOf(0);
BigDecimal experimentalScore = BigDecimal.valueOf(0);
if (learningEvalCompleteStatus != 9999) {
if (learningEvalCompleteStatus <= 10) {
BigDecimal learningScore= BigDecimal.valueOf(0);
BigDecimal experimentalScore= BigDecimal.valueOf(0);
if(learningEvalCompleteStatus!=9999){
if(learningEvalCompleteStatus<=10){
learningScore = BigDecimal.valueOf(100).subtract(studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(learningEvalCompleteStatus))).multiply(studentScoreWeight.getLearningAssessmentWeight());
}
}
if (expStatus != 9999) {
if (expStatus <= 5) {
if(expStatus!=9999){
if(expStatus<=5){
experimentalScore = BigDecimal.valueOf(100).subtract(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus))).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
//财产分配特殊处理
if ("11".equals(stuTraining.getChapterId())) {
if (stuTraining.getExpTrainingCompleteStatus().compareTo(100) > 0) {
if("11".equals(stuTraining.getChapterId())){
if(stuTraining.getExpTrainingCompleteStatus().compareTo(100)>0){
stuTraining.setExpTrainingCompleteStatus(100);
}
experimentalScore = BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight());
experimentalScore= BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
}
//计算报告分数
@ -435,9 +435,9 @@ public class ScoreRankServiceImpl implements ScoreRankService {
TrainingReportExample trainingReportExample = new TrainingReportExample();
trainingReportExample.createCriteria().andChapterIdEqualTo(chapterId).andUserIdEqualTo(userId);
List<TrainingReport> trainingReports = trainingReportMapper.selectByExample(trainingReportExample);
BigDecimal reportScore = BigDecimal.ZERO;
BigDecimal reportScore=BigDecimal.ZERO;
if (!trainingReports.isEmpty()) {
if (trainingReports.get(0).getTeacherScore() != null) {
if (trainingReports.get(0).getTeacherScore() != null) { //todo 报告得分为0导致更新成绩报错这里加了一个判断
reportScore = trainingReports.get(0).getTeacherScore().multiply(studentScoreWeight.getReportWeight());
}
}
@ -492,10 +492,10 @@ public class ScoreRankServiceImpl implements ScoreRankService {
long countCase = synthesisPlanClientMapper.countByExample(synthesisPlanClientExample);
scoreRank.setCountCase((int) countCase);
StuSynthesisPlanScoreAndAvgScoreDto dto = trainingService.selectStuSynthesisPlanScoreList(userId, schoolId);
if (dto == null) {
StuSynthesisPlanScoreAndAvgScoreDto dto = trainingService.selectStuSynthesisPlanScoreList(userId,schoolId);
if(dto==null){
scoreRank.setZhghScore(BigDecimal.ZERO);
} else {
}else {
scoreRank.setZhghScore(dto.getAvgScore());
}

@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -247,7 +248,13 @@ public class TrainingServiceImpl implements TrainingService {
}
StuSynthesisPlanScoreAndAvgScoreDto dto = new StuSynthesisPlanScoreAndAvgScoreDto();
dto.setList(returnList);
dto.setAvgScore(fenzi.divide(fenmu).setScale(4, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, BigDecimal.ROUND_HALF_UP));
if (fenzi.compareTo(BigDecimal.ZERO)<=0){
System.out.println();
}
//todo 报错舍去模式有问题,修改了四舍五入模式
dto.setAvgScore(fenzi.divide(fenmu,4, RoundingMode.HALF_UP)
.multiply(BigDecimal.valueOf(100))
.setScale(2, RoundingMode.HALF_UP));
return dto;
}
}

Loading…
Cancel
Save