init spotless 적용
This commit is contained in:
@@ -1,154 +1,154 @@
|
||||
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.service.DatasetService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
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 java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Tag(name = "데이터셋 관리", description = "어드민 홈 > 학습데이터관리 > 전체데이터 API")
|
||||
@RestController
|
||||
@RequestMapping("/api/datasets")
|
||||
@RequiredArgsConstructor
|
||||
public class DatasetApiController {
|
||||
|
||||
private final DatasetService datasetService;
|
||||
|
||||
@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)
|
||||
})
|
||||
@GetMapping
|
||||
public ApiResponseDto<Page<DatasetDto.Basic>> searchDatasets(
|
||||
@Parameter(description = "구분", example = "DELIVER(납품), PRODUCTION(제작)")
|
||||
@RequestParam(required = false)
|
||||
String groupTitle,
|
||||
@Parameter(description = "제목", example = "") @RequestParam(required = false) String title,
|
||||
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0") @RequestParam(defaultValue = "0")
|
||||
int page,
|
||||
@Parameter(description = "페이지 크기", example = "20") @RequestParam(defaultValue = "20")
|
||||
int size) {
|
||||
DatasetDto.SearchReq searchReq = new DatasetDto.SearchReq();
|
||||
searchReq.setTitle(title);
|
||||
searchReq.setGroupTitle(groupTitle);
|
||||
searchReq.setPage(page);
|
||||
searchReq.setSize(size);
|
||||
return ApiResponseDto.ok(datasetService.searchDatasets(searchReq));
|
||||
}
|
||||
|
||||
@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("/{uuid}")
|
||||
public ApiResponseDto<DatasetDto.Basic> getDatasetDetail(@PathVariable UUID uuid) {
|
||||
return ApiResponseDto.ok(datasetService.getDatasetDetail(uuid));
|
||||
}
|
||||
|
||||
@Operation(summary = "데이터셋 등록", description = "신규 데이터셋(회차)을 생성합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "201",
|
||||
description = "등록 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = Long.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청 데이터", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@PostMapping("/register")
|
||||
public ApiResponseDto<Long> registerDataset(
|
||||
@RequestBody @Valid DatasetDto.RegisterReq registerReq) {
|
||||
Long id = datasetService.registerDataset(registerReq);
|
||||
return ApiResponseDto.createOK(id);
|
||||
}
|
||||
|
||||
@Operation(summary = "데이터셋 수정", description = "데이터셋 정보를 수정합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "수정 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = Long.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청 데이터", content = @Content),
|
||||
@ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@PutMapping("/{uuid}")
|
||||
public ApiResponseDto<UUID> updateDataset(
|
||||
@PathVariable UUID uuid, @RequestBody DatasetDto.UpdateReq updateReq) {
|
||||
datasetService.updateDataset(uuid, updateReq);
|
||||
return ApiResponseDto.ok(uuid);
|
||||
}
|
||||
|
||||
@Operation(summary = "데이터셋 삭제", description = "데이터셋을 삭제합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(responseCode = "201", description = "삭제 성공", content = @Content),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content),
|
||||
@ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@DeleteMapping("/{uuid}")
|
||||
public ApiResponseDto<UUID> deleteDatasets(@PathVariable UUID uuid) {
|
||||
|
||||
datasetService.deleteDatasets(uuid);
|
||||
return ApiResponseDto.ok(uuid);
|
||||
}
|
||||
|
||||
/*
|
||||
@Operation(summary = "데이터셋 통계 요약", description = "선택 데이터셋의 통계를 요약합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = DatasetDto.Summary.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@PostMapping("/summary")
|
||||
public ApiResponseDto<DatasetDto.Summary> getDatasetSummary(
|
||||
@RequestBody @Valid DatasetDto.SummaryReq summaryReq) {
|
||||
return ApiResponseDto.ok(datasetService.getDatasetSummary(summaryReq));
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
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.service.DatasetService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
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 java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Tag(name = "데이터셋 관리", description = "어드민 홈 > 학습데이터관리 > 전체데이터 API")
|
||||
@RestController
|
||||
@RequestMapping("/api/datasets")
|
||||
@RequiredArgsConstructor
|
||||
public class DatasetApiController {
|
||||
|
||||
private final DatasetService datasetService;
|
||||
|
||||
@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)
|
||||
})
|
||||
@GetMapping
|
||||
public ApiResponseDto<Page<DatasetDto.Basic>> searchDatasets(
|
||||
@Parameter(description = "구분", example = "DELIVER(납품), PRODUCTION(제작)")
|
||||
@RequestParam(required = false)
|
||||
String groupTitle,
|
||||
@Parameter(description = "제목", example = "") @RequestParam(required = false) String title,
|
||||
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0") @RequestParam(defaultValue = "0")
|
||||
int page,
|
||||
@Parameter(description = "페이지 크기", example = "20") @RequestParam(defaultValue = "20")
|
||||
int size) {
|
||||
DatasetDto.SearchReq searchReq = new DatasetDto.SearchReq();
|
||||
searchReq.setTitle(title);
|
||||
searchReq.setGroupTitle(groupTitle);
|
||||
searchReq.setPage(page);
|
||||
searchReq.setSize(size);
|
||||
return ApiResponseDto.ok(datasetService.searchDatasets(searchReq));
|
||||
}
|
||||
|
||||
@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("/{uuid}")
|
||||
public ApiResponseDto<DatasetDto.Basic> getDatasetDetail(@PathVariable UUID uuid) {
|
||||
return ApiResponseDto.ok(datasetService.getDatasetDetail(uuid));
|
||||
}
|
||||
|
||||
@Operation(summary = "데이터셋 등록", description = "신규 데이터셋(회차)을 생성합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "201",
|
||||
description = "등록 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = Long.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청 데이터", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@PostMapping("/register")
|
||||
public ApiResponseDto<Long> registerDataset(
|
||||
@RequestBody @Valid DatasetDto.RegisterReq registerReq) {
|
||||
Long id = datasetService.registerDataset(registerReq);
|
||||
return ApiResponseDto.createOK(id);
|
||||
}
|
||||
|
||||
@Operation(summary = "데이터셋 수정", description = "데이터셋 정보를 수정합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "수정 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = Long.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청 데이터", content = @Content),
|
||||
@ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@PutMapping("/{uuid}")
|
||||
public ApiResponseDto<UUID> updateDataset(
|
||||
@PathVariable UUID uuid, @RequestBody DatasetDto.UpdateReq updateReq) {
|
||||
datasetService.updateDataset(uuid, updateReq);
|
||||
return ApiResponseDto.ok(uuid);
|
||||
}
|
||||
|
||||
@Operation(summary = "데이터셋 삭제", description = "데이터셋을 삭제합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(responseCode = "201", description = "삭제 성공", content = @Content),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content),
|
||||
@ApiResponse(responseCode = "404", description = "데이터셋을 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@DeleteMapping("/{uuid}")
|
||||
public ApiResponseDto<UUID> deleteDatasets(@PathVariable UUID uuid) {
|
||||
|
||||
datasetService.deleteDatasets(uuid);
|
||||
return ApiResponseDto.ok(uuid);
|
||||
}
|
||||
|
||||
/*
|
||||
@Operation(summary = "데이터셋 통계 요약", description = "선택 데이터셋의 통계를 요약합니다.")
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "조회 성공",
|
||||
content =
|
||||
@Content(
|
||||
mediaType = "application/json",
|
||||
schema = @Schema(implementation = DatasetDto.Summary.class))),
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@PostMapping("/summary")
|
||||
public ApiResponseDto<DatasetDto.Summary> getDatasetSummary(
|
||||
@RequestBody @Valid DatasetDto.SummaryReq summaryReq) {
|
||||
return ApiResponseDto.ok(datasetService.getDatasetSummary(summaryReq));
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
@@ -1,56 +1,56 @@
|
||||
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<Page<MapSheetDto.Basic>> 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<Void> deleteMapSheets(@RequestBody @Valid MapSheetDto.DeleteReq deleteReq) {
|
||||
mapSheetService.deleteMapSheets(deleteReq);
|
||||
return ApiResponseDto.ok(null);
|
||||
}
|
||||
}
|
||||
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<Page<MapSheetDto.Basic>> 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<Void> deleteMapSheets(@RequestBody @Valid MapSheetDto.DeleteReq deleteReq) {
|
||||
mapSheetService.deleteMapSheets(deleteReq);
|
||||
return ApiResponseDto.ok(null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,212 +1,212 @@
|
||||
package com.kamco.cd.training.dataset.dto;
|
||||
|
||||
import com.kamco.cd.training.common.enums.LearnDataRegister;
|
||||
import com.kamco.cd.training.common.enums.LearnDataType;
|
||||
import com.kamco.cd.training.common.utils.enums.Enums;
|
||||
import com.kamco.cd.training.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
public class DatasetDto {
|
||||
|
||||
@Schema(name = "Dataset Basic", description = "데이터셋 기본 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Basic {
|
||||
|
||||
private Long id;
|
||||
private UUID uuid;
|
||||
private String groupTitle;
|
||||
private String groupTitleCd;
|
||||
private String title;
|
||||
private Long roundNo;
|
||||
private String totalSize;
|
||||
private String memo;
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
private String status;
|
||||
private String statusCd;
|
||||
private Boolean deleted;
|
||||
|
||||
public Basic(
|
||||
Long id,
|
||||
UUID uuid,
|
||||
String groupTitle,
|
||||
String title,
|
||||
Long roundNo,
|
||||
Long totalSize,
|
||||
String memo,
|
||||
ZonedDateTime createdDttm,
|
||||
String status,
|
||||
Boolean deleted) {
|
||||
this.id = id;
|
||||
this.uuid = uuid;
|
||||
this.groupTitle = getGroupTitle(groupTitle);
|
||||
this.groupTitleCd = groupTitle;
|
||||
this.title = title;
|
||||
this.roundNo = roundNo;
|
||||
this.totalSize = getTotalSize(totalSize);
|
||||
this.memo = memo;
|
||||
this.createdDttm = createdDttm;
|
||||
this.status = getStatus(status);
|
||||
this.statusCd = status;
|
||||
this.deleted = deleted;
|
||||
}
|
||||
|
||||
public String getTotalSize(Long totalSize) {
|
||||
if (totalSize == null) return "0G";
|
||||
double giga = totalSize / (1024.0 * 1024 * 1024);
|
||||
return String.format("%.2fG", giga);
|
||||
}
|
||||
|
||||
public String getGroupTitle(String groupTitleCd) {
|
||||
LearnDataType type = Enums.fromId(LearnDataType.class, groupTitleCd);
|
||||
return type == null ? null : type.getText();
|
||||
}
|
||||
|
||||
public String getStatus(String status) {
|
||||
LearnDataRegister type = Enums.fromId(LearnDataRegister.class, status);
|
||||
return type == null ? null : type.getText();
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "Dataset Detail", description = "데이터셋 상세 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Detail {
|
||||
|
||||
private Long id;
|
||||
private String groupTitle;
|
||||
private String title;
|
||||
private Long roundNo;
|
||||
private String totalSize;
|
||||
private String memo;
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
private String status;
|
||||
private Boolean deleted;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetSearchReq", description = "데이터셋 목록 조회 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SearchReq {
|
||||
|
||||
@Schema(description = "구분", example = "DELIVER(납품), PRODUCTION(제작)")
|
||||
private String groupTitle;
|
||||
|
||||
@Schema(description = "제목 (부분 검색)", example = "1차")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "페이지 번호 (1부터 시작)", example = "1")
|
||||
private int page = 1;
|
||||
|
||||
@Schema(description = "페이지 크기", example = "20")
|
||||
private int size = 20;
|
||||
|
||||
public Pageable toPageable() {
|
||||
// API에서는 1부터 시작하지만 내부적으로는 0부터 시작
|
||||
int pageIndex = Math.max(0, page - 1);
|
||||
return PageRequest.of(pageIndex, size, Sort.by(Sort.Direction.DESC, "createdDttm"));
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetDetailReq", description = "데이터셋 상세 조회 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class DetailReq {
|
||||
|
||||
@NotNull(message = "데이터셋 ID는 필수입니다")
|
||||
@Schema(description = "데이터셋 ID", example = "101")
|
||||
private Long datasetId;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetRegisterReq", description = "데이터셋 등록 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class RegisterReq {
|
||||
|
||||
@NotBlank(message = "제목은 필수입니다")
|
||||
@Size(max = 200, message = "제목은 최대 200자까지 입력 가능합니다")
|
||||
@Schema(description = "제목", example = "1차 제작")
|
||||
private String title;
|
||||
|
||||
@NotBlank(message = "연도는 필수입니다")
|
||||
@Size(max = 4, message = "연도는 4자리입니다")
|
||||
@Schema(description = "연도 (YYYY)", example = "2024")
|
||||
private String year;
|
||||
|
||||
@Schema(description = "회차", example = "1")
|
||||
private Long roundNo;
|
||||
|
||||
@Schema(description = "메모", example = "데이터셋 설명")
|
||||
private String memo;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetUpdateReq", description = "데이터셋 수정 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class UpdateReq {
|
||||
|
||||
@Size(max = 200, message = "제목은 최대 200자까지 입력 가능합니다")
|
||||
@Schema(description = "제목", example = "1차 제작")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "메모", example = "데이터셋 설명")
|
||||
private String memo;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetSummaryReq", description = "데이터셋 통계 요약 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SummaryReq {
|
||||
|
||||
@NotNull(message = "데이터셋 ID 목록은 필수입니다")
|
||||
@Schema(description = "데이터셋 ID 목록", example = "[101, 105]")
|
||||
private List<Long> datasetIds;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetSummary", description = "데이터셋 통계 요약")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Summary {
|
||||
|
||||
@Schema(description = "총 데이터셋 수", example = "2")
|
||||
private int totalDatasets;
|
||||
|
||||
@Schema(description = "총 도엽 수", example = "1500")
|
||||
private long totalMapSheets;
|
||||
|
||||
@Schema(description = "총 파일 크기 (bytes)", example = "10737418240")
|
||||
private long totalFileSize;
|
||||
|
||||
@Schema(description = "평균 도엽 수", example = "750")
|
||||
private double averageMapSheets;
|
||||
}
|
||||
}
|
||||
package com.kamco.cd.training.dataset.dto;
|
||||
|
||||
import com.kamco.cd.training.common.enums.LearnDataRegister;
|
||||
import com.kamco.cd.training.common.enums.LearnDataType;
|
||||
import com.kamco.cd.training.common.utils.enums.Enums;
|
||||
import com.kamco.cd.training.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
public class DatasetDto {
|
||||
|
||||
@Schema(name = "Dataset Basic", description = "데이터셋 기본 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Basic {
|
||||
|
||||
private Long id;
|
||||
private UUID uuid;
|
||||
private String groupTitle;
|
||||
private String groupTitleCd;
|
||||
private String title;
|
||||
private Long roundNo;
|
||||
private String totalSize;
|
||||
private String memo;
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
private String status;
|
||||
private String statusCd;
|
||||
private Boolean deleted;
|
||||
|
||||
public Basic(
|
||||
Long id,
|
||||
UUID uuid,
|
||||
String groupTitle,
|
||||
String title,
|
||||
Long roundNo,
|
||||
Long totalSize,
|
||||
String memo,
|
||||
ZonedDateTime createdDttm,
|
||||
String status,
|
||||
Boolean deleted) {
|
||||
this.id = id;
|
||||
this.uuid = uuid;
|
||||
this.groupTitle = getGroupTitle(groupTitle);
|
||||
this.groupTitleCd = groupTitle;
|
||||
this.title = title;
|
||||
this.roundNo = roundNo;
|
||||
this.totalSize = getTotalSize(totalSize);
|
||||
this.memo = memo;
|
||||
this.createdDttm = createdDttm;
|
||||
this.status = getStatus(status);
|
||||
this.statusCd = status;
|
||||
this.deleted = deleted;
|
||||
}
|
||||
|
||||
public String getTotalSize(Long totalSize) {
|
||||
if (totalSize == null) return "0G";
|
||||
double giga = totalSize / (1024.0 * 1024 * 1024);
|
||||
return String.format("%.2fG", giga);
|
||||
}
|
||||
|
||||
public String getGroupTitle(String groupTitleCd) {
|
||||
LearnDataType type = Enums.fromId(LearnDataType.class, groupTitleCd);
|
||||
return type == null ? null : type.getText();
|
||||
}
|
||||
|
||||
public String getStatus(String status) {
|
||||
LearnDataRegister type = Enums.fromId(LearnDataRegister.class, status);
|
||||
return type == null ? null : type.getText();
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "Dataset Detail", description = "데이터셋 상세 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Detail {
|
||||
|
||||
private Long id;
|
||||
private String groupTitle;
|
||||
private String title;
|
||||
private Long roundNo;
|
||||
private String totalSize;
|
||||
private String memo;
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
private String status;
|
||||
private Boolean deleted;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetSearchReq", description = "데이터셋 목록 조회 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SearchReq {
|
||||
|
||||
@Schema(description = "구분", example = "DELIVER(납품), PRODUCTION(제작)")
|
||||
private String groupTitle;
|
||||
|
||||
@Schema(description = "제목 (부분 검색)", example = "1차")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "페이지 번호 (1부터 시작)", example = "1")
|
||||
private int page = 1;
|
||||
|
||||
@Schema(description = "페이지 크기", example = "20")
|
||||
private int size = 20;
|
||||
|
||||
public Pageable toPageable() {
|
||||
// API에서는 1부터 시작하지만 내부적으로는 0부터 시작
|
||||
int pageIndex = Math.max(0, page - 1);
|
||||
return PageRequest.of(pageIndex, size, Sort.by(Sort.Direction.DESC, "createdDttm"));
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetDetailReq", description = "데이터셋 상세 조회 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class DetailReq {
|
||||
|
||||
@NotNull(message = "데이터셋 ID는 필수입니다")
|
||||
@Schema(description = "데이터셋 ID", example = "101")
|
||||
private Long datasetId;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetRegisterReq", description = "데이터셋 등록 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class RegisterReq {
|
||||
|
||||
@NotBlank(message = "제목은 필수입니다")
|
||||
@Size(max = 200, message = "제목은 최대 200자까지 입력 가능합니다")
|
||||
@Schema(description = "제목", example = "1차 제작")
|
||||
private String title;
|
||||
|
||||
@NotBlank(message = "연도는 필수입니다")
|
||||
@Size(max = 4, message = "연도는 4자리입니다")
|
||||
@Schema(description = "연도 (YYYY)", example = "2024")
|
||||
private String year;
|
||||
|
||||
@Schema(description = "회차", example = "1")
|
||||
private Long roundNo;
|
||||
|
||||
@Schema(description = "메모", example = "데이터셋 설명")
|
||||
private String memo;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetUpdateReq", description = "데이터셋 수정 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class UpdateReq {
|
||||
|
||||
@Size(max = 200, message = "제목은 최대 200자까지 입력 가능합니다")
|
||||
@Schema(description = "제목", example = "1차 제작")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "메모", example = "데이터셋 설명")
|
||||
private String memo;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetSummaryReq", description = "데이터셋 통계 요약 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SummaryReq {
|
||||
|
||||
@NotNull(message = "데이터셋 ID 목록은 필수입니다")
|
||||
@Schema(description = "데이터셋 ID 목록", example = "[101, 105]")
|
||||
private List<Long> datasetIds;
|
||||
}
|
||||
|
||||
@Schema(name = "DatasetSummary", description = "데이터셋 통계 요약")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Summary {
|
||||
|
||||
@Schema(description = "총 데이터셋 수", example = "2")
|
||||
private int totalDatasets;
|
||||
|
||||
@Schema(description = "총 도엽 수", example = "1500")
|
||||
private long totalMapSheets;
|
||||
|
||||
@Schema(description = "총 파일 크기 (bytes)", example = "10737418240")
|
||||
private long totalFileSize;
|
||||
|
||||
@Schema(description = "평균 도엽 수", example = "750")
|
||||
private double averageMapSheets;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,103 +1,103 @@
|
||||
package com.kamco.cd.training.dataset.dto;
|
||||
|
||||
import com.kamco.cd.training.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
public class MapSheetDto {
|
||||
|
||||
@Schema(name = "MapSheet Basic", description = "도엽 기본 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Basic {
|
||||
|
||||
private Long id;
|
||||
private Long datasetId;
|
||||
private String sheetNum;
|
||||
private String fileName;
|
||||
private Long fileSize;
|
||||
private String filePath;
|
||||
private String status;
|
||||
private String memo;
|
||||
private Boolean deleted;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime updatedDttm;
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetSearchReq", description = "도엽 목록 조회 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SearchReq {
|
||||
|
||||
@NotNull(message = "데이터셋 ID는 필수입니다")
|
||||
@Schema(description = "데이터셋 ID", example = "101")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "페이지 번호 (1부터 시작)", example = "1")
|
||||
private int page = 1;
|
||||
|
||||
@Schema(description = "페이지 크기", example = "20")
|
||||
private int size = 20;
|
||||
|
||||
public Pageable toPageable() {
|
||||
int pageIndex = Math.max(0, page - 1);
|
||||
return PageRequest.of(pageIndex, size, Sort.by(Sort.Direction.DESC, "createdDttm"));
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetDeleteReq", description = "도엽 삭제 요청 (다건)")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class DeleteReq {
|
||||
|
||||
@NotNull(message = "삭제할 도엽 ID 목록은 필수입니다")
|
||||
@Schema(description = "삭제할 도엽 ID 목록", example = "[9991, 9992]")
|
||||
private List<Long> itemIds;
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetCheckReq", description = "도엽 번호 유효성 검증 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class CheckReq {
|
||||
|
||||
@NotNull(message = "도엽 번호는 필수입니다")
|
||||
@Schema(description = "도엽 번호", example = "377055")
|
||||
private String sheetNum;
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetCheckRes", description = "도엽 번호 유효성 검증 응답")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class CheckRes {
|
||||
|
||||
@Schema(description = "유효 여부", example = "true")
|
||||
private boolean valid;
|
||||
|
||||
@Schema(description = "메시지", example = "유효한 도엽 번호입니다")
|
||||
private String message;
|
||||
|
||||
@Schema(description = "중복 여부", example = "false")
|
||||
private boolean duplicate;
|
||||
}
|
||||
}
|
||||
package com.kamco.cd.training.dataset.dto;
|
||||
|
||||
import com.kamco.cd.training.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
public class MapSheetDto {
|
||||
|
||||
@Schema(name = "MapSheet Basic", description = "도엽 기본 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class Basic {
|
||||
|
||||
private Long id;
|
||||
private Long datasetId;
|
||||
private String sheetNum;
|
||||
private String fileName;
|
||||
private Long fileSize;
|
||||
private String filePath;
|
||||
private String status;
|
||||
private String memo;
|
||||
private Boolean deleted;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime updatedDttm;
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetSearchReq", description = "도엽 목록 조회 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SearchReq {
|
||||
|
||||
@NotNull(message = "데이터셋 ID는 필수입니다")
|
||||
@Schema(description = "데이터셋 ID", example = "101")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "페이지 번호 (1부터 시작)", example = "1")
|
||||
private int page = 1;
|
||||
|
||||
@Schema(description = "페이지 크기", example = "20")
|
||||
private int size = 20;
|
||||
|
||||
public Pageable toPageable() {
|
||||
int pageIndex = Math.max(0, page - 1);
|
||||
return PageRequest.of(pageIndex, size, Sort.by(Sort.Direction.DESC, "createdDttm"));
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetDeleteReq", description = "도엽 삭제 요청 (다건)")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class DeleteReq {
|
||||
|
||||
@NotNull(message = "삭제할 도엽 ID 목록은 필수입니다")
|
||||
@Schema(description = "삭제할 도엽 ID 목록", example = "[9991, 9992]")
|
||||
private List<Long> itemIds;
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetCheckReq", description = "도엽 번호 유효성 검증 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class CheckReq {
|
||||
|
||||
@NotNull(message = "도엽 번호는 필수입니다")
|
||||
@Schema(description = "도엽 번호", example = "377055")
|
||||
private String sheetNum;
|
||||
}
|
||||
|
||||
@Schema(name = "MapSheetCheckRes", description = "도엽 번호 유효성 검증 응답")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class CheckRes {
|
||||
|
||||
@Schema(description = "유효 여부", example = "true")
|
||||
private boolean valid;
|
||||
|
||||
@Schema(description = "메시지", example = "유효한 도엽 번호입니다")
|
||||
private String message;
|
||||
|
||||
@Schema(description = "중복 여부", example = "false")
|
||||
private boolean duplicate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,86 +1,86 @@
|
||||
package com.kamco.cd.training.dataset.service;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
||||
import com.kamco.cd.training.postgres.core.DatasetCoreService;
|
||||
import java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional(readOnly = true)
|
||||
public class DatasetService {
|
||||
|
||||
private final DatasetCoreService datasetCoreService;
|
||||
|
||||
/**
|
||||
* 데이터셋 목록 조회
|
||||
*
|
||||
* @param searchReq 검색 조건
|
||||
* @return 데이터셋 목록
|
||||
*/
|
||||
public Page<DatasetDto.Basic> searchDatasets(DatasetDto.SearchReq searchReq) {
|
||||
log.info("데이터셋 목록 조회 - 조건: {}", searchReq);
|
||||
return datasetCoreService.findDatasetList(searchReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 상세 조회
|
||||
*
|
||||
* @param id 상세 조회할 목록 Id
|
||||
* @return 데이터셋 상세 정보
|
||||
*/
|
||||
public DatasetDto.Basic getDatasetDetail(UUID id) {
|
||||
return datasetCoreService.getOneByUuid(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 등록
|
||||
*
|
||||
* @param registerReq 등록 요청
|
||||
* @return 등록된 데이터셋 ID
|
||||
*/
|
||||
@Transactional
|
||||
public Long registerDataset(DatasetDto.RegisterReq registerReq) {
|
||||
log.info("데이터셋 등록 - 요청: {}", registerReq);
|
||||
DatasetDto.Basic saved = datasetCoreService.save(registerReq);
|
||||
log.info("데이터셋 등록 완료 - ID: {}", saved.getId());
|
||||
return saved.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 수정
|
||||
*
|
||||
* @param updateReq 수정 요청
|
||||
* @return 수정된 데이터셋 ID
|
||||
*/
|
||||
@Transactional
|
||||
public void updateDataset(UUID uuid, DatasetDto.UpdateReq updateReq) {
|
||||
datasetCoreService.update(uuid, updateReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 삭제 (다건)
|
||||
*
|
||||
* @param uuid 삭제 요청
|
||||
*/
|
||||
@Transactional
|
||||
public void deleteDatasets(UUID uuid) {
|
||||
datasetCoreService.deleteDatasets(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 통계 요약
|
||||
*
|
||||
* @param summaryReq 요약 요청
|
||||
* @return 통계 요약
|
||||
*/
|
||||
public DatasetDto.Summary getDatasetSummary(DatasetDto.SummaryReq summaryReq) {
|
||||
log.info("데이터셋 통계 요약 - 요청: {}", summaryReq);
|
||||
return datasetCoreService.getDatasetSummary(summaryReq);
|
||||
}
|
||||
}
|
||||
package com.kamco.cd.training.dataset.service;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.DatasetDto;
|
||||
import com.kamco.cd.training.postgres.core.DatasetCoreService;
|
||||
import java.util.UUID;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional(readOnly = true)
|
||||
public class DatasetService {
|
||||
|
||||
private final DatasetCoreService datasetCoreService;
|
||||
|
||||
/**
|
||||
* 데이터셋 목록 조회
|
||||
*
|
||||
* @param searchReq 검색 조건
|
||||
* @return 데이터셋 목록
|
||||
*/
|
||||
public Page<DatasetDto.Basic> searchDatasets(DatasetDto.SearchReq searchReq) {
|
||||
log.info("데이터셋 목록 조회 - 조건: {}", searchReq);
|
||||
return datasetCoreService.findDatasetList(searchReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 상세 조회
|
||||
*
|
||||
* @param id 상세 조회할 목록 Id
|
||||
* @return 데이터셋 상세 정보
|
||||
*/
|
||||
public DatasetDto.Basic getDatasetDetail(UUID id) {
|
||||
return datasetCoreService.getOneByUuid(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 등록
|
||||
*
|
||||
* @param registerReq 등록 요청
|
||||
* @return 등록된 데이터셋 ID
|
||||
*/
|
||||
@Transactional
|
||||
public Long registerDataset(DatasetDto.RegisterReq registerReq) {
|
||||
log.info("데이터셋 등록 - 요청: {}", registerReq);
|
||||
DatasetDto.Basic saved = datasetCoreService.save(registerReq);
|
||||
log.info("데이터셋 등록 완료 - ID: {}", saved.getId());
|
||||
return saved.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 수정
|
||||
*
|
||||
* @param updateReq 수정 요청
|
||||
* @return 수정된 데이터셋 ID
|
||||
*/
|
||||
@Transactional
|
||||
public void updateDataset(UUID uuid, DatasetDto.UpdateReq updateReq) {
|
||||
datasetCoreService.update(uuid, updateReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 삭제 (다건)
|
||||
*
|
||||
* @param uuid 삭제 요청
|
||||
*/
|
||||
@Transactional
|
||||
public void deleteDatasets(UUID uuid) {
|
||||
datasetCoreService.deleteDatasets(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 데이터셋 통계 요약
|
||||
*
|
||||
* @param summaryReq 요약 요청
|
||||
* @return 통계 요약
|
||||
*/
|
||||
public DatasetDto.Summary getDatasetSummary(DatasetDto.SummaryReq summaryReq) {
|
||||
log.info("데이터셋 통계 요약 - 요청: {}", summaryReq);
|
||||
return datasetCoreService.getDatasetSummary(summaryReq);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
package com.kamco.cd.training.dataset.service;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.MapSheetDto;
|
||||
import com.kamco.cd.training.postgres.core.MapSheetCoreService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional(readOnly = true)
|
||||
public class MapSheetService {
|
||||
|
||||
private final MapSheetCoreService mapSheetCoreService;
|
||||
|
||||
/**
|
||||
* 도엽 목록 조회
|
||||
*
|
||||
* @param searchReq 검색 조건
|
||||
* @return 도엽 목록
|
||||
*/
|
||||
public Page<MapSheetDto.Basic> searchMapSheets(MapSheetDto.SearchReq searchReq) {
|
||||
log.info("도엽 목록 조회 - 조건: {}", searchReq);
|
||||
return mapSheetCoreService.findMapSheetList(searchReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 도엽 삭제 (다건)
|
||||
*
|
||||
* @param deleteReq 삭제 요청
|
||||
*/
|
||||
@Transactional
|
||||
public void deleteMapSheets(MapSheetDto.DeleteReq deleteReq) {
|
||||
log.info("도엽 삭제 - 요청: {}", deleteReq);
|
||||
mapSheetCoreService.deleteMapSheets(deleteReq);
|
||||
log.info("도엽 삭제 완료 - 개수: {}", deleteReq.getItemIds().size());
|
||||
}
|
||||
}
|
||||
package com.kamco.cd.training.dataset.service;
|
||||
|
||||
import com.kamco.cd.training.dataset.dto.MapSheetDto;
|
||||
import com.kamco.cd.training.postgres.core.MapSheetCoreService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional(readOnly = true)
|
||||
public class MapSheetService {
|
||||
|
||||
private final MapSheetCoreService mapSheetCoreService;
|
||||
|
||||
/**
|
||||
* 도엽 목록 조회
|
||||
*
|
||||
* @param searchReq 검색 조건
|
||||
* @return 도엽 목록
|
||||
*/
|
||||
public Page<MapSheetDto.Basic> searchMapSheets(MapSheetDto.SearchReq searchReq) {
|
||||
log.info("도엽 목록 조회 - 조건: {}", searchReq);
|
||||
return mapSheetCoreService.findMapSheetList(searchReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 도엽 삭제 (다건)
|
||||
*
|
||||
* @param deleteReq 삭제 요청
|
||||
*/
|
||||
@Transactional
|
||||
public void deleteMapSheets(MapSheetDto.DeleteReq deleteReq) {
|
||||
log.info("도엽 삭제 - 요청: {}", deleteReq);
|
||||
mapSheetCoreService.deleteMapSheets(deleteReq);
|
||||
log.info("도엽 삭제 완료 - 개수: {}", deleteReq.getItemIds().size());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user