|
@@ -1301,25 +1301,26 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
|
|
|
private void fillScoreRange(ScoreReportVo ret, List<ArchiveStudentVo> list) {
|
|
|
List<ScoreRangeVo> scoreRange = new ArrayList<>();
|
|
|
ret.setScoreRange(scoreRange);
|
|
|
- scoreRange.add(getScoreRangeVo(list, 1.0, 9.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 10.0, 19.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 20.0, 29.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 30.0, 39.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 40.0, 49.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 50.0, 59.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 60.0, 69.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 70.0, 79.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 80.0, 89.5));
|
|
|
- scoreRange.add(getScoreRangeVo(list, 90.0, 100.0));
|
|
|
- }
|
|
|
-
|
|
|
- private ScoreRangeVo getScoreRangeVo(List<ArchiveStudentVo> list, Double start, Double end) {
|
|
|
+ int total = ret.getOverview().getStudentCount() - ret.getOverview().getAbsentCount();
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 1.0, 9.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 10.0, 19.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 20.0, 29.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 30.0, 39.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 40.0, 49.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 50.0, 59.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 60.0, 69.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 70.0, 79.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 80.0, 89.5));
|
|
|
+ scoreRange.add(getScoreRangeVo(total,list, 90.0, 100.0));
|
|
|
+ }
|
|
|
+
|
|
|
+ private ScoreRangeVo getScoreRangeVo(int totalCount,List<ArchiveStudentVo> list, Double start, Double end) {
|
|
|
int count = (int) list.stream().filter(s -> s.getTotalScore() >= start && s.getTotalScore() <= end).count();
|
|
|
Double rate = null;
|
|
|
if (list.size() != 0) {
|
|
|
- rate = Calculator.divide(count, list.size(), 2);
|
|
|
+ rate = Calculator.divide(count, totalCount, 2);
|
|
|
}
|
|
|
- ScoreRangeVo vo = new ScoreRangeVo(count, start, end, rate);
|
|
|
+ ScoreRangeVo vo = new ScoreRangeVo(count, start, end, rate*100);
|
|
|
return vo;
|
|
|
}
|
|
|
|