From 950264a579736c1c51f1efe4baf0ac1476d5748c Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 02 十二月 2024 11:06:46 +0800 Subject: [PATCH] bug修改 --- finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java | 359 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 253 insertions(+), 106 deletions(-) diff --git a/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java b/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java index d699985..2b63466 100644 --- a/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java +++ b/finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java @@ -14,9 +14,9 @@ import com.finance.common.utils.BeanUtils; import com.finance.common.utils.CollUtils; import com.finance.common.utils.DateUtils; +import com.finance.common.utils.StringUtils; import com.finance.system.domain.TbBasicData; import com.finance.system.domain.TbBasicDataCategory; -import com.finance.system.domain.TbDataScreenScore; import com.finance.system.domain.TbQuestion; import com.finance.system.query.CalculateDetailQuery; import com.finance.system.query.DeptCalculateDetailQuery; @@ -48,8 +48,13 @@ import com.finance.system.vo.ScoreRankVO; import com.finance.system.vo.ScoreRateDataVO; import com.finance.system.vo.TransferPaymentScaleVO; +import com.google.common.collect.Lists; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -77,10 +82,10 @@ public ProvinceStaticsVO provinceStatics() { ProvinceStaticsVO vo = new ProvinceStaticsVO(); - int provinceCount = getCount("省本级"); - int cityCount = getCount("市"); - int developmentZonesCount = getCount("开发区"); - int countyCount = getCount("县"); + int provinceCount = getCount(AreaLevelEnum.PROVINCE); + int cityCount = getCount(AreaLevelEnum.CITY); + int developmentZonesCount = getCount(AreaLevelEnum.DEVELOPMENT_ZONES); + int countyCount = getCount(AreaLevelEnum.COUNTY); vo.setProvinceCount(provinceCount); vo.setCityCount(cityCount); @@ -89,7 +94,7 @@ return vo; } - private int getCount(String level) { + private int getCount(AreaLevelEnum level) { return (int) sysUserService.count( Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUserType, UserTypeEnum.DEPARTMENT) .eq(SysUser::getAreaLevel, level)); @@ -111,30 +116,61 @@ } public RiskAndTransferVO getRiskAndTransfer() throws Exception { - String nowQuarter = DateUtils.getNowQuarter(); 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) - .eq(TbBasicData::getQuarter, nowQuarter) - .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) + .eq(TbBasicData::getQuarter, previousQuarter) + // .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) .list(); Optional<Double> reduce = list.stream() .map(tbBasicData -> Double.parseDouble(tbBasicData.getTransferPaymentScale())) .reduce(Double::sum); riskAndTransferVO.setTransferPaymentScale(reduce.orElse(0D)); - //查询风险等级设置 + // 查询风险等级设置 DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel(); List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel); riskAndTransferVO.setRiskLevelVOList(riskLevelVOList); RiskCountVO riskCountVO = new RiskCountVO(); + // 地图市域得分 + 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 noRiskCount = cityRiskVO.stream() + .filter(item -> item.getScore() >= Double.parseDouble(noRiskArr[0]) + && item.getScore() <= Double.parseDouble(noRiskArr[1])).count(); + riskCountVO.setNoRiskCount((int) noRiskCount); + long lowRiskCount = cityRiskVO.stream() + .filter(item -> item.getScore() >= Double.parseDouble(lowRiskArr[0]) + && item.getScore() <= Double.parseDouble(lowRiskArr[1])).count(); + riskCountVO.setLowRiskCount((int) lowRiskCount); + long mediumRiskCount = cityRiskVO.stream() + .filter(item -> item.getScore() >= Double.parseDouble(mediumRiskArr[0]) + && item.getScore() <= Double.parseDouble(mediumRiskArr[1])).count(); + riskCountVO.setMediumRiskCount((int) mediumRiskCount); + long highRiskCount = cityRiskVO.stream() + .filter(item -> item.getScore() >= Double.parseDouble(highRiskArr[0]) + && item.getScore() <= Double.parseDouble(highRiskArr[1])).count(); + riskCountVO.setHighRiskCount((int) highRiskCount); - List<TbDataScreenScore> dataScreenScoreList = tbDataScreenScoreService.selectRiskByQuarter( - nowQuarter, riskLevel.getId(), null); - for (RiskLevelVO vo : riskLevelVOList) { - long count = dataScreenScoreList.stream() + /*for (RiskLevelVO vo : riskLevelVOList) { + long count = riskMapVOList.stream() + .filter(r -> r.getAreaLevel().equals(AreaLevelEnum.CITY)) .filter(item -> item.getScore() >= vo.getMin() && item.getScore() <= vo.getMax()).count(); + if (vo.getRiskLevel().equals(RiskLevelEnum.L1)) { riskCountVO.setNoRiskCount((int) count); } else if (vo.getRiskLevel().equals(RiskLevelEnum.L2)) { @@ -144,16 +180,17 @@ } else if (vo.getRiskLevel().equals(RiskLevelEnum.L4)) { riskCountVO.setHighRiskCount((int) count); } - } - //TODO - riskCountVO.setNoRiskCount(50); - riskCountVO.setLowRiskCount(45); - riskCountVO.setMediumRiskCount(30); - riskCountVO.setHighRiskCount(80); + }*/ + // TODO + // riskCountVO.setNoRiskCount(50); + // riskCountVO.setLowRiskCount(45); + // riskCountVO.setMediumRiskCount(30); + // riskCountVO.setHighRiskCount(80); riskAndTransferVO.setRiskCountVO(riskCountVO); - //查询风险配置对应得分 - List<RiskMapVO> riskMapVOList = tbDataScreenScoreService.queryScore4Map(nowQuarter, - riskLevel.getId()); + // 查询风险配置对应得分 + // List<RiskMapVO> riskMapVOList = tbDataScreenScoreService.queryScore4Map(nowQuarter, + // riskLevel.getId()); + riskAndTransferVO.setRiskMapVOList(riskMapVOList); return riskAndTransferVO; } @@ -204,48 +241,55 @@ public List<RiskRankingVO> riskRanking() throws Exception { DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel(); List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel); - List<RiskRankingVO> voList = tbDataScreenScoreService.queryRiskRanking(riskLevel.getId(), - DateUtils.getNowQuarter(), AreaLevelEnum.COUNTY); + String previousQuarter = DateUtils.getPreviousQuarter(); + // previousQuarter = "2024年二季度"; + List<RiskRankingVO> voList = tbScoreService.queryRiskRanking( + 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年二季度"; List<TbQuestion> list = tbQuestionService.lambdaQuery() - .eq(TbQuestion::getQuarter, DateUtils.getNowQuarter()).list(); + .eq(TbQuestion::getQuarter, previousQuarter).list(); return BeanUtils.copyList(list, QuestionVO.class); } public DataAnalysisVO getDataAnalysis(String areaCode) throws Exception { DataAnalysisVO dataAnalysisVO = new DataAnalysisVO(); - //查询得分排名 + // 查询得分排名 ScoreRankVO scoreRankVO = tbScoreService.queryRankAndScoreByAreaCode(areaCode); if (Objects.isNull(scoreRankVO)) { return dataAnalysisVO; } dataAnalysisVO.setRank(scoreRankVO.getRank()); dataAnalysisVO.setScore(scoreRankVO.getScore()); - String nowQuarter = DateUtils.getNowQuarter(); - //查询问题 + String previousQuarter = DateUtils.getPreviousQuarter(); + // previousQuarter = "2024年二季度"; + // 查询问题 List<TbQuestion> list = tbQuestionService.lambdaQuery() - .eq(TbQuestion::getQuarter, nowQuarter).list(); + .eq(TbQuestion::getQuarter, previousQuarter) + .eq(TbQuestion::getDeptAreaCode, areaCode) + .list(); List<QuestionVO> questionVOS = BeanUtils.copyList(list, QuestionVO.class); dataAnalysisVO.setQuestions(questionVOS); SysUser user = sysUserService.lambdaQuery() @@ -255,91 +299,175 @@ return dataAnalysisVO; } dataAnalysisVO.setAreaName(user.getDeptName()); - //查询风险得分 + // 查询风险得分 DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel(); List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel); - List<DataScreenScoreVO> thisYearScore = tbDataScreenScoreService.queryScoreByAreaAndYear( - areaCode, riskLevel.getId(), 1); - Optional<Double> thisYear = thisYearScore.stream().map(DataScreenScoreVO::getScore) - .reduce(Double::sum); - dataAnalysisVO.setYearScore(thisYear.orElse(0D)); - List<DataScreenScoreVO> lastYearScore = tbDataScreenScoreService.queryScoreByAreaAndYear( - areaCode, riskLevel.getId(), 2); - Optional<Double> lastYear = lastYearScore.stream().map(DataScreenScoreVO::getScore) - .reduce(Double::sum); - dataAnalysisVO.setLastYearScore(lastYear.orElse(0D)); - //查询风险等级 - List<TbDataScreenScore> dataScreenScoreList = tbDataScreenScoreService.selectRiskByQuarter( - nowQuarter, - riskLevel.getId(), areaCode); - for (TbDataScreenScore tbDataScreenScore : dataScreenScoreList) { + + dataAnalysisVO.setYearScore(getYearScore(areaCode, previousQuarter)); + String lastYearQuarter = DateUtils.getLastYearQuarter(previousQuarter); + dataAnalysisVO.setLastYearScore(getYearScore(areaCode, lastYearQuarter)); + // 查询风险等级 + 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<ScoreDataVO> scoreDataVOList = new ArrayList<>(); - handleDataIndicators(areaCode, scoreDataVOList); - dataAnalysisVO.setScoreDataList(scoreDataVOList); - //查询数据指标得分 - List<ScoreRateDataVO> scoreRateDataVOList = new ArrayList<>(); - handleDataIndicators(areaCode, scoreRateDataVOList, nowQuarter); - dataAnalysisVO.setScoreRateDataList(scoreRateDataVOList); - //查询大屏下方字段列表 + // 查询四个指标下的三级指标 + List<FieldAndScoreDataVO> voList = + tbBasicDataService.getFieldAndScoreData(areaCode, previousQuarter, 1, 2); + List<FieldAndScoreDataVO> lastYearList = + tbBasicDataService.getFieldAndScoreData(areaCode, lastYearQuarter, 2, 2); + // 查询四个指标下的三级指标 + List<FieldAndScoreDataVO> allDeptVoList = + tbBasicDataService.getFieldAndScoreData(areaCode, previousQuarter, 1, 1); + // 查询形式指标得分 + dataAnalysisVO.setScoreDataList(handleDataIndicators(voList, lastYearList)); + // 查询数据指标得分 + dataAnalysisVO.setScoreRateDataList(handleDataIndicatorsRate(allDeptVoList, voList)); + // 查询大屏下方字段列表 List<TbBasicDataCategory> categoryList = tbBasicDataCategoryService.lambdaQuery() - .eq(TbBasicDataCategory::getStatus, ShowStatusEnum.SHOW).last("limit 4").list(); - List<FieldAndScoreDataVO> voList = tbBasicDataService.selectBasicDataFieldsConfig(areaCode, - nowQuarter); + .eq(TbBasicDataCategory::getParentId, -1) + .eq(TbBasicDataCategory::getStatus, ShowStatusEnum.SHOW) + .last("limit 4").list(); + if (categoryList.isEmpty()) { dataAnalysisVO.setScoreRateDataListOne(CollUtils.emptyList()); dataAnalysisVO.setScoreRateDataListTwo(CollUtils.emptyList()); dataAnalysisVO.setScoreRateDataListThree(CollUtils.emptyList()); dataAnalysisVO.setScoreRateDataListFour(CollUtils.emptyList()); } else { - int size = categoryList.size(); - for (int i = 0; i < 4; i++) { - List<FieldAndScoreDataVO> dataList; - if (i < size) { - dataList = getFieldAndScoreData(voList, - categoryList.get(i).getBasicDataCategoryName()); - } else { - dataList = CollUtils.emptyList(); - } - switch (i) { - case 0: - dataAnalysisVO.setScoreRateDataListOne(dataList); - break; - case 1: - dataAnalysisVO.setScoreRateDataListTwo(dataList); - break; - case 2: - dataAnalysisVO.setScoreRateDataListThree(dataList); - break; - case 3: - dataAnalysisVO.setScoreRateDataListFour(dataList); - break; - } - } + dataAnalysisVO.setScoreRateDataListOne(getLevelThreeIndicators(voList, "财政经济形势")); + dataAnalysisVO.setScoreRateDataListTwo(getLevelThreeIndicators(voList, "预算管理方面")); + dataAnalysisVO.setScoreRateDataListThree( + getLevelThreeIndicators(voList, "预算执行方面")); + dataAnalysisVO.setScoreRateDataListFour( + getLevelThreeIndicators(voList, "风险防控方面")); } return dataAnalysisVO; + } + + private List<ScoreRateDataVO> handleDataIndicatorsRate(List<FieldAndScoreDataVO> allDeptVoList, + List<FieldAndScoreDataVO> voList) { + List<ScoreRateDataVO> result = new ArrayList<>(); + + List<String> indicatorList = Lists.newArrayList("财政经济形势", "预算管理方面", + "预算执行方面", "风险防控方面"); + for (int i = 0; i < indicatorList.size(); i++) { + ScoreRateDataVO scoreRateDataVO = new ScoreRateDataVO(); + if (CollUtils.isEmpty(voList)) { + scoreRateDataVO.setRank(0); + 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) + .map(BigDecimal::valueOf) + .orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP) + .doubleValue(); + List<Double> allIndicatorsScore = getAllIndicatorsScoreByName(allDeptVoList, + indicatorList.get(i)); + allIndicatorsScore.add(indicatorOne); + allIndicatorsScore.sort(Comparator.comparing(Double::doubleValue).reversed()); + scoreRateDataVO.setRank(allIndicatorsScore.indexOf(indicatorOne) + 1); + scoreRateDataVO.setScore(indicatorOne); + scoreRateDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1)); + scoreRateDataVO.setScoreRate(BigDecimal.valueOf(indicatorOne) + .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); + } + return result; + } + + private List<Double> getAllIndicatorsScoreByName(List<FieldAndScoreDataVO> allDeptVoList, + String indicatorName) { + Map<String, List<FieldAndScoreDataVO>> collect = allDeptVoList.stream() + .collect(Collectors.groupingBy(FieldAndScoreDataVO::getDeptAreaCode)); + return collect.keySet().stream().map(key -> { + Double score = getLevelThreeIndicators(collect.get(key), indicatorName).stream() + .map(FieldAndScoreDataVO::getScore).reduce(Double::sum).orElse(0D); + return score; + }).sorted(Comparator.comparing(Double::intValue).reversed()).collect(Collectors.toList()); + } + + private List<ScoreDataVO> handleDataIndicators(List<FieldAndScoreDataVO> voList, + List<FieldAndScoreDataVO> lastYearList) { + List<ScoreDataVO> scoreDataVOList = new ArrayList<>(); + List<String> indicatorList = Lists.newArrayList("财政经济形势", "预算管理方面", + "预算执行方面", "风险防控方面"); + for (int i = 0; i < indicatorList.size(); i++) { + ScoreDataVO scoreDataVO = new ScoreDataVO(); + if (CollUtils.isEmpty(voList)) { + scoreDataVO.setLastScore(0D); + scoreDataVO.setScore(0D); + scoreDataVO.setMaxScore(0D); + scoreDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1)); + } else { + Double indicatorOne = getLevelThreeIndicators(voList, + indicatorList.get(i)).stream() + .map(FieldAndScoreDataVO::getScore).reduce(Double::sum) + .map(BigDecimal::valueOf) + .orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP) + .doubleValue(); + Double indicatorOneLastYear = getLevelThreeIndicators(lastYearList, + indicatorList.get(i)).stream() + .map(FieldAndScoreDataVO::getScore).reduce(Double::sum) + .map(BigDecimal::valueOf) + .orElse(BigDecimal.ZERO).setScale(2, RoundingMode.HALF_UP).doubleValue(); + scoreDataVO.setLastScore(indicatorOneLastYear); + scoreDataVO.setScore(indicatorOne); + scoreDataVO.setMaxScore(getLevelThreeIndicators(voList, indicatorList.get(i)).get(0) + .getLevelOneIndicatorMaxScore()); + scoreDataVO.setSubType(SubTypeEnum.getEnumByCode(i + 1)); + } + scoreDataVOList.add(scoreDataVO); + } + return scoreDataVOList; + } + + private List<FieldAndScoreDataVO> getLevelThreeIndicators(List<FieldAndScoreDataVO> voList, + String indicatorName) { + return voList.stream().map(vo -> { + if (StringUtils.isNotBlank(vo.getLevelOneIndicator())) { + if (StringUtils.trim(vo.getLevelOneIndicator()).equals(indicatorName)) { + return vo; + } else { + if (StringUtils.isNotBlank(vo.getLevelTwoIndicator()) + && StringUtils.trim(vo.getLevelTwoIndicator()).equals(indicatorName)) { + return vo; + } + } + } + return null; + }).filter(Objects::nonNull).collect(Collectors.toList()); + } + + private Double getYearScore(String areaCode, String previousQuarter) { + List<RiskMapVO> thisYearScoreList = tbScoreService.getScoreByYearType(areaCode, + previousQuarter); + return thisYearScoreList.stream().map(RiskMapVO::getScore) + .reduce(Double::sum).map(BigDecimal::valueOf).orElse(BigDecimal.ZERO) + .setScale(2, RoundingMode.HALF_UP).doubleValue(); } private void handleDataIndicators(String areaCode, List<ScoreDataVO> scoreDataVOList) { List<DataScreenScoreVO> formalIndicatorsYear = tbDataScreenScoreService.selectIndicators( areaCode, null, DataScreenConfigEnum.FORMAL_INDICATORS, 1); if (CollUtils.isNotEmpty(formalIndicatorsYear)) { - //形式指标一 + // 形式指标一 for (SubTypeEnum value : SubTypeEnum.values()) { ScoreDataVO scoreDataVO = new ScoreDataVO(); scoreDataVO.setSubType(value); @@ -425,14 +553,17 @@ public List<DeptCalculateDetailVO> deptCalculateDetail(DeptCalculateDetailQuery query) throws Exception { - return tbScoreService.deptCalculateDetail(query, DateUtils.getNowQuarter()); + String previousQuarter = DateUtils.getPreviousQuarter(); + // previousQuarter = "2024年二季度"; + return tbScoreService.deptCalculateDetail(query, previousQuarter); } public CurrentFieldsDetailVO viewRawData(String areaCode) throws Exception { + String previousQuarter = DateUtils.getPreviousQuarter(); + // previousQuarter = "2024年二季度"; Optional<TbBasicData> basicDataOptional = tbBasicDataService.lambdaQuery() .eq(TbBasicData::getDeptAreaCode, areaCode) - .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) - .eq(TbBasicData::getQuarter, DateUtils.getNowQuarter()).oneOpt(); + .eq(TbBasicData::getQuarter, previousQuarter).oneOpt(); if (basicDataOptional.isPresent()) { return tbBasicDataService.fieldsDetails(basicDataOptional.get().getId()).getData(); } else { @@ -442,17 +573,33 @@ public ScoreCalculateDetailVO fieldsDetail(CalculateDetailQuery query) { List<SysUser> countyList = getCountyList(query.getCityAreaCode()); - return tbScoreService.fieldsDetail(query, countyList); + try { + return tbScoreService.fieldsDetail(query, countyList); + } catch (Exception e) { + throw new RuntimeException(e); + } } 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; } } -- Gitblit v1.7.1