|
@@ -3,22 +3,18 @@ package com.yaoxiang.diagnosis.service;
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
import com.yaoxiang.diagnosis.config.Constants;
|
|
|
import com.yaoxiang.diagnosis.entity.*;
|
|
|
-import com.yaoxiang.diagnosis.model.Answer;
|
|
|
import com.yaoxiang.diagnosis.model.AnswerContrast;
|
|
|
import com.yaoxiang.diagnosis.model.SpecialMindVo;
|
|
|
import com.yaoxiang.diagnosis.util.CommonUtil;
|
|
|
import com.yaoxiang.diagnosis.util.NumberUtil;
|
|
|
import com.yaoxiang.diagnosis.util.ObjectUtil;
|
|
|
-import io.swagger.models.auth.In;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import javax.transaction.Transactional;
|
|
|
import java.util.*;
|
|
|
-import java.util.function.Function;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -190,6 +186,9 @@ public class SpecialReportService {
|
|
|
Map<Integer, String> map = contrasts.stream().collect(Collectors.toMap(AnswerContrast::getNumber, AnswerContrast::getOptions));
|
|
|
//答对的选项
|
|
|
Pattern pattern = Pattern.compile("(\\d+)");
|
|
|
+
|
|
|
+ Map<String, Set<Integer>> stepNumbers = new HashMap<>();
|
|
|
+
|
|
|
for (SpecialMind mind : list) {
|
|
|
String qids = mind.getQids();
|
|
|
if (StringUtils.isBlank(qids)) {
|
|
@@ -197,9 +196,9 @@ public class SpecialReportService {
|
|
|
continue;
|
|
|
}
|
|
|
String[] qidss = qids.split(",");
|
|
|
- mind.setCollectNum(qidss.length);
|
|
|
- mind.setQuestionNum(qidss.length);
|
|
|
-
|
|
|
+ mind.setCollectNum(0);
|
|
|
+// mind.setQuestionNum(qidss.length);
|
|
|
+ Set<Integer> numbers = new HashSet<>();
|
|
|
for (String s : qidss) {
|
|
|
int number = 0;
|
|
|
if (s.matches("\\d+[A-E]")) {
|
|
@@ -213,16 +212,15 @@ public class SpecialReportService {
|
|
|
} else {
|
|
|
number = Integer.parseInt(s);
|
|
|
}
|
|
|
- if (map.containsKey(number) && StringUtils.isBlank(map.get(number))) {
|
|
|
- //没做题
|
|
|
- mind.setCollectNum(mind.getCollectNum() - 1);
|
|
|
- } else if (map.containsKey(number)) {
|
|
|
+ numbers.add(number);
|
|
|
+ if (map.containsKey(number) && StringUtils.isNotBlank(s)) {
|
|
|
String options = map.get(number);
|
|
|
if (s.contains(options)) {
|
|
|
- mind.setCollectNum(mind.getCollectNum() - 1);
|
|
|
+ mind.setCollectNum(mind.getCollectNum() + 1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ stepNumbers.put(mind.getStep(), numbers);
|
|
|
//设置这个问题有没有错误
|
|
|
mind.setMistake(!mind.getQuestionNum().equals(mind.getCollectNum()));
|
|
|
}
|
|
@@ -235,8 +233,9 @@ public class SpecialReportService {
|
|
|
int questionNum = 0;
|
|
|
for (SpecialMind mind : minds) {
|
|
|
collectNum += mind.getCollectNum();
|
|
|
- questionNum += mind.getQuestionNum();
|
|
|
+// questionNum += mind.getQuestionNum();
|
|
|
}
|
|
|
+ questionNum = stepNumbers.getOrDefault(entry.getKey(), new HashSet<>()).size();
|
|
|
if (questionNum == 0) {
|
|
|
logger.error("一整个步骤都没考");
|
|
|
continue;
|