Parcourir la source

新增ai评卷参数表

wangliang il y a 2 mois
Parent
commit
b69e851847

+ 38 - 15
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkAiQuestionParamController.java

@@ -5,7 +5,6 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-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.FieldUniqueEnum;
@@ -14,7 +13,10 @@ import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import com.qmth.teachcloud.mark.entity.*;
+import com.qmth.teachcloud.mark.entity.MarkAiQuestionLevel;
+import com.qmth.teachcloud.mark.entity.MarkAiQuestionParam;
+import com.qmth.teachcloud.mark.entity.MarkAiQuestionPoint;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.service.*;
 import io.swagger.annotations.*;
@@ -55,6 +57,7 @@ public class MarkAiQuestionParamController {
 
     @Resource
     MarkAiQuestionLevelService markAiQuestionLevelService;
+
     @Resource
     private MarkQuestionService markQuestionService;
     @Resource
@@ -80,26 +83,37 @@ public class MarkAiQuestionParamController {
             throw ExceptionResultEnum.ERROR.exception("正在设置AI评卷参数,请稍候再试!");
         }
 
-        // 有人评任务
-        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(markAiQuestionParam.getQuestionId(), markAiQuestionParam.getPaperNumber());
-        if (!MarkPaperAiMark.NONE.equals(markPaper.getAiMark()) && markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAiMarkedAndStatusNotIn(markAiQuestionParam.getExamId(), markAiQuestionParam.getPaperNumber(), markAiQuestionParam.getQuestionId(), false, Arrays.asList(MarkTaskStatus.WAITING)) > 0) {
-            throw ExceptionResultEnum.ERROR.exception("评卷员已开始评卷,请先重置评卷任务后再设置");
-        }
         boolean update = false;
         try {
+            // 有人评任务
+            MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(markAiQuestionParam.getExamId(), markAiQuestionParam.getPaperNumber());
+            Objects.requireNonNull(markPaper, "试卷信息为空");
+            Objects.requireNonNull(markPaper.getAiMark(), "AI评卷信息为空");
+            if (!MarkPaperAiMark.NONE.equals(markPaper.getAiMark()) && markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndAiMarkedAndStatusNotIn(markAiQuestionParam.getExamId(), markAiQuestionParam.getPaperNumber(), markAiQuestionParam.getQuestionId(), false, Arrays.asList(MarkTaskStatus.WAITING)) > 0) {
+                throw ExceptionResultEnum.ERROR.exception("评卷员已开始评卷,请先重置评卷任务后再设置");
+            }
             switch (markAiQuestionParam.getMode()) {
                 case POINT://按得分点
                     if (CollectionUtils.isEmpty(markAiQuestionParam.getPointList())) {
                         throw ExceptionResultEnum.ERROR.exception("得分点信息为空");
                     }
-                    markAiQuestionParam.getPointList().stream().peek(s -> {
-                        s.setAiQuestionId(markAiQuestionParam.getId());
-                        s.setId(SystemConstant.getDbUuid());
-                    }).collect(Collectors.toList());
                     if (Objects.isNull(markAiQuestionParam.getId())) {//新增
                         markAiQuestionParam.insertInfo(sysUser.getId());
+                        markAiQuestionParam.getPointList().stream().peek(s -> {
+                            s.setAiQuestionId(markAiQuestionParam.getId());
+                            s.setId(SystemConstant.getDbUuid());
+                        }).collect(Collectors.toList());
                         markAiQuestionPointService.saveBatch(markAiQuestionParam.getPointList());
                     } else {//修改
+                        markAiQuestionParam.getPointList().stream().peek(s -> {
+                            if (Objects.isNull(s.getAiQuestionId())) {
+                                s.setAiQuestionId(markAiQuestionParam.getId());
+                            }
+                            if (Objects.isNull(s.getId())) {
+                                s.setId(SystemConstant.getDbUuid());
+                            }
+                        }).collect(Collectors.toList());
+
                         List<MarkAiQuestionPoint> markAiQuestionPointDbList = markAiQuestionPointService.listByAiQuestionId(markAiQuestionParam.getId());
                         List<MarkAiQuestionLevel> markAiQuestionLevelDbList = markAiQuestionLevelService.listByAiQuestionId(markAiQuestionParam.getId());
 
@@ -123,14 +137,23 @@ public class MarkAiQuestionParamController {
                     if (CollectionUtils.isEmpty(markAiQuestionParam.getLevelList())) {
                         throw ExceptionResultEnum.ERROR.exception("档次信息为空");
                     }
-                    markAiQuestionParam.getLevelList().stream().peek(s -> {
-                        s.setAiQuestionId(markAiQuestionParam.getId());
-                        s.setId(SystemConstant.getDbUuid());
-                    }).collect(Collectors.toList());
                     if (Objects.isNull(markAiQuestionParam.getId())) {//新增
                         markAiQuestionParam.insertInfo(sysUser.getId());
+                        markAiQuestionParam.getLevelList().stream().peek(s -> {
+                            s.setAiQuestionId(markAiQuestionParam.getId());
+                            s.setId(SystemConstant.getDbUuid());
+                        }).collect(Collectors.toList());
                         markAiQuestionLevelService.saveBatch(markAiQuestionParam.getLevelList());
                     } else {
+                        markAiQuestionParam.getLevelList().stream().peek(s -> {
+                            if (Objects.isNull(s.getAiQuestionId())) {
+                                s.setAiQuestionId(markAiQuestionParam.getId());
+                            }
+                            if (Objects.isNull(s.getId())) {
+                                s.setId(SystemConstant.getDbUuid());
+                            }
+                        }).collect(Collectors.toList());
+
                         List<MarkAiQuestionPoint> markAiQuestionPointDbList = markAiQuestionPointService.listByAiQuestionId(markAiQuestionParam.getId());
                         List<MarkAiQuestionLevel> markAiQuestionLevelDbList = markAiQuestionLevelService.listByAiQuestionId(markAiQuestionParam.getId());