From b78fda151a2819e9dec71b203924b8f203a4a108 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Mon, 11 May 2026 10:02:48 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=81=EC=83=81=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20API=20=EC=B6=94=EA=B0=80,=20shp=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EA=B8=B0=EC=A1=B4=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../code/CommonCodeApiController.java | 20 +++++------ .../mapsheet/MapSheetMngApiController.java | 16 ++++----- .../mapsheet/service/MapSheetMngService.java | 6 +++- .../postgres/core/MapSheetMngCoreService.java | 4 +++ .../service/MapSheetInferenceJobService.java | 4 +-- .../test/TestShapeApiController.java | 33 +++++++++++++++++++ 6 files changed, 62 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java b/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java index 63bf9279..10b83106 100644 --- a/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/code/CommonCodeApiController.java @@ -327,16 +327,16 @@ public class CommonCodeApiController { @Operation(summary = "코드 단건 조회", description = "코드 조회") @ApiResponses( - value = { - @ApiResponse( - responseCode = "200", - description = "코드 조회 성공", - content = - @Content( - mediaType = "application/json", - schema = @Schema(implementation = CodeDto.class))), - @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) - }) + value = { + @ApiResponse( + responseCode = "200", + description = "코드 조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = CodeDto.class))), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) @GetMapping("/type/copy/{type}") public ApiResponseDto> getTypeCodeCopy(@PathVariable String type) { return ApiResponseDto.ok(commonCodeService.getTypeCode(type)); diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java index 46de540c..f9f8b699 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java @@ -22,14 +22,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @Tag(name = "영상 관리", description = "영상 관리 API") @@ -256,4 +249,11 @@ public class MapSheetMngApiController { return ApiResponseDto.ok( mapSheetMngService.uploadChunkMapSheetFile(hstUid, upAddReqDto, chunkFile)); } + + @Operation(summary = "영상데이터관리 > 등록된 년도 데이터 전체 삭제", description = "영상데이터관리 > 등록된 년도 데이터 전체 삭제") + @DeleteMapping + public ApiResponseDto deleteByMngYyyyMngAll(@RequestParam Integer mngYyyy) { + mapSheetMngService.deleteByMngYyyyMngAll(mngYyyy); + return ApiResponseDto.ok(null); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java index 56844011..d496cbb0 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java @@ -40,7 +40,7 @@ import org.springframework.web.multipart.MultipartFile; @Slf4j @Service @RequiredArgsConstructor -@Transactional(readOnly = true) +@Transactional public class MapSheetMngService { private final MapSheetMngCoreService mapSheetMngCoreService; @@ -489,4 +489,8 @@ public class MapSheetMngService { return modelUploadResDto; } + + public void deleteByMngYyyyMngAll(Integer mngYyyy) { + mapSheetMngCoreService.deleteByMngYyyyMngAll(mngYyyy); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java index 23d81112..f0ea3364 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java @@ -379,4 +379,8 @@ public class MapSheetMngCoreService { return result; } + + public void deleteByMngYyyyMngAll(Integer mngYyyy) { + mapSheetMngRepository.deleteByMngYyyyMngAll(mngYyyy); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java index 19773b3c..1ab86053 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java @@ -256,8 +256,8 @@ public class MapSheetInferenceJobService { String batchIdStr = batchIds.stream().map(String::valueOf).collect(Collectors.joining(",")); // 0312 shp 파일 비동기 생성 (바꿔주세요) - shpPipelineService.makeShapeFile(sheet.getUid(), batchIds); - // shpPipelineService.runPipeline(jarPath, datasetDir, batchIdStr, sheet.getUid()); + // shpPipelineService.makeShapeFile(sheet.getUid(), batchIds); + shpPipelineService.runPipeline(jarPath, datasetDir, batchIdStr, sheet.getUid()); } /** diff --git a/src/main/java/com/kamco/cd/kamcoback/test/TestShapeApiController.java b/src/main/java/com/kamco/cd/kamcoback/test/TestShapeApiController.java index 62bc8bc1..4fea2637 100644 --- a/src/main/java/com/kamco/cd/kamcoback/test/TestShapeApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/test/TestShapeApiController.java @@ -9,7 +9,9 @@ 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 java.util.List; +import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.ErrorResponse; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,12 @@ public class TestShapeApiController { private final ShpPipelineService shpPipelineService; + @Value("${inference.jar-path}") + private String jarPath; + + @Value("${file.dataset-dir}") + private String datasetDir; + @Operation( summary = "shapefile 생성 테스트", description = "지정된 inference ID와 batch ID 목록으로 shapefile을 생성합니다.") @@ -47,4 +55,29 @@ public class TestShapeApiController { shpPipelineService.makeShapeFile(inferenceId, batchIds); return ApiResponseDto.ok("Shapefile 생성이 시작되었습니다. inferenceId: " + inferenceId); } + + @Operation( + summary = "기존 run pipeline 테스트", + description = "지정된 inference ID와 batch ID 목록으로 shapefile을 생성합니다.") + @ApiResponses({ + @ApiResponse( + responseCode = "200", + description = "shapefile 생성 요청 성공", + content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse( + responseCode = "400", + description = "잘못된 요청 데이터", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse( + responseCode = "500", + description = "서버 오류", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + }) + @GetMapping("/run-pipeline") + public ApiResponseDto runPipeline( + @RequestParam String inferenceId, @RequestParam List batchIds) { + String batchIdStr = batchIds.stream().map(String::valueOf).collect(Collectors.joining(",")); + shpPipelineService.runPipeline(jarPath, datasetDir, batchIdStr, inferenceId); + return ApiResponseDto.ok("runPipeline 생성이 시작되었습니다. inferenceId: " + inferenceId); + } }