304 lines
14 KiB
Java
304 lines
14 KiB
Java
package com.kamco.cd.kamcoback.mapsheet;
|
|
|
|
import com.kamco.cd.kamcoback.code.dto.CommonCodeDto;
|
|
import com.kamco.cd.kamcoback.code.service.CommonCodeService;
|
|
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.FilesDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.FoldersDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.SrchFilesDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.SrchFoldersDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngYyyyDto;
|
|
import com.kamco.cd.kamcoback.mapsheet.service.MapSheetMngService;
|
|
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 java.util.List;
|
|
import lombok.RequiredArgsConstructor;
|
|
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.multipart.MultipartFile;
|
|
|
|
@Tag(name = "영상 관리", description = "영상 관리 API")
|
|
@RestController
|
|
@RequiredArgsConstructor
|
|
@RequestMapping({"/api/imagery/dataset"})
|
|
public class MapSheetMngApiController {
|
|
|
|
private final CommonCodeService commonCodeService;
|
|
private final MapSheetMngService mapSheetMngService;
|
|
|
|
@Operation(summary = "영상 데이터 관리 목록 조회", description = "영상 데이터 관리 목록 조회")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PostMapping("/mng-list")
|
|
public ApiResponseDto<List<MapSheetMngDto.MngDto>> findMapSheetMngList() {
|
|
|
|
return ApiResponseDto.ok(mapSheetMngService.findMapSheetMngList());
|
|
}
|
|
|
|
@Operation(summary = "영상 데이터 관리 상세", description = "영상 데이터 관리 상세")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@GetMapping("/mng")
|
|
public ApiResponseDto<MapSheetMngDto.MngDto> findMapSheetMng(@RequestParam int mngYyyy) {
|
|
|
|
return ApiResponseDto.ok(mapSheetMngService.findMapSheetMng(mngYyyy));
|
|
}
|
|
|
|
@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 = "404", description = "데이터를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PutMapping("/mng-data-save")
|
|
public ApiResponseDto<MapSheetMngDto.DmlReturn> mngDataSave(
|
|
@RequestBody @Valid MapSheetMngDto.AddReq AddReq) {
|
|
return ApiResponseDto.ok(mapSheetMngService.mngDataSave(AddReq));
|
|
}
|
|
|
|
@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 = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PutMapping("/mng-complete")
|
|
public ApiResponseDto<MapSheetMngDto.DmlReturn> mngComplete(@RequestParam @Valid int mngYyyy) {
|
|
return ApiResponseDto.ok(mapSheetMngService.mngComplete(mngYyyy));
|
|
}
|
|
|
|
@Operation(summary = "영상 데이터 관리 년도 목록", description = "영상 데이터 관리 년도 목록")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PostMapping("/mng-year-list")
|
|
public ApiResponseDto<List<Integer>> findMapSheetMngYyyyList() {
|
|
|
|
return ApiResponseDto.ok(mapSheetMngService.findMapSheetMngYyyyList());
|
|
}
|
|
|
|
@Operation(summary = "영상 데이터 관리 오류 목록", description = "영상 데이터 관리 오류 목록")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PostMapping("/error-list")
|
|
public ApiResponseDto<Page<MapSheetMngDto.ErrorDataDto>> findMapSheetErrorList(
|
|
@RequestBody @Valid MapSheetMngDto.ErrorSearchReq searchReq) {
|
|
return ApiResponseDto.ok(mapSheetMngService.findMapSheetErrorList(searchReq));
|
|
}
|
|
|
|
/*
|
|
@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 = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PutMapping("/upload-process")
|
|
public ApiResponseDto<MapSheetMngDto.DmlReturn> uploadProcess(
|
|
@RequestBody @Valid List<Long> hstUidList) {
|
|
return ApiResponseDto.ok(mapSheetMngService.uploadProcess(hstUidList));
|
|
}
|
|
|
|
*/
|
|
|
|
/*
|
|
@Operation(summary = "오류데이터 팝업 > 추론 제외", description = "오류데이터 팝업 > 추론 제외")
|
|
@PutMapping("/except-inference")
|
|
public ApiResponseDto<MapSheetMngDto.DmlReturn> updateExceptUseInference(
|
|
@RequestBody @Valid List<Long> hstUidList) {
|
|
return ApiResponseDto.ok(mapSheetMngService.updateExceptUseInference(hstUidList));
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
@Operation(summary = "페어 파일 업로드", description = "TFW/TIF 두 파일을 쌍으로 업로드 및 검증")
|
|
@PostMapping(value = "/upload-pair", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
|
public ApiResponseDto<MapSheetMngDto.DmlReturn> uploadPair(
|
|
@RequestPart("tfw") MultipartFile tfwFile,
|
|
@RequestPart("tif") MultipartFile tifFile,
|
|
@RequestParam(value = "hstUid", required = false) Long hstUid,
|
|
@RequestParam(value = "overwrite", required = false) boolean overwrite) {
|
|
|
|
return ApiResponseDto.createOK(
|
|
mapSheetMngService.uploadPair(tfwFile, tifFile, hstUid, overwrite));
|
|
}
|
|
|
|
@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 = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@GetMapping("/mng-file-list")
|
|
public ApiResponseDto<List<MapSheetMngDto.MngFilesDto>> findByHstUidMapSheetFileList(
|
|
@RequestParam @Valid Long hstUid) {
|
|
return ApiResponseDto.ok(mapSheetMngService.findByHstUidMapSheetFileList(hstUid));
|
|
}
|
|
|
|
@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 = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PutMapping("/update-use-mng-files")
|
|
public ApiResponseDto<MapSheetMngDto.DmlReturn> updateUseByFileUidMngFile(
|
|
@RequestParam @Valid List<Long> fileUids) {
|
|
return ApiResponseDto.ok(mapSheetMngService.setUseByFileUidMngFile(fileUids));
|
|
}
|
|
|
|
@Operation(summary = "폴더 조회", description = "폴더 조회 (ROOT:/app/original-images 이하로 경로입력)")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PostMapping("/folder-list")
|
|
public ApiResponseDto<FoldersDto> getDir(@RequestBody SrchFoldersDto srchDto) {
|
|
|
|
return ApiResponseDto.createOK(mapSheetMngService.getFolderAll(srchDto));
|
|
}
|
|
|
|
@Operation(summary = "지정폴더내 파일목록 조회", description = "지정폴더내 파일목록 조회")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PostMapping("/file-list")
|
|
public ApiResponseDto<FilesDto> getFiles(@RequestBody SrchFilesDto srchDto) {
|
|
|
|
return ApiResponseDto.createOK(mapSheetMngService.getFilesAll(srchDto));
|
|
}
|
|
|
|
@Operation(summary = "영상 데이터 관리 완료 년도 목록 조회", description = "영상 데이터 관리 완료 년도 목록 조회")
|
|
@ApiResponses(
|
|
value = {
|
|
@ApiResponse(
|
|
responseCode = "200",
|
|
description = "조회 성공",
|
|
content =
|
|
@Content(
|
|
mediaType = "application/json",
|
|
schema = @Schema(implementation = CommonCodeDto.Basic.class))),
|
|
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
|
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
|
})
|
|
@PostMapping("/mng-done-yyyy-list")
|
|
public ApiResponseDto<List<MngYyyyDto>> findMapSheetMngDoneYyyyList() {
|
|
|
|
return ApiResponseDto.ok(mapSheetMngService.findMapSheetMngDoneYyyyList());
|
|
}
|
|
}
|