Merge pull request '모델학습 2단계 패키징 시작,종료일시,상태 로직 추가' (#117) from feat/training_260202 into develop
Reviewed-on: #117
This commit was merged in pull request #117.
This commit is contained in:
@@ -43,6 +43,10 @@ public class ModelTrainMngDto {
|
||||
private Long currentAttemptId;
|
||||
private String requestPath;
|
||||
|
||||
private String packingState;
|
||||
private ZonedDateTime packingStrtDttm;
|
||||
private ZonedDateTime packingEndDttm;
|
||||
|
||||
public String getStatusName() {
|
||||
if (this.statusCd == null || this.statusCd.isBlank()) return null;
|
||||
try {
|
||||
@@ -100,6 +104,10 @@ public class ModelTrainMngDto {
|
||||
public String getStep2Duration() {
|
||||
return formatDuration(this.step2StrtDttm, this.step2EndDttm);
|
||||
}
|
||||
|
||||
public String getPackingDuration() {
|
||||
return formatDuration(this.packingStrtDttm, this.packingEndDttm);
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "searchReq", description = "모델학습 관리 목록조회 파라미터")
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.kamco.cd.training.postgres.repository.train.ModelTestMetricsJobReposi
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ModelMetricJsonDto;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ModelTestFileName;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ResponsePathDto;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -36,4 +37,12 @@ public class ModelTestMetricsJobCoreService {
|
||||
public ModelTestFileName findModelTestFileNames(Long modelId) {
|
||||
return modelTestMetricsJobRepository.findModelTestFileNames(modelId);
|
||||
}
|
||||
|
||||
public void updatePackingStart(Long modelId, ZonedDateTime now) {
|
||||
modelTestMetricsJobRepository.updatePackingStart(modelId, now);
|
||||
}
|
||||
|
||||
public void updatePackingEnd(Long modelId, ZonedDateTime now, String failSuccState) {
|
||||
modelTestMetricsJobRepository.updatePackingEnd(modelId, now, failSuccState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,6 +112,15 @@ public class ModelMasterEntity {
|
||||
@Column(name = "response_path")
|
||||
private String responsePath;
|
||||
|
||||
@Column(name = "packing_state")
|
||||
private String packingState;
|
||||
|
||||
@Column(name = "packing_strt_dttm")
|
||||
private ZonedDateTime packingStrtDttm;
|
||||
|
||||
@Column(name = "packing_end_dttm")
|
||||
private ZonedDateTime packingEndDttm;
|
||||
|
||||
public ModelTrainMngDto.Basic toDto() {
|
||||
return new ModelTrainMngDto.Basic(
|
||||
this.id,
|
||||
@@ -128,6 +137,9 @@ public class ModelMasterEntity {
|
||||
this.trainType,
|
||||
this.modelNo,
|
||||
this.currentAttemptId,
|
||||
this.requestPath);
|
||||
this.requestPath,
|
||||
this.packingState,
|
||||
this.packingStrtDttm,
|
||||
this.packingEndDttm);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import static com.kamco.cd.training.postgres.entity.QModelMetricsTestEntity.mode
|
||||
import static com.kamco.cd.training.postgres.entity.QModelMetricsTrainEntity.modelMetricsTrainEntity;
|
||||
import static com.kamco.cd.training.postgres.entity.QModelMetricsValidationEntity.modelMetricsValidationEntity;
|
||||
|
||||
import com.kamco.cd.training.common.enums.TrainStatusType;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.DetailSummary;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.HyperSummary;
|
||||
import com.kamco.cd.training.model.dto.ModelTrainDetailDto.MappingDataset;
|
||||
@@ -277,7 +278,10 @@ public class ModelDetailRepositoryImpl implements ModelDetailRepositoryCustom {
|
||||
.select(
|
||||
Projections.constructor(
|
||||
ModelFileInfo.class,
|
||||
modelMasterEntity.step2MetricSaveYn,
|
||||
modelMasterEntity
|
||||
.packingState
|
||||
.eq(TrainStatusType.COMPLETED.getId())
|
||||
.coalesce(false),
|
||||
modelMasterEntity.modelVer))
|
||||
.from(modelMasterEntity)
|
||||
.where(modelMasterEntity.uuid.eq(uuid))
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.kamco.cd.training.postgres.repository.train;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ModelMetricJsonDto;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ModelTestFileName;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ResponsePathDto;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
|
||||
public interface ModelTestMetricsJobRepositoryCustom {
|
||||
@@ -16,4 +17,8 @@ public interface ModelTestMetricsJobRepositoryCustom {
|
||||
ModelMetricJsonDto getTestMetricPackingInfo(Long modelId);
|
||||
|
||||
ModelTestFileName findModelTestFileNames(Long modelId);
|
||||
|
||||
void updatePackingStart(Long modelId, ZonedDateTime now);
|
||||
|
||||
void updatePackingEnd(Long modelId, ZonedDateTime now, String failSuccState);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.Properties;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ResponsePathDto;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -114,4 +115,24 @@ public class ModelTestMetricsJobRepositoryImpl extends QuerydslRepositorySupport
|
||||
.where(modelMetricsTestEntity.model.id.eq(modelId))
|
||||
.fetchOne();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePackingStart(Long modelId, ZonedDateTime now) {
|
||||
queryFactory
|
||||
.update(modelMasterEntity)
|
||||
.set(modelMasterEntity.packingStrtDttm, ZonedDateTime.now())
|
||||
.set(modelMasterEntity.packingState, TrainStatusType.READY.getId())
|
||||
.where(modelMasterEntity.id.eq(modelId))
|
||||
.execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePackingEnd(Long modelId, ZonedDateTime now, String failSuccState) {
|
||||
queryFactory
|
||||
.update(modelMasterEntity)
|
||||
.set(modelMasterEntity.packingEndDttm, ZonedDateTime.now())
|
||||
.set(modelMasterEntity.packingState, failSuccState)
|
||||
.where(modelMasterEntity.id.eq(modelId))
|
||||
.execute();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.kamco.cd.training.train.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.kamco.cd.training.common.enums.TrainStatusType;
|
||||
import com.kamco.cd.training.postgres.core.ModelTestMetricsJobCoreService;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ModelMetricJsonDto;
|
||||
import com.kamco.cd.training.train.dto.ModelTrainMetricsDto.ModelTestFileName;
|
||||
@@ -14,6 +15,7 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -111,11 +113,18 @@ public class ModelTestMetricsJobService {
|
||||
|
||||
modelTestMetricsJobCoreService.insertModelMetricsTest(batchArgs);
|
||||
|
||||
// test.csv 파일 읽어서 저장한 여부로만 사용하기
|
||||
modelTestMetricsJobCoreService.updateModelMetricsTrainSaveYn(
|
||||
modelInfo.getModelId(), "step2");
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// 패키징할 파일 만들기
|
||||
modelTestMetricsJobCoreService.updatePackingStart(
|
||||
modelInfo.getModelId(), ZonedDateTime.now());
|
||||
|
||||
ModelMetricJsonDto jsonDto =
|
||||
modelTestMetricsJobCoreService.getTestMetricPackingInfo(modelInfo.getModelId());
|
||||
try {
|
||||
@@ -165,8 +174,16 @@ public class ModelTestMetricsJobService {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
zipFiles(files, zipPath);
|
||||
modelTestMetricsJobCoreService.updateModelMetricsTrainSaveYn(modelInfo.getModelId(), "step2");
|
||||
try {
|
||||
zipFiles(files, zipPath);
|
||||
|
||||
modelTestMetricsJobCoreService.updatePackingEnd(
|
||||
modelInfo.getModelId(), ZonedDateTime.now(), TrainStatusType.COMPLETED.getId());
|
||||
} catch (IOException e) {
|
||||
modelTestMetricsJobCoreService.updatePackingEnd(
|
||||
modelInfo.getModelId(), ZonedDateTime.now(), TrainStatusType.ERROR.getId());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user