mitao
2024-08-23 3a6f2b349aaac3fd9f895c16f7d833252a2158ab
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: