|
@@ -370,8 +370,7 @@ public class MarkerController extends BaseExamController {
|
|
|
Map<String, User> userMap = new HashMap<String, User>();
|
|
|
Map<String, ExamSubject> subjectMap = new HashMap<String, ExamSubject>();
|
|
|
Map<String, MarkGroup> groupMap = new HashMap<String, MarkGroup>();
|
|
|
- List<Marker> saveList = new ArrayList<Marker>();
|
|
|
-
|
|
|
+ Map<String, Marker> markerMap = new HashMap<String, Marker>();
|
|
|
for (Marker marker : list) {
|
|
|
if (StringUtils.isBlank(marker.getLoginName())) {
|
|
|
failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + marker.getSubjectCode()
|
|
@@ -420,8 +419,11 @@ public class MarkerController extends BaseExamController {
|
|
|
}
|
|
|
subjectMap.put(examSubject.getCode(), examSubject);
|
|
|
groupMap.put(markGroup.getSubjectCode() + "-" + markGroup.getNumber(), markGroup);
|
|
|
- marker = getMarker(examId, examSubject.getCode(), markGroup.getNumber(), user.getId());
|
|
|
- saveList.add(marker);
|
|
|
+ marker = getMarker(markerMap, examId, examSubject.getCode(), markGroup.getNumber(), user.getId());
|
|
|
+ }
|
|
|
+ List<Marker> saveList = new ArrayList<Marker>();
|
|
|
+ for (Marker m : markerMap.values()) {
|
|
|
+ saveList.add(m);
|
|
|
}
|
|
|
successNum = markerService.batchSave(saveList);
|
|
|
if (failureNum > 0) {
|
|
@@ -437,8 +439,13 @@ public class MarkerController extends BaseExamController {
|
|
|
return "redirect:" + "/admin/exam/marker?subjectCode=" + subjectCode;
|
|
|
}
|
|
|
|
|
|
- private Marker getMarker(int examId, String subjectCode, Integer groupNumber, Integer userId) {
|
|
|
- Marker marker = markerService.findByExamAndSubjectAndNumberAndUserId(examId, subjectCode, groupNumber, userId);
|
|
|
+ private Marker getMarker(Map<String, Marker> markerMap, int examId, String subjectCode, Integer groupNumber,
|
|
|
+ Integer userId) {
|
|
|
+ String key = examId + "-" + subjectCode + "-" + groupNumber + "-" + userId;
|
|
|
+ Marker marker = markerMap.get(key);
|
|
|
+ if (marker == null) {
|
|
|
+ marker = markerService.findByExamAndSubjectAndNumberAndUserId(examId, subjectCode, groupNumber, userId);
|
|
|
+ }
|
|
|
if (marker == null) {
|
|
|
marker = new Marker();
|
|
|
marker.setExamId(examId);
|
|
@@ -447,6 +454,7 @@ public class MarkerController extends BaseExamController {
|
|
|
marker.setUserId(userId);
|
|
|
marker.setEnable(true);
|
|
|
}
|
|
|
+ markerMap.put(key, marker);
|
|
|
return marker;
|
|
|
}
|
|
|
|