Преглед на файлове

优化阅卷过程中清理已完成的任务

nikang преди 7 години
родител
ревизия
b1eb1f5509
променени са 1 файла, в които са добавени 14 реда и са изтрити 7 реда
  1. 14 7
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/CurrentTaskUtil.java

+ 14 - 7
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/CurrentTaskUtil.java

@@ -32,7 +32,7 @@ public class CurrentTaskUtil {
      */
     public static boolean add(Marker marker, int libraryId) {
         String key = getKey(marker.getExamId(), marker.getSubjectCode());
-        TaskEntry obj = new TaskEntry(marker.getId(), libraryId,System.currentTimeMillis());
+        TaskEntry obj = new TaskEntry(marker.getId(), libraryId);
 
         synchronized (CurrentTaskUtil.class) {
             if (taskMap.containsEntry(key, obj)) {
@@ -51,9 +51,17 @@ public class CurrentTaskUtil {
      * @param libraryId
      */
     public static void remove(Marker marker, int libraryId) {
-        TaskEntry obj = new TaskEntry(marker.getId(), libraryId,System.currentTimeMillis());
+        //TaskEntry obj = new TaskEntry(marker.getId(), libraryId);
         synchronized (CurrentTaskUtil.class) {
-            taskMap.remove(getKey(marker.getExamId(), marker.getSubjectCode()), obj);
+          //taskMap.remove(getKey(marker.getExamId(), marker.getSubjectCode()), obj);
+          Set<TaskEntry> set = taskMap.get(getKey(marker.getExamId(), marker.getSubjectCode()));
+          if (set != null) {
+            for (TaskEntry taskEntry : set) {
+              if (taskEntry.markerId == marker.getId() && taskEntry.libraryId==libraryId) {
+                taskMap.remove(getKey(marker.getExamId(), marker.getSubjectCode()),taskEntry);
+              }
+            }
+          }
         }
     }
 
@@ -103,8 +111,7 @@ public class CurrentTaskUtil {
     /**
      * 清除某个评卷员已领取未给分的任务
      * 
-     * @param examId
-     * @param subjectCode
+     * @param marker
      */
     public static void clear(Marker marker) {
         String key = getKey(marker.getExamId(), marker.getSubjectCode());
@@ -176,10 +183,10 @@ class TaskEntry {
     
     public long timestamp;
 
-    public TaskEntry(int markerId, int libraryId,long timestamp) {
+    public TaskEntry(int markerId, int libraryId) {
         this.markerId = markerId;
         this.libraryId = libraryId;
-        this.timestamp = timestamp;
+        this.timestamp = System.currentTimeMillis();
     }
 
     @Override