diff --git a/src/main/java/com/interplug/qcast/batch/JobLauncherController.java b/src/main/java/com/interplug/qcast/batch/JobLauncherController.java index eb4fd3d5..f9a904d0 100644 --- a/src/main/java/com/interplug/qcast/batch/JobLauncherController.java +++ b/src/main/java/com/interplug/qcast/batch/JobLauncherController.java @@ -170,31 +170,35 @@ public class JobLauncherController { * 공통 스케줄러 실행 메소드 */ private String executeScheduledJob(String jobName) { + // 1. 가장 먼저 스케줄러 설정 확인 + if (!"Y".equals(scheduler) && !"materialJob".equals(jobName) && !"commonCodeJob".equals(jobName)) { + log.info("Scheduler disabled, skipping job {}", jobName); + return "Scheduler disabled"; + } + + // 2. Job 존재 확인 Job job = jobs.get(jobName); if (job == null) { log.error("Job {} not found", jobName); return "Job " + jobName + " not found"; } - if (!"Y".equals(scheduler) && !"materialJob".equals(jobName) && !"commonCodeJob".equals(jobName)) { - log.info("Scheduler disabled, skipping job {}", jobName); - return "Scheduler disabled"; - } - - // 실행 중인 Job 확인 - if (runningJobs.contains(jobName) || isJobRunning(jobName)) { - log.warn("Job {} is already running, skipping execution", jobName); - return "Job already running"; - } - - // 다른 Job이 실행 중인지 확인 + // 3. 다른 Job 실행 중인지 확인 if (isAnyJobRunning()) { log.warn("Another job is running, skipping job {}", jobName); return "Another job is running"; } + // 4. 같은 Job이 실행 중인지 확인 + if (runningJobs.contains(jobName) || isJobRunning(jobName)) { + log.warn("Job {} is already running", jobName); + return "Job already running"; + } + + // 5. Job 실행 try { runningJobs.add(jobName); + log.info("Starting job {}", jobName); JobParameters jobParameters = new JobParametersBuilder() .addDate("time", new Date()) diff --git a/src/main/java/com/interplug/qcast/biz/displayItem/dto/BomSyncResponse.java b/src/main/java/com/interplug/qcast/biz/displayItem/dto/BomSyncResponse.java index a8fe8d05..8e109306 100644 --- a/src/main/java/com/interplug/qcast/biz/displayItem/dto/BomSyncResponse.java +++ b/src/main/java/com/interplug/qcast/biz/displayItem/dto/BomSyncResponse.java @@ -3,8 +3,10 @@ package com.interplug.qcast.biz.displayItem.dto; import com.interplug.qcast.util.DefaultResponse; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; /** Bom 아이템 동기화 Response */ +@EqualsAndHashCode(callSuper = true) @Data public class BomSyncResponse extends DefaultResponse { diff --git a/src/main/java/com/interplug/qcast/biz/displayItem/dto/ItemSyncResponse.java b/src/main/java/com/interplug/qcast/biz/displayItem/dto/ItemSyncResponse.java index 14589ee4..df303391 100644 --- a/src/main/java/com/interplug/qcast/biz/displayItem/dto/ItemSyncResponse.java +++ b/src/main/java/com/interplug/qcast/biz/displayItem/dto/ItemSyncResponse.java @@ -3,8 +3,10 @@ package com.interplug.qcast.biz.displayItem.dto; import com.interplug.qcast.util.DefaultResponse; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; /** 아이템 동기화 Response */ +@EqualsAndHashCode(callSuper = false) @Data public class ItemSyncResponse extends DefaultResponse { @Schema(description = "Material Number") diff --git a/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceItemSyncResponse.java b/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceItemSyncResponse.java index 8160d17c..c7d33b68 100644 --- a/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceItemSyncResponse.java +++ b/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceItemSyncResponse.java @@ -3,8 +3,10 @@ package com.interplug.qcast.biz.displayItem.dto; import com.interplug.qcast.util.DefaultResponse; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; /** 아이템 동기화 Response */ +@EqualsAndHashCode(callSuper = false) @Data public class PriceItemSyncResponse extends DefaultResponse { @Schema(description = "Price Pattern(정가 : 510,.A가격 : 513, C가격 : 514)") diff --git a/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceSyncResponse.java b/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceSyncResponse.java index 4dc07ee5..afcbdefa 100644 --- a/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceSyncResponse.java +++ b/src/main/java/com/interplug/qcast/biz/displayItem/dto/PriceSyncResponse.java @@ -4,8 +4,10 @@ import com.interplug.qcast.util.DefaultResponse; import io.swagger.v3.oas.annotations.media.Schema; import java.util.List; import lombok.Data; +import lombok.EqualsAndHashCode; /** 가격 동기화 Response */ +@EqualsAndHashCode(callSuper = false) @Data public class PriceSyncResponse extends DefaultResponse {