Explorar o código

Merge branch 'dev_v3.3.0' into release_v3.3.0

xiaofei hai 1 ano
pai
achega
cdf36a18e5

+ 2 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkGroupController.java

@@ -59,8 +59,7 @@ public class MarkGroupController extends BaseController {
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result add(@RequestBody MarkGroupSingleDto markGroupSingleDto) {
         validMarkPaperForMark(markGroupSingleDto.getExamId(), markGroupSingleDto.getPaperNumber());
-        markGroupService.saveGroup(markGroupSingleDto);
-        return ResultUtil.ok(true);
+        return ResultUtil.ok(markGroupService.saveGroup(markGroupSingleDto));
     }
 
     /**
@@ -71,8 +70,7 @@ public class MarkGroupController extends BaseController {
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result update(@RequestBody MarkGroupSingleDto markGroupSingleDto) {
         validMarkPaperForMark(markGroupSingleDto.getExamId(), markGroupSingleDto.getPaperNumber());
-        markGroupService.updateGroup(markGroupSingleDto);
-        return ResultUtil.ok(true);
+        return ResultUtil.ok(markGroupService.updateGroup(markGroupSingleDto));
     }
 
     /**

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

@@ -39,9 +39,9 @@ public interface MarkGroupService extends IService<MarkGroup> {
 
     void updateMarkedCount(Long examId, String paperNumber, Integer groupNumber, int count);
 
-    void saveGroup(MarkGroupSingleDto markGroupSingleDto);
+    MarkGroup saveGroup(MarkGroupSingleDto markGroupSingleDto);
 
-    void updateGroup(MarkGroupSingleDto markGroupSingleDto);
+    MarkGroup updateGroup(MarkGroupSingleDto markGroupSingleDto);
 
     void updateTaskCount(Long examId, String paperNumber, Integer groupNumber, int taskCount);
 

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

@@ -257,7 +257,7 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
 
     @Transactional
     @Override
-    public void saveGroup(MarkGroupSingleDto markGroupSingleDto) {
+    public MarkGroup saveGroup(MarkGroupSingleDto markGroupSingleDto) {
         Long examId = markGroupSingleDto.getExamId();
         String paperNumber = markGroupSingleDto.getPaperNumber();
         MarkGroupDto markGroupDto = markGroupSingleDto.getGroupInfo();
@@ -341,11 +341,12 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
 
         // 更新MarkPaper中groupStatus
         markService.updateMarkGroupStatus(examId, paperNumber);
+        return markGroup;
     }
 
     @Transactional
     @Override
-    public void updateGroup(MarkGroupSingleDto markGroupSingleDto) {
+    public MarkGroup updateGroup(MarkGroupSingleDto markGroupSingleDto) {
         Long examId = markGroupSingleDto.getExamId();
         String paperNumber = markGroupSingleDto.getPaperNumber();
         MarkGroupDto markGroupDto = markGroupSingleDto.getGroupInfo();
@@ -407,6 +408,7 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
                 markSyncService.deleteMarkGroup(markGroup, false);
             }
         }
+        return markGroup;
     }
 
     private void updateMarkUserGroup(boolean isClear, Long examId, String paperNumber, MarkGroupDto markGroupDto) {

+ 39 - 37
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -67,6 +67,8 @@ public class MarkServiceImpl implements MarkService {
 
     @Resource
     private MarkUserGroupService markUserGroupService;
+    @Resource
+    private MarkUserClassService markUserClassService;
 
     @Resource
     private MarkTaskService markTaskService;
@@ -113,10 +115,8 @@ public class MarkServiceImpl implements MarkService {
     /**
      * 释放某个评卷员已完成的评卷任务
      *
-     * @param submitResult
-     *            评卷结果
-     * @param markUserGroup
-     *            评卷员
+     * @param submitResult  评卷结果
+     * @param markUserGroup 评卷员
      */
     @Override
     public void releaseTask(SubmitResult submitResult, MarkUserGroup markUserGroup) {
@@ -242,7 +242,7 @@ public class MarkServiceImpl implements MarkService {
     }
 
     private void updateStudentGroupStatus(Long studentId, Long examId, String paperNumber, Integer groupNumber,
-            SubjectiveStatus status) {
+                                          SubjectiveStatus status) {
         MarkGroupStudent gs = new MarkGroupStudent();
         gs.setStudentId(studentId);
         gs.setExamId(examId);
@@ -500,7 +500,7 @@ public class MarkServiceImpl implements MarkService {
                             // 实际双评任务数小于理论生成数 &&(剩余未生成双评的考生数量小于剩余应生成的数量)
                             needDouble = (doubleMarkTaskCount2 + doubleCount) < expectCount
                                     && ((studentCount - libraryCount + doubleCount) <= (expectCount
-                                            - doubleMarkTaskCount2 - doubleCount));
+                                    - doubleMarkTaskCount2 - doubleCount));
                         }
                         if (needDouble) {
                             markTask = new MarkTask();
@@ -624,35 +624,35 @@ public class MarkServiceImpl implements MarkService {
                 detail = scores;
             } else {
                 switch (policy) {
-                case AVG:
-                    // 直接累加
-                    score = BigDecimalUtils.add(score, current);
-                    for (int i = 0; i < detail.size(); i++) {
-                        try {
-                            ScoreItem item = detail.get(i);
-                            ScoreItem other = scores.get(i);
-                            item.setScore(BigDecimalUtils.add(item.getScore(), other.getScore()));
-                        } catch (Exception e) {
-                            continue;
+                    case AVG:
+                        // 直接累加
+                        score = BigDecimalUtils.add(score, current);
+                        for (int i = 0; i < detail.size(); i++) {
+                            try {
+                                ScoreItem item = detail.get(i);
+                                ScoreItem other = scores.get(i);
+                                item.setScore(BigDecimalUtils.add(item.getScore(), other.getScore()));
+                            } catch (Exception e) {
+                                continue;
+                            }
                         }
-                    }
-                    break;
-                case MAX:
-                    // 高分优先
-                    if (current > score) {
-                        score = current;
-                        detail = scores;
-                    }
-                    break;
-                case MIN:
-                    // 低分优先
-                    if (current < score) {
-                        score = current;
-                        detail = scores;
-                    }
-                    break;
-                default:
-                    break;
+                        break;
+                    case MAX:
+                        // 高分优先
+                        if (current > score) {
+                            score = current;
+                            detail = scores;
+                        }
+                        break;
+                    case MIN:
+                        // 低分优先
+                        if (current < score) {
+                            score = current;
+                            detail = scores;
+                        }
+                        break;
+                    default:
+                        break;
                 }
             }
         }
@@ -669,7 +669,7 @@ public class MarkServiceImpl implements MarkService {
     }
 
     private void updateStudentGroupScore(Long studentId, Long examId, String paperNumber, MarkGroup group, double score,
-            List<ScoreItem> scoreList) {
+                                         List<ScoreItem> scoreList) {
         // scoreDao.deleteByStudentIdAndGroupNumber(studentId, groupNumber);
         List<MarkQuestion> questions = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId,
                 paperNumber, group.getNumber(), false);
@@ -883,6 +883,8 @@ public class MarkServiceImpl implements MarkService {
                     markGroup.getPaperNumber(), markGroup.getNumber());
             markGroupService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
                     markGroup.getPaperNumber(), markGroup.getNumber());
+            // 分班阅数据
+            markUserClassService.deleteByExamIdAndPaperNumberAndGroupNumberAndClassName(markGroup.getExamId(), markGroup.getPaperNumber(), markGroup.getNumber(), null);
             // 更新MarkPaper中groupStatus
             updateMarkGroupStatus(markGroup.getExamId(), markGroup.getPaperNumber());
         }
