From cd913642bc876373ddd21f79899d53c81cd0916d Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Tue, 30 Apr 2024 10:37:22 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7=E5=BE=81?=
 =?UTF-8?q?=E4=BF=A1=EF=BC=8C=E4=BC=81=E4=B8=9A=E5=BE=81=E4=BF=A1=E7=9A=84?=
 =?UTF-8?q?=E4=B8=BB=E8=A7=82=E9=A2=98=E5=A4=9A=E6=AC=A1=E6=8F=90=E4=BA=A4?=
 =?UTF-8?q?=E5=88=86=E6=95=B0=E8=AE=A1=E7=AE=97=E5=92=8C=E6=80=BB=E6=88=90?=
 =?UTF-8?q?=E7=BB=A9=E9=87=8D=E6=96=B0=E8=AE=A1=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../service/impl/StuRateServiceImpl.java      | 101 +++++++++++++++++-
 1 file changed, 100 insertions(+), 1 deletion(-)

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<StuScoreCenter> 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);
+
+    }
 
     /**
         * 企业征信:重新实训