review-to-json 커밋

This commit is contained in:
2026-02-25 15:27:36 +09:00
parent 7ac03692e9
commit a419bd2768
229 changed files with 2044 additions and 1117 deletions

View File

@@ -9,5 +9,4 @@ public class TrainingDataReviewApplication {
public static void main(String[] args) {
SpringApplication.run(TrainingDataReviewApplication.class, args);
}
}

View File

@@ -15,7 +15,8 @@ public class TrainingDataReviewController {
private final TrainingDataReviewJobService trainingDataReviewJobService;
@GetMapping("/review-to-geojson")
public ApiResponseDto<Long> runExportGeojsonLabelingGeom(@RequestParam(required = false) LocalDate baseDate) {
public ApiResponseDto<Long> runExportGeojsonLabelingGeom(
@RequestParam(required = false) LocalDate baseDate) {
trainingDataReviewJobService.exportGeojsonLabelingGeom(baseDate);
return ApiResponseDto.ok(0L);
}

View File

@@ -154,19 +154,16 @@ public class InferenceResultDto {
private Long detectingCnt;
// 시작일시
@JsonFormatDttm
private ZonedDateTime startTime;
@JsonFormatDttm private ZonedDateTime startTime;
// 종료일시
@JsonFormatDttm
private ZonedDateTime endTime;
@JsonFormatDttm private ZonedDateTime endTime;
// 반영여부
private Boolean applyYn;
// 반영일시
@JsonFormatDttm
private ZonedDateTime applyDttm;
@JsonFormatDttm private ZonedDateTime applyDttm;
// 비교년도
private Integer compareYyyy;
@@ -242,28 +239,22 @@ public class InferenceResultDto {
public static class RegReq {
// 제목
@NotBlank
private String title;
@NotBlank private String title;
// G1
@NotNull
private UUID model1Uuid;
@NotNull private UUID model1Uuid;
// G2
@NotNull
private UUID model2Uuid;
@NotNull private UUID model2Uuid;
// G3
@NotNull
private UUID model3Uuid;
@NotNull private UUID model3Uuid;
// 비교년도
@NotNull
private Integer compareYyyy;
@NotNull private Integer compareYyyy;
// 탐지년도
@NotNull
private Integer targetYyyy;
@NotNull private Integer targetYyyy;
// 분석대상 도엽 - 전체(ALL), 부분(PART)
@NotBlank
@@ -278,8 +269,7 @@ public class InferenceResultDto {
private String detectOption;
// 5k 도협 번호 목록
@NotNull
private List<String> mapSheetNum;
@NotNull private List<String> mapSheetNum;
}
@Getter
@@ -297,28 +287,22 @@ public class InferenceResultDto {
public static class InferenceStatusDetailDto {
// 모델1 사용시간 시작일시
@JsonFormatDttm
ZonedDateTime m1ModelStartDttm;
@JsonFormatDttm ZonedDateTime m1ModelStartDttm;
// 모델2 사용시간 시작일시
@JsonFormatDttm
ZonedDateTime m2ModelStartDttm;
@JsonFormatDttm ZonedDateTime m2ModelStartDttm;
// 모델3 사용시간 시작일시
@JsonFormatDttm
ZonedDateTime m3ModelStartDttm;
@JsonFormatDttm ZonedDateTime m3ModelStartDttm;
// 모델1 사용시간 종료일시
@JsonFormatDttm
ZonedDateTime m1ModelEndDttm;
@JsonFormatDttm ZonedDateTime m1ModelEndDttm;
// 모델2 사용시간 종료일시
@JsonFormatDttm
ZonedDateTime m2ModelEndDttm;
@JsonFormatDttm ZonedDateTime m2ModelEndDttm;
// 모델3 사용시간 종료일시
@JsonFormatDttm
ZonedDateTime m3ModelEndDttm;
@JsonFormatDttm ZonedDateTime m3ModelEndDttm;
// 탐지대상 도엽수
private Long detectingCnt;
@@ -372,12 +356,10 @@ public class InferenceResultDto {
private Integer stage;
// 변화탐지 시작
@JsonFormatDttm
private ZonedDateTime inferStartDttm;
@JsonFormatDttm private ZonedDateTime inferStartDttm;
// 변화탐지 종료
@JsonFormatDttm
private ZonedDateTime inferEndDttm;
@JsonFormatDttm private ZonedDateTime inferEndDttm;
// 변화탐지 옵션
private String detectOption;
@@ -395,8 +377,7 @@ public class InferenceResultDto {
private String modelVer3;
// 탑지 도엽 수
@JsonIgnore
private Long totalJobs;
@JsonIgnore private Long totalJobs;
public InferenceStatusDetailDto(
Long detectingCnt,
@@ -667,4 +648,4 @@ public class InferenceResultDto {
private Long m2ModelBatchId;
private Long m3ModelBatchId;
}
}
}

View File

@@ -344,4 +344,4 @@ public class LabelAllocateDto {
// 기준일자
private LocalDate baseDate;
}
}
}

View File

@@ -2,7 +2,6 @@ package com.kamcoback.cd.review.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.core.JsonProcessingException;
import java.util.List;
import java.util.UUID;
import lombok.AllArgsConstructor;

View File

@@ -1,8 +1,8 @@
package com.kamcoback.cd.review.postgres.repository;
import static com.kamcoback.cd.review.postgres.entity.QLabelingAssignmentEntity.labelingAssignmentEntity;
import static com.kamcoback.cd.review.postgres.entity.QMapSheetLearnDataGeomEntity.mapSheetLearnDataGeomEntity;
import static com.kamcoback.cd.review.postgres.entity.QMapSheetAnalInferenceEntity.mapSheetAnalInferenceEntity;
import static com.kamcoback.cd.review.postgres.entity.QMapSheetLearnDataGeomEntity.mapSheetLearnDataGeomEntity;
import static com.kamcoback.cd.review.postgres.entity.QMapSheetLearnEntity.mapSheetLearnEntity;
import com.kamcoback.cd.review.dto.LabelAllocateDto.InspectState;

View File

@@ -40,7 +40,6 @@ public class TrainingDataReviewJobService {
return "local".equalsIgnoreCase(profile);
}
@Scheduled(cron = "0 0 2 * * *")
public void runTask() {
exportGeojsonLabelingGeom(null);
@@ -48,13 +47,14 @@ public class TrainingDataReviewJobService {
@Transactional
public void exportGeojsonLabelingGeom(LocalDate baseDate) {
//
// if (isLocalProfile()) {
// return;
// }
//
// if (isLocalProfile()) {
// return;
// }
// 1) 경로/파일명 결정
String targetDir = "local".equals(profile) ? System.getProperty("user.home") + "/geojson" : trainingDataDir;
String targetDir =
"local".equals(profile) ? System.getProperty("user.home") + "/geojson" : trainingDataDir;
// 2) 진행중인 회차 중, complete_cnt 가 존재하는 회차 목록 가져오기
List<AnalCntInfo> analList = trainingDataReviewJobCoreService.findAnalCntInfoList();

View File

@@ -22,7 +22,7 @@ spring:
request-timeout: 300s # 5분 (예: 30s, 120s, 10m 등도 가능)
datasource:
url: jdbc:postgresql://127.0.0.1:15432/kamco_cds
url: jdbc:postgresql://kamco-cd-postgis:5432/kamco_cds
#url: jdbc:postgresql://localhost:15432/kamco_cds
username: kamco_cds
password: kamco_cds_Q!W@E#R$
@@ -55,10 +55,68 @@ server:
max-swallow-size: 4GB
max-http-form-post-size: 4GB
jwt:
secret: "kamco_token_9b71e778-19a3-4c1d-97bf-2d687de17d5b"
access-token-validity-in-ms: 86400000 # 1일
refresh-token-validity-in-ms: 604800000 # 7일
token:
refresh-cookie-name: kamco # 개발용 쿠키 이름
refresh-cookie-secure: true # 로컬 http 테스트면 false
logging:
level:
root: INFO
org.springframework.web: DEBUG
org.springframework.security: DEBUG
# 헬스체크 노이즈 핵심만 다운
org.springframework.security.web.FilterChainProxy: INFO
org.springframework.security.web.authentication.AnonymousAuthenticationFilter: INFO
org.springframework.security.web.authentication.Http403ForbiddenEntryPoint: INFO
org.springframework.web.servlet.DispatcherServlet: INFO
mapsheet:
upload:
skipGdalValidation: true
shp:
baseurl: /app/detect/result #현재사용안함
file:
sync-root-dir: /kamco-nfs/images/
sync-tmp-dir: /kamco-nfs/repo/tmp # image upload temp dir
sync-file-extention: tfw,tif
#dataset-dir: D:/kamco-nfs/model_output/ #변경 model_output
dataset-dir: /kamco-nfs/model_output/export/ # 마운트경로 AI 추론결과
dataset-tmp-dir: ${file.dataset-dir}tmp/
#model-dir: D:/kamco-nfs/ckpt/model/
model-dir: /kamco-nfs/ckpt/model/ # 학습서버에서 트레이닝한 모델업로드경로
model-tmp-dir: ${file.model-dir}tmp/
model-file-extention: pth,json,py
pt-path: /kamco-nfs/ckpt/v6-cls-checkpoints/
pt-FileName: yolov8_6th-6m.pt
dataset-response: /kamco-nfs/dataset/response/
inference:
url: http://127.0.0.1:8000/jobs
batch-url: http://127.0.0.1:8000/batches
geojson-dir: /kamco-nfs/requests/ # 학습서버에서 트레이닝한 모델업로드경로
jar-path: /kamco-nfs/repo/jar/shp-exporter.jar # 추론실행을 위한 파일생성경로
inference-server-name: server1,server2,server3,server4
gukyuin:
url: http://127.0.0.1:5301
cdi: ${gukyuin.url}/api/kcd/cdi
training-data:
geojson-dir: /kamco-nfs/dataset/request/
geojson-dir: /kamco-nfs/dataset/request/
layer:
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
wms-path: geoserver/cd
wmts-path: geoserver/cd/gwc/service
workspace: cd

View File

@@ -3,9 +3,9 @@ server:
spring:
application:
name: kamco-change-detection-api
name: kamco-review-to-geojson
profiles:
active: local # 사용할 프로파일 지정 (ex. dev, prod, test)
active: prod # 사용할 프로파일 지정 (ex. dev, prod, test)
datasource:
driver-class-name: org.postgresql.Driver