浏览代码

对于无笔试的不生成卷,直接是完成状态

mingfu 2 周之前
父节点
当前提交
ef9358d610
共有 1 个文件被更改,包括 37 次插入24 次删除
  1. 37 24
      ie-admin/src/main/java/com/ruoyi/web/service/LearnTeacherService.java

+ 37 - 24
ie-admin/src/main/java/com/ruoyi/web/service/LearnTeacherService.java

@@ -222,6 +222,7 @@ public class LearnTeacherService {
         LearnTest learnTest = learnTestService.selectLearnTestByBatchId(req.getBatchId());
         for(String directedKey : directedStudentsMap.keySet()) {
             LearnTestPaper learnTestPaper;
+            Boolean noPaper = false;
             if(null == (learnTestPaper = directPaperMap.get(directedKey))) {
                 LearnPaper paper = new LearnPaper();
                 paper.setSubjectId(req.getSubjectId());
@@ -236,15 +237,21 @@ public class LearnTeacherService {
                 } else {
                     LearnDirectedKnowledge directedKnowledge = directedKnowledgeMap.get(directedKey);
                     examType = directedKnowledge.getExamineeTypes();
-                    TestPaperVO.PaperDef2 paperDef = new TestPaperVO.PaperDef2(directedKnowledge.getKnowledges(), directedKnowledge.getConditions());
-                    paperDef.setFillExclude(false);
-                    AnswerSheet.PaperCond info = new AnswerSheet.PaperCond();
-                    info.setScore(paper.getFenshu());
-                    info.setTime(directedKnowledge.getTime() * 60);
-                    info.setTypes(paperDef.getTypes().stream().map(t -> new AnswerSheet.PaperCondType(t.getType().getTitle(), t.getCount(), t.getScore())).collect(Collectors.toList()));
-                    paper.setPaperInfo(JSONObject.toJSONString(info));
-                    Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper2(null, paper, paperDef);
-                    paperService.savePaper(paperResult.getKey(), paperResult.getValue());
+                    if(StringUtils.isNotBlank(directedKnowledge.getConditions())) {
+                        TestPaperVO.PaperDef2 paperDef = new TestPaperVO.PaperDef2(directedKnowledge.getKnowledges(), directedKnowledge.getConditions());
+                        paperDef.setFillExclude(false);
+                        AnswerSheet.PaperCond info = new AnswerSheet.PaperCond();
+                        info.setScore(paper.getFenshu());
+                        info.setTime(directedKnowledge.getTime() * 60);
+                        info.setTypes(paperDef.getTypes().stream().map(t -> new AnswerSheet.PaperCondType(t.getType().getTitle(), t.getCount(), t.getScore())).collect(Collectors.toList()));
+                        paper.setPaperInfo(JSONObject.toJSONString(info));
+                        Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper2(null, paper, paperDef);
+                        paperService.savePaper(paperResult.getKey(), paperResult.getValue());
+                    } else if(!"技能展示/实践操作".equals(directedKnowledge.getModules())) {
+                        throw new ValidationException("未配置定向题型" + directedKnowledge.getId());
+                    } else {
+                        noPaper = true;
+                    }
                     /* 暂定使用知识定一样的类型处理
                     TestPaperVO.PaperDef paperDef = req.getPaperDef();
                     examType = directedKnowledge.getExamineeTypes();
@@ -264,19 +271,21 @@ public class LearnTeacherService {
                     Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper(null, paper, paperDef);
                     paperService.savePaper(paperResult.getKey(), paperResult.getValue());*/
                 }
-                LearnTestPaper testPaper = new LearnTestPaper();
-                testPaper.setBuildType(req.getBuildType());
-                testPaper.setUniversityId(universityId);
-                testPaper.setExamType(examType);
-                testPaper.setBatchId(req.getBatchId());
-                testPaper.setSubjectId(req.getSubjectId());
-                testPaper.setDirectKey(directedKey);
-                testPaper.setPaperId(paper.getId());
-                testPaper.setConditions(JSONObject.toJSONString(req));
-                testPaper.setCreatorId(SecurityUtils.getUserId());
-                learnTestPaperMapper.insertLearnTestPaper(testPaper);
-                directPaperMap.put(directedKey, testPaper);
-                learnTestPaper = testPaper;
+                if(!noPaper) {
+                    LearnTestPaper testPaper = new LearnTestPaper();
+                    testPaper.setBuildType(req.getBuildType());
+                    testPaper.setUniversityId(universityId);
+                    testPaper.setExamType(examType);
+                    testPaper.setBatchId(req.getBatchId());
+                    testPaper.setSubjectId(req.getSubjectId());
+                    testPaper.setDirectKey(directedKey);
+                    testPaper.setPaperId(paper.getId());
+                    testPaper.setConditions(JSONObject.toJSONString(req));
+                    testPaper.setCreatorId(SecurityUtils.getUserId());
+                    learnTestPaperMapper.insertLearnTestPaper(testPaper);
+                    directPaperMap.put(directedKey, testPaper);
+                    learnTestPaper = testPaper;
+                }
             }
             for(LearnStudent student : directedStudentsMap.get(directedKey)) {
                 LearnTestStudent lts = new LearnTestStudent();
@@ -285,9 +294,13 @@ public class LearnTeacherService {
                 lts.setBuildType(req.getBuildType());
                 lts.setSubjectId(req.getSubjectId());
                 lts.setDirectKey(directedKey);
-                lts.setPaperId(learnTestPaper.getPaperId());
+                if(noPaper) {
+                    lts.setStatus(ExamineeStatus.Commit.getVal());
+                } else {
+                    lts.setPaperId(learnTestPaper.getPaperId());
+                    lts.setStatus(ExamineeStatus.Sign.getVal());
+                }
                 lts.setClassId(student.getClassId());
-                lts.setStatus(ExamineeStatus.Sign.getVal());
                 lts.setCreatorId(req.getTeacherId());
                 lts.setSchoolId(student.getSchoolId());
                 lts.setCampusId(student.getCampusId());