|
@@ -11,7 +11,6 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.util.List;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.rongwei.bscommon.sys.utils.JXKHUtils.CALCULATE_Y3;
|
|
|
|
|
@@ -62,7 +61,7 @@ public class ScoreCalculationServiceNum28 implements ScoreCalculationService {
|
|
|
//计划巡查数量:巡查清单的项目数量。
|
|
|
long planCount = list.size();
|
|
|
//计划执行率=已巡查项目数量/计划巡查数量 结果取小数点后一位。
|
|
|
- BigDecimal planExecutionRate = new BigDecimal(checkedCount).divide(new BigDecimal(planCount), 1, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal planExecutionRate = calculateApprovalRate((int) planCount, (int) checkedCount);
|
|
|
if (planExecutionRate.compareTo(new BigDecimal("0.9")) >= 0) {
|
|
|
//不扣分
|
|
|
} else if (planExecutionRate.compareTo(new BigDecimal("0.6")) <= 0) {
|
|
@@ -79,4 +78,14 @@ public class ScoreCalculationServiceNum28 implements ScoreCalculationService {
|
|
|
}
|
|
|
return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
|
|
|
}
|
|
|
+
|
|
|
+ public BigDecimal calculateApprovalRate(int denominator, int numerator) {
|
|
|
+ if (denominator == 0) {
|
|
|
+ return BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ if (numerator == 0) {
|
|
|
+ return BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ return BigDecimal.valueOf(numerator).divide(BigDecimal.valueOf(denominator), 6, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(3, RoundingMode.HALF_UP);
|
|
|
+ }
|
|
|
}
|