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) { 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(); finance-admin/src/main/resources/application-dev.yml
@@ -236,4 +236,7 @@ accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8 signName: "四川金达通信工程" templateCode: "SMS_293985284" fdb: # quarter: "2024年三季度" quarter: "2025年二季度" finance-admin/src/main/resources/application-prod-bak.yml
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年四季度"; } 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)); 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( 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()); 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());