|
@@ -1,5 +1,6 @@
|
|
|
package cn.com.qmth.stmms.ms.marking.service;
|
|
|
|
|
|
+import cn.com.qmth.stmms.ms.core.cache.ParamCache;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
@@ -7,7 +8,6 @@ import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.user.MarkerGroup;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.user.Role;
|
|
|
import cn.com.qmth.stmms.ms.core.repository.*;
|
|
|
-import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
|
import cn.com.qmth.stmms.ms.marking.assembler.QuestionStatAssembler;
|
|
|
import cn.com.qmth.stmms.ms.marking.dto.LevleProgressDTO;
|
|
|
import cn.com.qmth.stmms.ms.marking.dto.MarkQuestionStatDTO;
|
|
@@ -156,14 +156,6 @@ public class GroupingService {
|
|
|
groupLeaderAndMarkers = groupLeaderAndMarkers.stream().filter(m -> m.get("markLeaders").contains(markerId)).collect(Collectors.toList());
|
|
|
}
|
|
|
if (!CollectionUtils.isEmpty(groupLeaderAndMarkers)) {
|
|
|
- Long batchNo = null;
|
|
|
- if (markSubject.getStage().equals(MarkStage.ROUGH_LEVEL)) {
|
|
|
- batchNo = paperRepo.findMaxRoughBatchNoByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
- } else if (markSubject.getStage().equals(MarkStage.LEVEL)) {
|
|
|
- batchNo = paperRepo.findMaxBatchNoByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
- } else if (markSubject.getStage().equals(MarkStage.SCORE)) {
|
|
|
- batchNo = paperRepo.findMaxScoreBatchNoByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
- }
|
|
|
for (Map<String, List<Long>> groupLeaderAndMarker : groupLeaderAndMarkers) {
|
|
|
Map<String, Object> tempMap = new HashMap<>();
|
|
|
List<Long> markerLeaders = groupLeaderAndMarker.get("markLeaders");
|
|
@@ -190,13 +182,28 @@ public class GroupingService {
|
|
|
// 评卷员
|
|
|
//各评卷员评卷进度
|
|
|
List<Object[]> qStats = null;
|
|
|
+ Long batchNo = null;
|
|
|
if (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())) {
|
|
|
- qStats = markTaskRoughLevelRepo.listGroupByQuestionAndMarkerAndBatchNoAndMarkerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markSubject.getTest(), batchNo, markers);
|
|
|
+ if (ParamCache.roughLevelConfigMap.get(String.valueOf(workId)).getLevelShowAllPaper() == 1) {
|
|
|
+ qStats = markTaskRoughLevelRepo.listGroupByQuestionAndMarkerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markSubject.getTest(), markers);
|
|
|
+ } else {
|
|
|
+ batchNo = paperRepo.findMaxRoughBatchNoByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
+ qStats = markTaskRoughLevelRepo.listGroupByQuestionAndBatchNoAndMarkerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markSubject.getTest(), batchNo, markers);
|
|
|
+ }
|
|
|
} else if (MarkStage.LEVEL.equals(markSubject.getStage())) {
|
|
|
- qStats = markTaskLevelRepo.listGroupByQuestionAndMarkerAndBatchNoAndMarkerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markSubject.getTest(), batchNo, markers);
|
|
|
+ if (ParamCache.levelConfigMap.get(String.valueOf(workId)).getLevelShowAllPaper() == 1) {
|
|
|
+ qStats = markTaskLevelRepo.listGroupByQuestionAndMarkerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markSubject.getTest(), markers);
|
|
|
+ } else {
|
|
|
+ batchNo = paperRepo.findMaxBatchNoByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
+ qStats = markTaskLevelRepo.listGroupByQuestionAndBatchNoAndMarkerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markSubject.getTest(), batchNo, markers);
|
|
|
+ }
|
|
|
} else if (MarkStage.SCORE.equals(markSubject.getStage())) {
|
|
|
- qStats = markTaskScoreRepo.listGroupByQuestionAndMarkerAndScoreBatchNoAndMakerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), batchNo, markers);
|
|
|
-
|
|
|
+ if (ParamCache.scoreConfigMap.get(String.valueOf(workId)).getScoreShowAllPaper() == 1) {
|
|
|
+ qStats = markTaskScoreRepo.listGroupByQuestionAndMakerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), markers);
|
|
|
+ } else {
|
|
|
+ batchNo = paperRepo.findMaxScoreBatchNoByWorkIdAndSubject(workId, markSubject.getSubject());
|
|
|
+ qStats = markTaskScoreRepo.listGroupByQuestionAndScoreBatchNoAndMakerId(workId, markSubject.getSubject().name(), markSubject.getStage().ordinal(), batchNo, markers);
|
|
|
+ }
|
|
|
}
|
|
|
if (qStats != null) {
|
|
|
List<MarkQuestionStatDTO> questionStatDTOs = new ArrayList<>();
|
|
@@ -215,10 +222,10 @@ public class GroupingService {
|
|
|
/**
|
|
|
* 总科组长进度
|
|
|
*
|
|
|
- * @param workId 工作ID
|
|
|
- * @param markSubject 科目
|
|
|
+ * @param workId 工作ID
|
|
|
+ * @param markSubject 科目
|
|
|
* @param userMarkLeaders 乘组长
|
|
|
- * @param objectMap 返回对象
|
|
|
+ * @param objectMap 返回对象
|
|
|
*/
|
|
|
public void getMakerLeaderProgress(Long workId, MarkSubject markSubject, List<Long> userMarkLeaders, Map<String, Object> objectMap) {
|
|
|
List<MarkUser> markUsers = markUserRepo.findByWorkIdAndSubjectAndRoleAndIdNotIn(workId, markSubject.getSubject(), Role.MARK_LEADER, userMarkLeaders);
|