From 3a6f2b349aaac3fd9f895c16f7d833252a2158ab Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 23 八月 2024 15:26:25 +0800 Subject: [PATCH] bug修改 --- finance-system/src/main/java/com/finance/system/service/impl/AsyncServiceImpl.java | 54 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 39 insertions(+), 15 deletions(-) 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 811f8ab..45382d1 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 @@ -319,11 +319,11 @@ provinceDividendValue = getProvinceBigDecimal(provinceFieldsMap, BasicDataFieldEnum.BASIC_DATA_FIELD7); provinceDivisorValue = getProvinceBigDecimal(provinceFieldsMap, - BasicDataFieldEnum.BASIC_DATA_FIELD7); + BasicDataFieldEnum.BASIC_DATA_FIELD13); res1 = validateDivisorValue(deptDivisorValue); res2 = validateDivisorValue(provinceDivisorValue); score = 0D; - if (!res1 && res2) { + if (!res1 && !res2) { score = getScore2(deptDividendValue, deptDivisorValue, provinceDividendValue, provinceDivisorValue, vo); } @@ -389,26 +389,34 @@ BigDecimal currentData = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, BasicDataFieldEnum.BASIC_DATA_FIELD35); BigDecimal part1; - BigDecimal part2; + BigDecimal part2 = BigDecimal.ZERO; if (currentData.compareTo(BigDecimal.valueOf(0.8D)) < 0) { BigDecimal add = currentData.subtract(BigDecimal.valueOf(0.8D)) .divide(BigDecimal.valueOf(0.1D), 2, RoundingMode.HALF_UP) .multiply(BigDecimal.valueOf(0.6D)) - .add(BigDecimal.valueOf(4D)); + .add(BigDecimal.valueOf(3D)); part1 = add.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : add; } else { - part1 = BigDecimal.valueOf(4D); + part1 = BigDecimal.valueOf(3D); } - BigDecimal first = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, - BasicDataFieldEnum.BASIC_DATA_FIELD36); - BigDecimal second = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, - BasicDataFieldEnum.BASIC_DATA_FIELD37); - BigDecimal third = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, - BasicDataFieldEnum.BASIC_DATA_FIELD38); - part2 = first.compareTo(BigDecimal.valueOf(0.3D)) < 0 - || second.compareTo(BigDecimal.valueOf(0.3D)) < 0 || third.compareTo( - BigDecimal.valueOf(0.3D)) < 0 ? BigDecimal.ZERO - : BigDecimal.valueOf(2D); + // BigDecimal first = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, + // BasicDataFieldEnum.BASIC_DATA_FIELD36); + // BigDecimal second = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, + // BasicDataFieldEnum.BASIC_DATA_FIELD37); + // BigDecimal third = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, + // BasicDataFieldEnum.BASIC_DATA_FIELD38); + String year = tbBasicData.getQuarter().substring(0, 4); + List<BigDecimal> kuKuanList = tbBasicDataMapper.getKuKuanBaoZhangShuiPingByAreaCode( + sysUser.getAreaCode(), + year).stream() + .map(BigDecimal::new) + .collect(Collectors.toList()); + + part2 = kuKuanList.stream() + .anyMatch(item -> item.compareTo(BigDecimal.valueOf(0.3D)) <= 0) + ? BigDecimal.ZERO + : BigDecimal.valueOf(3D); + score = part1.add(part2).doubleValue(); break; case INDICATOR_ITEM14: @@ -417,6 +425,20 @@ BasicDataFieldEnum.BASIC_DATA_FIELD15); deptDivisorValue = getBigDecimal(sysUser.getAreaName(), deptFieldsMap, BasicDataFieldEnum.BASIC_DATA_FIELD14); + String substring = tbBasicData.getQuarter().substring(4); + if (substring.equals("四季度")) { + // 使用全年评价 + BigDecimal divide = deptDividendValue.divide(deptDivisorValue, 2, + RoundingMode.HALF_UP); + if (divide.compareTo(BigDecimal.valueOf(0.98D)) < 0) { + score = divide.subtract(BigDecimal.valueOf(0.98D)) + .multiply(BigDecimal.valueOf(100D)) + .divide(BigDecimal.valueOf(3D), 2, RoundingMode.HALF_UP) + .add(BigDecimal.valueOf(vo.getMaxScore())).doubleValue(); + } else { + score = vo.getMaxScore(); + } + } score = getScoreByMonth(deptDividendValue, deptDivisorValue, month, vo); break; case INDICATOR_ITEM15: @@ -490,6 +512,8 @@ score = d1.compareTo(d2) < 0 ? d1.divide(d2, 2, RoundingMode.HALF_UP) .multiply(BigDecimal.valueOf(vo.getMaxScore())).doubleValue() : vo.getMaxScore(); + } else { + score = vo.getMaxScore(); } break; case INDICATOR_ITEM21: -- Gitblit v1.7.1