추론관리 api 수정, 분석된 도엽 목록 추가
This commit is contained in:
@@ -21,6 +21,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
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.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -28,7 +29,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Tag(name = "추론관리 분석결과", description = "추론관리 분석결과")
|
||||
@RequestMapping("/api/inf/res")
|
||||
@RequestMapping({"/demo/inf/res", "/api/inf/res"})
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
public class InferenceResultApiController {
|
||||
@@ -53,10 +54,9 @@ public class InferenceResultApiController {
|
||||
})
|
||||
@GetMapping("/list")
|
||||
public ApiResponseDto<Page<InferenceResultDto.AnalResList>> getInferenceResultList(
|
||||
@Parameter(description = "분석상태", example = "0000") @RequestParam(required = false)
|
||||
@Parameter(description = "분석상태", example = "0002") @RequestParam(required = false)
|
||||
String statCode,
|
||||
@Parameter(description = "제목", example = "2023_2024년도") @RequestParam(required = false)
|
||||
String title,
|
||||
@Parameter(description = "제목", example = "변화탐지") @RequestParam(required = false) String title,
|
||||
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0") @RequestParam(defaultValue = "0")
|
||||
int page,
|
||||
@Parameter(description = "페이지 크기", example = "20") @RequestParam(defaultValue = "20")
|
||||
@@ -84,9 +84,9 @@ public class InferenceResultApiController {
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 검색 조건", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/summary")
|
||||
@GetMapping("/summary/{id}")
|
||||
public ApiResponseDto<InferenceResultDto.AnalResSummary> getInferenceResultSummary(
|
||||
@Parameter(description = "목록 id", example = "1") @RequestParam Long id) {
|
||||
@Parameter(description = "목록 id", example = "1") @PathVariable Long id) {
|
||||
return ApiResponseDto.ok(inferenceResultService.getInferenceResultSummary(id));
|
||||
}
|
||||
|
||||
@@ -122,11 +122,12 @@ public class InferenceResultApiController {
|
||||
@ApiResponse(responseCode = "400", description = "잘못된 검색 조건", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
@GetMapping("/geom")
|
||||
@GetMapping("/geom/{id}")
|
||||
public ApiResponseDto<Page<InferenceResultDto.Geom>> getInferenceResultGeomList(
|
||||
@Parameter(description = "기준년도 분류", example = "0001") @RequestParam(required = false)
|
||||
@Parameter(description = "분석결과 id", example = "1") @PathVariable Long id,
|
||||
@Parameter(description = "기준년도 분류", example = "land") @RequestParam(required = false)
|
||||
String targetClass,
|
||||
@Parameter(description = "비교년도 분류", example = "0002") @RequestParam(required = false)
|
||||
@Parameter(description = "비교년도 분류", example = "waste") @RequestParam(required = false)
|
||||
String compareClass,
|
||||
@Parameter(description = "5000:1 도협번호 37801011,37801012") @RequestParam(required = false)
|
||||
List<Long> mapSheetNum,
|
||||
@@ -141,7 +142,7 @@ public class InferenceResultApiController {
|
||||
new InferenceResultDto.SearchGeoReq(
|
||||
targetClass, compareClass, mapSheetNum, page, size, sort);
|
||||
Page<InferenceResultDto.Geom> geomList =
|
||||
inferenceResultService.getInferenceResultGeomList(searchGeoReq);
|
||||
inferenceResultService.getInferenceResultGeomList(id, searchGeoReq);
|
||||
return ApiResponseDto.ok(geomList);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.kamco.cd.kamcoback.inference.dto;
|
||||
|
||||
import com.kamco.cd.kamcoback.common.enums.DetectionClassification;
|
||||
import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.time.ZonedDateTime;
|
||||
@@ -8,6 +9,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.locationtech.jts.geom.Geometry;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
@@ -50,6 +52,7 @@ public class InferenceResultDto {
|
||||
@Schema(name = "AnalysisResultList", description = "분석결과 목록")
|
||||
@Getter
|
||||
public static class AnalResList {
|
||||
|
||||
private Long id;
|
||||
private String analTitle;
|
||||
private String analMapSheet;
|
||||
@@ -91,6 +94,7 @@ public class InferenceResultDto {
|
||||
@Schema(name = "AnalysisResultSummary", description = "분석결과 요약정보")
|
||||
@Getter
|
||||
public static class AnalResSummary {
|
||||
|
||||
private Long id;
|
||||
private String analTitle;
|
||||
private String modelInfo;
|
||||
@@ -143,6 +147,7 @@ public class InferenceResultDto {
|
||||
|
||||
@Getter
|
||||
public static class Dashboard {
|
||||
|
||||
Integer compareYyyy;
|
||||
Integer targetYyyy;
|
||||
Long mapSheetNum;
|
||||
@@ -189,19 +194,17 @@ public class InferenceResultDto {
|
||||
|
||||
@Getter
|
||||
public static class Detail {
|
||||
AnalResSummary summary;
|
||||
List<Dashboard> dashboard;
|
||||
Long totalCnt;
|
||||
|
||||
public Detail(AnalResSummary summary, List<Dashboard> dashboard, Long totalCnt) {
|
||||
AnalResSummary summary;
|
||||
|
||||
public Detail(AnalResSummary summary) {
|
||||
this.summary = summary;
|
||||
this.dashboard = dashboard;
|
||||
this.totalCnt = totalCnt;
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
public static class Geom {
|
||||
|
||||
Integer compareYyyy;
|
||||
Integer targetYyyy;
|
||||
String classBeforeCd;
|
||||
@@ -211,26 +214,30 @@ public class InferenceResultDto {
|
||||
String classAfterName;
|
||||
Double classAfterProb;
|
||||
Long mapSheetNum;
|
||||
Geometry gemo;
|
||||
Geometry geomCenter;
|
||||
|
||||
public Geom(
|
||||
Integer compareYyyy,
|
||||
Integer targetYyyy,
|
||||
String classBeforeCd,
|
||||
String classBeforeName,
|
||||
Double classBeforeProb,
|
||||
String classAfterCd,
|
||||
String classAfterName,
|
||||
Double classAfterProb,
|
||||
Long mapSheetNum) {
|
||||
Long mapSheetNum,
|
||||
Geometry gemo,
|
||||
Geometry geomCenter) {
|
||||
this.compareYyyy = compareYyyy;
|
||||
this.targetYyyy = targetYyyy;
|
||||
this.classBeforeCd = classBeforeCd;
|
||||
this.classBeforeName = classBeforeName;
|
||||
this.classBeforeName = DetectionClassification.fromString(classBeforeCd).getDesc();
|
||||
this.classBeforeProb = classBeforeProb;
|
||||
this.classAfterCd = classAfterCd;
|
||||
this.classAfterName = classAfterName;
|
||||
this.classAfterName = DetectionClassification.fromString(classAfterCd).getDesc();
|
||||
this.classAfterProb = classAfterProb;
|
||||
this.mapSheetNum = mapSheetNum;
|
||||
this.gemo = gemo;
|
||||
this.geomCenter = geomCenter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.kamco.cd.kamcoback.inference.service;
|
||||
|
||||
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 java.util.List;
|
||||
@@ -38,16 +37,6 @@ public class InferenceResultService {
|
||||
return inferenceResultCoreService.getInferenceResultSummary(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 분석결과 대시보드 조회
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public List<Dashboard> getInferenceResultBasic(Long id) {
|
||||
return inferenceResultCoreService.getInferenceResultDashboard(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 분석결과 상세 목록
|
||||
*
|
||||
@@ -55,8 +44,8 @@ public class InferenceResultService {
|
||||
* @return
|
||||
*/
|
||||
public Page<InferenceResultDto.Geom> getInferenceResultGeomList(
|
||||
InferenceResultDto.SearchGeoReq searchGeoReq) {
|
||||
return inferenceResultCoreService.getInferenceResultGeomList(searchGeoReq);
|
||||
Long id, InferenceResultDto.SearchGeoReq searchGeoReq) {
|
||||
return inferenceResultCoreService.getInferenceResultGeomList(id, searchGeoReq);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,11 +57,16 @@ public class InferenceResultService {
|
||||
public Detail getDetail(Long id) {
|
||||
// summary
|
||||
InferenceResultDto.AnalResSummary summary = this.getInferenceResultSummary(id);
|
||||
// 탐지건수 dashBoard
|
||||
List<InferenceResultDto.Dashboard> dashboardList = this.getInferenceResultBasic(id);
|
||||
// 전체 탐지건수
|
||||
Long totalCnt = dashboardList.stream().mapToLong(Dashboard::getClassAfterCnt).sum();
|
||||
return new Detail(summary);
|
||||
}
|
||||
|
||||
return new Detail(summary, dashboardList, totalCnt);
|
||||
/**
|
||||
* 추론된 5000:1 도엽 목록
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public List<String> getSheets(Long id) {
|
||||
return inferenceResultCoreService.getSheets(id).stream().map(String::valueOf).toList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user