From d93d0d6fdc54bff5313d27e02b1e34704d135944 Mon Sep 17 00:00:00 2001 From: yz <3614508250@qq.com> Date: Mon, 11 Nov 2024 18:30:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=88=90=E7=BB=A9=E6=96=B9?= =?UTF-8?q?=E9=9D=A2=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GradeController.java | 31 ++++++++++------ .../common/StatisticsController.java | 2 +- .../service/impl/ScoreRankServiceImpl.java | 36 ++++++++++++++----- .../service/impl/TrainingServiceImpl.java | 19 +++++++--- 4 files changed, 65 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/sztzjy/money_management/controller/GradeController.java b/src/main/java/com/sztzjy/money_management/controller/GradeController.java index 06fb65f..8955c19 100644 --- a/src/main/java/com/sztzjy/money_management/controller/GradeController.java +++ b/src/main/java/com/sztzjy/money_management/controller/GradeController.java @@ -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 trainingReports = trainingReportMapper.selectByExample(trainingReportExample); @@ -188,11 +197,13 @@ public class GradeController { StuTrainingExample stuTrainingExample = new StuTrainingExample(); stuTrainingExample.createCriteria().andChapterIdEqualTo(chapterId).andUserIdEqualTo(userId); List 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); diff --git a/src/main/java/com/sztzjy/money_management/controller/common/StatisticsController.java b/src/main/java/com/sztzjy/money_management/controller/common/StatisticsController.java index dc7a13f..0464092 100644 --- a/src/main/java/com/sztzjy/money_management/controller/common/StatisticsController.java +++ b/src/main/java/com/sztzjy/money_management/controller/common/StatisticsController.java @@ -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; diff --git a/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java b/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java index 87d1d62..f6fea93 100644 --- a/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java +++ b/src/main/java/com/sztzjy/money_management/service/impl/ScoreRankServiceImpl.java @@ -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); diff --git a/src/main/java/com/sztzjy/money_management/service/impl/TrainingServiceImpl.java b/src/main/java/com/sztzjy/money_management/service/impl/TrainingServiceImpl.java index d9f9e37..26cdca6 100644 --- a/src/main/java/com/sztzjy/money_management/service/impl/TrainingServiceImpl.java +++ b/src/main/java/com/sztzjy/money_management/service/impl/TrainingServiceImpl.java @@ -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();