word导入试题,未完

beetlsql3-dev
Mlxa0324 2 years ago
parent 3665453b45
commit c9e9cbf1b4

@ -2,6 +2,7 @@ package com.ibeetl.jlw.entity;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.jlw.validate.ValidateConfig;
@ -22,6 +23,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import static cn.hutool.core.util.ArrayUtil.join;
import static cn.hutool.core.util.ObjectUtil.defaultIfNull;
/*
* -
* gen by Spring Boot2 Admin 2021-06-25
@ -384,16 +388,26 @@ public class ResourcesQuestion extends BaseEntity{
});
} break;
case FILL_QUESTION: {
// 填空题 questionOptionA 存放的是[---] 空的长度
final String optionName = "questionOptionA";
// 填空题 questionOptionA 存放的是空格的数量
questionOptionList.forEach(item -> {
Integer count = NumberUtil.toInt(defaultIfNull(getQuestionOptionA(), "0").getBytes());
setQuestionOptionA((++count).toString());
});
} break;
case ANALYSIS_QUESTION: {
// 分析题 questionOptionA 存放的是[---] 空的长度
// 分析题 questionOptionB 存放的是带填空的题干
final String optionName = "questionOptionA";
final String questionSubStem = "questionOptionB";
questionOptionList.forEach(item -> {
Integer count = NumberUtil.toInt(defaultIfNull(getQuestionOptionA(), "0").getBytes());
setQuestionOptionA((++count).toString());
String questionOptionB = defaultIfNull(getQuestionOptionB(), "");
String[] splitArr = item.split("_{8,}");
if (splitArr != null) {
setQuestionOptionB(questionOptionB + join(splitArr, "[---]"));
}
});
} break;
default:
log.error("ResourcesQuestion.putQuestionOptionList 方法,未知的题目类型!");

@ -869,7 +869,7 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
/** 题目类型,分值,该类型的总分 */
case TYPE: {
/** 题目类型作用域 */
String[] sp = v.split(",");
String[] sp = v.split("[,]");
typeConcatEnum.set(StrategyContext.QuestionTypeConcatEnum.matchText(sp[2]));
questionScore.set(NumberUtil.toBigDecimal(sp[0]).setScale(1, RoundingMode.HALF_UP));
}

@ -1,13 +1,12 @@
package com.ibeetl.jlw.service.strategy;
import cn.hutool.core.util.ReUtil;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <p>
@ -24,6 +23,10 @@ public class WordQuestionOption implements WordStrategy<String> {
* A. A A A  A
*/
private final String REGEX = "^[A-Za-z][\\.\\、\\  ]";
/**
* (1).(1)1.1
*/
private final String REGEX2 = "^[(]\\d+[)][\\.\\、\\  ]";
@Getter
private StrategyContext.QuestionParagraphTypeEnum typeEnum = StrategyContext.QuestionParagraphTypeEnum.OPTION;
@ -35,8 +38,8 @@ public class WordQuestionOption implements WordStrategy<String> {
*/
@Override
public boolean support(String paragraph) {
Matcher matcher = Pattern.compile(REGEX).matcher(paragraph.trim());
return matcher.find() && matcher.start() == 0;
String text = paragraph.trim();
return ReUtil.contains(REGEX, text) || ReUtil.contains(REGEX2, text);
}

Loading…
Cancel
Save