@@ -1001,7 +1003,7 @@ public class MarkServiceImpl implements MarkService {
             scoreList.add(markSubjectiveScore.getScore());
         }
         groupResult.setGroupScore(scoreList.stream().collect(Collectors.summingDouble(x -> x)));
-        groupResult.setScoreList(scoreList.toArray(new Double[] {}));
+        groupResult.setScoreList(scoreList.toArray(new Double[]{}));
         markSubjectiveScoreService.saveOrUpdateBatchByMultiId(markSubjectiveScoreList);
     }
 
@@ -1011,7 +1013,7 @@ public class MarkServiceImpl implements MarkService {
 
     @Override
     public IPage<Task> getHistory(Long userId, int pageNumber, int pageSize, Sort sort, String order, Long examId,
-            String paperNumber, Integer groupNumber, String secretNumber, Double markerScore) {
+                                  String paperNumber, Integer groupNumber, String secretNumber, Double markerScore) {
         if (!"marker_time".equals(order) && !"marker_score".equals(order)) {
             order = "marker_time";
         }

+ 8 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserClassServiceImpl.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.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -19,6 +20,7 @@ import com.qmth.teachcloud.mark.mapper.MarkUserClassMapper;
 import com.qmth.teachcloud.mark.service.MarkGroupService;
 import com.qmth.teachcloud.mark.service.MarkUserClassService;
 import com.qmth.teachcloud.mark.service.MarkUserGroupService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -119,10 +121,13 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
     @Override
     public boolean deleteByExamIdAndPaperNumberAndGroupNumberAndClassName(Long examId, String paperNumber, Integer groupNumber, String className) {
         UpdateWrapper<MarkUserClass> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(MarkUserClass::getExamId, examId)
+        LambdaUpdateWrapper<MarkUserClass> lambdaUpdateWrapper = updateWrapper.lambda();
+        lambdaUpdateWrapper.eq(MarkUserClass::getExamId, examId)
                 .eq(MarkUserClass::getPaperNumber, paperNumber)
-                .eq(MarkUserClass::getGroupNumber, groupNumber)
-                .eq(MarkUserClass::getClassName, className);
+                .eq(MarkUserClass::getGroupNumber, groupNumber);
+        if (StringUtils.isNotBlank(className)) {
+            lambdaUpdateWrapper.eq(MarkUserClass::getClassName, className);
+        }
         return this.remove(updateWrapper);
     }