mitao
2 天以前 a93ad50197f1626a12ba5067639119400542f455
finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java
@@ -60,6 +60,7 @@
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
@@ -79,6 +80,8 @@
    private final TbScoreService tbScoreService;
    private final TbBasicDataConfigService tbBasicDataConfigService;
    private final TbBasicDataCategoryService tbBasicDataCategoryService;
    @Value("${fdb.quarter}")
    private String quarter;
    public ProvinceStaticsVO provinceStatics() {
        ProvinceStaticsVO vo = new ProvinceStaticsVO();
@@ -121,7 +124,7 @@
        ScoreRankVO scoreRankVO = tbScoreService.queryRankAndScoreByAreaCode("510000");
        riskAndTransferVO.setScoreRankVO(scoreRankVO);
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = quarter;
        // 查询转移支付规模总额
        List<TbBasicData> list = tbBasicDataService.lambdaQuery()
                .select(TbBasicData::getTransferPaymentScale)
@@ -241,10 +244,10 @@
    public List<RiskRankingVO> riskRanking() throws Exception {
        DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel();
        List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel);
        String previousQuarter = DateUtils.getPreviousQuarter();
        previousQuarter = quarter;
        List<RiskRankingVO> voList = tbScoreService.queryRiskRanking(
                DateUtils.getPreviousQuarter());
        // List<RiskRankingVO> voList = tbScoreService.queryRiskRanking(
        //         "2024年一季度");
                previousQuarter);
        int rank = 1;
        for (RiskRankingVO riskRankingVO : voList) {
            riskRankingVO.setRank(rank++);
@@ -268,7 +271,7 @@
    public List<QuestionVO> queryQuestions() throws Exception {
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = quarter;
        List<TbQuestion> list = tbQuestionService.lambdaQuery()
                .eq(TbQuestion::getQuarter, previousQuarter).list();
        return BeanUtils.copyList(list, QuestionVO.class);
@@ -284,7 +287,7 @@
        dataAnalysisVO.setRank(scoreRankVO.getRank());
        dataAnalysisVO.setScore(scoreRankVO.getScore());
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = quarter;
        // 查询问题
        List<TbQuestion> list = tbQuestionService.lambdaQuery()
                .eq(TbQuestion::getQuarter, previousQuarter)
@@ -365,8 +368,11 @@
                scoreRateDataVO.setScore(0D);
                scoreRateDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1));
                scoreRateDataVO.setScoreRate(0D);
                scoreRateDataVO.setMaxScore(0D);
            } else {
                Double indicatorOne = getLevelThreeIndicators(voList, indicatorList.get(i)).stream()
                List<FieldAndScoreDataVO> levelThreeIndicators = getLevelThreeIndicators(voList,
                        indicatorList.get(i));
                Double indicatorOne = levelThreeIndicators.stream()
                        .map(FieldAndScoreDataVO::getScore).reduce(Double::sum)
                        .map(BigDecimal::valueOf)
                        .orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP)
@@ -379,9 +385,13 @@
                scoreRateDataVO.setScore(indicatorOne);
                scoreRateDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1));
                scoreRateDataVO.setScoreRate(BigDecimal.valueOf(indicatorOne)
                        .divide(BigDecimal.valueOf(voList.get(i).getLevelOneIndicatorMaxScore()), 2,
                        .divide(BigDecimal.valueOf(
                                        levelThreeIndicators.get(0).getLevelOneIndicatorMaxScore()), 2,
                                RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100L))
                        .doubleValue());
                scoreRateDataVO.setMaxScore(
                        levelThreeIndicators.get(0)
                                .getLevelOneIndicatorMaxScore());
            }
            result.add(scoreRateDataVO);
        }
@@ -425,7 +435,8 @@
                        .orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP).doubleValue();
                scoreDataVO.setLastScore(indicatorOneLastYear);
                scoreDataVO.setScore(indicatorOne);
                scoreDataVO.setMaxScore(voList.get(0).getLevelOneIndicatorMaxScore());
                scoreDataVO.setMaxScore(getLevelThreeIndicators(voList, indicatorList.get(i)).get(0)
                        .getLevelOneIndicatorMaxScore());
                scoreDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1));
            }
            scoreDataVOList.add(scoreDataVO);
@@ -549,13 +560,13 @@
    public List<DeptCalculateDetailVO> deptCalculateDetail(DeptCalculateDetailQuery query)
            throws Exception {
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = quarter;
        return tbScoreService.deptCalculateDetail(query, previousQuarter);
    }
    public CurrentFieldsDetailVO viewRawData(String areaCode) throws Exception {
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = quarter;
        Optional<TbBasicData> basicDataOptional = tbBasicDataService.lambdaQuery()
                .eq(TbBasicData::getDeptAreaCode, areaCode)
                .eq(TbBasicData::getQuarter, previousQuarter).oneOpt();
@@ -587,7 +598,13 @@
                .likeRight(SysUser::getAreaCode, cityCode).or(cityCode.equals("5101"))
                .in(cityCode.equals("5101"), SysUser::getAreaCode, "510008", "510015", "510017",
                        "510025")
                .orderByAsc(!areaCode.equals("510100"), SysUser::getAreaCode)
                .or(cityCode.equals("5106"))
                .eq(cityCode.equals("5106"), SysUser::getAreaCode, "510049")
                .or(cityCode.equals("5109"))
                .eq(cityCode.equals("5109"), SysUser::getAreaCode, "510077")
                .orderByAsc(!areaCode.equals("510100") && !areaCode.equals("510600")
                                && !areaCode.equals("510900"),
                        SysUser::getAreaCode)
                .list();
        return list;
    }