diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java index 6ce0a9c3..f3b57a77 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java @@ -442,11 +442,13 @@ public class InferenceDetailDto { private Long m1BatchId; private Long m2BatchId; private Long m3BatchId; + private Long m4BatchId; private String status; private String runningModelType; private UUID m1ModelUuid; private UUID m2ModelUuid; private UUID m3ModelUuid; + private UUID m4ModelUuid; private String uid; } @@ -461,6 +463,7 @@ public class InferenceDetailDto { private String modelVer1; private String modelVer2; private String modelVer3; + private String modelVer4; private Integer compareYyyy; private Integer targetYyyy; private String detectOption; @@ -483,6 +486,7 @@ public class InferenceDetailDto { String modelVer1, String modelVer2, String modelVer3, + String modelVer4, Integer compareYyyy, Integer targetYyyy, String detectOption, @@ -499,6 +503,7 @@ public class InferenceDetailDto { this.modelVer1 = modelVer1; this.modelVer2 = modelVer2; this.modelVer3 = modelVer3; + this.modelVer4 = modelVer4; this.compareYyyy = compareYyyy; this.targetYyyy = targetYyyy; this.detectOption = DetectOption.getDescByCode(detectOption); diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java index 4ba8ab29..f3b82f47 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java @@ -328,6 +328,10 @@ public class InferenceResultDto { @NotNull private UUID model3Uuid; + @Schema(description = "G4", example = "58c1153e-dec6-4424-82a1-189083a9d9dc") + @NotNull + private UUID model4Uuid; + @Schema(description = "비교년도", example = "2023") @NotNull private Integer compareYyyy; @@ -378,6 +382,10 @@ public class InferenceResultDto { @JsonFormatDttm ZonedDateTime m3ModelStartDttm; + @Schema(description = "모델4 사용시간 시작일시") + @JsonFormatDttm + ZonedDateTime m4ModelStartDttm; + @Schema(description = "모델1 사용시간 종료일시") @JsonFormatDttm ZonedDateTime m1ModelEndDttm; @@ -390,6 +398,10 @@ public class InferenceResultDto { @JsonFormatDttm ZonedDateTime m3ModelEndDttm; + @Schema(description = "모델4 사용시간 종료일시") + @JsonFormatDttm + ZonedDateTime m4ModelEndDttm; + @Schema(description = "탐지대상 도엽수") private Long detectingCnt; @@ -402,6 +414,9 @@ public class InferenceResultDto { @Schema(description = "모델3 분석 대기") private Integer m3PendingJobs; + @Schema(description = "모델4 분석 대기") + private Integer m4PendingJobs; + @Schema(description = "모델1 분석 진행중") private Integer m1RunningJobs; @@ -411,6 +426,9 @@ public class InferenceResultDto { @Schema(description = "모델3 분석 진행중") private Integer m3RunningJobs; + @Schema(description = "모델4 분석 진행중") + private Integer m4RunningJobs; + @Schema(description = "모델1 분석 완료") private Integer m1CompletedJobs; @@ -420,6 +438,9 @@ public class InferenceResultDto { @Schema(description = "모델3 분석 완료") private Integer m3CompletedJobs; + @Schema(description = "모델4 분석 완료") + private Integer m4CompletedJobs; + @Schema(description = "모델1 분석 실패") private Integer m1FailedJobs; @@ -429,6 +450,9 @@ public class InferenceResultDto { @Schema(description = "모델3 분석 실패") private Integer m3FailedJobs; + @Schema(description = "모델4 분석 실패") + private Integer m4FailedJobs; + @Schema(description = "변화탐지 제목") private String title; @@ -464,6 +488,9 @@ public class InferenceResultDto { @Schema(description = "모델3 버전") private String modelVer3; + @Schema(description = "모델4 버전") + private String modelVer4; + @Schema(description = "탑지 도엽 수") @JsonIgnore private Long totalJobs; @@ -473,21 +500,27 @@ public class InferenceResultDto { Integer m1PendingJobs, Integer m2PendingJobs, Integer m3PendingJobs, + Integer m4PendingJobs, Integer m1RunningJobs, Integer m2RunningJobs, Integer m3RunningJobs, + Integer m4RunningJobs, Integer m1CompletedJobs, Integer m2CompletedJobs, Integer m3CompletedJobs, + Integer m4CompletedJobs, Integer m1FailedJobs, Integer m2FailedJobs, Integer m3FailedJobs, + Integer m4FailedJobs, ZonedDateTime m1ModelStartDttm, ZonedDateTime m2ModelStartDttm, ZonedDateTime m3ModelStartDttm, + ZonedDateTime m4ModelStartDttm, ZonedDateTime m1ModelEndDttm, ZonedDateTime m2ModelEndDttm, ZonedDateTime m3ModelEndDttm, + ZonedDateTime m4ModelEndDttm, String title, Integer compareYyyy, Integer targetYyyy, @@ -499,26 +532,33 @@ public class InferenceResultDto { String modelVer1, String modelVer2, String modelVer3, + String modelVer4, Long totalJobs) { this.detectingCnt = detectingCnt; this.m1PendingJobs = m1PendingJobs; this.m2PendingJobs = m2PendingJobs; this.m3PendingJobs = m3PendingJobs; + this.m4PendingJobs = m4PendingJobs; this.m1RunningJobs = m1RunningJobs; this.m2RunningJobs = m2RunningJobs; this.m3RunningJobs = m3RunningJobs; + this.m4RunningJobs = m4RunningJobs; this.m1CompletedJobs = m1CompletedJobs; this.m2CompletedJobs = m2CompletedJobs; this.m3CompletedJobs = m3CompletedJobs; + this.m4CompletedJobs = m4CompletedJobs; this.m1FailedJobs = m1FailedJobs; this.m2FailedJobs = m2FailedJobs; this.m3FailedJobs = m3FailedJobs; + this.m4FailedJobs = m4FailedJobs; this.m1ModelStartDttm = m1ModelStartDttm; this.m2ModelStartDttm = m2ModelStartDttm; this.m3ModelStartDttm = m3ModelStartDttm; + this.m4ModelStartDttm = m4ModelStartDttm; this.m1ModelEndDttm = m1ModelEndDttm; this.m2ModelEndDttm = m2ModelEndDttm; this.m3ModelEndDttm = m3ModelEndDttm; + this.m4ModelEndDttm = m4ModelEndDttm; this.title = title; this.compareYyyy = compareYyyy; this.targetYyyy = targetYyyy; @@ -530,6 +570,7 @@ public class InferenceResultDto { this.modelVer1 = modelVer1; this.modelVer2 = modelVer2; this.modelVer3 = modelVer3; + this.modelVer4 = modelVer4; this.totalJobs = totalJobs; } @@ -542,9 +583,11 @@ public class InferenceResultDto { this.m1CompletedJobs + this.m2CompletedJobs + this.m3CompletedJobs + + this.m4CompletedJobs + this.m1FailedJobs + this.m2FailedJobs - + this.m3FailedJobs; // 완료수 + + this.m3FailedJobs + + this.m4FailedJobs; // 완료수 long total = tiles * models; // 전체 작업량 if (completed >= total) { @@ -583,6 +626,12 @@ public class InferenceResultDto { return formatElapsedTime(this.m3ModelStartDttm, this.m3ModelEndDttm); } + @Schema(description = "G4 사용시간") + @JsonProperty("m4ElapsedTim") + public String getM4ElapsedTime() { + return formatElapsedTime(this.m4ModelStartDttm, this.m4ModelEndDttm); + } + private String formatElapsedTime(ZonedDateTime start, ZonedDateTime end) { if (start == null || end == null) { return null; 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 2cc0394f..97f88ef0 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 @@ -616,8 +616,10 @@ public class InferenceResultService { modelType = ModelType.G1.getId(); } else if (modelInfo.getModelType().equals(ModelType.G2.getId())) { modelType = ModelType.G2.getId(); - } else { + } else if (modelInfo.getModelType().equals(ModelType.G3.getId())) { modelType = ModelType.G3.getId(); + } else { + modelType = ModelType.G4.getId(); } InferenceSendDto sendDto = new InferenceSendDto(); diff --git a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java index 808a79c8..4eea7018 100644 --- a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMngDto.java @@ -23,7 +23,8 @@ public class ModelMngDto { public enum ModelType implements EnumType { G1("G1"), G2("G2"), - G3("G3"); + G3("G3"), + G4("G4"); private final String desc; diff --git a/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java b/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java index 6818158b..bc10cbc1 100644 --- a/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java +++ b/src/main/java/com/kamco/cd/kamcoback/model/service/ModelMngService.java @@ -47,7 +47,7 @@ public class ModelMngService { * @param searchReq 페이징 * @param startDate 시작날짜 * @param endDate 종료날짜 - * @param modelType 모델 타입 G1, G2, G3 + * @param modelType 모델 타입 G1, G2, G3, G4 * @param searchVal 모델 ver * @return 모델 목록 */ 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 0efec955..c61771d1 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 @@ -117,6 +117,7 @@ public class InferenceResultCoreService { mapSheetLearnEntity.setM1ModelUuid(req.getModel1Uuid()); mapSheetLearnEntity.setM2ModelUuid(req.getModel2Uuid()); mapSheetLearnEntity.setM3ModelUuid(req.getModel3Uuid()); + mapSheetLearnEntity.setM4ModelUuid(req.getModel4Uuid()); mapSheetLearnEntity.setCompareYyyy(req.getCompareYyyy()); mapSheetLearnEntity.setTargetYyyy(req.getTargetYyyy()); mapSheetLearnEntity.setMapSheetScope(req.getMapSheetScope()); @@ -279,7 +280,10 @@ public class InferenceResultCoreService { List batchIds = Stream.of( - entity.getM1ModelBatchId(), entity.getM2ModelBatchId(), entity.getM3ModelBatchId()) + entity.getM1ModelBatchId(), + entity.getM2ModelBatchId(), + entity.getM3ModelBatchId(), + entity.getM4ModelBatchId()) .filter(Objects::nonNull) .distinct() // 중복 방지 (선택) .toList(); @@ -333,6 +337,16 @@ public class InferenceResultCoreService { entity::setM3RunningJobs, entity::setM3CompletedJobs, entity::setM3FailedJobs); + case "G4" -> + applyModelFields( + request, + entity::setM4ModelBatchId, + entity::setM4ModelStartDttm, + entity::setM4ModelEndDttm, + entity::setM4PendingJobs, + entity::setM4RunningJobs, + entity::setM4CompletedJobs, + entity::setM4FailedJobs); default -> throw new IllegalArgumentException("Unknown type: " + request.getType()); } } @@ -390,11 +404,13 @@ public class InferenceResultCoreService { inferenceBatchSheet.setM1BatchId(entity.getM1ModelBatchId()); inferenceBatchSheet.setM2BatchId(entity.getM2ModelBatchId()); inferenceBatchSheet.setM3BatchId(entity.getM3ModelBatchId()); + inferenceBatchSheet.setM4BatchId(entity.getM4ModelBatchId()); inferenceBatchSheet.setStatus(entity.getStatus()); inferenceBatchSheet.setRunningModelType(entity.getRunningModelType()); inferenceBatchSheet.setM1ModelUuid(entity.getM1ModelUuid()); inferenceBatchSheet.setM2ModelUuid(entity.getM2ModelUuid()); inferenceBatchSheet.setM3ModelUuid(entity.getM3ModelUuid()); + inferenceBatchSheet.setM4ModelUuid(entity.getM4ModelUuid()); inferenceBatchSheet.setUid(entity.getUid()); return inferenceBatchSheet; } @@ -435,6 +451,9 @@ public class InferenceResultCoreService { SaveInferenceAiDto dto = new SaveInferenceAiDto(); dto.setUuid(entity.getUuid()); + if (entity.getM4ModelBatchId() != null) { + dto.setBatchId(entity.getM4ModelBatchId()); + } if (entity.getM3ModelBatchId() != null) { dto.setBatchId(entity.getM3ModelBatchId()); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetAnalInferenceEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetAnalInferenceEntity.java index cfbbf42a..6df65a44 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetAnalInferenceEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetAnalInferenceEntity.java @@ -136,6 +136,10 @@ public class MapSheetAnalInferenceEntity { @Column(name = "model_m3_ver", length = 50) private String modelM3Ver; + @Size(max = 50) + @Column(name = "model_m4_ver", length = 50) + private String modelM4Ver; + @Size(max = 20) @Column(name = "anal_target_type", length = 20) private String analTargetType; diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearn5kEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearn5kEntity.java index 42ef3cf9..2906b574 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearn5kEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearn5kEntity.java @@ -64,6 +64,9 @@ public class MapSheetLearn5kEntity { @Column(name = "is_m3_fail") private Boolean isM3Fail = false; + @Column(name = "is_m4_fail") + private Boolean isM4Fail = false; + @Column(name = "m1_error_message", columnDefinition = "text") private String m1ErrorMessage; @@ -73,6 +76,9 @@ public class MapSheetLearn5kEntity { @Column(name = "m3_error_message", columnDefinition = "text") private String m3ErrorMessage; + @Column(name = "m4_error_message", columnDefinition = "text") + private String m4ErrorMessage; + @Column(name = "m1_job_id") private Long m1JobId; @@ -81,4 +87,7 @@ public class MapSheetLearn5kEntity { @Column(name = "m3_job_id") private Long m3JobId; + + @Column(name = "m4_job_id") + private Long m4JobId; } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearnEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearnEntity.java index ab532595..5d11786d 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearnEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetLearnEntity.java @@ -54,6 +54,9 @@ public class MapSheetLearnEntity { @Column(name = "m3_model_uuid") private UUID m3ModelUuid; + @Column(name = "m4_model_uuid") + private UUID m4ModelUuid; + @Column(name = "compare_yyyy") private Integer compareYyyy; @@ -187,6 +190,29 @@ public class MapSheetLearnEntity { @Column(name = "m3_failed_jobs", nullable = false) private int m3FailedJobs = 0; + /* ===================== M4 ===================== */ + + @Column(name = "m4_model_batch_id") + private Long m4ModelBatchId; + + @Column(name = "m4_model_start_dttm") + private ZonedDateTime m4ModelStartDttm; + + @Column(name = "m4_model_end_dttm") + private ZonedDateTime m4ModelEndDttm; + + @Column(name = "m4_pending_jobs", nullable = false) + private int m4PendingJobs = 0; + + @Column(name = "m4_running_jobs", nullable = false) + private int m4RunningJobs = 0; + + @Column(name = "m4_completed_jobs", nullable = false) + private int m4CompletedJobs = 0; + + @Column(name = "m4_failed_jobs", nullable = false) + private int m4FailedJobs = 0; + @Column(name = "apply_status") private String applyStatus = GukYuinStatus.PENDING.getId(); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java index 2869b01e..226ec131 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java @@ -38,6 +38,7 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC m1_model_batch_id, m2_model_batch_id, m3_model_batch_id, + m4_model_batch_id, learn_id, anal_state ) @@ -51,6 +52,7 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC r.m1_model_batch_id, r.m2_model_batch_id, r.m3_model_batch_id, + r.m4_model_batch_id, r.id, :pendingStateId FROM tb_map_sheet_learn r @@ -111,7 +113,8 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC ON r.batch_id IN ( msl.m1_model_batch_id, msl.m2_model_batch_id, - msl.m3_model_batch_id + msl.m3_model_batch_id, + msl.m4_model_batch_id ) WHERE msl.anal_uid = :analId group by msl.anal_uid, @@ -207,7 +210,8 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC ON r.batch_id IN ( msl.m1_model_batch_id, msl.m2_model_batch_id, - msl.m3_model_batch_id + msl.m3_model_batch_id, + msl.m4_model_batch_id ) INNER JOIN tb_map_sheet_anal_data_inference msadi ON msadi.anal_uid = msl.anal_uid diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearn5kRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearn5kRepositoryImpl.java index 225d01a8..8e5b3ea0 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearn5kRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearn5kRepositoryImpl.java @@ -50,6 +50,11 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC jobIdPath = mapSheetLearn5kEntity.m3JobId; errorMsgPath = mapSheetLearn5kEntity.m3ErrorMessage; } + case "G4" -> { + failPath = mapSheetLearn5kEntity.isM4Fail; + jobIdPath = mapSheetLearn5kEntity.m4JobId; + errorMsgPath = mapSheetLearn5kEntity.m4ErrorMessage; + } default -> { return; } @@ -97,6 +102,10 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC failPath = mapSheetLearn5kEntity.isM3Fail; jobIdPath = mapSheetLearn5kEntity.m3JobId; } + case "G4" -> { + failPath = mapSheetLearn5kEntity.isM4Fail; + jobIdPath = mapSheetLearn5kEntity.m4JobId; + } default -> { return; } @@ -147,6 +156,10 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC jobIdPath = mapSheetLearn5kEntity.m3JobId; failPath = mapSheetLearn5kEntity.isM3Fail; } + case "G4" -> { + jobIdPath = mapSheetLearn5kEntity.m4JobId; + failPath = mapSheetLearn5kEntity.isM4Fail; + } default -> { return List.of(); } @@ -189,6 +202,9 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC case "G3" -> { jobIdPath = mapSheetLearn5kEntity.m3JobId; } + case "G4" -> { + jobIdPath = mapSheetLearn5kEntity.m4JobId; + } default -> { return List.of(); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java index 127ff37e..bdac5acd 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java @@ -196,6 +196,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto QModelMngEntity m1Model = new QModelMngEntity("m1Model"); QModelMngEntity m2Model = new QModelMngEntity("m2Model"); QModelMngEntity m3Model = new QModelMngEntity("m3Model"); + QModelMngEntity m4Model = new QModelMngEntity("m4Model"); InferenceStatusDetailDto foundContent = queryFactory @@ -206,21 +207,27 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto mapSheetLearnEntity.m1PendingJobs, mapSheetLearnEntity.m2PendingJobs, mapSheetLearnEntity.m3PendingJobs, + mapSheetLearnEntity.m4PendingJobs, mapSheetLearnEntity.m1RunningJobs, mapSheetLearnEntity.m2RunningJobs, mapSheetLearnEntity.m3RunningJobs, + mapSheetLearnEntity.m4RunningJobs, mapSheetLearnEntity.m1CompletedJobs, mapSheetLearnEntity.m2CompletedJobs, mapSheetLearnEntity.m3CompletedJobs, + mapSheetLearnEntity.m4CompletedJobs, mapSheetLearnEntity.m1FailedJobs, mapSheetLearnEntity.m2FailedJobs, mapSheetLearnEntity.m3FailedJobs, + mapSheetLearnEntity.m4FailedJobs, mapSheetLearnEntity.m1ModelStartDttm, mapSheetLearnEntity.m2ModelStartDttm, mapSheetLearnEntity.m3ModelStartDttm, + mapSheetLearnEntity.m4ModelStartDttm, mapSheetLearnEntity.m1ModelEndDttm, mapSheetLearnEntity.m2ModelEndDttm, mapSheetLearnEntity.m3ModelEndDttm, + mapSheetLearnEntity.m4ModelEndDttm, mapSheetLearnEntity.title, mapSheetLearnEntity.compareYyyy, mapSheetLearnEntity.targetYyyy, @@ -232,6 +239,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto m1Model.modelVer.as("model1Ver"), m2Model.modelVer.as("model2Ver"), m3Model.modelVer.as("model3Ver"), + m4Model.modelVer.as("model4Ver"), mapSheetLearnEntity.totalJobs)) .from(mapSheetLearnEntity) .leftJoin(m1Model) @@ -240,6 +248,8 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto .on(m2Model.uuid.eq(mapSheetLearnEntity.m2ModelUuid)) .leftJoin(m3Model) .on(m3Model.uuid.eq(mapSheetLearnEntity.m3ModelUuid)) + .leftJoin(m4Model) + .on(m4Model.uuid.eq(mapSheetLearnEntity.m4ModelUuid)) .where(mapSheetLearnEntity.uuid.eq(uuid)) .fetchOne(); @@ -297,6 +307,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto QModelMngEntity m1 = new QModelMngEntity("m1"); QModelMngEntity m2 = new QModelMngEntity("m2"); QModelMngEntity m3 = new QModelMngEntity("m3"); + QModelMngEntity m4 = new QModelMngEntity("m4"); return queryFactory .select( @@ -306,6 +317,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto m1.modelVer, m2.modelVer, m3.modelVer, + m4.modelVer, mapSheetLearnEntity.compareYyyy, mapSheetLearnEntity.targetYyyy, mapSheetLearnEntity.detectOption, @@ -325,6 +337,8 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto .on(mapSheetLearnEntity.m2ModelUuid.eq(m2.uuid)) .leftJoin(m3) .on(mapSheetLearnEntity.m3ModelUuid.eq(m3.uuid)) + .leftJoin(m4) + .on(mapSheetLearnEntity.m4ModelUuid.eq(m4.uuid)) .leftJoin(mapSheetAnalInferenceEntity) .on(mapSheetAnalInferenceEntity.learnId.eq(mapSheetLearnEntity.id)) .where(mapSheetLearnEntity.uuid.eq(uuid)) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/TrainingDataReviewJobRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/TrainingDataReviewJobRepositoryImpl.java index 1b350a53..da44e477 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/TrainingDataReviewJobRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/TrainingDataReviewJobRepositoryImpl.java @@ -63,6 +63,8 @@ public class TrainingDataReviewJobRepositoryImpl extends QuerydslRepositorySuppo .then(ModelType.G1.getId()) .when(mapSheetLearnDataGeomEntity.classAfterCd.eq("waste")) .then(ModelType.G2.getId()) + .when(mapSheetLearnDataGeomEntity.classAfterCd.eq("solar")) + .then(ModelType.G4.getId()) .otherwise(ModelType.G3.getId()), mapSheetLearnDataGeomEntity.classBeforeCd, mapSheetLearnDataGeomEntity.classAfterCd))) 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 2bca4fb6..3d4f145e 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 @@ -121,7 +121,10 @@ public class MapSheetInferenceJobService { * @return */ private Long resolveBatchId(InferenceBatchSheet sheet) { - // G3 > G2 > G1 + // G4 > G3 > G2 > G1 + if (sheet.getM4BatchId() != null) { + return sheet.getM4BatchId(); + } if (sheet.getM3BatchId() != null) { return sheet.getM3BatchId(); } @@ -214,8 +217,8 @@ public class MapSheetInferenceJobService { // 현재 모델 종료 업데이트 updateProcessingEndTimeByModel(job, sheet.getUuid(), now, currentType); - // G3이면 전체 종료 - if (ModelType.G3.getId().equals(currentType)) { + // G3이면 전체 종료 -> G4 이면 전체 종료(7/14) + if (ModelType.G4.getId().equals(currentType)) { endAll(sheet, now); return; } @@ -237,7 +240,11 @@ public class MapSheetInferenceJobService { private void endAll(InferenceBatchSheet sheet, ZonedDateTime now) { List batchIds = - Stream.of(sheet.getM1BatchId(), sheet.getM2BatchId(), sheet.getM3BatchId()) + Stream.of( + sheet.getM1BatchId(), + sheet.getM2BatchId(), + sheet.getM3BatchId(), + sheet.getM4BatchId()) .filter(Objects::nonNull) .distinct() .toList(); @@ -246,7 +253,7 @@ public class MapSheetInferenceJobService { save.setUuid(sheet.getUuid()); save.setStatus(Status.END.getId()); save.setInferEndDttm(now); - save.setType(ModelType.G3.getId()); // 마지막 모델 기준 + save.setType(ModelType.G4.getId()); // 마지막 모델 기준 -> G4 (7/14) inferenceResultCoreService.update(save); // 추론 종료일때 geom 데이터 저장 @@ -274,6 +281,9 @@ public class MapSheetInferenceJobService { if (ModelType.G2.getId().equals(currentType)) { return ModelType.G3.getId(); } + if (ModelType.G3.getId().equals(currentType)) { + return ModelType.G4.getId(); + } throw new IllegalArgumentException("Unknown runningModelType: " + currentType); } @@ -294,6 +304,9 @@ public class MapSheetInferenceJobService { if (ModelType.G3.getId().equals(type)) { return sheet.getM3ModelUuid(); } + if (ModelType.G4.getId().equals(type)) { + return sheet.getM4ModelUuid(); + } throw new IllegalArgumentException("Unknown type: " + type); }