Merge pull request 'feat/infer_dev_260211' (#86) from feat/infer_dev_260211 into develop
Reviewed-on: #86
This commit was merged in pull request #86.
This commit is contained in:
@@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.changedetection;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.ChangeDetectionMapDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.DetectSearchType;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||
import com.kamco.cd.kamcoback.changedetection.service.ChangeDetectionService;
|
||||
@@ -146,4 +147,31 @@ public class ChangeDetectionApiController {
|
||||
return ApiResponseDto.ok(
|
||||
changeDetectionService.getChangeDetectionPointList(type, scale, uuid, mapSheetNum));
|
||||
}
|
||||
|
||||
@Operation(summary = "변화지도 uuid 조회", description = "변화지도 uuid 조회 API")
|
||||
@GetMapping("/map")
|
||||
public ApiResponseDto<UUID> getChangeDetection(
|
||||
@Parameter(description = "기준년도", required = true) @RequestParam(defaultValue = "2022")
|
||||
Integer stddYear,
|
||||
@Parameter(description = "비교년도", required = true) @RequestParam(defaultValue = "2023")
|
||||
Integer cprsnYear,
|
||||
@Parameter(description = "변화탐지 객체 id 32자리") @RequestParam(defaultValue = "", required = false)
|
||||
String cdObjectId,
|
||||
@Parameter(description = "변화탐지 객체 ids 32자리")
|
||||
@RequestParam(defaultValue = "", required = false)
|
||||
List<String> cdObjectIds,
|
||||
@Parameter(description = "변화탐지 회차별 id 32자리")
|
||||
@RequestParam(defaultValue = "", required = false)
|
||||
String chnDtctId,
|
||||
@Parameter(description = "pnu") @RequestParam(defaultValue = "", required = false)
|
||||
String pnu) {
|
||||
ChangeDetectionMapDto req = new ChangeDetectionMapDto();
|
||||
req.setCompareYyyy(stddYear);
|
||||
req.setTargetYyyy(cprsnYear);
|
||||
req.setCdObjectId(cdObjectId);
|
||||
req.setCdObjectIds(cdObjectIds);
|
||||
req.setChnDtctId(chnDtctId);
|
||||
req.setPnu(pnu);
|
||||
return ApiResponseDto.ok(changeDetectionService.getChangeDetectionUuid(req));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,4 +251,18 @@ public class ChangeDetectionDto {
|
||||
private String afterClass; // 비교 분류
|
||||
private Double cdProb; // 탐지 정확도
|
||||
}
|
||||
|
||||
@Schema(name = "ChangeDetectionMapDto", description = "변화지도 팝업 검색조건")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class ChangeDetectionMapDto {
|
||||
private Integer compareYyyy;
|
||||
private Integer targetYyyy;
|
||||
private String cdObjectId;
|
||||
private List<String> cdObjectIds;
|
||||
private String chnDtctId;
|
||||
private String pnu;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.changedetection.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.ChangeDetectionMapDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.DetectSearchType;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||
import com.kamco.cd.kamcoback.postgres.core.ChangeDetectionCoreService;
|
||||
@@ -89,4 +90,8 @@ public class ChangeDetectionService {
|
||||
default -> throw new IllegalArgumentException("Unsupported type: " + type);
|
||||
}
|
||||
}
|
||||
|
||||
public UUID getChangeDetectionUuid(ChangeDetectionMapDto req) {
|
||||
return changeDetectionCoreService.getChangeDetectionUuid(req);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.ChangeDetectionMapDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||
import com.kamco.cd.kamcoback.common.enums.DetectionClassification;
|
||||
import com.kamco.cd.kamcoback.common.exception.CustomApiException;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository;
|
||||
import java.util.List;
|
||||
@@ -15,6 +17,7 @@ import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.locationtech.jts.geom.Geometry;
|
||||
import org.locationtech.jts.geom.Point;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@@ -96,4 +99,10 @@ public class ChangeDetectionCoreService {
|
||||
public List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid) {
|
||||
return changeDetectionRepository.getChangeDetectionMapSheet50kList(uuid);
|
||||
}
|
||||
|
||||
public UUID getChangeDetectionUuid(ChangeDetectionMapDto req) {
|
||||
return changeDetectionRepository
|
||||
.getChangeDetectionUuid(req)
|
||||
.orElseThrow(() -> new CustomApiException("NOT_FOUND_DATA", HttpStatus.NOT_FOUND));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.kamco.cd.kamcoback.postgres.repository.changedetection;
|
||||
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.ChangeDetectionMapDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
public interface ChangeDetectionRepositoryCustom {
|
||||
@@ -28,4 +30,6 @@ public interface ChangeDetectionRepositoryCustom {
|
||||
List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(UUID uuid);
|
||||
|
||||
List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid);
|
||||
|
||||
Optional<UUID> getChangeDetectionUuid(ChangeDetectionMapDto req);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.ChangeDetectionMapDto;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.DetectSearchType;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||
@@ -21,6 +22,7 @@ import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntit
|
||||
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity;
|
||||
import com.querydsl.core.BooleanBuilder;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.core.types.dsl.BooleanExpression;
|
||||
import com.querydsl.core.types.dsl.CaseBuilder;
|
||||
@@ -30,10 +32,13 @@ import com.querydsl.jpa.JPAExpressions;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
||||
implements ChangeDetectionRepositoryCustom {
|
||||
|
||||
@@ -371,4 +376,24 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
||||
"{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename))
|
||||
.otherwise("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<UUID> getChangeDetectionUuid(ChangeDetectionMapDto req) {
|
||||
BooleanBuilder builder = new BooleanBuilder();
|
||||
builder.and(mapSheetAnalInferenceEntity.stage.isNotNull());
|
||||
builder.and(mapSheetAnalInferenceEntity.compareYyyy.eq(req.getCompareYyyy()));
|
||||
builder.and(mapSheetAnalInferenceEntity.targetYyyy.eq(req.getTargetYyyy()));
|
||||
|
||||
return Optional.ofNullable(
|
||||
queryFactory
|
||||
.select(mapSheetAnalInferenceEntity.uuid)
|
||||
.from(mapSheetAnalInferenceEntity)
|
||||
.innerJoin(mapSheetAnalDataInferenceEntity)
|
||||
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
||||
.where(builder)
|
||||
.groupBy(mapSheetAnalInferenceEntity.uuid, mapSheetAnalInferenceEntity.stage)
|
||||
.orderBy(mapSheetAnalInferenceEntity.stage.desc())
|
||||
.limit(1)
|
||||
.fetchOne());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user