package com.kamco.cd.kamcoback.mapsheet; import com.kamco.cd.kamcoback.code.dto.CommonCodeDto; import com.kamco.cd.kamcoback.config.api.ApiResponseDto; import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto; 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 java.time.Year; import java.util.List; import java.util.Optional; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Tag(name = "영상 관리", description = "영상 관리 API") @RestController @RequiredArgsConstructor @RequestMapping({"/api/v2/mapsheet"}) public class MapSheetMngApiV2Controller { 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) }) @GetMapping("/mng-year-list") public ApiResponseDto findMapSheetMngYyyyList() { List years = mapSheetMngService.findMapSheetMngYyyyList(); // 현재 년도 가져온다 int currentYear = Year.now().getValue(); // 현재년도와 같거나 큰 년도를 가져온다. Optional result = years.stream().filter(y -> y >= currentYear).min(Integer::compareTo); return ApiResponseDto.ok(new MapSheetMngDto.ResisterYearList(result.orElse(null), years)); } }