Browse Source

1.0.5 优化

haogh 10 months ago
parent
commit
b2956f41e3

+ 2 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskService.java

@@ -47,4 +47,6 @@ public interface PaperScanTaskService extends IService<PaperScanTask> {
     void clearSingleStudentData(Long paperScanTaskId, Long studentId);
 
     void updateScanCount(Long paperScanTaskId);
+
+    void updateScanCountNoLock(Long paperScanTaskId);
 }

+ 1 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/ClientServiceImpl.java

@@ -210,7 +210,7 @@ public class ClientServiceImpl implements ClientService {
     @Override
     public boolean updateCount(Long paperScanTaskId, Long examId, Long studentId, Long scanUserId, String batchNo) {
         // 更新扫描任务扫描考生数量、扫描图片数量
-        paperScanTaskService.updateScanCount(paperScanTaskId);
+        paperScanTaskService.updateScanCountNoLock(paperScanTaskId);
         // 更新考生绑定图片数量
         examStudentService.updateBindCount(studentId);
         // 更新批次号

+ 24 - 8
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskServiceImpl.java

@@ -21,6 +21,7 @@ import com.qmth.paper.library.common.enums.RecognitionTypeEnum;
 import com.qmth.paper.library.common.enums.StoreTypeEnum;
 import com.qmth.paper.library.common.enums.UploadFileEnum;
 import com.qmth.paper.library.common.lock.LockService;
+import com.qmth.paper.library.common.lock.LockType;
 import com.qmth.paper.library.common.service.BasicSchoolService;
 import com.qmth.paper.library.common.service.BasicSemesterService;
 import com.qmth.paper.library.common.util.FileStoreUtil;
@@ -238,9 +239,9 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
 
     @Override
     public void updateScanCount(Long paperScanTaskId) {
-//        try {
-//            lockService.waitlock(LockType.UPDATE_SCAN_PAPER_COUNT, paperScanTaskId);
-            // 统计扫描张数
+        try {
+            lockService.waitlock(LockType.UPDATE_SCAN_PAPER_COUNT, paperScanTaskId);
+          /*  // 统计扫描张数
             int scanCount = paperLibraryService.countScanCount(paperScanTaskId);
             // 统计扫描学生数
             int scanStudentCount = paperLibraryService.countScanStudentCount(paperScanTaskId);
@@ -249,10 +250,25 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
             updateWrapper.lambda().set(PaperScanTask::getScanStudentCount, scanStudentCount)
                     .set(PaperScanTask::getScanCount, scanCount)
                     .eq(PaperScanTask::getId, paperScanTaskId);
-            this.update(updateWrapper);
-//            this.baseMapper.updateScanCount(paperScanTaskId);
-//        } finally {
-//            lockService.unlock(LockType.UPDATE_SCAN_PAPER_COUNT, paperScanTaskId);
-//        }
+            this.update(updateWrapper);*/
+            updateScanCountNoLock(paperScanTaskId);
+            //            this.baseMapper.updateScanCount(paperScanTaskId);
+        } finally {
+            lockService.unlock(LockType.UPDATE_SCAN_PAPER_COUNT, paperScanTaskId);
+        }
+    }
+
+    @Override
+    public void updateScanCountNoLock(Long paperScanTaskId) {
+        // 统计扫描张数
+        int scanCount = paperLibraryService.countScanCount(paperScanTaskId);
+        // 统计扫描学生数
+        int scanStudentCount = paperLibraryService.countScanStudentCount(paperScanTaskId);
+        // 总扫描数
+        UpdateWrapper<PaperScanTask> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(PaperScanTask::getScanStudentCount, scanStudentCount)
+                .set(PaperScanTask::getScanCount, scanCount)
+                .eq(PaperScanTask::getId, paperScanTaskId);
+        this.update(updateWrapper);
     }
 }