Explorar o código

修改提交后的内容专项诊断试卷提交后的处理

4228306 %!s(int64=5) %!d(string=hai) anos
pai
achega
13de24184a

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/service/CommitService.java

@@ -138,7 +138,7 @@ public class CommitService {
 
         String jsonAns = ObjectUtil.object2Json(answers);
         paperCommit.setJsonAns(jsonAns);
-//        paperCommitRepo.save(paperCommit);
+        paperCommitRepo.save(paperCommit);
         logger.info("uid={},name={},pid={} commit paper success", paperCommit.getUid(), paperCommit.getName(), paperCommit.getPid());
         try {
             paperCountService.updateAvgCommitTime(paper);

+ 5 - 1
src/main/java/com/yaoxiang/diagnosis/service/PaperResultService.java

@@ -127,9 +127,13 @@ public class PaperResultService {
         result.setJsonScore(ObjectUtil.object2Json(pData));
         //转换分数为百分制
         double totalScore = paper.getTotalScore();
+        if (totalScore == 0){
+            logger.error("总分数为0,请检查试卷");
+            return Result.fail("提交失败,请重试");
+        }
         double s = NumberUtil.format(score * 100 / totalScore);
         result.setScore(totalScore == 0 ? score : s);
-        result.setTotalScore(totalScore);
+        result.setTotalScore(100.0d);
         paperResultRepo.save(result);
         logger.info("答案分析保存成功,pid={},uid={},name={},score={},collectQuestion={}", paper.getId(),
                 paperCommit.getUid(), paperCommit.getName(), result.getScore(), result.getCollectQuestion());

+ 10 - 11
src/main/java/com/yaoxiang/diagnosis/service/PaperService.java

@@ -158,7 +158,6 @@ public class PaperService {
         List<SubjectAbility> abilities = subjectAbilityService.list(paper.getSubjectId());
         //初始化数据
         abilities.forEach(a -> data.put(a.getCode(), 0d));
-        data.put("A0", 0d);
         double totalScore = 0;
         for (Question question : save.getQuestions()) {
             question.setPid(save.getId());
@@ -176,18 +175,21 @@ public class PaperService {
                 abilityScoreService.add(score);
             }
         }
+
         for (Section section : save.getSections()) {
             section.setPid(save.getId());
             //保存段落
             sectionService.add(section);
         }
         //不使用能力计分,并且能力数量大于0
-        if (!paper.getUseAbility() && abilities.size() > 0) {
-            //put第一个能力进去
-            data.put(abilities.get(0).getCode(), (double) paper.getQuestions().size());
+        if (!paper.getUseAbility()) {
+            //put一个A0能力进去
+            data.put("A0", (double) paper.getQuestions().size());
+            paper.setTotalScore(paper.getQuestionNum());
+        } else {
+            paper.setTotalScore((int) totalScore);
         }
         String jsonScore = ObjectUtil.object2Json(data);
-        paper.setTotalScore((int) totalScore);
         paper.setJsonScore(jsonScore);
         paperRepo.saveAndFlush(paper);
         logger.info("试卷增加成功");
@@ -285,9 +287,6 @@ public class PaperService {
     }
 
     private void parsePaper(Paper paper, PaperTemplate template, XWPFDocument document) {
-        String tagPattern = template.getSection();
-        String questionPattern = template.getQuestion();
-        String picturePattern = template.getPicturePattern();
         List<XWPFParagraph> paragraphs = document.getParagraphs();
         Assert.notEmpty(paragraphs, "未检测到段落,请检查上传的文档");
         String name = paragraphs.get(0).getText();
@@ -314,7 +313,7 @@ public class PaperService {
             //根据题目标签,给题目分组
             Map<String, List<XWPFParagraph>> questions = initQuestions(current, template, ps);
             current.setStartNumber(currentNumber);
-            List<Question> list = parseQuestions(questions, current, template, topic, paper.getUseAbility(),abilities);
+            List<Question> list = parseQuestions(questions, current, template, topic, paper.getUseAbility(), abilities);
             current.setNums(list.size());
             currentNumber = currentNumber + list.size();
             qs.put(s, list);
@@ -405,7 +404,7 @@ public class PaperService {
         return sections;
     }
 
-    private List<Question> parseQuestions(Map<String, List<XWPFParagraph>> questions, Section section, PaperTemplate template, Map<String, String> topic, Boolean useAbility,List<String> abilities) {
+    private List<Question> parseQuestions(Map<String, List<XWPFParagraph>> questions, Section section, PaperTemplate template, Map<String, String> topic, Boolean useAbility, List<String> abilities) {
         List<Question> list = new ArrayList<>();
         //问题合集
         Pattern pattern = Pattern.compile("\\d+");
@@ -413,7 +412,7 @@ public class PaperService {
             Matcher matcher = pattern.matcher(k);
             if (k.matches(template.getQuestion()) && matcher.find()) {
                 String code = matcher.group();
-                Question question = questionService.initQuestion(section.getNumber(), section.getStartNumber(), Integer.valueOf(code),useAbility);
+                Question question = questionService.initQuestion(section.getNumber(), section.getStartNumber(), Integer.valueOf(code), useAbility);
                 wordService.parseQuestion(question, v, topic, template, abilities);
                 list.add(question);
             }

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/service/QuestionService.java

@@ -137,7 +137,7 @@ public class QuestionService {
         question.setScore(1D);
         question.setNumber(number);
         if(useAbility == null || !useAbility){
-            question.setJsonScore("{\"A0\":0}");
+            question.setJsonScore("{\"A0\":1.0}");
         }
         //更改code
         question.setCode(number - startNumber);

+ 2 - 0
src/main/java/com/yaoxiang/diagnosis/service/SpecialKnowledgeService.java

@@ -103,6 +103,8 @@ public class SpecialKnowledgeService {
                     //小于等于层级3
                     if (i <= 4 && questionNum > 0) {
                         double master = collectCount * 100.0 / questionNum;
+                        logger.info("parent content={},level={},master={},masterStatus={}",
+                                parent.getContent(),parent.getLevel(),parent.getMaster(),parent.getMasterStatus());
                         parent.setMaster(NumberUtil.format(master));
                         if (master < 0.8) {
                             parent.setMasterStatus(Constants.SPECIAL_KNOWLEDGE_UNMASTER);

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/word/KnowledgeUtil.java

@@ -229,7 +229,7 @@ public class KnowledgeUtil {
                 if (j == row.getLastCellNum() - 2) {
                     XSSFCell cell = row.getCell(j + 1);
                     if (CellType.NUMERIC == cell.getCellTypeEnum()) {
-                        k.setQids(String.valueOf(cell.getNumericCellValue()));
+                        k.setQids(String.valueOf((int)cell.getNumericCellValue()));
                     } else {
                         k.setQids(cell.getStringCellValue());
                     }