|
@@ -7,9 +7,9 @@ import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
-import java.util.HashSet;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
@@ -265,8 +265,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionDao, QuestionEntity
|
|
|
return ret;
|
|
|
}
|
|
|
try {
|
|
|
- int addCount = saveQuestionBatch(ss);
|
|
|
- ret.setCountInfo("新增数量:" + addCount);
|
|
|
+ saveQuestionBatch(ret,ss);
|
|
|
} catch (Exception e) {
|
|
|
failRecords.add("系统错误:" + e.getMessage());
|
|
|
}
|
|
@@ -294,31 +293,53 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionDao, QuestionEntity
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private int saveQuestionBatch(List<QuestionEntity> ss) {
|
|
|
+ private void saveQuestionBatch(ImportResult ret,List<QuestionEntity> ss) {
|
|
|
if (CollectionUtils.isEmpty(ss)) {
|
|
|
- return 0;
|
|
|
+ ret.setCountInfo("新增数量:0,更新数量:0");
|
|
|
+ return;
|
|
|
}
|
|
|
List<QuestionEntity> all = this.list();
|
|
|
- Set<String> set = new HashSet<>();
|
|
|
+ Map<String,QuestionEntity> old = new HashMap<>();
|
|
|
+ Map<String,QuestionEntity> addMap = new HashMap<>();
|
|
|
if (CollectionUtils.isNotEmpty(all)) {
|
|
|
for (QuestionEntity s : all) {
|
|
|
String key = s.getExamId() + "-" + s.getSubjectCode() + "-" + s.getMainNumber()+"-"+s.getSubNumber();
|
|
|
- set.add(key);
|
|
|
+ old.put(key,s);
|
|
|
}
|
|
|
}
|
|
|
List<QuestionEntity> adds = new ArrayList<>();
|
|
|
+ List<QuestionEntity> updates = new ArrayList<>();
|
|
|
for (QuestionEntity s : ss) {
|
|
|
String key = s.getExamId() + "-" + s.getSubjectCode() + "-" + s.getMainNumber()+"-"+s.getSubNumber();
|
|
|
- if (!set.contains(key)) {
|
|
|
- adds.add(s);
|
|
|
+ if (old.get(key)==null) {
|
|
|
+ QuestionEntity add=addMap.get(key);
|
|
|
+ if(add!=null) {
|
|
|
+ add.setSubjectName(s.getSubjectName());
|
|
|
+ add.setFullScore(s.getFullScore());
|
|
|
+ add.setImageSlice(s.getImageSlice());
|
|
|
+ add.setContent(s.getContent());
|
|
|
+ add.setAnswer(s.getAnswer());
|
|
|
+ }else {
|
|
|
+ addMap.put(key, s);
|
|
|
+ adds.add(s);
|
|
|
+ }
|
|
|
} else {
|
|
|
- set.add(key);
|
|
|
+ QuestionEntity up=old.get(key);
|
|
|
+ up.setSubjectName(s.getSubjectName());
|
|
|
+ up.setFullScore(s.getFullScore());
|
|
|
+ up.setImageSlice(s.getImageSlice());
|
|
|
+ up.setContent(s.getContent());
|
|
|
+ up.setAnswer(s.getAnswer());
|
|
|
+ updates.add(up);
|
|
|
}
|
|
|
}
|
|
|
if (CollectionUtils.isNotEmpty(adds)) {
|
|
|
saveBatch(adds);
|
|
|
}
|
|
|
- return adds.size();
|
|
|
+ if (CollectionUtils.isNotEmpty(updates)) {
|
|
|
+ updateBatchById(updates);
|
|
|
+ }
|
|
|
+ ret.setCountInfo("新增数量:"+adds.size()+",更新数量:"+updates.size());
|
|
|
}
|
|
|
|
|
|
}
|