From a93ad50197f1626a12ba5067639119400542f455 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期六, 11 十月 2025 18:01:52 +0800 Subject: [PATCH] 修改指定季度获取方式 --- finance-admin/src/main/java/com/finance/web/controller/api/CurrentQuarterController.java | 9 +++- finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java | 50 ++++++++++++++++++++++-- finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java | 10 +++-- finance-system/src/main/java/com/finance/system/constants/QuarterConstant.java | 4 +- finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java | 10 +++-- finance-admin/src/main/java/com/finance/web/controller/service/ScreenService.java | 16 ++++--- finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java | 6 ++- finance-admin/src/main/resources/application-dev.yml | 3 + finance-admin/src/main/resources/application-prod-bak.yml | 0 9 files changed, 81 insertions(+), 27 deletions(-) diff --git a/finance-admin/src/main/java/com/finance/web/controller/api/CurrentQuarterController.java b/finance-admin/src/main/java/com/finance/web/controller/api/CurrentQuarterController.java index 72c6900..b3bfd46 100644 --- a/finance-admin/src/main/java/com/finance/web/controller/api/CurrentQuarterController.java +++ b/finance-admin/src/main/java/com/finance/web/controller/api/CurrentQuarterController.java @@ -5,7 +5,6 @@ import com.finance.common.exception.ServiceException; import com.finance.common.utils.BeanUtils; import com.finance.common.utils.DateUtils; -import com.finance.system.constants.QuarterConstant; import com.finance.system.domain.TbQuestion; import com.finance.system.dto.QuestionDTO; import com.finance.system.dto.update.BasicDataUpdDTO; @@ -32,6 +31,7 @@ import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -58,6 +58,9 @@ private final TbScoreService tbScoreService; private final ISysUserService sysUserService; + @Value("${fdb.quarter}") + private String quarter; + /** * 字段统计 * @@ -69,7 +72,7 @@ @Validated @RequestBody CurrentFieldsQuery dto) { try { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; dto.setQuarter(previousQuarter); return tbBasicDataService.fieldsStatics(dto); } catch (Exception e) { @@ -151,7 +154,7 @@ @Validated @RequestBody ScoreCalculateQuery query) { try { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; query.setQuarter(previousQuarter); return R.ok(tbBasicDataService.scoreCalculatePage(query)); } catch (Exception e) { 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 8f4dfd5..3a14047 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 @@ -15,7 +15,6 @@ 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; @@ -61,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; /** @@ -80,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(); @@ -122,7 +124,7 @@ ScoreRankVO scoreRankVO = tbScoreService.queryRankAndScoreByAreaCode("510000"); riskAndTransferVO.setScoreRankVO(scoreRankVO); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; // 查询转移支付规模总额 List<TbBasicData> list = tbBasicDataService.lambdaQuery() .select(TbBasicData::getTransferPaymentScale) @@ -243,7 +245,7 @@ DataScreenConfigVO riskLevel = tbDataScreenConfigService.getRiskLevel(); List<RiskLevelVO> riskLevelVOList = formatRiskLevel(riskLevel); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; List<RiskRankingVO> voList = tbScoreService.queryRiskRanking( previousQuarter); int rank = 1; @@ -269,7 +271,7 @@ public List<QuestionVO> queryQuestions() throws Exception { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; List<TbQuestion> list = tbQuestionService.lambdaQuery() .eq(TbQuestion::getQuarter, previousQuarter).list(); return BeanUtils.copyList(list, QuestionVO.class); @@ -285,7 +287,7 @@ dataAnalysisVO.setRank(scoreRankVO.getRank()); dataAnalysisVO.setScore(scoreRankVO.getScore()); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; // 查询问题 List<TbQuestion> list = tbQuestionService.lambdaQuery() .eq(TbQuestion::getQuarter, previousQuarter) @@ -558,13 +560,13 @@ public List<DeptCalculateDetailVO> deptCalculateDetail(DeptCalculateDetailQuery query) throws Exception { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; return tbScoreService.deptCalculateDetail(query, previousQuarter); } public CurrentFieldsDetailVO viewRawData(String areaCode) throws Exception { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; Optional<TbBasicData> basicDataOptional = tbBasicDataService.lambdaQuery() .eq(TbBasicData::getDeptAreaCode, areaCode) .eq(TbBasicData::getQuarter, previousQuarter).oneOpt(); diff --git a/finance-admin/src/main/resources/application-dev.yml b/finance-admin/src/main/resources/application-dev.yml index 9a12672..662936e 100644 --- a/finance-admin/src/main/resources/application-dev.yml +++ b/finance-admin/src/main/resources/application-dev.yml @@ -236,4 +236,7 @@ accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8 signName: "四川金达通信工程" templateCode: "SMS_293985284" +fdb: + # quarter: "2024年三季度" + quarter: "2025年二季度" diff --git a/finance-admin/src/main/resources/application-prod.yml b/finance-admin/src/main/resources/application-prod-bak.yml similarity index 100% rename from finance-admin/src/main/resources/application-prod.yml rename to finance-admin/src/main/resources/application-prod-bak.yml diff --git a/finance-system/src/main/java/com/finance/system/constants/QuarterConstant.java b/finance-system/src/main/java/com/finance/system/constants/QuarterConstant.java index ee8d8b6..cbb44e9 100644 --- a/finance-system/src/main/java/com/finance/system/constants/QuarterConstant.java +++ b/finance-system/src/main/java/com/finance/system/constants/QuarterConstant.java @@ -6,7 +6,7 @@ */ public interface QuarterConstant { - // public static final String CURRENT_QUARTER = "2024年三季度"; - public static final String CURRENT_QUARTER = "2024年四季度"; + public static final String CURRENT_QUARTER = "2024年三季度"; + // public static final String CURRENT_QUARTER = "2024年四季度"; } diff --git a/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java index cbeba71..1aa19f7 100644 --- a/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java +++ b/finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java @@ -20,7 +20,6 @@ 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.TbBasicDataConfig; import com.finance.system.domain.TbBasicDataConfigDetail; @@ -52,6 +51,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -71,6 +71,8 @@ private final TbBasicDataMapper tbBasicDataMapper; private final TbQuestionMapper tbQuestionMapper; private final ISysUserService sysUserService; + @Value("${fdb.quarter}") + private String quarter; @Async @Override @@ -274,7 +276,7 @@ BasicDataFieldEnum.BASIC_DATA_FIELD17); res1 = validateDivisorValue(deptDivisorValue); if (!res1) { - score = getScore(deptDividendValue, deptDivisorValue, month, + score = getScore5(deptDividendValue, deptDivisorValue, month, BigDecimal.valueOf(12D), vo); } else { @@ -296,7 +298,7 @@ res2 = validateDivisorValue(provinceDivisorValue); score = 0D; if (!res1 && !res2) { - score = getScore(deptDividendValue, deptDivisorValue, + score = getScore5(deptDividendValue, deptDivisorValue, provinceDividendValue, provinceDivisorValue, vo); } break; @@ -622,7 +624,7 @@ } /** - * 通用计算公式获取得分 + * 通用计算公式获取得分(每低1个百分点扣1分) * * @param deptDividendValue 部门被除数 * @param deptDivisorValue 部门除数 @@ -650,6 +652,44 @@ if (deptDivided.compareTo(provinceDivided) < 0) { score = deptDivided.subtract(provinceDivided) .multiply(BigDecimal.valueOf(100L)) + .add(BigDecimal.valueOf(vo.getMaxScore())) + .setScale(1, RoundingMode.HALF_UP); + score = score.compareTo(BigDecimal.ZERO) >= 0 ? score : BigDecimal.ZERO; + } else { + score = BigDecimal.valueOf(vo.getMaxScore()); + } + return score.doubleValue(); + } + + /** + * 通用计算公式获取得分(每低5个百分点扣一分) + * + * @param deptDividendValue 部门被除数 + * @param deptDivisorValue 部门除数 + * @param provinceDividendValue 省份被除数 + * @param provinceDivisorValue 省份除数 + * @param vo 基础数据配置 + * @return 得分 + */ + private Double getScore5(BigDecimal deptDividendValue, BigDecimal deptDivisorValue, + BigDecimal provinceDividendValue, BigDecimal provinceDivisorValue, + BasicDataConfigVO vo) { + BigDecimal score = BigDecimal.ZERO; + // 开始计算 + BigDecimal deptDivided = BigDecimal.ZERO; + + if (deptDivisorValue.compareTo(BigDecimal.ZERO) > 0) { + deptDivided = deptDividendValue.divide(deptDivisorValue, 4, RoundingMode.HALF_UP); + } + BigDecimal provinceDivided = BigDecimal.ZERO; + + if (provinceDivisorValue.compareTo(BigDecimal.ZERO) > 0) { + provinceDivided = provinceDividendValue.divide(provinceDivisorValue, 4, + RoundingMode.HALF_UP); + } + if (deptDivided.compareTo(provinceDivided) < 0) { + score = deptDivided.subtract(provinceDivided) + .multiply(BigDecimal.valueOf(20)) .add(BigDecimal.valueOf(vo.getMaxScore())) .setScale(1, RoundingMode.HALF_UP); score = score.compareTo(BigDecimal.ZERO) >= 0 ? score : BigDecimal.ZERO; @@ -794,7 +834,7 @@ @Override public void subtractScoreWithFixedRules(String deptAreaCode) throws Exception { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; TbBasicData tbBasicData = tbBasicDataMapper.selectOne( Wrappers.lambdaQuery(TbBasicData.class).eq(TbBasicData::getQuarter, previousQuarter) .eq(TbBasicData::getDeptAreaCode, deptAreaCode)); diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java index cf1145e..5005d80 100644 --- a/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java +++ b/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java @@ -29,7 +29,6 @@ import com.finance.common.utils.EasyExcelUtil; import com.finance.common.utils.SecurityUtils; import com.finance.common.utils.StringUtils; -import com.finance.system.constants.QuarterConstant; import com.finance.system.domain.TbBasicData; import com.finance.system.domain.TbBasicDataConfig; import com.finance.system.domain.TbBasicDataConfigDetail; @@ -93,6 +92,7 @@ import javax.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -121,6 +121,8 @@ private final TbDataScreenConfigService tbDataScreenConfigService; private final AsyncService asyncService; private final TbBasicDataCategoryService tbBasicDataCategoryService; + @Value("${fdb.quarter}") + private String quarter; public static void setFieldValues( List<FieldsTreeVO> fields, Map<Long, TbBasicDataField> fieldMap) { @@ -158,7 +160,7 @@ LocalDate fifteenDaysLimit = quarterStartLocalDate.plusDays(14); LocalDate now = LocalDate.now(); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; DateUtils.getQuarterDate(previousQuarter); vo.setQuarter(previousQuarter); vo.setStatus(ReportingStatusEnum.UNFILLED); @@ -233,7 +235,7 @@ return; } String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; // 查询需要填写的动态字段 List<TbField> fieldList = tbFieldService.lambdaQuery().eq(TbField::getStatus, ShowStatusEnum.SHOW).list(); @@ -498,7 +500,7 @@ LoginUser loginUser = SecurityUtils.getLoginUser(); String areaCode = loginUser.getUser().getAreaCode(); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; EasyExcel.read( file.getInputStream(), new BasicDataListener( diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java index fad5c66..2775327 100644 --- a/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java +++ b/finance-system/src/main/java/com/finance/system/service/impl/TbQuestionServiceImpl.java @@ -9,7 +9,6 @@ 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.TbQuestion; import com.finance.system.dto.QuestionDTO; import com.finance.system.dto.update.QuestionUpdDTO; @@ -24,6 +23,7 @@ import java.util.Set; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +42,8 @@ private final ISysUserService sysUserService; private final AsyncService asyncService; + @Value("${fdb.quarter}") + private String quarter; @Override @Transactional(rollbackFor = Exception.class) @@ -49,7 +51,7 @@ TbQuestion tbQuestion = BeanUtils.copyBean(dto, TbQuestion.class); tbQuestion.setType(dto.getType()); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; tbQuestion.setQuarter(previousQuarter); this.save(tbQuestion); asyncService.subtractScoreWithFixedRules(dto.getDeptAreaCode()); diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java index 44a0ced..d2f3d15 100644 --- a/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java +++ b/finance-system/src/main/java/com/finance/system/service/impl/TbScoreServiceImpl.java @@ -10,7 +10,6 @@ import com.finance.common.utils.BeanUtils; import com.finance.common.utils.CollUtils; import com.finance.common.utils.DateUtils; -import com.finance.system.constants.QuarterConstant; import com.finance.system.domain.TbBasicDataConfig; import com.finance.system.domain.TbScore; import com.finance.system.mapper.TbScoreMapper; @@ -37,6 +36,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; /** @@ -55,6 +55,8 @@ private final TbBasicDataConfigService basicDataConfigService; private final ISysUserService sysUserService; + @Value("${fdb.quarter}") + private String quarter; @Override public Page<ScoreVO> pageScore(ScoreQuery query, Page<ScoreVO> page) { @@ -82,7 +84,7 @@ vo.setCalculateType(config.getCalculateType()); Page<ScoreDetailVO> page = new Page<>(query.getPageNum(), query.getPageSize()); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; query.setPreviousQuarter(previousQuarter); Page<ScoreDetailVO> pageVO = baseMapper.scoreCalculateDetail(query, page); vo.setTotal(pageVO.getTotal()); @@ -118,7 +120,7 @@ @Override public ScoreRankVO queryRankAndScoreByAreaCode(String areaCode) throws Exception { String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; List<ScoreRankVO> voList = baseMapper.queryRankAndScoreByAreaCode(areaCode, previousQuarter); if (CollUtils.isNotEmpty(voList)) { @@ -156,7 +158,7 @@ vo.setCalculateType(config.getCalculateType()); Page<ScoreDetailVO> page = new Page<>(query.getPageNum(), query.getPageSize()); String previousQuarter = DateUtils.getPreviousQuarter(); - previousQuarter = QuarterConstant.CURRENT_QUARTER; + previousQuarter = quarter; query.setPreviousQuarter(previousQuarter); Page<ScoreDetailVO> pageVO = baseMapper.fieldsDetail(query, page, areaCodeList); vo.setTotal(pageVO.getTotal()); -- Gitblit v1.7.1