diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java index 7e21b5dc..770adb70 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java @@ -26,6 +26,7 @@ import com.kamco.cd.kamcoback.model.dto.ModelMngDto.Basic; import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService; import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService; +import jakarta.persistence.EntityNotFoundException; import jakarta.validation.constraints.NotNull; import java.time.ZonedDateTime; import java.util.ArrayList; @@ -100,6 +101,10 @@ public class InferenceResultService { req.setMapSheetNum(this.createdMngDto(req, targetList)); } + if (req.getMapSheetNum().isEmpty()) { + throw new EntityNotFoundException("분석 대상 정보가 부족합니다."); + } + // 추론 테이블 저장 UUID uuid = inferenceResultCoreService.saveInferenceInfo(req); this.startInference(req, uuid); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java index 4b017b63..24f89f4b 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java @@ -64,8 +64,12 @@ public class InferenceResultCoreService { * @param req */ public UUID saveInferenceInfo(InferenceResultDto.RegReq req) { + String mapSheetName = - req.getMapSheetNum().get(0).getMapSheetName() + " 외 " + req.getMapSheetNum().size() + "건"; + req.getMapSheetNum().get(0).getMapSheetName() + + " 외 " + + (req.getMapSheetNum().size() - 1) + + "건"; if (req.getMapSheetNum().size() == 1) { mapSheetName = @@ -230,7 +234,9 @@ public class InferenceResultCoreService { .orElseThrow(() -> new EntityNotFoundException()); if (request.getType().equals("M1")) { - entity.setM1ModelBatchId(request.getBatchId()); + if (request.getBatchId() != null) { + entity.setM1ModelBatchId(request.getBatchId()); + } if (request.getModelStartDttm() != null) { entity.setM1ModelStartDttm(request.getModelStartDttm()); @@ -241,7 +247,9 @@ public class InferenceResultCoreService { } } else if (request.getType().equals("M2")) { - entity.setM2ModelBatchId(request.getBatchId()); + if (request.getBatchId() != null) { + entity.setM2ModelBatchId(request.getBatchId()); + } if (request.getModelStartDttm() != null) { entity.setM2ModelStartDttm(request.getModelStartDttm()); @@ -252,7 +260,9 @@ public class InferenceResultCoreService { } } else if (request.getType().equals("M3")) { - entity.setM3ModelBatchId(request.getBatchId()); + if (request.getBatchId() != null) { + entity.setM3ModelBatchId(request.getBatchId()); + } if (request.getModelStartDttm() != null) { entity.setM3ModelStartDttm(request.getModelStartDttm()); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java index 74873c8b..3405e344 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java @@ -504,7 +504,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport whereBuilder.and(mapSheetMngHstEntity.mngYyyy.eq(mngYyyy)); whereBuilder.and(mapSheetMngHstEntity.mapSheetNum.in(mapIds)); whereBuilder.and(mapSheetMngHstEntity.dataState.eq("DONE")); - whereBuilder.and(mapSheetMngHstEntity.syncState.eq("DONE")); + whereBuilder.and(mapSheetMngHstEntity.syncState.eq("DONE")); // TODO 싱크체크 or조건 추가 whereBuilder.and(mapSheetMngHstEntity.useInference.eq("USE")); return queryFactory diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java index 56f4dfa9..cf4a5db0 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java @@ -53,6 +53,10 @@ public class MapSheetInferenceJobService { @Transactional public void runBatch() { + if ("local".equalsIgnoreCase(profile)) { + return; + } + try { InferenceBatchSheet batchSheet = inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId()); @@ -102,7 +106,7 @@ public class MapSheetInferenceJobService { // 종료시간 this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M1"); } else if (type.equals("M2")) { - // M1 완료되었으면 M3 실행 + // M2 완료되었으면 M3 실행 this.startInference( batchSheet.getId(), batchSheet.getUuid(), "M3", batchSheet.getM3ModelUuid()); // 종료시간 @@ -113,10 +117,18 @@ public class MapSheetInferenceJobService { saveInferenceAiDto.setUuid(batchSheet.getUuid()); saveInferenceAiDto.setStatus(Status.END.getId()); saveInferenceAiDto.setInferEndDttm(ZonedDateTime.now()); + saveInferenceAiDto.setType(type); inferenceResultCoreService.update(saveInferenceAiDto); // 종료시간 this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M3"); } + } else if ("COMPLETED_WITH_FAILURES".equals(dto.getStatus())) { + SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto(); + saveInferenceAiDto.setUuid(batchSheet.getUuid()); + saveInferenceAiDto.setStatus(Status.END.getId()); + saveInferenceAiDto.setInferEndDttm(ZonedDateTime.now()); + saveInferenceAiDto.setType(batchSheet.getRunningModelType()); + inferenceResultCoreService.update(saveInferenceAiDto); } else { SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto(); saveInferenceAiDto.setUuid(batchSheet.getUuid());