ting.yin 1 an în urmă
părinte
comite
ff8438755b

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkGroupStudentService.java

@@ -19,4 +19,6 @@ public interface MarkGroupStudentService extends IService<MarkGroupStudent> {
     void deleteByStudentId(Long studentId);
 
     void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber);
+
+	MarkGroupStudent getByStudentIdAndGroupNumber(Long studentId, Integer groupNumber);
 }

+ 8 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkGroupStudentServiceImpl.java

@@ -43,4 +43,12 @@ public class MarkGroupStudentServiceImpl extends ServiceImpl<MarkGroupStudentMap
                 .eq(MarkGroupStudent::getGroupNumber, groupNumber);
         this.remove(updateWrapper);
     }
+
+	@Override
+	public MarkGroupStudent getByStudentIdAndGroupNumber(Long studentId, Integer groupNumber) {
+		QueryWrapper<MarkGroupStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(MarkGroupStudent::getStudentId, studentId)
+                .eq(MarkGroupStudent::getGroupNumber, groupNumber);
+        return this.getOne(queryWrapper);
+	}
 }

+ 10 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -233,13 +233,16 @@ public class MarkServiceImpl implements MarkService {
 
 	private void updateStudentGroupStatus(Long studentId, Long examId, String paperNumber, Integer groupNumber,
 			SubjectiveStatus status) {
-		MarkGroupStudent gs = new MarkGroupStudent();
-		gs.setStudentId(studentId);
-		gs.setExamId(examId);
-		gs.setPaperNumber(paperNumber);
-		gs.setGroupNumber(groupNumber);
+		MarkGroupStudent gs = markGroupStudentService.getByStudentIdAndGroupNumber(studentId, groupNumber);
+		if(gs ==null) {
+			gs = new MarkGroupStudent();
+			gs.setStudentId(studentId);
+			gs.setExamId(examId);
+			gs.setPaperNumber(paperNumber);
+			gs.setGroupNumber(groupNumber);
+		}
 		gs.setStatus(status);
-		markGroupStudentService.save(gs);
+		markGroupStudentService.saveOrUpdate(gs);
 	}
 
 	@Override
@@ -931,6 +934,7 @@ public class MarkServiceImpl implements MarkService {
 		List<Task> recordsDtos = new ArrayList<Task>();
 		for (MarkTask task : list.getRecords()) {
 			Task dto = taskService.build(task);
+			dto.setPrevious(true);
 			recordsDtos.add(dto);
 		}
 		IPage<Task> result = new Page<Task>();

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -162,7 +162,7 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
                             && i < pageEntity.getQuestion().getResult().size(); i++) {
                         String result = pageEntity.getQuestion().getResult().get(i);
                         MarkQuestion question = questiongList.get(i);
-                        if (question.getQuestionType().equals(QuestionType.MULTIPLE) && result != null && result.contains(OMR_BLANK)) {
+                        if (question.getQuestionType().equals(QuestionType.MULTIPLE.getValue()) && result != null && result.contains(OMR_BLANK)) {
                             OmrTaskItem item = new OmrTaskItem();
                             item.setIndex(i + 1);
                             item.setField(OmrField.QUESTION);
@@ -182,7 +182,7 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
                             && i < pageEntity.getQuestion().getResult().size(); i++) {
                         String result = pageEntity.getQuestion().getResult().get(i);
                         MarkQuestion question = questiongList.get(i);
-                        if (question.getQuestionType().equals(QuestionType.SINGLE) && result != null && result.contains(OMR_BLANK)) {
+                        if (question.getQuestionType().equals(QuestionType.SINGLE.getValue()) && result != null && result.contains(OMR_BLANK)) {
                             OmrTaskItem item = new OmrTaskItem();
                             item.setIndex(i + 1);
                             item.setField(OmrField.QUESTION);

+ 1 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java

@@ -212,6 +212,7 @@ public class TaskServiceImpl implements TaskService {
 		task.setPaperNumber(t.getPaperNumber());
 		task.setMarkerScore(t.getMarkerScore());
 		task.setRejected(t.getStatus().equals(MarkTaskStatus.REJECTED));
+		task.setPrevious(t.getStatus().equals(MarkTaskStatus.MARKED));
 		task.setStudentId(t.getStudentId());
 		task.setStudentCode(t.getStudentCode());
 		task.setQuestionList(buildMarkStep(t));