G4 모델 관련 내용 추가

This commit is contained in:
2026-07-14 23:03:44 +09:00
parent d240e4349c
commit 522d0d02fa
14 changed files with 176 additions and 12 deletions

View File

@@ -442,11 +442,13 @@ public class InferenceDetailDto {
private Long m1BatchId; private Long m1BatchId;
private Long m2BatchId; private Long m2BatchId;
private Long m3BatchId; private Long m3BatchId;
private Long m4BatchId;
private String status; private String status;
private String runningModelType; private String runningModelType;
private UUID m1ModelUuid; private UUID m1ModelUuid;
private UUID m2ModelUuid; private UUID m2ModelUuid;
private UUID m3ModelUuid; private UUID m3ModelUuid;
private UUID m4ModelUuid;
private String uid; private String uid;
} }
@@ -461,6 +463,7 @@ public class InferenceDetailDto {
private String modelVer1; private String modelVer1;
private String modelVer2; private String modelVer2;
private String modelVer3; private String modelVer3;
private String modelVer4;
private Integer compareYyyy; private Integer compareYyyy;
private Integer targetYyyy; private Integer targetYyyy;
private String detectOption; private String detectOption;
@@ -483,6 +486,7 @@ public class InferenceDetailDto {
String modelVer1, String modelVer1,
String modelVer2, String modelVer2,
String modelVer3, String modelVer3,
String modelVer4,
Integer compareYyyy, Integer compareYyyy,
Integer targetYyyy, Integer targetYyyy,
String detectOption, String detectOption,
@@ -499,6 +503,7 @@ public class InferenceDetailDto {
this.modelVer1 = modelVer1; this.modelVer1 = modelVer1;
this.modelVer2 = modelVer2; this.modelVer2 = modelVer2;
this.modelVer3 = modelVer3; this.modelVer3 = modelVer3;
this.modelVer4 = modelVer4;
this.compareYyyy = compareYyyy; this.compareYyyy = compareYyyy;
this.targetYyyy = targetYyyy; this.targetYyyy = targetYyyy;
this.detectOption = DetectOption.getDescByCode(detectOption); this.detectOption = DetectOption.getDescByCode(detectOption);

View File

@@ -328,6 +328,10 @@ public class InferenceResultDto {
@NotNull @NotNull
private UUID model3Uuid; private UUID model3Uuid;
@Schema(description = "G4", example = "58c1153e-dec6-4424-82a1-189083a9d9dc")
@NotNull
private UUID model4Uuid;
@Schema(description = "비교년도", example = "2023") @Schema(description = "비교년도", example = "2023")
@NotNull @NotNull
private Integer compareYyyy; private Integer compareYyyy;
@@ -378,6 +382,10 @@ public class InferenceResultDto {
@JsonFormatDttm @JsonFormatDttm
ZonedDateTime m3ModelStartDttm; ZonedDateTime m3ModelStartDttm;
@Schema(description = "모델4 사용시간 시작일시")
@JsonFormatDttm
ZonedDateTime m4ModelStartDttm;
@Schema(description = "모델1 사용시간 종료일시") @Schema(description = "모델1 사용시간 종료일시")
@JsonFormatDttm @JsonFormatDttm
ZonedDateTime m1ModelEndDttm; ZonedDateTime m1ModelEndDttm;
@@ -390,6 +398,10 @@ public class InferenceResultDto {
@JsonFormatDttm @JsonFormatDttm
ZonedDateTime m3ModelEndDttm; ZonedDateTime m3ModelEndDttm;
@Schema(description = "모델4 사용시간 종료일시")
@JsonFormatDttm
ZonedDateTime m4ModelEndDttm;
@Schema(description = "탐지대상 도엽수") @Schema(description = "탐지대상 도엽수")
private Long detectingCnt; private Long detectingCnt;
@@ -402,6 +414,9 @@ public class InferenceResultDto {
@Schema(description = "모델3 분석 대기") @Schema(description = "모델3 분석 대기")
private Integer m3PendingJobs; private Integer m3PendingJobs;
@Schema(description = "모델4 분석 대기")
private Integer m4PendingJobs;
@Schema(description = "모델1 분석 진행중") @Schema(description = "모델1 분석 진행중")
private Integer m1RunningJobs; private Integer m1RunningJobs;
@@ -411,6 +426,9 @@ public class InferenceResultDto {
@Schema(description = "모델3 분석 진행중") @Schema(description = "모델3 분석 진행중")
private Integer m3RunningJobs; private Integer m3RunningJobs;
@Schema(description = "모델4 분석 진행중")
private Integer m4RunningJobs;
@Schema(description = "모델1 분석 완료") @Schema(description = "모델1 분석 완료")
private Integer m1CompletedJobs; private Integer m1CompletedJobs;
@@ -420,6 +438,9 @@ public class InferenceResultDto {
@Schema(description = "모델3 분석 완료") @Schema(description = "모델3 분석 완료")
private Integer m3CompletedJobs; private Integer m3CompletedJobs;
@Schema(description = "모델4 분석 완료")
private Integer m4CompletedJobs;
@Schema(description = "모델1 분석 실패") @Schema(description = "모델1 분석 실패")
private Integer m1FailedJobs; private Integer m1FailedJobs;
@@ -429,6 +450,9 @@ public class InferenceResultDto {
@Schema(description = "모델3 분석 실패") @Schema(description = "모델3 분석 실패")
private Integer m3FailedJobs; private Integer m3FailedJobs;
@Schema(description = "모델4 분석 실패")
private Integer m4FailedJobs;
@Schema(description = "변화탐지 제목") @Schema(description = "변화탐지 제목")
private String title; private String title;
@@ -464,6 +488,9 @@ public class InferenceResultDto {
@Schema(description = "모델3 버전") @Schema(description = "모델3 버전")
private String modelVer3; private String modelVer3;
@Schema(description = "모델4 버전")
private String modelVer4;
@Schema(description = "탑지 도엽 수") @Schema(description = "탑지 도엽 수")
@JsonIgnore @JsonIgnore
private Long totalJobs; private Long totalJobs;
@@ -473,21 +500,27 @@ public class InferenceResultDto {
Integer m1PendingJobs, Integer m1PendingJobs,
Integer m2PendingJobs, Integer m2PendingJobs,
Integer m3PendingJobs, Integer m3PendingJobs,
Integer m4PendingJobs,
Integer m1RunningJobs, Integer m1RunningJobs,
Integer m2RunningJobs, Integer m2RunningJobs,
Integer m3RunningJobs, Integer m3RunningJobs,
Integer m4RunningJobs,
Integer m1CompletedJobs, Integer m1CompletedJobs,
Integer m2CompletedJobs, Integer m2CompletedJobs,
Integer m3CompletedJobs, Integer m3CompletedJobs,
Integer m4CompletedJobs,
Integer m1FailedJobs, Integer m1FailedJobs,
Integer m2FailedJobs, Integer m2FailedJobs,
Integer m3FailedJobs, Integer m3FailedJobs,
Integer m4FailedJobs,
ZonedDateTime m1ModelStartDttm, ZonedDateTime m1ModelStartDttm,
ZonedDateTime m2ModelStartDttm, ZonedDateTime m2ModelStartDttm,
ZonedDateTime m3ModelStartDttm, ZonedDateTime m3ModelStartDttm,
ZonedDateTime m4ModelStartDttm,
ZonedDateTime m1ModelEndDttm, ZonedDateTime m1ModelEndDttm,
ZonedDateTime m2ModelEndDttm, ZonedDateTime m2ModelEndDttm,
ZonedDateTime m3ModelEndDttm, ZonedDateTime m3ModelEndDttm,
ZonedDateTime m4ModelEndDttm,
String title, String title,
Integer compareYyyy, Integer compareYyyy,
Integer targetYyyy, Integer targetYyyy,
@@ -499,26 +532,33 @@ public class InferenceResultDto {
String modelVer1, String modelVer1,
String modelVer2, String modelVer2,
String modelVer3, String modelVer3,
String modelVer4,
Long totalJobs) { Long totalJobs) {
this.detectingCnt = detectingCnt; this.detectingCnt = detectingCnt;
this.m1PendingJobs = m1PendingJobs; this.m1PendingJobs = m1PendingJobs;
this.m2PendingJobs = m2PendingJobs; this.m2PendingJobs = m2PendingJobs;
this.m3PendingJobs = m3PendingJobs; this.m3PendingJobs = m3PendingJobs;
this.m4PendingJobs = m4PendingJobs;
this.m1RunningJobs = m1RunningJobs; this.m1RunningJobs = m1RunningJobs;
this.m2RunningJobs = m2RunningJobs; this.m2RunningJobs = m2RunningJobs;
this.m3RunningJobs = m3RunningJobs; this.m3RunningJobs = m3RunningJobs;
this.m4RunningJobs = m4RunningJobs;
this.m1CompletedJobs = m1CompletedJobs; this.m1CompletedJobs = m1CompletedJobs;
this.m2CompletedJobs = m2CompletedJobs; this.m2CompletedJobs = m2CompletedJobs;
this.m3CompletedJobs = m3CompletedJobs; this.m3CompletedJobs = m3CompletedJobs;
this.m4CompletedJobs = m4CompletedJobs;
this.m1FailedJobs = m1FailedJobs; this.m1FailedJobs = m1FailedJobs;
this.m2FailedJobs = m2FailedJobs; this.m2FailedJobs = m2FailedJobs;
this.m3FailedJobs = m3FailedJobs; this.m3FailedJobs = m3FailedJobs;
this.m4FailedJobs = m4FailedJobs;
this.m1ModelStartDttm = m1ModelStartDttm; this.m1ModelStartDttm = m1ModelStartDttm;
this.m2ModelStartDttm = m2ModelStartDttm; this.m2ModelStartDttm = m2ModelStartDttm;
this.m3ModelStartDttm = m3ModelStartDttm; this.m3ModelStartDttm = m3ModelStartDttm;
this.m4ModelStartDttm = m4ModelStartDttm;
this.m1ModelEndDttm = m1ModelEndDttm; this.m1ModelEndDttm = m1ModelEndDttm;
this.m2ModelEndDttm = m2ModelEndDttm; this.m2ModelEndDttm = m2ModelEndDttm;
this.m3ModelEndDttm = m3ModelEndDttm; this.m3ModelEndDttm = m3ModelEndDttm;
this.m4ModelEndDttm = m4ModelEndDttm;
this.title = title; this.title = title;
this.compareYyyy = compareYyyy; this.compareYyyy = compareYyyy;
this.targetYyyy = targetYyyy; this.targetYyyy = targetYyyy;
@@ -530,6 +570,7 @@ public class InferenceResultDto {
this.modelVer1 = modelVer1; this.modelVer1 = modelVer1;
this.modelVer2 = modelVer2; this.modelVer2 = modelVer2;
this.modelVer3 = modelVer3; this.modelVer3 = modelVer3;
this.modelVer4 = modelVer4;
this.totalJobs = totalJobs; this.totalJobs = totalJobs;
} }
@@ -542,9 +583,11 @@ public class InferenceResultDto {
this.m1CompletedJobs this.m1CompletedJobs
+ this.m2CompletedJobs + this.m2CompletedJobs
+ this.m3CompletedJobs + this.m3CompletedJobs
+ this.m4CompletedJobs
+ this.m1FailedJobs + this.m1FailedJobs
+ this.m2FailedJobs + this.m2FailedJobs
+ this.m3FailedJobs; // 완료수 + this.m3FailedJobs
+ this.m4FailedJobs; // 완료수
long total = tiles * models; // 전체 작업량 long total = tiles * models; // 전체 작업량
if (completed >= total) { if (completed >= total) {
@@ -583,6 +626,12 @@ public class InferenceResultDto {
return formatElapsedTime(this.m3ModelStartDttm, this.m3ModelEndDttm); 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) { private String formatElapsedTime(ZonedDateTime start, ZonedDateTime end) {
if (start == null || end == null) { if (start == null || end == null) {
return null; return null;

View File

@@ -616,8 +616,10 @@ public class InferenceResultService {
modelType = ModelType.G1.getId(); modelType = ModelType.G1.getId();
} else if (modelInfo.getModelType().equals(ModelType.G2.getId())) { } else if (modelInfo.getModelType().equals(ModelType.G2.getId())) {
modelType = ModelType.G2.getId(); modelType = ModelType.G2.getId();
} else { } else if (modelInfo.getModelType().equals(ModelType.G3.getId())) {
modelType = ModelType.G3.getId(); modelType = ModelType.G3.getId();
} else {
modelType = ModelType.G4.getId();
} }
InferenceSendDto sendDto = new InferenceSendDto(); InferenceSendDto sendDto = new InferenceSendDto();

View File

@@ -23,7 +23,8 @@ public class ModelMngDto {
public enum ModelType implements EnumType { public enum ModelType implements EnumType {
G1("G1"), G1("G1"),
G2("G2"), G2("G2"),
G3("G3"); G3("G3"),
G4("G4");
private final String desc; private final String desc;

View File

@@ -47,7 +47,7 @@ public class ModelMngService {
* @param searchReq 페이징 * @param searchReq 페이징
* @param startDate 시작날짜 * @param startDate 시작날짜
* @param endDate 종료날짜 * @param endDate 종료날짜
* @param modelType 모델 타입 G1, G2, G3 * @param modelType 모델 타입 G1, G2, G3, G4
* @param searchVal 모델 ver * @param searchVal 모델 ver
* @return 모델 목록 * @return 모델 목록
*/ */

View File

@@ -117,6 +117,7 @@ public class InferenceResultCoreService {
mapSheetLearnEntity.setM1ModelUuid(req.getModel1Uuid()); mapSheetLearnEntity.setM1ModelUuid(req.getModel1Uuid());
mapSheetLearnEntity.setM2ModelUuid(req.getModel2Uuid()); mapSheetLearnEntity.setM2ModelUuid(req.getModel2Uuid());
mapSheetLearnEntity.setM3ModelUuid(req.getModel3Uuid()); mapSheetLearnEntity.setM3ModelUuid(req.getModel3Uuid());
mapSheetLearnEntity.setM4ModelUuid(req.getModel4Uuid());
mapSheetLearnEntity.setCompareYyyy(req.getCompareYyyy()); mapSheetLearnEntity.setCompareYyyy(req.getCompareYyyy());
mapSheetLearnEntity.setTargetYyyy(req.getTargetYyyy()); mapSheetLearnEntity.setTargetYyyy(req.getTargetYyyy());
mapSheetLearnEntity.setMapSheetScope(req.getMapSheetScope()); mapSheetLearnEntity.setMapSheetScope(req.getMapSheetScope());
@@ -279,7 +280,10 @@ public class InferenceResultCoreService {
List<Long> batchIds = List<Long> batchIds =
Stream.of( Stream.of(
entity.getM1ModelBatchId(), entity.getM2ModelBatchId(), entity.getM3ModelBatchId()) entity.getM1ModelBatchId(),
entity.getM2ModelBatchId(),
entity.getM3ModelBatchId(),
entity.getM4ModelBatchId())
.filter(Objects::nonNull) .filter(Objects::nonNull)
.distinct() // 중복 방지 (선택) .distinct() // 중복 방지 (선택)
.toList(); .toList();
@@ -333,6 +337,16 @@ public class InferenceResultCoreService {
entity::setM3RunningJobs, entity::setM3RunningJobs,
entity::setM3CompletedJobs, entity::setM3CompletedJobs,
entity::setM3FailedJobs); 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()); default -> throw new IllegalArgumentException("Unknown type: " + request.getType());
} }
} }
@@ -390,11 +404,13 @@ public class InferenceResultCoreService {
inferenceBatchSheet.setM1BatchId(entity.getM1ModelBatchId()); inferenceBatchSheet.setM1BatchId(entity.getM1ModelBatchId());
inferenceBatchSheet.setM2BatchId(entity.getM2ModelBatchId()); inferenceBatchSheet.setM2BatchId(entity.getM2ModelBatchId());
inferenceBatchSheet.setM3BatchId(entity.getM3ModelBatchId()); inferenceBatchSheet.setM3BatchId(entity.getM3ModelBatchId());
inferenceBatchSheet.setM4BatchId(entity.getM4ModelBatchId());
inferenceBatchSheet.setStatus(entity.getStatus()); inferenceBatchSheet.setStatus(entity.getStatus());
inferenceBatchSheet.setRunningModelType(entity.getRunningModelType()); inferenceBatchSheet.setRunningModelType(entity.getRunningModelType());
inferenceBatchSheet.setM1ModelUuid(entity.getM1ModelUuid()); inferenceBatchSheet.setM1ModelUuid(entity.getM1ModelUuid());
inferenceBatchSheet.setM2ModelUuid(entity.getM2ModelUuid()); inferenceBatchSheet.setM2ModelUuid(entity.getM2ModelUuid());
inferenceBatchSheet.setM3ModelUuid(entity.getM3ModelUuid()); inferenceBatchSheet.setM3ModelUuid(entity.getM3ModelUuid());
inferenceBatchSheet.setM4ModelUuid(entity.getM4ModelUuid());
inferenceBatchSheet.setUid(entity.getUid()); inferenceBatchSheet.setUid(entity.getUid());
return inferenceBatchSheet; return inferenceBatchSheet;
} }
@@ -435,6 +451,9 @@ public class InferenceResultCoreService {
SaveInferenceAiDto dto = new SaveInferenceAiDto(); SaveInferenceAiDto dto = new SaveInferenceAiDto();
dto.setUuid(entity.getUuid()); dto.setUuid(entity.getUuid());
if (entity.getM4ModelBatchId() != null) {
dto.setBatchId(entity.getM4ModelBatchId());
}
if (entity.getM3ModelBatchId() != null) { if (entity.getM3ModelBatchId() != null) {
dto.setBatchId(entity.getM3ModelBatchId()); dto.setBatchId(entity.getM3ModelBatchId());
} }

View File

@@ -136,6 +136,10 @@ public class MapSheetAnalInferenceEntity {
@Column(name = "model_m3_ver", length = 50) @Column(name = "model_m3_ver", length = 50)
private String modelM3Ver; private String modelM3Ver;
@Size(max = 50)
@Column(name = "model_m4_ver", length = 50)
private String modelM4Ver;
@Size(max = 20) @Size(max = 20)
@Column(name = "anal_target_type", length = 20) @Column(name = "anal_target_type", length = 20)
private String analTargetType; private String analTargetType;

View File

@@ -64,6 +64,9 @@ public class MapSheetLearn5kEntity {
@Column(name = "is_m3_fail") @Column(name = "is_m3_fail")
private Boolean isM3Fail = false; private Boolean isM3Fail = false;
@Column(name = "is_m4_fail")
private Boolean isM4Fail = false;
@Column(name = "m1_error_message", columnDefinition = "text") @Column(name = "m1_error_message", columnDefinition = "text")
private String m1ErrorMessage; private String m1ErrorMessage;
@@ -73,6 +76,9 @@ public class MapSheetLearn5kEntity {
@Column(name = "m3_error_message", columnDefinition = "text") @Column(name = "m3_error_message", columnDefinition = "text")
private String m3ErrorMessage; private String m3ErrorMessage;
@Column(name = "m4_error_message", columnDefinition = "text")
private String m4ErrorMessage;
@Column(name = "m1_job_id") @Column(name = "m1_job_id")
private Long m1JobId; private Long m1JobId;
@@ -81,4 +87,7 @@ public class MapSheetLearn5kEntity {
@Column(name = "m3_job_id") @Column(name = "m3_job_id")
private Long m3JobId; private Long m3JobId;
@Column(name = "m4_job_id")
private Long m4JobId;
} }

View File

@@ -54,6 +54,9 @@ public class MapSheetLearnEntity {
@Column(name = "m3_model_uuid") @Column(name = "m3_model_uuid")
private UUID m3ModelUuid; private UUID m3ModelUuid;
@Column(name = "m4_model_uuid")
private UUID m4ModelUuid;
@Column(name = "compare_yyyy") @Column(name = "compare_yyyy")
private Integer compareYyyy; private Integer compareYyyy;
@@ -187,6 +190,29 @@ public class MapSheetLearnEntity {
@Column(name = "m3_failed_jobs", nullable = false) @Column(name = "m3_failed_jobs", nullable = false)
private int m3FailedJobs = 0; 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") @Column(name = "apply_status")
private String applyStatus = GukYuinStatus.PENDING.getId(); private String applyStatus = GukYuinStatus.PENDING.getId();

View File

@@ -38,6 +38,7 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC
m1_model_batch_id, m1_model_batch_id,
m2_model_batch_id, m2_model_batch_id,
m3_model_batch_id, m3_model_batch_id,
m4_model_batch_id,
learn_id, learn_id,
anal_state anal_state
) )
@@ -51,6 +52,7 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC
r.m1_model_batch_id, r.m1_model_batch_id,
r.m2_model_batch_id, r.m2_model_batch_id,
r.m3_model_batch_id, r.m3_model_batch_id,
r.m4_model_batch_id,
r.id, r.id,
:pendingStateId :pendingStateId
FROM tb_map_sheet_learn r FROM tb_map_sheet_learn r
@@ -111,7 +113,8 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC
ON r.batch_id IN ( ON r.batch_id IN (
msl.m1_model_batch_id, msl.m1_model_batch_id,
msl.m2_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 WHERE msl.anal_uid = :analId
group by msl.anal_uid, group by msl.anal_uid,
@@ -207,7 +210,8 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC
ON r.batch_id IN ( ON r.batch_id IN (
msl.m1_model_batch_id, msl.m1_model_batch_id,
msl.m2_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 INNER JOIN tb_map_sheet_anal_data_inference msadi
ON msadi.anal_uid = msl.anal_uid ON msadi.anal_uid = msl.anal_uid

View File

@@ -50,6 +50,11 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
jobIdPath = mapSheetLearn5kEntity.m3JobId; jobIdPath = mapSheetLearn5kEntity.m3JobId;
errorMsgPath = mapSheetLearn5kEntity.m3ErrorMessage; errorMsgPath = mapSheetLearn5kEntity.m3ErrorMessage;
} }
case "G4" -> {
failPath = mapSheetLearn5kEntity.isM4Fail;
jobIdPath = mapSheetLearn5kEntity.m4JobId;
errorMsgPath = mapSheetLearn5kEntity.m4ErrorMessage;
}
default -> { default -> {
return; return;
} }
@@ -97,6 +102,10 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
failPath = mapSheetLearn5kEntity.isM3Fail; failPath = mapSheetLearn5kEntity.isM3Fail;
jobIdPath = mapSheetLearn5kEntity.m3JobId; jobIdPath = mapSheetLearn5kEntity.m3JobId;
} }
case "G4" -> {
failPath = mapSheetLearn5kEntity.isM4Fail;
jobIdPath = mapSheetLearn5kEntity.m4JobId;
}
default -> { default -> {
return; return;
} }
@@ -147,6 +156,10 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
jobIdPath = mapSheetLearn5kEntity.m3JobId; jobIdPath = mapSheetLearn5kEntity.m3JobId;
failPath = mapSheetLearn5kEntity.isM3Fail; failPath = mapSheetLearn5kEntity.isM3Fail;
} }
case "G4" -> {
jobIdPath = mapSheetLearn5kEntity.m4JobId;
failPath = mapSheetLearn5kEntity.isM4Fail;
}
default -> { default -> {
return List.of(); return List.of();
} }
@@ -189,6 +202,9 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
case "G3" -> { case "G3" -> {
jobIdPath = mapSheetLearn5kEntity.m3JobId; jobIdPath = mapSheetLearn5kEntity.m3JobId;
} }
case "G4" -> {
jobIdPath = mapSheetLearn5kEntity.m4JobId;
}
default -> { default -> {
return List.of(); return List.of();
} }

View File

@@ -196,6 +196,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
QModelMngEntity m1Model = new QModelMngEntity("m1Model"); QModelMngEntity m1Model = new QModelMngEntity("m1Model");
QModelMngEntity m2Model = new QModelMngEntity("m2Model"); QModelMngEntity m2Model = new QModelMngEntity("m2Model");
QModelMngEntity m3Model = new QModelMngEntity("m3Model"); QModelMngEntity m3Model = new QModelMngEntity("m3Model");
QModelMngEntity m4Model = new QModelMngEntity("m4Model");
InferenceStatusDetailDto foundContent = InferenceStatusDetailDto foundContent =
queryFactory queryFactory
@@ -206,21 +207,27 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
mapSheetLearnEntity.m1PendingJobs, mapSheetLearnEntity.m1PendingJobs,
mapSheetLearnEntity.m2PendingJobs, mapSheetLearnEntity.m2PendingJobs,
mapSheetLearnEntity.m3PendingJobs, mapSheetLearnEntity.m3PendingJobs,
mapSheetLearnEntity.m4PendingJobs,
mapSheetLearnEntity.m1RunningJobs, mapSheetLearnEntity.m1RunningJobs,
mapSheetLearnEntity.m2RunningJobs, mapSheetLearnEntity.m2RunningJobs,
mapSheetLearnEntity.m3RunningJobs, mapSheetLearnEntity.m3RunningJobs,
mapSheetLearnEntity.m4RunningJobs,
mapSheetLearnEntity.m1CompletedJobs, mapSheetLearnEntity.m1CompletedJobs,
mapSheetLearnEntity.m2CompletedJobs, mapSheetLearnEntity.m2CompletedJobs,
mapSheetLearnEntity.m3CompletedJobs, mapSheetLearnEntity.m3CompletedJobs,
mapSheetLearnEntity.m4CompletedJobs,
mapSheetLearnEntity.m1FailedJobs, mapSheetLearnEntity.m1FailedJobs,
mapSheetLearnEntity.m2FailedJobs, mapSheetLearnEntity.m2FailedJobs,
mapSheetLearnEntity.m3FailedJobs, mapSheetLearnEntity.m3FailedJobs,
mapSheetLearnEntity.m4FailedJobs,
mapSheetLearnEntity.m1ModelStartDttm, mapSheetLearnEntity.m1ModelStartDttm,
mapSheetLearnEntity.m2ModelStartDttm, mapSheetLearnEntity.m2ModelStartDttm,
mapSheetLearnEntity.m3ModelStartDttm, mapSheetLearnEntity.m3ModelStartDttm,
mapSheetLearnEntity.m4ModelStartDttm,
mapSheetLearnEntity.m1ModelEndDttm, mapSheetLearnEntity.m1ModelEndDttm,
mapSheetLearnEntity.m2ModelEndDttm, mapSheetLearnEntity.m2ModelEndDttm,
mapSheetLearnEntity.m3ModelEndDttm, mapSheetLearnEntity.m3ModelEndDttm,
mapSheetLearnEntity.m4ModelEndDttm,
mapSheetLearnEntity.title, mapSheetLearnEntity.title,
mapSheetLearnEntity.compareYyyy, mapSheetLearnEntity.compareYyyy,
mapSheetLearnEntity.targetYyyy, mapSheetLearnEntity.targetYyyy,
@@ -232,6 +239,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
m1Model.modelVer.as("model1Ver"), m1Model.modelVer.as("model1Ver"),
m2Model.modelVer.as("model2Ver"), m2Model.modelVer.as("model2Ver"),
m3Model.modelVer.as("model3Ver"), m3Model.modelVer.as("model3Ver"),
m4Model.modelVer.as("model4Ver"),
mapSheetLearnEntity.totalJobs)) mapSheetLearnEntity.totalJobs))
.from(mapSheetLearnEntity) .from(mapSheetLearnEntity)
.leftJoin(m1Model) .leftJoin(m1Model)
@@ -240,6 +248,8 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
.on(m2Model.uuid.eq(mapSheetLearnEntity.m2ModelUuid)) .on(m2Model.uuid.eq(mapSheetLearnEntity.m2ModelUuid))
.leftJoin(m3Model) .leftJoin(m3Model)
.on(m3Model.uuid.eq(mapSheetLearnEntity.m3ModelUuid)) .on(m3Model.uuid.eq(mapSheetLearnEntity.m3ModelUuid))
.leftJoin(m4Model)
.on(m4Model.uuid.eq(mapSheetLearnEntity.m4ModelUuid))
.where(mapSheetLearnEntity.uuid.eq(uuid)) .where(mapSheetLearnEntity.uuid.eq(uuid))
.fetchOne(); .fetchOne();
@@ -297,6 +307,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
QModelMngEntity m1 = new QModelMngEntity("m1"); QModelMngEntity m1 = new QModelMngEntity("m1");
QModelMngEntity m2 = new QModelMngEntity("m2"); QModelMngEntity m2 = new QModelMngEntity("m2");
QModelMngEntity m3 = new QModelMngEntity("m3"); QModelMngEntity m3 = new QModelMngEntity("m3");
QModelMngEntity m4 = new QModelMngEntity("m4");
return queryFactory return queryFactory
.select( .select(
@@ -306,6 +317,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
m1.modelVer, m1.modelVer,
m2.modelVer, m2.modelVer,
m3.modelVer, m3.modelVer,
m4.modelVer,
mapSheetLearnEntity.compareYyyy, mapSheetLearnEntity.compareYyyy,
mapSheetLearnEntity.targetYyyy, mapSheetLearnEntity.targetYyyy,
mapSheetLearnEntity.detectOption, mapSheetLearnEntity.detectOption,
@@ -325,6 +337,8 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
.on(mapSheetLearnEntity.m2ModelUuid.eq(m2.uuid)) .on(mapSheetLearnEntity.m2ModelUuid.eq(m2.uuid))
.leftJoin(m3) .leftJoin(m3)
.on(mapSheetLearnEntity.m3ModelUuid.eq(m3.uuid)) .on(mapSheetLearnEntity.m3ModelUuid.eq(m3.uuid))
.leftJoin(m4)
.on(mapSheetLearnEntity.m4ModelUuid.eq(m4.uuid))
.leftJoin(mapSheetAnalInferenceEntity) .leftJoin(mapSheetAnalInferenceEntity)
.on(mapSheetAnalInferenceEntity.learnId.eq(mapSheetLearnEntity.id)) .on(mapSheetAnalInferenceEntity.learnId.eq(mapSheetLearnEntity.id))
.where(mapSheetLearnEntity.uuid.eq(uuid)) .where(mapSheetLearnEntity.uuid.eq(uuid))

View File

@@ -63,6 +63,8 @@ public class TrainingDataReviewJobRepositoryImpl extends QuerydslRepositorySuppo
.then(ModelType.G1.getId()) .then(ModelType.G1.getId())
.when(mapSheetLearnDataGeomEntity.classAfterCd.eq("waste")) .when(mapSheetLearnDataGeomEntity.classAfterCd.eq("waste"))
.then(ModelType.G2.getId()) .then(ModelType.G2.getId())
.when(mapSheetLearnDataGeomEntity.classAfterCd.eq("solar"))
.then(ModelType.G4.getId())
.otherwise(ModelType.G3.getId()), .otherwise(ModelType.G3.getId()),
mapSheetLearnDataGeomEntity.classBeforeCd, mapSheetLearnDataGeomEntity.classBeforeCd,
mapSheetLearnDataGeomEntity.classAfterCd))) mapSheetLearnDataGeomEntity.classAfterCd)))

View File

@@ -121,7 +121,10 @@ public class MapSheetInferenceJobService {
* @return * @return
*/ */
private Long resolveBatchId(InferenceBatchSheet sheet) { private Long resolveBatchId(InferenceBatchSheet sheet) {
// G3 > G2 > G1 // G4 > G3 > G2 > G1
if (sheet.getM4BatchId() != null) {
return sheet.getM4BatchId();
}
if (sheet.getM3BatchId() != null) { if (sheet.getM3BatchId() != null) {
return sheet.getM3BatchId(); return sheet.getM3BatchId();
} }
@@ -214,8 +217,8 @@ public class MapSheetInferenceJobService {
// 현재 모델 종료 업데이트 // 현재 모델 종료 업데이트
updateProcessingEndTimeByModel(job, sheet.getUuid(), now, currentType); updateProcessingEndTimeByModel(job, sheet.getUuid(), now, currentType);
// G3이면 전체 종료 // G3이면 전체 종료 -> G4 이면 전체 종료(7/14)
if (ModelType.G3.getId().equals(currentType)) { if (ModelType.G4.getId().equals(currentType)) {
endAll(sheet, now); endAll(sheet, now);
return; return;
} }
@@ -237,7 +240,11 @@ public class MapSheetInferenceJobService {
private void endAll(InferenceBatchSheet sheet, ZonedDateTime now) { private void endAll(InferenceBatchSheet sheet, ZonedDateTime now) {
List<Long> batchIds = List<Long> batchIds =
Stream.of(sheet.getM1BatchId(), sheet.getM2BatchId(), sheet.getM3BatchId()) Stream.of(
sheet.getM1BatchId(),
sheet.getM2BatchId(),
sheet.getM3BatchId(),
sheet.getM4BatchId())
.filter(Objects::nonNull) .filter(Objects::nonNull)
.distinct() .distinct()
.toList(); .toList();
@@ -246,7 +253,7 @@ public class MapSheetInferenceJobService {
save.setUuid(sheet.getUuid()); save.setUuid(sheet.getUuid());
save.setStatus(Status.END.getId()); save.setStatus(Status.END.getId());
save.setInferEndDttm(now); save.setInferEndDttm(now);
save.setType(ModelType.G3.getId()); // 마지막 모델 기준 save.setType(ModelType.G4.getId()); // 마지막 모델 기준 -> G4 (7/14)
inferenceResultCoreService.update(save); inferenceResultCoreService.update(save);
// 추론 종료일때 geom 데이터 저장 // 추론 종료일때 geom 데이터 저장
@@ -274,6 +281,9 @@ public class MapSheetInferenceJobService {
if (ModelType.G2.getId().equals(currentType)) { if (ModelType.G2.getId().equals(currentType)) {
return ModelType.G3.getId(); return ModelType.G3.getId();
} }
if (ModelType.G3.getId().equals(currentType)) {
return ModelType.G4.getId();
}
throw new IllegalArgumentException("Unknown runningModelType: " + currentType); throw new IllegalArgumentException("Unknown runningModelType: " + currentType);
} }
@@ -294,6 +304,9 @@ public class MapSheetInferenceJobService {
if (ModelType.G3.getId().equals(type)) { if (ModelType.G3.getId().equals(type)) {
return sheet.getM3ModelUuid(); return sheet.getM3ModelUuid();
} }
if (ModelType.G4.getId().equals(type)) {
return sheet.getM4ModelUuid();
}
throw new IllegalArgumentException("Unknown type: " + type); throw new IllegalArgumentException("Unknown type: " + type);
} }