diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java index b3ac5984..49e0591c 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java @@ -279,7 +279,9 @@ public class FIleChecker { return true; } - public static List getFolderAll(String dirPath, String sortType, int maxDepth) { + // kamco-nfs를 확인하는곳이 있어서 파라미터 추가 사용용도확인후 처리 + public static List getFolderAll( + String dirPath, String sortType, int maxDepth, String nfsRootDir) { Path startPath = Paths.get(dirPath); @@ -308,8 +310,12 @@ public class FIleChecker { String parentPath = path.getParent().toString(); String fullPath = path.toAbsolutePath().toString(); + // 이것이 필요한건가? + // boolean isShowHide = + // !parentFolderNm.equals("kamco-nfs"); // 폴더 리스트에 + // kamco-nfs 하위만 나오도록 처리 boolean isShowHide = - !parentFolderNm.equals("kamco-nfs"); // 폴더 리스트에 kamco-nfs 하위만 나오도록 처리 + !parentFolderNm.equals(nfsRootDir); // 폴더 리스트에 nfsRootDir 하위만 나오도록 처리 File file = new File(fullPath); int childCnt = getChildFolderCount(file); String lastModified = getLastModified(file); @@ -357,8 +363,8 @@ public class FIleChecker { return folderList; } - public static List getFolderAll(String dirPath) { - return getFolderAll(dirPath, "name", 1); + public static List getFolderAll(String dirPath, String nfsRootDir) { + return getFolderAll(dirPath, "name", 1, nfsRootDir); } public static int getChildFolderCount(File directory) { diff --git a/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/ChngDetectMastDto.java b/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/ChngDetectMastDto.java index 67ab78da..182c3a88 100644 --- a/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/ChngDetectMastDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/gukyuin/dto/ChngDetectMastDto.java @@ -83,7 +83,7 @@ public class ChngDetectMastDto { @Schema( description = "탐지결과 절대경로명 /kamco_nas/export/{chnDtctId}", - example = "/kamco-nfs/dataset/export/D5F192EC76D34F6592035BE63A84F591") + example = "{file.nfs}/dataset/export/D5F192EC76D34F6592035BE63A84F591") private String pathNm; @Schema(description = "사원번호", example = "123456") diff --git a/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java b/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java index 72bd084d..d9c502bf 100644 --- a/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java +++ b/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java @@ -66,8 +66,11 @@ public class GukYuinApiService { @Value("${gukyuin.cdi}") private String gukyuinCdiUrl; - @Value("${file.dataset-dir}") - private String datasetDir; + @Value("${file.nfs}") + private String nfs; + + // @Value("${file.dataset-dir}") + // private String datasetDir; @Transactional public ChngDetectMastDto.RegistResDto regist( @@ -453,7 +456,10 @@ public class GukYuinApiService { return new ResponseObj(ApiResponseCode.DUPLICATE_DATA, "이미 국유인 연동을 한 회차입니다."); } - if (!Files.isDirectory(Path.of(datasetDir + info.getUid()))) { + // String kamconfsDatasetExportPathfsDatasetExportPath = "/kamco-nfs/dataset/export/"; + String kamconfsDatasetExportPathfsDatasetExportPath = + String.format("%s%s", nfs, "/dataset/export/"); + if (!Files.isDirectory(Path.of(kamconfsDatasetExportPathfsDatasetExportPath + info.getUid()))) { return new ResponseObj( ApiResponseCode.NOT_FOUND_DATA, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다."); } @@ -468,7 +474,7 @@ public class GukYuinApiService { reqDto.setCrtrYr(String.valueOf(info.getTargetYyyy())); reqDto.setChnDtctSno(String.valueOf(maxStage + 1)); reqDto.setChnDtctId(info.getUid()); - reqDto.setPathNm(datasetDir + info.getUid()); + reqDto.setPathNm(kamconfsDatasetExportPathfsDatasetExportPath + info.getUid()); // 1회차를 종료 상태로 처리하고 2회차를 보내야 함 // 추론(learn), 학습데이터(inference) 둘 다 종료 처리 diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceSendDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceSendDto.java index e5ffaab9..2540a128 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceSendDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceSendDto.java @@ -16,9 +16,6 @@ import lombok.extern.slf4j.Slf4j; @ToString public class InferenceSendDto { - private static final String DEV_PATH_PREFIX = "kamco-nfs"; - private static final String PROD_PATH_PREFIX = "data"; - private pred_requests_areas pred_requests_areas; private String model_version; private String cd_model_path; @@ -28,23 +25,6 @@ public class InferenceSendDto { private String cd_model_type; private Double priority; - // 프로덕션은 경로가 바뀜 - public void changeValForProd() { - if (pred_requests_areas != null) { - pred_requests_areas.changeValForProd(); - log.info("[CHANGE]pred_requests_areas={}", pred_requests_areas); - } - if (this.cd_model_path != null) { - this.cd_model_path = this.cd_model_path.replace(DEV_PATH_PREFIX, PROD_PATH_PREFIX); - } - if (this.cls_model_path != null) { - this.cls_model_path = this.cls_model_path.replace(DEV_PATH_PREFIX, PROD_PATH_PREFIX); - } - if (this.cd_model_config != null) { - this.cd_model_config = this.cd_model_config.replace(DEV_PATH_PREFIX, PROD_PATH_PREFIX); - } - } - @Getter @Setter @AllArgsConstructor @@ -56,19 +36,5 @@ public class InferenceSendDto { private Integer input2_year; private String input1_scene_path; private String input2_scene_path; - - public void changeValForProd() { - // ai팀에서 kamco-nfs를 data로 세팅했음 - if (this.input1_scene_path != null) { - this.input1_scene_path = - this.input1_scene_path.replace( - InferenceSendDto.DEV_PATH_PREFIX, InferenceSendDto.PROD_PATH_PREFIX); - } - if (this.input2_scene_path != null) { - this.input2_scene_path = - this.input2_scene_path.replace( - InferenceSendDto.DEV_PATH_PREFIX, InferenceSendDto.PROD_PATH_PREFIX); - } - } } } diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java index 857454d8..cf7b60b9 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java @@ -605,7 +605,6 @@ public class InferenceResultService { log.info("[CHANGE INFERENCE] profile = {} Inforence req", profile); log.info("========================================================"); log.info(""); - dto.changeValForProd(); } // 1) 요청 로그 @@ -616,13 +615,15 @@ public class InferenceResultService { } // 2) local 환경 임시 처리 - if ("local".equals(profile)) { - if (dto.getPred_requests_areas() == null) { - throw new IllegalStateException("pred_requests_areas is null"); - } - dto.getPred_requests_areas().setInput1_scene_path("/kamco-nfs/requests/2023_local.geojson"); - dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson"); - } + // if ("local".equals(profile)) { + // if (dto.getPred_requests_areas() == null) { + // throw new IllegalStateException("pred_requests_areas is null"); + // } + // + // dto.getPred_requests_areas().setInput1_scene_path("/kamco-nfs/requests/2023_local.geojson"); + // + // dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson"); + // } // 3) HTTP 호출 HttpHeaders headers = new HttpHeaders(); diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java index 982aac27..10d1f007 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java @@ -47,6 +47,9 @@ public class MapSheetMngService { private final UploadService uploadService; private final UserUtil userUtil = new UserUtil(); + @Value("${file.root}") + private String nfsRootDir; + @Value("${file.sync-root-dir}") private String syncRootDir; @@ -111,7 +114,6 @@ public class MapSheetMngService { public DmlReturn uploadPair( MultipartFile tfwFile, String tifFile, Long hstUid, Long tifFileSize) { - String rootPath = syncRootDir; String tmpPath = syncTmpDir; DmlReturn dmlReturn = new DmlReturn("success", "UPLOAD COMPLETE"); @@ -133,6 +135,7 @@ public class MapSheetMngService { return dmlReturn; } + // TODO 삭제? MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy()); // 중복체크 -> 도엽50k/uuid 경로에 업로드 할 거라 overwrite 되지 않음 @@ -340,7 +343,7 @@ public class MapSheetMngService { log.info("[FIND_FOLDER] DIR : {}", dirPath); List folderList = - FIleChecker.getFolderAll(dirPath).stream() + FIleChecker.getFolderAll(dirPath, nfsRootDir).stream() .filter(dir -> dir.getIsValid().equals(true)) .toList(); diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java index ee1b0b7e..714b22db 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java @@ -381,29 +381,23 @@ public class MapSheetInferenceJobService { log.warn("not InferenceSendDto dto"); throw new CustomApiException("BAD_REQUEST", HttpStatus.BAD_REQUEST); } - // [중복운영환경일때 경로수정 dean 260226 - if (profile != null && profile.equals("prod")) { - log.info("========================================================"); - log.info("[CHANGE INFERENCE] profile = {} Inforence req", profile); - log.info("========================================================"); - log.info(""); - dto.changeValForProd(); - } // 1) 요청 로그 log.info(""); log.info("========================================================"); - log.info("[SEND INFERENCE] Inference request dto={}", dto); + log.info("[SEND INFERENCE] Inference request dto= {}", dto); log.info("========================================================"); log.info(""); // 2) local 환경 임시 처리 - if ("local".equals(profile)) { - if (dto.getPred_requests_areas() == null) { - throw new IllegalStateException("pred_requests_areas is null"); - } - dto.getPred_requests_areas().setInput1_scene_path("/kamco-nfs/requests/2023_local.geojson"); - dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson"); - } + // if ("local".equals(profile)) { + // if (dto.getPred_requests_areas() == null) { + // throw new IllegalStateException("pred_requests_areas is null"); + // } + // + // dto.getPred_requests_areas().setInput1_scene_path("/kamco-nfs/requests/2023_local.geojson"); + // + // dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson"); + // } // 3) HTTP 호출 HttpHeaders headers = new HttpHeaders(); diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/TrainingDataReviewJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/TrainingDataReviewJobService.java index 69e40ba7..98923dbb 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/TrainingDataReviewJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/TrainingDataReviewJobService.java @@ -31,7 +31,7 @@ public class TrainingDataReviewJobService { @Value("${spring.profiles.active}") private String profile; - @Value("${training-data.geojson-dir}") + @Value("${file.training-data.geojson-dir}") private String trainingDataDir; private boolean isLocalProfile() { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index d686e70d..266218ef 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -89,36 +89,17 @@ mapsheet: shp: baseurl: /app/tmp/detect/result #현재사용안함 - - file: - #sync-root-dir: D:/kamco-nfs/images/ - sync-root-dir: /kamco-nfs/images/ - sync-tmp-dir: /kamco-nfs/requests/temp # image upload temp dir - #sync-tmp-dir: ${file.sync-root-dir}/tmp - sync-file-extention: tfw,tif -# sync-auto-exception-start-year: 2024 -# sync-auto-exception-before-year-cnt: 3 - - #dataset-dir: D:/kamco-nfs/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/model/v6-cls-checkpoints/ + root: kamco-nfs + nfs: /kamco-nfs + pt-path: ${file.nfs}/ckpt/model/v6-cls-checkpoints/ pt-FileName: yolov8_6th-6m.pt - dataset-response: /kamco-nfs/dataset/response/ - inference: + nfs: /kamco-nfs url: http://192.168.2.183:8000/jobs batch-url: http://192.168.2.183:8000/batches - geojson-dir: /kamco-nfs/requests/ # 추론실행을 위한 파일생성경로 - jar-path: /kamco-nfs/repo/jar/shp-exporter.jar + jar-path: ${inference.nfs}/repo/jar/shp-exporter.jar inference-server-name: server1,server2,server3,server4 gukyuin: @@ -126,9 +107,6 @@ gukyuin: url: http://192.168.2.129:5301 cdi: ${gukyuin.url}/api/kcd/cdi -training-data: - geojson-dir: /kamco-nfs/dataset/request/ - layer: geoserver-url: https://kamco.geo-dev.gs.dabeeo.com wms-path: geoserver/cd diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 6a3911b4..368b6929 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -67,34 +67,17 @@ mapsheet: shp: baseurl: /Users/bokmin/detect/result - - file: - sync-root-dir: C:/Users/gypark/kamco-nfs/images/ - #sync-root-dir: /kamco-nfs/images/ - sync-tmp-dir: ${file.sync-root-dir}/tmp/ - sync-file-extention: tfw,tif -# sync-auto-exception-start-year: 2025 -# sync-auto-exception-before-year-cnt: 3 - - dataset-dir: C:/Users/gypark/kamco-nfs/dataset/ - #dataset-dir: /kamco-nfs/dataset/export/ - dataset-tmp-dir: ${file.dataset-dir}tmp/ - - model-dir: C:/Users/gypark/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/classification/ + root: kamco-nfs + nfs: C:/Users/gypark/kamco-nfs + pt-path: ${file.nfs}/ckpt/classification/ pt-FileName: v5-best.pt - dataset-response: /kamco-nfs/dataset/response/ inference: + nfs: C:/Users/gyparkkamco-nfs url: http://10.100.0.11:8000/jobs batch-url: http://10.100.0.11:8000/batches - geojson-dir: /kamco-nfs/requests/ - jar-path: jar/makeshp-1.0.0.jar + jar-path: jar/shp-exporter.jar inference-server-name: server1,server2,server3,server4 gukyuin: @@ -102,9 +85,6 @@ gukyuin: url: http://192.168.2.129:5301 cdi: ${gukyuin.url}/api/kcd/cdi -training-data: - geojson-dir: /kamco-nfs/model_output/labeling/ - layer: geoserver-url: https://kamco.geo-dev.gs.dabeeo.com wms-path: geoserver/cd diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index f4d0f0c0..43ec3ffd 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -84,36 +84,23 @@ mapsheet: 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/ + root: data + nfs: /data + pt-path: ${file.nfs}/ckpt/model/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 # 추론실행을 위한 파일생성경로 + nfs: /data + url: http://172.16.4.56:8000/jobs + batch-url: http://172.16.4.56:8000/batches + jar-path: ${inference.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/ + layer: geoserver-url: https://kamco.geo-dev.gs.dabeeo.com diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f9c685ab..93706ab0 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -67,3 +67,22 @@ management: include: - "health" +file: + root: kamco-nfs + nfs: /kamco-nfs + sync-root-dir: ${file.nfs}/images/ + sync-tmp-dir: ${file.nfs}/requests/temp # image upload temp dir + sync-file-extention: tfw,tif + dataset-dir: ${file.nfs}/model_output/export/ # 마운트경로 AI 추론결과 + dataset-tmp-dir: ${file.dataset-dir}tmp/ + model-dir: ${file.nfs}/ckpt/model/ # 학습서버에서 트레이닝한 모델업로드경로 + model-tmp-dir: ${file.model-dir}tmp/ + model-file-extention: pth,json,py + pt-path: ${file.nfs}/ckpt/model/v6-cls-checkpoints/ + dataset-response: ${file.nfs}/dataset/response/ + training-data: + geojson-dir: ${file.nfs}/dataset/request/ +inference: + nfs: /kamco-nfs + geojson-dir: ${inference.nfs}/requests/ # 추론실행을 위한 파일생성경로 + jar-path: ${inference.nfs}/repo/jar/shp-exporter.jar