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.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
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.DetectSearchType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.service.ChangeDetectionService;
|
import com.kamco.cd.kamcoback.changedetection.service.ChangeDetectionService;
|
||||||
@@ -146,4 +147,31 @@ public class ChangeDetectionApiController {
|
|||||||
return ApiResponseDto.ok(
|
return ApiResponseDto.ok(
|
||||||
changeDetectionService.getChangeDetectionPointList(type, scale, uuid, mapSheetNum));
|
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 String afterClass; // 비교 분류
|
||||||
private Double cdProb; // 탐지 정확도
|
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.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
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.DetectSearchType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||||
import com.kamco.cd.kamcoback.postgres.core.ChangeDetectionCoreService;
|
import com.kamco.cd.kamcoback.postgres.core.ChangeDetectionCoreService;
|
||||||
@@ -89,4 +90,8 @@ public class ChangeDetectionService {
|
|||||||
default -> throw new IllegalArgumentException("Unsupported type: " + type);
|
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.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
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.MapScaleType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||||
import com.kamco.cd.kamcoback.common.enums.DetectionClassification;
|
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.entity.MapSheetAnalDataInferenceGeomEntity;
|
||||||
import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository;
|
import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -15,6 +17,7 @@ import java.util.stream.Collectors;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.locationtech.jts.geom.Geometry;
|
import org.locationtech.jts.geom.Geometry;
|
||||||
import org.locationtech.jts.geom.Point;
|
import org.locationtech.jts.geom.Point;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -96,4 +99,10 @@ public class ChangeDetectionCoreService {
|
|||||||
public List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid) {
|
public List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid) {
|
||||||
return changeDetectionRepository.getChangeDetectionMapSheet50kList(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;
|
package com.kamco.cd.kamcoback.postgres.repository.changedetection;
|
||||||
|
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
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.MapScaleType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public interface ChangeDetectionRepositoryCustom {
|
public interface ChangeDetectionRepositoryCustom {
|
||||||
@@ -28,4 +30,6 @@ public interface ChangeDetectionRepositoryCustom {
|
|||||||
List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(UUID uuid);
|
List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(UUID uuid);
|
||||||
|
|
||||||
List<MapSheetList> getChangeDetectionMapSheet50kList(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.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
|
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.DetectSearchType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapScaleType;
|
||||||
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
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.QMapSheetAnalDataInferenceEntity;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity;
|
||||||
|
import com.querydsl.core.BooleanBuilder;
|
||||||
import com.querydsl.core.types.Projections;
|
import com.querydsl.core.types.Projections;
|
||||||
import com.querydsl.core.types.dsl.BooleanExpression;
|
import com.querydsl.core.types.dsl.BooleanExpression;
|
||||||
import com.querydsl.core.types.dsl.CaseBuilder;
|
import com.querydsl.core.types.dsl.CaseBuilder;
|
||||||
@@ -30,10 +32,13 @@ import com.querydsl.jpa.JPAExpressions;
|
|||||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
|
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
||||||
implements ChangeDetectionRepositoryCustom {
|
implements ChangeDetectionRepositoryCustom {
|
||||||
|
|
||||||
@@ -371,4 +376,24 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
"{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename))
|
"{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename))
|
||||||
.otherwise("");
|
.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