mitao
2025-04-07 18891c60ab1c06a4acc85d0ec54dee50d1b1a19f
finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java
@@ -15,6 +15,7 @@
import com.finance.common.utils.CollUtils;
import com.finance.common.utils.DateUtils;
import com.finance.common.utils.StringUtils;
import com.finance.system.constants.QuarterConstant;
import com.finance.system.domain.TbBasicData;
import com.finance.system.domain.TbBasicDataCategory;
import com.finance.system.domain.TbQuestion;
@@ -121,7 +122,7 @@
        ScoreRankVO scoreRankVO = tbScoreService.queryRankAndScoreByAreaCode("510000");
        riskAndTransferVO.setScoreRankVO(scoreRankVO);
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = QuarterConstant.CURRENT_QUARTER;
        // 查询转移支付规模总额
        List<TbBasicData> list = tbBasicDataService.lambdaQuery()
                .select(TbBasicData::getTransferPaymentScale)
@@ -241,10 +242,10 @@
    public List<RiskRankingVO> riskRanking() throws Exception {
        DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel();
        List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel);
        String previousQuarter = DateUtils.getPreviousQuarter();
        previousQuarter = QuarterConstant.CURRENT_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 +269,7 @@
    public List<QuestionVO> queryQuestions() throws Exception {
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = QuarterConstant.CURRENT_QUARTER;
        List<TbQuestion> list = tbQuestionService.lambdaQuery()
                .eq(TbQuestion::getQuarter, previousQuarter).list();
        return BeanUtils.copyList(list, QuestionVO.class);
@@ -284,7 +285,7 @@
        dataAnalysisVO.setRank(scoreRankVO.getRank());
        dataAnalysisVO.setScore(scoreRankVO.getScore());
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = QuarterConstant.CURRENT_QUARTER;
        // 查询问题
        List<TbQuestion> list = tbQuestionService.lambdaQuery()
                .eq(TbQuestion::getQuarter, previousQuarter)
@@ -365,8 +366,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 +383,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 +433,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 +558,13 @@
    public List<DeptCalculateDetailVO> deptCalculateDetail(DeptCalculateDetailQuery query)
            throws Exception {
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = QuarterConstant.CURRENT_QUARTER;
        return tbScoreService.deptCalculateDetail(query, previousQuarter);
    }
    public CurrentFieldsDetailVO viewRawData(String areaCode) throws Exception {
        String previousQuarter = DateUtils.getPreviousQuarter();
        // previousQuarter = "2024年一季度";
        previousQuarter = QuarterConstant.CURRENT_QUARTER;
        Optional<TbBasicData> basicDataOptional = tbBasicDataService.lambdaQuery()
                .eq(TbBasicData::getDeptAreaCode, areaCode)
                .eq(TbBasicData::getQuarter, previousQuarter).oneOpt();
@@ -587,7 +596,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;
    }