|
@@ -22,10 +22,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -129,6 +126,10 @@ public class MakrerApi {
|
|
|
sql.append(endSql);
|
|
|
String finalSql = sqlUtil.sqlPrint(sql.toString(), questionId);
|
|
|
List list = sqlUtil.execSqlForMap(finalSql);
|
|
|
+ MarkSubject markSubject = markSubjectRepo.findOne(marker.getWorkId() + "-" + marker.getSubject().toString());
|
|
|
+ List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
|
|
|
+ Map<String, Level> levelMap = levels.stream().collect(Collectors.toMap(Level::getCode, l -> l));
|
|
|
+// Map<String, LevelStatDTO> filterLevelMap = new HashMap<>();
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
Map map = (Map) list.get(i);
|
|
|
List finalList = (List) map.values().stream()
|
|
@@ -140,16 +141,17 @@ public class MakrerApi {
|
|
|
// int gcount = markTaskRepo.countByLevel(marker.getId());
|
|
|
int gcount = markTaskRepo.countByQuestionIdInAndStageAndResultIsNull(questionIds, MarkStage.LEVEL);
|
|
|
levelStatDTO.setGcount(gcount);
|
|
|
+ levelStatDTOs.add(levelStatDTO);
|
|
|
} else {
|
|
|
//当前老师每个档位已评档位的次数
|
|
|
// int gcount = markTaskRepo.countByLevelAndResult(marker.getId(), levelStatDTO.getId().toString());
|
|
|
int gcount = markTaskRepo.countByQuestionIdInAndStageAndResult(questionIds, MarkStage.LEVEL, levelStatDTO.getId().toString());
|
|
|
levelStatDTO.setGcount(gcount);
|
|
|
}
|
|
|
- levelStatDTOs.add(levelStatDTO);
|
|
|
+ if (Objects.nonNull(levelMap.get(levelStatDTO.getId()))) {
|
|
|
+ levelStatDTOs.add(levelStatDTO);
|
|
|
+ }
|
|
|
}
|
|
|
- MarkSubject markSubject = markSubjectRepo.findOne(marker.getWorkId() + "-" + marker.getSubject().toString());
|
|
|
- List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
|
|
|
for (Level level : levels) {
|
|
|
//所有档位依次比较
|
|
|
long count = levelStatDTOs.stream().filter(l -> String.valueOf(l.getId()).equals(level.getCode())).count();
|