|
@@ -7,6 +7,7 @@ import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Locale;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
+import com.google.common.collect.Sets;
|
|
|
|
|
|
import cn.com.qmth.examcloud.commons.base.helpers.poi.ExcelReader;
|
|
|
import cn.com.qmth.examcloud.commons.base.util.PathUtil;
|
|
@@ -121,9 +123,13 @@ public class ExamStudentImportParsingFileTask extends AbstractTask {
|
|
|
Long examId = importEntity.getExamId();
|
|
|
List<ExamStudentTempEntity> list = Lists.newArrayList();
|
|
|
|
|
|
+ Set<String> fullSet = Sets.newHashSet();
|
|
|
+
|
|
|
List<Map<String, Object>> failRecords = Collections
|
|
|
.synchronizedList(new ArrayList<Map<String, Object>>());
|
|
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append("====================重复数据\n");
|
|
|
for (int i = 0; i < lineList.size(); i++) {
|
|
|
String[] line = lineList.get(i);
|
|
|
if (0 == i) {
|
|
@@ -164,6 +170,12 @@ public class ExamStudentImportParsingFileTask extends AbstractTask {
|
|
|
}
|
|
|
|
|
|
list.add(es);
|
|
|
+ String key = es.getIdentityNumber() + "____" + es.getCourseCode();
|
|
|
+ if (fullSet.contains(key)) {
|
|
|
+ sb.append("line:").append(es.getLineNum()).append("重复数据,做覆盖更新").append("\n");
|
|
|
+ } else {
|
|
|
+ fullSet.add(key);
|
|
|
+ }
|
|
|
if (0 == i % 100) {
|
|
|
examStudentTempRepo.save(list);
|
|
|
|
|
@@ -172,12 +184,11 @@ public class ExamStudentImportParsingFileTask extends AbstractTask {
|
|
|
}
|
|
|
|
|
|
examStudentTempRepo.save(list);
|
|
|
-
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append("====================数据规格错误数据\n");
|
|
|
for (Map<String, Object> cur : failRecords) {
|
|
|
sb.append("line:").append(cur.get("lineNum")).append(cur.get("msg")).append("\n");
|
|
|
}
|
|
|
- sb.append("==============================================\n");
|
|
|
+
|
|
|
File resultFile = new File(resultFilePath);
|
|
|
|
|
|
try {
|