From c467370d8741bc05ca7c22d4253c58ac0a979ef5 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 09 六月 2026 09:46:25 +0800
Subject: [PATCH] 功能优化

---
 server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java |   62 ++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 14 deletions(-)

diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java
index 4cfd2d0..df30c8e 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java
@@ -5,39 +5,58 @@
 import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
 @Api(tags = "浜哄憳璁惧鎺堟潈瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/empower")
 public class HkEmpowerTimerController extends BaseController {
     @Autowired
     private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
 
+    private final AtomicInteger endId2 = new AtomicInteger(0);
+    private final AtomicBoolean dealingDetail = new AtomicBoolean(false);
 
-    public static Integer endId2 = 0;
     @ApiOperation("寮�鍚畾鏃舵煡璇汉鍛樿澶囨巿鏉冪粨鏋�")
     @PostMapping("/syncEmpowerDetailData")
     public ApiResponse syncEmpowerDetailData() {
-        if(endId2 ==null){
-            endId2 =0;
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncEmpowerDetailData-鏌ヨ浜哄憳璁惧鎺堟潈缁撴灉");
+        if(!dealingDetail.compareAndSet(false, true)){
+            return ApiResponse.success("syncEmpowerDetailData姝e湪鎵ц锛岃烦杩�");
         }
-        endId2 =  hkSyncEmpowerService.syncEmpowerDetailData(endId2);
-        for (int i = 0; i < 9; i++) {
-            if(endId2!=null){
-                endId2 =  hkSyncEmpowerService.syncEmpowerDetailData(endId2);
+        try {
+            int current = endId2.get();
+            Integer next = hkSyncEmpowerService.syncEmpowerDetailData(current);
+            for (int i = 0; i < 9; i++) {
+                if(next != null){
+                    endId2.set(next);
+                    next = hkSyncEmpowerService.syncEmpowerDetailData(next);
+                }
             }
+            if(next != null){
+                endId2.set(next);
+            }
+        } catch (Exception e){
+            log.error("syncEmpowerDetailData寮傚父", e);
+        } finally {
+            dealingDetail.set(false);
         }
         return ApiResponse.success("寮�鍚畾鏃舵煡璇汉鍛樿澶囨巿鏉冪粨鏋滄垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃舵煡璇汉鍛樿澶囨巿鏉冧笅杞借繘搴�")
     @PostMapping("/syncEmpowerResultData")
     public ApiResponse syncEmpowerResultData() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncEmpowerResultData-鏌ヨ鎺堟潈涓嬭浇杩涘害");
         hkSyncEmpowerService.syncEmpowerResultData(0);
         return ApiResponse.success("寮�鍚畾鏃舵煡璇汉鍛樿澶囨巿鏉冧笅杞借繘搴︽垚鍔�");
     }
@@ -45,24 +64,39 @@
     @ApiOperation("寮�鍚畾鏃堕噸鏂颁笅鍙戝け璐ョ殑鎺堟潈鏁版嵁")
     @PostMapping("/syncEmpowerFailData")
     public ApiResponse syncEmpowerFailData() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncEmpowerFailData-閲嶆柊涓嬪彂澶辫触鎺堟潈");
         hkSyncEmpowerService.syncEmpowerFailData(0);
         return ApiResponse.success("寮�鍚畾鏃堕噸鏂颁笅鍙戝け璐ョ殑鎺堟潈鏁版嵁鎴愬姛");
     }
 
-    public static Integer endId = 0;
+    private final AtomicInteger endId = new AtomicInteger(0);
+    private final AtomicBoolean dealingEmpower = new AtomicBoolean(false);
+
     @Autowired
     private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
     @ApiOperation("寮�鍚畾鏃跺埛鏂颁汉鍛樿澶囨巿鏉�")
     @PostMapping("/syncEmpowerData")
     public ApiResponse syncEmpowerData() {
-        if(endId ==null){
-            endId =0;
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncEmpowerData-鍒锋柊浜哄憳璁惧鎺堟潈");
+        if(!dealingEmpower.compareAndSet(false, true)){
+            return ApiResponse.success("syncEmpowerData姝e湪鎵ц锛岃烦杩�");
         }
-        endId = hkSyncEmpowerService.syncEmpowerData(endId);
-        for (int i = 0; i < 9; i++) {
-            if(endId!=null){
-                endId = hkSyncEmpowerService.syncEmpowerData(endId);
+        try {
+            int current = endId.get();
+            Integer next = hkSyncEmpowerService.syncEmpowerData(current);
+            for (int i = 0; i < 9; i++) {
+                if(next != null){
+                    endId.set(next);
+                    next = hkSyncEmpowerService.syncEmpowerData(next);
+                }
             }
+            if(next != null){
+                endId.set(next);
+            }
+        } catch (Exception e){
+            log.error("syncEmpowerData寮傚父", e);
+        } finally {
+            dealingEmpower.set(false);
         }
         return ApiResponse.success("寮�鍚畾鏃跺埛鏂颁汉鍛樿澶囨巿鏉冩垚鍔�");
     }

--
Gitblit v1.9.3