Prechádzať zdrojové kódy

美术阅卷11月新增需求-修复BUG

wangliang 5 rokov pred
rodič
commit
c11423b3ab

+ 9 - 0
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/DataUploadService.java

@@ -382,6 +382,9 @@ public class DataUploadService {
                     }
                     //复制paper
                     Paper paper = paperRepo.findByWorkIdAndSubjectAndExamNumberAndAreaCodeAndTest(workId, subject, student.getExamNumber(), dto.getAreaCode(), TrialEnum.DEFAULT.getId());
+                    if (Objects.isNull(paper)) {
+                        paper = paperRepo.findByWorkIdAndSubjectAndExamNumberAndAreaCodeAndTest(workId, subject, student.getExamNumber(), dto.getAreaCode(), TrialEnum.START_FORMAL.getId());
+                    }
                     Paper paperNew = new Paper();
                     BeanUtils.copyProperties(paper, paperNew);
                     paperNew.setId(null);
@@ -390,6 +393,12 @@ public class DataUploadService {
                     paperNew.setRandomSeq(random);
                     paperNew.setQuestionName(questionNew.getName());
                     paperNew.setQuestionId(questionNew.getId());
+                    paperNew.setLevel(null);
+                    paperNew.setMarkByLeader(false);
+                    paperNew.setSample(false);
+                    paperNew.setRejected(false);
+                    paperNew.setTagged(false);
+                    paperNew.setRejected(false);
                     paperNew.setSecretNumber(new StringBuffer(String.valueOf(subject.ordinal())).append(questionNew.getAreaCode()).append(random).toString());
                     paperNew.setActive(true);
                     paperNew.setBatchNo(startTime);

+ 27 - 20
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java

@@ -143,32 +143,39 @@ public class TrialService {
         examQuestionRepo.deleteByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.INIT.getId());
         //5.更新该科目下的试卷信息(正式卷子,并删除试评卷子)
         List<Paper> paperList = paperRepo.findByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.START_TRIAL.getId());
-        List<Paper> paperAllList = paperRepo.findByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.DEFAULT.getId());
-        Map<String, Paper> paperAllMap = paperAllList.stream().collect(Collectors.toMap(Paper::getExamNumber, Function.identity(), (dto1, dto2) -> dto1));
-        List<Paper> finalPaperList = new ArrayList<>();
-        Map<String, String> levelMap = new HashMap<>();
         List<Long> paperIds = new ArrayList<>();
-        paperList.forEach(p -> {
-            if (Objects.nonNull(paperAllMap.get(p.getExamNumber())) && p.isMarkByLeader() && Objects.nonNull(p.getLevel())) {
-                if (Objects.equals(p.getAreaCode(), paperAllMap.get(p.getExamNumber()).getAreaCode())) {
-                    finalPaperList.add(paperAllMap.get(p.getExamNumber()));
-                    levelMap.put(p.getExamNumber(), p.getLevel());
+        if (Objects.nonNull(paperList) && paperList.size() > 0) {
+            List<Paper> paperAllList = paperRepo.findByWorkIdAndSubject(workId, subject);
+            Map<String, Paper> paperAllMap = paperAllList.stream().filter(o -> (o.getTest() == 0 || o.getTest() == 3))
+                    .collect(Collectors.toList())
+                    .stream()
+                    .collect(Collectors.toMap(Paper::getExamNumber, Function.identity(), (dto1, dto2) -> dto1));
+            List<Paper> finalPaperList = new ArrayList<>();
+            Map<String, String> levelMap = new HashMap<>();
+            paperList.forEach(p -> {
+                if (Objects.nonNull(paperAllMap.get(p.getExamNumber())) && p.isMarkByLeader() && p.isSample() && Objects.nonNull(p.getLevel())) {
+                    if (Objects.equals(p.getAreaCode(), paperAllMap.get(p.getExamNumber()).getAreaCode())) {
+                        finalPaperList.add(paperAllMap.get(p.getExamNumber()));
+                        levelMap.put(p.getExamNumber(), p.getLevel());
+                    }
                 }
-            }
-            paperIds.add(p.getId());
-        });
-
-        if (finalPaperList.size() > 0) {
-            finalPaperList.forEach(o -> {
-                markingService.levelMarkPaper(o, levelMap.get(o.getExamNumber()), true);
-                o.setTest(TrialEnum.START_FORMAL.getId());
+                paperIds.add(p.getId());
             });
-            paperRepo.save(finalPaperList);
+
+            if (finalPaperList.size() > 0) {
+                finalPaperList.forEach(o -> {
+                    markingService.levelMarkPaper(o, levelMap.get(o.getExamNumber()), true);
+                    o.setTest(TrialEnum.START_FORMAL.getId());
+                });
+                paperRepo.save(finalPaperList);
+            }
+            //6.删除log日志
+            markLogRepo.deleteByPaperIdIn(paperIds);
+        } else {
+            paperList = paperRepo.findByWorkIdAndSubjectAndTest(workId, subject, TrialEnum.INIT.getId());
         }
         //5.删除试评卷子
         paperRepo.delete(paperList);
-        //6.删除log日志
-        markLogRepo.deleteByPaperIdIn(paperIds);
         //7.删除分组
         markerGroupRepo.deleteBySubjectAndWorkId(subject, workId);
     }