Browse Source

3.4.4 update-20250317,bug修复

xiaofei 3 months ago
parent
commit
23752f77e2

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicPrintConfigServiceImpl.java

@@ -70,6 +70,10 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
             }
         }
 
+        if (basicPrintConfig.getDefaultSerialNumber() == 2 && (basicPrintConfig.getTwoPaperEnable() == null || !basicPrintConfig.getTwoPaperEnable())) {
+            throw ExceptionResultEnum.ERROR.exception("默认抽取卷型为卷2/B卷时,交卷数量必须勾选");
+        }
+
         // 新增
         if (Objects.isNull(basicPrintConfig.getId())) {
             basicPrintConfig.setId(SystemConstant.getDbUuid());

+ 1 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkStudent.java

@@ -151,6 +151,7 @@ public class MarkStudent implements Serializable {
     private String objectiveScoreList;
 
     @ApiModelProperty(value = "主观题状态")
+    @TableField(value = "subjective_status", updateStrategy = FieldStrategy.IGNORED)
     private SubjectiveStatus subjectiveStatus;
 
     @ApiModelProperty(value = "主观总分")

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

@@ -46,4 +46,6 @@ public interface MarkArbitrateHistoryService extends IService<MarkArbitrateHisto
     Integer waitArbitrateCount(Long examId, String paperNumber, Long questionId, List<String> classNames);
 
     void deleteByExamIdAndPaperNumberAndQuestionId(Long examId, String paperNumber, Long questionId);
+
+    void deleteByExamIdAndPaperNumberAndStudentIdAndQuestionId(Long examId, String paperNumber, Long studentId, Long questionId);
 }

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

@@ -31,4 +31,6 @@ public interface MarkProblemHistoryService extends IService<MarkProblemHistory>
 	MarkProblemHistory findByTaskIdAndStatus(Long taskId, MarkProblemStatus status);
 
     Integer countByExamIdAndPaperNumberAndStatusAndClassNameIn(Long examId, String paperNumber, MarkProblemStatus status, List<String> classNames);
+
+    void deleteByExamIdAndPaperNumberAndTaskId(Long examId, String paperNumber, Long id);
 }

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

@@ -53,4 +53,6 @@ public interface MarkSubjectiveScoreService extends IMppService<MarkSubjectiveSc
      * @return
      */
     List<MarkAreaDto> findMarkArea(Long studentId);
+
+    void deleteByStudentIdAndQuestionId(Long studentId, Long questionId);
 }

+ 10 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkArbitrateHistoryServiceImpl.java

@@ -267,6 +267,16 @@ public class MarkArbitrateHistoryServiceImpl extends ServiceImpl<MarkArbitrateHi
         this.remove(updateWrapper);
     }
 
+    @Override
+    public void deleteByExamIdAndPaperNumberAndStudentIdAndQuestionId(Long examId, String paperNumber, Long studentId, Long questionId) {
+        UpdateWrapper<MarkArbitrateHistory> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(MarkArbitrateHistory::getExamId, examId)
+                .eq(MarkArbitrateHistory::getPaperNumber, paperNumber)
+                .eq(MarkArbitrateHistory::getStudentId, studentId)
+                .eq(MarkArbitrateHistory::getQuestionId, questionId);
+        this.remove(updateWrapper);
+    }
+
     private void releaseTask(Long taskId) {
         synchronized (currentTaskMap) {
             currentTaskMap.remove(taskId);

+ 10 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkProblemHistoryServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.MarkStudentVo;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkProblemDto;
+import com.qmth.teachcloud.mark.dto.mark.manage.Task;
 import com.qmth.teachcloud.mark.entity.MarkProblemHistory;
 import com.qmth.teachcloud.mark.entity.MarkTask;
 import com.qmth.teachcloud.mark.enums.LockType;
@@ -146,4 +147,13 @@ public class MarkProblemHistoryServiceImpl extends ServiceImpl<MarkProblemHistor
     public Integer countByExamIdAndPaperNumberAndStatusAndClassNameIn(Long examId, String paperNumber, MarkProblemStatus status, List<String> classNames) {
         return this.baseMapper.countByExamIdAndPaperNumberAndStatusAndClassNameIn(examId, paperNumber, status, classNames);
     }
+
+    @Override
+    public void deleteByExamIdAndPaperNumberAndTaskId(Long examId, String paperNumber, Long taskId) {
+        UpdateWrapper<MarkProblemHistory> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(MarkProblemHistory::getExamId, examId)
+                .eq(MarkProblemHistory::getPaperNumber, paperNumber)
+                .eq(MarkProblemHistory::getTaskId, taskId);
+        this.remove(updateWrapper);
+    }
 }

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

@@ -178,11 +178,15 @@ public class MarkServiceImpl implements MarkService {
             for (MarkTask markTask : markTaskList) {
                 Long studentId = markTask.getStudentId();
                 markTaskService.resetById(markTask.getId(), null, null, null, null, MarkTaskStatus.WAITING);
+                markSubjectiveScoreService.deleteByStudentIdAndQuestionId(studentId, questionId);
+                markProblemHistoryService.deleteByExamIdAndPaperNumberAndTaskId(examId, paperNumber, markTask.getId());
+                markArbitrateHistoryService.deleteByExamIdAndPaperNumberAndStudentIdAndQuestionId(examId, paperNumber, studentId, questionId);
                 lockService.waitlock(LockType.STUDENT, markTask.getStudentId());
                 markStudentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.UNMARK, null, null);
                 lockService.unlock(LockType.STUDENT, markTask.getStudentId());
             }
             markUserQuestionService.resetById(markUserQuestion.getId());
+
         }
         this.updateMarkedCount(examId, paperNumber, questionId);
         releaseByMarkUserGroup(markUserQuestion);

+ 4 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -181,7 +181,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                                                String scoreList) {
         UpdateWrapper<MarkStudent> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkStudent::getSubjectiveStatus, status).set(MarkStudent::getSubjectiveScore, score)
-                .set(MarkStudent::getSubjectiveScoreList, scoreList).eq(MarkStudent::getId, studentId);
+                .set(MarkStudent::getSubjectiveScoreList, scoreList)
+                .set(MarkStudent::getCheckUserId, null)
+                .set(MarkStudent::getCheckTime, null)
+                .eq(MarkStudent::getId, studentId);
         this.update(updateWrapper);
     }
 

+ 9 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkSubjectiveScoreServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.mark.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.Update;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
 import com.qmth.teachcloud.mark.bean.archivescore.QuestionVo;
@@ -131,4 +132,12 @@ public class MarkSubjectiveScoreServiceImpl extends MppServiceImpl<MarkSubjectiv
     public List<MarkAreaDto> findMarkArea(Long studentId) {
         return this.baseMapper.findMarkArea(studentId);
     }
+
+    @Override
+    public void deleteByStudentIdAndQuestionId(Long studentId, Long questionId) {
+        UpdateWrapper<MarkSubjectiveScore> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(MarkSubjectiveScore::getStudentId, studentId)
+                .eq(MarkSubjectiveScore::getQuestionId, questionId);
+        this.remove(updateWrapper);
+    }
 }