파일경로를 application.yml에서 가져올수있게 동적으로 처리 (#100)
Reviewed-on: #100 Co-authored-by: dean[백병남] <byungnam.baek@dabeeo.com> Co-committed-by: dean[백병남] <byungnam.baek@dabeeo.com>
This commit was merged in pull request #100.
This commit is contained in:
@@ -279,7 +279,8 @@ public class FIleChecker {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Folder> getFolderAll(String dirPath, String sortType, int maxDepth) {
|
//kamco-nfs를 확인하는곳이 있어서 파라미터 추가 사용용도확인후 처리
|
||||||
|
public static List<Folder> getFolderAll(String dirPath, String sortType, int maxDepth,String nfsRootDir) {
|
||||||
|
|
||||||
Path startPath = Paths.get(dirPath);
|
Path startPath = Paths.get(dirPath);
|
||||||
|
|
||||||
@@ -308,8 +309,11 @@ public class FIleChecker {
|
|||||||
String parentPath = path.getParent().toString();
|
String parentPath = path.getParent().toString();
|
||||||
String fullPath = path.toAbsolutePath().toString();
|
String fullPath = path.toAbsolutePath().toString();
|
||||||
|
|
||||||
|
//이것이 필요한건가?
|
||||||
|
// boolean isShowHide =
|
||||||
|
// !parentFolderNm.equals("kamco-nfs"); // 폴더 리스트에 kamco-nfs 하위만 나오도록 처리
|
||||||
boolean isShowHide =
|
boolean isShowHide =
|
||||||
!parentFolderNm.equals("kamco-nfs"); // 폴더 리스트에 kamco-nfs 하위만 나오도록 처리
|
!parentFolderNm.equals(nfsRootDir); // 폴더 리스트에 nfsRootDir 하위만 나오도록 처리
|
||||||
File file = new File(fullPath);
|
File file = new File(fullPath);
|
||||||
int childCnt = getChildFolderCount(file);
|
int childCnt = getChildFolderCount(file);
|
||||||
String lastModified = getLastModified(file);
|
String lastModified = getLastModified(file);
|
||||||
@@ -357,8 +361,8 @@ public class FIleChecker {
|
|||||||
return folderList;
|
return folderList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Folder> getFolderAll(String dirPath) {
|
public static List<Folder> getFolderAll(String dirPath,String nfsRootDir) {
|
||||||
return getFolderAll(dirPath, "name", 1);
|
return getFolderAll(dirPath, "name", 1,nfsRootDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getChildFolderCount(File directory) {
|
public static int getChildFolderCount(File directory) {
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public class ChngDetectMastDto {
|
|||||||
|
|
||||||
@Schema(
|
@Schema(
|
||||||
description = "탐지결과 절대경로명 /kamco_nas/export/{chnDtctId}",
|
description = "탐지결과 절대경로명 /kamco_nas/export/{chnDtctId}",
|
||||||
example = "/kamco-nfs/dataset/export/D5F192EC76D34F6592035BE63A84F591")
|
example = "{file.nfs}/dataset/export/D5F192EC76D34F6592035BE63A84F591")
|
||||||
private String pathNm;
|
private String pathNm;
|
||||||
|
|
||||||
@Schema(description = "사원번호", example = "123456")
|
@Schema(description = "사원번호", example = "123456")
|
||||||
|
|||||||
@@ -66,12 +66,16 @@ public class GukYuinApiService {
|
|||||||
@Value("${gukyuin.cdi}")
|
@Value("${gukyuin.cdi}")
|
||||||
private String gukyuinCdiUrl;
|
private String gukyuinCdiUrl;
|
||||||
|
|
||||||
@Value("${file.dataset-dir}")
|
@Value("${file.nfs}")
|
||||||
private String datasetDir;
|
private String nfs;
|
||||||
|
|
||||||
|
// @Value("${file.dataset-dir}")
|
||||||
|
// private String datasetDir;
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public ChngDetectMastDto.RegistResDto regist(
|
public ChngDetectMastDto.RegistResDto regist(
|
||||||
ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) {
|
ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) {
|
||||||
|
|
||||||
String url = gukyuinCdiUrl + "/chn/mast/regist";
|
String url = gukyuinCdiUrl + "/chn/mast/regist";
|
||||||
|
|
||||||
@@ -79,12 +83,12 @@ public class GukYuinApiService {
|
|||||||
chnDetectMastReq.setReqEpno(userUtil.getEmployeeNo());
|
chnDetectMastReq.setReqEpno(userUtil.getEmployeeNo());
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectMastDto.RegistResDto> result =
|
ExternalCallResult<ChngDetectMastDto.RegistResDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.POST,
|
HttpMethod.POST,
|
||||||
chnDetectMastReq,
|
chnDetectMastReq,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectMastDto.RegistResDto.class);
|
ChngDetectMastDto.RegistResDto.class);
|
||||||
|
|
||||||
ChngDetectMastDto.RegistResDto resultBody = result.body();
|
ChngDetectMastDto.RegistResDto resultBody = result.body();
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
@@ -112,27 +116,27 @@ public class GukYuinApiService {
|
|||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
log.error("에러 응답 파싱 실패. rawBody={}", errBody, e);
|
log.error("에러 응답 파싱 실패. rawBody={}", errBody, e);
|
||||||
return new ChngDetectMastDto.RegistResDto(
|
return new ChngDetectMastDto.RegistResDto(
|
||||||
result.statusCode(), // HTTP status
|
result.statusCode(), // HTTP status
|
||||||
errBody, // 원문 그대로
|
errBody, // 원문 그대로
|
||||||
null,
|
null,
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.ADDED.getId(),
|
EventType.ADDED.getId(),
|
||||||
myip,
|
myip,
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
chnDetectMastReq,
|
chnDetectMastReq,
|
||||||
success);
|
success);
|
||||||
|
|
||||||
return resultBody;
|
return resultBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public ChngDetectMastDto.RemoveResDto remove(
|
public ChngDetectMastDto.RemoveResDto remove(
|
||||||
ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) {
|
ChngDetectMastDto.ChnDetectMastReqDto chnDetectMastReq) {
|
||||||
String url = gukyuinCdiUrl + "/chn/mast/remove";
|
String url = gukyuinCdiUrl + "/chn/mast/remove";
|
||||||
|
|
||||||
chnDetectMastReq.setReqIp(myip);
|
chnDetectMastReq.setReqIp(myip);
|
||||||
@@ -140,12 +144,12 @@ public class GukYuinApiService {
|
|||||||
|
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
ExternalCallResult<ChngDetectMastDto.RemoveResDto> result =
|
ExternalCallResult<ChngDetectMastDto.RemoveResDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.POST,
|
HttpMethod.POST,
|
||||||
chnDetectMastReq,
|
chnDetectMastReq,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectMastDto.RemoveResDto.class);
|
ChngDetectMastDto.RemoveResDto.class);
|
||||||
|
|
||||||
ChngDetectMastDto.RemoveResDto resultBody = result.body();
|
ChngDetectMastDto.RemoveResDto resultBody = result.body();
|
||||||
if (resultBody != null && resultBody.getSuccess() != null) {
|
if (resultBody != null && resultBody.getSuccess() != null) {
|
||||||
@@ -157,12 +161,12 @@ public class GukYuinApiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.REMOVE.getId(),
|
EventType.REMOVE.getId(),
|
||||||
myip,
|
myip,
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
chnDetectMastReq,
|
chnDetectMastReq,
|
||||||
success);
|
success);
|
||||||
|
|
||||||
return resultBody;
|
return resultBody;
|
||||||
}
|
}
|
||||||
@@ -171,52 +175,52 @@ public class GukYuinApiService {
|
|||||||
public ChngDetectMastDto.ResultDto detail(String chnDtctMstId) {
|
public ChngDetectMastDto.ResultDto detail(String chnDtctMstId) {
|
||||||
|
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/mast/list/"
|
+ "/chn/mast/list/"
|
||||||
+ chnDtctMstId
|
+ chnDtctMstId
|
||||||
+ "?reqIp="
|
+ "?reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ userUtil.getEmployeeNo();
|
+ userUtil.getEmployeeNo();
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectMastDto.ResultDto> result =
|
ExternalCallResult<ChngDetectMastDto.ResultDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class);
|
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.DETAIL.getId(),
|
EventType.DETAIL.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 등록목록 비교년도,기준년도,차수 조합해서 n개 확인
|
// 등록목록 비교년도,기준년도,차수 조합해서 n개 확인
|
||||||
public ChngDetectMastDto.ResultDto listYearStage(
|
public ChngDetectMastDto.ResultDto listYearStage(
|
||||||
ChngDetectMastDto.ChngDetectMastSearchDto searchDto) {
|
ChngDetectMastDto.ChngDetectMastSearchDto searchDto) {
|
||||||
String queryString = netUtils.dtoToQueryString(searchDto, null);
|
String queryString = netUtils.dtoToQueryString(searchDto, null);
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/mast"
|
+ "/chn/mast"
|
||||||
+ queryString
|
+ queryString
|
||||||
+ "&reqIp="
|
+ "&reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ userUtil.getEmployeeNo();
|
+ userUtil.getEmployeeNo();
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectMastDto.ResultDto> result =
|
ExternalCallResult<ChngDetectMastDto.ResultDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class);
|
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.LIST.getId(),
|
EventType.LIST.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,82 +264,82 @@ public class GukYuinApiService {
|
|||||||
|
|
||||||
// 탐지객체 리스트 조회
|
// 탐지객체 리스트 조회
|
||||||
public ResultContDto findChnContList(
|
public ResultContDto findChnContList(
|
||||||
String chnDtctId, Integer pageIndex, Integer pageSize, String batchYn) {
|
String chnDtctId, Integer pageIndex, Integer pageSize, String batchYn) {
|
||||||
|
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/cont/"
|
+ "/chn/cont/"
|
||||||
+ chnDtctId
|
+ chnDtctId
|
||||||
+ "?pageIndex="
|
+ "?pageIndex="
|
||||||
+ pageIndex
|
+ pageIndex
|
||||||
+ "&pageSize="
|
+ "&pageSize="
|
||||||
+ pageSize
|
+ pageSize
|
||||||
+ "&reqIp="
|
+ "&reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo());
|
+ ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo());
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectContDto.ResultContDto> result =
|
ExternalCallResult<ChngDetectContDto.ResultContDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
null,
|
null,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectContDto.ResultContDto.class);
|
ChngDetectContDto.ResultContDto.class);
|
||||||
|
|
||||||
List<ContBasic> contList = result.body().getResult();
|
List<ContBasic> contList = result.body().getResult();
|
||||||
if (contList == null || contList.isEmpty()) {
|
if (contList == null || contList.isEmpty()) {
|
||||||
return new ResultContDto(
|
return new ResultContDto(
|
||||||
result.body().getCode(),
|
result.body().getCode(),
|
||||||
result.body().getMessage(),
|
result.body().getMessage(),
|
||||||
result.body().getResult(),
|
result.body().getResult(),
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.LIST.getId(),
|
EventType.LIST.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
|
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResultPnuDto findPnuObjMgmtList(String chnDtctId, String chnDtctObjtId) {
|
public ResultPnuDto findPnuObjMgmtList(String chnDtctId, String chnDtctObjtId) {
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/pnu/"
|
+ "/chn/pnu/"
|
||||||
+ chnDtctId
|
+ chnDtctId
|
||||||
+ "/objt/"
|
+ "/objt/"
|
||||||
+ chnDtctObjtId
|
+ chnDtctObjtId
|
||||||
+ "?reqIp="
|
+ "?reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ userUtil.getEmployeeNo();
|
+ userUtil.getEmployeeNo();
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectContDto.ResultPnuDto> result =
|
ExternalCallResult<ChngDetectContDto.ResultPnuDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
null,
|
null,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectContDto.ResultPnuDto.class);
|
ChngDetectContDto.ResultPnuDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.DETAIL.getId(),
|
EventType.DETAIL.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
|
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChngDetectContDto.ResultLabelDto updateChnDtctObjtLabelingYn(
|
public ChngDetectContDto.ResultLabelDto updateChnDtctObjtLabelingYn(
|
||||||
String chnDtctObjtId, String lblYn, String batchYn) {
|
String chnDtctObjtId, String lblYn, String batchYn) {
|
||||||
String url = gukyuinCdiUrl + "/rlb/objt/" + chnDtctObjtId + "/lbl/" + lblYn;
|
String url = gukyuinCdiUrl + "/rlb/objt/" + chnDtctObjtId + "/lbl/" + lblYn;
|
||||||
|
|
||||||
ReqInfo info = new ReqInfo();
|
ReqInfo info = new ReqInfo();
|
||||||
@@ -343,20 +347,20 @@ public class GukYuinApiService {
|
|||||||
info.setReqEpno("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo());
|
info.setReqEpno("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo());
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectContDto.ResultLabelDto> result =
|
ExternalCallResult<ChngDetectContDto.ResultLabelDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.POST,
|
HttpMethod.POST,
|
||||||
info,
|
info,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectContDto.ResultLabelDto.class);
|
ChngDetectContDto.ResultLabelDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.MODIFIED.getId(),
|
EventType.MODIFIED.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
|
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
@@ -364,80 +368,80 @@ public class GukYuinApiService {
|
|||||||
public ResultContDto findChnPnuToContList(String chnDtctId, String pnu) {
|
public ResultContDto findChnPnuToContList(String chnDtctId, String pnu) {
|
||||||
|
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/cont/"
|
+ "/chn/cont/"
|
||||||
+ chnDtctId
|
+ chnDtctId
|
||||||
+ "/pnu/"
|
+ "/pnu/"
|
||||||
+ pnu
|
+ pnu
|
||||||
+ "?reqIp="
|
+ "?reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ userUtil.getEmployeeNo();
|
+ userUtil.getEmployeeNo();
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectContDto.ResultContDto> result =
|
ExternalCallResult<ChngDetectContDto.ResultContDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
null,
|
null,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectContDto.ResultContDto.class);
|
ChngDetectContDto.ResultContDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.LIST.getId(),
|
EventType.LIST.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResultDto listChnDtctId(String chnDtctId, String batchYn) {
|
public ResultDto listChnDtctId(String chnDtctId, String batchYn) {
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/mast/"
|
+ "/chn/mast/"
|
||||||
+ chnDtctId
|
+ chnDtctId
|
||||||
+ "?reqIp="
|
+ "?reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo());
|
+ ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo());
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectMastDto.ResultDto> result =
|
ExternalCallResult<ChngDetectMastDto.ResultDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class);
|
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.ResultDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.DETAIL.getId(),
|
EventType.DETAIL.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body().getSuccess());
|
result.body().getSuccess());
|
||||||
|
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
|
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
|
||||||
public void insertGukyuinAuditLog(
|
public void insertGukyuinAuditLog(
|
||||||
String actionType,
|
String actionType,
|
||||||
String myIp,
|
String myIp,
|
||||||
Long userUid,
|
Long userUid,
|
||||||
String requestUri,
|
String requestUri,
|
||||||
Object requestBody,
|
Object requestBody,
|
||||||
boolean successFail) {
|
boolean successFail) {
|
||||||
try {
|
try {
|
||||||
AuditLogEntity log =
|
AuditLogEntity log =
|
||||||
new AuditLogEntity(
|
new AuditLogEntity(
|
||||||
userUid,
|
userUid,
|
||||||
EventType.fromName(actionType),
|
EventType.fromName(actionType),
|
||||||
successFail ? EventStatus.SUCCESS : EventStatus.FAILED,
|
successFail ? EventStatus.SUCCESS : EventStatus.FAILED,
|
||||||
"GUKYUIN", // 메뉴도 국유인으로 하나 따기
|
"GUKYUIN", // 메뉴도 국유인으로 하나 따기
|
||||||
myIp,
|
myIp,
|
||||||
requestUri,
|
requestUri,
|
||||||
requestBody == null ? null : ApiLogFunction.cutRequestBody(requestBody.toString()),
|
requestBody == null ? null : ApiLogFunction.cutRequestBody(requestBody.toString()),
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null);
|
null);
|
||||||
auditLogRepository.save(log);
|
auditLogRepository.save(log);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -453,14 +457,16 @@ public class GukYuinApiService {
|
|||||||
return new ResponseObj(ApiResponseCode.DUPLICATE_DATA, "이미 국유인 연동을 한 회차입니다.");
|
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(
|
return new ResponseObj(
|
||||||
ApiResponseCode.NOT_FOUND_DATA, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다.");
|
ApiResponseCode.NOT_FOUND_DATA, "파일 경로에 회차 실행 파일이 생성되지 않았습니다. 확인 부탁드립니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 비교년도,기준년도로 전송한 데이터 있는지 확인 후 회차 번호 생성
|
// 비교년도,기준년도로 전송한 데이터 있는지 확인 후 회차 번호 생성
|
||||||
Integer maxStage =
|
Integer maxStage =
|
||||||
gukyuinCoreService.findMapSheetLearnYearStage(info.getCompareYyyy(), info.getTargetYyyy());
|
gukyuinCoreService.findMapSheetLearnYearStage(info.getCompareYyyy(), info.getTargetYyyy());
|
||||||
|
|
||||||
// reqDto 셋팅
|
// reqDto 셋팅
|
||||||
ChnDetectMastReqDto reqDto = new ChnDetectMastReqDto();
|
ChnDetectMastReqDto reqDto = new ChnDetectMastReqDto();
|
||||||
@@ -468,14 +474,14 @@ public class GukYuinApiService {
|
|||||||
reqDto.setCrtrYr(String.valueOf(info.getTargetYyyy()));
|
reqDto.setCrtrYr(String.valueOf(info.getTargetYyyy()));
|
||||||
reqDto.setChnDtctSno(String.valueOf(maxStage + 1));
|
reqDto.setChnDtctSno(String.valueOf(maxStage + 1));
|
||||||
reqDto.setChnDtctId(info.getUid());
|
reqDto.setChnDtctId(info.getUid());
|
||||||
reqDto.setPathNm("/kamco-nfs/dataset/export/" + info.getUid());
|
reqDto.setPathNm(kamconfsDatasetExportPathfsDatasetExportPath + info.getUid());
|
||||||
|
|
||||||
// 1회차를 종료 상태로 처리하고 2회차를 보내야 함
|
// 1회차를 종료 상태로 처리하고 2회차를 보내야 함
|
||||||
// 추론(learn), 학습데이터(inference) 둘 다 종료 처리
|
// 추론(learn), 학습데이터(inference) 둘 다 종료 처리
|
||||||
if (maxStage > 0) {
|
if (maxStage > 0) {
|
||||||
Long learnId =
|
Long learnId =
|
||||||
gukyuinCoreService.findMapSheetLearnInfoByYyyy(
|
gukyuinCoreService.findMapSheetLearnInfoByYyyy(
|
||||||
info.getCompareYyyy(), info.getTargetYyyy(), maxStage);
|
info.getCompareYyyy(), info.getTargetYyyy(), maxStage);
|
||||||
gukyuinCoreService.updateMapSheetLearnGukyuinEndStatus(learnId);
|
gukyuinCoreService.updateMapSheetLearnGukyuinEndStatus(learnId);
|
||||||
gukyuinCoreService.updateMapSheetInferenceLabelEndStatus(learnId);
|
gukyuinCoreService.updateMapSheetInferenceLabelEndStatus(learnId);
|
||||||
}
|
}
|
||||||
@@ -494,90 +500,90 @@ public class GukYuinApiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ResultContDto findChnPnuToContObject(
|
public ResultContDto findChnPnuToContObject(
|
||||||
String chnDtctId, String chnDtctObjtId, Integer pageIndex, Integer pageSize) {
|
String chnDtctId, String chnDtctObjtId, Integer pageIndex, Integer pageSize) {
|
||||||
|
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/chn/cont/"
|
+ "/chn/cont/"
|
||||||
+ chnDtctId
|
+ chnDtctId
|
||||||
+ "/chnDtctObjtId/"
|
+ "/chnDtctObjtId/"
|
||||||
+ chnDtctObjtId
|
+ chnDtctObjtId
|
||||||
+ "?pageIndex="
|
+ "?pageIndex="
|
||||||
+ pageIndex
|
+ pageIndex
|
||||||
+ "&pageSize="
|
+ "&pageSize="
|
||||||
+ pageSize
|
+ pageSize
|
||||||
+ "&reqIp="
|
+ "&reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ userUtil.getEmployeeNo();
|
+ userUtil.getEmployeeNo();
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectContDto.ResultContDto> result =
|
ExternalCallResult<ChngDetectContDto.ResultContDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url,
|
url,
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
null,
|
null,
|
||||||
netUtils.jsonHeaders(),
|
netUtils.jsonHeaders(),
|
||||||
ChngDetectContDto.ResultContDto.class);
|
ChngDetectContDto.ResultContDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.DETAIL.getId(),
|
EventType.DETAIL.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body() != null && result.body().getSuccess());
|
result.body() != null && result.body().getSuccess());
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChngDetectMastDto.RlbDtctDto findRlbDtctList(
|
public ChngDetectMastDto.RlbDtctDto findRlbDtctList(
|
||||||
String chnDtctId, String yyyymmdd, String batchYn) {
|
String chnDtctId, String yyyymmdd, String batchYn) {
|
||||||
|
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/rlb/dtct/"
|
+ "/rlb/dtct/"
|
||||||
+ chnDtctId
|
+ chnDtctId
|
||||||
+ "?reqIp="
|
+ "?reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo())
|
+ ("Y".equals(batchYn) ? "BATCH" : userUtil.getEmployeeNo())
|
||||||
+ "&yyyymmdd="
|
+ "&yyyymmdd="
|
||||||
+ yyyymmdd;
|
+ yyyymmdd;
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectMastDto.RlbDtctDto> result =
|
ExternalCallResult<ChngDetectMastDto.RlbDtctDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class);
|
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.LIST.getId(),
|
EventType.LIST.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body() != null && result.body().getSuccess());
|
result.body() != null && result.body().getSuccess());
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
|
|
||||||
public RlbDtctDto findRlbDtctObject(String chnDtctObjtId) {
|
public RlbDtctDto findRlbDtctObject(String chnDtctObjtId) {
|
||||||
String url =
|
String url =
|
||||||
gukyuinCdiUrl
|
gukyuinCdiUrl
|
||||||
+ "/rlb/objt/"
|
+ "/rlb/objt/"
|
||||||
+ chnDtctObjtId
|
+ chnDtctObjtId
|
||||||
+ "?reqIp="
|
+ "?reqIp="
|
||||||
+ myip
|
+ myip
|
||||||
+ "&reqEpno="
|
+ "&reqEpno="
|
||||||
+ userUtil.getEmployeeNo();
|
+ userUtil.getEmployeeNo();
|
||||||
|
|
||||||
ExternalCallResult<ChngDetectMastDto.RlbDtctDto> result =
|
ExternalCallResult<ChngDetectMastDto.RlbDtctDto> result =
|
||||||
externalHttpClient.call(
|
externalHttpClient.call(
|
||||||
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class);
|
url, HttpMethod.GET, null, netUtils.jsonHeaders(), ChngDetectMastDto.RlbDtctDto.class);
|
||||||
|
|
||||||
this.insertGukyuinAuditLog(
|
this.insertGukyuinAuditLog(
|
||||||
EventType.DETAIL.getId(),
|
EventType.DETAIL.getId(),
|
||||||
netUtils.getLocalIP(),
|
netUtils.getLocalIP(),
|
||||||
userUtil.getId(),
|
userUtil.getId(),
|
||||||
url.replace(gukyuinUrl, ""),
|
url.replace(gukyuinUrl, ""),
|
||||||
null,
|
null,
|
||||||
result.body() != null && result.body().getSuccess());
|
result.body() != null && result.body().getSuccess());
|
||||||
return result.body();
|
return result.body();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ import lombok.Setter;
|
|||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/** AI API 추론 실행 DTO */
|
/**
|
||||||
|
* AI API 추론 실행 DTO
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -16,9 +18,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@ToString
|
@ToString
|
||||||
public class InferenceSendDto {
|
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 pred_requests_areas pred_requests_areas;
|
||||||
private String model_version;
|
private String model_version;
|
||||||
private String cd_model_path;
|
private String cd_model_path;
|
||||||
@@ -28,22 +27,6 @@ public class InferenceSendDto {
|
|||||||
private String cd_model_type;
|
private String cd_model_type;
|
||||||
private Double priority;
|
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
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -57,18 +40,6 @@ public class InferenceSendDto {
|
|||||||
private String input1_scene_path;
|
private String input1_scene_path;
|
||||||
private String input2_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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -460,7 +460,6 @@ public class InferenceResultService {
|
|||||||
log.info("[CHANGE INFERENCE] profile = {} Inforence req", profile);
|
log.info("[CHANGE INFERENCE] profile = {} Inforence req", profile);
|
||||||
log.info("========================================================");
|
log.info("========================================================");
|
||||||
log.info("");
|
log.info("");
|
||||||
dto.changeValForProd();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1) 요청 로그
|
// 1) 요청 로그
|
||||||
@@ -471,13 +470,13 @@ public class InferenceResultService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2) local 환경 임시 처리
|
// 2) local 환경 임시 처리
|
||||||
if ("local".equals(profile)) {
|
// if ("local".equals(profile)) {
|
||||||
if (dto.getPred_requests_areas() == null) {
|
// if (dto.getPred_requests_areas() == null) {
|
||||||
throw new IllegalStateException("pred_requests_areas is 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().setInput1_scene_path("/kamco-nfs/requests/2023_local.geojson");
|
||||||
dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson");
|
// dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson");
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 3) HTTP 호출
|
// 3) HTTP 호출
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|||||||
@@ -47,6 +47,10 @@ public class MapSheetMngService {
|
|||||||
private final UploadService uploadService;
|
private final UploadService uploadService;
|
||||||
private final UserUtil userUtil = new UserUtil();
|
private final UserUtil userUtil = new UserUtil();
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${file.root}")
|
||||||
|
private String nfsRootDir;
|
||||||
|
|
||||||
@Value("${file.sync-root-dir}")
|
@Value("${file.sync-root-dir}")
|
||||||
private String syncRootDir;
|
private String syncRootDir;
|
||||||
|
|
||||||
@@ -70,8 +74,8 @@ public class MapSheetMngService {
|
|||||||
// List조회
|
// List조회
|
||||||
Page<YearEntity> years = mapSheetMngCoreService.getListMapListYYYYWithPaging(req);
|
Page<YearEntity> years = mapSheetMngCoreService.getListMapListYYYYWithPaging(req);
|
||||||
return years.map(YearEntity::getYyyy).getContent().stream()
|
return years.map(YearEntity::getYyyy).getContent().stream()
|
||||||
.sorted(Comparator.reverseOrder())
|
.sorted(Comparator.reverseOrder())
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MngDto findMapSheetMng(int mngYyyy) {
|
public MngDto findMapSheetMng(int mngYyyy) {
|
||||||
@@ -109,9 +113,8 @@ public class MapSheetMngService {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public DmlReturn uploadPair(
|
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;
|
String tmpPath = syncTmpDir;
|
||||||
|
|
||||||
DmlReturn dmlReturn = new DmlReturn("success", "UPLOAD COMPLETE");
|
DmlReturn dmlReturn = new DmlReturn("success", "UPLOAD COMPLETE");
|
||||||
@@ -133,6 +136,7 @@ public class MapSheetMngService {
|
|||||||
return dmlReturn;
|
return dmlReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO 삭제?
|
||||||
MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy());
|
MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy());
|
||||||
|
|
||||||
// 중복체크 -> 도엽50k/uuid 경로에 업로드 할 거라 overwrite 되지 않음
|
// 중복체크 -> 도엽50k/uuid 경로에 업로드 할 거라 overwrite 되지 않음
|
||||||
@@ -179,27 +183,27 @@ public class MapSheetMngService {
|
|||||||
// 파일이 존재하지 않을 경우(0개) 해당년도 다른 파일경로로 참조
|
// 파일이 존재하지 않을 경우(0개) 해당년도 다른 파일경로로 참조
|
||||||
if (uploadPath.isEmpty()) {
|
if (uploadPath.isEmpty()) {
|
||||||
MngFilesDto filesDto =
|
MngFilesDto filesDto =
|
||||||
mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy());
|
mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy());
|
||||||
String referPath = filesDto.getFilePath();
|
String referPath = filesDto.getFilePath();
|
||||||
Path path = Paths.get(referPath);
|
Path path = Paths.get(referPath);
|
||||||
boolean isFiveDigitNumber =
|
boolean isFiveDigitNumber =
|
||||||
path.getFileName() != null && path.getFileName().toString().matches("\\d{5}");
|
path.getFileName() != null && path.getFileName().toString().matches("\\d{5}");
|
||||||
|
|
||||||
log.info("isFiveDigitNumber : " + isFiveDigitNumber);
|
log.info("isFiveDigitNumber : " + isFiveDigitNumber);
|
||||||
if (isFiveDigitNumber) {
|
if (isFiveDigitNumber) {
|
||||||
uploadPath =
|
uploadPath =
|
||||||
Paths.get(referPath).getParent().toString()
|
Paths.get(referPath).getParent().toString()
|
||||||
+ "/"
|
+ "/"
|
||||||
+ errDto.getRefMapSheetNum()
|
+ errDto.getRefMapSheetNum()
|
||||||
+ "/"
|
+ "/"
|
||||||
+ errDto.getUuid();
|
+ errDto.getUuid();
|
||||||
} else {
|
} else {
|
||||||
uploadPath =
|
uploadPath =
|
||||||
Paths.get(referPath).getParent().getParent().toString()
|
Paths.get(referPath).getParent().getParent().toString()
|
||||||
+ "/"
|
+ "/"
|
||||||
+ errDto.getRefMapSheetNum()
|
+ errDto.getRefMapSheetNum()
|
||||||
+ "/"
|
+ "/"
|
||||||
+ errDto.getUuid();
|
+ errDto.getUuid();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +230,7 @@ public class MapSheetMngService {
|
|||||||
|
|
||||||
// hst업데이트
|
// hst업데이트
|
||||||
MapSheetMngDto.SyncCheckStateReqUpdateDto updReqSyncCheckState =
|
MapSheetMngDto.SyncCheckStateReqUpdateDto updReqSyncCheckState =
|
||||||
new MapSheetMngDto.SyncCheckStateReqUpdateDto();
|
new MapSheetMngDto.SyncCheckStateReqUpdateDto();
|
||||||
updReqSyncCheckState.setHstUid(hstUid);
|
updReqSyncCheckState.setHstUid(hstUid);
|
||||||
updReqSyncCheckState.setFilePath(uploadPath);
|
updReqSyncCheckState.setFilePath(uploadPath);
|
||||||
updReqSyncCheckState.setSyncCheckTfwFileName(tfwFile.getOriginalFilename());
|
updReqSyncCheckState.setSyncCheckTfwFileName(tfwFile.getOriginalFilename());
|
||||||
@@ -273,7 +277,7 @@ public class MapSheetMngService {
|
|||||||
DmlReturn dmlReturn = new DmlReturn("success", "정상처리되었습니다.");
|
DmlReturn dmlReturn = new DmlReturn("success", "정상처리되었습니다.");
|
||||||
|
|
||||||
MapSheetMngDto.SyncCheckStateReqUpdateDto reqDto =
|
MapSheetMngDto.SyncCheckStateReqUpdateDto reqDto =
|
||||||
new MapSheetMngDto.SyncCheckStateReqUpdateDto();
|
new MapSheetMngDto.SyncCheckStateReqUpdateDto();
|
||||||
|
|
||||||
for (Long uid : fileUids) {
|
for (Long uid : fileUids) {
|
||||||
MapSheetMngDto.MngFilesDto dto = mapSheetMngCoreService.findByFileUidMapSheetFile(uid);
|
MapSheetMngDto.MngFilesDto dto = mapSheetMngCoreService.findByFileUidMapSheetFile(uid);
|
||||||
@@ -340,13 +344,13 @@ public class MapSheetMngService {
|
|||||||
|
|
||||||
log.info("[FIND_FOLDER] DIR : {}", dirPath);
|
log.info("[FIND_FOLDER] DIR : {}", dirPath);
|
||||||
List<FIleChecker.Folder> folderList =
|
List<FIleChecker.Folder> folderList =
|
||||||
FIleChecker.getFolderAll(dirPath).stream()
|
FIleChecker.getFolderAll(dirPath, nfsRootDir).stream()
|
||||||
.filter(dir -> dir.getIsValid().equals(true))
|
.filter(dir -> dir.getIsValid().equals(true))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
int folderTotCnt = folderList.size();
|
int folderTotCnt = folderList.size();
|
||||||
int folderErrTotCnt =
|
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);
|
return new FoldersDto(dirPath, folderTotCnt, folderErrTotCnt, folderList);
|
||||||
}
|
}
|
||||||
@@ -358,14 +362,14 @@ public class MapSheetMngService {
|
|||||||
int endPos = srchDto.getEndPos();
|
int endPos = srchDto.getEndPos();
|
||||||
|
|
||||||
List<FIleChecker.Basic> files =
|
List<FIleChecker.Basic> files =
|
||||||
FIleChecker.getFilesFromAllDepth(
|
FIleChecker.getFilesFromAllDepth(
|
||||||
srchDto.getDirPath(),
|
srchDto.getDirPath(),
|
||||||
"*",
|
"*",
|
||||||
srchDto.getExtension(),
|
srchDto.getExtension(),
|
||||||
1,
|
1,
|
||||||
srchDto.getSortType(),
|
srchDto.getSortType(),
|
||||||
startPos,
|
startPos,
|
||||||
endPos);
|
endPos);
|
||||||
|
|
||||||
int fileListPos = 0;
|
int fileListPos = 0;
|
||||||
int fileTotCnt = files.size();
|
int fileTotCnt = files.size();
|
||||||
@@ -382,18 +386,18 @@ public class MapSheetMngService {
|
|||||||
|
|
||||||
List<MngDto> mngList = mapSheetMngCoreService.findMapSheetMngList();
|
List<MngDto> mngList = mapSheetMngCoreService.findMapSheetMngList();
|
||||||
List<MngYyyyDto> yearList =
|
List<MngYyyyDto> yearList =
|
||||||
mngList.stream()
|
mngList.stream()
|
||||||
.filter(
|
.filter(
|
||||||
dto -> "DONE".equals(dto.getMngState()) || "TAKINGERROR".equals(dto.getMngState()))
|
dto -> "DONE".equals(dto.getMngState()) || "TAKINGERROR".equals(dto.getMngState()))
|
||||||
.map(dto -> new MngYyyyDto(dto.getMngYyyy(), dto.getMngPath()))
|
.map(dto -> new MngYyyyDto(dto.getMngYyyy(), dto.getMngPath()))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
return yearList;
|
return yearList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public ModelUploadResDto uploadChunkMapSheetFile(
|
public ModelUploadResDto uploadChunkMapSheetFile(
|
||||||
Long hstUid, UploadAddReq upAddReqDto, MultipartFile chunkFile) throws IOException {
|
Long hstUid, UploadAddReq upAddReqDto, MultipartFile chunkFile) throws IOException {
|
||||||
|
|
||||||
ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid);
|
ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid);
|
||||||
|
|
||||||
@@ -407,20 +411,20 @@ public class MapSheetMngService {
|
|||||||
|
|
||||||
if (uploadPath.isEmpty()) {
|
if (uploadPath.isEmpty()) {
|
||||||
MngFilesDto filesDto =
|
MngFilesDto filesDto =
|
||||||
mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy());
|
mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy());
|
||||||
String referPath = filesDto.getFilePath();
|
String referPath = filesDto.getFilePath();
|
||||||
Path path = Paths.get(referPath);
|
Path path = Paths.get(referPath);
|
||||||
boolean isFiveDigitNumber =
|
boolean isFiveDigitNumber =
|
||||||
path.getFileName() != null && path.getFileName().toString().matches("\\d{5}");
|
path.getFileName() != null && path.getFileName().toString().matches("\\d{5}");
|
||||||
|
|
||||||
log.info("isFiveDigitNumber : " + isFiveDigitNumber);
|
log.info("isFiveDigitNumber : " + isFiveDigitNumber);
|
||||||
if (isFiveDigitNumber) {
|
if (isFiveDigitNumber) {
|
||||||
uploadPath = Paths.get(referPath).getParent().toString() + "/" + errDto.getRefMapSheetNum();
|
uploadPath = Paths.get(referPath).getParent().toString() + "/" + errDto.getRefMapSheetNum();
|
||||||
} else {
|
} else {
|
||||||
uploadPath =
|
uploadPath =
|
||||||
Paths.get(referPath).getParent().getParent().toString()
|
Paths.get(referPath).getParent().getParent().toString()
|
||||||
+ "/"
|
+ "/"
|
||||||
+ errDto.getRefMapSheetNum();
|
+ errDto.getRefMapSheetNum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,7 +447,7 @@ public class MapSheetMngService {
|
|||||||
|
|
||||||
// upload_id, uuid 를 update
|
// upload_id, uuid 를 update
|
||||||
mapSheetMngCoreService.updateMapSheetMngHstUploadId(
|
mapSheetMngCoreService.updateMapSheetMngHstUploadId(
|
||||||
hstUid, upAddReqDto.getUuid(), upRes.getUploadId());
|
hstUid, upAddReqDto.getUuid(), upRes.getUploadId());
|
||||||
}
|
}
|
||||||
|
|
||||||
modelUploadResDto.setRes(upRes.getRes());
|
modelUploadResDto.setRes(upRes.getRes());
|
||||||
|
|||||||
@@ -381,29 +381,21 @@ public class MapSheetInferenceJobService {
|
|||||||
log.warn("not InferenceSendDto dto");
|
log.warn("not InferenceSendDto dto");
|
||||||
throw new CustomApiException("BAD_REQUEST", HttpStatus.BAD_REQUEST);
|
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) 요청 로그
|
// 1) 요청 로그
|
||||||
log.info("");
|
log.info("");
|
||||||
log.info("========================================================");
|
log.info("========================================================");
|
||||||
log.info("[SEND INFERENCE] Inference request dto={}", dto);
|
log.info("[SEND INFERENCE] Inference request dto= {}", dto);
|
||||||
log.info("========================================================");
|
log.info("========================================================");
|
||||||
log.info("");
|
log.info("");
|
||||||
// 2) local 환경 임시 처리
|
// 2) local 환경 임시 처리
|
||||||
if ("local".equals(profile)) {
|
// if ("local".equals(profile)) {
|
||||||
if (dto.getPred_requests_areas() == null) {
|
// if (dto.getPred_requests_areas() == null) {
|
||||||
throw new IllegalStateException("pred_requests_areas is 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().setInput1_scene_path("/kamco-nfs/requests/2023_local.geojson");
|
||||||
dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson");
|
// dto.getPred_requests_areas().setInput2_scene_path("/kamco-nfs/requests/2024_local.geojson");
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 3) HTTP 호출
|
// 3) HTTP 호출
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class TrainingDataReviewJobService {
|
|||||||
@Value("${spring.profiles.active}")
|
@Value("${spring.profiles.active}")
|
||||||
private String profile;
|
private String profile;
|
||||||
|
|
||||||
@Value("${training-data.geojson-dir}")
|
@Value("${file.training-data.geojson-dir}")
|
||||||
private String trainingDataDir;
|
private String trainingDataDir;
|
||||||
|
|
||||||
private boolean isLocalProfile() {
|
private boolean isLocalProfile() {
|
||||||
|
|||||||
@@ -89,36 +89,17 @@ mapsheet:
|
|||||||
shp:
|
shp:
|
||||||
baseurl: /app/tmp/detect/result #현재사용안함
|
baseurl: /app/tmp/detect/result #현재사용안함
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
file:
|
file:
|
||||||
#sync-root-dir: D:/kamco-nfs/images/
|
root: kamco-nfs
|
||||||
sync-root-dir: /kamco-nfs/images/
|
nfs: /kamco-nfs
|
||||||
sync-tmp-dir: /kamco-nfs/requests/temp # image upload temp dir
|
pt-path: ${file.nfs}/ckpt/model/v6-cls-checkpoints/
|
||||||
#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/
|
|
||||||
pt-FileName: yolov8_6th-6m.pt
|
pt-FileName: yolov8_6th-6m.pt
|
||||||
|
|
||||||
dataset-response: /kamco-nfs/dataset/response/
|
|
||||||
|
|
||||||
inference:
|
inference:
|
||||||
|
nfs: /kamco-nfs
|
||||||
url: http://192.168.2.183:8000/jobs
|
url: http://192.168.2.183:8000/jobs
|
||||||
batch-url: http://192.168.2.183:8000/batches
|
batch-url: http://192.168.2.183:8000/batches
|
||||||
geojson-dir: /kamco-nfs/requests/ # 추론실행을 위한 파일생성경로
|
jar-path: ${inference.nfs}/repo/jar/shp-exporter.jar
|
||||||
jar-path: /kamco-nfs/repo/jar/shp-exporter.jar
|
|
||||||
inference-server-name: server1,server2,server3,server4
|
inference-server-name: server1,server2,server3,server4
|
||||||
|
|
||||||
gukyuin:
|
gukyuin:
|
||||||
@@ -126,9 +107,6 @@ gukyuin:
|
|||||||
url: http://192.168.2.129:5301
|
url: http://192.168.2.129:5301
|
||||||
cdi: ${gukyuin.url}/api/kcd/cdi
|
cdi: ${gukyuin.url}/api/kcd/cdi
|
||||||
|
|
||||||
training-data:
|
|
||||||
geojson-dir: /kamco-nfs/dataset/request/
|
|
||||||
|
|
||||||
layer:
|
layer:
|
||||||
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
|
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
|
||||||
wms-path: geoserver/cd
|
wms-path: geoserver/cd
|
||||||
|
|||||||
@@ -67,34 +67,17 @@ mapsheet:
|
|||||||
shp:
|
shp:
|
||||||
baseurl: /Users/bokmin/detect/result
|
baseurl: /Users/bokmin/detect/result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
file:
|
file:
|
||||||
sync-root-dir: C:/Users/gypark/kamco-nfs/images/
|
root: kamco-nfs
|
||||||
#sync-root-dir: /kamco-nfs/images/
|
nfs: C:/Users/gypark/kamco-nfs
|
||||||
sync-tmp-dir: ${file.sync-root-dir}/tmp/
|
pt-path: ${file.nfs}/ckpt/classification/
|
||||||
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/
|
|
||||||
pt-FileName: v5-best.pt
|
pt-FileName: v5-best.pt
|
||||||
dataset-response: /kamco-nfs/dataset/response/
|
|
||||||
|
|
||||||
inference:
|
inference:
|
||||||
|
nfs: C:/Users/gyparkkamco-nfs
|
||||||
url: http://10.100.0.11:8000/jobs
|
url: http://10.100.0.11:8000/jobs
|
||||||
batch-url: http://10.100.0.11:8000/batches
|
batch-url: http://10.100.0.11:8000/batches
|
||||||
geojson-dir: /kamco-nfs/requests/
|
jar-path: jar/shp-exporter.jar
|
||||||
jar-path: jar/makeshp-1.0.0.jar
|
|
||||||
inference-server-name: server1,server2,server3,server4
|
inference-server-name: server1,server2,server3,server4
|
||||||
|
|
||||||
gukyuin:
|
gukyuin:
|
||||||
@@ -102,9 +85,6 @@ gukyuin:
|
|||||||
url: http://192.168.2.129:5301
|
url: http://192.168.2.129:5301
|
||||||
cdi: ${gukyuin.url}/api/kcd/cdi
|
cdi: ${gukyuin.url}/api/kcd/cdi
|
||||||
|
|
||||||
training-data:
|
|
||||||
geojson-dir: /kamco-nfs/model_output/labeling/
|
|
||||||
|
|
||||||
layer:
|
layer:
|
||||||
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
|
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
|
||||||
wms-path: geoserver/cd
|
wms-path: geoserver/cd
|
||||||
|
|||||||
@@ -84,36 +84,23 @@ mapsheet:
|
|||||||
baseurl: /app/detect/result #현재사용안함
|
baseurl: /app/detect/result #현재사용안함
|
||||||
|
|
||||||
file:
|
file:
|
||||||
sync-root-dir: /kamco-nfs/images/
|
root: data
|
||||||
sync-tmp-dir: /kamco-nfs/repo/tmp # image upload temp dir
|
nfs: /data
|
||||||
sync-file-extention: tfw,tif
|
pt-path: ${file.nfs}/ckpt/model/v6-cls-checkpoints/
|
||||||
|
|
||||||
#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
|
pt-FileName: yolov8_6th-6m.pt
|
||||||
dataset-response: /kamco-nfs/dataset/response/
|
|
||||||
|
|
||||||
inference:
|
inference:
|
||||||
url: http://127.0.0.1:8000/jobs
|
nfs: /data
|
||||||
batch-url: http://127.0.0.1:8000/batches
|
url: http://172.16.4.56:8000/jobs
|
||||||
geojson-dir: /kamco-nfs/requests/ # 학습서버에서 트레이닝한 모델업로드경로
|
batch-url: http://172.16.4.56:8000/batches
|
||||||
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
|
inference-server-name: server1,server2,server3,server4
|
||||||
|
|
||||||
gukyuin:
|
gukyuin:
|
||||||
url: http://127.0.0.1:5301
|
url: http://127.0.0.1:5301
|
||||||
cdi: ${gukyuin.url}/api/kcd/cdi
|
cdi: ${gukyuin.url}/api/kcd/cdi
|
||||||
|
|
||||||
training-data:
|
|
||||||
geojson-dir: /kamco-nfs/dataset/request/
|
|
||||||
|
|
||||||
layer:
|
layer:
|
||||||
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
|
geoserver-url: https://kamco.geo-dev.gs.dabeeo.com
|
||||||
|
|||||||
@@ -67,3 +67,22 @@ management:
|
|||||||
include:
|
include:
|
||||||
- "health"
|
- "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
|
||||||
|
|||||||
Reference in New Issue
Block a user