| | |
| | | } |
| | | |
| | | public RiskAndTransferVO getRiskAndTransfer() throws Exception { |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | previousQuarter = "2024年一季度"; |
| | | RiskAndTransferVO riskAndTransferVO = new RiskAndTransferVO(); |
| | | // 查询省本级得分排名 |
| | | ScoreRankVO scoreRankVO = tbScoreService.queryRankAndScoreByAreaCode("510000"); |
| | | riskAndTransferVO.setScoreRankVO(scoreRankVO); |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | // previousQuarter = "2024年二季度"; |
| | | // 查询转移支付规模总额 |
| | | List<TbBasicData> list = tbBasicDataService.lambdaQuery() |
| | | .select(TbBasicData::getTransferPaymentScale) |
| | |
| | | List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel); |
| | | riskAndTransferVO.setRiskLevelVOList(riskLevelVOList); |
| | | RiskCountVO riskCountVO = new RiskCountVO(); |
| | | List<RiskMapVO> riskMapVOList = tbScoreService.getCurrentScoreList(previousQuarter, null); |
| | | String[] noRiskArr = riskLevel.getNoRisk().split("-"); |
| | | String[] lowRiskArr = riskLevel.getLowRisk().split("-"); |
| | | String[] mediumRiskArr = riskLevel.getMediumRisk().split("-"); |
| | | String[] highRiskArr = riskLevel.getHighRisk().split("-"); |
| | | // 地图市域得分 |
| | | List<RiskMapVO> riskMapVOList = tbScoreService.getCityScore(previousQuarter, |
| | | riskLevel); |
| | | // List<RiskMapVO> riskMapVOList = tbScoreService.getCurrentScoreList(previousQuarter, null); |
| | | String[] noRiskArr = riskLevel.getNoRisk().split("_"); |
| | | String[] lowRiskArr = riskLevel.getLowRisk().split("_"); |
| | | String[] mediumRiskArr = riskLevel.getMediumRisk().split("_"); |
| | | String[] highRiskArr = riskLevel.getHighRisk().split("_"); |
| | | List<RiskMapVO> cityRiskVO = riskMapVOList.stream() |
| | | .filter(r -> r.getAreaLevel().equals(AreaLevelEnum.CITY)) |
| | | .collect(Collectors.toList()); |
| | |
| | | long mediumRiskCount = cityRiskVO.stream() |
| | | .filter(item -> item.getScore() >= Double.parseDouble(mediumRiskArr[0]) |
| | | && item.getScore() <= Double.parseDouble(mediumRiskArr[1])).count(); |
| | | riskCountVO.setHighRiskCount((int) mediumRiskCount); |
| | | riskCountVO.setMediumRiskCount((int) mediumRiskCount); |
| | | long highRiskCount = cityRiskVO.stream() |
| | | .filter(item -> item.getScore() >= Double.parseDouble(highRiskArr[0]) |
| | | && item.getScore() <= Double.parseDouble(highRiskArr[1])).count(); |
| | |
| | | // 查询风险配置对应得分 |
| | | // List<RiskMapVO> riskMapVOList = tbDataScreenScoreService.queryScore4Map(nowQuarter, |
| | | // riskLevel.getId()); |
| | | |
| | | riskAndTransferVO.setRiskMapVOList(riskMapVOList); |
| | | return riskAndTransferVO; |
| | | } |
| | | |
| | | private List<RiskLevelVO> formatRiskLevel(DataScreenConfigVO riskLevel) { |
| | | String[] noRiskArr = riskLevel.getNoRisk().split("-"); |
| | | String[] lowRiskArr = riskLevel.getLowRisk().split("-"); |
| | | String[] mediumRiskArr = riskLevel.getMediumRisk().split("-"); |
| | | String[] highRiskArr = riskLevel.getHighRisk().split("-"); |
| | | String[] noRiskArr = riskLevel.getNoRisk().split("_"); |
| | | String[] lowRiskArr = riskLevel.getLowRisk().split("_"); |
| | | String[] mediumRiskArr = riskLevel.getMediumRisk().split("_"); |
| | | String[] highRiskArr = riskLevel.getHighRisk().split("_"); |
| | | return handleRiskLevel(noRiskArr, lowRiskArr, mediumRiskArr, |
| | | highRiskArr); |
| | | } |
| | |
| | | public List<RiskRankingVO> riskRanking() throws Exception { |
| | | DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel(); |
| | | List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel); |
| | | // List<RiskRankingVO> voList = tbScoreService.queryRiskRanking( |
| | | // DateUtils.getPreviousQuarter()); |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | // previousQuarter = "2024年二季度"; |
| | | List<RiskRankingVO> voList = tbScoreService.queryRiskRanking( |
| | | "2024年一季度"); |
| | | previousQuarter); |
| | | int rank = 1; |
| | | for (RiskRankingVO riskRankingVO : voList) { |
| | | riskRankingVO.setRank(rank++); |
| | | for (RiskLevelVO vo : riskLevelVOList) { |
| | | if (vo.getRiskLevel().equals(RiskLevelEnum.L1) |
| | | && riskRankingVO.getScore() <= vo.getMin()) { |
| | | riskRankingVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | } |
| | | // if (vo.getRiskLevel().equals(RiskLevelEnum.L1) |
| | | // && riskRankingVO.getScore() <= vo.getMin()) { |
| | | // riskRankingVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | // } |
| | | if (riskRankingVO.getScore() >= vo.getMin() |
| | | && riskRankingVO.getScore() <= vo.getMax()) { |
| | | riskRankingVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | } |
| | | if (vo.getRiskLevel().equals(RiskLevelEnum.L4) |
| | | && riskRankingVO.getScore() >= vo.getMax()) { |
| | | riskRankingVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | } |
| | | // if (vo.getRiskLevel().equals(RiskLevelEnum.L4) |
| | | // && riskRankingVO.getScore() >= vo.getMax()) { |
| | | // riskRankingVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | // } |
| | | } |
| | | } |
| | | return voList; |
| | |
| | | |
| | | public List<QuestionVO> queryQuestions() throws Exception { |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | previousQuarter = "2024年一季度"; |
| | | // previousQuarter = "2024年二季度"; |
| | | List<TbQuestion> list = tbQuestionService.lambdaQuery() |
| | | .eq(TbQuestion::getQuarter, previousQuarter).list(); |
| | | return BeanUtils.copyList(list, QuestionVO.class); |
| | |
| | | dataAnalysisVO.setRank(scoreRankVO.getRank()); |
| | | dataAnalysisVO.setScore(scoreRankVO.getScore()); |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | previousQuarter = "2024年一季度"; |
| | | // previousQuarter = "2024年二季度"; |
| | | // 查询问题 |
| | | List<TbQuestion> list = tbQuestionService.lambdaQuery() |
| | | .eq(TbQuestion::getQuarter, previousQuarter) |
| | |
| | | // 查询风险等级 |
| | | List<RiskMapVO> currentScoreList = tbScoreService.getCurrentScoreList(previousQuarter, |
| | | areaCode); |
| | | |
| | | for (RiskMapVO tbDataScreenScore : currentScoreList) { |
| | | for (RiskLevelVO vo : riskLevelVOList) { |
| | | if (vo.getRiskLevel().equals(RiskLevelEnum.L1) |
| | | && tbDataScreenScore.getScore() <= vo.getMin()) { |
| | | dataAnalysisVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | } |
| | | if (tbDataScreenScore.getScore() >= vo.getMin() |
| | | && tbDataScreenScore.getScore() <= vo.getMax()) { |
| | | dataAnalysisVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | } |
| | | if (vo.getRiskLevel().equals(RiskLevelEnum.L4) |
| | | && tbDataScreenScore.getScore() >= vo.getMax()) { |
| | | dataAnalysisVO.setRiskLevel(vo.getRiskLevel().getCode()); |
| | | } |
| | | } |
| | |
| | | List<FieldAndScoreDataVO> voList = |
| | | tbBasicDataService.getFieldAndScoreData(areaCode, previousQuarter, 1, 2); |
| | | List<FieldAndScoreDataVO> lastYearList = |
| | | tbBasicDataService.getFieldAndScoreData(areaCode, previousQuarter, 2, 2); |
| | | tbBasicDataService.getFieldAndScoreData(areaCode, lastYearQuarter, 2, 2); |
| | | // 查询四个指标下的三级指标 |
| | | List<FieldAndScoreDataVO> allDeptVoList = |
| | | tbBasicDataService.getFieldAndScoreData(areaCode, previousQuarter, 1, 1); |
| | |
| | | scoreRateDataVO.setScore(0D); |
| | | scoreRateDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1)); |
| | | scoreRateDataVO.setScoreRate(0D); |
| | | scoreRateDataVO.setMaxScore(0D); |
| | | } else { |
| | | Double indicatorOne = getLevelThreeIndicators(voList, indicatorList.get(i)).stream() |
| | | .map(FieldAndScoreDataVO::getScore).reduce(Double::sum) |
| | |
| | | .divide(BigDecimal.valueOf(voList.get(i).getLevelOneIndicatorMaxScore()), 2, |
| | | RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100L)) |
| | | .doubleValue()); |
| | | scoreRateDataVO.setMaxScore( |
| | | getLevelThreeIndicators(voList, indicatorList.get(i)).get(0) |
| | | .getLevelOneIndicatorMaxScore()); |
| | | } |
| | | result.add(scoreRateDataVO); |
| | | } |
| | |
| | | .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); |
| | |
| | | public List<DeptCalculateDetailVO> deptCalculateDetail(DeptCalculateDetailQuery query) |
| | | throws Exception { |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | previousQuarter = "2024年一季度"; |
| | | // previousQuarter = "2024年二季度"; |
| | | return tbScoreService.deptCalculateDetail(query, previousQuarter); |
| | | } |
| | | |
| | | public CurrentFieldsDetailVO viewRawData(String areaCode) throws Exception { |
| | | String previousQuarter = DateUtils.getPreviousQuarter(); |
| | | previousQuarter = "2024年一季度"; |
| | | // previousQuarter = "2024年二季度"; |
| | | Optional<TbBasicData> basicDataOptional = tbBasicDataService.lambdaQuery() |
| | | .eq(TbBasicData::getDeptAreaCode, areaCode) |
| | | .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) |
| | | .eq(TbBasicData::getQuarter, previousQuarter).oneOpt(); |
| | | if (basicDataOptional.isPresent()) { |
| | | return tbBasicDataService.fieldsDetails(basicDataOptional.get().getId()).getData(); |
| | |
| | | |
| | | public List<SysUser> getCountyList(String areaCode) { |
| | | String cityCode = areaCode.substring(0, 4); |
| | | if (areaCode.equals("510000")) { |
| | | cityCode = areaCode.substring(0, 3); |
| | | } |
| | | List<SysUser> list = sysUserService.lambdaQuery() |
| | | .select(SysUser::getAreaCode, SysUser::getAreaName, SysUser::getAreaAlias, |
| | | SysUser::getUserId).eq(SysUser::getUserType, |
| | | UserTypeEnum.DEPARTMENT) |
| | | .ne(SysUser::getAreaCode, areaCode) |
| | | .likeRight(SysUser::getAreaCode, cityCode).list(); |
| | | .likeRight(SysUser::getAreaCode, cityCode).or(cityCode.equals("5101")) |
| | | .in(cityCode.equals("5101"), SysUser::getAreaCode, "510008", "510015", "510017", |
| | | "510025") |
| | | .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; |
| | | } |
| | | } |