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/config/AsyncPoolConfig.java                                    |   29 +++
 server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java                               |    4 
 server/system_timer/src/main/resources/application.yml                                                            |    8 
 server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java                                    |   64 +++---
 server/visits/admin_timer/src/main/resources/bootstrap.yml                                                        |    2 
 server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java                              |   62 +++++-
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                                      |    2 
 server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java                                 |   24 ++
 server/visits/admin_timer/src/main/java/com/doumee/api/HkSmsEmailTimerController.java                             |    3 
 server/visits/admin_timer/src/main/java/com/doumee/api/JkCustomerTimerController.java                             |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java        |   31 +++
 server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java                              |    3 
 server/visits/admin_timer/src/main/java/com/doumee/api/WxTokenTimerController.java                                |    3 
 server/visits/admin_timer/src/main/java/com/doumee/api/DuanluqiTimerController.java                               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java |   71 +++----
 server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java                              |   23 +-
 server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java                                |    1 
 server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java                                |   19 +
 server/visits/admin_timer/src/main/java/com/doumee/api/WeatherTimerController.java                                |    3 
 server/visits/admin_timer/src/main/java/com/doumee/api/HkNoticeTimerController.java                               |    3 
 server/visits/admin_timer/src/main/java/com/doumee/api/HkPlatformTimerController.java                             |    3 
 server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java                                    |    2 
 server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java                                 |    4 
 server/visits/admin_timer/src/main/java/com/doumee/api/InterfaceLogTimerController.java                           |    3 
 server/system_timer/src/main/resources/bootstrap.yml                                                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/config/AsyncPoolConfig.java                                |   29 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java                       |    2 
 server/system_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java                                          |   29 +++
 server/visits/admin_timer/src/main/java/com/doumee/api/DingTalkTokenTimerController.java                          |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java             |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java    |   15 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java           |   20 +-
 server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java                                |    3 
 33 files changed, 351 insertions(+), 135 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java b/server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
index e19936c..bdcefd9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
+++ b/server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
@@ -4,6 +4,8 @@
 import com.doumee.dao.timer.entity.QuartzJob;
 import org.quartz.*;
 import org.quartz.CronTrigger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -15,6 +17,8 @@
  */
 @Component
 public class QuartzManage {
+
+    private static final Logger log = LoggerFactory.getLogger(QuartzManage.class);
 
     private static final String SCHEDULE_NAME = "BOOT_JOB_" ;
 
@@ -42,8 +46,7 @@
         try {
             return (CronTrigger) this.scheduler.getTrigger(getTriggerKey(jobId)) ;
         }catch (Exception e){
-            e.printStackTrace();
-//            throw new RuntimeException("createJob Fail",e) ;
+            log.error("getCronTrigger澶辫触, jobId={}", jobId, e);
         }
         return null;
     }
@@ -61,7 +64,7 @@
             // 鏋勫缓Cron璋冨害鍣�
             CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
                                                 .cronSchedule(quartzJob.getCronExpres())
-                                                .withMisfireHandlingInstructionDoNothing() ;
+                                                .withMisfireHandlingInstructionFireAndProceed() ;
 
             // 浠诲姟瑙﹀彂鍣�
             CronTrigger trigger = TriggerBuilder.newTrigger()
@@ -72,8 +75,7 @@
             // 鐘舵�佹牎楠�
             checkStop(quartzJob) ;
         } catch (Exception e){
-            e.printStackTrace();
-//            throw new RuntimeException("createJob Fail",e) ;
+            log.error("createJob澶辫触, jobId={}", quartzJob.getId(), e);
         }
     }
 
@@ -87,7 +89,7 @@
             // 鏋勫缓Cron璋冨害鍣�
             CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
                                                 .cronSchedule(quartzJob.getCronExpres())
-                                                .withMisfireHandlingInstructionDoNothing();
+                                                .withMisfireHandlingInstructionFireAndProceed();
             // 浠诲姟瑙﹀彂鍣�
             CronTrigger trigger = getCronTrigger(quartzJob.getId())
                                 .getTriggerBuilder().withIdentity(triggerKey)
@@ -97,8 +99,7 @@
             // 鐘舵�佹牎楠�
             checkStop(quartzJob) ;
         }catch (Exception e){
-            e.printStackTrace();
-//            throw new RuntimeException("createJob Fail",e) ;
+            log.error("updateJob澶辫触, jobId={}", quartzJob.getId(), e);
         }
     }
 
@@ -133,8 +134,7 @@
             dataMap.put(QuartzJob.JOB_PARAM_KEY,quartzJob);
             this.scheduler.triggerJob(getJobKey(quartzJob.getId()),dataMap);
         } catch (Exception e){
-            e.printStackTrace();
-//            throw new RuntimeException("createJob Fail",e) ;
+            log.error("run澶辫触, jobId={}", quartzJob.getId(), e);
         }
     }
 
@@ -147,8 +147,7 @@
                 this.scheduler.pauseJob(getJobKey(quartzJob.getId()));
             }
         } catch (Exception e){
-            e.printStackTrace();
-//            throw new RuntimeException("createJob Fail",e) ;
+            log.error("checkStop澶辫触, jobId={}", quartzJob.getId(), e);
         }
     }
 
diff --git a/server/system_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java b/server/system_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java
new file mode 100644
index 0000000..d327a39
--- /dev/null
+++ b/server/system_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java
@@ -0,0 +1,29 @@
+package com.doumee.config;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.AsyncConfigurer;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Slf4j
+@Configuration
+public class AsyncPoolConfig implements AsyncConfigurer {
+
+    @Bean("asyncExecutor")
+    @Override
+    public Executor getAsyncExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(5);
+        executor.setMaxPoolSize(20);
+        executor.setQueueCapacity(100);
+        executor.setKeepAliveSeconds(60);
+        executor.setThreadNamePrefix("async-timer-");
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        executor.initialize();
+        return executor;
+    }
+}
diff --git a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
index 6d7dee5..0503a88 100644
--- a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
+++ b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -3,14 +3,12 @@
 import com.doumee.service.business.third.model.ApiResponse;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 
 /**
  * @author jiangping
  */
