ting.yin 4 lat temu
rodzic
commit
d0e7dc7499

+ 14 - 6
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkerController.java

@@ -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;
     }
 

+ 1 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/arbitrateBatchProcess.jsp

@@ -34,6 +34,7 @@
     <script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/single-image-view.js"></script>
     <script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/view-sidebar.js"></script>
     <script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/arbitration-process.js"></script>
+    <script type="text/javascript" src="${ctxStatic}/utils/image-utils.js"></script>
 </head>
 <body>
 <div class="container-fluid" id="container"></div>

+ 1 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/arbitrateSingleProcess.jsp

@@ -33,6 +33,7 @@
     <script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/single-image-view.js"></script>
     <script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/view-sidebar.js"></script>
     <script type="text/javascript" src="${ctxStatic}/mark-new/js/modules/arbitration-process.js"></script>
+    <script type="text/javascript" src="${ctxStatic}/utils/image-utils.js"></script>
 </head>
 <body>
 <div class="container-fluid" id="container"></div>