|
@@ -58,6 +58,7 @@ public class DetermineLevelService {
|
|
|
}
|
|
|
//通过权重计算,平均值四舍五入
|
|
|
double[] values = new double[tasks.length];
|
|
|
+ double[] weights = new double[tasks.length];
|
|
|
Long workId = null;
|
|
|
for (int i = 0; i < tasks.length; i++) {
|
|
|
workId = tasks[i].getWorkId();
|
|
@@ -68,8 +69,9 @@ public class DetermineLevelService {
|
|
|
MarkUser marker = markUserRepo.findOne(tasks[i].getMarkerId());
|
|
|
double markerWeight = marker.getWeight();
|
|
|
values[i] = level.getWeight()*markerWeight;
|
|
|
+ weights[i] = markerWeight;
|
|
|
}
|
|
|
- int avg = (int)Math.round(DoubleStream.of(values).average().orElse(0));
|
|
|
+ int avg = (int)Math.round(DoubleStream.of(values).sum()/DoubleStream.of(weights).sum());
|
|
|
List<Level> levels = levelRepo.findByWorkId(workId);
|
|
|
Optional<Level> levelOptional = levels.stream().filter(o -> o.getMaxScore() >= avg && o.getMinScore() <= avg).findFirst();
|
|
|
Level level = levelOptional.orElse(null);
|