diff --git a/src/main/java/com/sztzjy/digital_credit/controller/task/StuTaskController.java b/src/main/java/com/sztzjy/digital_credit/controller/task/StuTaskController.java index 94ab8cf..ba52c73 100644 --- a/src/main/java/com/sztzjy/digital_credit/controller/task/StuTaskController.java +++ b/src/main/java/com/sztzjy/digital_credit/controller/task/StuTaskController.java @@ -154,7 +154,21 @@ public class StuTaskController { List schoolIds=userMapper.selectSchool(); for (int i = 0; i < schoolIds.size(); i++) { String schoolId = schoolIds.get(i); + //总成绩排序 userService.totalRank(schoolId); + + //征信画像成绩排序 + userService.creditPortraitRank(schoolId); + + //个人征信成绩排序 + userService.personCreditRank(schoolId); + + //企业征信成绩排序 + userService.corporateCreditRank(schoolId); + + //综合案例成绩排序 + userService.comprehensiveCaseRank(schoolId); + } } diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java b/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java index e894dd0..a1359fc 100644 --- a/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java +++ b/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java @@ -122,13 +122,13 @@ public class StuUser { public StuUser(StuUser stuUser, TchModuleWeith resultsOverviewWeight) { this.userId=stuUser.getUserId(); //征信画像 - BigDecimal creditPortraitScore =stuUser.getLoanCasesScore().add(stuUser.getPerSituationScore()).add(stuUser.getRepaymentBehaviorScore()).divide(BigDecimal.valueOf(3)).multiply(resultsOverviewWeight.getCreditPortraitWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal creditPortraitScore =stuUser.getLoanCasesScore().add(stuUser.getPerSituationScore()).add(stuUser.getRepaymentBehaviorScore()).divide(BigDecimal.valueOf(3),2,BigDecimal.ROUND_HALF_UP).multiply(resultsOverviewWeight.getCreditPortraitWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); //个人征信 - BigDecimal personalCreditScore=stuUser.getPerInfluenceFactorScore().add(stuUser.getPerCreditOptimizationSocre()).add(stuUser.getPerCreditRatingSocre()).divide(BigDecimal.valueOf(3)).multiply(resultsOverviewWeight.getPersonalCreditWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal personalCreditScore=stuUser.getPerInfluenceFactorScore().add(stuUser.getPerCreditOptimizationSocre()).add(stuUser.getPerCreditRatingSocre()).divide(BigDecimal.valueOf(3),2,BigDecimal.ROUND_HALF_UP).multiply(resultsOverviewWeight.getPersonalCreditWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); //企业征信 - BigDecimal corporateCreditScore=stuUser.getEntInfluenceFactorSocre().add(stuUser.getEntCreditOptimizationSocre()).add(stuUser.getEntCreditRatingSocre()).divide(BigDecimal.valueOf(3)).multiply(resultsOverviewWeight.getEnterpriseCreditWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal corporateCreditScore=stuUser.getEntInfluenceFactorSocre().add(stuUser.getEntCreditOptimizationSocre()).add(stuUser.getEntCreditRatingSocre()).divide(BigDecimal.valueOf(3),2,BigDecimal.ROUND_HALF_UP).multiply(resultsOverviewWeight.getEnterpriseCreditWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); //综合案例 - BigDecimal comprehensiveCaseScore=stuUser.getCaseUserProfileSocre().add(stuUser.getCasePersonalCreditScore()).add(stuUser.getCaseCorporateCreditScore()).divide(BigDecimal.valueOf(3)).multiply(resultsOverviewWeight.getCaseStudyWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal comprehensiveCaseScore=stuUser.getCaseUserProfileSocre().add(stuUser.getCasePersonalCreditScore()).add(stuUser.getCaseCorporateCreditScore()).divide(BigDecimal.valueOf(3),2,BigDecimal.ROUND_HALF_UP).multiply(resultsOverviewWeight.getCaseStudyWeith()).setScale(2,BigDecimal.ROUND_HALF_UP); this.totalScore= creditPortraitScore.add(personalCreditScore).add(corporateCreditScore) diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java index 014cb85..2b19932 100644 --- a/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java +++ b/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java @@ -7,6 +7,7 @@ import java.util.Map; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; public interface StuUserMapper { long countByExample(StuUserExample example); @@ -42,4 +43,41 @@ public interface StuUserMapper { @Select("select school_id from stu_user group by school_id") List selectSchool(); + + @Update("UPDATE stu_user as s " + + "JOIN " + + "(select user_id , ROW_NUMBER() OVER (ORDER BY credit_portrait_score DESC) AS ranking " + + "FROM stu_user where school_id=#{schoolId}) as r" + + " ON " + + "s.user_id = r.user_id " + + "SET s.credit_portrait_rank = r.ranking WHERE school_id=#{schoolId}") + void updateCreditPortraitRank(String schoolId); + + @Update("UPDATE stu_user as s " + + "JOIN " + + "(select user_id , ROW_NUMBER() OVER (ORDER BY personal_credit_score DESC) AS ranking " + + "FROM stu_user where school_id=#{schoolId}) as r" + + " ON " + + "s.user_id = r.user_id " + + "SET s.personal_credit_rank = r.ranking WHERE school_id=#{schoolId}") + void updatePersonCreditRank(String schoolId); + + + @Update("UPDATE stu_user as s " + + "JOIN " + + "(select user_id , ROW_NUMBER() OVER (ORDER BY corporate_credit_score DESC) AS ranking " + + "FROM stu_user where school_id=#{schoolId}) as r" + + " ON " + + "s.user_id = r.user_id " + + "SET s.corporate_credit_rank = r.ranking WHERE school_id=#{schoolId}") + void updateCorporateCreditRank(String schoolId); + + @Update("UPDATE stu_user as s " + + "JOIN " + + "(select user_id , ROW_NUMBER() OVER (ORDER BY comprehensive_case_score DESC) AS ranking " + + "FROM stu_user where school_id=#{schoolId}) as r" + + " ON " + + "s.user_id = r.user_id " + + "SET s.comprehensive_case_rank = r.ranking WHERE school_id=#{schoolId}") + void updateComprehensiveCaseRank(String schoolId); } \ No newline at end of file diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuUserService.java b/src/main/java/com/sztzjy/digital_credit/service/StuUserService.java index ffcd7de..f2f6e71 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/StuUserService.java +++ b/src/main/java/com/sztzjy/digital_credit/service/StuUserService.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; import com.sztzjy.digital_credit.entity.tchdto.ScoreOverviewParametesDTO; import com.sztzjy.digital_credit.entity.tchdto.TchGeneralViewDTO; import com.sztzjy.digital_credit.entity.tchdto.TchGeneralViewWeightDTO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -27,4 +28,30 @@ public interface StuUserService { Boolean updateWeight(TchGeneralViewWeightDTO generalViewWeightDTO); void totalRank(String schoolId); + + /** + * //征信画像成绩排序 + * @param schoolId + * @return + */ + + void creditPortraitRank(@Param("schoolId") String schoolId); + + /** + * 个人征信成绩排序 + * @param schoolId + * @return + */ + + void personCreditRank(@Param("schoolId") String schoolId); + + void corporateCreditRank(String schoolId); + + /** + * 综合案例成绩排序 + * @param schoolId + * @return + */ + + void comprehensiveCaseRank(@Param("schoolId") String schoolId); } diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java index cfcb418..fe665c8 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java +++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java @@ -26,11 +26,13 @@ import com.sztzjy.digital_credit.util.MyExcelListener; import com.sztzjy.digital_credit.util.ResultEntity; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.data.annotation.Id; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; @@ -44,6 +46,10 @@ import java.util.List; public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoEntryService { + @Resource + private StuPersonalCreditService stuPersonalCreditService; + + @Autowired private StuBaseInfoMapper stuBaseInfoMapper; @@ -66,19 +72,14 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE @Autowired private StuOperatingCapacityMapper operatingCapacityMapper; - @Autowired - private StuPersonalCreditService stuPersonalCreditService; + @Autowired private StuSolvencyMapper solvencyMapper; - @Autowired - private StuUserMapper userMapper; - @Autowired - private StuRateService stuRateService; /** * 基本信息查询 diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java index 681fbc2..d2ae5d9 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java +++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java @@ -33,9 +33,6 @@ public class StuFinancialEarlyWarningServiceImpl implements StuFinancialEarlyWar private StuOperationAssetAnalysisModuleMapper operationAssetAnalysisModuleMapper; - @Autowired - private StuRateService stuRateService; - @Autowired private StuPersonalCreditService stuPersonalCreditService; /** diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuPersonalCreditServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuPersonalCreditServiceImpl.java index 30e39ee..27822bb 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuPersonalCreditServiceImpl.java +++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuPersonalCreditServiceImpl.java @@ -10,6 +10,7 @@ import com.sztzjy.digital_credit.service.StuScoreCenterService; import com.sztzjy.digital_credit.util.BigDecimalUtils; import org.checkerframework.checker.units.qual.A; import org.geolatte.geom.M; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -33,6 +34,7 @@ public class StuPersonalCreditServiceImpl implements StuPersonalCreditService { TchModuleWeithMapper tchModuleWeithMapper; @Resource StuPersonalCreditReportingService stuPersonalCreditReportingService; + @Lazy @Resource StuRateService service; @Resource 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 e88ffa2..767de86 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 @@ -16,6 +16,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.*; @@ -70,7 +71,7 @@ public class StuRateServiceImpl implements StuRateService { private StuScoreCenterMapper stuScoreCenterMapper; - @Autowired + @Resource private StuPersonalCreditService stuPersonalCreditService; @@ -401,6 +402,8 @@ public class StuRateServiceImpl implements StuRateService { return new ResultEntity<>(HttpStatus.OK,"保存成功!",scoreByAuto); } + + //先将成绩写入stu_score_center 根据重新实训次数(最多两次) 累加到对应成绩,求取平均分,然后再写入用户表对应的总成绩 累加总分 private void enhanceMeasureWriteInByAutoRating(StuCreditEnhanceMeasure enhanceMeasure) { StuScoreCenterExample stuScoreCenterExample = new StuScoreCenterExample(); diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserServiceImpl.java index 156b325..c2425f3 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserServiceImpl.java +++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserServiceImpl.java @@ -136,6 +136,7 @@ public class StuUserServiceImpl implements StuUserService { List stuUsers = userMapper.selectByExample(example); List list = new ArrayList(); for (int i = 0; i < stuUsers.size(); i++) { + System.out.println(stuUsers.get(i).getUserId()); StuUser stuUser=new StuUser(stuUsers.get(i),tchModuleWeithList.get(0)); list.add(stuUser); } @@ -154,5 +155,53 @@ public class StuUserServiceImpl implements StuUserService { } + /** + * 征信画像成绩排序 + * @param schoolId + * @return + */ + + @Override + public void creditPortraitRank(String schoolId) { + + + userMapper.updateCreditPortraitRank(schoolId); + + } + + /** + * 个人征信成绩排序 + * @param schoolId + * @return + */ + + @Override + public void personCreditRank(String schoolId) { + + userMapper.updatePersonCreditRank(schoolId); + + } + + /** + * 企业征信成绩排序 + * @param schoolId + * @return + */ + @Override + public void corporateCreditRank(String schoolId) { + userMapper.updateCorporateCreditRank(schoolId); + } + + /** + * 综合案例成绩排序 + * @param schoolId + * @return + */ + + @Override + public void comprehensiveCaseRank(String schoolId) { + userMapper.updateComprehensiveCaseRank(schoolId); + } + }