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 55b1a33..e751ac6 100644 --- a/src/main/java/com/sztzjy/money_management/controller/GradeController.java +++ b/src/main/java/com/sztzjy/money_management/controller/GradeController.java @@ -185,6 +185,18 @@ public class GradeController { stuTrainingDto.setReportCompleteStatus("已提交"); stuTrainingDto.setReportScore(trainingReports.get(0).getTeacherScore()); } + if("11".equals(chapterId)){ //特殊处理财产分配 + stuTrainingDto.setExpTrainingCompleteStatus(null); + stuTrainingDto.setExpTrainingDefautRule(null); + if(stuTraining.getExpTrainingCompleteStatus()==null){ + stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(0)); + }else if(stuTraining.getExpTrainingCompleteStatus()<=100){ + stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus())); + }else { + stuTrainingDto.setCaseStuScore(BigDecimal.valueOf(100)); + } + } + return new ResultEntity<>(HttpStatus.OK, "得分情况展示", stuTrainingDto); } 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 cd0fe24..6346ebb 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 @@ -95,7 +95,7 @@ public class StatisticsController { //根据schoolID 查询score_rank表第一名和最后一名 并根据userId 查询本学生的成绩 ScoreRankExample scoreRankExample = new ScoreRankExample(); scoreRankExample.createCriteria().andClassIdEqualTo(classId).andUpdateDateEqualTo(scoreRankService.getNowDate().trim()); - scoreRankExample.setOrderByClause("khal_score desc"); + scoreRankExample.setOrderByClause("total_score desc"); List scoreRankList = scoreRankMapper.selectByExample(scoreRankExample); if (scoreRankList.isEmpty()) { //代表成绩还没更新 scoreRankService.doRankOne(schoolId); @@ -125,9 +125,9 @@ public class StatisticsController { trendDto.setTitle(title); List scores = new ArrayList<>(); List dateList = new ArrayList<>(); - for (int i = 0; i < scoreList.size(); i++) { + for (int i = scoreList.size()-1; i >= 0; i--) { ScoreRank scoreRank = scoreList.get(i); - scores.add(scoreRank.getKhalScore()); + scores.add(scoreRank.getTotalScore()); dateList.add(scoreRank.getUpdateDate()); } trendDto.setScores(scores); diff --git a/src/main/java/com/sztzjy/money_management/controller/common/UserController.java b/src/main/java/com/sztzjy/money_management/controller/common/UserController.java index 63a7121..3c1cee6 100644 --- a/src/main/java/com/sztzjy/money_management/controller/common/UserController.java +++ b/src/main/java/com/sztzjy/money_management/controller/common/UserController.java @@ -152,7 +152,7 @@ public class UserController { public Map getClassList(@RequestParam String schoolId){ Map map=new HashMap<>(); UserInfoExample userInfoExample = new UserInfoExample(); - userInfoExample.createCriteria().andSchoolIdEqualTo(schoolId); + userInfoExample.createCriteria().andSchoolIdEqualTo(schoolId).andRoleIdEqualTo(4); List userInfos = userInfoMapper.selectByExample(userInfoExample); for (int i = 0; i < userInfos.size(); i++) { UserInfo userInfo = userInfos.get(i); diff --git a/src/main/java/com/sztzjy/money_management/mapper/SynthesisPlanScoreMapper.java b/src/main/java/com/sztzjy/money_management/mapper/SynthesisPlanScoreMapper.java index 5422708..54d2a8d 100644 --- a/src/main/java/com/sztzjy/money_management/mapper/SynthesisPlanScoreMapper.java +++ b/src/main/java/com/sztzjy/money_management/mapper/SynthesisPlanScoreMapper.java @@ -55,4 +55,7 @@ public interface SynthesisPlanScoreMapper { @Select("SELECT count(userid) from synthesis_plan_score where userid=#{userId}") Integer CountScoreSizeByUserId(String userId); + + @Select("SELECT count(userid) from synthesis_plan_score where userid=#{userId} and caseid=#{caseid}") + Integer CountScoreSizeByUserIdAndCaseId(String userId, String caseid); } \ No newline at end of file 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 1c70ef5..0777812 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 @@ -108,6 +108,12 @@ 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(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()); @@ -122,6 +128,13 @@ public class ScoreRankServiceImpl implements ScoreRankService { 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){ + stuTraining.setExpTrainingCompleteStatus(100); + } + experimentalScore= BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight()); + } } BigDecimal sum = summaryScore.add(resourceScore).add(learningScore).add(experimentalScore); if ("风险测评".equals(stuTraining.getChapterName())) { @@ -374,6 +387,12 @@ 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(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()); @@ -388,6 +407,13 @@ public class ScoreRankServiceImpl implements ScoreRankService { 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){ + stuTraining.setExpTrainingCompleteStatus(100); + } + experimentalScore= BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight()); + } } BigDecimal sum = summaryScore.add(resourceScore).add(learningScore).add(experimentalScore); if ("风险测评".equals(stuTraining.getChapterName())) { 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 63dbc16..37e700d 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,12 +53,18 @@ 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 ? 99999 : stuTraining.getLearningEvalCompleteStatus(); + Integer learningEvalCompleteStatus = stuTraining.getLearningEvalCompleteStatus()== null ? 9999 : stuTraining.getLearningEvalCompleteStatus(); Integer expStatus = stuTraining.getExpTrainingCompleteStatus()==null?9999:stuTraining.getExpTrainingCompleteStatus(); StudentScoreWeight studentScoreWeight = studentScoreWeightMap.get(stuTraining.getChapterName()); if(studentScoreWeight==null){ continue; } + if(knowledgeStatus>5){ + knowledgeStatus=5; + } + if(resourceStatus>5){ + resourceStatus=5; + } 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); @@ -69,9 +75,16 @@ public class TrainingServiceImpl implements TrainingService { } } if(expStatus!=9999){ - if(learningEvalCompleteStatus<=5){ + 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){ + stuTraining.setExpTrainingCompleteStatus(100); + } + experimentalScore= BigDecimal.valueOf(stuTraining.getExpTrainingCompleteStatus()).multiply(studentScoreWeight.getExperimentalTrainingWeight()); + } } //设置实验报告情况及得分 @@ -221,6 +234,11 @@ public class TrainingServiceImpl implements TrainingService { BigDecimal trainingTotalScore=synthesisPlanScoreMapper.selectTotalScoreByUserIdAndCaseId(userId,client.getCaseid()); if(trainingTotalScore==null){ trainingTotalScore=BigDecimal.ZERO; + }else { + //查询zhgh考核点数量 + Integer zhghSize=synthesisPlanScoreMapper.CountScoreSizeByUserIdAndCaseId(userId,client.getCaseid()); + BigDecimal zhghTotalScore=BigDecimal.valueOf(zhghSize).multiply(BigDecimal.valueOf(2)); + trainingTotalScore = trainingTotalScore.divide(zhghTotalScore, 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); } returnDto.setTrainingTotalScore(trainingTotalScore); returnDto.setScoreWight(zhghWeight);