修复成绩方面的BUG

master
yz 4 months ago
parent 1bc53921ff
commit d93d0d6fdc

@ -145,27 +145,36 @@ public class GradeController {
//设置返回对象完成情况
stuTrainingDto.setKnowledgeSummaryCompleteStatus(stuTraining.getKnowledgeSummaryCompleteStatus() == null ? 0 : stuTraining.getKnowledgeSummaryCompleteStatus());
stuTrainingDto.setResourceLearningCompleteStatus(stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus());
stuTrainingDto.setLearningEvalCompleteStatus(stuTraining.getLearningEvalCompleteStatus() == null ? 0 : stuTraining.getLearningEvalCompleteStatus());
stuTrainingDto.setExpTrainingCompleteStatus(stuTraining.getExpTrainingCompleteStatus() == null ? 0 : stuTraining.getExpTrainingCompleteStatus());
stuTrainingDto.setLearningEvalCompleteStatus(stuTraining.getLearningEvalCompleteStatus());
stuTrainingDto.setExpTrainingCompleteStatus(stuTraining.getExpTrainingCompleteStatus());
TrainingReportExample trainingReportExample = new TrainingReportExample();
trainingReportExample.createCriteria().andChapterIdEqualTo(chapterId).andUserIdEqualTo(userId);
//设置返回对象得分 根据学生实训表完成情况 设置得分
stuTrainingDto.setKnowledgeSummaryScore(studentScoreWeight.getSummaryOfKnowledgeScore().multiply(BigDecimal.valueOf(stuTraining.getKnowledgeSummaryCompleteStatus() == null ? 0 : stuTraining.getKnowledgeSummaryCompleteStatus())));
stuTrainingDto.setResourceLearningScore(studentScoreWeight.getResourceLearningScore().multiply(BigDecimal.valueOf(stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus())));
stuTrainingDto.setLearningEvalScore(studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(stuTraining.getLearningEvalCompleteStatus() == null ? 0 : stuTraining.getLearningEvalCompleteStatus())));
stuTrainingDto.setCaseStuScore(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus() == null ? 0 : stuTraining.getExpTrainingCompleteStatus())));
if(stuTrainingDto.getLearningEvalCompleteStatus()==null){
stuTrainingDto.setLearningEvalScore(BigDecimal.valueOf(0));
}else {
stuTrainingDto.setLearningEvalScore(BigDecimal.valueOf(100).subtract(studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(stuTraining.getLearningEvalCompleteStatus()))));
if (stuTrainingDto.getLearningEvalScore().compareTo(BigDecimal.valueOf(0)) < 0) {
stuTrainingDto.setLearningEvalScore(BigDecimal.valueOf(0));
}
}
if(stuTrainingDto.getExpTrainingCompleteStatus()==null){
stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(0));
}else {
stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(100).subtract(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus() == null ? 0 : stuTraining.getExpTrainingCompleteStatus()))));
if (stuTrainingDto.getCaseStuScore().compareTo(BigDecimal.valueOf(0)) < 0) {
stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(0));
}
}
if (stuTrainingDto.getKnowledgeSummaryScore().compareTo(BigDecimal.valueOf(100)) > 0) {
stuTrainingDto.setKnowledgeSummaryScore(BigDecimal.valueOf(100));
}
if (stuTrainingDto.getResourceLearningScore().compareTo(BigDecimal.valueOf(100)) > 0) {
stuTrainingDto.setResourceLearningScore(BigDecimal.valueOf(100));
}
if (stuTrainingDto.getLearningEvalScore().compareTo(BigDecimal.valueOf(100)) > 0) {
stuTrainingDto.setLearningEvalScore(BigDecimal.valueOf(100));
}
if (stuTrainingDto.getCaseStuScore().compareTo(BigDecimal.valueOf(100)) > 0) {
stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(100));
}
//设置实验报告情况及得分
List<TrainingReport> trainingReports = trainingReportMapper.selectByExample(trainingReportExample);
@ -188,11 +197,13 @@ public class GradeController {
StuTrainingExample stuTrainingExample = new StuTrainingExample();
stuTrainingExample.createCriteria().andChapterIdEqualTo(chapterId).andUserIdEqualTo(userId);
List<StuTrainingWithBLOBs> list = trainingMapper.selectByExampleWithBLOBs(stuTrainingExample);
Chapter chapter = chapterMapper.selectByPrimaryKey(chapterId);
if (list.isEmpty()) { //该用户第一次进入这个章节的知识概要 新增
StuTrainingWithBLOBs stuTraining = new StuTrainingWithBLOBs();
String uuid = IdUtil.randomUUID();
stuTraining.setTrainingId(uuid);
stuTraining.setChapterId(chapterId);
stuTraining.setChapterName(chapter.getChapterName());
stuTraining.setUserId(userId);
trainingMapper.insert(stuTraining);
return new ResultEntity<>(uuid);

@ -214,7 +214,7 @@ public class StatisticsController {
}
}
if(!scoreRankList.isEmpty()){
avgScore=avgScore.divide(BigDecimal.valueOf(scoreRankList.size()));
avgScore = avgScore.divide(BigDecimal.valueOf(scoreRankList.size()), 2, BigDecimal.ROUND_HALF_UP);
}
if(minScore.compareTo(BigDecimal.valueOf(1000))==0){
minScore=BigDecimal.ZERO;

@ -106,13 +106,23 @@ public class ScoreRankServiceImpl implements ScoreRankService {
}
Integer knowledgeStatus = stuTraining.getKnowledgeSummaryCompleteStatus() == null ? 0 : stuTraining.getKnowledgeSummaryCompleteStatus();
Integer resourceStatus = stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 0 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus() == null ? 0 : stuTraining.getExpTrainingCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 9999 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus() == null ? 9999 : stuTraining.getExpTrainingCompleteStatus();
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 = studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(learningEvalCompleteStatus)).multiply(studentScoreWeight.getLearningAssessmentWeight());
BigDecimal experimentalScore = studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus)).multiply(studentScoreWeight.getExperimentalTrainingWeight());
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){
experimentalScore = BigDecimal.valueOf(100).subtract(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus))).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
}
BigDecimal sum = summaryScore.add(resourceScore).add(learningScore).add(experimentalScore);
if ("风险测评".equals(stuTraining.getChapterName())) {
scoreRank.setFxcp(sum);
@ -353,13 +363,23 @@ public class ScoreRankServiceImpl implements ScoreRankService {
}
Integer knowledgeStatus = stuTraining.getKnowledgeSummaryCompleteStatus() == null ? 0 : stuTraining.getKnowledgeSummaryCompleteStatus();
Integer resourceStatus = stuTraining.getResourceLearningCompleteStatus() == null ? 0 : stuTraining.getResourceLearningCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 0 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus() == null ? 0 : stuTraining.getExpTrainingCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus() == null ? 9999 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus() == null ? 9999 : stuTraining.getExpTrainingCompleteStatus();
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 = studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(learningEvalCompleteStatus)).multiply(studentScoreWeight.getLearningAssessmentWeight());
BigDecimal experimentalScore = studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus)).multiply(studentScoreWeight.getExperimentalTrainingWeight());
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){
experimentalScore = BigDecimal.valueOf(100).subtract(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus))).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
}
BigDecimal sum = summaryScore.add(resourceScore).add(learningScore).add(experimentalScore);
if ("风险测评".equals(stuTraining.getChapterName())) {
scoreRank.setFxcp(sum);

@ -53,16 +53,27 @@ public class TrainingServiceImpl implements TrainingService {
StuTraining stuTraining = stuTrainingList.get(i);
Integer knowledgeStatus = stuTraining.getKnowledgeSummaryCompleteStatus() == null ? 0 : stuTraining.getKnowledgeSummaryCompleteStatus();
Integer resourceStatus = stuTraining.getResourceLearningCompleteStatus()== null ? 0 : stuTraining.getResourceLearningCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus()== null ? 0 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus()==null?0:stuTraining.getExpTrainingCompleteStatus();
Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus()== null ? 99999 : stuTraining.getLearningEvalCompleteStatus();
Integer expStatus = stuTraining.getExpTrainingCompleteStatus()==null?9999:stuTraining.getExpTrainingCompleteStatus();
StudentScoreWeight studentScoreWeight = studentScoreWeightMap.get(stuTraining.getChapterName());
if(studentScoreWeight==null){
continue;
}
BigDecimal summaryScore = studentScoreWeight.getSummaryOfKnowledgeScore().multiply(BigDecimal.valueOf(knowledgeStatus)).multiply(studentScoreWeight.getSummaryOfKnowledgeWeight());
BigDecimal resourceScore = studentScoreWeight.getResourceLearningScore().multiply(BigDecimal.valueOf(resourceStatus)).multiply(studentScoreWeight.getResourceLearningWeight());
BigDecimal learningScore = studentScoreWeight.getLearningAssessmentScore().multiply(BigDecimal.valueOf(learningEvalCompleteStatus)).multiply(studentScoreWeight.getLearningAssessmentWeight());
BigDecimal experimentalScore = studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus)).multiply(studentScoreWeight.getExperimentalTrainingWeight());
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(learningEvalCompleteStatus<=5){
experimentalScore =BigDecimal.valueOf(100).subtract(studentScoreWeight.getExperimentalTrainingScore().multiply(BigDecimal.valueOf(expStatus))).multiply(studentScoreWeight.getExperimentalTrainingWeight());
}
}
//设置实验报告情况及得分
BigDecimal reportScore=BigDecimal.ZERO;
TrainingReportExample trainingReportExample = new TrainingReportExample();

Loading…
Cancel
Save