From ee76389d6cdebb890fd3a39f95f680d663c3d3cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dean=5B=EB=B0=B1=EB=B3=91=EB=82=A8=5D?= Date: Thu, 26 Feb 2026 11:46:17 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EA=B2=BD=EB=A1=9C?= =?UTF-8?q?=EB=A5=BC=20application.yml=EC=97=90=EC=84=9C=20=EA=B0=80?= =?UTF-8?q?=EC=A0=B8=EC=98=AC=EC=88=98=EC=9E=88=EA=B2=8C=20=EB=8F=99?= =?UTF-8?q?=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamcoback/common/utils/FIleChecker.java | 12 +- .../gukyuin/dto/ChngDetectMastDto.java | 2 +- .../gukyuin/service/GukYuinApiService.java | 492 +++++++++--------- .../inference/dto/InferenceSendDto.java | 37 +- .../service/InferenceResultService.java | 15 +- .../mapsheet/service/MapSheetMngService.java | 88 ++-- .../service/MapSheetInferenceJobService.java | 24 +- .../service/TrainingDataReviewJobService.java | 2 +- src/main/resources/application-dev.yml | 32 +- src/main/resources/application-local.yml | 30 +- src/main/resources/application-prod.yml | 29 +- src/main/resources/application.yml | 19 + 12 files changed, 361 insertions(+), 421 deletions(-) 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..5ba56e56 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,8 @@ 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 +309,11 @@ 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 +361,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 26c80750..0307364c 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,12 +66,16 @@ 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( - ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { + ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { String url = gukyuinCdiUrl + "/chn/mast/regist"; @@ -79,12 +83,12 @@ public class GukYuinApiService { chnDetectMastReq.setReqEpno(userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.POST, - chnDetectMastReq, - netUtils.jsonHeaders(), - ChngDetectMastDto.RegistResDto.class); + externalHttpClient.call( + url, + HttpMethod.POST, + chnDetectMastReq, + netUtils.jsonHeaders(), + ChngDetectMastDto.RegistResDto.class); ChngDetectMastDto.RegistResDto resultBody = result.body(); boolean success = false; @@ -112,27 +116,27 @@ public class GukYuinApiService { } catch (JsonProcessingException e) { log.error("에러 응답 파싱 실패. rawBody={}", errBody, e); return new ChngDetectMastDto.RegistResDto( - result.statusCode(), // HTTP status - errBody, // 원문 그대로 - null, - false); + result.statusCode(), // HTTP status + errBody, // 원문 그대로 + null, + false); } } this.insertGukyuinAuditLog( - EventType.ADDED.getId(), - myip, - userUtil.getId(), - url.replace(gukyuinUrl, ""), - chnDetectMastReq, - success); + EventType.ADDED.getId(), + myip, + userUtil.getId(), + url.replace(gukyuinUrl, ""), + chnDetectMastReq, + success); return resultBody; } @Transactional public ChngDetectMastDto.RemoveResDto remove( - ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { + ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { String url = gukyuinCdiUrl + "/chn/mast/remove"; chnDetectMastReq.setReqIp(myip); @@ -140,12 +144,12 @@ public class GukYuinApiService { boolean success = false; ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.POST, - chnDetectMastReq, - netUtils.jsonHeaders(), - ChngDetectMastDto.RemoveResDto.class); + externalHttpClient.call( + url, + HttpMethod.POST, + chnDetectMastReq, + netUtils.jsonHeaders(), + ChngDetectMastDto.RemoveResDto.class); ChngDetectMastDto.RemoveResDto resultBody = result.body(); if (resultBody != null && resultBody.getSuccess() != null) { @@ -157,12 +161,12 @@ public class GukYuinApiService { } this.insertGukyuinAuditLog( - EventType.REMOVE.getId(), - myip, - userUtil.getId(), - url.replace(gukyuinUrl, ""), - chnDetectMastReq, - success); + EventType.REMOVE.getId(), + myip, + userUtil.getId(), + url.replace(gukyuinUrl, ""), + chnDetectMastReq, + success); return resultBody; } @@ -171,52 +175,52 @@ public class GukYuinApiService { public ChngDetectMastDto.ResultDto detail(String chnDtctMstId) { String url = - gukyuinCdiUrl - + "/chn/mast/list/" - + chnDtctMstId - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/mast/list/" + + chnDtctMstId + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } // 등록목록 비교년도,기준년도,차수 조합해서 n개 확인 public ChngDetectMastDto.ResultDto listYearStage( - ChngDetectMastDto.ChngDetectMastSearchDto searchDto) { + ChngDetectMastDto.ChngDetectMastSearchDto searchDto) { String queryString = netUtils.dtoToQueryString(searchDto, null); String url = - gukyuinCdiUrl - + "/chn/mast" - + queryString - + "&reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/mast" + + queryString + + "&reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } @@ -260,82 +264,82 @@ public class GukYuinApiService { // 탐지객체 리스트 조회 public ResultContDto findChnContList( - String chnDtctId, Integer pageIndex, Integer pageSize, String batchYn) { + String chnDtctId, Integer pageIndex, Integer pageSize, String batchYn) { String url = - gukyuinCdiUrl - + "/chn/cont/" - + chnDtctId - + "?pageIndex=" - + pageIndex - + "&pageSize=" - + pageSize - + "&reqIp=" - + myip - + "&reqEpno=" - + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); + gukyuinCdiUrl + + "/chn/cont/" + + chnDtctId + + "?pageIndex=" + + pageIndex + + "&pageSize=" + + pageSize + + "&reqIp=" + + myip + + "&reqEpno=" + + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultContDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultContDto.class); List contList = result.body().getResult(); if (contList == null || contList.isEmpty()) { return new ResultContDto( - result.body().getCode(), - result.body().getMessage(), - result.body().getResult(), - result.body().getSuccess()); + result.body().getCode(), + result.body().getMessage(), + result.body().getResult(), + result.body().getSuccess()); } this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } public ResultPnuDto findPnuObjMgmtList(String chnDtctId, String chnDtctObjtId) { String url = - gukyuinCdiUrl - + "/chn/pnu/" - + chnDtctId - + "/objt/" - + chnDtctObjtId - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/pnu/" + + chnDtctId + + "/objt/" + + chnDtctObjtId + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultPnuDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultPnuDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } public ChngDetectContDto.ResultLabelDto updateChnDtctObjtLabelingYn( - String chnDtctObjtId, String lblYn, String batchYn) { + String chnDtctObjtId, String lblYn, String batchYn) { String url = gukyuinCdiUrl + "/rlb/objt/" + chnDtctObjtId + "/lbl/" + lblYn; ReqInfo info = new ReqInfo(); @@ -343,20 +347,20 @@ public class GukYuinApiService { info.setReqEpno("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.POST, - info, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultLabelDto.class); + externalHttpClient.call( + url, + HttpMethod.POST, + info, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultLabelDto.class); this.insertGukyuinAuditLog( - EventType.MODIFIED.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.MODIFIED.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } @@ -364,80 +368,80 @@ public class GukYuinApiService { public ResultContDto findChnPnuToContList(String chnDtctId, String pnu) { String url = - gukyuinCdiUrl - + "/chn/cont/" - + chnDtctId - + "/pnu/" - + pnu - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/cont/" + + chnDtctId + + "/pnu/" + + pnu + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultContDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultContDto.class); this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } public ResultDto listChnDtctId(String chnDtctId, String batchYn) { String url = - gukyuinCdiUrl - + "/chn/mast/" - + chnDtctId - + "?reqIp=" - + myip - + "&reqEpno=" - + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); + gukyuinCdiUrl + + "/chn/mast/" + + chnDtctId + + "?reqIp=" + + myip + + "&reqEpno=" + + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false) public void insertGukyuinAuditLog( - String actionType, - String myIp, - Long userUid, - String requestUri, - Object requestBody, - boolean successFail) { + String actionType, + String myIp, + Long userUid, + String requestUri, + Object requestBody, + boolean successFail) { try { AuditLogEntity log = - new AuditLogEntity( - userUid, - EventType.fromName(actionType), - successFail ? EventStatus.SUCCESS : EventStatus.FAILED, - "GUKYUIN", // 메뉴도 국유인으로 하나 따기 - myIp, - requestUri, - requestBody == null ? null : ApiLogFunction.cutRequestBody(requestBody.toString()), - null, - null, - null); + new AuditLogEntity( + userUid, + EventType.fromName(actionType), + successFail ? EventStatus.SUCCESS : EventStatus.FAILED, + "GUKYUIN", // 메뉴도 국유인으로 하나 따기 + myIp, + requestUri, + requestBody == null ? null : ApiLogFunction.cutRequestBody(requestBody.toString()), + null, + null, + null); auditLogRepository.save(log); } catch (Exception e) { @@ -453,14 +457,16 @@ public class GukYuinApiService { return new ResponseObj(ApiResponseCode.DUPLICATE_DATA, "이미 국유인 연동을 한 회차입니다."); } - if (!Files.isDirectory(Path.of("/kamco-nfs/dataset/export/" + 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, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다."); + ApiResponseCode.NOT_FOUND_DATA, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다."); } // 비교년도,기준년도로 전송한 데이터 있는지 확인 후 회차 번호 생성 Integer maxStage = - gukyuinCoreService.findMapSheetLearnYearStage(info.getCompareYyyy(), info.getTargetYyyy()); + gukyuinCoreService.findMapSheetLearnYearStage(info.getCompareYyyy(), info.getTargetYyyy()); // reqDto 셋팅 ChnDetectMastReqDto reqDto = new ChnDetectMastReqDto(); @@ -468,14 +474,14 @@ public class GukYuinApiService { reqDto.setCrtrYr(String.valueOf(info.getTargetYyyy())); reqDto.setChnDtctSno(String.valueOf(maxStage + 1)); reqDto.setChnDtctId(info.getUid()); - reqDto.setPathNm("/kamco-nfs/dataset/export/" + info.getUid()); + reqDto.setPathNm(kamconfsDatasetExportPathfsDatasetExportPath + info.getUid()); // 1회차를 종료 상태로 처리하고 2회차를 보내야 함 // 추론(learn), 학습데이터(inference) 둘 다 종료 처리 if (maxStage > 0) { Long learnId = - gukyuinCoreService.findMapSheetLearnInfoByYyyy( - info.getCompareYyyy(), info.getTargetYyyy(), maxStage); + gukyuinCoreService.findMapSheetLearnInfoByYyyy( + info.getCompareYyyy(), info.getTargetYyyy(), maxStage); gukyuinCoreService.updateMapSheetLearnGukyuinEndStatus(learnId); gukyuinCoreService.updateMapSheetInferenceLabelEndStatus(learnId); } @@ -494,90 +500,90 @@ public class GukYuinApiService { } public ResultContDto findChnPnuToContObject( - String chnDtctId, String chnDtctObjtId, Integer pageIndex, Integer pageSize) { + String chnDtctId, String chnDtctObjtId, Integer pageIndex, Integer pageSize) { String url = - gukyuinCdiUrl - + "/chn/cont/" - + chnDtctId - + "/chnDtctObjtId/" - + chnDtctObjtId - + "?pageIndex=" - + pageIndex - + "&pageSize=" - + pageSize - + "&reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/cont/" + + chnDtctId + + "/chnDtctObjtId/" + + chnDtctObjtId + + "?pageIndex=" + + pageIndex + + "&pageSize=" + + pageSize + + "&reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultContDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultContDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body() != null && result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body() != null && result.body().getSuccess()); return result.body(); } public ChngDetectMastDto.RlbDtctDto findRlbDtctList( - String chnDtctId, String yyyymmdd, String batchYn) { + String chnDtctId, String yyyymmdd, String batchYn) { String url = - gukyuinCdiUrl - + "/rlb/dtct/" - + chnDtctId - + "?reqIp=" - + myip - + "&reqEpno=" - + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()) - + "&yyyymmdd=" - + yyyymmdd; + gukyuinCdiUrl + + "/rlb/dtct/" + + chnDtctId + + "?reqIp=" + + myip + + "&reqEpno=" + + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()) + + "&yyyymmdd=" + + yyyymmdd; ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body() != null && result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body() != null && result.body().getSuccess()); return result.body(); } public RlbDtctDto findRlbDtctObject(String chnDtctObjtId) { String url = - gukyuinCdiUrl - + "/rlb/objt/" - + chnDtctObjtId - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/rlb/objt/" + + chnDtctObjtId + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body() != null && result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body() != null && result.body().getSuccess()); return result.body(); } } 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..40a5f3bb 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 @@ -7,7 +7,9 @@ import lombok.Setter; import lombok.ToString; import lombok.extern.slf4j.Slf4j; -/** AI API 추론 실행 DTO */ +/** + * AI API 추론 실행 DTO + */ @Slf4j @Getter @Setter @@ -16,9 +18,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,22 +27,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 @@ -57,18 +40,6 @@ public class InferenceSendDto { 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 b3355ae4..3a39051c 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 @@ -460,7 +460,6 @@ public class InferenceResultService { log.info("[CHANGE INFERENCE] profile = {} Inforence req", profile); log.info("========================================================"); log.info(""); - dto.changeValForProd(); } // 1) 요청 로그 @@ -471,13 +470,13 @@ 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..cf410849 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,10 @@ 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; @@ -70,8 +74,8 @@ public class MapSheetMngService { // List조회 Page years = mapSheetMngCoreService.getListMapListYYYYWithPaging(req); return years.map(YearEntity::getYyyy).getContent().stream() - .sorted(Comparator.reverseOrder()) - .toList(); + .sorted(Comparator.reverseOrder()) + .toList(); } public MngDto findMapSheetMng(int mngYyyy) { @@ -109,9 +113,8 @@ public class MapSheetMngService { @Transactional public DmlReturn uploadPair( - MultipartFile tfwFile, String tifFile, Long hstUid, Long tifFileSize) { + MultipartFile tfwFile, String tifFile, Long hstUid, Long tifFileSize) { - String rootPath = syncRootDir; String tmpPath = syncTmpDir; DmlReturn dmlReturn = new DmlReturn("success", "UPLOAD COMPLETE"); @@ -133,6 +136,7 @@ public class MapSheetMngService { return dmlReturn; } + //TODO 삭제? MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy()); // 중복체크 -> 도엽50k/uuid 경로에 업로드 할 거라 overwrite 되지 않음 @@ -179,27 +183,27 @@ public class MapSheetMngService { // 파일이 존재하지 않을 경우(0개) 해당년도 다른 파일경로로 참조 if (uploadPath.isEmpty()) { MngFilesDto filesDto = - mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); + mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); String referPath = filesDto.getFilePath(); Path path = Paths.get(referPath); boolean isFiveDigitNumber = - path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); + path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); log.info("isFiveDigitNumber : " + isFiveDigitNumber); if (isFiveDigitNumber) { uploadPath = - Paths.get(referPath).getParent().toString() - + "/" - + errDto.getRefMapSheetNum() - + "/" - + errDto.getUuid(); + Paths.get(referPath).getParent().toString() + + "/" + + errDto.getRefMapSheetNum() + + "/" + + errDto.getUuid(); } else { uploadPath = - Paths.get(referPath).getParent().getParent().toString() - + "/" - + errDto.getRefMapSheetNum() - + "/" - + errDto.getUuid(); + Paths.get(referPath).getParent().getParent().toString() + + "/" + + errDto.getRefMapSheetNum() + + "/" + + errDto.getUuid(); } } @@ -226,7 +230,7 @@ public class MapSheetMngService { // hst업데이트 MapSheetMngDto.SyncCheckStateReqUpdateDto updReqSyncCheckState = - new MapSheetMngDto.SyncCheckStateReqUpdateDto(); + new MapSheetMngDto.SyncCheckStateReqUpdateDto(); updReqSyncCheckState.setHstUid(hstUid); updReqSyncCheckState.setFilePath(uploadPath); updReqSyncCheckState.setSyncCheckTfwFileName(tfwFile.getOriginalFilename()); @@ -273,7 +277,7 @@ public class MapSheetMngService { DmlReturn dmlReturn = new DmlReturn("success", "정상처리되었습니다."); MapSheetMngDto.SyncCheckStateReqUpdateDto reqDto = - new MapSheetMngDto.SyncCheckStateReqUpdateDto(); + new MapSheetMngDto.SyncCheckStateReqUpdateDto(); for (Long uid : fileUids) { MapSheetMngDto.MngFilesDto dto = mapSheetMngCoreService.findByFileUidMapSheetFile(uid); @@ -340,13 +344,13 @@ public class MapSheetMngService { log.info("[FIND_FOLDER] DIR : {}", dirPath); List folderList = - FIleChecker.getFolderAll(dirPath).stream() - .filter(dir -> dir.getIsValid().equals(true)) - .toList(); + FIleChecker.getFolderAll(dirPath, nfsRootDir).stream() + .filter(dir -> dir.getIsValid().equals(true)) + .toList(); int folderTotCnt = folderList.size(); int folderErrTotCnt = - (int) folderList.stream().filter(dto -> dto.getIsValid().equals(false)).count(); + (int) folderList.stream().filter(dto -> dto.getIsValid().equals(false)).count(); return new FoldersDto(dirPath, folderTotCnt, folderErrTotCnt, folderList); } @@ -358,14 +362,14 @@ public class MapSheetMngService { int endPos = srchDto.getEndPos(); List files = - FIleChecker.getFilesFromAllDepth( - srchDto.getDirPath(), - "*", - srchDto.getExtension(), - 1, - srchDto.getSortType(), - startPos, - endPos); + FIleChecker.getFilesFromAllDepth( + srchDto.getDirPath(), + "*", + srchDto.getExtension(), + 1, + srchDto.getSortType(), + startPos, + endPos); int fileListPos = 0; int fileTotCnt = files.size(); @@ -382,18 +386,18 @@ public class MapSheetMngService { List mngList = mapSheetMngCoreService.findMapSheetMngList(); List yearList = - mngList.stream() - .filter( - dto -> "DONE".equals(dto.getMngState()) || "TAKINGERROR".equals(dto.getMngState())) - .map(dto -> new MngYyyyDto(dto.getMngYyyy(), dto.getMngPath())) - .toList(); + mngList.stream() + .filter( + dto -> "DONE".equals(dto.getMngState()) || "TAKINGERROR".equals(dto.getMngState())) + .map(dto -> new MngYyyyDto(dto.getMngYyyy(), dto.getMngPath())) + .toList(); return yearList; } @Transactional public ModelUploadResDto uploadChunkMapSheetFile( - Long hstUid, UploadAddReq upAddReqDto, MultipartFile chunkFile) throws IOException { + Long hstUid, UploadAddReq upAddReqDto, MultipartFile chunkFile) throws IOException { ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid); @@ -407,20 +411,20 @@ public class MapSheetMngService { if (uploadPath.isEmpty()) { MngFilesDto filesDto = - mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); + mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); String referPath = filesDto.getFilePath(); Path path = Paths.get(referPath); boolean isFiveDigitNumber = - path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); + path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); log.info("isFiveDigitNumber : " + isFiveDigitNumber); if (isFiveDigitNumber) { uploadPath = Paths.get(referPath).getParent().toString() + "/" + errDto.getRefMapSheetNum(); } else { uploadPath = - Paths.get(referPath).getParent().getParent().toString() - + "/" - + errDto.getRefMapSheetNum(); + Paths.get(referPath).getParent().getParent().toString() + + "/" + + errDto.getRefMapSheetNum(); } } @@ -443,7 +447,7 @@ public class MapSheetMngService { // upload_id, uuid 를 update mapSheetMngCoreService.updateMapSheetMngHstUploadId( - hstUid, upAddReqDto.getUuid(), upRes.getUploadId()); + hstUid, upAddReqDto.getUuid(), upRes.getUploadId()); } modelUploadResDto.setRes(upRes.getRes()); 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..f8f813f8 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,21 @@ 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 -- 2.49.1 From a63b81008a22521e99476a6dae2df87a49db6ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dean=5B=EB=B0=B1=EB=B3=91=EB=82=A8=5D?= Date: Thu, 26 Feb 2026 11:52:51 +0900 Subject: [PATCH 2/2] inference_hard_coding --- .../kamcoback/common/utils/FIleChecker.java | 16 +- .../gukyuin/service/GukYuinApiService.java | 488 +++++++++--------- .../inference/dto/InferenceSendDto.java | 7 +- .../service/InferenceResultService.java | 16 +- .../mapsheet/service/MapSheetMngService.java | 85 ++- .../service/MapSheetInferenceJobService.java | 16 +- 6 files changed, 314 insertions(+), 314 deletions(-) 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 5ba56e56..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,8 +279,9 @@ public class FIleChecker { return true; } - //kamco-nfs를 확인하는곳이 있어서 파라미터 추가 사용용도확인후 처리 - public static List getFolderAll(String dirPath, String sortType, int maxDepth,String nfsRootDir) { + // kamco-nfs를 확인하는곳이 있어서 파라미터 추가 사용용도확인후 처리 + public static List getFolderAll( + String dirPath, String sortType, int maxDepth, String nfsRootDir) { Path startPath = Paths.get(dirPath); @@ -309,9 +310,10 @@ 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 하위만 나오도록 처리 boolean isShowHide = !parentFolderNm.equals(nfsRootDir); // 폴더 리스트에 nfsRootDir 하위만 나오도록 처리 File file = new File(fullPath); @@ -361,8 +363,8 @@ public class FIleChecker { return folderList; } - public static List getFolderAll(String dirPath,String nfsRootDir) { - return getFolderAll(dirPath, "name", 1,nfsRootDir); + 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/service/GukYuinApiService.java b/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java index 0307364c..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 @@ -69,13 +69,12 @@ public class GukYuinApiService { @Value("${file.nfs}") private String nfs; -// @Value("${file.dataset-dir}") -// private String datasetDir; - + // @Value("${file.dataset-dir}") + // private String datasetDir; @Transactional public ChngDetectMastDto.RegistResDto regist( - ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { + ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { String url = gukyuinCdiUrl + "/chn/mast/regist"; @@ -83,12 +82,12 @@ public class GukYuinApiService { chnDetectMastReq.setReqEpno(userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.POST, - chnDetectMastReq, - netUtils.jsonHeaders(), - ChngDetectMastDto.RegistResDto.class); + externalHttpClient.call( + url, + HttpMethod.POST, + chnDetectMastReq, + netUtils.jsonHeaders(), + ChngDetectMastDto.RegistResDto.class); ChngDetectMastDto.RegistResDto resultBody = result.body(); boolean success = false; @@ -116,27 +115,27 @@ public class GukYuinApiService { } catch (JsonProcessingException e) { log.error("에러 응답 파싱 실패. rawBody={}", errBody, e); return new ChngDetectMastDto.RegistResDto( - result.statusCode(), // HTTP status - errBody, // 원문 그대로 - null, - false); + result.statusCode(), // HTTP status + errBody, // 원문 그대로 + null, + false); } } this.insertGukyuinAuditLog( - EventType.ADDED.getId(), - myip, - userUtil.getId(), - url.replace(gukyuinUrl, ""), - chnDetectMastReq, - success); + EventType.ADDED.getId(), + myip, + userUtil.getId(), + url.replace(gukyuinUrl, ""), + chnDetectMastReq, + success); return resultBody; } @Transactional public ChngDetectMastDto.RemoveResDto remove( - ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { + ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) { String url = gukyuinCdiUrl + "/chn/mast/remove"; chnDetectMastReq.setReqIp(myip); @@ -144,12 +143,12 @@ public class GukYuinApiService { boolean success = false; ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.POST, - chnDetectMastReq, - netUtils.jsonHeaders(), - ChngDetectMastDto.RemoveResDto.class); + externalHttpClient.call( + url, + HttpMethod.POST, + chnDetectMastReq, + netUtils.jsonHeaders(), + ChngDetectMastDto.RemoveResDto.class); ChngDetectMastDto.RemoveResDto resultBody = result.body(); if (resultBody != null && resultBody.getSuccess() != null) { @@ -161,12 +160,12 @@ public class GukYuinApiService { } this.insertGukyuinAuditLog( - EventType.REMOVE.getId(), - myip, - userUtil.getId(), - url.replace(gukyuinUrl, ""), - chnDetectMastReq, - success); + EventType.REMOVE.getId(), + myip, + userUtil.getId(), + url.replace(gukyuinUrl, ""), + chnDetectMastReq, + success); return resultBody; } @@ -175,52 +174,52 @@ public class GukYuinApiService { public ChngDetectMastDto.ResultDto detail(String chnDtctMstId) { String url = - gukyuinCdiUrl - + "/chn/mast/list/" - + chnDtctMstId - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/mast/list/" + + chnDtctMstId + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } // 등록목록 비교년도,기준년도,차수 조합해서 n개 확인 public ChngDetectMastDto.ResultDto listYearStage( - ChngDetectMastDto.ChngDetectMastSearchDto searchDto) { + ChngDetectMastDto.ChngDetectMastSearchDto searchDto) { String queryString = netUtils.dtoToQueryString(searchDto, null); String url = - gukyuinCdiUrl - + "/chn/mast" - + queryString - + "&reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/mast" + + queryString + + "&reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } @@ -264,82 +263,82 @@ public class GukYuinApiService { // 탐지객체 리스트 조회 public ResultContDto findChnContList( - String chnDtctId, Integer pageIndex, Integer pageSize, String batchYn) { + String chnDtctId, Integer pageIndex, Integer pageSize, String batchYn) { String url = - gukyuinCdiUrl - + "/chn/cont/" - + chnDtctId - + "?pageIndex=" - + pageIndex - + "&pageSize=" - + pageSize - + "&reqIp=" - + myip - + "&reqEpno=" - + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); + gukyuinCdiUrl + + "/chn/cont/" + + chnDtctId + + "?pageIndex=" + + pageIndex + + "&pageSize=" + + pageSize + + "&reqIp=" + + myip + + "&reqEpno=" + + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultContDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultContDto.class); List contList = result.body().getResult(); if (contList == null || contList.isEmpty()) { return new ResultContDto( - result.body().getCode(), - result.body().getMessage(), - result.body().getResult(), - result.body().getSuccess()); + result.body().getCode(), + result.body().getMessage(), + result.body().getResult(), + result.body().getSuccess()); } this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } public ResultPnuDto findPnuObjMgmtList(String chnDtctId, String chnDtctObjtId) { String url = - gukyuinCdiUrl - + "/chn/pnu/" - + chnDtctId - + "/objt/" - + chnDtctObjtId - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/pnu/" + + chnDtctId + + "/objt/" + + chnDtctObjtId + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultPnuDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultPnuDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } public ChngDetectContDto.ResultLabelDto updateChnDtctObjtLabelingYn( - String chnDtctObjtId, String lblYn, String batchYn) { + String chnDtctObjtId, String lblYn, String batchYn) { String url = gukyuinCdiUrl + "/rlb/objt/" + chnDtctObjtId + "/lbl/" + lblYn; ReqInfo info = new ReqInfo(); @@ -347,20 +346,20 @@ public class GukYuinApiService { info.setReqEpno("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.POST, - info, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultLabelDto.class); + externalHttpClient.call( + url, + HttpMethod.POST, + info, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultLabelDto.class); this.insertGukyuinAuditLog( - EventType.MODIFIED.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.MODIFIED.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } @@ -368,80 +367,80 @@ public class GukYuinApiService { public ResultContDto findChnPnuToContList(String chnDtctId, String pnu) { String url = - gukyuinCdiUrl - + "/chn/cont/" - + chnDtctId - + "/pnu/" - + pnu - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/cont/" + + chnDtctId + + "/pnu/" + + pnu + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultContDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultContDto.class); this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } public ResultDto listChnDtctId(String chnDtctId, String batchYn) { String url = - gukyuinCdiUrl - + "/chn/mast/" - + chnDtctId - + "?reqIp=" - + myip - + "&reqEpno=" - + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); + gukyuinCdiUrl + + "/chn/mast/" + + chnDtctId + + "?reqIp=" + + myip + + "&reqEpno=" + + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body().getSuccess()); return result.body(); } @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false) public void insertGukyuinAuditLog( - String actionType, - String myIp, - Long userUid, - String requestUri, - Object requestBody, - boolean successFail) { + String actionType, + String myIp, + Long userUid, + String requestUri, + Object requestBody, + boolean successFail) { try { AuditLogEntity log = - new AuditLogEntity( - userUid, - EventType.fromName(actionType), - successFail ? EventStatus.SUCCESS : EventStatus.FAILED, - "GUKYUIN", // 메뉴도 국유인으로 하나 따기 - myIp, - requestUri, - requestBody == null ? null : ApiLogFunction.cutRequestBody(requestBody.toString()), - null, - null, - null); + new AuditLogEntity( + userUid, + EventType.fromName(actionType), + successFail ? EventStatus.SUCCESS : EventStatus.FAILED, + "GUKYUIN", // 메뉴도 국유인으로 하나 따기 + myIp, + requestUri, + requestBody == null ? null : ApiLogFunction.cutRequestBody(requestBody.toString()), + null, + null, + null); auditLogRepository.save(log); } catch (Exception e) { @@ -457,16 +456,17 @@ public class GukYuinApiService { return new ResponseObj(ApiResponseCode.DUPLICATE_DATA, "이미 국유인 연동을 한 회차입니다."); } -// String kamconfsDatasetExportPathfsDatasetExportPath = "/kamco-nfs/dataset/export/"; - String kamconfsDatasetExportPathfsDatasetExportPath = String.format("%s%s", nfs, "/dataset/export/"); + // 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, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다."); + ApiResponseCode.NOT_FOUND_DATA, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다."); } // 비교년도,기준년도로 전송한 데이터 있는지 확인 후 회차 번호 생성 Integer maxStage = - gukyuinCoreService.findMapSheetLearnYearStage(info.getCompareYyyy(), info.getTargetYyyy()); + gukyuinCoreService.findMapSheetLearnYearStage(info.getCompareYyyy(), info.getTargetYyyy()); // reqDto 셋팅 ChnDetectMastReqDto reqDto = new ChnDetectMastReqDto(); @@ -480,8 +480,8 @@ public class GukYuinApiService { // 추론(learn), 학습데이터(inference) 둘 다 종료 처리 if (maxStage > 0) { Long learnId = - gukyuinCoreService.findMapSheetLearnInfoByYyyy( - info.getCompareYyyy(), info.getTargetYyyy(), maxStage); + gukyuinCoreService.findMapSheetLearnInfoByYyyy( + info.getCompareYyyy(), info.getTargetYyyy(), maxStage); gukyuinCoreService.updateMapSheetLearnGukyuinEndStatus(learnId); gukyuinCoreService.updateMapSheetInferenceLabelEndStatus(learnId); } @@ -500,90 +500,90 @@ public class GukYuinApiService { } public ResultContDto findChnPnuToContObject( - String chnDtctId, String chnDtctObjtId, Integer pageIndex, Integer pageSize) { + String chnDtctId, String chnDtctObjtId, Integer pageIndex, Integer pageSize) { String url = - gukyuinCdiUrl - + "/chn/cont/" - + chnDtctId - + "/chnDtctObjtId/" - + chnDtctObjtId - + "?pageIndex=" - + pageIndex - + "&pageSize=" - + pageSize - + "&reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/chn/cont/" + + chnDtctId + + "/chnDtctObjtId/" + + chnDtctObjtId + + "?pageIndex=" + + pageIndex + + "&pageSize=" + + pageSize + + "&reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, - HttpMethod.GET, - null, - netUtils.jsonHeaders(), - ChngDetectContDto.ResultContDto.class); + externalHttpClient.call( + url, + HttpMethod.GET, + null, + netUtils.jsonHeaders(), + ChngDetectContDto.ResultContDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body() != null && result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body() != null && result.body().getSuccess()); return result.body(); } public ChngDetectMastDto.RlbDtctDto findRlbDtctList( - String chnDtctId, String yyyymmdd, String batchYn) { + String chnDtctId, String yyyymmdd, String batchYn) { String url = - gukyuinCdiUrl - + "/rlb/dtct/" - + chnDtctId - + "?reqIp=" - + myip - + "&reqEpno=" - + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()) - + "&yyyymmdd=" - + yyyymmdd; + gukyuinCdiUrl + + "/rlb/dtct/" + + chnDtctId + + "?reqIp=" + + myip + + "&reqEpno=" + + ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo()) + + "&yyyymmdd=" + + yyyymmdd; ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); this.insertGukyuinAuditLog( - EventType.LIST.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body() != null && result.body().getSuccess()); + EventType.LIST.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body() != null && result.body().getSuccess()); return result.body(); } public RlbDtctDto findRlbDtctObject(String chnDtctObjtId) { String url = - gukyuinCdiUrl - + "/rlb/objt/" - + chnDtctObjtId - + "?reqIp=" - + myip - + "&reqEpno=" - + userUtil.getEmployeeNo(); + gukyuinCdiUrl + + "/rlb/objt/" + + chnDtctObjtId + + "?reqIp=" + + myip + + "&reqEpno=" + + userUtil.getEmployeeNo(); ExternalCallResult result = - externalHttpClient.call( - url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); + externalHttpClient.call( + url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class); this.insertGukyuinAuditLog( - EventType.DETAIL.getId(), - netUtils.getLocalIP(), - userUtil.getId(), - url.replace(gukyuinUrl, ""), - null, - result.body() != null && result.body().getSuccess()); + EventType.DETAIL.getId(), + netUtils.getLocalIP(), + userUtil.getId(), + url.replace(gukyuinUrl, ""), + null, + result.body() != null && result.body().getSuccess()); return result.body(); } } 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 40a5f3bb..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 @@ -7,9 +7,7 @@ import lombok.Setter; import lombok.ToString; import lombok.extern.slf4j.Slf4j; -/** - * AI API 추론 실행 DTO - */ +/** AI API 추론 실행 DTO */ @Slf4j @Getter @Setter @@ -27,7 +25,6 @@ public class InferenceSendDto { private String cd_model_type; private Double priority; - @Getter @Setter @AllArgsConstructor @@ -39,7 +36,5 @@ public class InferenceSendDto { private Integer input2_year; private String input1_scene_path; private String input2_scene_path; - - } } 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 3a39051c..3fd1e243 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 @@ -470,13 +470,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 cf410849..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,7 +47,6 @@ public class MapSheetMngService { private final UploadService uploadService; private final UserUtil userUtil = new UserUtil(); - @Value("${file.root}") private String nfsRootDir; @@ -74,8 +73,8 @@ public class MapSheetMngService { // List조회 Page years = mapSheetMngCoreService.getListMapListYYYYWithPaging(req); return years.map(YearEntity::getYyyy).getContent().stream() - .sorted(Comparator.reverseOrder()) - .toList(); + .sorted(Comparator.reverseOrder()) + .toList(); } public MngDto findMapSheetMng(int mngYyyy) { @@ -113,7 +112,7 @@ public class MapSheetMngService { @Transactional public DmlReturn uploadPair( - MultipartFile tfwFile, String tifFile, Long hstUid, Long tifFileSize) { + MultipartFile tfwFile, String tifFile, Long hstUid, Long tifFileSize) { String tmpPath = syncTmpDir; @@ -136,7 +135,7 @@ public class MapSheetMngService { return dmlReturn; } - //TODO 삭제? + // TODO 삭제? MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy()); // 중복체크 -> 도엽50k/uuid 경로에 업로드 할 거라 overwrite 되지 않음 @@ -183,27 +182,27 @@ public class MapSheetMngService { // 파일이 존재하지 않을 경우(0개) 해당년도 다른 파일경로로 참조 if (uploadPath.isEmpty()) { MngFilesDto filesDto = - mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); + mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); String referPath = filesDto.getFilePath(); Path path = Paths.get(referPath); boolean isFiveDigitNumber = - path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); + path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); log.info("isFiveDigitNumber : " + isFiveDigitNumber); if (isFiveDigitNumber) { uploadPath = - Paths.get(referPath).getParent().toString() - + "/" - + errDto.getRefMapSheetNum() - + "/" - + errDto.getUuid(); + Paths.get(referPath).getParent().toString() + + "/" + + errDto.getRefMapSheetNum() + + "/" + + errDto.getUuid(); } else { uploadPath = - Paths.get(referPath).getParent().getParent().toString() - + "/" - + errDto.getRefMapSheetNum() - + "/" - + errDto.getUuid(); + Paths.get(referPath).getParent().getParent().toString() + + "/" + + errDto.getRefMapSheetNum() + + "/" + + errDto.getUuid(); } } @@ -230,7 +229,7 @@ public class MapSheetMngService { // hst업데이트 MapSheetMngDto.SyncCheckStateReqUpdateDto updReqSyncCheckState = - new MapSheetMngDto.SyncCheckStateReqUpdateDto(); + new MapSheetMngDto.SyncCheckStateReqUpdateDto(); updReqSyncCheckState.setHstUid(hstUid); updReqSyncCheckState.setFilePath(uploadPath); updReqSyncCheckState.setSyncCheckTfwFileName(tfwFile.getOriginalFilename()); @@ -277,7 +276,7 @@ public class MapSheetMngService { DmlReturn dmlReturn = new DmlReturn("success", "정상처리되었습니다."); MapSheetMngDto.SyncCheckStateReqUpdateDto reqDto = - new MapSheetMngDto.SyncCheckStateReqUpdateDto(); + new MapSheetMngDto.SyncCheckStateReqUpdateDto(); for (Long uid : fileUids) { MapSheetMngDto.MngFilesDto dto = mapSheetMngCoreService.findByFileUidMapSheetFile(uid); @@ -344,13 +343,13 @@ public class MapSheetMngService { log.info("[FIND_FOLDER] DIR : {}", dirPath); List folderList = - FIleChecker.getFolderAll(dirPath, nfsRootDir).stream() - .filter(dir -> dir.getIsValid().equals(true)) - .toList(); + FIleChecker.getFolderAll(dirPath, nfsRootDir).stream() + .filter(dir -> dir.getIsValid().equals(true)) + .toList(); int folderTotCnt = folderList.size(); int folderErrTotCnt = - (int) folderList.stream().filter(dto -> dto.getIsValid().equals(false)).count(); + (int) folderList.stream().filter(dto -> dto.getIsValid().equals(false)).count(); return new FoldersDto(dirPath, folderTotCnt, folderErrTotCnt, folderList); } @@ -362,14 +361,14 @@ public class MapSheetMngService { int endPos = srchDto.getEndPos(); List files = - FIleChecker.getFilesFromAllDepth( - srchDto.getDirPath(), - "*", - srchDto.getExtension(), - 1, - srchDto.getSortType(), - startPos, - endPos); + FIleChecker.getFilesFromAllDepth( + srchDto.getDirPath(), + "*", + srchDto.getExtension(), + 1, + srchDto.getSortType(), + startPos, + endPos); int fileListPos = 0; int fileTotCnt = files.size(); @@ -386,18 +385,18 @@ public class MapSheetMngService { List mngList = mapSheetMngCoreService.findMapSheetMngList(); List yearList = - mngList.stream() - .filter( - dto -> "DONE".equals(dto.getMngState()) || "TAKINGERROR".equals(dto.getMngState())) - .map(dto -> new MngYyyyDto(dto.getMngYyyy(), dto.getMngPath())) - .toList(); + mngList.stream() + .filter( + dto -> "DONE".equals(dto.getMngState()) || "TAKINGERROR".equals(dto.getMngState())) + .map(dto -> new MngYyyyDto(dto.getMngYyyy(), dto.getMngPath())) + .toList(); return yearList; } @Transactional public ModelUploadResDto uploadChunkMapSheetFile( - Long hstUid, UploadAddReq upAddReqDto, MultipartFile chunkFile) throws IOException { + Long hstUid, UploadAddReq upAddReqDto, MultipartFile chunkFile) throws IOException { ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid); @@ -411,20 +410,20 @@ public class MapSheetMngService { if (uploadPath.isEmpty()) { MngFilesDto filesDto = - mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); + mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); String referPath = filesDto.getFilePath(); Path path = Paths.get(referPath); boolean isFiveDigitNumber = - path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); + path.getFileName() != null && path.getFileName().toString().matches("\\d{5}"); log.info("isFiveDigitNumber : " + isFiveDigitNumber); if (isFiveDigitNumber) { uploadPath = Paths.get(referPath).getParent().toString() + "/" + errDto.getRefMapSheetNum(); } else { uploadPath = - Paths.get(referPath).getParent().getParent().toString() - + "/" - + errDto.getRefMapSheetNum(); + Paths.get(referPath).getParent().getParent().toString() + + "/" + + errDto.getRefMapSheetNum(); } } @@ -447,7 +446,7 @@ public class MapSheetMngService { // upload_id, uuid 를 update mapSheetMngCoreService.updateMapSheetMngHstUploadId( - hstUid, upAddReqDto.getUuid(), upRes.getUploadId()); + hstUid, upAddReqDto.getUuid(), upRes.getUploadId()); } modelUploadResDto.setRes(upRes.getRes()); 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 f8f813f8..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 @@ -389,13 +389,15 @@ public class MapSheetInferenceJobService { 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(); -- 2.49.1