| | |
| | | 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); |
| | | } |
| | |
| | | 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: |
| | |
| | | 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: |
| | |
| | | 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: |