[KC-116] shp 파일 생성 기능 수정

This commit is contained in:
2026-01-19 10:48:38 +09:00
parent 1f43542b3b
commit 532757ebe7

View File

@@ -53,9 +53,7 @@ public class MapSheetInferenceJobService {
@Value("${inference.jar-path}") @Value("${inference.jar-path}")
private String jarPath; private String jarPath;
/** /** 추론 진행 배치 1분 */
* 추론 진행 배치 1분
*/
@Scheduled(fixedDelay = 60_000) @Scheduled(fixedDelay = 60_000)
public void runBatch() { public void runBatch() {
if (isLocalProfile()) { if (isLocalProfile()) {
@@ -140,7 +138,7 @@ public class MapSheetInferenceJobService {
String url = batchUrl + "/" + batchId; String url = batchUrl + "/" + batchId;
ExternalCallResult<String> result = ExternalCallResult<String> result =
externalHttpClient.call(url, HttpMethod.GET, null, jsonHeaders(), String.class); externalHttpClient.call(url, HttpMethod.GET, null, jsonHeaders(), String.class);
int status = result.statusCode(); int status = result.statusCode();
if (status == 404) { if (status == 404) {
@@ -222,7 +220,7 @@ public class MapSheetInferenceJobService {
batchIds.add(sheet.getM3BatchId()); batchIds.add(sheet.getM3BatchId());
List<InferenceResultsTestingDto.ShpDto> resultList = List<InferenceResultsTestingDto.ShpDto> resultList =
inferenceResultCoreService.getInferenceResults(batchIds); inferenceResultCoreService.getInferenceResults(batchIds);
String inferenceId = ""; String inferenceId = "";
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@@ -312,28 +310,28 @@ public class MapSheetInferenceJobService {
// 추론 실행 api 파라미터 조회 // 추론 실행 api 파라미터 조회
InferenceProgressDto progressDto = InferenceProgressDto progressDto =
inferenceResultCoreService.getInferenceAiResultById(id, modelUuid); inferenceResultCoreService.getInferenceAiResultById(id, modelUuid);
// ai 에 맞는 모델 명으로 변경 // ai 에 맞는 모델 명으로 변경
String inferenceType = modelToInferenceType(type); String inferenceType = modelToInferenceType(type);
InferenceSendDto.pred_requests_areas predRequestsAreas = InferenceSendDto.pred_requests_areas predRequestsAreas =
new InferenceSendDto.pred_requests_areas(); new InferenceSendDto.pred_requests_areas();
predRequestsAreas.setInput1_year(progressDto.getPred_requests_areas().getInput1_year()); predRequestsAreas.setInput1_year(progressDto.getPred_requests_areas().getInput1_year());
predRequestsAreas.setInput2_year(progressDto.getPred_requests_areas().getInput2_year()); predRequestsAreas.setInput2_year(progressDto.getPred_requests_areas().getInput2_year());
predRequestsAreas.setInput1_scene_path( predRequestsAreas.setInput1_scene_path(
progressDto.getPred_requests_areas().getInput1_scene_path()); progressDto.getPred_requests_areas().getInput1_scene_path());
predRequestsAreas.setInput2_scene_path( predRequestsAreas.setInput2_scene_path(
progressDto.getPred_requests_areas().getInput2_scene_path()); progressDto.getPred_requests_areas().getInput2_scene_path());
InferenceSendDto m = new InferenceSendDto(); InferenceSendDto m = new InferenceSendDto();
m.setPred_requests_areas(predRequestsAreas); m.setPred_requests_areas(predRequestsAreas);
m.setModel_version(progressDto.getModelVersion()); m.setModel_version(progressDto.getModelVersion());
m.setCd_model_path(progressDto.getCdModelPath() + "/" + progressDto.getCdModelFileName()); m.setCd_model_path(progressDto.getCdModelPath() + "/" + progressDto.getCdModelFileName());
m.setCd_model_config( m.setCd_model_config(
progressDto.getCdModelConfigPath() + "/" + progressDto.getCdModelConfigFileName()); progressDto.getCdModelConfigPath() + "/" + progressDto.getCdModelConfigFileName());
m.setCls_model_path( m.setCls_model_path(
progressDto.getCdModelClsPath() + "/" + progressDto.getCdModelClsFileName()); progressDto.getCdModelClsPath() + "/" + progressDto.getCdModelClsFileName());
m.setCls_model_version(progressDto.getClsModelVersion()); m.setCls_model_version(progressDto.getClsModelVersion());
m.setCd_model_type(inferenceType); m.setCd_model_type(inferenceType);
m.setPriority(progressDto.getPriority()); m.setPriority(progressDto.getPriority());
@@ -404,7 +402,7 @@ public class MapSheetInferenceJobService {
headers.setAccept(List.of(MediaType.APPLICATION_JSON)); headers.setAccept(List.of(MediaType.APPLICATION_JSON));
ExternalCallResult<String> result = ExternalCallResult<String> result =
externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class); externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class);
if (result.statusCode() < 200 || result.statusCode() >= 300) { if (result.statusCode() < 200 || result.statusCode() >= 300) {
log.error("Inference API failed. status={}, body={}", result.statusCode(), result.body()); log.error("Inference API failed. status={}, body={}", result.statusCode(), result.body());
@@ -414,8 +412,7 @@ public class MapSheetInferenceJobService {
// 4) 응답 파싱 // 4) 응답 파싱
try { try {
List<Map<String, Object>> list = List<Map<String, Object>> list =
objectMapper.readValue(result.body(), new TypeReference<>() { objectMapper.readValue(result.body(), new TypeReference<>() {});
});
if (list.isEmpty()) { if (list.isEmpty()) {
throw new IllegalStateException("Inference response is empty"); throw new IllegalStateException("Inference response is empty");
@@ -443,11 +440,9 @@ public class MapSheetInferenceJobService {
return "local".equalsIgnoreCase(profile); return "local".equalsIgnoreCase(profile);
} }
/** /** 모델별 추론 종료 update */
* 모델별 추론 종료 update
*/
private void updateProcessingEndTimeByModel( private void updateProcessingEndTimeByModel(
JobStatusDto dto, UUID uuid, ZonedDateTime dateTime, String type) { JobStatusDto dto, UUID uuid, ZonedDateTime dateTime, String type) {
SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto(); SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto();
saveInferenceAiDto.setUuid(uuid); saveInferenceAiDto.setUuid(uuid);
saveInferenceAiDto.setUpdateUid(0L); saveInferenceAiDto.setUpdateUid(0L);
@@ -460,9 +455,9 @@ public class MapSheetInferenceJobService {
inferenceResultCoreService.update(saveInferenceAiDto); inferenceResultCoreService.update(saveInferenceAiDto);
List<Long> failedIds = List<Long> failedIds =
Optional.ofNullable(dto.getFailedIds()).orElse(List.of()).stream() Optional.ofNullable(dto.getFailedIds()).orElse(List.of()).stream()
.map(Long::valueOf) .map(Long::valueOf)
.toList(); .toList();
// 도엽별 실패여부 업데이트 // 도엽별 실패여부 업데이트
inferenceResultCoreService.saveFail5k(uuid, failedIds, type); inferenceResultCoreService.saveFail5k(uuid, failedIds, type);