feat: sample
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package com.kamco.cd.kamcoback.inference;
|
||||
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
|
||||
import com.kamco.cd.kamcoback.inference.service.InferenceResultService;
|
||||
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 java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Tag(name = "추론관리 분석결과", description = "추론관리 분석결과")
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping({"/v2/demo/inf/res"})
|
||||
@Slf4j
|
||||
public class InferenceResultApiV2Controller {
|
||||
|
||||
private final InferenceResultService inferenceResultService;
|
||||
|
||||
@Operation(summary = "추론관리 분석결과 상세 목록 V2", description = "추론관리 분석결과 상세 목록 geojson 데이터 조회")
|
||||
@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("/geom/{id}")
|
||||
public ApiResponseDto<Page<InferenceResultDto.DetailListEntity>> listInferenceResultWithGeom(
|
||||
@Parameter(description = "분석결과 id", example = "1") @PathVariable Long id,
|
||||
@Parameter(description = "기준년도 분류", example = "land") @RequestParam(required = false)
|
||||
String targetClass,
|
||||
@Parameter(description = "비교년도 분류", example = "waste") @RequestParam(required = false)
|
||||
String compareClass,
|
||||
@Parameter(description = "5000:1 도협번호 37801011,37801012") @RequestParam(required = false)
|
||||
List<Long> mapSheetNum,
|
||||
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0") @RequestParam(defaultValue = "0")
|
||||
int page,
|
||||
@Parameter(description = "페이지 크기", example = "20") @RequestParam(defaultValue = "20")
|
||||
int size,
|
||||
@Parameter(description = "정렬 조건 (형식: 필드명,방향)", example = "name,asc")
|
||||
@RequestParam(required = false)
|
||||
String sort) {
|
||||
InferenceResultDto.SearchGeoReq searchGeoReq =
|
||||
new InferenceResultDto.SearchGeoReq(
|
||||
targetClass, compareClass, mapSheetNum, page, size, sort);
|
||||
|
||||
Page<InferenceResultDto.DetailListEntity> geomList =
|
||||
inferenceResultService.listInferenceResultWithGeom(id, searchGeoReq);
|
||||
return ApiResponseDto.ok(geomList);
|
||||
}
|
||||
}
|
||||
@@ -173,6 +173,50 @@ public class InferenceResultDto {
|
||||
}
|
||||
}
|
||||
|
||||
// 분석 상세 ROW
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public static class DetailListEntity {
|
||||
|
||||
private Clazz compare;
|
||||
private Clazz target;
|
||||
private MapSheet mapSheet;
|
||||
private Coordinate center;
|
||||
}
|
||||
|
||||
// MAP NO
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public static class MapSheet {
|
||||
|
||||
private String number;
|
||||
private String name;
|
||||
}
|
||||
|
||||
// classification info
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public static class Clazz {
|
||||
|
||||
private String code;
|
||||
private Double score;
|
||||
}
|
||||
|
||||
// 좌표 정보 point
|
||||
@Getter
|
||||
public static class Coordinate {
|
||||
|
||||
private Double lon; // 경도(Longitude)
|
||||
private Double lat; // 위도(Latitude)
|
||||
private String srid; // Spatial Reference ID의 약자로, 데이터베이스에서 좌표계를 식별하는 고유 번호 추후enum으로
|
||||
|
||||
public Coordinate(Double lon, Double lat) {
|
||||
this.lon = lon;
|
||||
this.lat = lat;
|
||||
this.srid = "EPSG:4326";
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
public static class Geom {
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
|
||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Dashboard;
|
||||
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Detail;
|
||||
import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -59,6 +60,18 @@ public class InferenceResultService {
|
||||
return inferenceResultCoreService.getInferenceResultGeomList(id, searchGeoReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 분석결과 상세 목록
|
||||
*
|
||||
* @param searchReq
|
||||
* @return
|
||||
*/
|
||||
public Page<InferenceResultDto.DetailListEntity> listInferenceResultWithGeom(
|
||||
@NotNull Long id, InferenceResultDto.SearchGeoReq searchReq) {
|
||||
|
||||
return inferenceResultCoreService.listInferenceResultWithGeom(id, searchReq);
|
||||
}
|
||||
|
||||
/**
|
||||
* 분석결과 상제 정보 Summary, DashBoard
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user