-@Component("visitServiceJob")
 @FeignClient(value = "visitsTimer")
 public interface VisitServiceFegin {
 
diff --git a/server/system_timer/src/main/resources/application.yml b/server/system_timer/src/main/resources/application.yml
index 7a24317..3fb919f 100644
--- a/server/system_timer/src/main/resources/application.yml
+++ b/server/system_timer/src/main/resources/application.yml
@@ -68,6 +68,14 @@
   servlet:
     session:
       timeout: PT3H  #琛ㄧず12灏忔椂
+
+# Feign瓒呮椂閰嶇疆
+feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 30000
 auth:
   jwt:
     enabled: true   #鏄惁寮�鍚疛WT鐧诲綍璁よ瘉鍔熻兘
diff --git a/server/system_timer/src/main/resources/bootstrap.yml b/server/system_timer/src/main/resources/bootstrap.yml
index 107b53b..05a83ce 100644
--- a/server/system_timer/src/main/resources/bootstrap.yml
+++ b/server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: pro
   application:
     name: systemTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java
index 53bc14e..6be889d 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java
@@ -10,6 +10,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -23,6 +24,7 @@
 import java.sql.Statement;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.Executor;
 
 /**
  * @author 姹熻箘韫�
@@ -35,6 +37,9 @@
 public class DatabaseController extends BaseController {
 
     @Autowired
+    @Qualifier("asyncExecutor")
+    private Executor asyncExecutor;
+    @Autowired
     private PlatformJobService platformJobService;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
@@ -43,43 +48,32 @@
     @ApiOperation("鏁版嵁搴撳浠斤紝淇濈暀鏈�杩�7涓浠絪ql")
     @PostMapping("/backupDatabase")
     public ApiResponse backupDatabase() {
-        try {
-            String timestamp = DateUtil.getNowLongTime();
-//            String path = "/usr/local/jars/db/";
-//            String backupPath = path + timestamp + ".sql";
-            String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_DIR).getCode();
-            String code = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_CDOE).getCode() ;
-            String backupPath = path + timestamp + ".sql";
-            code= code.replace("${param}",backupPath);
-            log.error("鏁版嵁搴撳浠�================: " + code);
-            ProcessBuilder builder = new ProcessBuilder(code);
-            // 閲嶅畾鍚戦敊璇祦鍒版爣鍑嗚緭鍑烘祦
-            builder.redirectErrorStream(true);
-            // stdout
-            Process process = builder.start();
-            new Thread(new ProcessHandleRunnable(process)).start();
-            process.waitFor(); // wait if needed
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細backupDatabase-鏁版嵁搴撳浠�");
+        asyncExecutor.execute(() -> {
+            try {
+                String timestamp = DateUtil.getNowLongTime();
+                String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_DIR).getCode();
+                String code = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_CDOE).getCode() ;
+                String backupPath = path + timestamp + ".sql";
+                code= code.replace("${param}",backupPath);
+                log.info("鏁版嵁搴撳浠藉懡浠�: {}", code);
+                ProcessBuilder builder = new ProcessBuilder(code);
+                builder.redirectErrorStream(true);
+                Process process = builder.start();
+                new Thread(new ProcessHandleRunnable(process)).start();
+                process.waitFor();
 
-      /*      // 浣跨敤mysqldump鍛戒护杩涜鏁版嵁搴撳浠�
-            Process process = Runtime.getRuntime().exec(code);
-            process.getErrorStream();
-            process.getInputStream();
-            process.waitFor();*/
-
-            // 妫�鏌ュ浠芥槸鍚︽垚鍔�
-            if (new File(backupPath).exists()) {
-                log.info("鏁版嵁搴撳浠芥垚鍔�: " + backupPath);
-                return ApiResponse.success("鏁版嵁搴撳浠芥垚鍔�: " + backupPath);
-            } else {
-                log.error("鏁版嵁搴撳浠藉け璐�.");
+                if (new File(backupPath).exists()) {
+                    log.info("鏁版嵁搴撳浠芥垚鍔�: {}", backupPath);
+                } else {
+                    log.error("鏁版嵁搴撳浠藉け璐�.");
+                }
+                deleteOldFiles(path,7);
+            } catch (Exception e) {
+                log.error("鏁版嵁搴撳浠藉け璐�", e);
             }
-            deleteOldFiles(path,7);//淇濈暀鏈�杩�7涓枃浠�
-        } catch (Exception e) {
-            e.printStackTrace();
-
-            log.error("鏁版嵁搴撳浠藉け璐�."+e.getMessage());
-        }
-        return ApiResponse.failed("鏁版嵁搴撳浠藉け璐�" );
+        });
+        return ApiResponse.success("鏁版嵁搴撳浠藉凡鎻愪氦");
     }
     public void run() {
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/DingTalkTokenTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/DingTalkTokenTimerController.java
index 2d5857d..c8179dc 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/DingTalkTokenTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/DingTalkTokenTimerController.java
@@ -6,6 +6,7 @@
 import com.doumee.service.system.SystemDictDataService;
 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.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -17,6 +18,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "閽夐拤token瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/dingTalkToken")
 public class DingTalkTokenTimerController extends BaseController {
@@ -37,6 +39,7 @@
     @ApiOperation("寮�鍚畾鏃舵洿鏂伴拤閽変笟鍔oken")
     @PostMapping("/updateDingTalkTokenOrigin")
     public ApiResponse updateDingTalkTokenOrigin() throws Exception {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細updateDingTalkTokenOrigin-鏇存柊閽夐拤token");
         dingTalk.updTokenInfo();
         return ApiResponse.success("寮�鍚畾鏃舵洿鏂板井淇″叕浼楀彿accesstoken鎴愬姛");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/DuanluqiTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/DuanluqiTimerController.java
index 1a577d8..b780b0b 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/DuanluqiTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/DuanluqiTimerController.java
@@ -11,6 +11,7 @@
 import com.doumee.service.system.SystemDictDataService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "鏂矾鍣ㄨ繙绋嬫帶鍒跺畾鏃跺櫒")
+@Slf4j
 @RestController
 @RequestMapping("/timer/duanluqi")
 public class DuanluqiTimerController extends BaseController {
@@ -36,6 +38,7 @@
     @ApiOperation("寮�鍚畾鏃惰繙绋嬫帶鍒舵柇璺櫒鍒嗛椄")
     @PostMapping("/autoCloseCmd")
     public ApiResponse autoCloseCmd() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細autoCloseCmd-杩滅▼鎺у埗鏂矾鍣ㄥ垎闂�");
         deviceService.autoCloseCmdTimer();
         return ApiResponse.success("寮�鍚畾鏃惰繙绋嬫帶鍒舵柇璺櫒鍒嗛椄鎴愬姛");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java
index c6c7ea2..b598859 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java
@@ -6,6 +6,7 @@
 import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,6 +17,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "璁惧瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/device")
 public class HkDeviceTimerController extends BaseController {
@@ -26,12 +28,14 @@
     @ApiOperation("寮�鍚畾鏃舵煡璇㈣澶囩姸鎬�")
     @PostMapping("/getAscDeviceStatus")
     public ApiResponse getAscDeviceStatus() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細getAscDeviceStatus-鏌ヨ璁惧鐘舵��");
         hkSyncDeviceService.getAscDeviceStatus();
         return ApiResponse.success("寮�鍚畾鏃舵煡璇㈣澶囩姸鎬佹垚鍔�");
     }
     @ApiOperation("鏇存柊鍏ㄩ儴LED灞忔樉鍐呭涓洪粯璁ゅ唴瀹�")
     @PostMapping("/allLedDefualtContent")
     public ApiResponse allLedDefualtContent() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細allLedDefualtContent-鏇存柊LED灞忛粯璁ゅ唴瀹�");
         deviceService.allLedDefualtContent();
         return ApiResponse.success("鏇存柊鍏ㄩ儴LED灞忔樉鍐呭涓洪粯璁ゅ唴瀹�");
     }
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("寮�鍚畾鏃跺埛鏂颁汉鍛樿澶囨巿鏉冩垚鍔�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java
index 0cd0af7..5a9a0e6 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java
@@ -5,6 +5,7 @@
 import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -15,6 +16,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "娴峰悍浜嬩欢鍥剧墖涓嬭浇瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/image")
 public class HkImageTimerController extends BaseController {
@@ -29,6 +31,7 @@
     @ApiOperation("寮�鍚畾鏃朵笅杞芥捣搴风郴缁熷浘鐗囨暟鎹�")
     @PostMapping("/downHKImgs")
     public ApiResponse downHKImgs() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細downHKImgs-涓嬭浇娴峰悍鍥剧墖");
         if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){
             hkSyncImgService.downHKImgs(0);
         }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkNoticeTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkNoticeTimerController.java
