Merge remote-tracking branch 'origin/feat/infer_dev_260107' into feat/infer_dev_260107

This commit is contained in:
Moon
2026-01-13 10:26:51 +09:00
4 changed files with 33 additions and 6 deletions

View File

@@ -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.InferenceResultCoreService;
import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService;
import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService; import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService;
import jakarta.persistence.EntityNotFoundException;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.ArrayList; import java.util.ArrayList;
@@ -100,6 +101,10 @@ public class InferenceResultService {
req.setMapSheetNum(this.createdMngDto(req, targetList)); req.setMapSheetNum(this.createdMngDto(req, targetList));
} }
if (req.getMapSheetNum().isEmpty()) {
throw new EntityNotFoundException("분석 대상 정보가 부족합니다.");
}
// 추론 테이블 저장 // 추론 테이블 저장
UUID uuid = inferenceResultCoreService.saveInferenceInfo(req); UUID uuid = inferenceResultCoreService.saveInferenceInfo(req);
this.startInference(req, uuid); this.startInference(req, uuid);

View File

@@ -64,8 +64,12 @@ public class InferenceResultCoreService {
* @param req * @param req
*/ */
public UUID saveInferenceInfo(InferenceResultDto.RegReq req) { public UUID saveInferenceInfo(InferenceResultDto.RegReq req) {
String mapSheetName = String mapSheetName =
req.getMapSheetNum().get(0).getMapSheetName() + "" + req.getMapSheetNum().size() + ""; req.getMapSheetNum().get(0).getMapSheetName()
+ ""
+ (req.getMapSheetNum().size() - 1)
+ "";
if (req.getMapSheetNum().size() == 1) { if (req.getMapSheetNum().size() == 1) {
mapSheetName = mapSheetName =
@@ -230,7 +234,9 @@ public class InferenceResultCoreService {
.orElseThrow(() -> new EntityNotFoundException()); .orElseThrow(() -> new EntityNotFoundException());
if (request.getType().equals("M1")) { if (request.getType().equals("M1")) {
entity.setM1ModelBatchId(request.getBatchId()); if (request.getBatchId() != null) {
entity.setM1ModelBatchId(request.getBatchId());
}
if (request.getModelStartDttm() != null) { if (request.getModelStartDttm() != null) {
entity.setM1ModelStartDttm(request.getModelStartDttm()); entity.setM1ModelStartDttm(request.getModelStartDttm());
@@ -241,7 +247,9 @@ public class InferenceResultCoreService {
} }
} else if (request.getType().equals("M2")) { } else if (request.getType().equals("M2")) {
entity.setM2ModelBatchId(request.getBatchId()); if (request.getBatchId() != null) {
entity.setM2ModelBatchId(request.getBatchId());
}
if (request.getModelStartDttm() != null) { if (request.getModelStartDttm() != null) {
entity.setM2ModelStartDttm(request.getModelStartDttm()); entity.setM2ModelStartDttm(request.getModelStartDttm());
@@ -252,7 +260,9 @@ public class InferenceResultCoreService {
} }
} else if (request.getType().equals("M3")) { } else if (request.getType().equals("M3")) {
entity.setM3ModelBatchId(request.getBatchId()); if (request.getBatchId() != null) {
entity.setM3ModelBatchId(request.getBatchId());
}
if (request.getModelStartDttm() != null) { if (request.getModelStartDttm() != null) {
entity.setM3ModelStartDttm(request.getModelStartDttm()); entity.setM3ModelStartDttm(request.getModelStartDttm());

View File

@@ -504,7 +504,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
whereBuilder.and(mapSheetMngHstEntity.mngYyyy.eq(mngYyyy)); whereBuilder.and(mapSheetMngHstEntity.mngYyyy.eq(mngYyyy));
whereBuilder.and(mapSheetMngHstEntity.mapSheetNum.in(mapIds)); whereBuilder.and(mapSheetMngHstEntity.mapSheetNum.in(mapIds));
whereBuilder.and(mapSheetMngHstEntity.dataState.eq("DONE")); 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")); whereBuilder.and(mapSheetMngHstEntity.useInference.eq("USE"));
return queryFactory return queryFactory

View File

@@ -53,6 +53,10 @@ public class MapSheetInferenceJobService {
@Transactional @Transactional
public void runBatch() { public void runBatch() {
if ("local".equalsIgnoreCase(profile)) {
return;
}
try { try {
InferenceBatchSheet batchSheet = InferenceBatchSheet batchSheet =
inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId()); inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId());
@@ -102,7 +106,7 @@ public class MapSheetInferenceJobService {
// 종료시간 // 종료시간
this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M1"); this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M1");
} else if (type.equals("M2")) { } else if (type.equals("M2")) {
// M1 완료되었으면 M3 실행 // M2 완료되었으면 M3 실행
this.startInference( this.startInference(
batchSheet.getId(), batchSheet.getUuid(), "M3", batchSheet.getM3ModelUuid()); batchSheet.getId(), batchSheet.getUuid(), "M3", batchSheet.getM3ModelUuid());
// 종료시간 // 종료시간
@@ -113,10 +117,18 @@ public class MapSheetInferenceJobService {
saveInferenceAiDto.setUuid(batchSheet.getUuid()); saveInferenceAiDto.setUuid(batchSheet.getUuid());
saveInferenceAiDto.setStatus(Status.END.getId()); saveInferenceAiDto.setStatus(Status.END.getId());
saveInferenceAiDto.setInferEndDttm(ZonedDateTime.now()); saveInferenceAiDto.setInferEndDttm(ZonedDateTime.now());
saveInferenceAiDto.setType(type);
inferenceResultCoreService.update(saveInferenceAiDto); inferenceResultCoreService.update(saveInferenceAiDto);
// 종료시간 // 종료시간
this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M3"); 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 { } else {
SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto(); SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto();
saveInferenceAiDto.setUuid(batchSheet.getUuid()); saveInferenceAiDto.setUuid(batchSheet.getUuid());