변화탐지 기획안에 맞게 수정, 학습데이터현황 쿼리 수정
This commit is contained in:
@@ -2,6 +2,8 @@ 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.DetectSearchType;
|
||||||
|
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;
|
||||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
||||||
import io.swagger.v3.oas.annotations.Hidden;
|
import io.swagger.v3.oas.annotations.Hidden;
|
||||||
@@ -10,6 +12,7 @@ import io.swagger.v3.oas.annotations.Parameter;
|
|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@@ -46,20 +49,36 @@ public class ChangeDetectionApiController {
|
|||||||
@Operation(summary = "변화탐지 분류별 건수", description = "변화탐지 분류별 건수")
|
@Operation(summary = "변화탐지 분류별 건수", description = "변화탐지 분류별 건수")
|
||||||
@GetMapping("/class-count")
|
@GetMapping("/class-count")
|
||||||
public ApiResponseDto<List<ChangeDetectionDto.CountDto>> getChangeDetectionClassCount(
|
public ApiResponseDto<List<ChangeDetectionDto.CountDto>> getChangeDetectionClassCount(
|
||||||
@Parameter(description = "변화탐지 년도(차수) /year-list 의 analUid", example = "53") @RequestParam
|
@Parameter(
|
||||||
Long id,
|
description = "변화탐지 년도(차수) /year-list 의 uuid",
|
||||||
@Parameter(description = "탐지된 도엽번호", example = "34602060") @RequestParam String mapSheetNum) {
|
example = "8584e8d4-53b3-4582-bde2-28a81495a626")
|
||||||
return ApiResponseDto.ok(changeDetectionService.getChangeDetectionClassCount(id, mapSheetNum));
|
@RequestParam
|
||||||
|
UUID uuid,
|
||||||
|
@Parameter(description = "도곽/일반(MAPSHEET/ADDRESS) 검색 타입", required = true)
|
||||||
|
@RequestParam(defaultValue = "MAPSHEET")
|
||||||
|
DetectSearchType type,
|
||||||
|
@Parameter(description = "5k/50k 구분(SCALE_5K/SCALE_50K))", required = true)
|
||||||
|
@RequestParam(defaultValue = "SCALE_50K")
|
||||||
|
MapScaleType scale,
|
||||||
|
@Parameter(description = "탐지된 도엽번호", example = "35905") @RequestParam String mapSheetNum) {
|
||||||
|
return ApiResponseDto.ok(
|
||||||
|
changeDetectionService.getChangeDetectionClassCount(type, scale, uuid, mapSheetNum));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "변화탐지 COG Url", description = "변화탐지 COG Url")
|
@Operation(summary = "변화탐지 COG Url", description = "변화탐지 COG Url")
|
||||||
@GetMapping("/cog-url")
|
@GetMapping("/cog-url")
|
||||||
public ApiResponseDto<ChangeDetectionDto.CogUrlDto> getChangeDetectionCogUrl(
|
public ApiResponseDto<ChangeDetectionDto.CogUrlDto> getChangeDetectionCogUrl(
|
||||||
|
@Parameter(description = "도곽/일반(MAPSHEET/ADDRESS) 검색 타입", required = true)
|
||||||
|
@RequestParam(defaultValue = "MAPSHEET")
|
||||||
|
DetectSearchType type,
|
||||||
|
@Parameter(description = "5k/50k 구분(SCALE_5K/SCALE_50K))", required = true)
|
||||||
|
@RequestParam(defaultValue = "SCALE_50K")
|
||||||
|
MapScaleType scale,
|
||||||
@Parameter(description = "이전 년도", example = "2023") @RequestParam Integer beforeYear,
|
@Parameter(description = "이전 년도", example = "2023") @RequestParam Integer beforeYear,
|
||||||
@Parameter(description = "이후 년도", example = "2024") @RequestParam Integer afterYear,
|
@Parameter(description = "이후 년도", example = "2024") @RequestParam Integer afterYear,
|
||||||
@Parameter(description = "도엽번호(5k)", example = "35905086") @RequestParam String mapSheetNum) {
|
@Parameter(description = "도엽번호(5k)", example = "35905086") @RequestParam String mapSheetNum) {
|
||||||
ChangeDetectionDto.CogUrlReq req =
|
ChangeDetectionDto.CogUrlReq req =
|
||||||
new ChangeDetectionDto.CogUrlReq(beforeYear, afterYear, mapSheetNum);
|
new ChangeDetectionDto.CogUrlReq(beforeYear, afterYear, mapSheetNum, type, scale);
|
||||||
return ApiResponseDto.ok(changeDetectionService.getChangeDetectionCogUrl(req));
|
return ApiResponseDto.ok(changeDetectionService.getChangeDetectionCogUrl(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,25 +91,54 @@ public class ChangeDetectionApiController {
|
|||||||
@Operation(summary = "변화탐지 탐지된 도엽 목록", description = "변화탐지 탐지된 도엽 목록")
|
@Operation(summary = "변화탐지 탐지된 도엽 목록", description = "변화탐지 탐지된 도엽 목록")
|
||||||
@GetMapping("/map-list")
|
@GetMapping("/map-list")
|
||||||
public ApiResponseDto<List<ChangeDetectionDto.MapSheetList>> getChangeDetectionMapSheetList(
|
public ApiResponseDto<List<ChangeDetectionDto.MapSheetList>> getChangeDetectionMapSheetList(
|
||||||
@Parameter(description = "도엽목록 그룹id", example = "1") @RequestParam Long analUid) {
|
@Parameter(description = "도곽/일반(MAPSHEET/ADDRESS) 검색 타입", required = true)
|
||||||
return ApiResponseDto.ok(changeDetectionService.getChangeDetectionMapSheetList(analUid));
|
@RequestParam(defaultValue = "MAPSHEET")
|
||||||
|
DetectSearchType type,
|
||||||
|
@Parameter(description = "5k/50k 구분(SCALE_5K/SCALE_50K))", required = true)
|
||||||
|
@RequestParam(defaultValue = "SCALE_50K")
|
||||||
|
MapScaleType scale,
|
||||||
|
@Parameter(
|
||||||
|
description = "변화탐지 년도(차수) /year-list 의 uuid",
|
||||||
|
example = "8584e8d4-53b3-4582-bde2-28a81495a626")
|
||||||
|
@RequestParam
|
||||||
|
UUID uuid) {
|
||||||
|
return ApiResponseDto.ok(
|
||||||
|
changeDetectionService.getChangeDetectionMapSheetList(type, scale, uuid));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "변화탐지 결과 Polygon", description = "변화탐지 결과 Polygon")
|
@Operation(summary = "변화탐지 결과 Polygon", description = "변화탐지 결과 Polygon")
|
||||||
@GetMapping("/polygon")
|
@GetMapping("/polygon")
|
||||||
public ApiResponseDto<ChangeDetectionDto.PolygonFeatureList> getChangeDetectionPolygonList(
|
public ApiResponseDto<ChangeDetectionDto.PolygonFeatureList> getChangeDetectionPolygonList(
|
||||||
@Parameter(description = "년도목록 id", example = "53") @RequestParam Long analUid,
|
@Parameter(description = "도곽/일반(MAPSHEET/ADDRESS) 검색 타입", required = true)
|
||||||
@Parameter(description = "도엽번호", example = "35905086") @RequestParam String mapSheetNum) {
|
@RequestParam(defaultValue = "MAPSHEET")
|
||||||
|
DetectSearchType type,
|
||||||
|
@Parameter(description = "5k/50k 구분(SCALE_5K/SCALE_50K))", required = true)
|
||||||
|
@RequestParam(defaultValue = "SCALE_50K")
|
||||||
|
MapScaleType scale,
|
||||||
|
@Parameter(
|
||||||
|
description = "변화탐지 년도(차수) /year-list 의 uuid",
|
||||||
|
example = "8584e8d4-53b3-4582-bde2-28a81495a626")
|
||||||
|
UUID uuid,
|
||||||
|
@Parameter(description = "도엽번호", example = "34607") @RequestParam String mapSheetNum) {
|
||||||
return ApiResponseDto.ok(
|
return ApiResponseDto.ok(
|
||||||
changeDetectionService.getChangeDetectionPolygonList(analUid, mapSheetNum));
|
changeDetectionService.getChangeDetectionPolygonList(type, scale, uuid, mapSheetNum));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "변화탐지 결과 Point", description = "변화탐지 결과 Point")
|
@Operation(summary = "변화탐지 결과 Point", description = "변화탐지 결과 Point")
|
||||||
@GetMapping("/point")
|
@GetMapping("/point")
|
||||||
public ApiResponseDto<ChangeDetectionDto.PointFeatureList> getChangeDetectionPointList(
|
public ApiResponseDto<ChangeDetectionDto.PointFeatureList> getChangeDetectionPointList(
|
||||||
@Parameter(description = "년도목록 id", example = "53") @RequestParam Long analUid,
|
@Parameter(description = "도곽/일반(MAPSHEET/ADDRESS) 검색 타입", required = true)
|
||||||
@Parameter(description = "도엽번호", example = "35905086") @RequestParam String mapSheetNum) {
|
@RequestParam(defaultValue = "MAPSHEET")
|
||||||
|
DetectSearchType type,
|
||||||
|
@Parameter(description = "5k/50k 구분(SCALE_5K/SCALE_50K))", required = true)
|
||||||
|
@RequestParam(defaultValue = "SCALE_50K")
|
||||||
|
MapScaleType scale,
|
||||||
|
@Parameter(
|
||||||
|
description = "변화탐지 년도(차수) /year-list 의 uuid",
|
||||||
|
example = "8584e8d4-53b3-4582-bde2-28a81495a626")
|
||||||
|
UUID uuid,
|
||||||
|
@Parameter(description = "도엽번호", example = "34607") @RequestParam String mapSheetNum) {
|
||||||
return ApiResponseDto.ok(
|
return ApiResponseDto.ok(
|
||||||
changeDetectionService.getChangeDetectionPointList(analUid, mapSheetNum));
|
changeDetectionService.getChangeDetectionPointList(type, scale, uuid, mapSheetNum));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package com.kamco.cd.kamcoback.changedetection.dto;
|
package com.kamco.cd.kamcoback.changedetection.dto;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.kamco.cd.kamcoback.common.utils.enums.CodeExpose;
|
||||||
|
import com.kamco.cd.kamcoback.common.utils.enums.EnumType;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -11,6 +14,46 @@ import org.locationtech.jts.geom.Geometry;
|
|||||||
|
|
||||||
public class ChangeDetectionDto {
|
public class ChangeDetectionDto {
|
||||||
|
|
||||||
|
@CodeExpose
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum DetectSearchType implements EnumType {
|
||||||
|
MAPSHEET("도곽"),
|
||||||
|
ADDRESS("주소");
|
||||||
|
|
||||||
|
private String desc;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getText() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@CodeExpose
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum MapScaleType implements EnumType {
|
||||||
|
SCALE_5K("1:5000"),
|
||||||
|
SCALE_50K("1:50000");
|
||||||
|
|
||||||
|
private String desc;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getText() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Schema(name = "TestDto", description = "테스트용")
|
@Schema(name = "TestDto", description = "테스트용")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -46,6 +89,8 @@ public class ChangeDetectionDto {
|
|||||||
private Integer beforeYear;
|
private Integer beforeYear;
|
||||||
private Integer afterYear;
|
private Integer afterYear;
|
||||||
private String mapSheetNum;
|
private String mapSheetNum;
|
||||||
|
private DetectSearchType type;
|
||||||
|
private MapScaleType scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Schema(name = "CogUrlDto", description = "COG Url 정보")
|
@Schema(name = "CogUrlDto", description = "COG Url 정보")
|
||||||
@@ -79,6 +124,7 @@ public class ChangeDetectionDto {
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public static class AnalYearList {
|
public static class AnalYearList {
|
||||||
|
|
||||||
|
private UUID uuid;
|
||||||
private Long analUid;
|
private Long analUid;
|
||||||
private String analTitle;
|
private String analTitle;
|
||||||
private Integer beforeYear;
|
private Integer beforeYear;
|
||||||
|
|||||||
@@ -2,8 +2,11 @@ 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.DetectSearchType;
|
||||||
|
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;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -22,8 +25,16 @@ public class ChangeDetectionService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
public List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
||||||
Long id, String mapSheetNum) {
|
DetectSearchType type, MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
return changeDetectionCoreService.getChangeDetectionClassCount(id, mapSheetNum);
|
switch (type) {
|
||||||
|
case MAPSHEET -> {
|
||||||
|
return changeDetectionCoreService.getChangeDetectionClassCount(scale, uuid, mapSheetNum);
|
||||||
|
}
|
||||||
|
case ADDRESS -> {
|
||||||
|
return List.of(); // TODO: 일반 주소 검색 로직 확인 후 작업 필요
|
||||||
|
}
|
||||||
|
default -> throw new IllegalArgumentException("Unsupported type: " + type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req) {
|
public ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req) {
|
||||||
@@ -35,18 +46,47 @@ public class ChangeDetectionService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
public ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
||||||
Long analUid, String mapSheetNum) {
|
DetectSearchType type, MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
|
switch (type) {
|
||||||
return changeDetectionCoreService.getChangeDetectionPolygonList(analUid, mapSheetNum);
|
case MAPSHEET -> {
|
||||||
|
return changeDetectionCoreService.getChangeDetectionPolygonList(scale, uuid, mapSheetNum);
|
||||||
|
}
|
||||||
|
case ADDRESS -> {
|
||||||
|
return new ChangeDetectionDto.PolygonFeatureList(); // TODO: 일반 주소 검색 로직 확인 후 작업 필요
|
||||||
|
}
|
||||||
|
default -> throw new IllegalArgumentException("Unsupported type: " + type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Geometry 객체 순환 참조 문제로 캐싱 불가
|
// Geometry 객체 순환 참조 문제로 캐싱 불가
|
||||||
public ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
public ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
||||||
Long analUid, String mapSheetNum) {
|
DetectSearchType type, MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
return changeDetectionCoreService.getChangeDetectionPointList(analUid, mapSheetNum);
|
|
||||||
|
switch (type) {
|
||||||
|
case MAPSHEET -> {
|
||||||
|
return changeDetectionCoreService.getChangeDetectionPointList(scale, uuid, mapSheetNum);
|
||||||
|
}
|
||||||
|
case ADDRESS -> {
|
||||||
|
return new ChangeDetectionDto.PointFeatureList(); // TODO: 일반 주소 검색 로직 확인 후 작업 필요
|
||||||
|
}
|
||||||
|
default -> throw new IllegalArgumentException("Unsupported type: " + type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(Long analUid) {
|
public List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(
|
||||||
return changeDetectionCoreService.getChangeDetectionMapSheetList(analUid);
|
DetectSearchType type, MapScaleType scale, UUID uuid) {
|
||||||
|
switch (type) {
|
||||||
|
case MAPSHEET -> {
|
||||||
|
return switch (scale) {
|
||||||
|
case SCALE_5K -> changeDetectionCoreService.getChangeDetectionMapSheetList(uuid);
|
||||||
|
case SCALE_50K -> changeDetectionCoreService.getChangeDetectionMapSheet50kList(uuid);
|
||||||
|
default -> throw new IllegalArgumentException("Unsupported scale: " + scale);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case ADDRESS -> {
|
||||||
|
return List.of(); // TODO: 일반 주소 검색 로직 확인 후 작업 필요
|
||||||
|
}
|
||||||
|
default -> throw new IllegalArgumentException("Unsupported type: " + type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,13 @@ 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.MapScaleType;
|
||||||
|
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.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;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.locationtech.jts.geom.Geometry;
|
import org.locationtech.jts.geom.Geometry;
|
||||||
@@ -53,9 +56,9 @@ public class ChangeDetectionCoreService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
public List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
||||||
Long id, String mapSheetNum) {
|
MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
List<ChangeDetectionDto.CountDto> list =
|
List<ChangeDetectionDto.CountDto> list =
|
||||||
changeDetectionRepository.getChangeDetectionClassCount(id, mapSheetNum);
|
changeDetectionRepository.getChangeDetectionClassCount(scale, uuid, mapSheetNum);
|
||||||
|
|
||||||
return list.stream()
|
return list.stream()
|
||||||
.map(
|
.map(
|
||||||
@@ -77,25 +80,20 @@ public class ChangeDetectionCoreService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
public ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
||||||
Long analUid, String mapSheetNum) {
|
MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
return changeDetectionRepository.getChangeDetectionPolygonList(analUid, mapSheetNum);
|
return changeDetectionRepository.getChangeDetectionPolygonList(scale, uuid, mapSheetNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
public ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
||||||
Long analUid, String mapSheetNum) {
|
MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
return changeDetectionRepository.getChangeDetectionPointList(analUid, mapSheetNum);
|
return changeDetectionRepository.getChangeDetectionPointList(scale, uuid, mapSheetNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(Long analUid) {
|
public List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(UUID uuid) {
|
||||||
List<ChangeDetectionDto.MapSheetList> list =
|
return changeDetectionRepository.getChangeDetectionMapSheetList(uuid);
|
||||||
changeDetectionRepository.getChangeDetectionMapSheetList(analUid);
|
}
|
||||||
return list.stream()
|
|
||||||
.map(
|
public List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid) {
|
||||||
s -> {
|
return changeDetectionRepository.getChangeDetectionMapSheet50kList(uuid);
|
||||||
String name = s.getMapSheetName();
|
|
||||||
s.setAlias(name + s.getMapSheetNum().substring(5, 8));
|
|
||||||
return s;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
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.MapScaleType;
|
||||||
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public interface ChangeDetectionRepositoryCustom {
|
public interface ChangeDetectionRepositoryCustom {
|
||||||
|
|
||||||
@@ -9,16 +12,20 @@ public interface ChangeDetectionRepositoryCustom {
|
|||||||
|
|
||||||
List<String> findPolygonJson();
|
List<String> findPolygonJson();
|
||||||
|
|
||||||
List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(Long id, String mapSheetNum);
|
List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
||||||
|
MapScaleType scale, UUID uuid, String mapSheetNum);
|
||||||
|
|
||||||
ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req);
|
ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req);
|
||||||
|
|
||||||
List<ChangeDetectionDto.AnalYearList> getChangeDetectionYearList();
|
List<ChangeDetectionDto.AnalYearList> getChangeDetectionYearList();
|
||||||
|
|
||||||
ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
||||||
Long analUid, String mapSheetNum);
|
MapScaleType scale, UUID uuid, String mapSheetNum);
|
||||||
|
|
||||||
ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(Long analUid, String mapSheetNum);
|
ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
||||||
|
MapScaleType scale, UUID uuid, String mapSheetNum);
|
||||||
|
|
||||||
List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(Long analUid);
|
List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(UUID uuid);
|
||||||
|
|
||||||
|
List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.kamco.cd.kamcoback.postgres.repository.changedetection;
|
package com.kamco.cd.kamcoback.postgres.repository.changedetection;
|
||||||
|
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QDemoLearningAnalysisSceneItemEntity.demoLearningAnalysisSceneItemEntity;
|
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QImageryEntity.imageryEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QImageryEntity.imageryEntity;
|
||||||
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx50kEntity.mapInkx50kEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx5kEntity.mapInkx5kEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx5kEntity.mapInkx5kEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceEntity.mapSheetAnalDataInferenceEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceEntity.mapSheetAnalDataInferenceEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceGeomEntity.mapSheetAnalDataInferenceGeomEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceGeomEntity.mapSheetAnalDataInferenceGeomEntity;
|
||||||
@@ -12,14 +12,19 @@ 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.MapScaleType;
|
||||||
|
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto.MapSheetList;
|
||||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity;
|
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity;
|
||||||
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.CaseBuilder;
|
import com.querydsl.core.types.dsl.CaseBuilder;
|
||||||
import com.querydsl.core.types.dsl.Expressions;
|
import com.querydsl.core.types.dsl.Expressions;
|
||||||
import com.querydsl.core.types.dsl.StringExpression;
|
import com.querydsl.core.types.dsl.StringExpression;
|
||||||
|
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.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;
|
||||||
|
|
||||||
@@ -52,7 +57,7 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
public List<ChangeDetectionDto.CountDto> getChangeDetectionClassCount(
|
||||||
Long id, String mapSheetNum) {
|
MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
Projections.constructor(
|
Projections.constructor(
|
||||||
@@ -66,12 +71,44 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
.innerJoin(mapSheetAnalSttcEntity)
|
.innerJoin(mapSheetAnalSttcEntity)
|
||||||
.on(mapSheetAnalSttcEntity.id.dataUid.eq(mapSheetAnalDataInferenceEntity.id))
|
.on(mapSheetAnalSttcEntity.id.dataUid.eq(mapSheetAnalDataInferenceEntity.id))
|
||||||
.where(
|
.where(
|
||||||
mapSheetAnalInferenceEntity.id.eq(id),
|
mapSheetAnalInferenceEntity.uuid.eq(uuid),
|
||||||
mapSheetAnalSttcEntity.id.mapSheetNum.eq(Long.valueOf(mapSheetNum)))
|
mapScaleTypeSearchExpression(scale, mapSheetNum))
|
||||||
.groupBy(mapSheetAnalSttcEntity.id.classAfterCd)
|
.groupBy(mapSheetAnalSttcEntity.id.classAfterCd)
|
||||||
.fetch();
|
.fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BooleanExpression mapScaleTypeSearchExpression(MapScaleType scale, String mapSheetNum) {
|
||||||
|
if (scale.equals(MapScaleType.SCALE_5K)) {
|
||||||
|
return mapSheetAnalSttcEntity.id.mapSheetNum.eq(Long.valueOf(mapSheetNum));
|
||||||
|
} else {
|
||||||
|
return mapSheetAnalSttcEntity
|
||||||
|
.id
|
||||||
|
.mapSheetNum
|
||||||
|
.stringValue()
|
||||||
|
.in(
|
||||||
|
JPAExpressions.select(mapInkx5kEntity.mapidcdNo)
|
||||||
|
.from(mapInkx5kEntity)
|
||||||
|
.innerJoin(mapInkx5kEntity.mapInkx50k, mapInkx50kEntity)
|
||||||
|
.where(mapInkx50kEntity.mapidcdNo.eq(mapSheetNum)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private BooleanExpression mapScaleTypeAnalDataSearchExpression(
|
||||||
|
MapScaleType scale, String mapSheetNum) {
|
||||||
|
if (scale.equals(MapScaleType.SCALE_5K)) {
|
||||||
|
return mapSheetAnalDataInferenceGeomEntity.mapSheetNum.eq(Long.valueOf(mapSheetNum));
|
||||||
|
} else {
|
||||||
|
return mapSheetAnalDataInferenceGeomEntity
|
||||||
|
.mapSheetNum
|
||||||
|
.stringValue()
|
||||||
|
.in(
|
||||||
|
JPAExpressions.select(mapInkx5kEntity.mapidcdNo)
|
||||||
|
.from(mapInkx5kEntity)
|
||||||
|
.innerJoin(mapInkx5kEntity.mapInkx50k, mapInkx50kEntity)
|
||||||
|
.where(mapInkx50kEntity.mapidcdNo.eq(mapSheetNum)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req) {
|
public ChangeDetectionDto.CogUrlDto getChangeDetectionCogUrl(ChangeDetectionDto.CogUrlReq req) {
|
||||||
ChangeDetectionDto.CogUrlData data =
|
ChangeDetectionDto.CogUrlData data =
|
||||||
@@ -114,6 +151,7 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
.select(
|
.select(
|
||||||
Projections.constructor(
|
Projections.constructor(
|
||||||
ChangeDetectionDto.AnalYearList.class,
|
ChangeDetectionDto.AnalYearList.class,
|
||||||
|
mapSheetAnalInferenceEntity.uuid,
|
||||||
mapSheetAnalInferenceEntity.id,
|
mapSheetAnalInferenceEntity.id,
|
||||||
mapSheetAnalInferenceEntity.analTitle,
|
mapSheetAnalInferenceEntity.analTitle,
|
||||||
mapSheetAnalInferenceEntity.compareYyyy.as("beforeYear"),
|
mapSheetAnalInferenceEntity.compareYyyy.as("beforeYear"),
|
||||||
@@ -126,7 +164,7 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
public ChangeDetectionDto.PolygonFeatureList getChangeDetectionPolygonList(
|
||||||
Long analUid, String mapSheetNum) {
|
MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
|
|
||||||
List<ChangeDetectionDto.PolygonQueryData> list =
|
List<ChangeDetectionDto.PolygonQueryData> list =
|
||||||
queryFactory
|
queryFactory
|
||||||
@@ -151,8 +189,8 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
.innerJoin(mapSheetAnalInferenceEntity)
|
.innerJoin(mapSheetAnalInferenceEntity)
|
||||||
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
||||||
.where(
|
.where(
|
||||||
mapSheetAnalInferenceEntity.id.eq(analUid),
|
mapSheetAnalInferenceEntity.uuid.eq(uuid),
|
||||||
mapSheetAnalDataInferenceGeomEntity.mapSheetNum.eq(Long.valueOf(mapSheetNum)))
|
mapScaleTypeAnalDataSearchExpression(scale, mapSheetNum))
|
||||||
.fetch();
|
.fetch();
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
@@ -193,7 +231,7 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
public ChangeDetectionDto.PointFeatureList getChangeDetectionPointList(
|
||||||
Long analUid, String mapSheetNum) {
|
MapScaleType scale, UUID uuid, String mapSheetNum) {
|
||||||
List<ChangeDetectionDto.PointQueryData> list =
|
List<ChangeDetectionDto.PointQueryData> list =
|
||||||
queryFactory
|
queryFactory
|
||||||
.select(
|
.select(
|
||||||
@@ -213,8 +251,8 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
.innerJoin(mapSheetAnalInferenceEntity)
|
.innerJoin(mapSheetAnalInferenceEntity)
|
||||||
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
||||||
.where(
|
.where(
|
||||||
mapSheetAnalInferenceEntity.id.eq(analUid),
|
mapSheetAnalInferenceEntity.uuid.eq(uuid),
|
||||||
mapSheetAnalDataInferenceGeomEntity.mapSheetNum.eq(Long.valueOf(mapSheetNum)))
|
mapScaleTypeAnalDataSearchExpression(scale, mapSheetNum))
|
||||||
.fetch();
|
.fetch();
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
@@ -239,20 +277,43 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(Long analUid) {
|
public List<ChangeDetectionDto.MapSheetList> getChangeDetectionMapSheetList(UUID uuid) {
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
Projections.constructor(
|
Projections.constructor(
|
||||||
ChangeDetectionDto.MapSheetList.class,
|
ChangeDetectionDto.MapSheetList.class,
|
||||||
mapInkx5kEntity.mapidcdNo,
|
mapInkx5kEntity.mapidcdNo,
|
||||||
mapInkx5kEntity.mapidNm,
|
mapInkx5kEntity.mapidNm,
|
||||||
mapInkx5kEntity.mapidNm // alias 앞단 core에서
|
Expressions.stringTemplate(
|
||||||
))
|
"concat({0}, ' ', {1})", mapInkx5kEntity.mapidNm, mapInkx5kEntity.mapidcdNo)))
|
||||||
.from(demoLearningAnalysisSceneItemEntity)
|
.from(mapSheetAnalInferenceEntity)
|
||||||
|
.innerJoin(mapSheetAnalDataInferenceEntity)
|
||||||
|
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
||||||
.innerJoin(mapInkx5kEntity)
|
.innerJoin(mapInkx5kEntity)
|
||||||
.on(demoLearningAnalysisSceneItemEntity.fid.eq(mapInkx5kEntity.fid.longValue()))
|
.on(mapSheetAnalDataInferenceEntity.mapSheetNum.stringValue().eq(mapInkx5kEntity.mapidcdNo))
|
||||||
.where(demoLearningAnalysisSceneItemEntity.groupId.eq(analUid))
|
.where(mapSheetAnalInferenceEntity.uuid.eq(uuid))
|
||||||
.orderBy(mapInkx5kEntity.mapidNm.asc(), mapInkx5kEntity.mapidcdNo.asc())
|
.orderBy(mapInkx5kEntity.mapidcdNo.asc())
|
||||||
|
.fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MapSheetList> getChangeDetectionMapSheet50kList(UUID uuid) {
|
||||||
|
return queryFactory
|
||||||
|
.select(
|
||||||
|
Projections.constructor(
|
||||||
|
ChangeDetectionDto.MapSheetList.class,
|
||||||
|
mapInkx50kEntity.mapidcdNo,
|
||||||
|
mapInkx50kEntity.mapidNm,
|
||||||
|
Expressions.stringTemplate(
|
||||||
|
"concat({0}, ' ', {1})", mapInkx50kEntity.mapidNm, mapInkx50kEntity.mapidcdNo)))
|
||||||
|
.from(mapSheetAnalInferenceEntity)
|
||||||
|
.innerJoin(mapSheetAnalDataInferenceEntity)
|
||||||
|
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
||||||
|
.innerJoin(mapInkx5kEntity)
|
||||||
|
.on(mapSheetAnalDataInferenceEntity.mapSheetNum.stringValue().eq(mapInkx5kEntity.mapidcdNo))
|
||||||
|
.innerJoin(mapInkx5kEntity.mapInkx50k, mapInkx50kEntity)
|
||||||
|
.where(mapSheetAnalInferenceEntity.uuid.eq(uuid))
|
||||||
|
.orderBy(mapInkx5kEntity.mapidcdNo.asc())
|
||||||
.fetch();
|
.fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.postgres.repository.label;
|
|||||||
import static com.kamco.cd.kamcoback.postgres.entity.QLabelingAssignmentEntity.labelingAssignmentEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QLabelingAssignmentEntity.labelingAssignmentEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QLabelingInspectorEntity.labelingInspectorEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QLabelingInspectorEntity.labelingInspectorEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QLabelingLabelerEntity.labelingLabelerEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QLabelingLabelerEntity.labelingLabelerEntity;
|
||||||
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceEntity.mapSheetAnalDataInferenceEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceGeomEntity.mapSheetAnalDataInferenceGeomEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceGeomEntity.mapSheetAnalDataInferenceGeomEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity.mapSheetAnalInferenceEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity.mapSheetAnalInferenceEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMemberEntity.memberEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMemberEntity.memberEntity;
|
||||||
@@ -537,11 +538,15 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
|
|||||||
labelingTargetCount =
|
labelingTargetCount =
|
||||||
queryFactory
|
queryFactory
|
||||||
.select(mapSheetAnalDataInferenceGeomEntity.geoUid.count())
|
.select(mapSheetAnalDataInferenceGeomEntity.geoUid.count())
|
||||||
.from(mapSheetAnalDataInferenceGeomEntity)
|
.from(mapSheetAnalInferenceEntity)
|
||||||
|
.innerJoin(mapSheetAnalDataInferenceEntity)
|
||||||
|
.on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid))
|
||||||
|
.innerJoin(mapSheetAnalDataInferenceGeomEntity)
|
||||||
|
.on(
|
||||||
|
mapSheetAnalDataInferenceEntity.id.eq(
|
||||||
|
mapSheetAnalDataInferenceGeomEntity.dataUid))
|
||||||
.where(
|
.where(
|
||||||
mapSheetAnalDataInferenceGeomEntity.compareYyyy.eq(analEntity.getCompareYyyy()),
|
mapSheetAnalInferenceEntity.uuid.eq(targetUuid),
|
||||||
mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(analEntity.getTargetYyyy()),
|
|
||||||
mapSheetAnalDataInferenceGeomEntity.stage.eq(analEntity.getStage()),
|
|
||||||
mapSheetAnalDataInferenceGeomEntity.pnu.gt(0L),
|
mapSheetAnalDataInferenceGeomEntity.pnu.gt(0L),
|
||||||
mapSheetAnalDataInferenceGeomEntity.passYn.isFalse())
|
mapSheetAnalDataInferenceGeomEntity.passYn.isFalse())
|
||||||
.fetchOne();
|
.fetchOne();
|
||||||
|
|||||||
Reference in New Issue
Block a user