index b3ba7f4..c4fbd19 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkNoticeTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkNoticeTimerController.java
@@ -6,6 +6,7 @@
 import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,6 +17,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "娴峰悍浠e姙瀹氭椂鎶撳彇鎺ュ彛")
+@Slf4j
 @RestController
 @RequestMapping("/timer/hkNotice")
 public class HkNoticeTimerController extends BaseController {
@@ -29,6 +31,7 @@
     @ApiOperation("寮�鍚畾鏃舵煡璇㈡渶鏂颁汉鍛樹唬鍔炴暟鎹姸鎬�")
     @PostMapping("/getNoticeList")
     public ApiResponse getNoticeList() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細getNoticeList-鏌ヨ娴峰悍浠e姙鏁版嵁");
         hkSyncVisitService.syncVisitData();
         return ApiResponse.success("寮�鍚畾鏃朵笅鍙戣瀹㈤绾︾敵璇锋垚鍔�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java
index 8c3974a..ae22327 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java
@@ -5,6 +5,7 @@
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,6 +18,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "鍋滆溅鍦烘帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/park")
 public class HkParkTimerController extends BaseController {
@@ -29,12 +31,14 @@
     @ApiOperation("寮�鍚畾鏃惰溅杈嗗寘鏈熸巿鏉�")
     @PostMapping("/syncParkBookData")
     public ApiResponse syncParkBookData() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncParkBookData-杞﹁締鍖呮湡鎺堟潈");
         hkSyncParkService.syncParkBookData();
         return ApiResponse.success("寮�鍚畾鏃惰溅杈嗗寘鏈熸巿鏉冩垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃舵煡璇㈣溅杈嗘煡璇�")
     @PostMapping("/syncVehicleUpdateData")
     public ApiResponse syncVehicleUpdateData() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncVehicleUpdateData-鏌ヨ杞﹁締");
         hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
         return ApiResponse.success("寮�鍚畾鏃舵煡璇㈣溅杈嗘煡璇㈡垚鍔�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkPlatformTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkPlatformTimerController.java
index a3c843f..a23ae36 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkPlatformTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkPlatformTimerController.java
@@ -5,6 +5,7 @@
 import com.doumee.service.business.impl.hksync.HkSyncPlatformsServiceImpl;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -15,6 +16,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "璁惧瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/platform")
 public class HkPlatformTimerController extends BaseController {
@@ -23,6 +25,7 @@
     @ApiOperation("寮�鍚畾鏃舵煡璇㈡湀鍙扮姸鎬�")
     @PostMapping("/getPlatformStatus")
     public ApiResponse getPlatformStatus() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細getPlatformStatus-鏌ヨ鏈堝彴鐘舵��");
         hkSyncPlatformsService.getPlatformStatus(new PlatformStatusRequest());
         return ApiResponse.success("寮�鍚畾鏃舵煡璇㈡湀鍙扮姸鎬佹垚鍔�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkSmsEmailTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkSmsEmailTimerController.java
index 2eb6dfb..702c2c2 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkSmsEmailTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkSmsEmailTimerController.java
@@ -4,6 +4,7 @@
 import com.doumee.service.business.SmsEmailService;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -14,6 +15,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "鐭俊鍙戦�佸畾鏃朵换鍔�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/sms")
 public class HkSmsEmailTimerController extends BaseController {
@@ -22,6 +24,7 @@
     @ApiOperation("寮�鍚畾鏃剁煭淇″彂閫佸畾鏃朵换鍔�")
     @PostMapping("/sendWaitingSmsNotice")
     public ApiResponse sendWaitingSmsNotice() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細sendWaitingSmsNotice-鍙戦�佺瓑寰呯煭淇�");
         smsEmailService.sendWaitingSmsNotice();
         return ApiResponse.success("寮�鍚畾鏃剁煭淇″彂閫佸畾鏃朵换鍔℃垚鍔�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
index 728213b..5d5b5e3 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
@@ -66,6 +66,7 @@
     @ApiOperation("寮�鍚畾鏃跺喕缁撲汉鍛�")
     @PostMapping("/memberFreeze")
     public ApiResponse memberFreeze() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細memberFreeze-鍐荤粨浜哄憳");
         memberService.memberFreeze();
         return ApiResponse.success("寮�鍚畾鏃跺喕缁撲汉鍛樻垚鍔�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
index 6111ce0..ea964fd 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
@@ -1,27 +1,31 @@
 package com.doumee.api;
 
 import com.doumee.service.business.third.model.ApiResponse;
-import com.doumee.core.utils.Constants;
 import com.doumee.service.business.VisitsService;
 import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
 import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
 @Api(tags = "璁垮瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/visit")
 public class HkVisitTimerController extends BaseController {
+
+    private final AtomicBoolean dealingFromHkVisit = new AtomicBoolean(false);
 
     @Autowired
     private HkSyncVisitServiceImpl hkSyncVisitService;
@@ -33,27 +37,28 @@
     @ApiOperation("寮�鍚畾鏃朵笅鍙戣瀹㈤绾︾敵璇�")
     @PostMapping("/syncVisitData")
     public ApiResponse syncVisitData() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncVisitData-涓嬪彂璁垮棰勭害鐢宠");
         hkSyncVisitService.syncVisitData();
         return ApiResponse.success("寮�鍚畾鏃朵笅鍙戣瀹㈤绾︾敵璇锋垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃舵煡璇㈣瀹㈤绾︾姸鎬�")
     @PostMapping("/getOutTimeVisitRecord")
     public ApiResponse getOutTimeVisitRecord() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細getOutTimeVisitRecord-鏌ヨ璁垮棰勭害鐘舵��");
         hkSyncVisitService.getOutTimeVisitRecordIccm();
         return ApiResponse.success("寮�鍚畾鏃舵煡璇㈣瀹㈤绾︾姸鎬佹垚鍔�");
     }
     @ApiOperation("寮�鍚畾鏃朵粖鏃ョ殑璁垮棰勭害鏁版嵁")
     @PostMapping("/syncVistAppointData")
     public ApiResponse syncVistAppointData() {
-        if(!Constants.DEALING_FROM_HK_VISIT){
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncVistAppointData-浠婃棩璁垮棰勭害鏁版嵁");
+        if(dealingFromHkVisit.compareAndSet(false, true)){
             try {
-                Constants.DEALING_FROM_HK_VISIT =true;
                 hkSyncVisitFromHKService.syncVistAppointData(new Date());
-                Constants.DEALING_FROM_HK_VISIT =false;
             }catch (Exception e){
-
+                log.error("syncVistAppointData寮傚父", e);
             }finally {
-                Constants.DEALING_FROM_HK_VISIT =false;
+                dealingFromHkVisit.set(false);
             }
         }
         return ApiResponse.success("寮�鍚畾鏃朵粖鏃ョ殑璁垮棰勭害鏁版嵁鎴愬姛");
@@ -62,12 +67,14 @@
     @ApiOperation("璁垮鍗冲皢瓒呮椂棰勮")
     @PostMapping("/visitTimeOut")
     public ApiResponse visitTimeOut() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細visitTimeOut-璁垮瓒呮椂棰勮");
         visitsService.syncTimeOutData();
         return ApiResponse.success("璁垮鍗冲皢瓒呮椂棰勮");
     }
     @ApiOperation("寰呭鎵硅褰曡秴鏃惰嚜鍔ㄥ彇娑堥绾�")
     @PostMapping("/visitNoCheckCancel")
     public ApiResponse visitNoCheckCancel() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細visitNoCheckCancel-瓒呮椂鑷姩鍙栨秷棰勭害");
         visitsService.visitNoCheckCancel();
         return ApiResponse.success("寰呭鎵硅褰曡秴鏃惰嚜鍔ㄥ彇娑堥绾�");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/InterfaceLogTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/InterfaceLogTimerController.java
index 87a2208..41fe1c5 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/InterfaceLogTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/InterfaceLogTimerController.java
@@ -7,6 +7,7 @@
 import com.doumee.service.business.PlatformInterfaceLogService;
 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.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,6 +18,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "鏃ュ織瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/log")
 public class InterfaceLogTimerController extends BaseController {
@@ -30,6 +32,7 @@
     @ApiOperation("寮�鍚畾鏃舵帴鍙f棩蹇楁竻鐞�")
     @PostMapping("/clearThreeMonthLog")
     public ApiResponse clearThreeMonthLog() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細clearThreeMonthLog-娓呯悊涓変釜鏈堟棩蹇�");
         interfaceLogService.clearThreeMonthLog();
         wmsInterfaceLogService.clearThreeMonthLog();
         platformInterfaceLogService.clearThreeMonthLog();
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java
index fba3f5e..54410e1 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java
@@ -6,6 +6,7 @@
 import com.doumee.service.business.third.model.ApiResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "閽ュ寵鏌滃畾鏃跺櫒")
+@Slf4j
 @RestController
 @RequestMapping("/timer/jkCabinet")
 public class JkCabinetTimerController extends BaseController {
@@ -31,6 +33,7 @@
     @ApiOperation("瀹氭椂鍙戦�侀挜鍖欐湭鍙婃椂褰掕繕閫氱煡")
     @PostMapping("/timeOutUnBackAlarm")
     public ApiResponse timeOutUnBackAlarm() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細timeOutUnBackAlarm-閽ュ寵鏈綊杩橀�氱煡");
         jkCabinetLogService.timeOutUnBackAlarm(impl);
         return ApiResponse.success("瀹氭椂鍙戦�侀挜鍖欐湭鍙婃椂褰掕繕閫氱煡");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/JkCustomerTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/JkCustomerTimerController.java
index ce6e734..1fa97b1 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/JkCustomerTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/JkCustomerTimerController.java
@@ -11,6 +11,7 @@
 import com.doumee.service.system.SystemDictDataService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "浜ゆ帶涓績瀹㈡埛瀹氭椂鍣�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/jkCustomer")
 public class JkCustomerTimerController extends BaseController {
@@ -36,6 +38,7 @@
     @ApiOperation("鏇存柊浜ゆ帶涓績瀹㈡埛缁忕含搴︿俊鎭�")
     @PostMapping("/getCustomerLocationInfo")
     public ApiResponse getCustomerLocationInfo() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細getCustomerLocationInfo-鏇存柊瀹㈡埛缁忕含搴�");
         DefaultSecurityManager securityManager = new DefaultSecurityManager();
         SecurityUtils.setSecurityManager(securityManager);
         jkCustomerService.checkNullLocation();
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
index 53bf7a9..6988277 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
@@ -11,6 +11,8 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.concurrent.atomic.AtomicBoolean;
+
 /**
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
@@ -24,16 +26,20 @@
     @Autowired
     private PlatformJobService platformJobService;
 
+    private final AtomicBoolean dealingSendNotice = new AtomicBoolean(false);
+
 
     @ApiOperation("鏈堝彴鍋滈潬瓒呮椂鎶ヨ涓氬姟")
     @PostMapping("/platformJobTimer")
     public ApiResponse platformJobTimer() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細platformJobTimer-鏈堝彴鍋滈潬瓒呮椂鎶ヨ");
         platformJobService.timeOutReport();
         return ApiResponse.success("鏈堝彴鍋滈潬瓒呮椂鎶ヨ涓氬姟");
     }
     @ApiOperation("鏈堝彴浣滀笟妫�鏌ョ數瀛愰攣涓婇攣鐘舵��")
     @PostMapping("/platformCheckWmsLockStatus")
     public ApiResponse checkWmsLockStatus() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細checkWmsLockStatus-妫�鏌ョ數瀛愰攣涓婇攣鐘舵��");
         platformJobService.checkWmsLockStatus();
         return ApiResponse.success("鏈堝彴鍋滈潬瓒呮椂鎶ヨ涓氬姟");
     }
@@ -42,6 +48,7 @@
     @ApiOperation("鏈堝彴浣滀笟瓒呮椂鎶ヨ涓氬姟")
     @PostMapping("/platformJobWorkTimeOut")
     public ApiResponse platformJobWorkTimeOut() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細platformJobWorkTimeOut-鏈堝彴浣滀笟瓒呮椂鎶ヨ");
         platformJobService.timeOutWork();
         return ApiResponse.success("鏈堝彴浣滀笟瓒呮椂鎶ヨ涓氬姟");
     }
@@ -50,6 +57,7 @@
     @ApiOperation("鏈堝彴绛夊緟浣滀笟瓒呮椂涓氬姟")
     @PostMapping("/platformJobWaitTimeOut")
     public ApiResponse platformJobWaitTimeOut() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細platformJobWaitTimeOut-鏈堝彴绛夊緟浣滀笟瓒呮椂");
         platformJobService.timeOutCallIn();
         return ApiResponse.success("鏈堝彴绛夊緟浣滀笟瓒呮椂涓氬姟");
     }
@@ -59,10 +67,18 @@
     @PreventRepeat(interval = 2000)
     @ApiOperation("鏈堝彴浠婃棩浣滀笟鏈畬鎴愰�氱煡瀹氭椂")
     @PostMapping("/sendUnFinishNotice")
-    public synchronized ApiResponse sendUnFinishNotice() {
-        log.error("========鏈堝彴浠婃棩浣滀笟鏈畬鎴愰�氱煡瀹氭椂============寮�濮�"+System.currentTimeMillis()+"");
-        platformJobService.sendUnFinishNotice();
-        log.error("========鏈堝彴浠婃棩浣滀笟鏈畬鎴愰�氱煡瀹氭椂============缁撴潫"+System.currentTimeMillis()+"");
+    public ApiResponse sendUnFinishNotice() {
+        if(!dealingSendNotice.compareAndSet(false, true)){
+            return ApiResponse.success("sendUnFinishNotice姝e湪鎵ц锛岃烦杩�");
+        }
+        try {
+            log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細sendUnFinishNotice-鏈堝彴浣滀笟鏈畬鎴愰�氱煡");
+            platformJobService.sendUnFinishNotice();
+        } catch (Exception e){
+            log.error("sendUnFinishNotice寮傚父", e);
+        } finally {
+            dealingSendNotice.set(false);
+        }
         return ApiResponse.success("鏈堝彴浠婃棩浣滀笟澶栧畬鎴愰�氱煡瀹氭椂");
     }
 
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/WeatherTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/WeatherTimerController.java
index 0b1a90b..8c5e712 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/WeatherTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/WeatherTimerController.java
@@ -7,6 +7,7 @@
 import com.doumee.service.system.SystemDictDataService;
 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.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -18,6 +19,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "澶╂皵棰勮鍚屾")
+@Slf4j
 @RestController
 @RequestMapping("/timer/weather")
 public class WeatherTimerController extends BaseController {
@@ -33,6 +35,7 @@
     @ApiOperation("瀹氭椂鍚屾澶╂皵棰勮淇℃伅")
     @PostMapping("/syncWeatherInfo")
     public ApiResponse syncWeatherInfo(){
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細syncWeatherInfo-鍚屾澶╂皵棰勮");
         warningService.getWeatherInfo();
         return ApiResponse.success("瀹氭椂鍚屾澶╂皵棰勮淇℃伅");
     }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/WxTokenTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/WxTokenTimerController.java
index d8c4c96..5ae7500 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/WxTokenTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/WxTokenTimerController.java
@@ -13,6 +13,7 @@
 import com.doumee.service.system.SystemDictDataService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.mgt.DefaultSecurityManager;
@@ -30,6 +31,7 @@
  * @date 2023/11/30 15:33
  */
 @Api(tags = "寰俊token瀹氭椂鍣ㄦ帴鍙�")
+@Slf4j
 @RestController
 @RequestMapping("/timer/wxtoken")
 public class WxTokenTimerController extends BaseController {
@@ -66,6 +68,7 @@
     @ApiOperation("寮�鍚畾鏃舵洿鏂板井淇″叕浼楀彿accesstoken")
     @PostMapping("/updateWxAccessTokenOrigin")
     public ApiResponse updateWxAccessTokenOrigin() {
+        log.info("瀹氭椂浠诲姟鎵ц寮�濮嬶細updateWxAccessTokenOrigin-鏇存柊寰俊token");
        DefaultSecurityManager securityManager = new DefaultSecurityManager();
         SecurityUtils.setSecurityManager(securityManager);
 
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java b/server/visits/admin_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java
new file mode 100644
index 0000000..7b478ba
--- /dev/null
+++ b/server/visits/admin_timer/src/main/java/com/doumee/config/AsyncPoolConfig.java
@@ -0,0 +1,29 @@
+package com.doumee.config;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.AsyncConfigurer;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Slf4j
+@Configuration
+public class AsyncPoolConfig implements AsyncConfigurer {
+
+    @Bean("asyncExecutor")
+    @Override
+    public Executor getAsyncExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(5);
+        executor.setMaxPoolSize(20);
+        executor.setQueueCapacity(100);
+        executor.setKeepAliveSeconds(60);
+        executor.setThreadNamePrefix("async-admin-timer-");
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        executor.initialize();
+        return executor;
+    }
+}
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap.yml b/server/visits/admin_timer/src/main/resources/bootstrap.yml
index efae338..b5b65b7 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: pro
   application:
     name: visitsTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 9dc10e9..2df12af 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: pro
   application:
     name: visitsAdmin
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/config/AsyncPoolConfig.java b/server/visits/dmvisit_service/src/main/java/com/doumee/config/AsyncPoolConfig.java
new file mode 100644
index 0000000..bb86cfa
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/config/AsyncPoolConfig.java
@@ -0,0 +1,29 @@
+package com.doumee.config;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.AsyncConfigurer;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Slf4j
+@Configuration
+public class AsyncPoolConfig implements AsyncConfigurer {
+
+    @Bean("asyncExecutor")
+    @Override
+    public Executor getAsyncExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(5);
+        executor.setMaxPoolSize(20);
+        executor.setQueueCapacity(100);
+        executor.setKeepAliveSeconds(60);
+        executor.setThreadNamePrefix("async-visit-");
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        executor.initialize();
+        return executor;
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
index 475a4e7..c0cf814 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
@@ -54,7 +54,7 @@
     private Integer gridId;
 
     @ApiModelProperty(value = "楠岃瘉鏂瑰紡 0鍒疯劯 1鍒峰崱", example = "1")
-    @ExcelColumn(name="鏍¢獙鏂瑰紡",index = 2,width = 10,valueMapping = "0=浜鸿劯;1=鍒峰崱;2=绠$悊鎺堟潈;")
+    @ExcelColumn(name="鏍¢獙鏂瑰紡",index = 2,width = 10,valueMapping = "0=浜鸿劯;1=鍒峰崱;2=绠$悊鎺堟潈;3=鑷姩;")
     private Integer authType;
 
     @ApiModelProperty(value = "杞﹁締缂栫爜锛堝叧鑱攃ars)", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
index b2aec88..2432369 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -29,12 +29,14 @@
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.Executor;
 
 /**
  * 闂ㄧ瑙掕壊淇℃伅琛⊿ervice瀹炵幇
@@ -55,6 +57,10 @@
     private DeviceMapper deviceMapper;
     @Autowired
     private MemberRoleJoinMapper memberRoleMapper;
+
+    @Autowired
+    @Qualifier("asyncExecutor")
+    private Executor asyncExecutor;
     @Autowired
     private MemberMapper memberMapper;
 
@@ -152,17 +158,13 @@
         }
        int t = deviceRoleMapper.updateById(deviceRole);
        if(t>0){
-            Thread tt = new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        startUpdateMemberEmpower(model,deviceRole);
-                    }catch (Exception e){
-                        log.error("======闂ㄧ鍒嗙粍淇敼锛屾洿鏂颁汉鍛樻潈闄愬け璐�==="+e.getMessage());
-                    }
+            asyncExecutor.execute(() -> {
+                try {
+                    startUpdateMemberEmpower(model,deviceRole);
+                }catch (Exception e){
+                    log.error("======闂ㄧ鍒嗙粍淇敼锛屾洿鏂颁汉鍛樻潈闄愬け璐�===", e);
                 }
             });
-            tt.start();
        }
     }
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
index 993bdae..617ac0f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -57,6 +57,9 @@
     private JkKeysMapper jkKeysMapper;
 
     @Autowired
+    private CarsMapper carsMapper;
+
+    @Autowired
     private SystemUserMapper systemUserMapper;
 
     @Autowired
@@ -1220,11 +1223,19 @@
                     );
                     log.error("閽ュ寵鏌滀俊鎭帹閫佸疄闄呴挜鍖欏彉鍖栵細"+jkCabinetGrid.getKeyCode());
                     JkCabinetLog cabinetLog = new JkCabinetLog();
+                    cabinetLog.setKeyInfo(jkCabinetGrid.getCarCode() + " " + jkCabinetGrid.getKeyCode());
+                    JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
+                    if(Objects.nonNull(jkKeys)){
+                        cabinetLog.setKeyInfo(jkCabinetGrid.getCarCode() + " " + jkKeys.getCode());
+                        Cars cars = carsMapper.selectById(jkCabinetGrid.getCarId());
+                        if(Objects.nonNull(cars)){
+                            cabinetLog.setMemberId(cars.getMemberId());
+                        }
+                    }
                     cabinetLog.setCabinetId(jkCabinetGrid.getCabinetId());
                     cabinetLog.setGridId(jkCabinetGrid.getId());
                     cabinetLog.setKeyId(jkCabinetGrid.getKeyId());
                     cabinetLog.setCarId(jkCabinetGrid.getCarId());
-                    cabinetLog.setKeyInfo(jkCabinetGrid.getCarCode() + " " + jkCabinetGrid.getKeyCode());
                     cabinetLog.setType(Constants.ONE);
                     cabinetLog.setStatus(Constants.ZERO);
                     cabinetLog.setAuthType(3);
@@ -1243,11 +1254,19 @@
                     );
                     log.error("閽ュ寵鏌滀俊鎭帹閫佸疄闄呴挜鍖欏彉鍖栵細"+jkCabinetGrid.getKeyCode());
                     JkCabinetLog cabinetLog = new JkCabinetLog();
+                    cabinetLog.setKeyInfo(jkCabinetGrid.getCarCode() + " " + jkCabinetGrid.getKeyCode());
+                    JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
+                    if(Objects.nonNull(jkKeys)){
+                        cabinetLog.setKeyInfo(jkCabinetGrid.getCarCode() + " " + jkKeys.getCode());
+                        Cars cars = carsMapper.selectById(jkCabinetGrid.getCarId());
+                        if(Objects.nonNull(cars)){
+                            cabinetLog.setMemberId(cars.getMemberId());
+                        }
+                    }
                     cabinetLog.setCabinetId(jkCabinetGrid.getCabinetId());
                     cabinetLog.setGridId(jkCabinetGrid.getId());
                     cabinetLog.setKeyId(jkCabinetGrid.getKeyId());
                     cabinetLog.setCarId(jkCabinetGrid.getCarId());
-                    cabinetLog.setKeyInfo(jkCabinetGrid.getCarCode() + " " + jkCabinetGrid.getKeyCode());
                     cabinetLog.setType(Constants.ONE);
                     cabinetLog.setStatus(Constants.ZERO);
                     cabinetLog.setAuthType(3);
@@ -1257,6 +1276,14 @@
                     cabinetLog.setIsdeleted(Constants.ZERO);
                     cabinetLog.setCreateDate(new Date());
                     jkCabinetLogMapper.insert(cabinetLog);
+
+                    jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
+                            .set(JkCabinetLog::getCloseLogId,cabinetLog.getId())
+                            .eq(JkCabinetLog::getKeyId,cabinetLog.getKeyId())
+                            .eq(JkCabinetLog::getType,Constants.ONE)
+                            .eq(JkCabinetLog::getKeyStatus,Constants.TWO)
+                            .isNull(JkCabinetLog::getCloseLogId));
+
                 }
             }
 //            if(StringUtils.isBlank(jkCabinetGrid.getKeyCode())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
index 1b774b2..8a477f2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -33,6 +33,7 @@
 import netscape.javascript.JSObject;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -44,6 +45,7 @@
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.Date;
+import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -56,6 +58,9 @@
 @Slf4j
 public class JkSketchServiceImpl implements JkSketchService {
 
+    @Autowired
+    @Qualifier("asyncExecutor")
+    private Executor asyncExecutor;
     @Autowired
     private JkSketchMapper jkSketchMapper;
     @Autowired
@@ -286,7 +291,7 @@
                 BigDecimal finalCLongitude = cLongitude;
                 log.error("浜ら�氳鍒�====绾跨▼circle锛�"+i+"====start:"+start+"===========end:"+end);
                 int finalI = i;
-                Thread t1=new Thread(() -> {
+                asyncExecutor.execute(() -> {
                     try {
                         int index =0;
                         for (int j = start; j < end; j++) {
@@ -311,10 +316,9 @@
                     }
 
                 });
-                t1.start();
             }
         }catch (Exception e){
-            e.printStackTrace();
+            log.error("distanceCustomer寮傚父", e);
         }finally {
 
         }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
index 77e9960..c797984 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -24,12 +24,14 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.Executor;
 
 /**
  * 娴峰悍闂ㄧ鎺堟潈涓氬姟Service瀹炵幇
@@ -50,12 +52,17 @@
     @Autowired
     private MemberCardMapper memberCardMapper;
 
+    @Autowired
+    @Qualifier("asyncExecutor")
+    private Executor asyncExecutor;
+
     /**
      * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
      */
     @Override
     public  Integer   syncEmpowerDetailData(Integer endId){
-        log.error("");
+        long startTime = System.currentTimeMillis();
+        log.info("syncEmpowerDetailData鎵ц寮�濮�, endId={}", endId);
 //        if(Constants.DEALING_HK_EMPOWER_DETAIL){
 //            return   ;
 //        }
@@ -63,13 +70,12 @@
             //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
             List<Empower>  list = getDealListDetail(endId);
            if(list == null || list.size() ==0){
+               log.info("syncEmpowerDetailData鏃犲緟澶勭悊鏁版嵁, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
                return null;
            }
-        Thread t1=new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    for(Empower c : list){
+        asyncExecutor.execute(() -> {
+            try {
+                for(Empower c : list){
                         AuthResultPageRequest param = new AuthResultPageRequest();
                         param.setPageNo(1);
                         param.setPageSize(999);
@@ -201,11 +207,10 @@
                         }
                     }
                 }catch (Exception e){
-                    e.printStackTrace();
+                    log.error("syncEmpowerDetailData鎵ц寮傚父", e);
                 }
-            }
         });
-        t1.start();
+         log.info("syncEmpowerDetailData鎵ц缁撴潫, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
          return list.get(list.size()-1).getId();
 
     }
@@ -345,18 +350,15 @@
      */
     @Override
     public  Integer syncEmpowerResultData(Integer endId){
-//        if(Constants.DEALING_HK_EMPOWER_RESULT){
-//            return  null ;
-//        }
-//        Constants.DEALING_HK_EMPOWER_RESULT=true;
+        long startTime = System.currentTimeMillis();
+        log.info("syncEmpowerResultData鎵ц寮�濮�, endId={}", endId);
             //鏌ヨ鎵�鏈夋墽琛屼腑寰楁暟鎹�
          List<Empower>  list = getIngTaskListResult(Constants.formatIntegerNum(endId));
            if(list == null || list.size() ==0){
+               log.info("syncEmpowerResultData鏃犲緟澶勭悊鏁版嵁, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
                return null;
            }
-            Thread t1=new Thread(new Runnable() {
-                @Override
-                public void run() {
+            asyncExecutor.execute(() -> {
                     try {
                         for(Empower c : list){
                             TaskProgressRequest param = new TaskProgressRequest();
@@ -389,13 +391,10 @@
                             }
                         }
                     }catch (Exception e1){
-                        e1.printStackTrace();
-                    }finally {
-                        Constants.DEALING_HK_EMPOWER_RESULT =false;
+                        log.error("syncEmpowerResultData鎵ц寮傚父", e1);
                     }
-                }
-            });
-            t1.start();
+                });
+            log.info("syncEmpowerResultData鎵ц缁撴潫, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
             return list.get(list.size()-1).getId();
 
     }
@@ -407,6 +406,8 @@
      */
     @Override
     public  Integer syncEmpowerFailData(Integer endId) {
+        long startTime = System.currentTimeMillis();
+        log.info("syncEmpowerFailData鎵ц寮�濮�, endId={}", endId);
         List<Empower> allList =getAllFailDealList( endId);
         if(allList!=null && allList.size()>0){
             Date date = new Date();
@@ -446,6 +447,7 @@
             }
             return allList.get(allList.size()-1).getId();
         }
+        log.info("syncEmpowerFailData鎵ц缁撴潫, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
         return null;
     }
     /**
@@ -453,33 +455,28 @@
      */
     @Override
     public  Integer syncEmpowerData(Integer endId) {
-//        if(Constants.DEALING_HK_EMPOWER){
-//            return  null ;
-//        }
-//        Constants.DEALING_HK_EMPOWER =true;
+        long startTime = System.currentTimeMillis();
+        log.info("syncEmpowerData鎵ц寮�濮�, endId={}", endId);
             //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
             if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
                     .eq(Empower::getSendStatus,Constants.EmpowerStatus.ing)) > 1000){
-                //濡傛灉褰撳墠浠诲姟澶т簬1000涓紙澶ф10涓换鍔★級
+                log.info("syncEmpowerData浠诲姟闃熷垪宸叉弧(>1000), 璺宠繃, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
                 return endId;
             }
             List<Empower> allList =getAllWaitDealList( endId);
             if(allList !=null && allList.size()>0){
                 //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙�
-                Thread t1=new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        try {
-                            dealAllListTask(allList);
-                        }catch (Exception e){
-                            log.info("======================涓嬪彂鎺堟潈寮傚父锛�"+e.getMessage());
-                            e.printStackTrace();
-                        }
+                asyncExecutor.execute(() -> {
+                    try {
+                        dealAllListTask(allList);
+                    }catch (Exception e){
+                        log.error("======================涓嬪彂鎺堟潈寮傚父", e);
                     }
                 });
-                t1.start();
+                log.info("syncEmpowerData鎻愪氦{}鏉℃暟鎹�, 鑰楁椂{}ms", allList.size(), System.currentTimeMillis() - startTime);
                 return allList.get(allList.size()-1).getId();
             }
+        log.info("syncEmpowerData鏃犲緟澶勭悊鏁版嵁, 鑰楁椂{}ms", System.currentTimeMillis() - startTime);
         return null;
     }
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 3b7589b..1fd3684 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -39,6 +39,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -47,6 +48,7 @@
 import java.io.IOException;
 import java.util.*;
 import java.util.Date;
+import java.util.concurrent.Executor;
 import java.util.stream.Collectors;
 
 /**
@@ -58,6 +60,9 @@
 @Slf4j
 public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl {
 
+    @Autowired
+    @Qualifier("asyncExecutor")
+    private Executor asyncExecutor;
     @Autowired
     private InoutDayCountMapper inoutDayCountMapper;
     @Autowired
@@ -598,9 +603,7 @@
     private void dealNoticeTelecomEvent(EventBaseRequest param,EventBaseInfoRequest request ,List<WarningEvent> list) {
         try {
             log.error("========閫氱煡鍏朵粬涓夋柟鍦板潃绂诲矖浜嬩欢寮�濮�:"+list.size());
-            Thread t1=new Thread(new Runnable() {
-                @Override
-                public void run() {
+            asyncExecutor.execute(() -> {
 //                  EventBaseRequest submitParam = new EventBaseRequest();
 //                  submitParam.setMethod(param.getMethod());
 //                  submitParam.setParams(new EventBaseParamRequest());
@@ -664,11 +667,9 @@
                             log.error("========閫氱煡鍏朵粬涓夋柟鍦板潃绂诲矖浜嬩欢宸叉帹閫侊紝缁撴灉:"+s+"\n"+response);
                         }
                     }
-                }
-            });
-            t1.start();
+                });
         }catch (Exception e){
-            e.printStackTrace();
+            log.error("dealNoticeTelecomEvent寮傚父", e);
         }
     }
 

--
Gitblit v1.9.3