diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/scheduler/LaserBag2AutoSendScheduler.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/scheduler/LaserBag2AutoSendScheduler.kt index b129781..089ddce 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/scheduler/LaserBag2AutoSendScheduler.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/scheduler/LaserBag2AutoSendScheduler.kt @@ -25,16 +25,10 @@ class LaserBag2AutoSendScheduler( return } try { - val report = laserBag2AutoSendService.runAutoSend( + laserBag2AutoSendService.runAutoSend( planStart = LocalDate.now(), limitPerRun = limitPerRun, ) - logger.info( - "Laser Bag2 scheduler: processed {}/{} job orders for {}", - report.jobOrdersProcessed, - report.jobOrdersFound, - report.planStart, - ) } catch (e: Exception) { logger.error("Laser Bag2 scheduler failed", e) } diff --git a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt index e536975..69c887c 100644 --- a/src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt +++ b/src/main/java/com/ffii/fpsms/modules/jobOrder/service/LaserBag2AutoSendService.kt @@ -35,9 +35,8 @@ class LaserBag2AutoSendService( sendsPerJob: Int = defaultSendsPerJob, delayBetweenSendsMs: Long = defaultDelayBetweenSendsMs, ): LaserBag2AutoSendReport { - val (reachable, laserIp, laserPort) = plasticBagPrinterService.probeLaserBag2Tcp() + val (reachable, _, _) = plasticBagPrinterService.probeLaserBag2Tcp() if (!reachable) { - logger.warn("Connection failed to the laser print: {} / {}", laserIp, laserPort) return LaserBag2AutoSendReport( planStart = planStart, jobOrdersFound = 0, diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/BomM18ShopBulkPushService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/BomM18ShopBulkPushService.kt index eb9eb90..e287244 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/BomM18ShopBulkPushService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/BomM18ShopBulkPushService.kt @@ -1,22 +1,29 @@ package com.ffii.fpsms.modules.master.service import com.ffii.fpsms.m18.model.M18BomShopBatchSyncSummary +import com.ffii.fpsms.modules.common.SettingNames import com.ffii.fpsms.modules.master.entity.BomRepository +import com.ffii.fpsms.modules.settings.entity.Settings +import com.ffii.fpsms.modules.settings.service.SettingsService import org.springframework.stereotype.Service /** * Calls [BomService.pushBomToM18ShopIfAllowed] for each BOM id via the injected proxied bean * so `@Transactional` applies per BOM (avoids same-class self-invocation). + * + * BOM shop toggle is read via [settingsService] here (not [BomService]) so callers never hit Kotlin + * `internal` accessors on [BomService] CGLIB proxies, which could leave delegated dependencies null. */ @Service open class BomM18ShopBulkPushService( private val bomRepository: BomRepository, private val bomService: BomService, + private val settingsService: SettingsService, ) { - /** Pushes all non-deleted BOMs to M18 when {@link BomService}'s BOM shop sync setting is enabled. */ + /** Pushes all non-deleted BOMs to M18 when {@link SettingNames#M18_BOM_SHOP_SYNC_ENABLED} is true. */ open fun pushAllBomsToM18ShopIfAllowed(): M18BomShopBatchSyncSummary { - if (!bomService.isM18BomShopSyncEnabled()) { + if (!isM18BomShopSyncEnabledSetting()) { return M18BomShopBatchSyncSummary( totalProcessed = 0, synced = 0, @@ -38,4 +45,9 @@ open class BomM18ShopBulkPushService( skippedBecauseFeatureDisabled = false, ) } + + private fun isM18BomShopSyncEnabledSetting(): Boolean = + settingsService.findByName(SettingNames.M18_BOM_SHOP_SYNC_ENABLED) + .map { Settings.VALUE_BOOLEAN_TRUE == it.value } + .orElse(false) } diff --git a/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt b/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt index a608deb..79f554a 100644 --- a/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt +++ b/src/main/java/com/ffii/fpsms/modules/master/service/BomService.kt @@ -511,7 +511,7 @@ open class BomService( return result } - internal fun isM18BomShopSyncEnabled(): Boolean = + private fun isM18BomShopSyncEnabled(): Boolean = settingsService.findByName(SettingNames.M18_BOM_SHOP_SYNC_ENABLED) .map { Settings.VALUE_BOOLEAN_TRUE == it.value } .orElse(false)