Просмотр исходного кода

组卷增加filterType按类型过滤已经用过的题

mingfu 2 недель назад
Родитель
Сommit
b191ce0f56

+ 1 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/learn/LearnPaperController.java

@@ -129,7 +129,7 @@ public class LearnPaperController extends BaseController
     public AjaxResult buildAll(@ApiParam("序号") @RequestParam Integer seq)
     {
         DzControl dzControl = dzControlService.selectDzControl(VistorContextHolder.getContext());
-        paperService.buildAllPapers(dzControl.getPlanYear(), seq);
+        paperService.buildAllPapers(dzControl.getPlanYear(), seq, false);
         return success();
     }
 

+ 12 - 12
ie-admin/src/main/java/com/ruoyi/web/service/PaperService.java

@@ -61,11 +61,11 @@ public class PaperService {
         this.learnKnowledgeTreeMapper = learnKnowledgeTreeMapper;
         this.learnCultureKnowledgeMapper = learnCultureKnowledgeMapper;
         this.dzSubjectMapper = dzSubjectMapper;
-        // buildAllPapers(2026, 909);
+        // buildAllPapers(2026, 909, false);
         // buildSimulatedPaperForUniversity(20950L, 11L, 78L, 2);
         // buildSimulatedPaperForUniversity(20962L, 11L, 156L, 2);
         // test2();
-        // testCulture(2026, 910);
+        // testCulture(2026, 911, false);
         // corrQuestions();
     }
 
@@ -172,7 +172,7 @@ public class PaperService {
         } while(questionsList.size() != pageSize);
     }
 
-    public void buildAllPapers(Integer year, Integer seq) {
+    public void buildAllPapers(Integer year, Integer seq, boolean fillExclude) {
         LearnDirectedKnowledge dkCond = new LearnDirectedKnowledge();
         // dkCond.setMatchYear(year);
         dkCond.setYear(year);
@@ -193,7 +193,7 @@ public class PaperService {
                     continue;
                 }
                 try {
-                    buildSimulatedPaperForKnowledge("DK" + universityId,11L, seq, universities, dk);
+                    buildSimulatedPaperForKnowledge("DK" + universityId,11L, seq, fillExclude, universities, dk);
                 } catch(Exception e) {
                     dkIdList.add(dk.getId());
                     log.error(e.getMessage());
@@ -205,7 +205,7 @@ public class PaperService {
         }
     }
 
-    public void testCulture(Integer year, Integer seq) {
+    public void testCulture(Integer year, Integer seq, boolean fillExclude) {
         LearnCultureKnowledge ckCond = new LearnCultureKnowledge();
         ckCond.setYear(year);
         // ckCond.setUniversityId(20154L);
@@ -213,7 +213,7 @@ public class PaperService {
 
         List<Long> errorIdList = Lists.newArrayList();
         Map uCond = new HashMap();
-        Set<Long> validIdSet = Sets.newHashSet();
+        Set<Long> validIdSet = Sets.newHashSet(); // 372L 910
         uCond.put("ids", cultureKnowledgeList.stream().map(LearnCultureKnowledge::getUniversityId).collect(Collectors.toSet()));
         Map<Long, BBusiWishUniversities> universityMap = bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesListSimpleByIds(uCond).stream().collect(Collectors.toMap(BBusiWishUniversities::getId, Function.identity()));
         Map<Long, String> subjectMap = dzSubjectMapper.selectDzSubjectList(new DzSubject()).stream().collect(Collectors.toMap(DzSubject::getSubjectId, DzSubject::getSubjectName));
@@ -228,7 +228,7 @@ public class PaperService {
                 errList.add(ck);
                 continue;
             }
-            paperDef.setFillExclude(false);
+            paperDef.setFillExclude(fillExclude);
 
             BBusiWishUniversities universities = universityMap.get(ck.getUniversityId());
             LearnPaper paper = new LearnPaper();
@@ -254,7 +254,7 @@ public class PaperService {
             paper.setPaperInfo(JSONObject.toJSONString(info));
             try {
                 Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = buildPaper2("CK" + ck.getUniversityId(),null, paper, paperDef);
-                // savePaper(paperResult.getKey(), paperResult.getValue());
+                savePaper(paperResult.getKey(), paperResult.getValue());
                 continue;
             } catch(Exception e) {
                 errorIdList.add(ck.getId());
@@ -387,14 +387,14 @@ public class PaperService {
         return paperQuestionList;
     }
 
-    public int buildSimulatedPaperForUniversity(String filterType, Long universityId, Long subjectId, Long directedId, Integer seq) {
+    public int buildSimulatedPaperForUniversity(String filterType, boolean fillExclude, Long universityId, Long subjectId, Long directedId, Integer seq) {
         LearnDirectedKnowledge dkCond = new LearnDirectedKnowledge();
         dkCond.setUniversityId(universityId);
         List<LearnDirectedKnowledge> directedKnowledgeList = learnDirectedKnowledgeMapper.selectLearnDirectedKnowledgeList(dkCond);
         BBusiWishUniversities universities = wishUniversitiesService.selectBBusiWishUniversitiesById(universityId);
         for(LearnDirectedKnowledge dk : directedKnowledgeList) {
             if(null == directedId || directedId.equals(dk.getId())) {
-                buildSimulatedPaperForKnowledge(filterType, subjectId, seq, universities, dk);
+                buildSimulatedPaperForKnowledge(filterType, subjectId, seq, fillExclude, universities, dk);
             }
         }
         return 0;
@@ -404,12 +404,12 @@ public class PaperService {
      * 根据院校专业要求生成模拟试卷
      * @return
      */
-    public int buildSimulatedPaperForKnowledge(String filterType, Long subjectId, Integer seq, BBusiWishUniversities universities, LearnDirectedKnowledge dk) {
+    public int buildSimulatedPaperForKnowledge(String filterType, Long subjectId, Integer seq, boolean fillExclude, BBusiWishUniversities universities, LearnDirectedKnowledge dk) {
         if(StringUtils.isBlank(dk.getConditions())) {
             return 0;
         }
         TestPaperVO.PaperDef2 paperDef = new TestPaperVO.PaperDef2(dk.getKnowledges(), dk.getConditions());
-        paperDef.setFillExclude(false);
+        paperDef.setFillExclude(fillExclude);
 
         LearnPaper paper = new LearnPaper();
         paper.setSubjectId(subjectId);