Browse Source

美术阅卷10月新增需求-纪检查询功能

wangliang 5 years ago
parent
commit
a95a2dee5b

+ 9 - 7
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java

@@ -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();