ソースを参照

3.3.0 fixbugs

yin 1 年間 前
コミット
08bb8f719b

+ 4 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -23,6 +23,7 @@ import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.mark.*;
+import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
@@ -111,6 +112,8 @@ public class MarkServiceImpl implements MarkService {
 
     @Resource
     TeachcloudCommonService teachcloudCommonService;
+    @Resource
+    private SysUserService sysUserService;
 
     /**
      * 释放某个评卷员已完成的评卷任务
@@ -764,6 +767,7 @@ public class MarkServiceImpl implements MarkService {
     public MarkSettingDto getSetting(SysUser user, Long examId, String paperNumber, Integer groupNumber) {
         MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId,
                 paperNumber, groupNumber, user.getId());
+        user = sysUserService.getByUserId(user.getId());
         MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
 
         MarkSettingDto dto = new MarkSettingDto();

+ 7 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -337,6 +337,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 ScanPaperPage page = scanPaperPageService.findPaperIdAndIndex(paper.getId(), 1);
                 student.setOmrAbsent(page.getAbsent() == null ? false : page.getAbsent().getResult());
                 student.setOmrAbsentChecked(false);
+                if(student.getOmrAbsent()){
+                    student.setObjectiveScore(null);
+                    student.setObjectiveScoreList(null);
+                }
                 // student.setDevice(batchService.findByPaperId(paper.getId()).getDevice());
             }
 
@@ -806,10 +810,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         }
         lw.eq(MarkStudent::getId, student.getId());
         update(lw);
-        if (omrAbsent) {
-            scanOmrTaskService.deleteByStudentId(student.getExamId(), student.getId());
-        } else {
+        scanOmrTaskService.deleteByStudentId(student.getExamId(), student.getId());
+        if (!omrAbsent) {
             calculateObjectiveScore(student);
+            scanOmrTaskService.saveTask(student.getId());
         }
         markPaperService.updateAbsentCount(examId, student.getPaperNumber(),
                 this.countAbsentByExamIdAndPaperNumber(examId, student.getPaperNumber()));