diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusInitializer.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusInitializer.java index 01c2d5d..c3bc9cf 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusInitializer.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusInitializer.java @@ -1,5 +1,6 @@ package com.viewsh.module.ops.environment.job; +import com.viewsh.framework.tenant.core.util.TenantUtils; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; @@ -29,10 +30,12 @@ public class BadgeDeviceStatusInitializer implements ApplicationRunner { log.info("[初始化] 服务启动,开始同步工牌设备状态..."); try { - // 复用定时对账逻辑 - BadgeDeviceStatusSyncJob.SyncResult result = syncJob.syncAllBadgeDeviceStatus(); - log.info("[初始化] 工牌设备状态同步完成:处理 {} 台,修正 {} 台,耗时 {} ms", - result.syncCount(), result.correctedCount(), result.durationMs()); + // 使用 executeIgnore 运行,确保在无租户上下文的启动阶段可以全量同步 + TenantUtils.executeIgnore(() -> { + BadgeDeviceStatusSyncJob.SyncResult result = syncJob.syncAllBadgeDeviceStatus(); + log.info("[初始化] 工牌设备状态同步完成:处理 {} 台,修正 {} 台,耗时 {} ms", + result.syncCount(), result.correctedCount(), result.durationMs()); + }); } catch (Exception e) { log.error("[初始化] 工牌设备状态同步失败", e); }