|
|
@ -80,13 +80,19 @@ public class BatchScoreCalculator { |
|
|
|
.multiply( |
|
|
|
(maxScoreValue.subtract(minScoreValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))) |
|
|
|
.add(minScoreValue).setScale(6, RoundingMode.HALF_UP); |
|
|
|
//
|
|
|
|
if (scoreCalculator.getCorrelation().getCode().equals(Correlation.NEGATIVE)) { |
|
|
|
normalizeValue = maxScoreValue.subtract(normalizeValue); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
normalizeValue = scoreCalculator.normalize(getFinalSampleValue(vo.getSampleValue(), threshold)); |
|
|
|
} |
|
|
|
//如果是负相关 则用100-归一后的值为最大值减
|
|
|
|
if (Correlation.NEGATIVE.getCode().equals(scoreCalculator.getCorrelation().getCode())) { |
|
|
|
normalizeValue = maxScoreValue.subtract(normalizeValue); |
|
|
|
} |
|
|
|
} |
|
|
|
//如果归一后的值小于0 则置为0
|
|
|
|
if (normalizeValue.compareTo(NumConstant.ZERO_DECIMAL)<=-1){ |
|
|
|
normalizeValue = NumConstant.ZERO_DECIMAL; |
|
|
|
} |
|
|
|
BigDecimal score = normalizeValue.multiply(weight).setScale(6, RoundingMode.HALF_UP); |
|
|
|
CalculateResult result = scoreCountOfSamples.get(sampleId); |
|
|
|