diff --git a/src/main/java/com/kamco/cd/training/dataset/DatasetApiController.java b/src/main/java/com/kamco/cd/training/dataset/DatasetApiController.java index 18f01c2..42bb2ef 100644 --- a/src/main/java/com/kamco/cd/training/dataset/DatasetApiController.java +++ b/src/main/java/com/kamco/cd/training/dataset/DatasetApiController.java @@ -2,7 +2,6 @@ package com.kamco.cd.training.dataset; import com.kamco.cd.training.config.api.ApiResponseDto; import com.kamco.cd.training.dataset.dto.DatasetDto; -import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet; import com.kamco.cd.training.dataset.dto.DatasetObjDto; import com.kamco.cd.training.dataset.service.DatasetService; import io.swagger.v3.oas.annotations.Operation; @@ -13,7 +12,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; -import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; @@ -194,34 +192,4 @@ public class DatasetApiController { public ApiResponseDto deleteDatasetObjByUuid(@PathVariable UUID uuid) { return ApiResponseDto.ok(datasetService.deleteDatasetObjByUuid(uuid)); } - - @Operation(summary = "학습데이터관리 상세 조회", description = "학습데이터관리 상세 정보를 조회합니다.") - @ApiResponses( - value = { - @ApiResponse( - responseCode = "200", - description = "조회 성공", - content = - @Content( - mediaType = "application/json", - schema = @Schema(implementation = DatasetDto.Basic.class))), - @ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content), - @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) - }) - @GetMapping("/select-dataset-list") - public ApiResponseDto> getDatasetSelectList( - @Parameter( - description = "모델 구분", - example = "", - schema = @Schema(allowableValues = {"G1", "G2", "G3"})) - @RequestParam - String modelType, - @Parameter( - description = "선택 구분", - example = "", - schema = @Schema(allowableValues = {"CURRENT", "DELIVER", "PRODUCTION"})) - @RequestParam - String selectType) { - return ApiResponseDto.ok(datasetService.getDatasetSelectList(modelType, selectType)); - } } diff --git a/src/main/java/com/kamco/cd/training/dataset/MapSheetApiController.java b/src/main/java/com/kamco/cd/training/dataset/MapSheetApiController.java deleted file mode 100644 index ef5112a..0000000 --- a/src/main/java/com/kamco/cd/training/dataset/MapSheetApiController.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.kamco.cd.training.dataset; - -import com.kamco.cd.training.config.api.ApiResponseDto; -import com.kamco.cd.training.dataset.dto.MapSheetDto; -import com.kamco.cd.training.dataset.service.MapSheetService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.validation.Valid; -import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.web.bind.annotation.*; - -@Tag(name = "도엽 관리", description = "도엽(MapSheet) 관리 API") -@RestController -@RequiredArgsConstructor -public class MapSheetApiController { - - private final MapSheetService mapSheetService; - - @Operation(summary = "도엽 목록 조회", description = "데이터셋의 도엽 목록을 조회합니다.") - @ApiResponses( - value = { - @ApiResponse( - responseCode = "200", - description = "조회 성공", - content = - @Content( - mediaType = "application/json", - schema = @Schema(implementation = Page.class))), - @ApiResponse(responseCode = "400", description = "잘못된 검색 조건", content = @Content), - @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) - }) - @PostMapping("/api/datasets/items/search") - public ApiResponseDto> searchMapSheets( - @RequestBody @Valid MapSheetDto.SearchReq searchReq) { - return ApiResponseDto.ok(mapSheetService.searchMapSheets(searchReq)); - } - - @Operation(summary = "도엽 삭제", description = "도엽을 삭제합니다 (다건 지원).") - @ApiResponses( - value = { - @ApiResponse(responseCode = "200", description = "삭제 성공", content = @Content), - @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), - @ApiResponse(responseCode = "404", description = "도엽을 찾을 수 없음", content = @Content), - @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) - }) - @PostMapping("/api/datasets/items/delete") - public ApiResponseDto deleteMapSheets(@RequestBody @Valid MapSheetDto.DeleteReq deleteReq) { - mapSheetService.deleteMapSheets(deleteReq); - return ApiResponseDto.ok(null); - } -} diff --git a/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java b/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java index ed5ab75..217fcf5 100644 --- a/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java +++ b/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java @@ -1,11 +1,9 @@ package com.kamco.cd.training.dataset.service; import com.kamco.cd.training.dataset.dto.DatasetDto; -import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet; import com.kamco.cd.training.dataset.dto.DatasetObjDto; import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq; import com.kamco.cd.training.postgres.core.DatasetCoreService; -import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -95,12 +93,4 @@ public class DatasetService { public UUID deleteDatasetObjByUuid(UUID uuid) { return datasetCoreService.deleteDatasetObjByUuid(uuid); } - - public List getDatasetSelectList(String modelType, String selectType) { - if (modelType.equals("G1")) { - return datasetCoreService.getDatasetSelectM1List(modelType, selectType); - } else { - return datasetCoreService.getDatasetSelectM2M3List(modelType, selectType); - } - } } diff --git a/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java b/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java index 7f190e2..f95036f 100644 --- a/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java +++ b/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java @@ -1,6 +1,8 @@ package com.kamco.cd.training.model; import com.kamco.cd.training.config.api.ApiResponseDto; +import com.kamco.cd.training.dataset.dto.DatasetDto; +import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet; import com.kamco.cd.training.model.dto.ModelConfigDto; import com.kamco.cd.training.model.dto.ModelTrainMngDto; import com.kamco.cd.training.model.dto.ModelTrainMngDto.Basic; @@ -13,6 +15,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; +import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; @@ -110,4 +113,34 @@ public class ModelTrainMngApiController { public ApiResponseDto updateModelTrain(@PathVariable UUID uuid) { return ApiResponseDto.ok(modelTrainMngService.getModelConfigByModelId(uuid)); } + + @Operation(summary = "학습데이터관리 상세 조회", description = "학습데이터관리 상세 정보를 조회합니다.") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = DatasetDto.Basic.class))), + @ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/select-dataset-list") + public ApiResponseDto> getDatasetSelectList( + @Parameter( + description = "모델 구분", + example = "", + schema = @Schema(allowableValues = {"G1", "G2", "G3"})) + @RequestParam + String modelType, + @Parameter( + description = "선택 구분", + example = "", + schema = @Schema(allowableValues = {"CURRENT", "DELIVER", "PRODUCTION"})) + @RequestParam + String selectType) { + return ApiResponseDto.ok(modelTrainMngService.getDatasetSelectList(modelType, selectType)); + } } diff --git a/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java b/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java index 65d4b7e..cd86316 100644 --- a/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java +++ b/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java @@ -2,12 +2,14 @@ package com.kamco.cd.training.model.service; import com.kamco.cd.training.common.dto.HyperParam; import com.kamco.cd.training.common.enums.HyperParamSelectType; +import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet; import com.kamco.cd.training.hyperparam.dto.HyperParamDto; import com.kamco.cd.training.model.dto.ModelConfigDto; import com.kamco.cd.training.model.dto.ModelTrainMngDto; import com.kamco.cd.training.model.dto.ModelTrainMngDto.SearchReq; import com.kamco.cd.training.postgres.core.HyperParamCoreService; import com.kamco.cd.training.postgres.core.ModelTrainMngCoreService; +import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -85,4 +87,19 @@ public class ModelTrainMngService { public ModelConfigDto.Basic getModelConfigByModelId(UUID uuid) { return modelTrainMngCoreService.findModelConfigByModelId(uuid); } + + /** + * 모델별 데이터셋 목록 조회 + * + * @param modelType + * @param selectType + * @return + */ + public List getDatasetSelectList(String modelType, String selectType) { + if (modelType.equals("G1")) { + return modelTrainMngCoreService.getDatasetSelectM1List(modelType, selectType); + } else { + return modelTrainMngCoreService.getDatasetSelectM2M3List(modelType, selectType); + } + } } diff --git a/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java b/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java index d254aef..c3a2c88 100644 --- a/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java +++ b/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java @@ -6,7 +6,6 @@ import com.kamco.cd.training.common.enums.LearnDataType; import com.kamco.cd.training.common.exception.NotFoundException; import com.kamco.cd.training.common.service.BaseCoreService; import com.kamco.cd.training.dataset.dto.DatasetDto; -import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet; import com.kamco.cd.training.dataset.dto.DatasetObjDto.Basic; import com.kamco.cd.training.dataset.dto.DatasetObjDto.SearchReq; import com.kamco.cd.training.postgres.entity.DatasetEntity; @@ -14,7 +13,6 @@ import com.kamco.cd.training.postgres.entity.DatasetObjEntity; import com.kamco.cd.training.postgres.repository.dataset.DatasetObjRepository; import com.kamco.cd.training.postgres.repository.dataset.DatasetRepository; import java.time.ZonedDateTime; -import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -197,12 +195,4 @@ public class DatasetCoreService datasetObjRepository.save(entity); return entity.getUuid(); } - - public List getDatasetSelectM1List(String modelType, String selectType) { - return datasetRepository.getDatasetSelectM1List(modelType, selectType); - } - - public List getDatasetSelectM2M3List(String modelType, String selectType) { - return datasetRepository.getDatasetSelectM2M3List(modelType, selectType); - } } diff --git a/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java b/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java index 0465217..c9e2cd1 100644 --- a/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java +++ b/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java @@ -6,6 +6,7 @@ import com.kamco.cd.training.common.enums.TrainStatusType; import com.kamco.cd.training.common.exception.BadRequestException; import com.kamco.cd.training.common.exception.CustomApiException; import com.kamco.cd.training.common.utils.UserUtil; +import com.kamco.cd.training.dataset.dto.DatasetDto.SelectDataSet; import com.kamco.cd.training.model.dto.ModelConfigDto; import com.kamco.cd.training.model.dto.ModelTrainMngDto; import com.kamco.cd.training.model.dto.ModelTrainMngDto.Basic; @@ -15,6 +16,7 @@ import com.kamco.cd.training.postgres.entity.ModelDatasetEntity; import com.kamco.cd.training.postgres.entity.ModelDatasetMappEntity; import com.kamco.cd.training.postgres.entity.ModelHyperParamEntity; import com.kamco.cd.training.postgres.entity.ModelMasterEntity; +import com.kamco.cd.training.postgres.repository.dataset.DatasetRepository; import com.kamco.cd.training.postgres.repository.hyperparam.HyperParamRepository; import com.kamco.cd.training.postgres.repository.model.ModelConfigRepository; import com.kamco.cd.training.postgres.repository.model.ModelDatasetMappRepository; @@ -36,6 +38,7 @@ public class ModelTrainMngCoreService { private final ModelDatasetMappRepository modelDatasetMapRepository; private final ModelConfigRepository modelConfigRepository; private final HyperParamRepository hyperParamRepository; + private final DatasetRepository datasetRepository; private final UserUtil userUtil; /** @@ -220,4 +223,26 @@ public class ModelTrainMngCoreService { .findModelConfigByModelId(modelEntity.getId()) .orElseThrow(() -> new CustomApiException("NOT_FOUND_DATA", HttpStatus.NOT_FOUND)); } + + /** + * 데이터셋 M1 목록 + * + * @param modelType + * @param selectType + * @return + */ + public List getDatasetSelectM1List(String modelType, String selectType) { + return datasetRepository.getDatasetSelectM1List(modelType, selectType); + } + + /** + * 데이터셋 M2, M3 목록 + * + * @param modelType + * @param selectType + * @return + */ + public List getDatasetSelectM2M3List(String modelType, String selectType) { + return datasetRepository.getDatasetSelectM2M3List(modelType, selectType); + } }