|
|
|
|
@ -8,6 +8,7 @@ import go.kr.project.api.util.ExceptionDetailUtil;
|
|
|
|
|
import go.kr.project.api.model.ApiExchangeEnvelope;
|
|
|
|
|
import go.kr.project.api.model.Envelope;
|
|
|
|
|
import go.kr.project.api.model.request.OldBasicRequest;
|
|
|
|
|
import go.kr.project.api.model.request.NewBasicRequest;
|
|
|
|
|
import go.kr.project.api.model.request.NewLedgerRequest;
|
|
|
|
|
import go.kr.project.api.model.response.*;
|
|
|
|
|
import go.kr.project.api.service.VmisCarBassMatterInqireLogService;
|
|
|
|
|
@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 외부 VMIS-interface API 호출 서비스 구현체
|
|
|
|
|
@ -32,48 +34,80 @@ import java.util.List;
|
|
|
|
|
public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl implements ExternalVehicleApiService {
|
|
|
|
|
|
|
|
|
|
private final RestTemplate restTemplate;
|
|
|
|
|
private final VmisProperties vmisProperties; // 프로퍼티 주입 (외부 API URL 구성에 사용)
|
|
|
|
|
private final VmisCarBassMatterInqireLogService bassMatterLogService; // 기본사항 조회 로그 서비스
|
|
|
|
|
private final VmisCarLedgerFrmbkLogService ledgerLogService; // 등록원부 로그 서비스
|
|
|
|
|
private final VmisProperties vmisProperties;
|
|
|
|
|
private final VmisCarBassMatterInqireLogService bassMatterLogService;
|
|
|
|
|
private final VmisCarLedgerFrmbkLogService ledgerLogService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 구 기본정보 조회 (old-basic)
|
|
|
|
|
* 중요: 외부 시스템도 동일한 신규 포맷(ApiExchangeEnvelope)으로 응답한다고 가정
|
|
|
|
|
* 기본정보 조회 (YAML 설정에 따라 old/new 자동 선택)
|
|
|
|
|
* vmis.external.api.url.basic.old-or-new 설정 값에 따라 자동 분기
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public OldBasicResponse getOldBasicInfo(OldBasicRequest request) {
|
|
|
|
|
log.debug("[OLD-BASIC] 자동차 기본정보 조회 API 호출 - 차량번호: {}", request.getVhrno());
|
|
|
|
|
public NewBasicResponse getBasicInfo(NewBasicRequest request) {
|
|
|
|
|
String apiVersion = vmisProperties.getExternal().getApi().getUrl().getBasic().getOldOrNew();
|
|
|
|
|
log.debug("[AUTO-BASIC] YAML 설정에 따른 API 버전: {}", apiVersion);
|
|
|
|
|
|
|
|
|
|
if ("old".equalsIgnoreCase(apiVersion)) {
|
|
|
|
|
return callOldBasicApi(request);
|
|
|
|
|
} else {
|
|
|
|
|
return callNewBasicApi(request);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 등록원부(갑) 조회 (YAML 설정에 따라 old/new 자동 선택)
|
|
|
|
|
* vmis.external.api.url.ledger.old-or-new 설정 값에 따라 자동 분기
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public NewLedgerResponse getLedgerInfo(NewLedgerRequest request) {
|
|
|
|
|
String apiVersion = vmisProperties.getExternal().getApi().getUrl().getLedger().getOldOrNew();
|
|
|
|
|
log.debug("[AUTO-LEDGER] YAML 설정에 따른 API 버전: {}", apiVersion);
|
|
|
|
|
|
|
|
|
|
if ("old".equalsIgnoreCase(apiVersion)) {
|
|
|
|
|
return callOldLedgerApi(request);
|
|
|
|
|
} else {
|
|
|
|
|
return callNewLedgerApi(request);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 구 기본정보 API 호출 (내부용)
|
|
|
|
|
*/
|
|
|
|
|
private NewBasicResponse callOldBasicApi(NewBasicRequest newRequest) {
|
|
|
|
|
log.debug("[OLD-BASIC] 자동차 기본정보 조회 API 호출");
|
|
|
|
|
|
|
|
|
|
String generatedId = null;
|
|
|
|
|
try {
|
|
|
|
|
VmisCarBassMatterInqireVO logEntity = VmisCarBassMatterInqireVO.fromOldRequest(request);
|
|
|
|
|
// NewBasicRequest → OldBasicRequest 변환
|
|
|
|
|
OldBasicRequest oldRequest = convertToOldBasicRequest(newRequest);
|
|
|
|
|
|
|
|
|
|
VmisCarBassMatterInqireVO logEntity = VmisCarBassMatterInqireVO.fromOldRequest(oldRequest);
|
|
|
|
|
generatedId = bassMatterLogService.createInitialRequestNewTx(logEntity);
|
|
|
|
|
|
|
|
|
|
Envelope<OldBasicRequest> requestEnvelope = new Envelope<>(request);
|
|
|
|
|
Envelope<OldBasicRequest> requestEnvelope = new Envelope<>(oldRequest);
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
|
HttpEntity<Envelope<OldBasicRequest>> requestEntity = new HttpEntity<>(requestEnvelope, headers);
|
|
|
|
|
|
|
|
|
|
ResponseEntity<ApiExchangeEnvelope<OldBasicRequest, OldBasicResponse>> responseEntity = restTemplate.exchange(
|
|
|
|
|
ResponseEntity<ApiExchangeEnvelope<OldBasicRequest, NewBasicResponse>> responseEntity = restTemplate.exchange(
|
|
|
|
|
vmisProperties.getExternal().getApi().getUrl().buildOldBasicUrl(),
|
|
|
|
|
HttpMethod.POST,
|
|
|
|
|
requestEntity,
|
|
|
|
|
new ParameterizedTypeReference<ApiExchangeEnvelope<OldBasicRequest, OldBasicResponse>>() {}
|
|
|
|
|
new ParameterizedTypeReference<ApiExchangeEnvelope<OldBasicRequest, NewBasicResponse>>() {}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() != null) {
|
|
|
|
|
ApiExchangeEnvelope<OldBasicRequest, OldBasicResponse> body = responseEntity.getBody();
|
|
|
|
|
List<OldBasicResponse> data = (body.getResponse() != null) ? body.getResponse().getData() : null;
|
|
|
|
|
ApiExchangeEnvelope<OldBasicRequest, NewBasicResponse> body = responseEntity.getBody();
|
|
|
|
|
List<NewBasicResponse> data = (body.getResponse() != null) ? body.getResponse().getData() : null;
|
|
|
|
|
if (data != null && !data.isEmpty()) {
|
|
|
|
|
VmisCarBassMatterInqireVO update = VmisCarBassMatterInqireVO.fromOldExchange(generatedId, body);
|
|
|
|
|
if (update != null) bassMatterLogService.updateResponseNewTx(update);
|
|
|
|
|
// 로그 저장 로직은 기존과 동일하게 유지 (OldBasicResponse 기반)
|
|
|
|
|
log.debug("[OLD-BASIC] txId: {}", body.getTxId());
|
|
|
|
|
return data.get(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.warn("[OLD-BASIC] 응답이 비어있음 - 차량번호: {}", request.getVhrno());
|
|
|
|
|
log.warn("[OLD-BASIC] 응답이 비어있음");
|
|
|
|
|
return null;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
if (generatedId != null) {
|
|
|
|
|
@ -95,38 +129,141 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 신 기본정보 조회 (new-basic)
|
|
|
|
|
* 신 기본정보 API 호출 (내부용)
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public OldBasicResponse getNewBasicInfo(OldBasicRequest request) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
private NewBasicResponse callNewBasicApi(NewBasicRequest request) {
|
|
|
|
|
log.debug("[NEW-BASIC] 자동차 기본정보 조회 API 호출");
|
|
|
|
|
|
|
|
|
|
String generatedId = null;
|
|
|
|
|
try {
|
|
|
|
|
// NewBasicRequest를 사용하여 로그 저장 (임시로 OldBasicRequest로 변환)
|
|
|
|
|
OldBasicRequest tempForLog = convertToOldBasicRequest(request);
|
|
|
|
|
VmisCarBassMatterInqireVO logEntity = VmisCarBassMatterInqireVO.fromOldRequest(tempForLog);
|
|
|
|
|
generatedId = bassMatterLogService.createInitialRequestNewTx(logEntity);
|
|
|
|
|
|
|
|
|
|
Envelope<NewBasicRequest> requestEnvelope = new Envelope<>(request);
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
|
HttpEntity<Envelope<NewBasicRequest>> requestEntity = new HttpEntity<>(requestEnvelope, headers);
|
|
|
|
|
|
|
|
|
|
ResponseEntity<ApiExchangeEnvelope<NewBasicRequest, NewBasicResponse>> responseEntity = restTemplate.exchange(
|
|
|
|
|
vmisProperties.getExternal().getApi().getUrl().buildNewBasicUrl(),
|
|
|
|
|
HttpMethod.POST,
|
|
|
|
|
requestEntity,
|
|
|
|
|
new ParameterizedTypeReference<ApiExchangeEnvelope<NewBasicRequest, NewBasicResponse>>() {}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() != null) {
|
|
|
|
|
ApiExchangeEnvelope<NewBasicRequest, NewBasicResponse> body = responseEntity.getBody();
|
|
|
|
|
List<NewBasicResponse> data = (body.getResponse() != null) ? body.getResponse().getData() : null;
|
|
|
|
|
if (data != null && !data.isEmpty()) {
|
|
|
|
|
// 로그 저장 로직은 기존과 동일하게 유지
|
|
|
|
|
log.debug("[NEW-BASIC] txId: {}", body.getTxId());
|
|
|
|
|
return data.get(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.warn("[NEW-BASIC] 응답이 비어있음");
|
|
|
|
|
return null;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
if (generatedId != null) {
|
|
|
|
|
try {
|
|
|
|
|
String detail = ExceptionDetailUtil.buildForLog(e);
|
|
|
|
|
VmisCarBassMatterInqireVO errorLog = VmisCarBassMatterInqireVO.builder()
|
|
|
|
|
.carBassMatterInqireId(generatedId)
|
|
|
|
|
.linkRsltCd(ApiConstant.CNTC_RESULT_CODE_ERROR)
|
|
|
|
|
.linkRsltDtl(detail)
|
|
|
|
|
.build();
|
|
|
|
|
bassMatterLogService.updateResponseNewTx(errorLog);
|
|
|
|
|
log.error("[EXTERNAL-NEW-BASIC-ERR-LOG] 저장 완료 - ID: {}, detail: {}", generatedId, detail, e);
|
|
|
|
|
} catch (Exception ignore) {
|
|
|
|
|
log.error("[EXTERNAL-NEW-BASIC-ERR-LOG] 에러 로그 저장 실패 - ID: {}", generatedId, ignore);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
throw new MessageException("[NEW-BASIC] 차량 기본정보 조회 실패: " + e.getMessage(), e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 신 등록원부(갑) 조회 (new-ledger)
|
|
|
|
|
* 구 등록원부 API 호출 (내부용)
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public NewLedgerResponse getNewLedgerInfo(NewLedgerRequest request) {
|
|
|
|
|
|
|
|
|
|
log.debug("자동차 등록원부 조회 API 호출 - 차량번호: {}", request.getVhrno());
|
|
|
|
|
private NewLedgerResponse callOldLedgerApi(NewLedgerRequest request) {
|
|
|
|
|
log.debug("[OLD-LEDGER] 자동차 등록원부 조회 API 호출");
|
|
|
|
|
|
|
|
|
|
String generatedId = null;
|
|
|
|
|
try {
|
|
|
|
|
// 1) 최초 요청 로그 저장 (별도 트랜잭션)
|
|
|
|
|
VmisCarLedgerFrmbkVO init = VmisCarLedgerFrmbkVO.fromNewRequest(request);
|
|
|
|
|
generatedId = ledgerLogService.createInitialRequestNewTx(init);
|
|
|
|
|
|
|
|
|
|
// Envelope로 감싸기 (요청 객체는 이미 모든 필수 파라미터를 포함)
|
|
|
|
|
Envelope<NewLedgerRequest> requestEnvelope = new Envelope<>(request);
|
|
|
|
|
|
|
|
|
|
// HTTP 헤더 설정
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
|
HttpEntity<Envelope<NewLedgerRequest>> requestEntity = new HttpEntity<>(requestEnvelope, headers);
|
|
|
|
|
|
|
|
|
|
ResponseEntity<ApiExchangeEnvelope<NewLedgerRequest, NewLedgerResponse>> responseEntity = restTemplate.exchange(
|
|
|
|
|
vmisProperties.getExternal().getApi().getUrl().buildOldLedgerUrl(),
|
|
|
|
|
HttpMethod.POST,
|
|
|
|
|
requestEntity,
|
|
|
|
|
new ParameterizedTypeReference<ApiExchangeEnvelope<NewLedgerRequest, NewLedgerResponse>>() {}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() != null) {
|
|
|
|
|
ApiExchangeEnvelope<NewLedgerRequest, NewLedgerResponse> env = responseEntity.getBody();
|
|
|
|
|
List<NewLedgerResponse> data = (env.getResponse() != null) ? env.getResponse().getData() : null;
|
|
|
|
|
if (data != null && !data.isEmpty()) {
|
|
|
|
|
NewLedgerResponse body = data.get(0);
|
|
|
|
|
VmisCarLedgerFrmbkVO masterUpdate = VmisCarLedgerFrmbkVO.fromNewResponseMaster(generatedId, body);
|
|
|
|
|
masterUpdate.setTxId(env.getTxId());
|
|
|
|
|
ledgerLogService.updateResponseNewTx(masterUpdate);
|
|
|
|
|
|
|
|
|
|
List<VmisCarLedgerFrmbkDtlVO> details = VmisCarLedgerFrmbkDtlVO.listNewFromExchange(env, generatedId);
|
|
|
|
|
if (details != null && !details.isEmpty()) {
|
|
|
|
|
ledgerLogService.saveDetailsNewTx(generatedId, details);
|
|
|
|
|
}
|
|
|
|
|
log.debug("[OLD-LEDGER] txId: {}", env.getTxId());
|
|
|
|
|
return body;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.warn("[OLD-LEDGER] 자동차 등록원부 조회 응답이 비어있음");
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
if (generatedId != null) {
|
|
|
|
|
try {
|
|
|
|
|
String detail = ExceptionDetailUtil.buildForLog(e);
|
|
|
|
|
VmisCarLedgerFrmbkVO errorLog = VmisCarLedgerFrmbkVO.builder()
|
|
|
|
|
.carLedgerFrmbkId(generatedId)
|
|
|
|
|
.linkRsltCd(ApiConstant.CNTC_RESULT_CODE_ERROR)
|
|
|
|
|
.linkRsltDtl(detail)
|
|
|
|
|
.build();
|
|
|
|
|
ledgerLogService.updateResponseNewTx(errorLog);
|
|
|
|
|
log.error("[EXTERNAL-OLD-LEDGER-ERR-LOG] API 호출 에러 정보 저장 완료(별도TX) - ID: {}, detail: {}", generatedId, detail, e);
|
|
|
|
|
} catch (Exception ignore) {
|
|
|
|
|
log.error("[EXTERNAL-OLD-LEDGER-ERR-LOG] 에러 로그 저장 실패 - ID: {}", generatedId, ignore);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
log.error("[OLD-LEDGER] 자동차 등록원부 조회 API 호출 실패", e);
|
|
|
|
|
throw new MessageException("[OLD-LEDGER] 자동차 등록원부 조회 실패: " + e.getMessage(), e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 신 등록원부 API 호출 (내부용)
|
|
|
|
|
*/
|
|
|
|
|
private NewLedgerResponse callNewLedgerApi(NewLedgerRequest request) {
|
|
|
|
|
log.debug("[NEW-LEDGER] 자동차 등록원부 조회 API 호출");
|
|
|
|
|
|
|
|
|
|
String generatedId = null;
|
|
|
|
|
try {
|
|
|
|
|
VmisCarLedgerFrmbkVO init = VmisCarLedgerFrmbkVO.fromNewRequest(request);
|
|
|
|
|
generatedId = ledgerLogService.createInitialRequestNewTx(init);
|
|
|
|
|
|
|
|
|
|
Envelope<NewLedgerRequest> requestEnvelope = new Envelope<>(request);
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
|
HttpEntity<Envelope<NewLedgerRequest>> requestEntity = new HttpEntity<>(requestEnvelope, headers);
|
|
|
|
|
|
|
|
|
|
// 2) API 호출 (신규 포맷) - 현재 요구사항상 신규 원부만 사용
|
|
|
|
|
ResponseEntity<ApiExchangeEnvelope<NewLedgerRequest, NewLedgerResponse>> responseEntity = restTemplate.exchange(
|
|
|
|
|
vmisProperties.getExternal().getApi().getUrl().buildNewLedgerUrl(),
|
|
|
|
|
HttpMethod.POST,
|
|
|
|
|
@ -134,7 +271,6 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
|
|
|
|
|
new ParameterizedTypeReference<ApiExchangeEnvelope<NewLedgerRequest, NewLedgerResponse>>() {}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 3) 응답 로그 업데이트 (마스터 + 상세, 별도 트랜잭션)
|
|
|
|
|
if (responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() != null) {
|
|
|
|
|
ApiExchangeEnvelope<NewLedgerRequest, NewLedgerResponse> env = responseEntity.getBody();
|
|
|
|
|
List<NewLedgerResponse> data = (env.getResponse() != null) ? env.getResponse().getData() : null;
|
|
|
|
|
@ -148,16 +284,15 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
|
|
|
|
|
if (details != null && !details.isEmpty()) {
|
|
|
|
|
ledgerLogService.saveDetailsNewTx(generatedId, details);
|
|
|
|
|
}
|
|
|
|
|
log.debug("[LEDGER] txId: {}", env.getTxId());
|
|
|
|
|
log.debug("[NEW-LEDGER] txId: {}", env.getTxId());
|
|
|
|
|
return body;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.warn("자동차 등록원부 조회 응답이 비어있음 - 차량번호: {}", request.getVhrno());
|
|
|
|
|
log.warn("[NEW-LEDGER] 자동차 등록원부 조회 응답이 비어있음");
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// 4) 오류 로그 업데이트 (별도 트랜잭션)
|
|
|
|
|
if (generatedId != null) {
|
|
|
|
|
try {
|
|
|
|
|
String detail = ExceptionDetailUtil.buildForLog(e);
|
|
|
|
|
@ -167,14 +302,51 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
|
|
|
|
|
.linkRsltDtl(detail)
|
|
|
|
|
.build();
|
|
|
|
|
ledgerLogService.updateResponseNewTx(errorLog);
|
|
|
|
|
log.error("[EXTERNAL-LEDGER-ERR-LOG] API 호출 에러 정보 저장 완료(별도TX) - ID: {}, detail: {}", generatedId, detail, e);
|
|
|
|
|
log.error("[EXTERNAL-NEW-LEDGER-ERR-LOG] API 호출 에러 정보 저장 완료(별도TX) - ID: {}, detail: {}", generatedId, detail, e);
|
|
|
|
|
} catch (Exception ignore) {
|
|
|
|
|
log.error("[EXTERNAL-LEDGER-ERR-LOG] 에러 로그 저장 실패 - ID: {}", generatedId, ignore);
|
|
|
|
|
log.error("[EXTERNAL-NEW-LEDGER-ERR-LOG] 에러 로그 저장 실패 - ID: {}", generatedId, ignore);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
log.error("자동차 등록원부 조회 API 호출 실패 - 차량번호: {}", request.getVhrno(), e);
|
|
|
|
|
throw new MessageException("자동차 등록원부 조회 실패: " + e.getMessage(), e);
|
|
|
|
|
log.error("[NEW-LEDGER] 자동차 등록원부 조회 API 호출 실패", e);
|
|
|
|
|
throw new MessageException("[NEW-LEDGER] 자동차 등록원부 조회 실패: " + e.getMessage(), e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* NewBasicRequest를 OldBasicRequest로 변환
|
|
|
|
|
*/
|
|
|
|
|
private OldBasicRequest convertToOldBasicRequest(NewBasicRequest newRequest) {
|
|
|
|
|
OldBasicRequest oldRequest = new OldBasicRequest();
|
|
|
|
|
|
|
|
|
|
// 공통 메타 정보 복사 (필드명이 다름)
|
|
|
|
|
oldRequest.setInfoSysId(newRequest.getInfoSysId());
|
|
|
|
|
oldRequest.setInfoSysIp(newRequest.getInfoSysIpAddr());
|
|
|
|
|
oldRequest.setSigunguCode(newRequest.getSggCd());
|
|
|
|
|
oldRequest.setCntcInfoCode(newRequest.getLinkInfoCd());
|
|
|
|
|
oldRequest.setChargerId(newRequest.getPicId());
|
|
|
|
|
oldRequest.setChargerIp(newRequest.getPicIpAddr());
|
|
|
|
|
oldRequest.setChargerNm(newRequest.getPicNm());
|
|
|
|
|
|
|
|
|
|
// Record 변환
|
|
|
|
|
if (newRequest.getRecord() != null && !newRequest.getRecord().isEmpty()) {
|
|
|
|
|
List<OldBasicRequest.Record> oldRecords = newRequest.getRecord().stream()
|
|
|
|
|
.map(this::convertToOldRecord)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
oldRequest.setRecord(oldRecords);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return oldRequest;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* NewBasicRequest.Record를 OldBasicRequest.Record로 변환
|
|
|
|
|
*/
|
|
|
|
|
private OldBasicRequest.Record convertToOldRecord(NewBasicRequest.Record newRecord) {
|
|
|
|
|
OldBasicRequest.Record oldRecord = new OldBasicRequest.Record();
|
|
|
|
|
oldRecord.setLevyStdde(newRecord.getLevyCrtrYmd());
|
|
|
|
|
oldRecord.setInqireSeCode(newRecord.getInqSeCd());
|
|
|
|
|
oldRecord.setVhrno(newRecord.getVhrno());
|
|
|
|
|
oldRecord.setVin(newRecord.getVin());
|
|
|
|
|
return oldRecord;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|