|
@@ -154,9 +154,9 @@ public class MarkSubjectApi {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//当前考区总数
|
|
//当前考区总数
|
|
- long total = paperRepo.countByWorkIdAndQuestionIdAndIsMissingIsFalse(markSubject.getWorkId(), questionId);
|
|
|
|
|
|
+ long total = paperRepo.countByWorkIdAndQuestionIdAndIsMissingIsFalseAndTest(markSubject.getWorkId(), questionId, markSubject.getTest());
|
|
//所有考区总数
|
|
//所有考区总数
|
|
- long gtotal = paperRepo.countByWorkIdAndSubjectAndIsMissingFalse(markSubject.getWorkId(), markSubject.getSubject());
|
|
|
|
|
|
+ long gtotal = paperRepo.countByWorkIdAndSubjectAndIsMissingFalseAndTest(markSubject.getWorkId(), markSubject.getSubject(), markSubject.getTest());
|
|
levelStatDTOs.forEach(o -> {
|
|
levelStatDTOs.forEach(o -> {
|
|
if (o.getId() != null) {
|
|
if (o.getId() != null) {
|
|
//当前考区档位占比
|
|
//当前考区档位占比
|
|
@@ -167,7 +167,7 @@ public class MarkSubjectApi {
|
|
Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
|
|
Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
|
|
o.setKdpt(level.getKdpt());
|
|
o.setKdpt(level.getKdpt());
|
|
//所有考区档位数量
|
|
//所有考区档位数量
|
|
- long gcount = paperRepo.countByWorkIdAndSubjectAndLevel(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()));
|
|
|
|
|
|
+ long gcount = paperRepo.countByWorkIdAndSubjectAndLevelAndTest(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()), markSubject.getTest());
|
|
o.setGcount((int) gcount);
|
|
o.setGcount((int) gcount);
|
|
//所有考区档位占比
|
|
//所有考区档位占比
|
|
double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
|
|
double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
|
|
@@ -203,7 +203,7 @@ public class MarkSubjectApi {
|
|
}
|
|
}
|
|
List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
|
|
List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
|
|
List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
|
|
List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
|
|
-// if (CollectionUtils.isEmpty(paperIds)) {
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(paperIds)) {
|
|
paperRepo.countGroupByLevelAll(questionId, markSubject.getTest())
|
|
paperRepo.countGroupByLevelAll(questionId, markSubject.getTest())
|
|
.forEach(o -> levelStatDTOs.add(levelStatAssembler.toDTO(o)));
|
|
.forEach(o -> levelStatDTOs.add(levelStatAssembler.toDTO(o)));
|
|
for (Level level : levels) {
|
|
for (Level level : levels) {
|
|
@@ -240,45 +240,45 @@ public class MarkSubjectApi {
|
|
o.setPt(level.getPt());
|
|
o.setPt(level.getPt());
|
|
}
|
|
}
|
|
});
|
|
});
|
|
-// } else {
|
|
|
|
-// paperRepo.countGroupByLevelAllAndIdIn(questionId, markSubject.getTest(), paperIds)
|
|
|
|
-// .forEach(o -> levelStatDTOs.add(levelStatAssembler.toDTO(o)));
|
|
|
|
-// for (Level level : levels) {
|
|
|
|
-// long count = levelStatDTOs.stream().filter(l -> String.valueOf(l.getId()).equals(level.getCode())).count();
|
|
|
|
-// //没有该档位,新增
|
|
|
|
-// if (count == 0) {
|
|
|
|
-// LevelStatDTO dto = new LevelStatDTO();
|
|
|
|
-// dto.setId(level.getCode());
|
|
|
|
-// dto.setCount(0);
|
|
|
|
-// dto.setPercent(0.0);
|
|
|
|
-// levelStatDTOs.add(dto);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// //当前考区总数
|
|
|
|
-// long total = paperRepo.countByWorkIdAndQuestionIdAndIdIn(markSubject.getWorkId(), questionId, paperIds);
|
|
|
|
-// //所有考区总数
|
|
|
|
-// long gtotal = paperRepo.countByWorkIdAndSubjectAndIdIn(markSubject.getWorkId(), markSubject.getSubject(), paperIds);
|
|
|
|
-// List<Long> finalPaperIds = paperIds;
|
|
|
|
-// levelStatDTOs.forEach(o -> {
|
|
|
|
-// if (o.getId() != null) {
|
|
|
|
-// //当前考区档位占比
|
|
|
|
-// double p = total == 0 ? 0 : (double) o.getCount() / total * 100;
|
|
|
|
-// BigDecimal bd = new BigDecimal(p).setScale(3, RoundingMode.HALF_EVEN);
|
|
|
|
-// o.setPercent(bd.doubleValue());
|
|
|
|
-// //考区阈值
|
|
|
|
-// Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
|
|
|
|
-// o.setKdpt(level.getKdpt());
|
|
|
|
-// //所有考区档位数量
|
|
|
|
-// long gcount = paperRepo.countByWorkIdAndSubjectAndLevelAndIdIn(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()), finalPaperIds);
|
|
|
|
-// o.setGcount((int) gcount);
|
|
|
|
-// //所有考区档位占比
|
|
|
|
-// double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
|
|
|
|
-// BigDecimal gbd = new BigDecimal(gp).setScale(3, RoundingMode.HALF_EVEN);
|
|
|
|
-// o.setGpercent(gbd.doubleValue());
|
|
|
|
-// o.setPt(level.getPt());
|
|
|
|
-// }
|
|
|
|
-// });
|
|
|
|
-// }
|
|
|
|
|
|
+ } else {
|
|
|
|
+ paperRepo.countGroupByLevelAllAndIdIn(questionId, markSubject.getTest(), paperIds)
|
|
|
|
+ .forEach(o -> levelStatDTOs.add(levelStatAssembler.toDTO(o)));
|
|
|
|
+ for (Level level : levels) {
|
|
|
|
+ long count = levelStatDTOs.stream().filter(l -> String.valueOf(l.getId()).equals(level.getCode())).count();
|
|
|
|
+ //没有该档位,新增
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ LevelStatDTO dto = new LevelStatDTO();
|
|
|
|
+ dto.setId(level.getCode());
|
|
|
|
+ dto.setCount(0);
|
|
|
|
+ dto.setPercent(0.0);
|
|
|
|
+ levelStatDTOs.add(dto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //当前考区总数
|
|
|
|
+ long total = paperRepo.countByWorkIdAndQuestionIdAndIdIn(markSubject.getWorkId(), questionId, paperIds);
|
|
|
|
+ //所有考区总数
|
|
|
|
+ long gtotal = paperRepo.countByWorkIdAndSubjectAndIdIn(markSubject.getWorkId(), markSubject.getSubject(), paperIds);
|
|
|
|
+ List<Long> finalPaperIds = paperIds;
|
|
|
|
+ levelStatDTOs.forEach(o -> {
|
|
|
|
+ if (o.getId() != null) {
|
|
|
|
+ //当前考区档位占比
|
|
|
|
+ double p = total == 0 ? 0 : (double) o.getCount() / total * 100;
|
|
|
|
+ BigDecimal bd = new BigDecimal(p).setScale(3, RoundingMode.HALF_EVEN);
|
|
|
|
+ o.setPercent(bd.doubleValue());
|
|
|
|
+ //考区阈值
|
|
|
|
+ Level level = levels.stream().filter(l -> l.getCode().equals(o.getId())).collect(Collectors.toList()).get(0);
|
|
|
|
+ o.setKdpt(level.getKdpt());
|
|
|
|
+ //所有考区档位数量
|
|
|
|
+ long gcount = paperRepo.countByWorkIdAndSubjectAndLevelAndIdIn(markSubject.getWorkId(), markSubject.getSubject(), String.valueOf(o.getId()), finalPaperIds);
|
|
|
|
+ o.setGcount((int) gcount);
|
|
|
|
+ //所有考区档位占比
|
|
|
|
+ double gp = gtotal == 0 ? 0 : (double) o.getGcount() / gtotal * 100;
|
|
|
|
+ BigDecimal gbd = new BigDecimal(gp).setScale(3, RoundingMode.HALF_EVEN);
|
|
|
|
+ o.setGpercent(gbd.doubleValue());
|
|
|
|
+ o.setPt(level.getPt());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
Collections.sort(levelStatDTOs, (o1, o2) -> {
|
|
Collections.sort(levelStatDTOs, (o1, o2) -> {
|
|
if (o1.getId() == null || o2.getId() == null) {
|
|
if (o1.getId() == null || o2.getId() == null) {
|
|
return 1;
|
|
return 1;
|