|
@@ -4,15 +4,14 @@ import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
|
|
import cn.com.qmth.stmms.ms.core.cache.ParamCache;
|
|
import cn.com.qmth.stmms.ms.core.cache.ParamCache;
|
|
import cn.com.qmth.stmms.ms.core.domain.*;
|
|
import cn.com.qmth.stmms.ms.core.domain.*;
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
|
|
-import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskRoughLevel;
|
|
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskScore;
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskScore;
|
|
import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
|
|
+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.repository.*;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.ChangeLevelAssembler;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.ChangeLevelAssembler;
|
|
import cn.com.qmth.stmms.ms.marking.dto.ChangeLevelDTO;
|
|
import cn.com.qmth.stmms.ms.marking.dto.ChangeLevelDTO;
|
|
-import cn.com.qmth.stmms.ms.marking.service.MarkingLevelService;
|
|
|
|
-import cn.com.qmth.stmms.ms.marking.service.MarkingRoughLevelService;
|
|
|
|
|
|
+import cn.com.qmth.stmms.ms.marking.utils.RandomUtil;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Pageable;
|
|
import org.springframework.data.domain.Pageable;
|
|
@@ -38,39 +37,26 @@ public class ChangeLevelApi {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private PaperRepo paperRepo;
|
|
private PaperRepo paperRepo;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ChangeLevelRepo changeLevelRepo;
|
|
private ChangeLevelRepo changeLevelRepo;
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private MarkTaskRoughLevelRepo markTaskRoughLevelRepo;
|
|
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
private MarkTaskLevelRepo markTaskLevelRepo;
|
|
private MarkTaskLevelRepo markTaskLevelRepo;
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
private MarkTaskScoreRepo markTaskScoreRepo;
|
|
private MarkTaskScoreRepo markTaskScoreRepo;
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
private ChangeLevelAssembler changeLevelAssembler;
|
|
private ChangeLevelAssembler changeLevelAssembler;
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private MarkingRoughLevelService markingRoughLevelService;
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private MarkingLevelService markingLevelService;
|
|
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private MarkLogRepo markLogRepo;
|
|
private MarkLogRepo markLogRepo;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private WorkRepo workRepo;
|
|
private WorkRepo workRepo;
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- MarkUserRepo markUserRepo;
|
|
|
|
-
|
|
|
|
|
|
+ private MarkUserRepo markUserRepo;
|
|
|
|
+ @Resource
|
|
|
|
+ private MarkSubjectRepo markSubjectRepo;
|
|
@Resource
|
|
@Resource
|
|
- MarkSubjectRepo markSubjectRepo;
|
|
|
|
|
|
+ private ChangeLevelTaskRepo changeLevelTaskRepo;
|
|
|
|
+ @Autowired
|
|
|
|
+ RandomUtil randomUtil;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 查询改档列表
|
|
* 查询改档列表
|
|
@@ -109,7 +95,7 @@ public class ChangeLevelApi {
|
|
if (MarkStage.LEVEL.equals(markSubject.getStage())) {
|
|
if (MarkStage.LEVEL.equals(markSubject.getStage())) {
|
|
papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndRoughLevelIsNull(workId, Subject.valueOf(subject), questionId, false, markSubject.getTest());
|
|
papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndRoughLevelIsNull(workId, Subject.valueOf(subject), questionId, false, markSubject.getTest());
|
|
} else if (MarkStage.SCORE.equals(markSubject.getStage())) {
|
|
} else if (MarkStage.SCORE.equals(markSubject.getStage())) {
|
|
- papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(workId, Subject.valueOf(subject), questionId, false, markSubject.getTest());
|
|
|
|
|
|
+ papers = paperRepo.findByWorkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndIsShiftTrue(workId, Subject.valueOf(subject), questionId, false, markSubject.getTest());
|
|
}
|
|
}
|
|
if (papers != null && !papers.isEmpty()) {
|
|
if (papers != null && !papers.isEmpty()) {
|
|
CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
|
|
CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
|
|
@@ -153,9 +139,7 @@ public class ChangeLevelApi {
|
|
|
|
|
|
Page<ChangeLevel> levels = changeLevelRepo.findAll(specification, pageable);
|
|
Page<ChangeLevel> levels = changeLevelRepo.findAll(specification, pageable);
|
|
|
|
|
|
- levels.getContent().forEach(m -> {
|
|
|
|
- levelDTOs.add(changeLevelAssembler.toDTO(m));
|
|
|
|
- });
|
|
|
|
|
|
+ levels.getContent().forEach(m -> levelDTOs.add(changeLevelAssembler.toDTO(m)));
|
|
return new PageableDTO(levelDTOs, levels.getTotalElements(), levels.getTotalPages(), pageable.getPageNumber());
|
|
return new PageableDTO(levelDTOs, levels.getTotalElements(), levels.getTotalPages(), pageable.getPageNumber());
|
|
}
|
|
}
|
|
|
|
|
|
@@ -171,26 +155,37 @@ public class ChangeLevelApi {
|
|
public ResponseEntity changeLevel(@PathVariable MarkSubject markSubject,
|
|
public ResponseEntity changeLevel(@PathVariable MarkSubject markSubject,
|
|
@RequestParam Long paperId,
|
|
@RequestParam Long paperId,
|
|
@RequestParam String level,
|
|
@RequestParam String level,
|
|
- @RequestParam Long userId) {
|
|
|
|
|
|
+ @RequestParam Long userId,
|
|
|
|
+ @RequestParam(required = false, defaultValue = "-1") Long paperCheckId) {
|
|
boolean roughLevelEnable = ParamCache.levelConfigMap.get(String.valueOf(markSubject.getWorkId())).getRoughLevelEnable() == 1;
|
|
boolean roughLevelEnable = ParamCache.levelConfigMap.get(String.valueOf(markSubject.getWorkId())).getRoughLevelEnable() == 1;
|
|
- if (!roughLevelEnable) {
|
|
|
|
- //只有打分阶段才能改档
|
|
|
|
- if (!Objects.equals(markSubject.getStage(), MarkStage.SCORE)) {
|
|
|
|
- throw new RuntimeException("未开启粗分档,只有打分阶段才允许改档");
|
|
|
|
|
|
+ // -1为科组长改档
|
|
|
|
+ if (paperCheckId == -1) {
|
|
|
|
+ if (!roughLevelEnable) {
|
|
|
|
+ //只有打分阶段才能改档
|
|
|
|
+ if (!Objects.equals(markSubject.getStage(), MarkStage.SCORE)) {
|
|
|
|
+ throw new RuntimeException("未开启粗分档,只有打分阶段才允许改档");
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //只有打分阶段才能改档
|
|
|
|
+ if (!Objects.equals(markSubject.getStage(), MarkStage.LEVEL)
|
|
|
|
+ && !Objects.equals(markSubject.getStage(), MarkStage.SCORE)) {
|
|
|
|
+ throw new RuntimeException("已开启粗分档,只有细分档阶段或者打分阶段才允许改档");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
//只有打分阶段才能改档
|
|
//只有打分阶段才能改档
|
|
- if (!Objects.equals(markSubject.getStage(), MarkStage.LEVEL)
|
|
|
|
- && !Objects.equals(markSubject.getStage(), MarkStage.SCORE)) {
|
|
|
|
- throw new RuntimeException("已开启粗分档,只有细分档阶段或者打分阶段才允许改档");
|
|
|
|
|
|
+ if (!Objects.equals(markSubject.getStage(), MarkStage.SCORE)) {
|
|
|
|
+ throw new RuntimeException("试卷抽查改档功能,只有打分阶段才允许改档");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
Paper paper = paperRepo.findOne(paperId);
|
|
Paper paper = paperRepo.findOne(paperId);
|
|
MarkUser markUser = markUserRepo.findOne(userId);
|
|
MarkUser markUser = markUserRepo.findOne(userId);
|
|
|
|
+ if (!Role.MARK_LEADER.equals(markUser.getRole()) && !Role.INSPECTION.equals(markUser.getRole())) {
|
|
|
|
+ throw new RuntimeException("用户没有此操作权限");
|
|
|
|
+ }
|
|
|
|
|
|
- //
|
|
|
|
- ChangeLevel changeLevelCurr = changeLevelRepo.findByWorkIdAndSubjectAndStageAndPaperIdAndAuditStatusAndIsCurr(markSubject.getWorkId(), markSubject.getSubject().name(), markSubject.getStage(), paperId);
|
|
|
|
|
|
+ ChangeLevel changeLevelCurr = changeLevelRepo.findByWorkIdAndSubjectAndStageAndPaperIdAndPaperCheckIdAndAuditStatusAndIsCurr(markSubject.getWorkId(), markSubject.getSubject().name(), markSubject.getStage(), paperId, paperCheckId);
|
|
if (changeLevelCurr != null) {
|
|
if (changeLevelCurr != null) {
|
|
if (MarkStage.LEVEL.equals(changeLevelCurr.getStage())) {
|
|
if (MarkStage.LEVEL.equals(changeLevelCurr.getStage())) {
|
|
if (Objects.isNull(paper.getRoughLevel())) {
|
|
if (Objects.isNull(paper.getRoughLevel())) {
|
|
@@ -216,13 +211,15 @@ public class ChangeLevelApi {
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
changeLevelRepo.save(list);
|
|
changeLevelRepo.save(list);
|
|
|
|
|
|
- ChangeLevel changeLevel = changeLevelRepo.findByWorkIdAndSubjectAndStageAndPaperId(markSubject.getWorkId(), markSubject.getSubject().name(), markSubject.getStage(), paperId);
|
|
|
|
|
|
+ ChangeLevel changeLevel = changeLevelRepo.findByWorkIdAndSubjectAndStageAndPaperIdAndPaperCheckId(markSubject.getWorkId(), markSubject.getSubject().name(), markSubject.getStage(), paperId, paperCheckId);
|
|
if (changeLevel == null) {
|
|
if (changeLevel == null) {
|
|
changeLevel = new ChangeLevel();
|
|
changeLevel = new ChangeLevel();
|
|
changeLevel.setWorkId(markSubject.getWorkId());
|
|
changeLevel.setWorkId(markSubject.getWorkId());
|
|
changeLevel.setSubject(markSubject.getSubject().name());
|
|
changeLevel.setSubject(markSubject.getSubject().name());
|
|
changeLevel.setStage(markSubject.getStage());
|
|
changeLevel.setStage(markSubject.getStage());
|
|
changeLevel.setPaperId(paperId);
|
|
changeLevel.setPaperId(paperId);
|
|
|
|
+ changeLevel.setPaperCheckId(paperCheckId);
|
|
|
|
+ changeLevel.setRole(markUser.getRole());
|
|
if (MarkStage.LEVEL.equals(markSubject.getStage())) {
|
|
if (MarkStage.LEVEL.equals(markSubject.getStage())) {
|
|
changeLevel.setOriginalLevel(paper.getRoughLevel());
|
|
changeLevel.setOriginalLevel(paper.getRoughLevel());
|
|
} else if (MarkStage.SCORE.equals(markSubject.getStage())) {
|
|
} else if (MarkStage.SCORE.equals(markSubject.getStage())) {
|
|
@@ -248,7 +245,8 @@ public class ChangeLevelApi {
|
|
|
|
|
|
//记录日志
|
|
//记录日志
|
|
Work work = workRepo.findOne(paper.getWorkId());
|
|
Work work = workRepo.findOne(paper.getWorkId());
|
|
- MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), markUser.getSubject(), changeLevel.getStage(), paper.getTest(), paper.getExamNumber(), paper.getStudentName(), markUser.getId(), markUser.getName(), markUser.getRole(), MarkLogOperType.CHANGE_LEVEL_APPLY.getId(),MarkLogOperType.CHANGE_LEVEL_APPLY.getName(), changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, new Date());
|
|
|
|
|
|
+ MarkLogOperType markLogOperType = Role.INSPECTION.equals(markUser.getRole()) ? MarkLogOperType.INSPECTION_CHANGE_LEVEL_APPLY : MarkLogOperType.CHANGE_LEVEL_APPLY;
|
|
|
|
+ MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), markSubject.getSubject(), changeLevel.getStage(), paper.getTest(), paper.getExamNumber(), paper.getStudentName(), markUser.getId(), markUser.getName(), markUser.getRole(), markLogOperType.getId(), markLogOperType.getName(), changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, new Date());
|
|
markLogRepo.save(markLog);
|
|
markLogRepo.save(markLog);
|
|
|
|
|
|
return new ResponseEntity(HttpStatus.OK);
|
|
return new ResponseEntity(HttpStatus.OK);
|
|
@@ -267,6 +265,7 @@ public class ChangeLevelApi {
|
|
@RequestParam Long userId) {
|
|
@RequestParam Long userId) {
|
|
ChangeLevel changeLevel = changeLevelRepo.findOne(id);
|
|
ChangeLevel changeLevel = changeLevelRepo.findOne(id);
|
|
changeLevel.setAuditStatus(auditStatus);
|
|
changeLevel.setAuditStatus(auditStatus);
|
|
|
|
+ changeLevel.setAuditDate(new Date());
|
|
changeLevelRepo.save(changeLevel);
|
|
changeLevelRepo.save(changeLevel);
|
|
//同意
|
|
//同意
|
|
if (auditStatus == 1) {
|
|
if (auditStatus == 1) {
|
|
@@ -275,16 +274,16 @@ public class ChangeLevelApi {
|
|
//记录日志
|
|
//记录日志
|
|
MarkUser markUser = markUserRepo.findOne(userId);
|
|
MarkUser markUser = markUserRepo.findOne(userId);
|
|
Work work = workRepo.findOne(paper.getWorkId());
|
|
Work work = workRepo.findOne(paper.getWorkId());
|
|
- MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), paper.getSubject(), changeLevel.getStage(), paper.getTest(), paper.getExamNumber(), paper.getStudentName(), markUser.getId(), markUser.getName(), markUser.getRole(), MarkLogOperType.CHANGE_LEVEL_AGREE.getId(),MarkLogOperType.CHANGE_LEVEL_AGREE.getName(), changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, new Date());
|
|
|
|
|
|
+ MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), paper.getSubject(), changeLevel.getStage(), paper.getTest(), paper.getExamNumber(), paper.getStudentName(), markUser.getId(), markUser.getName(), markUser.getRole(), MarkLogOperType.CHANGE_LEVEL_AGREE.getId(), MarkLogOperType.CHANGE_LEVEL_AGREE.getName(), changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, new Date());
|
|
markLogRepo.save(markLog);
|
|
markLogRepo.save(markLog);
|
|
|
|
|
|
if (MarkStage.LEVEL.equals(changeLevel.getStage())) {
|
|
if (MarkStage.LEVEL.equals(changeLevel.getStage())) {
|
|
//重置细分档档位
|
|
//重置细分档档位
|
|
paper.setLevel(null);
|
|
paper.setLevel(null);
|
|
|
|
|
|
- List<MarkTaskRoughLevel> markTasks = markTaskRoughLevelRepo.findByPaperId(paper.getId());
|
|
|
|
- List<String> ranges = markTasks.stream().map(m -> m.getMarkerId().toString()).collect(Collectors.toList());
|
|
|
|
- markingRoughLevelService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges), true, false, changeLevel.getCreateId());
|
|
|
|
|
|
+// List<MarkTaskRoughLevel> markTasks = markTaskRoughLevelRepo.findByPaperId(paper.getId());
|
|
|
|
+// List<String> ranges = markTasks.stream().map(m -> m.getMarkerId().toString()).collect(Collectors.toList());
|
|
|
|
+// markingRoughLevelService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges), true, false, changeLevel.getCreateId());
|
|
|
|
|
|
//重置已经打分的数据
|
|
//重置已经打分的数据
|
|
List<MarkTaskLevel> markTasksLevels = markTaskLevelRepo.findByPaperId(paper.getId());
|
|
List<MarkTaskLevel> markTasksLevels = markTaskLevelRepo.findByPaperId(paper.getId());
|
|
@@ -294,17 +293,21 @@ public class ChangeLevelApi {
|
|
o.setOriginLevel(o.getResult());
|
|
o.setOriginLevel(o.getResult());
|
|
}
|
|
}
|
|
o.setResult(null);
|
|
o.setResult(null);
|
|
- o.setLevel(null);
|
|
|
|
|
|
+ o.setLevel(changeLevel.getSuggestLevel());
|
|
});
|
|
});
|
|
markTaskLevelRepo.save(markTasksLevels);
|
|
markTaskLevelRepo.save(markTasksLevels);
|
|
|
|
+
|
|
|
|
+ // 生成确认任务
|
|
|
|
+ List<ChangeLevelTask> changeLevelTaskList = markTasksLevels.stream().map(m -> ChangeLevelTask.toChangeLevelTask(m, changeLevel.getSuggestLevel())).collect(Collectors.toList());
|
|
|
|
+ changeLevelTaskRepo.save(changeLevelTaskList);
|
|
}
|
|
}
|
|
} else if (MarkStage.SCORE.equals(changeLevel.getStage())) {
|
|
} else if (MarkStage.SCORE.equals(changeLevel.getStage())) {
|
|
//重置分数
|
|
//重置分数
|
|
paper.setScore(null);
|
|
paper.setScore(null);
|
|
|
|
|
|
- List<MarkTaskLevel> markTasks = markTaskLevelRepo.findByPaperId(paper.getId());
|
|
|
|
- List<String> ranges = markTasks.stream().map(m -> m.getMarkerId().toString()).collect(Collectors.toList());
|
|
|
|
- markingLevelService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges), true, false, changeLevel.getCreateId());
|
|
|
|
|
|
+// List<MarkTaskLevel> markTasks = markTaskLevelRepo.findByPaperId(paper.getId());
|
|
|
|
+// List<String> ranges = markTasks.stream().map(m -> m.getMarkerId().toString()).collect(Collectors.toList());
|
|
|
|
+// markingLevelService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges), true, false, changeLevel.getCreateId());
|
|
|
|
|
|
//重置已经打分的数据
|
|
//重置已经打分的数据
|
|
List<MarkTaskScore> markTasksScore = markTaskScoreRepo.findByPaperId(paper.getId());
|
|
List<MarkTaskScore> markTasksScore = markTaskScoreRepo.findByPaperId(paper.getId());
|
|
@@ -314,9 +317,12 @@ public class ChangeLevelApi {
|
|
o.setOriginLevel(o.getResult());
|
|
o.setOriginLevel(o.getResult());
|
|
}
|
|
}
|
|
o.setResult(null);
|
|
o.setResult(null);
|
|
- o.setLevel(null);
|
|
|
|
|
|
+ o.setLevel(changeLevel.getSuggestLevel());
|
|
});
|
|
});
|
|
markTaskScoreRepo.save(markTasksScore);
|
|
markTaskScoreRepo.save(markTasksScore);
|
|
|
|
+
|
|
|
|
+ List<ChangeLevelTask> changeLevelTaskList = markTasksScore.stream().map(m -> ChangeLevelTask.toChangeLevelTask(m, changeLevel.getSuggestLevel(), randomUtil.randomLevel(m.getWorkId()))).collect(Collectors.toList());
|
|
|
|
+ changeLevelTaskRepo.save(changeLevelTaskList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//状态设置
|
|
//状态设置
|
|
@@ -327,5 +333,4 @@ public class ChangeLevelApi {
|
|
}
|
|
}
|
|
return new ResponseEntity(HttpStatus.OK);
|
|
return new ResponseEntity(HttpStatus.OK);
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|