diff --git a/src/main/java/com/sampoom/backend/api/material/controller/MaterialController.java b/src/main/java/com/sampoom/backend/api/material/controller/MaterialController.java index 4844d4a..c618966 100644 --- a/src/main/java/com/sampoom/backend/api/material/controller/MaterialController.java +++ b/src/main/java/com/sampoom/backend/api/material/controller/MaterialController.java @@ -65,6 +65,14 @@ public ResponseEntity> updateMaterial( return ApiResponse.success(SuccessStatus.OK,materialService.updateMaterial(id, materialRequestDTO)); } + @Operation(summary = "자재 상세조회", description = "자재 ID로 상세 정보를 조회합니다.") + @GetMapping("/{materialId}") + public ResponseEntity> getMaterialById(@PathVariable("materialId") Long id) { + MaterialResponseDTO materialResponse = materialService.getMaterialById(id); + + return ApiResponse.success(SuccessStatus.MATERIAL_GET_SUCCESS, materialResponse); + } + @Operation(summary = "자재 삭제", description = "자재를 삭제합니다.") @DeleteMapping("/{materialId}") public ResponseEntity> deleteMaterial(@PathVariable("materialId") Long id) { diff --git a/src/main/java/com/sampoom/backend/api/material/service/MaterialService.java b/src/main/java/com/sampoom/backend/api/material/service/MaterialService.java index b5b6520..1626dcd 100644 --- a/src/main/java/com/sampoom/backend/api/material/service/MaterialService.java +++ b/src/main/java/com/sampoom/backend/api/material/service/MaterialService.java @@ -306,4 +306,13 @@ public String generateNextMaterialCode(Long categoryId) { return String.format("%s-%04d", category.getCode(), nextSeq); } + + // 자재 상세조회 + @Transactional(readOnly = true) + public MaterialResponseDTO getMaterialById(Long materialId) { + Material material = materialRepository.findById(materialId) + .orElseThrow(() -> new NotFoundException(ErrorStatus.MATERIAL_NOT_FOUND)); + + return new MaterialResponseDTO(material); + } } diff --git a/src/main/java/com/sampoom/backend/api/part/controller/PartController.java b/src/main/java/com/sampoom/backend/api/part/controller/PartController.java index 0396d54..1502745 100644 --- a/src/main/java/com/sampoom/backend/api/part/controller/PartController.java +++ b/src/main/java/com/sampoom/backend/api/part/controller/PartController.java @@ -87,6 +87,14 @@ public ResponseEntity> updatePart( return ApiResponse.success(SuccessStatus.PART_UPDATE_SUCCESS, partResponse); } + @Operation(summary = "부품 상세조회", description = "부품 ID로 상세 정보 조회") + @GetMapping("/{partId}") + public ResponseEntity> getPartById(@PathVariable Long partId) { + PartListResponseDTO partResponse = partService.getPartById(partId); + + return ApiResponse.success(SuccessStatus.PART_GET_SUCCESS, partResponse); + } + // @Operation(summary = "부품 삭제", description = "부품 삭제") // @DeleteMapping("/{partId}") // public ResponseEntity> deletePart(@PathVariable Long partId) { diff --git a/src/main/java/com/sampoom/backend/api/part/service/PartService.java b/src/main/java/com/sampoom/backend/api/part/service/PartService.java index 75c0d97..c8c55a0 100644 --- a/src/main/java/com/sampoom/backend/api/part/service/PartService.java +++ b/src/main/java/com/sampoom/backend/api/part/service/PartService.java @@ -486,6 +486,16 @@ public Long getProcessCostByPartId(Long partId) { return process != null ? process.getTotalProcessCost() : 0L; } + + // 부품 상세조회 + @Transactional(readOnly = true) + public PartListResponseDTO getPartById(Long partId) { + Part part = partRepository.findById(partId) + .orElseThrow(() -> new NotFoundException(ErrorStatus.PART_NOT_FOUND)); + + return new PartListResponseDTO(part); + } + /** * 모든 Part의 standard_total_cost 재계산 */ diff --git a/src/main/java/com/sampoom/backend/common/response/SuccessStatus.java b/src/main/java/com/sampoom/backend/common/response/SuccessStatus.java index fa65627..704e969 100644 --- a/src/main/java/com/sampoom/backend/common/response/SuccessStatus.java +++ b/src/main/java/com/sampoom/backend/common/response/SuccessStatus.java @@ -21,6 +21,7 @@ public enum SuccessStatus { PART_LIST_SUCCESS(HttpStatus.OK, "부품 목록 조회 성공"), PART_CREATE_SUCCESS(HttpStatus.OK, "부품 생성 성공"), PART_UPDATE_SUCCESS(HttpStatus.OK, "부품 수정 성공"), + PART_GET_SUCCESS(HttpStatus.OK, "부품 상세 조회 성공"), PART_DELETE_SUCCESS(HttpStatus.OK, "부품 삭제 성공"), PART_SEARCH_SUCCESS(HttpStatus.OK, "부품 검색 성공"), PART_DETAIL_SUCCESS(HttpStatus.OK, "부품 상세 조회 성공"), @@ -34,6 +35,7 @@ public enum SuccessStatus { MATERIAL_LIST_SUCCESS(HttpStatus.OK, "자재 목록 조회 성공"), ITEM_LIST_SUCCESS(HttpStatus.OK, "자재/부품 전체 조회 성공"), + MATERIAL_GET_SUCCESS(HttpStatus.OK, "자재 상세 조회 성공"), ;