diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java index 5390d56..4198e69 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java +++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java @@ -65,6 +65,9 @@ public class StuRateServiceImpl implements StuRateService { @Autowired StuUserMapper userMapper; + @Autowired + private StuScoreCenterMapper stuScoreCenterMapper; + @@ -358,6 +361,14 @@ public class StuRateServiceImpl implements StuRateService { creditEnhanceMeasureMapper.updateByPrimaryKeySelective(creditEnhanceMeasureList.get(0)); + + + + //先将成绩写入stu_score_center 根据重新实训次数(最多两次) 累加到对应成绩,求取平均分,然后再写入用户表对应的总成绩 累加总分 + + enhanceMeasureWriteInByAutoRating(creditEnhanceMeasureList.get(0)); + + return new ResultEntity<>(HttpStatus.OK,"保存成功",scoreByAuto); } @@ -376,10 +387,98 @@ public class StuRateServiceImpl implements StuRateService { enhanceMeasure.setErrorNumber(20-scoreByAuto); creditEnhanceMeasureMapper.insertSelective(enhanceMeasure); - + enhanceMeasureWriteInByAutoRating(enhanceMeasure); return new ResultEntity<>(HttpStatus.OK,"保存成功!",scoreByAuto); } + //先将成绩写入stu_score_center 根据重新实训次数(最多两次) 累加到对应成绩,求取平均分,然后再写入用户表对应的总成绩 累加总分 + private void enhanceMeasureWriteInByAutoRating(StuCreditEnhanceMeasure enhanceMeasure) { + StuScoreCenterExample stuScoreCenterExample = new StuScoreCenterExample(); + stuScoreCenterExample.createCriteria().andUserIdEqualTo(enhanceMeasure.getUserId()).andModuleEqualTo(enhanceMeasure.getModule()); + List stuScoreCenterList = stuScoreCenterMapper.selectByExample(stuScoreCenterExample); + if (stuScoreCenterList.isEmpty()){ + return; + } + Integer numberOfTraining = stuScoreCenterList.get(0).getNumberOfTraining(); + if (numberOfTraining == 0) + { + if (stuScoreCenterList.get(0).getTrainingScoreOne() == null) + { + stuScoreCenterList.get(0).setTrainingScoreOne(BigDecimal.valueOf(0.00)) ; + } + //第一次得分 + stuScoreCenterList.get(0).setTrainingScore(stuScoreCenterList.get(0).getTrainingScoreOne().add(Convert.toBigDecimal(enhanceMeasure.getSysScore()))); + stuScoreCenterList.get(0).setTrainingScoreOne(stuScoreCenterList.get(0).getTrainingScoreOne().add(Convert.toBigDecimal(enhanceMeasure.getSysScore()))); + + + } + if (numberOfTraining == 1) + { + if (stuScoreCenterList.get(0).getTrainingScoreTwo() == null) + { + stuScoreCenterList.get(0).setTrainingScoreTwo(BigDecimal.valueOf(0.00)) ; + } + + //第2次得分 + BigDecimal info = stuScoreCenterList.get(0).getTrainingScoreTwo().add(Convert.toBigDecimal(enhanceMeasure.getSysScore())); + //求2次平均分写入成绩 + + BigDecimal avg = (stuScoreCenterList.get(0).getTrainingScoreOne().add(info)).divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP); + stuScoreCenterList.get(0).setTrainingScore(avg); + stuScoreCenterList.get(0).setTrainingScoreTwo(avg); + + + } + if (numberOfTraining == 2) + { + if (stuScoreCenterList.get(0).getTrainingScoreThree() == null) + { + stuScoreCenterList.get(0).setTrainingScoreThree(BigDecimal.valueOf(0.00)) ; + } + //第3次得分 + BigDecimal info = stuScoreCenterList.get(0).getTrainingScoreThree().add(Convert.toBigDecimal(enhanceMeasure.getSysScore())); + BigDecimal scoreTwo = stuScoreCenterList.get(0).getTrainingScoreTwo(); + //求3次平均分写入成绩 + BigDecimal avg = (stuScoreCenterList.get(0).getTrainingScoreOne().add(info).add(scoreTwo)).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_HALF_UP); + + + stuScoreCenterList.get(0).setTrainingScore(avg); + stuScoreCenterList.get(0).setTrainingScoreThree(avg); + + } + + stuScoreCenterMapper.updateByPrimaryKeySelective(stuScoreCenterList.get(0)); + + StuUser stuUser = userMapper.selectByPrimaryKey(enhanceMeasure.getUserId()); + + if ("个人征信".equals(enhanceMeasure.getModule())) + { + + //个人征信客观成绩 + stuUser.setCasePersonalCreditSubScore(BigDecimal.valueOf(enhanceMeasure.getSysScore())); + //个人征信总成绩 + stuUser.setCasePersonalCreditScore(stuScoreCenterList.get(0).getTrainingScore()); + + } + if ("企业征信".equals(enhanceMeasure.getModule())) + { + //企业征信客观成绩 + stuUser.setCaseCorporateCreditObjScore(BigDecimal.valueOf(enhanceMeasure.getSysScore())); + //企业征信总成绩 + stuUser.setCaseCorporateCreditScore(stuScoreCenterList.get(0).getTrainingScore()); + } + + + //获取用户画像总成绩 企业征信总成绩 个人征信总成绩 累加 写入实训案例总成绩 + + BigDecimal allScore = stuUser.getCasePersonalCreditScore().add(stuUser.getCaseCorporateCreditScore()).add(stuUser.getCaseUserProfileSocre()); + //综合案例总成绩 + stuUser.setComprehensiveCaseScore(allScore); + + + userMapper.updateByPrimaryKeySelective(stuUser); + + } /** * 企业征信:重新实训