record;
+
+
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ @Schema(name = "NewLedgerRecord", description = "원부 변경내역 record (신버전)")
+ @Getter
+ @Setter
+ public static class Record {
+ /** 해제여부 */
+ @JsonProperty("SZR_RMV_DTL_SN")
+ private String szrRmvDtlSn;
+
+ /** 변경업무구분코드 */
+ @JsonProperty("CHG_TASK_SE_CD")
+ private String chgTaskSeCd;
+
+ /** 주번호 */
+ @JsonProperty("MAIN_NO")
+ private String mainNo;
+
+ /** 부번호 */
+ @JsonProperty("SNO")
+ private String sno;
+
+ /** 사항란 */
+ @JsonProperty("SPCABL_MTTR")
+ private String spcablMttr;
+
+ /** 세대주명 */
+ @JsonProperty("HSHLDR_NM")
+ private String hshldrNm;
+
+ /** 세대주개인암호화번호 */
+ @JsonProperty("HSHLDR_IDECNO")
+ private String hshldrIdecno;
+
+ /** 접수번호 */
+ @JsonProperty("APLY_RCPT_NO")
+ private String aplyRcptNo;
+
+ /** 차량관리번호 */
+ @JsonProperty("VHMNO")
+ private String vhmno;
+
+ /** 원부그룹번호 */
+ @JsonProperty("LEDGER_GROUP_NO")
+ private String ledgerGroupNo;
+
+ /** 원부개별번호 */
+ @JsonProperty("LEDGER_INDIV_NO")
+ private String ledgerIndivNo;
+
+ /** 변경업무구분명 */
+ @JsonProperty("CHG_TASK_SE_NM")
+ private String chgTaskSeNm;
+
+ /** 변경일자 */
+ @JsonProperty("CHG_YMD")
+ private String chgYmd;
+
+ /** 상세순번 */
+ @JsonProperty("DTL_SN")
+ private String dtlSn;
+
+ /** 표기여부 */
+ @JsonProperty("FLAG")
+ private String flag;
+ }
+}
diff --git a/src/main/java/go/kr/project/api/model/response/OldBasicResponse.java b/src/main/java/go/kr/project/api/model/response/OldBasicResponse.java
new file mode 100644
index 0000000..f0c1c27
--- /dev/null
+++ b/src/main/java/go/kr/project/api/model/response/OldBasicResponse.java
@@ -0,0 +1,132 @@
+package go.kr.project.api.model.response;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 자동차기본사항조회 응답 모델 (구버전)
+ *
+ *
+ * 구 규격(도로교통공단/교통안전공단 구버전) 응답을 매핑한 모델입니다.
+ * 상단에 연계 결과코드/상세가 오고, 상세 데이터는 record 배열로 내려옵니다.
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
+@Schema(description = "자동차기본사항조회 응답 모델 (구버전)")
+@Getter
+@Setter
+public class OldBasicResponse { // 총 3개 필드 (외부 클래스 3개, 중첩 Record 클래스 84개)
+
+ /** 연계결과코드 */
+ @JsonProperty("CNTC_RESULT_CODE")
+ private String cntcResultCode;
+
+ /** 연계결과상세 */
+ @JsonProperty("CNTC_RESULT_DTLS")
+ private String cntcResultDtls;
+
+ /** 응답 레코드 목록 */
+ @JsonProperty("record")
+ private List record;
+
+
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ @Schema(name = "OldBasicRecord", description = "기본사항 record 항목 (구버전)")
+ @Getter
+ @Setter
+ public static class Record {
+ @JsonProperty("PRYE") private String prye; // 연식
+ @JsonProperty("REGIST_DE") private String registDe; // 등록일자(변경일)
+ @JsonProperty("ERSR_REGIST_SE_CODE") private String ersrRegistSeCode; // 말소등록구분코드
+ @JsonProperty("ERSR_REGIST_SE_NM") private String ersrRegistSeNm; // 말소등록구분명
+ @JsonProperty("ERSR_REGIST_DE") private String ersrRegistDe; // 말소등록일자
+ @JsonProperty("REGIST_DETAIL_CODE") private String registDetailCode; // 등록상세코드
+ @JsonProperty("DSPLVL") private String dsplvl; // 배기량
+ @JsonProperty("USE_STRNGHLD_LEGALDONG_CODE") private String useStrnghldLegaldongCode; // 사용본거지법정동코드
+ @JsonProperty("USE_STRNGHLD_ADSTRD_CODE") private String useStrnghldAdstrdCode; // 사용본거지행정동코드
+ @JsonProperty("USE_STRNGHLD_MNTN") private String useStrnghldMntn; // 사용본거지산 여부
+ @JsonProperty("USE_STRNGHLD_LNBR") private String useStrnghldLnbr; // 사용본거지번지
+ @JsonProperty("USE_STRNGHLD_HO") private String useStrnghldHo; // 사용본거지호
+ @JsonProperty("USE_STRNGHLD_ADRES_NM") private String useStrnghldAdresNm; // 사용본거지상세주소
+ @JsonProperty("USE_STRNGHLD_ROAD_NM_CODE") private String useStrnghldRoadNmCode; // 사용본거지도로명코드
+ @JsonProperty("USGSRHLD_UNDGRND_BULD_SE_CODE") private String usgsrhldUndgrndBuldSeCode; // 사용본거지지하건물구분코드
+ @JsonProperty("USE_STRNGHLD_BULD_MAIN_NO") private String useStrnghldBuldMainNo; // 사용본거지건물주요번호
+ @JsonProperty("USE_STRNGHLD_BULD_SUB_NO") private String useStrnghldBuldSubNo; // 사용본거지건물부번호
+ @JsonProperty("USGSRHLD_ADRES_FULL") private String usgsrhldAdresFull; // 사용본거지전체주소
+ @JsonProperty("MBER_SE_CODE") private String mberSeCode; // 대표소유자회원구분코드
+ @JsonProperty("MBER_NM") private String mberNm; // 대표소유자성명
+ @JsonProperty("MBER_SE_NO") private String mberSeNo; // 대표소유자회원번호
+ @JsonProperty("TELNO") private String telno; // 대표소유자전화번호
+ @JsonProperty("OWNER_LEGALDONG_CODE") private String ownerLegaldongCode; // 소유자법정동코드
+ @JsonProperty("OWNER_ADSTRD_CODE") private String ownerAdstrdCode; // 소유자행정동코드
+ @JsonProperty("OWNER_MNTN") private String ownerMntn; // 소유자산 여부
+ @JsonProperty("OWNER_LNBR") private String ownerLnbr; // 소유자번지
+ @JsonProperty("OWNER_HO") private String ownerHo; // 소유자호
+ @JsonProperty("OWNER_ADRES_NM") private String ownerAdresNm; // 소유자상세주소
+ @JsonProperty("OWNER_ROAD_NM_CODE") private String ownerRoadNmCode; // 소유자도로명코드
+ @JsonProperty("OWNER_UNDGRND_BULD_SE_CODE") private String ownerUndgrndBuldSeCode; // 소유자지하건물구분코드
+ @JsonProperty("OWNER_BULD_MAIN_NO") private String ownerBuldMainNo; // 소유자건물주요번호
+ @JsonProperty("OWNER_BULD_SUB_NO") private String ownerBuldSubNo; // 소유자건물부번호
+ @JsonProperty("OWNER_ADRES_FULL") private String ownerAdresFull; // 소유자전체주소
+ @JsonProperty("AFTR_VHRNO") private String aftrVhrno; // 신차량번호
+ @JsonProperty("USE_FUEL_CODE") private String useFuelCode; // 사용연료코드
+ @JsonProperty("PRPOS_SE_CODE") private String prposSeCode; // 용도구분코드
+ @JsonProperty("MTRS_FOM_NM") private String mtrsFomNm; // 원동기형식명
+ @JsonProperty("FRNT_VHRNO") private String frntVhrno; // 이전차량번호
+ @JsonProperty("VHRNO") private String vhrno; // 차량번호
+ @JsonProperty("VIN") private String vin; // 차대번호
+ @JsonProperty("CNM") private String cnm; // 차명
+ @JsonProperty("VHCLE_TOT_WT") private String vhcleTotWt; // 차량총중량
+ @JsonProperty("CAAG_ENDDE") private String caagEndde; // 차령만료일자
+ @JsonProperty("CHANGE_DE") private String changeDe; // 차번호변경시기
+ @JsonProperty("VHCTY_ASORT_CODE") private String vhctyAsortCode; // 차종종별코드
+ @JsonProperty("VHCTY_TY_CODE") private String vhctyTyCode; // 차종유형코드
+ @JsonProperty("VHCTY_SE_CODE") private String vhctySeCode; // 차종분류코드
+ @JsonProperty("MXMM_LDG") private String mxmmLdg; // 최대적재량
+ @JsonProperty("VHCTY_ASORT_NM") private String vhctyAsortNm; // 차종종별명
+ @JsonProperty("VHCTY_TY_NM") private String vhctyTyNm; // 차종유형명
+ @JsonProperty("VHCTY_SE_NM") private String vhctySeNm; // 차종분류명
+ @JsonProperty("FRST_REGIST_DE") private String frstRegistDe; // 최초등록일
+ @JsonProperty("FOM_NM") private String fomNm; // 형식
+ @JsonProperty("ACQS_DE") private String acqsDe; // 취득일자
+ @JsonProperty("ACQS_END_DE") private String acqsEndDe; // 취득종료일자
+ @JsonProperty("YBL_MD") private String yblMd; // 제작연월(추정)
+ @JsonProperty("TRANSR_REGIST_DE") private String transrRegistDe; // 이전등록일(양수일)
+ @JsonProperty("SPCF_REGIST_STTUS_CODE") private String spcfRegistSttusCode; // 제원등록상태코드
+ @JsonProperty("COLOR_NM") private String colorNm; // 색상명
+ @JsonProperty("MRTG_CO") private String mrtgCo; // 저당수
+ @JsonProperty("SEIZR_CO") private String seizrCo; // 압류건수
+ @JsonProperty("STMD_CO") private String stmdCo; // 기타 설정/처분 건수(추정)
+ @JsonProperty("NMPL_CSDY_AT") private String nmplCsdyAt; // 번호판영치여부
+ @JsonProperty("NMPL_CSDY_REMNR_DE") private String nmplCsdyRemnrDe; // 번호판영치최고일
+ @JsonProperty("ORIGIN_SE_CODE") private String originSeCode; // 출처구분코드
+ @JsonProperty("NMPL_STNDRD_CODE") private String nmplStndrdCode; // 번호판규격코드
+ @JsonProperty("ACQS_AMOUNT") private String acqsAmount; // 취득금액
+ @JsonProperty("INSPT_VALID_PD_BGNDE") private String insptValidPdBgnde; // 검사유효기간시작일
+ @JsonProperty("INSPT_VALID_PD_ENDDE") private String insptValidPdEndde; // 검사유효기간종료일
+ @JsonProperty("USE_STRNGHLD_GRC_CODE") private String useStrnghldGrcCode; // 사용본거지관청코드
+ @JsonProperty("TKCAR_PSCAP_CO") private String tkcarPscapCo; // 승차정원수
+ @JsonProperty("SPMNNO") private String spmnno; // 제원관리번호
+ @JsonProperty("TRVL_DSTNC") private String trvlDstnc; // 주행거리
+ @JsonProperty("FRST_REGIST_RQRCNO") private String frstRegistRqrcno; // 최초등록접수번호
+ @JsonProperty("VLNT_ERSR_PRVNTC_NTICE_DE") private String vlntErsrPrvntcNticeDe; // 예고통지일
+ @JsonProperty("REGIST_INSTT_NM") private String registInsttNm; // 등록기관명
+ @JsonProperty("PROCESS_IMPRTY_RESN_CODE") private String processImprtyResnCode; // 처리불가사유코드
+ @JsonProperty("PROCESS_IMPRTY_RESN_DTLS") private String processImprtyResnDtls; // 처리불가사유명세
+ @JsonProperty("CBD_LT") private String cbdLt; // 차체길이
+ @JsonProperty("CBD_BT") private String cbdBt; // 차체너비
+ @JsonProperty("CBD_HG") private String cbdHg; // 차체높이
+ @JsonProperty("FRST_MXMM_LDG") private String frstMxmmLdg; // 최초최대적재량
+ @JsonProperty("FUEL_CNSMP_RT") private String fuelCnsmpRt; // 연료소비율
+ @JsonProperty("ELCTY_CMPND_FUEL_CNSMP_RT") private String elctyCmpndFuelCnsmpRt; // 전기복합연료소비율
+
+ }
+}
diff --git a/src/main/java/go/kr/project/api/model/response/VmisCarBassMatterInqireVO.java b/src/main/java/go/kr/project/api/model/response/VmisCarBassMatterInqireVO.java
index bc4aaee..49f764c 100644
--- a/src/main/java/go/kr/project/api/model/response/VmisCarBassMatterInqireVO.java
+++ b/src/main/java/go/kr/project/api/model/response/VmisCarBassMatterInqireVO.java
@@ -1,14 +1,16 @@
package go.kr.project.api.model.response;
import go.kr.project.api.config.ApiConstant;
+import go.kr.project.api.model.ApiExchangeEnvelope;
import go.kr.project.api.model.Envelope;
-import go.kr.project.api.model.request.BasicRequest;
+import go.kr.project.api.model.request.OldBasicRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
+import java.util.List;
/**
* 자동차 기본 사항 조회 엔티티, DB 저장용
@@ -21,133 +23,15 @@ import java.time.LocalDateTime;
@NoArgsConstructor
@AllArgsConstructor
public class VmisCarBassMatterInqireVO {
-
- // ==== Static factory/mapping methods (moved from Service) ====
- public static VmisCarBassMatterInqireVO fromRequest(BasicRequest request) {
- return VmisCarBassMatterInqireVO.builder()
- .infoSysId(request.getInfoSysId())
- .infoSysIp(request.getInfoSysIp())
- .sigunguCode(request.getSigunguCode())
- .cntcInfoCode(request.getCntcInfoCode())
- .chargerId(request.getChargerId())
- .chargerIp(request.getChargerIp())
- .chargerNm(request.getChargerNm())
- .dmndLevyStdde(request.getLevyStdde())
- .dmndInqireSeCode(request.getInqireSeCode())
- .dmndVhrno(request.getVhrno())
- .dmndVin(request.getVin())
- .rgtr(ApiConstant.DEFAULT_REGISTRANT)
- .build();
- }
-
- public static VmisCarBassMatterInqireVO fromResponse(String id, Envelope envelope) {
- if (envelope == null || envelope.getData() == null || envelope.getData().isEmpty()) return null;
- BasicResponse response = envelope.getData().get(0);
- VmisCarBassMatterInqireVO.VmisCarBassMatterInqireVOBuilder builder = VmisCarBassMatterInqireVO.builder()
- .carBassMatterInqireId(id)
- .cntcResultCode(response.getCntcResultCode())
- .cntcResultDtls(response.getCntcResultDtls());
- if (response.getRecord() != null && !response.getRecord().isEmpty()) {
- BasicResponse.Record record = response.getRecord().get(0);
- applyRecord(builder, record);
- }
- return builder.build();
- }
-
- private static void applyRecord(VmisCarBassMatterInqireVO.VmisCarBassMatterInqireVOBuilder builder, BasicResponse.Record record) {
- builder
- .prye(record.getPrye()) // 연식
- .registDe(record.getRegistDe()) // 등록일
- .ersrRegistSeCode(record.getErsrRegistSeCode()) // 말소 등록 구분 코드
- .ersrRegistSeNm(record.getErsrRegistSeNm()) // 말소 등록 구분명
- .ersrRegistDe(record.getErsrRegistDe()) // 말소 등록일
- .registDetailCode(record.getRegistDetailCode()) // 등록 상세 코드
- .dsplvl(record.getDsplvl()) // 배기량
- .useStrnghldLegaldongCode(record.getUseStrnghldLegaldongCode()) // 사용 본거지 법정동 코드
- .useStrnghldAdstrdCode(record.getUseStrnghldAdstrdCode()) // 사용 본거지 행정동 코드
- .useStrnghldMntn(record.getUseStrnghldMntn()) // 사용 본거지 산
- .useStrnghldLnbr(record.getUseStrnghldLnbr()) // 사용 본거지 번지
- .useStrnghldHo(record.getUseStrnghldHo()) // 사용 본거지 호
- .useStrnghldAdresNm(record.getUseStrnghldAdresNm()) // 사용 본거지 상세주소
- .useStrnghldRoadNmCode(record.getUseStrnghldRoadNmCode()) // 사용 본거지 도로명 코드
- .usgsrhldUndgrndBuldSeCode(record.getUsgsrhldUndgrndBuldSeCode()) // 사용 본거지 지하 건물 구분 코드
- .useStrnghldBuldMainNo(record.getUseStrnghldBuldMainNo()) // 사용 본거지 건물 주요 번호
- .useStrnghldBuldSubNo(record.getUseStrnghldBuldSubNo()) // 사용 본거지 건물 부 번호
- .usgsrhldAdresFull(record.getUsgsrhldAdresFull()) // 사용 본거지 전체주소
- .mberSeCode(record.getMberSeCode()) // 대표소유자 회원 구분 코드
- .mberSeNo(record.getMberSeNo()) // 대표소유자 회원 번호
- .mberNm(record.getMberNm()) // 대표소유자 성명
- .telno(record.getTelno()) // 대표소유자 전화번호
- .ownerLegaldongCode(record.getOwnerLegaldongCode()) // 소유자 법정동 코드
- .ownerAdstrdCode(record.getOwnerAdstrdCode()) // 소유자 행정동 코드
- .ownerMntn(record.getOwnerMntn()) // 소유자 산
- .ownerLnbr(record.getOwnerLnbr()) // 소유자 번지
- .ownerHo(record.getOwnerHo()) // 소유자 호
- .ownerAdresNm(record.getOwnerAdresNm()) // 소유자 상세주소
- .ownerRoadNmCode(record.getOwnerRoadNmCode()) // 소유자 도로명 코드
- .ownerUndgrndBuldSeCode(record.getOwnerUndgrndBuldSeCode()) // 소유자 지하건물 구분 코드
- .ownerBuldMainNo(record.getOwnerBuldMainNo()) // 소유자 건물 주요 번호
- .ownerBuldSubNo(record.getOwnerBuldSubNo()) // 소유자 건물 부 번호
- .ownrWholaddr(record.getOwnerAdresFull()) // 소유자 전체주소
- .aftrVhrno(record.getAftrVhrno()) // 신 차량번호
- .useFuelCode(record.getUseFuelCode()) // 사용 연료 코드
- .prposSeCode(record.getPrposSeCode()) // 용도 구분 코드
- .mtrsFomNm(record.getMtrsFomNm()) // 원동기 형식명
- .frntVhrno(record.getFrntVhrno()) // 이전 차량번호
- .vhrno(record.getVhrno()) // 차량번호
- .vin(record.getVin()) // 차대번호
- .cnm(record.getCnm()) // 차명
- .vhcleTotWt(record.getVhcleTotWt()) // 차량 총 중량
- .caagEndde(record.getCaagEndde()) // 차령 만료일자
- .changeDe(record.getChangeDe()) // 차번호 변경시기
- .vhctyAsortCode(record.getVhctyAsortCode()) // 차종 종별 코드
- .vhctyTyCode(record.getVhctyTyCode()) // 차종 유형 코드
- .vhctySeCode(record.getVhctySeCode()) // 차종 분류 코드
- .mxmmLdg(record.getMxmmLdg()) // 최대 적재량
- .vhctyAsortNm(record.getVhctyAsortNm()) // 차종 종별명
- .vhctyTyNm(record.getVhctyTyNm()) // 차종 유형명
- .vhctySeNm(record.getVhctySeNm()) // 차종 분류명
- .frstRegistDe(record.getFrstRegistDe()) // 최초 등록일
- .fomNm(record.getFomNm()) // 형식
- .acqsDe(record.getAcqsDe()) // 취득 일자
- .acqsEndDe(record.getAcqsEndDe()) // 취득 종료일자
- .yblMd(record.getYblMd()) // 제작 년월일
- .transrRegistDe(record.getTransrRegistDe()) // 이전 등록일
- .spcfRegistSttusCode(record.getSpcfRegistSttusCode()) // 제원 등록 상태 코드
- .colorNm(record.getColorNm()) // 색상명
- .mrtgCo(record.getMrtgCo()) // 저당수
- .seizrCo(record.getSeizrCo()) // 압류건수
- .stmdCo(record.getStmdCo()) // 구조변경수
- .nmplCsdyAt(record.getNmplCsdyAt()) // 번호판 영치 여부
- .nmplCsdyRemnrDe(record.getNmplCsdyRemnrDe()) // 번호판 영치 최고일
- .originSeCode(record.getOriginSeCode()) // 출처 구분 코드
- .nmplStndrdCode(record.getNmplStndrdCode()) // 번호판 규격 코드
- .acqsAmount(record.getAcqsAmount()) // 취득 금액
- .insptValidPdBgnde(record.getInsptValidPdBgnde()) // 검사 유효 기간 시작일
- .insptValidPdEndde(record.getInsptValidPdEndde()) // 검사 유효 기간 종료일
- .useStrnghldGrcCode(record.getUseStrnghldGrcCode()) // 사용 본거지 관청 코드
- .tkcarPscapCo(record.getTkcarPscapCo()) // 승차정원수
- .spmnno(record.getSpmnno()) // 제원관리번호
- .trvlDstnc(record.getTrvlDstnc()) // 주행거리
- .frstRegistRqrcno(record.getFrstRegistRqrcno()) // 최초 등록 접수번호
- .vlntErsrPrvntcNticeDe(record.getVlntErsrPrvntcNticeDe()) // 예고통지일
- .registInsttNm(record.getRegistInsttNm()) // 등록 기관명
- .processImprtyResnCode(record.getProcessImprtyResnCode()) // 처리 불가 사유 코드
- .processImprtyResnDtls(record.getProcessImprtyResnDtls()) // 처리 불가 사유 명세
- .cbdLt(record.getCbdLt()) // 차체 길이
- .cbdBt(record.getCbdBt()) // 차체 너비
- .cbdHg(record.getCbdHg()) // 차체 높이
- .frstMxmmLdg(record.getFrstMxmmLdg()) // 최초 최대 적재량
- .fuelCnsmpRt(record.getFuelCnsmpRt()) // 연료 소비율
- .elctyCmpndFuelCnsmpRt(record.getElctyCmpndFuelCnsmpRt()); // 전기 복합 연료 소비율
- }
-
/**
* 자동차 기본 사항 조회 ID (PK)
* 형식: CBMI000000000001
*/
private String carBassMatterInqireId;
+ // 신규 응답용 txId
+ private String txId;
+
// ===== 요청 정보 =====
/**
* 정보 시스템 ID
@@ -157,32 +41,32 @@ public class VmisCarBassMatterInqireVO {
/**
* 정보 시스템 IP
*/
- private String infoSysIp;
+ private String infoSysIpAddr;
/**
* 시군구 코드
*/
- private String sigunguCode;
+ private String sggCd;
/**
* 연계 정보 코드
*/
- private String cntcInfoCode;
+ private String linkInfoCd;
/**
* 담당자 ID
*/
- private String chargerId;
+ private String picId;
/**
* 담당자 IP
*/
- private String chargerIp;
+ private String picIpAddr;
/**
* 담당자명
*/
- private String chargerNm;
+ private String picNm;
/**
* 요청 부과 기준일
@@ -206,14 +90,14 @@ public class VmisCarBassMatterInqireVO {
// ===== 응답 정보 (결과 수신 시 UPDATE) =====
/**
- * 연계 결과 코드
+ * 연계 결과 코드 - LINK_RSLT_CD
*/
- private String cntcResultCode;
+ private String linkRsltCd;
/**
- * 연계 결과 상세
+ * 연계 결과 상세 - LINK_RSLT_DTL
*/
- private String cntcResultDtls;
+ private String linkRsltDtl;
/**
* 연식
@@ -630,6 +514,11 @@ public class VmisCarBassMatterInqireVO {
*/
private String elctyCmpndFuelCnsmpRt;
+ /**
+ * 자동차 과태료 대상 ID
+ */
+ private String carFfnlgTrgtId;
+
/**
* 등록 일시
*/
@@ -644,4 +533,169 @@ public class VmisCarBassMatterInqireVO {
* 대표소유자 성명
*/
private String mberNm;
+
+ /**
+ * OldBasicRequest에서 VO로 변환 (최초 요청 로그 저장용)
+ *
+ * @param request OldBasicRequest 요청 객체
+ * @return 초기 요청 정보가 담긴 VO
+ */
+ public static VmisCarBassMatterInqireVO fromOldRequest(OldBasicRequest request) {
+ if (request == null) {
+ return null;
+ }
+
+ // record 배열에서 첫 번째 요청 데이터 추출
+ OldBasicRequest.Record record = null;
+ if (request.getRecord() != null && !request.getRecord().isEmpty()) {
+ record = request.getRecord().get(0);
+ }
+
+ VmisCarBassMatterInqireVO.VmisCarBassMatterInqireVOBuilder builder = VmisCarBassMatterInqireVO.builder()
+ // 헤더 정보 (request 외부 클래스에서)
+ .infoSysId(request.getInfoSysId()) // INFO_SYS_ID → infoSysId
+ .infoSysIpAddr(request.getInfoSysIp()) // INFO_SYS_IP → infoSysIpAddr
+ .sggCd(request.getSigunguCode()) // SIGUNGU_CODE → sggCd
+ .linkInfoCd(request.getCntcInfoCode()) // CNTC_INFO_CODE → linkInfoCd
+ .picId(request.getChargerId()) // CHARGER_ID → picId
+ .picIpAddr(request.getChargerIp()) // CHARGER_IP → picIpAddr
+ .picNm(request.getChargerNm()); // CHARGER_NM → picNm
+
+ // 요청 본문 정보 (request.record[0]에서)
+ if (record != null) {
+ builder
+ .dmndLevyStdde(record.getLevyStdde()) // LEVY_STDDE → dmndLevyStdde
+ .dmndInqireSeCode(record.getInqireSeCode()) // INQIRE_SE_CODE → dmndInqireSeCode
+ .dmndVhrno(record.getVhrno()) // VHRNO → dmndVhrno
+ .dmndVin(record.getVin()); // VIN → dmndVin
+ }
+
+ return builder.build();
+ }
+
+ /**
+ * ApiExchangeEnvelope에서 VO로 변환 (응답 업데이트용)
+ *
+ * @param generatedId 생성된 PK ID
+ * @param envelope API 응답 Envelope
+ * @return 응답 정보가 담긴 VO
+ */
+ public static VmisCarBassMatterInqireVO fromOldExchange(
+ String generatedId,
+ ApiExchangeEnvelope envelope) {
+
+ if (envelope == null || envelope.getResponse() == null) {
+ return null;
+ }
+
+ Envelope response = envelope.getResponse();
+ List data = response.getData();
+
+ if (data == null || data.isEmpty()) {
+ return null;
+ }
+
+ OldBasicResponse firstData = data.get(0);
+ List records = firstData.getRecord();
+
+ // 응답 정보 업데이트용 VO 빌드
+ VmisCarBassMatterInqireVO.VmisCarBassMatterInqireVOBuilder builder = VmisCarBassMatterInqireVO.builder()
+ .carBassMatterInqireId(generatedId)
+ .txId(envelope.getTxId())
+ .linkRsltCd(firstData.getCntcResultCode())
+ .linkRsltDtl(firstData.getCntcResultDtls());
+
+ // record가 있는 경우 첫 번째 record의 상세 정보 매핑
+ if (records != null && !records.isEmpty()) {
+ OldBasicResponse.Record record = records.get(0);
+
+ builder
+ .prye(record.getPrye())
+ .registDe(record.getRegistDe())
+ .ersrRegistSeCode(record.getErsrRegistSeCode())
+ .ersrRegistSeNm(record.getErsrRegistSeNm())
+ .ersrRegistDe(record.getErsrRegistDe())
+ .registDetailCode(record.getRegistDetailCode())
+ .dsplvl(record.getDsplvl())
+ .useStrnghldLegaldongCode(record.getUseStrnghldLegaldongCode())
+ .useStrnghldAdstrdCode(record.getUseStrnghldAdstrdCode())
+ .useStrnghldMntn(record.getUseStrnghldMntn())
+ .useStrnghldLnbr(record.getUseStrnghldLnbr())
+ .useStrnghldHo(record.getUseStrnghldHo())
+ .useStrnghldAdresNm(record.getUseStrnghldAdresNm())
+ .useStrnghldRoadNmCode(record.getUseStrnghldRoadNmCode())
+ .usgsrhldUndgrndBuldSeCode(record.getUsgsrhldUndgrndBuldSeCode())
+ .useStrnghldBuldMainNo(record.getUseStrnghldBuldMainNo())
+ .useStrnghldBuldSubNo(record.getUseStrnghldBuldSubNo())
+ .usgsrhldAdresFull(record.getUsgsrhldAdresFull())
+ .mberSeCode(record.getMberSeCode())
+ .mberNm(record.getMberNm())
+ .mberSeNo(record.getMberSeNo())
+ .telno(record.getTelno())
+ .ownerLegaldongCode(record.getOwnerLegaldongCode())
+ .ownerAdstrdCode(record.getOwnerAdstrdCode())
+ .ownerMntn(record.getOwnerMntn())
+ .ownerLnbr(record.getOwnerLnbr())
+ .ownerHo(record.getOwnerHo())
+ .ownerAdresNm(record.getOwnerAdresNm())
+ .ownerRoadNmCode(record.getOwnerRoadNmCode())
+ .ownerUndgrndBuldSeCode(record.getOwnerUndgrndBuldSeCode())
+ .ownerBuldMainNo(record.getOwnerBuldMainNo())
+ .ownerBuldSubNo(record.getOwnerBuldSubNo())
+ .ownrWholaddr(record.getOwnerAdresFull())
+ .aftrVhrno(record.getAftrVhrno())
+ .useFuelCode(record.getUseFuelCode())
+ .prposSeCode(record.getPrposSeCode())
+ .mtrsFomNm(record.getMtrsFomNm())
+ .frntVhrno(record.getFrntVhrno())
+ .vhrno(record.getVhrno())
+ .vin(record.getVin())
+ .cnm(record.getCnm())
+ .vhcleTotWt(record.getVhcleTotWt())
+ .caagEndde(record.getCaagEndde())
+ .changeDe(record.getChangeDe())
+ .vhctyAsortCode(record.getVhctyAsortCode())
+ .vhctyTyCode(record.getVhctyTyCode())
+ .vhctySeCode(record.getVhctySeCode())
+ .mxmmLdg(record.getMxmmLdg())
+ .vhctyAsortNm(record.getVhctyAsortNm())
+ .vhctyTyNm(record.getVhctyTyNm())
+ .vhctySeNm(record.getVhctySeNm())
+ .frstRegistDe(record.getFrstRegistDe())
+ .fomNm(record.getFomNm())
+ .acqsDe(record.getAcqsDe())
+ .acqsEndDe(record.getAcqsEndDe())
+ .yblMd(record.getYblMd())
+ .transrRegistDe(record.getTransrRegistDe())
+ .spcfRegistSttusCode(record.getSpcfRegistSttusCode())
+ .colorNm(record.getColorNm())
+ .mrtgCo(record.getMrtgCo())
+ .seizrCo(record.getSeizrCo())
+ .stmdCo(record.getStmdCo())
+ .nmplCsdyAt(record.getNmplCsdyAt())
+ .nmplCsdyRemnrDe(record.getNmplCsdyRemnrDe())
+ .originSeCode(record.getOriginSeCode())
+ .nmplStndrdCode(record.getNmplStndrdCode())
+ .acqsAmount(record.getAcqsAmount())
+ .insptValidPdBgnde(record.getInsptValidPdBgnde())
+ .insptValidPdEndde(record.getInsptValidPdEndde())
+ .useStrnghldGrcCode(record.getUseStrnghldGrcCode())
+ .tkcarPscapCo(record.getTkcarPscapCo())
+ .spmnno(record.getSpmnno())
+ .trvlDstnc(record.getTrvlDstnc())
+ .frstRegistRqrcno(record.getFrstRegistRqrcno())
+ .vlntErsrPrvntcNticeDe(record.getVlntErsrPrvntcNticeDe())
+ .registInsttNm(record.getRegistInsttNm())
+ .processImprtyResnCode(record.getProcessImprtyResnCode())
+ .processImprtyResnDtls(record.getProcessImprtyResnDtls())
+ .cbdLt(record.getCbdLt())
+ .cbdBt(record.getCbdBt())
+ .cbdHg(record.getCbdHg())
+ .frstMxmmLdg(record.getFrstMxmmLdg())
+ .fuelCnsmpRt(record.getFuelCnsmpRt())
+ .elctyCmpndFuelCnsmpRt(record.getElctyCmpndFuelCnsmpRt());
+ }
+
+ return builder.build();
+ }
}
diff --git a/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkDtlVO.java b/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkDtlVO.java
index a4aeae5..bd23d5f 100644
--- a/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkDtlVO.java
+++ b/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkDtlVO.java
@@ -1,6 +1,9 @@
package go.kr.project.api.model.response;
import go.kr.project.api.config.ApiConstant;
+import go.kr.project.api.model.ApiExchangeEnvelope;
+import go.kr.project.api.model.Envelope;
+import go.kr.project.api.model.request.NewLedgerRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -8,6 +11,7 @@ import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 자동차 등록 원부(갑) 상세 엔티티 VO, DB 저장용
@@ -20,54 +24,116 @@ import java.util.List;
@AllArgsConstructor
public class VmisCarLedgerFrmbkDtlVO {
- // ==== Static factory/mapping methods (moved from Service) ====
- public static List listFromResponse(LedgerResponse res, String masterId) {
- List list = new ArrayList<>();
- if (res == null || res.getRecord() == null) return list;
- for (LedgerResponse.Record r : res.getRecord()) {
- VmisCarLedgerFrmbkDtlVO vo = VmisCarLedgerFrmbkDtlVO.builder()
- .carLedgerFrmbkId(masterId) // 원부 마스터 ID (FK)
- .mainchk(r.getMainchk()) // 주요 체크
- .changeJobSeCode(r.getChangeJobSeCode()) // 변경 작업 구분 코드
- .mainno(r.getMainno()) // 주번호
- .subno(r.getSubno()) // 부번호
- .dtls(r.getDtls()) // 상세 내역
- .rqrcno(r.getRqrcno()) // 접수번호
- .vhmno(r.getVhmno()) // 차량관리번호
- .ledgerGroupNo(r.getLedgerGroupNo()) // 원부 그룹 번호
- .ledgerIndvdlzNo(r.getLedgerIndvdlzNo()) // 원부 개별화 번호
- .gubunNm(r.getGubunNm()) // 구분명
- .changeDe(r.getChangeDe()) // 변경일자
- .detailSn(r.getDetailSn()) // 상세 순번
- .flag(r.getFlag()) // 플래그
- .rgtr(ApiConstant.DEFAULT_REGISTRANT) // 등록자
- .build();
- list.add(vo);
- }
- return list;
- }
-
// PK
private String carLedgerFrmbkDtlId;
// FK
- private String carLedgerFrmbkId;
-
- // 본문
- private String mainchk;
- private String changeJobSeCode;
- private String mainno;
- private String subno;
- private String dtls;
- private String rqrcno;
- private String vhmno;
- private String ledgerGroupNo;
- private String ledgerIndvdlzNo;
- private String gubunNm;
- private String changeDe;
- private String detailSn;
- private String flag;
+ private String carLedgerFrmbkId; // CAR_LEDGER_FRMBK_ID
+
+ // 본문 - DB 컬럼명과 정확히 일치
+ private String szrRmvDtlSn; // SZR_RMV_DTL_SN
+ private String chgTaskSeCd; // CHG_TASK_SE_CD
+ private String mainNo; // MAIN_NO
+ private String sno; // SNO
+ private String spcablMttr; // SPCABL_MTTR
+ private String hshldrNm; // HSHLDR_NM
+ private String hshldrIdecno; // HSHLDR_IDECNO
+ private String aplyRcptNo; // APLY_RCPT_NO
+ private String vhmno; // VHMNO
+ private String ledgerGroupNo; // LEDGER_GROUP_NO
+ private String ledgerIndivNo; // LEDGER_INDIV_NO
+ private String chgTaskSeNm; // CHG_TASK_SE_NM
+ private String chgYmd; // CHG_YMD
+ private String dtlSn; // DTL_SN
+ private String flag; // FLAG
// 감사
- private String rgtr;
+ private String rgtr; // RGTR
+
+ /**
+ * ApiExchangeEnvelope에서 상세 VO 리스트로 변환
+ *
+ * @param envelope API 응답 Envelope
+ * @param generatedId 생성된 마스터 PK ID
+ * @return 상세 VO 리스트
+ */
+ public static List listNewFromExchange(
+ ApiExchangeEnvelope envelope,
+ String generatedId) {
+
+ if (envelope == null || envelope.getResponse() == null) {
+ return new ArrayList<>();
+ }
+
+ Envelope response = envelope.getResponse();
+ List data = response.getData();
+
+ if (data == null || data.isEmpty()) {
+ return new ArrayList<>();
+ }
+
+ NewLedgerResponse firstData = data.get(0);
+ List records = firstData.getRecord();
+
+ if (records == null || records.isEmpty()) {
+ return new ArrayList<>();
+ }
+
+ // Record 리스트를 VmisCarLedgerFrmbkDtlVO 리스트로 변환
+ return records.stream()
+ .map(record -> VmisCarLedgerFrmbkDtlVO.builder()
+ .carLedgerFrmbkId(generatedId)
+ .szrRmvDtlSn(record.getSzrRmvDtlSn())
+ .chgTaskSeCd(record.getChgTaskSeCd())
+ .mainNo(record.getMainNo())
+ .sno(record.getSno())
+ .spcablMttr(record.getSpcablMttr())
+ .hshldrNm(record.getHshldrNm())
+ .hshldrIdecno(record.getHshldrIdecno())
+ .aplyRcptNo(record.getAplyRcptNo())
+ .vhmno(record.getVhmno())
+ .ledgerGroupNo(record.getLedgerGroupNo())
+ .ledgerIndivNo(record.getLedgerIndivNo())
+ .chgTaskSeNm(record.getChgTaskSeNm())
+ .chgYmd(record.getChgYmd())
+ .dtlSn(record.getDtlSn())
+ .flag(record.getFlag())
+ .build())
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * NewLedgerResponse.Record에서 단일 상세 VO로 변환
+ *
+ * @param record NewLedgerResponse.Record 객체
+ * @param carLedgerFrmbkId 마스터 PK ID
+ * @return 상세 VO
+ */
+ public static VmisCarLedgerFrmbkDtlVO fromRecord(
+ NewLedgerResponse.Record record,
+ String carLedgerFrmbkId) {
+
+ if (record == null) {
+ return null;
+ }
+
+ return VmisCarLedgerFrmbkDtlVO.builder()
+ .carLedgerFrmbkId(carLedgerFrmbkId)
+ .szrRmvDtlSn(record.getSzrRmvDtlSn())
+ .chgTaskSeCd(record.getChgTaskSeCd())
+ .mainNo(record.getMainNo())
+ .sno(record.getSno())
+ .spcablMttr(record.getSpcablMttr())
+ .hshldrNm(record.getHshldrNm())
+ .hshldrIdecno(record.getHshldrIdecno())
+ .aplyRcptNo(record.getAplyRcptNo())
+ .vhmno(record.getVhmno())
+ .ledgerGroupNo(record.getLedgerGroupNo())
+ .ledgerIndivNo(record.getLedgerIndivNo())
+ .chgTaskSeNm(record.getChgTaskSeNm())
+ .chgYmd(record.getChgYmd())
+ .dtlSn(record.getDtlSn())
+ .flag(record.getFlag())
+ .build();
+ }
}
diff --git a/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkVO.java b/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkVO.java
index ed742c7..1a85bda 100644
--- a/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkVO.java
+++ b/src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkVO.java
@@ -1,6 +1,7 @@
package go.kr.project.api.model.response;
import go.kr.project.api.config.ApiConstant;
+import go.kr.project.api.model.request.NewLedgerRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -16,177 +17,224 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class VmisCarLedgerFrmbkVO {
+ // PK
+ private String carLedgerFrmbkId;
+
+ // 신규 응답용 txId
+ private String txId;
+
+ // 요청(헤더/본문) 정보 - DB 컬럼명과 동일하게
+ private String infoSysId; // INFO_SYS_ID
+ private String infoSysIpAddr; // INFO_SYS_IP_ADDR
+ private String sggCd; // SGG_CD
+ private String linkInfoCd; // LINK_INFO_CD
+ private String picId; // PIC_ID
+ private String picIpAddr; // PIC_IP_ADDR
+ private String picNm; // PIC_NM
+
+ // 요청 본문 - DB 컬럼명과 동일하게
+ private String dmndVhrno; // DMND_VHRNO
+ private String dmndPrvcRls; // DMND_PRVC_RLS
+ private String dmndCvlprNm; // DMND_CVLPR_NM
+ private String dmndCvlprIdecno; // DMND_CVLPR_IDECNO
+ private String dmndCvlprStdgCd; // DMND_CVLPR_STDG_CD
+ private String dmndPathSeCd; // DMND_PATH_SE_CD
+ private String dmndDsctnIndct; // DMND_DSCTN_INDCT
+ private String dmndInqSeCd; // DMND_INQ_SE_CD
+
+ // 응답 요약 정보 - DB 컬럼명과 동일하게
+ private String linkRsltCd; // LINK_RSLT_CD
+ private String linkRsltDtl; // LINK_RSLT_DTL
+
+ // 응답 본문(마스터) - DB 컬럼명과 정확히 일치
+ private String ledgerGroupNo; // LEDGER_GROUP_NO
+ private String ledgerIndivNo; // LEDGER_INDIV_NO
+ private String vhmno; // VHMNO
+ private String vhrno; // VHRNO
+ private String vin; // VIN
+ private String carmdlAsortCd; // CARMDL_ASORT_CD
+ private String carmdlAsortNm; // CARMDL_ASORT_NM
+ private String atmbNm; // ATMB_NM
+ private String colorCd; // COLOR_CD
+ private String colorNm; // COLOR_NM
+ private String nopltSpcfctCd; // NOPLT_SPCFCT_CD
+ private String nopltSpcfctNm; // NOPLT_SPCFCT_NM
+ private String usgSeCd; // USG_SE_CD
+ private String usgSeNm; // USG_SE_NM
+ private String mtrsFomNm; // MTRS_FOM_NM
+ private String fomNm; // FOM_NM
+ private String acqsAmt; // ACQS_AMT
+ private String regDtlCd; // REG_DTL_CD
+ private String regDtlNm; // REG_DTL_NM
+ private String frstRegYmd; // FRST_REG_YMD
+ private String veagEndYmd; // VEAG_END_YMD
+ private String yridnw; // YRIDNW
+ private String spmnno1; // SPMNNO_1
+ private String spmnno2; // SPMNNO_2
+ private String fbctnYmd; // FBCTN_YMD
+ private String drvngDstnc; // DRVNG_DSTNC
+ private String inspVldPdBgngYmd; // INSP_VLD_PD_BGNG_YMD
+ private String inspVldPdEndYmd; // INSP_VLD_PD_END_YMD
+ private String chckVldPdBgngYmd; // CHCK_VLD_PD_BGNG_YMD
+ private String chckVldPdEndYmd; // CHCK_VLD_PD_END_YMD
+ private String regAplySeNm; // REG_APLY_SE_NM
+ private String frstRegAplyRcptNo; // FRST_REG_APLY_RCPT_NO
+ private String nopltCsdyAvtsmtYmd; // NOPLT_CSDY_AVTSMT_YMD
+ private String nopltCsdyYn; // NOPLT_CSDY_YN
+ private String bssUsePdYmd; // BSS_USE_PD_YMD
+ private String octhtErsrPrvntcAvtsmtYmd;// OCTHT_ERSR_PRVNTC_AVTSMT_YMD
+ private String ersrRegYmd; // ERSR_REG_YMD
+ private String ersrRegSeCd; // ERSR_REG_SE_CD
+ private String ersrRegSeNm; // ERSR_REG_SE_NM
+ private String mrtgCnt; // MRTG_CNT
+ private String szrCnt; // SZR_CNT
+ private String strctChgCnt; // STRCT_CHG_CNT
+ private String usgsrhldAddr1; // USGSRHLD_ADDR_1
+ private String usgsrhldAddrDtl1; // USGSRHLD_ADDR_DTL_1
+ private String ownrAddr; // OWNR_ADDR
+ private String ownrAddrDtl; // OWNR_ADDR_DTL
+ private String indvdlBzmnYn; // INDVDL_BZMN_YN
+ private String rprsOwnrTelno; // RPRS_OWNR_TELNO
+ private String rprsOwnrNm; // RPRS_OWNR_NM
+ private String rprsOwnrMbrSeCd; // RPRS_OWNR_MBR_SE_CD
+ private String rprsvOwnrIdecno; // RPRSV_OWNR_IDECNO
+ private String taxxmptTrprSeCd; // TAXXMPT_TRPR_SE_CD
+ private String taxxmptAplcnSeCd; // TAXXMPT_APLCN_SE_CD
+ private String spcablMttrCnt; // SPCABL_MTTR_CNT
+ private String usgsrhldDongNm; // USGSRHLD_DONG_NM
+ private String prvntcCnt; // PRVNTC_CNT
+ private String xportFlflYnDclrYmd; // XPORT_FLFL_YN_DCLR_YMD
+ private String issuNo; // ISSU_NO
+ private String frstTrnsfrYmd; // FRST_TRNSFR_YMD
+ private String drivSrgbtryIdntfNo; // DRIV_SRGBTRY_IDNTF_NO
+ private String prcsImprtyRsnCd; // PRCS_IMPRTY_RSN_CD
+ private String prcsImprtyRsnDtls; // PRCS_IMPRTY_RSN_DTLS
+ private String carFfnlgTrgtId; // CAR_FFNLG_TRGT_ID
+
+ // 감사
+ private String rgtr;
+
+ /**
+ * NewLedgerRequest에서 VO로 변환 (최초 요청 로그 저장용)
+ *
+ * @param request NewLedgerRequest 요청 객체
+ * @return 초기 요청 정보가 담긴 VO
+ */
+ public static VmisCarLedgerFrmbkVO fromNewRequest(NewLedgerRequest request) {
+ if (request == null) {
+ return null;
+ }
- // ==== Static factory/mapping methods (moved from Service) ====
- public static VmisCarLedgerFrmbkVO fromRequest(go.kr.project.api.model.request.LedgerRequest request) {
return VmisCarLedgerFrmbkVO.builder()
.infoSysId(request.getInfoSysId())
- .infoSysIp(request.getInfoSysIp())
- .sigunguCode(request.getSigunguCode())
- .cntcInfoCode(request.getCntcInfoCode())
- .chargerId(request.getChargerId())
- .chargerIp(request.getChargerIp())
- .chargerNm(request.getChargerNm())
+ .infoSysIpAddr(request.getInfoSysIpAddr())
+ .sggCd(request.getSggCd())
+ .linkInfoCd(request.getLinkInfoCd())
+ .picId(request.getPicId())
+ .picIpAddr(request.getPicIpAddr())
+ .picNm(request.getPicNm())
.dmndVhrno(request.getVhrno())
- .rgtr(ApiConstant.DEFAULT_REGISTRANT)
+ .dmndPrvcRls(request.getPrvcRls())
+ .dmndCvlprNm(request.getCvlprNm())
+ .dmndCvlprIdecno(request.getCvlprIdecno())
+ .dmndCvlprStdgCd(request.getCvlprStdgCd())
+ .dmndPathSeCd(request.getPathSeCd())
+ .dmndDsctnIndct(request.getDsctnIndct())
+ .dmndInqSeCd(request.getInqSeCd())
.build();
}
- public static VmisCarLedgerFrmbkVO fromResponseMaster(String id, go.kr.project.api.model.response.LedgerResponse res) {
+ /**
+ * NewLedgerResponse에서 VO로 변환 (응답 마스터 정보 업데이트용)
+ *
+ * @param generatedId 생성된 PK ID
+ * @param response NewLedgerResponse 응답 객체
+ * @return 응답 마스터 정보가 담긴 VO
+ */
+ public static VmisCarLedgerFrmbkVO fromNewResponseMaster(
+ String generatedId,
+ NewLedgerResponse response) {
+
+ if (response == null) {
+ return null;
+ }
+
return VmisCarLedgerFrmbkVO.builder()
- .carLedgerFrmbkId(id) // 등록원부 ID
- .cntcResultCode(res.getCntcResultCode()) // 연계 결과 코드
- .cntcResultDtls(res.getCntcResultDtls()) // 연계 결과 상세
- .ledgerGroupNo(res.getLedgerGroupNo()) // 원부 그룹 번호
- .ledgerIndvdlzNo(res.getLedgerIndvdlzNo()) // 원부 개별화 번호
- .vhmno(res.getVhmno()) // 차량관리번호
- .vhrno(res.getVhrno()) // 차량번호
- .vin(res.getVin()) // 차대번호
- .vhctyAsortCode(res.getVhctyAsortCode()) // 차종 종별 코드
- .vhctyAsortNm(res.getVhctyAsortNm()) // 차종 종별명
- .cnm(res.getCnm()) // 차명
- .colorCode(res.getColorCode()) // 색상 코드
- .colorNm(res.getColorNm()) // 색상명
- .nmplStndrdCode(res.getNmplStndrdCode()) // 번호판 규격 코드
- .nmplStndrdNm(res.getNmplStndrdNm()) // 번호판 규격명
- .prposSeCode(res.getPrposSeCode()) // 용도 구분 코드
- .prposSeNm(res.getPrposSeNm()) // 용도 구분명
- .mtrsFomNm(res.getMtrsFomNm()) // 원동기 형식명
- .fomNm(res.getFomNm()) // 형식명
- .acqsAmount(res.getAcqsAmount()) // 취득 금액
- .registDetailCode(res.getRegistDetailCode()) // 등록 상세 코드
- .registDetailNm(res.getRegistDetailNm()) // 등록 상세명
- .frstRegistDe(res.getFrstRegistDe()) // 최초 등록일
- .caagEndde(res.getCaagEndde()) // 차령 만료일자
- .prye(res.getPrye()) // 연식
- .spmnno1(res.getSpmnno1()) // 제원관리번호1
- .spmnno2(res.getSpmnno2()) // 제원관리번호2
- .yblMd(res.getYblMd()) // 제작 년월일
- .trvlDstnc(res.getTrvlDstnc()) // 주행거리
- .insptValidPdBgnde(res.getInsptValidPdBgnde()) // 검사 유효 기간 시작일
- .insptValidPdEndde(res.getInsptValidPdEndde()) // 검사 유효 기간 종료일
- .chckValidPdBgnde(res.getChckValidPdBgnde()) // 점검 유효 기간 시작일
- .chckValidPdEndde(res.getChckValidPdEndde()) // 점검 유효 기간 종료일
- .registReqstSeNm(res.getRegistReqstSeNm()) // 등록 청구 구분명
- .frstRegistRqrcno(res.getFrstRegistRqrcno()) // 최초 등록 접수번호
- .nmplCsdyRemnrDe(res.getNmplCsdyRemnrDe()) // 번호판 영치 최고일
- .nmplCsdyAt(res.getNmplCsdyAt()) // 번호판 영치 여부
- .bssUsePd(res.getBssUsePd()) // 사업용 기간
- .octhtErsrPrvntcNticeDe(res.getOcthtErsrPrvntcNticeDe()) // 직권말소 예고통지일
- .ersrRegistDe(res.getErsrRegistDe()) // 말소 등록일
- .ersrRegistSeCode(res.getErsrRegistSeCode()) // 말소 등록 구분 코드
- .ersrRegistSeNm(res.getErsrRegistSeNm()) // 말소 등록 구분명
- .mrtgcnt(res.getMrtgcnt()) // 저당건수
- .vhclecnt(res.getVhclecnt()) // 압류건수
- .stmdcnt(res.getStmdcnt()) // 구조변경건수
- .adres1(res.getAdres1()) // 주소1
- .adresNm1(res.getAdresNm1()) // 주소명1
- .adres(res.getAdres()) // 주소
- .adresNm(res.getAdresNm()) // 주소명
- .indvdlBsnmAt(res.getIndvdlBsnmAt()) // 개인사업자 여부
- .telno(res.getTelno()) // 전화번호
- .mberNm(res.getMberNm()) // 소유자명
- .mberSeCode(res.getMberSeCode()) // 소유자 구분 코드
- .mberSeNo(res.getMberSeNo()) // 소유자 번호
- .taxxmptTrgterSeCode(res.getTaxxmptTrgterSeCode()) // 면세 대상 구분 코드
- .taxxmptTrgterSeCodeNm(res.getTaxxmptTrgterSeCodeNm()) // 면세 대상 구분명
- .cntMatter(res.getCntMatter()) // 내용 사항
- .emdNm(res.getEmdNm()) // 읍면동명
- .prvntccnt(res.getPrvntccnt()) // 예방건수
- .xportFlflAtSttemntDe(res.getXportFlflAtSttemntDe()) // 수출이행신고일
- .partnRqrcno(res.getPartnRqrcno()) // 협력업체 접수번호
+ .carLedgerFrmbkId(generatedId)
+ .linkRsltCd(response.getLinkRsltCd())
+ .linkRsltDtl(response.getLinkRsltDtl())
+ .ledgerGroupNo(response.getLedgerGroupNo())
+ .ledgerIndivNo(response.getLedgerIndivNo())
+ .vhmno(response.getVhmno())
+ .vhrno(response.getVhrno())
+ .vin(response.getVin())
+ .carmdlAsortCd(response.getCarmdlAsortCd())
+ .carmdlAsortNm(response.getCarmdlAsortNm())
+ .atmbNm(response.getAtmbNm())
+ .colorCd(response.getColorCd())
+ .colorNm(response.getColorNm())
+ .nopltSpcfctCd(response.getNopltSpcfctCd())
+ .nopltSpcfctNm(response.getNopltSpcfctNm())
+ .usgSeCd(response.getUsgSeCd())
+ .usgSeNm(response.getUsgSeNm())
+ .mtrsFomNm(response.getMtrsFomNm())
+ .fomNm(response.getFomNm())
+ .acqsAmt(response.getAcqsAmt())
+ .regDtlCd(response.getRegDtlCd())
+ .regDtlNm(response.getRegDtlNm())
+ .frstRegYmd(response.getFrstRegYmd())
+ .veagEndYmd(response.getVeagEndYmd())
+ .yridnw(response.getYridnw())
+ .spmnno1(response.getSpmnno1())
+ .spmnno2(response.getSpmnno2())
+ .fbctnYmd(response.getFbctnYmd())
+ .drvngDstnc(response.getDrvngDstnc())
+ .inspVldPdBgngYmd(response.getInspVldPdBgngYmd())
+ .inspVldPdEndYmd(response.getInspVldPdEndYmd())
+ .chckVldPdBgngYmd(response.getChckVldPdBgngYmd())
+ .chckVldPdEndYmd(response.getChckVldPdEndYmd())
+ .regAplySeNm(response.getRegAplySeNm())
+ .frstRegAplyRcptNo(response.getFrstRegAplyRcptNo())
+ .nopltCsdyAvtsmtYmd(response.getNopltCsdyAvtsmtYmd())
+ .nopltCsdyYn(response.getNopltCsdyYn())
+ .bssUsePdYmd(response.getBssUsePdYmd())
+ .octhtErsrPrvntcAvtsmtYmd(response.getOcthtErsrPrvntcAvtsmtYmd())
+ .ersrRegYmd(response.getErsrRegYmd())
+ .ersrRegSeCd(response.getErsrRegSeCd())
+ .ersrRegSeNm(response.getErsrRegSeNm())
+ .mrtgCnt(response.getMrtgCnt())
+ .szrCnt(response.getSzrCnt())
+ .strctChgCnt(response.getStrctChgCnt())
+ .usgsrhldAddr1(response.getUsgsrhldAddr1())
+ .usgsrhldAddrDtl1(response.getUsgsrhldAddrDtl1())
+ .ownrAddr(response.getOwnrAddr())
+ .ownrAddrDtl(response.getOwnrAddrDtl())
+ .indvdlBzmnYn(response.getIndvdlBzmnYn())
+ .rprsOwnrTelno(response.getRprsOwnrTelno())
+ .rprsOwnrNm(response.getRprsOwnrNm())
+ .rprsOwnrMbrSeCd(response.getRprsOwnrMbrSeCd())
+ .rprsvOwnrIdecno(response.getRprsvOwnrIdecno())
+ .taxxmptTrprSeCd(response.getTaxxmptTrprSeCd())
+ .taxxmptAplcnSeCd(response.getTaxxmptAplcnSeCd())
+ .spcablMttrCnt(response.getSpcablMttrCnt())
+ .usgsrhldDongNm(response.getUsgsrhldDongNm())
+ .prvntcCnt(response.getPrvntcCnt())
+ .xportFlflYnDclrYmd(response.getXportFlflYnDclrYmd())
+ .issuNo(response.getIssuNo())
+ .frstTrnsfrYmd(response.getFrstTrnsfrYmd())
+ .drivSrgbtryIdntfNo(response.getDrivSrgbtryIdntfNo())
+ .prcsImprtyRsnCd(response.getProcessImprtyResnCode())
+ .prcsImprtyRsnDtls(response.getProcessImprtyResnDtls())
.build();
}
- // PK
- private String carLedgerFrmbkId;
-
- // 요청(헤더/본문) 정보
- private String infoSysId;
- private String infoSysIp;
- private String sigunguCode;
- private String cntcInfoCode;
- private String chargerId;
- private String chargerIp;
- private String chargerNm;
-
- // 요청 본문
- private String dmndVhrno;
- private String dmndOnesInformationOpen;
- private String dmndCpttrNm;
- private String dmndCpttrIhidnum;
- private String dmndCpttrLegaldongCode;
- private String dmndRouteSeCode;
- private String dmndDetailExpression;
- private String dmndInqireSeCode;
-
- // 응답 요약 정보
- private String cntcResultCode;
- private String cntcResultDtls;
-
- // 응답 본문(마스터)
- private String ledgerGroupNo;
- private String ledgerIndvdlzNo;
- private String vhmno;
- private String vhrno;
- private String vin;
- private String vhctyAsortCode;
- private String vhctyAsortNm;
- private String cnm;
- private String colorCode;
- private String colorNm;
- private String nmplStndrdCode;
- private String nmplStndrdNm;
- private String prposSeCode;
- private String prposSeNm;
- private String mtrsFomNm;
- private String fomNm;
- private String acqsAmount;
- private String registDetailCode;
- private String registDetailNm;
- private String frstRegistDe;
- private String caagEndde;
- private String prye;
- private String spmnno1;
- private String spmnno2;
- private String yblMd;
- private String trvlDstnc;
- private String insptValidPdBgnde;
- private String insptValidPdEndde;
- private String chckValidPdBgnde;
- private String chckValidPdEndde;
- private String registReqstSeNm;
- private String frstRegistRqrcno;
- private String nmplCsdyRemnrDe;
- private String nmplCsdyAt;
- private String bssUsePd;
- private String octhtErsrPrvntcNticeDe;
- private String ersrRegistDe;
- private String ersrRegistSeCode;
- private String ersrRegistSeNm;
- private String mrtgcnt;
- private String vhclecnt;
- private String stmdcnt;
- private String adres1;
- private String adresNm1;
- private String adres;
- private String adresNm;
- private String indvdlBsnmAt;
- private String telno;
- private String mberNm;
- private String mberSeCode;
- private String mberSeNo;
- private String taxxmptTrgterSeCode;
- private String taxxmptTrgterSeCodeNm;
- private String cntMatter;
- private String emdNm;
- private String prvntccnt;
- private String xportFlflAtSttemntDe;
- private String partnRqrcno;
- private String frstTrnsfrDe;
- private String processImprtyResnCode;
- private String processImprtyResnDtls;
-
- // 감사
- private String rgtr;
+ /**
+ * NewLedgerRequest에서 필수 조회 항목 추출 (DB 조회용)
+ *
+ * @param request NewLedgerRequest 요청 객체
+ * @return 차량번호
+ */
+ public static String extractVhrno(NewLedgerRequest request) {
+ return request != null ? request.getVhrno() : null;
+ }
}
diff --git a/src/main/java/go/kr/project/api/service/ExternalVehicleApiService.java b/src/main/java/go/kr/project/api/service/ExternalVehicleApiService.java
index b35e802..8640f5c 100644
--- a/src/main/java/go/kr/project/api/service/ExternalVehicleApiService.java
+++ b/src/main/java/go/kr/project/api/service/ExternalVehicleApiService.java
@@ -1,9 +1,9 @@
package go.kr.project.api.service;
-import go.kr.project.api.model.request.BasicRequest;
-import go.kr.project.api.model.request.LedgerRequest;
-import go.kr.project.api.model.response.BasicResponse;
-import go.kr.project.api.model.response.LedgerResponse;
+import go.kr.project.api.model.request.OldBasicRequest;
+import go.kr.project.api.model.request.NewLedgerRequest;
+import go.kr.project.api.model.response.OldBasicResponse;
+import go.kr.project.api.model.response.NewLedgerResponse;
/**
* 외부 VMIS-interface API 호출 서비스 인터페이스
@@ -12,14 +12,17 @@ import go.kr.project.api.model.response.LedgerResponse;
public interface ExternalVehicleApiService {
/**
- * 차량 기본정보만 조회 (외부 REST 호출)
- * 중요: 기본정보 조회는 차량번호 외에 부과기준일, 조회구분 등 필수 파라미터 필요
+ * 구 기본정보 조회 (old-basic)
*/
- BasicResponse getBasicInfo(BasicRequest request);
+ OldBasicResponse getOldBasicInfo(OldBasicRequest request);
/**
- * 자동차 등록원부(갑)만 조회 (외부 REST 호출)
- * 중요: 등록원부 조회는 차량번호 외에 소유자정보 등 필수 파라미터 필요
+ * 신 기본정보 조회 (new-basic)
*/
- LedgerResponse getLedgerInfo(LedgerRequest request);
+ OldBasicResponse getNewBasicInfo(OldBasicRequest request);
+
+ /**
+ * 신 등록원부(갑) 조회 (new-ledger)
+ */
+ NewLedgerResponse getNewLedgerInfo(NewLedgerRequest request);
}
diff --git a/src/main/java/go/kr/project/api/service/impl/ExternalVehicleApiServiceImpl.java b/src/main/java/go/kr/project/api/service/impl/ExternalVehicleApiServiceImpl.java
index 262d3db..6723f68 100644
--- a/src/main/java/go/kr/project/api/service/impl/ExternalVehicleApiServiceImpl.java
+++ b/src/main/java/go/kr/project/api/service/impl/ExternalVehicleApiServiceImpl.java
@@ -5,10 +5,10 @@ import go.kr.project.api.config.ApiConstant;
import go.kr.project.api.config.properties.VmisProperties;
import go.kr.project.api.service.ExternalVehicleApiService;
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.VehicleApiResponseVO;
-import go.kr.project.api.model.request.BasicRequest;
-import go.kr.project.api.model.request.LedgerRequest;
+import go.kr.project.api.model.request.OldBasicRequest;
+import go.kr.project.api.model.request.NewLedgerRequest;
import go.kr.project.api.model.response.*;
import go.kr.project.api.service.VmisCarBassMatterInqireLogService;
import go.kr.project.api.service.VmisCarLedgerFrmbkLogService;
@@ -36,123 +36,119 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
private final VmisCarBassMatterInqireLogService bassMatterLogService; // 기본사항 조회 로그 서비스
private final VmisCarLedgerFrmbkLogService ledgerLogService; // 등록원부 로그 서비스
+
/**
- * 차량 기본정보 조회 API 호출
- * 중요 로직: 기본정보 조회는 BasicRequest 전체를 받아서 외부 API에 전달
- * (차량번호, 부과기준일, 조회구분, 차대번호 등 필수 파라미터 포함)
- *
- * @param request 기본정보 조회 요청 (차량번호, 부과기준일, 조회구분 등 포함)
- * @return 차량 기본정보
+ * 구 기본정보 조회 (old-basic)
+ * 중요: 외부 시스템도 동일한 신규 포맷(ApiExchangeEnvelope)으로 응답한다고 가정
*/
@Override
- public BasicResponse getBasicInfo(BasicRequest request) {
- log.debug("차량 기본정보 조회 API 호출 - 차량번호: {}", request.getVhrno());
+ public OldBasicResponse getOldBasicInfo(OldBasicRequest request) {
+ log.debug("[OLD-BASIC] 자동차 기본정보 조회 API 호출 - 차량번호: {}", request.getVhrno());
String generatedId = null;
try {
- // 1) 최초 요청 로그 저장 (별도 트랜잭션)
- VmisCarBassMatterInqireVO logEntity = VmisCarBassMatterInqireVO.fromRequest(request);
+ VmisCarBassMatterInqireVO logEntity = VmisCarBassMatterInqireVO.fromOldRequest(request);
generatedId = bassMatterLogService.createInitialRequestNewTx(logEntity);
- // Envelope로 감싸기 (요청 객체는 이미 모든 필수 파라미터를 포함)
- Envelope requestEnvelope = new Envelope<>(request);
-
- // HTTP 헤더 설정
+ Envelope requestEnvelope = new Envelope<>(request);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
+ HttpEntity> requestEntity = new HttpEntity<>(requestEnvelope, headers);
- HttpEntity> requestEntity = new HttpEntity<>(requestEnvelope, headers);
-
- // 2) API 호출
- ResponseEntity> responseEntity = restTemplate.exchange(
- vmisProperties.getExternal().getApi().getUrl().buildBasicUrl(),
+ ResponseEntity> responseEntity = restTemplate.exchange(
+ vmisProperties.getExternal().getApi().getUrl().buildOldBasicUrl(),
HttpMethod.POST,
requestEntity,
- new ParameterizedTypeReference>() {}
+ new ParameterizedTypeReference>() {}
);
- // 3) 응답 로그 업데이트 (별도 트랜잭션)
if (responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() != null) {
- List data = responseEntity.getBody().getData();
+ ApiExchangeEnvelope body = responseEntity.getBody();
+ List data = (body.getResponse() != null) ? body.getResponse().getData() : null;
if (data != null && !data.isEmpty()) {
- VmisCarBassMatterInqireVO update = VmisCarBassMatterInqireVO.fromResponse(generatedId, responseEntity.getBody());
- if (update != null) {
- bassMatterLogService.updateResponseNewTx(update);
- }
+ VmisCarBassMatterInqireVO update = VmisCarBassMatterInqireVO.fromOldExchange(generatedId, body);
+ if (update != null) bassMatterLogService.updateResponseNewTx(update);
+ log.debug("[OLD-BASIC] txId: {}", body.getTxId());
return data.get(0);
}
}
- log.warn("차량 기본정보 조회 응답이 비어있음 - 차량번호: {}", request.getVhrno());
+ log.warn("[OLD-BASIC] 응답이 비어있음 - 차량번호: {}", request.getVhrno());
return null;
-
} catch (Exception e) {
- // 4) 오류 로그 업데이트 (별도 트랜잭션)
if (generatedId != null) {
try {
String detail = ExceptionDetailUtil.buildForLog(e);
VmisCarBassMatterInqireVO errorLog = VmisCarBassMatterInqireVO.builder()
.carBassMatterInqireId(generatedId)
- .cntcResultCode(ApiConstant.CNTC_RESULT_CODE_ERROR)
- .cntcResultDtls(detail)
+ .linkRsltCd(ApiConstant.CNTC_RESULT_CODE_ERROR)
+ .linkRsltDtl(detail)
.build();
bassMatterLogService.updateResponseNewTx(errorLog);
- log.error("[EXTERNAL-BASIC-ERR-LOG] API 호출 에러 정보 저장 완료(별도TX) - ID: {}, detail: {}", generatedId, detail, e);
+ log.error("[EXTERNAL-OLD-BASIC-ERR-LOG] 저장 완료 - ID: {}, detail: {}", generatedId, detail, e);
} catch (Exception ignore) {
- log.error("[EXTERNAL-BASIC-ERR-LOG] 에러 로그 저장 실패 - ID: {}", generatedId, ignore);
+ log.error("[EXTERNAL-OLD-BASIC-ERR-LOG] 에러 로그 저장 실패 - ID: {}", generatedId, ignore);
}
}
- log.error("차량 기본정보 조회 API 호출 실패 - 차량번호: {}", request.getVhrno(), e);
- throw new MessageException("차량 기본정보 조회 실패: " + e.getMessage(), e);
+ throw new MessageException("[OLD-BASIC] 차량 기본정보 조회 실패: " + e.getMessage(), e);
}
}
/**
- * 자동차 등록원부(갑) 조회 API 호출
- * 중요 로직: 등록원부 조회는 차량번호 외에 소유자정보, 조회구분 등 필수 파라미터를 받아서 호출
- *
- * @param request 등록원부 조회 요청 (차량번호, 소유자정보, 조회구분 등 포함)
- * @return 등록원부 정보
+ * 신 기본정보 조회 (new-basic)
*/
@Override
- public LedgerResponse getLedgerInfo(LedgerRequest request) {
+ public OldBasicResponse getNewBasicInfo(OldBasicRequest request) {
+ return null;
+ }
+
+
+ /**
+ * 신 등록원부(갑) 조회 (new-ledger)
+ */
+ @Override
+ public NewLedgerResponse getNewLedgerInfo(NewLedgerRequest request) {
+
log.debug("자동차 등록원부 조회 API 호출 - 차량번호: {}", request.getVhrno());
String generatedId = null;
try {
// 1) 최초 요청 로그 저장 (별도 트랜잭션)
- VmisCarLedgerFrmbkVO init = VmisCarLedgerFrmbkVO.fromRequest(request);
+ VmisCarLedgerFrmbkVO init = VmisCarLedgerFrmbkVO.fromNewRequest(request);
generatedId = ledgerLogService.createInitialRequestNewTx(init);
// Envelope로 감싸기 (요청 객체는 이미 모든 필수 파라미터를 포함)
- Envelope requestEnvelope = new Envelope<>(request);
+ Envelope requestEnvelope = new Envelope<>(request);
// HTTP 헤더 설정
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
- HttpEntity> requestEntity = new HttpEntity<>(requestEnvelope, headers);
+ HttpEntity> requestEntity = new HttpEntity<>(requestEnvelope, headers);
- // 2) API 호출
- ResponseEntity> responseEntity = restTemplate.exchange(
- vmisProperties.getExternal().getApi().getUrl().buildLedgerUrl(),
+ // 2) API 호출 (신규 포맷) - 현재 요구사항상 신규 원부만 사용
+ ResponseEntity> responseEntity = restTemplate.exchange(
+ vmisProperties.getExternal().getApi().getUrl().buildNewLedgerUrl(),
HttpMethod.POST,
requestEntity,
- new ParameterizedTypeReference>() {}
+ new ParameterizedTypeReference>() {}
);
// 3) 응답 로그 업데이트 (마스터 + 상세, 별도 트랜잭션)
if (responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() != null) {
- List data = responseEntity.getBody().getData();
+ ApiExchangeEnvelope env = responseEntity.getBody();
+ List data = (env.getResponse() != null) ? env.getResponse().getData() : null;
if (data != null && !data.isEmpty()) {
- LedgerResponse body = data.get(0);
- VmisCarLedgerFrmbkVO masterUpdate = VmisCarLedgerFrmbkVO.fromResponseMaster(generatedId, body);
+ NewLedgerResponse body = data.get(0);
+ VmisCarLedgerFrmbkVO masterUpdate = VmisCarLedgerFrmbkVO.fromNewResponseMaster(generatedId, body);
+ masterUpdate.setTxId(env.getTxId());
ledgerLogService.updateResponseNewTx(masterUpdate);
- List details = VmisCarLedgerFrmbkDtlVO.listFromResponse(body, generatedId);
+ List details = VmisCarLedgerFrmbkDtlVO.listNewFromExchange(env, generatedId);
if (details != null && !details.isEmpty()) {
ledgerLogService.saveDetailsNewTx(generatedId, details);
}
+ log.debug("[LEDGER] txId: {}", env.getTxId());
return body;
}
}
@@ -167,8 +163,8 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
String detail = ExceptionDetailUtil.buildForLog(e);
VmisCarLedgerFrmbkVO errorLog = VmisCarLedgerFrmbkVO.builder()
.carLedgerFrmbkId(generatedId)
- .cntcResultCode(ApiConstant.CNTC_RESULT_CODE_ERROR)
- .cntcResultDtls(detail)
+ .linkRsltCd(ApiConstant.CNTC_RESULT_CODE_ERROR)
+ .linkRsltDtl(detail)
.build();
ledgerLogService.updateResponseNewTx(errorLog);
log.error("[EXTERNAL-LEDGER-ERR-LOG] API 호출 에러 정보 저장 완료(별도TX) - ID: {}, detail: {}", generatedId, detail, e);
@@ -179,5 +175,6 @@ public class ExternalVehicleApiServiceImpl extends EgovAbstractServiceImpl imple
log.error("자동차 등록원부 조회 API 호출 실패 - 차량번호: {}", request.getVhrno(), e);
throw new MessageException("자동차 등록원부 조회 실패: " + e.getMessage(), e);
}
+
}
}
diff --git a/src/main/java/go/kr/project/api/service/impl/VmisCarBassMatterInqireLogServiceImpl.java b/src/main/java/go/kr/project/api/service/impl/VmisCarBassMatterInqireLogServiceImpl.java
index b6c8250..6ec2dbe 100644
--- a/src/main/java/go/kr/project/api/service/impl/VmisCarBassMatterInqireLogServiceImpl.java
+++ b/src/main/java/go/kr/project/api/service/impl/VmisCarBassMatterInqireLogServiceImpl.java
@@ -59,6 +59,6 @@ public class VmisCarBassMatterInqireLogServiceImpl extends EgovAbstractServiceIm
if (result != 1) {
throw new RuntimeException("자동차 기본 사항 조회 정보 업데이트 실패 - ID: " + response.getCarBassMatterInqireId());
}
- log.info("[BASIC-RES-LOG] 응답/에러 정보 저장 완료(별도TX) - ID: {}, 결과코드: {}", response.getCarBassMatterInqireId(), response.getCntcResultCode());
+ log.info("[BASIC-RES-LOG] 응답/에러 정보 저장 완료(별도TX) - ID: {}, 결과코드: {}", response.getCarBassMatterInqireId(), response.getLinkRsltCd());
}
}
diff --git a/src/main/java/go/kr/project/api/service/impl/VmisCarLedgerFrmbkLogServiceImpl.java b/src/main/java/go/kr/project/api/service/impl/VmisCarLedgerFrmbkLogServiceImpl.java
index c331fa1..53f3d5e 100644
--- a/src/main/java/go/kr/project/api/service/impl/VmisCarLedgerFrmbkLogServiceImpl.java
+++ b/src/main/java/go/kr/project/api/service/impl/VmisCarLedgerFrmbkLogServiceImpl.java
@@ -52,7 +52,7 @@ public class VmisCarLedgerFrmbkLogServiceImpl extends EgovAbstractServiceImpl im
throw new RuntimeException("자동차 등록 원부(갑) 정보 업데이트 실패 - ID: " + response.getCarLedgerFrmbkId());
}
log.info("[LEDGER-RES-LOG] 마스터 응답 업데이트(별도TX) - ID: {}, 결과코드: {}",
- response.getCarLedgerFrmbkId(), response.getCntcResultCode());
+ response.getCarLedgerFrmbkId(), response.getLinkRsltCd());
}
@Override
diff --git a/src/main/java/go/kr/project/carInspectionPenalty/callApi/controller/VehicleInquiryController.java b/src/main/java/go/kr/project/carInspectionPenalty/callApi/controller/VehicleInquiryController.java
index b73026c..e6b6b2b 100644
--- a/src/main/java/go/kr/project/carInspectionPenalty/callApi/controller/VehicleInquiryController.java
+++ b/src/main/java/go/kr/project/carInspectionPenalty/callApi/controller/VehicleInquiryController.java
@@ -2,10 +2,10 @@ package go.kr.project.carInspectionPenalty.callApi.controller;
import egovframework.constant.TilesConstants;
import egovframework.util.ApiResponseUtil;
-import go.kr.project.api.model.request.BasicRequest;
-import go.kr.project.api.model.request.LedgerRequest;
-import go.kr.project.api.model.response.BasicResponse;
-import go.kr.project.api.model.response.LedgerResponse;
+import go.kr.project.api.model.request.OldBasicRequest;
+import go.kr.project.api.model.request.NewLedgerRequest;
+import go.kr.project.api.model.response.OldBasicResponse;
+import go.kr.project.api.model.response.NewLedgerResponse;
import go.kr.project.api.service.ExternalVehicleApiService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -48,7 +48,7 @@ public class VehicleInquiryController {
@PostMapping("/getBasicInfo.do")
@ResponseBody
@Operation(summary = "자동차 기본사항 조회", description = "차량 기본정보만 조회합니다.")
- public ResponseEntity> getBasicInfo(@RequestBody BasicRequest request) {
+ public ResponseEntity> getBasicInfo(@RequestBody OldBasicRequest request) {
log.info("========== 자동차 기본사항 조회 시작 ==========");
log.info("요청 차량번호: {}", request.getVhrno());
log.info("부과기준일: {}", request.getLevyStdde());
@@ -68,7 +68,7 @@ public class VehicleInquiryController {
}
// 차량 기본정보 조회
- BasicResponse response = service.getBasicInfo(request);
+ OldBasicResponse response = service.getBasicInfo(request);
log.info("자동차 기본사항 조회 성공 - 차량번호: {}, 차대번호: {}", request.getVhrno(), request.getVin());
log.info("========== 자동차 기본사항 조회 완료 ==========");
@@ -85,7 +85,7 @@ public class VehicleInquiryController {
@PostMapping("/getLedgerInfo.do")
@ResponseBody
@Operation(summary = "자동차 등록원부(갑) 조회", description = "차량 등록원부 정보만 조회합니다.")
- public ResponseEntity> getLedgerInfo(@RequestBody LedgerRequest request) {
+ public ResponseEntity> getLedgerInfo(@RequestBody NewLedgerRequest request) {
log.info("========== 자동차 등록원부(갑) 조회 시작 ==========");
log.info("요청 차량번호: {}", request.getVhrno());
log.info("조회구분코드: {}", request.getInqireSeCode());
@@ -111,7 +111,7 @@ public class VehicleInquiryController {
}
// 차량 등록원부 조회
- LedgerResponse response = service.getLedgerInfo(request);
+ NewLedgerResponse response = service.getLedgerInfo(request);
log.info("자동차 등록원부(갑) 조회 성공 - 차량번호: {}", request.getVhrno());
log.info("========== 자동차 등록원부(갑) 조회 완료 ==========");
diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java
index e5e136b..f689d59 100644
--- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java
+++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java
@@ -3,7 +3,7 @@ package go.kr.project.carInspectionPenalty.registration.service.impl;
import egovframework.constant.TaskPrcsSttsConstants;
import egovframework.exception.MessageException;
import go.kr.project.api.model.VehicleApiResponseVO;
-import go.kr.project.api.model.response.BasicResponse;
+import go.kr.project.api.model.response.OldBasicResponse;
import go.kr.project.carInspectionPenalty.registration.mapper.CarFfnlgTrgtMapper;
import go.kr.project.carInspectionPenalty.registration.model.CarFfnlgTrgtVO;
import go.kr.project.carInspectionPenalty.registration.service.ComparisonService;
@@ -43,7 +43,7 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co
String vhclno = existingData.getVhclno();
log.info("========== 비교 로직 시작: {} ==========", vhclno);
- BasicResponse.Record basicInfo = apiResponse.getBasicInfo().getRecord().get(0);
+ OldBasicResponse.Record basicInfo = apiResponse.getBasicInfo().getRecord().get(0);
// ========== 1. 상품용 체크 ==========
String productUseResult = checkProductUse(existingData, basicInfo);
@@ -82,7 +82,7 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co
*
* @return 02 (적용됨) 또는 null (미적용)
*/
- private String checkProductUse(CarFfnlgTrgtVO existingData, BasicResponse.Record basicInfo) {
+ private String checkProductUse(CarFfnlgTrgtVO existingData, OldBasicResponse.Record basicInfo) {
String vhclno = existingData.getVhclno();
String mberNm = basicInfo.getMberNm(); // 대표소유자성명
@@ -117,7 +117,7 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co
*
* @return 03 (적용됨) 또는 null (미적용)
*/
- private String checkTransfer(CarFfnlgTrgtVO existingData, BasicResponse.Record basicInfo, String userId) {
+ private String checkTransfer(CarFfnlgTrgtVO existingData, OldBasicResponse.Record basicInfo, String userId) {
String vhclno = existingData.getVhclno();
// ========== 이첩 조건들 (OR 로직: 하나라도 만족하면 이첩) ==========
@@ -141,7 +141,7 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co
* 이첩 조건1: 법정동코드 불일치
* 사용본거지법정동코드 앞 4자리 != 사용자 조직코드 앞 4자리
*/
- private boolean checkTransferCondition1_LegalDongMismatch(BasicResponse.Record basicInfo, String userId, String vhclno) {
+ private boolean checkTransferCondition1_LegalDongMismatch(OldBasicResponse.Record basicInfo, String userId, String vhclno) {
String useStrnghldLegaldongCode = basicInfo.getUseStrnghldLegaldongCode();
// 법정동코드 유효성 검사
@@ -176,7 +176,7 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co
/**
* 이첩 처리 (공통 로직)
*/
- private String processTransfer(CarFfnlgTrgtVO existingData, BasicResponse.Record basicInfo,
+ private String processTransfer(CarFfnlgTrgtVO existingData, OldBasicResponse.Record basicInfo,
String vhclno, String reason) {
log.info("[이첩] 조건 충족! 차량번호: {}, 사유: {}", vhclno, reason);
@@ -217,7 +217,7 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co
* @return 04 (적용됨) 또는 null (미적용)
*/
@SuppressWarnings("unused")
- private String checkInvestigationClosed(CarFfnlgTrgtVO existingData, BasicResponse.Record basicInfo) {
+ private String checkInvestigationClosed(CarFfnlgTrgtVO existingData, OldBasicResponse.Record basicInfo) {
String vhclno = existingData.getVhclno();
String ersrRegistSeCode = basicInfo.getErsrRegistSeCode(); // 말소등록구분코드
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index f3d4bbe..53f992e 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -168,6 +168,12 @@ vmis:
external:
api:
url:
- base: "http://localhost:8081/api/v1/vehicles" # VMIS-interface 서버 URL (개발)
- basic: "/basic" # 자동차기본정보
- ledger: "/ledger" # 자동차등록원부
\ No newline at end of file
+ base: "http://localhost:18080/api/v1/vehicles" # VMIS-interface 서버 URL (운영)
+ basic:
+ old-or-new: "old" # 과거 신규 API 선택
+ old-url: "/old-basic" # 자동차기본정보
+ new-url: "/new-basic" # 자동차기본정보
+ ledger:
+ old-or-new: "new" # 과거 신규 API 선택, 자동차등록원부(갑)은 연계서버에 old 구현안됨.
+ old-url: "/old-ledger" # 자동차등록원부(갑) - 구현안됨.
+ new-url: "/new-ledger" # 자동차등록원부(갑)
\ No newline at end of file
diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml
index f63609a..28b300a 100644
--- a/src/main/resources/application-local.yml
+++ b/src/main/resources/application-local.yml
@@ -175,6 +175,12 @@ vmis:
external:
api:
url:
- base: "http://localhost:8081/api/v1/vehicles" # VMIS-interface 서버 URL (로컬)
- basic: "/basic" # 자동차기본정보
- ledger: "/ledger" # 자동차등록원부
\ No newline at end of file
+ base: "http://localhost:18080/api/v1/vehicles" # VMIS-interface 서버 URL (운영)
+ basic:
+ old-or-new: "old" # 과거 신규 API 선택
+ old-url: "/old-basic" # 자동차기본정보
+ new-url: "/new-basic" # 자동차기본정보
+ ledger:
+ old-or-new: "new" # 과거 신규 API 선택, 자동차등록원부(갑)은 연계서버에 old 구현안됨.
+ old-url: "/old-ledger" # 자동차등록원부(갑)
+ new-url: "/new-ledger" # 자동차등록원부(갑)
\ No newline at end of file
diff --git a/src/main/resources/application-prd.yml b/src/main/resources/application-prd.yml
index 856d567..256d64c 100644
--- a/src/main/resources/application-prd.yml
+++ b/src/main/resources/application-prd.yml
@@ -171,5 +171,11 @@ vmis:
api:
url:
base: "http://localhost:18080/api/v1/vehicles" # VMIS-interface 서버 URL (운영)
- basic: "/basic" # 자동차기본정보
- ledger: "/ledger" # 자동차등록원부
\ No newline at end of file
+ basic:
+ old-or-new: "old" # 과거 신규 API 선택
+ old-url: "/old-basic" # 자동차기본정보
+ new-url: "/new-basic" # 자동차기본정보
+ ledger:
+ old-or-new: "new" # 과거 신규 API 선택, 자동차등록원부(갑)은 연계서버에 old 구현안됨.
+ old-url: "/old-ledger" # 자동차등록원부(갑)
+ new-url: "/new-ledger" # 자동차등록원부(갑)
\ No newline at end of file
diff --git a/src/main/resources/mybatis/mapper/api/CarBassMatterInqireMapper_maria.xml b/src/main/resources/mybatis/mapper/api/CarBassMatterInqireMapper_maria.xml
index bc83a04..7422398 100644
--- a/src/main/resources/mybatis/mapper/api/CarBassMatterInqireMapper_maria.xml
+++ b/src/main/resources/mybatis/mapper/api/CarBassMatterInqireMapper_maria.xml
@@ -14,31 +14,33 @@
INSERT INTO tb_car_bass_matter_inqire (
CAR_BASS_MATTER_INQIRE_ID,
INFO_SYS_ID,
- INFO_SYS_IP,
- SIGUNGU_CODE,
- CNTC_INFO_CODE,
- CHARGER_ID,
- CHARGER_IP,
- CHARGER_NM,
- DMND_LEVY_STDDE,
- DMND_INQIRE_SE_CODE,
+ INFO_SYS_IP_ADDR,
+ SGG_CD,
+ LINK_INFO_CD,
+ PIC_ID,
+ PIC_IP_ADDR,
+ PIC_NM,
+ DMND_LEVY_CRTR_YMD,
+ DMND_INQ_SE_CD,
DMND_VHRNO,
DMND_VIN,
+ LINK_RSLT_CD,
REG_DT,
RGTR
) VALUES (
#{carBassMatterInqireId},
#{infoSysId},
- #{infoSysIp},
- #{sigunguCode},
- #{cntcInfoCode},
- #{chargerId},
- #{chargerIp},
- #{chargerNm},
+ #{infoSysIpAddr},
+ #{sggCd},
+ #{linkInfoCd},
+ #{picId},
+ #{picIpAddr},
+ #{picNm},
#{dmndLevyStdde},
#{dmndInqireSeCode},
#{dmndVhrno},
#{dmndVin},
+ #{linkRsltCd},
NOW(),
#{rgtr}
)
@@ -48,92 +50,94 @@
UPDATE tb_car_bass_matter_inqire
- CNTC_RESULT_CODE = #{cntcResultCode},
- CNTC_RESULT_DTLS = #{cntcResultDtls},
- PRYE = #{prye},
- REGIST_DE = #{registDe},
- ERSR_REGIST_SE_CODE = #{ersrRegistSeCode},
- ERSR_REGIST_SE_NM = #{ersrRegistSeNm},
- ERSR_REGIST_DE = #{ersrRegistDe},
- REGIST_DETAIL_CODE = #{registDetailCode},
+ TX_ID = #{txId},
+ LINK_RSLT_CD = #{linkRsltCd},
+ LINK_RSLT_DTL = #{linkRsltDtl},
+ YRIDNW = #{prye},
+ REG_YMD = #{registDe},
+ ERSR_REG_SE_CD = #{ersrRegistSeCode},
+ ERSR_REG_SE_NM = #{ersrRegistSeNm},
+ ERSR_REG_YMD = #{ersrRegistDe},
+ REG_DTL_CD = #{registDetailCode},
DSPLVL = #{dsplvl},
- USE_STRNGHLD_LEGALDONG_CODE = #{useStrnghldLegaldongCode},
- USE_STRNGHLD_ADSTRD_CODE = #{useStrnghldAdstrdCode},
- USE_STRNGHLD_MNTN = #{useStrnghldMntn},
- USE_STRNGHLD_LNBR = #{useStrnghldLnbr},
- USE_STRNGHLD_HO = #{useStrnghldHo},
- USE_STRNGHLD_ADRES_NM = #{useStrnghldAdresNm},
- USE_STRNGHLD_ROAD_NM_CODE = #{useStrnghldRoadNmCode},
- USGSRHLD_UNDGRND_BULD_SE_CODE = #{usgsrhldUndgrndBuldSeCode},
- USE_STRNGHLD_BULD_MAIN_NO = #{useStrnghldBuldMainNo},
- USE_STRNGHLD_BULD_SUB_NO = #{useStrnghldBuldSubNo},
- USGSRHLD_ADRES_FULL = #{usgsrhldAdresFull},
- MBER_SE_CODE = #{mberSeCode},
- MBER_SE_NO = #{mberSeNo},
- TELNO = #{telno},
- OWNER_LEGALDONG_CODE = #{ownerLegaldongCode},
- OWNER_ADSTRD_CODE = #{ownerAdstrdCode},
- OWNER_MNTN = #{ownerMntn},
- OWNER_LNBR = #{ownerLnbr},
- OWNER_HO = #{ownerHo},
- OWNER_ADRES_NM = #{ownerAdresNm},
- OWNER_ROAD_NM_CODE = #{ownerRoadNmCode},
- OWNER_UNDGRND_BULD_SE_CODE = #{ownerUndgrndBuldSeCode},
- OWNER_BULD_MAIN_NO = #{ownerBuldMainNo},
- OWNER_BULD_SUB_NO = #{ownerBuldSubNo},
- OWNR_WHOLADDR = #{ownrWholaddr},
- AFTR_VHRNO = #{aftrVhrno},
- USE_FUEL_CODE = #{useFuelCode},
- PRPOS_SE_CODE = #{prposSeCode},
+ USGSRHLD_STDG_CD = #{useStrnghldLegaldongCode},
+ USGSRHLD_DONG_CD = #{useStrnghldAdstrdCode},
+ USGSRHLD_MTN_YN = #{useStrnghldMntn},
+ USGSRHLD_LNBR = #{useStrnghldLnbr},
+ USGSRHLD_HO = #{useStrnghldHo},
+ USGSRHLD_ADDR_NM = #{useStrnghldAdresNm},
+ USGSRHLD_ROAD_NM_CD = #{useStrnghldRoadNmCode},
+ USGSRHLD_UDGD_BLDG_SE_CD = #{usgsrhldUndgrndBuldSeCode},
+ USGSRHLD_BMNO = #{useStrnghldBuldMainNo},
+ USGSRHLD_BSNO = #{useStrnghldBuldSubNo},
+ USGSRHLD_WHOL_ADDR = #{usgsrhldAdresFull},
+ RPRS_OWNR_MBR_SE_CD = #{mberSeCode},
+ RPRSV_OWNR_IDECNO = #{mberSeNo},
+ RPRS_OWNR_TELNO = #{telno},
+ OWNR_STDG_CD = #{ownerLegaldongCode},
+ OWNR_DONG_CD = #{ownerAdstrdCode},
+ OWNR_MTN_YN = #{ownerMntn},
+ OWNR_LNBR = #{ownerLnbr},
+ OWNR_HO = #{ownerHo},
+ OWNR_ADDR_NM = #{ownerAdresNm},
+ OWNR_ROAD_NM_CD = #{ownerRoadNmCode},
+ OWNR_UDGD_BLDG_SE_CD = #{ownerUndgrndBuldSeCode},
+ OWNR_BMNO = #{ownerBuldMainNo},
+ OWNR_BSNO = #{ownerBuldSubNo},
+ OWNR_WHOL_ADDR = #{ownrWholaddr},
+ REAR_VHRNO = #{aftrVhrno},
+ USE_FUEL_CD = #{useFuelCode},
+ USG_SE_CD = #{prposSeCode},
MTRS_FOM_NM = #{mtrsFomNm},
- FRNT_VHRNO = #{frntVhrno},
+ BFR_VHRNO = #{frntVhrno},
VHRNO = #{vhrno},
VIN = #{vin},
- CNM = #{cnm},
- VHCLE_TOT_WT = #{vhcleTotWt},
- CAAG_ENDDE = #{caagEndde},
- CHANGE_DE = #{changeDe},
- VHCTY_ASORT_CODE = #{vhctyAsortCode},
- VHCTY_TY_CODE = #{vhctyTyCode},
- VHCTY_SE_CODE = #{vhctySeCode},
+ ATMB_NM = #{cnm},
+ VHCL_TOTL_WT = #{vhcleTotWt},
+ VEAG_END_YMD = #{caagEndde},
+ CHG_YMD = #{changeDe},
+ CARMDL_ASORT_CD = #{vhctyAsortCode},
+ CARMDL_TYPE_CD = #{vhctyTyCode},
+ CARMDL_SE_CD = #{vhctySeCode},
MXMM_LDG = #{mxmmLdg},
- VHCTY_ASORT_NM = #{vhctyAsortNm},
- VHCTY_TY_NM = #{vhctyTyNm},
- VHCTY_SE_NM = #{vhctySeNm},
- FRST_REGIST_DE = #{frstRegistDe},
+ CARMDL_ASORT_NM = #{vhctyAsortNm},
+ CARMDL_TYPE_NM = #{vhctyTyNm},
+ CARMDL_CLSF_NM = #{vhctySeNm},
+ FRST_REG_YMD = #{frstRegistDe},
FOM_NM = #{fomNm},
- ACQS_DE = #{acqsDe},
- ACQS_END_DE = #{acqsEndDe},
- YBL_MD = #{yblMd},
- TRANSR_REGIST_DE = #{transrRegistDe},
- SPCF_REGIST_STTUS_CODE = #{spcfRegistSttusCode},
+ ACQS_YMD = #{acqsDe},
+ ACQS_END_YMD = #{acqsEndDe},
+ FBCTN_YMD = #{yblMd},
+ TRANSR_REG_YMD = #{transrRegistDe},
+ SPCF_REG_STTS_CD = #{spcfRegistSttusCode},
COLOR_NM = #{colorNm},
- MRTG_CO = #{mrtgCo},
- SEIZR_CO = #{seizrCo},
- STMD_CO = #{stmdCo},
- NMPL_CSDY_AT = #{nmplCsdyAt},
- NMPL_CSDY_REMNR_DE = #{nmplCsdyRemnrDe},
- ORIGIN_SE_CODE = #{originSeCode},
- NMPL_STNDRD_CODE = #{nmplStndrdCode},
- ACQS_AMOUNT = #{acqsAmount},
- INSPT_VALID_PD_BGNDE = #{insptValidPdBgnde},
- INSPT_VALID_PD_ENDDE = #{insptValidPdEndde},
- USE_STRNGHLD_GRC_CODE = #{useStrnghldGrcCode},
- TKCAR_PSCAP_CO = #{tkcarPscapCo},
+ MRTG_CNT = #{mrtgCo},
+ SZR_CNT = #{seizrCo},
+ STRCT_CHG_CNT = #{stmdCo},
+ NOPLT_CSDY_YN = #{nmplCsdyAt},
+ NOPLT_CSDY_AVTSMT_YMD = #{nmplCsdyRemnrDe},
+ SRC_SE_CD = #{originSeCode},
+ NOPLT_SPCFCT_CD = #{nmplStndrdCode},
+ ACQS_AMT = #{acqsAmount},
+ INSP_VLD_PD_BGNG_YMD = #{insptValidPdBgnde},
+ INSP_VLD_PD_END_YMD = #{insptValidPdEndde},
+ USGSRHLD_GRC_CD = #{useStrnghldGrcCode},
+ RDCPCT_CNT = #{tkcarPscapCo},
SPMNNO = #{spmnno},
- TRVL_DSTNC = #{trvlDstnc},
- FRST_REGIST_RQRCNO = #{frstRegistRqrcno},
- VLNT_ERSR_PRVNTC_NTICE_DE = #{vlntErsrPrvntcNticeDe},
- REGIST_INSTT_NM = #{registInsttNm},
- PROCESS_IMPRTY_RESN_CODE = #{processImprtyResnCode},
- PROCESS_IMPRTY_RESN_DTLS = #{processImprtyResnDtls},
+ DRVNG_DSTNC = #{trvlDstnc},
+ FRST_REG_APLY_RCPT_NO = #{frstRegistRqrcno},
+ VLNT_ERSR_PRVNTC_AVTSMT_YMD = #{vlntErsrPrvntcNticeDe},
+ OGNZ_NM = #{registInsttNm},
+ PRCS_IMPRTY_RSN_CD = #{processImprtyResnCode},
+ PRCS_IMPRTY_RSN_DTLS = #{processImprtyResnDtls},
CBD_LT = #{cbdLt},
CBD_BT = #{cbdBt},
CBD_HG = #{cbdHg},
FRST_MXMM_LDG = #{frstMxmmLdg},
- FUEL_CNSMP_RT = #{fuelCnsmpRt},
- ELCTY_CMPND_FUEL_CNSMP_RT = #{elctyCmpndFuelCnsmpRt},
- MBER_NM = #{mberNm},
+ FUEL_CNSMPRT = #{fuelCnsmpRt},
+ ELCTY_CMPND_FUEL_CNSMPRT = #{elctyCmpndFuelCnsmpRt},
+ RPRS_OWNR_NM = #{mberNm},
+ CAR_FFNLG_TRGT_ID = #{carFfnlgTrgtId}
WHERE CAR_BASS_MATTER_INQIRE_ID = #{carBassMatterInqireId}
diff --git a/src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml b/src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml
index cd3a4e1..0cfdaf0 100644
--- a/src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml
+++ b/src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml
@@ -18,39 +18,41 @@
INSERT INTO tb_car_ledger_frmbk (
CAR_LEDGER_FRMBK_ID,
INFO_SYS_ID,
- INFO_SYS_IP,
- SIGUNGU_CODE,
- CNTC_INFO_CODE,
- CHARGER_ID,
- CHARGER_IP,
- CHARGER_NM,
+ INFO_SYS_IP_ADDR,
+ SGG_CD,
+ LINK_INFO_CD,
+ PIC_ID,
+ PIC_IP_ADDR,
+ PIC_NM,
DMND_VHRNO,
- DMND_ONES_INFORMATION_OPEN,
- DMND_CPTTR_NM,
- DMND_CPTTR_IHIDNUM,
- DMND_CPTTR_LEGALDONG_CODE,
- DMND_ROUTE_SE_CODE,
- DMND_DETAIL_EXPRESSION,
- DMND_INQIRE_SE_CODE,
+ DMND_PRVC_RLS,
+ DMND_CVLPR_NM,
+ DMND_CVLPR_IDECNO,
+ DMND_CVLPR_STDG_CD,
+ DMND_PATH_SE_CD,
+ DMND_DSCTN_INDCT,
+ DMND_INQ_SE_CD,
+ LINK_RSLT_CD,
REG_DT,
RGTR
) VALUES (
#{carLedgerFrmbkId},
#{infoSysId},
- #{infoSysIp},
- #{sigunguCode},
- #{cntcInfoCode},
- #{chargerId},
- #{chargerIp},
- #{chargerNm},
+ #{infoSysIpAddr},
+ #{sggCd},
+ #{linkInfoCd},
+ #{picId},
+ #{picIpAddr},
+ #{picNm},
#{dmndVhrno},
- #{dmndOnesInformationOpen},
- #{dmndCpttrNm},
- #{dmndCpttrIhidnum},
- #{dmndCpttrLegaldongCode},
- #{dmndRouteSeCode},
- #{dmndDetailExpression},
- #{dmndInqireSeCode},
+ #{dmndPrvcRls},
+ #{dmndCvlprNm},
+ #{dmndCvlprIdecno},
+ #{dmndCvlprStdgCd},
+ #{dmndPathSeCd},
+ #{dmndDsctnIndct},
+ #{dmndInqSeCd},
+ #{linkRsltCd},
NOW(),
#{rgtr}
)
@@ -60,69 +62,72 @@
UPDATE tb_car_ledger_frmbk
- CNTC_RESULT_CODE = #{cntcResultCode},
- CNTC_RESULT_DTLS = #{cntcResultDtls},
+ TX_ID = #{txId},
+ LINK_RSLT_CD = #{linkRsltCd},
+ LINK_RSLT_DTL = #{linkRsltDtl},
LEDGER_GROUP_NO = #{ledgerGroupNo},
- LEDGER_INDVDLZ_NO = #{ledgerIndvdlzNo},
+ LEDGER_INDIV_NO = #{ledgerIndivNo},
VHMNO = #{vhmno},
VHRNO = #{vhrno},
VIN = #{vin},
- VHCTY_ASORT_CODE = #{vhctyAsortCode},
- VHCTY_ASORT_NM = #{vhctyAsortNm},
- CNM = #{cnm},
- COLOR_CODE = #{colorCode},
+ CARMDL_ASORT_CD = #{carmdlAsortCd},
+ CARMDL_ASORT_NM = #{carmdlAsortNm},
+ ATMB_NM = #{atmbNm},
+ COLOR_CD = #{colorCd},
COLOR_NM = #{colorNm},
- NMPL_STNDRD_CODE = #{nmplStndrdCode},
- NMPL_STNDRD_NM = #{nmplStndrdNm},
- PRPOS_SE_CODE = #{prposSeCode},
- PRPOS_SE_NM = #{prposSeNm},
+ NOPLT_SPCFCT_CD = #{nopltSpcfctCd},
+ NOPLT_SPCFCT_NM = #{nopltSpcfctNm},
+ USG_SE_CD = #{usgSeCd},
+ USG_SE_NM = #{usgSeNm},
MTRS_FOM_NM = #{mtrsFomNm},
FOM_NM = #{fomNm},
- ACQS_AMOUNT = #{acqsAmount},
- REGIST_DETAIL_CODE = #{registDetailCode},
- REGIST_DETAIL_NM = #{registDetailNm},
- FRST_REGIST_DE = #{frstRegistDe},
- CAAG_ENDDE = #{caagEndde},
- PRYE = #{prye},
- SPMNNO1 = #{spmnno1},
- SPMNNO2 = #{spmnno2},
- YBL_MD = #{yblMd},
- TRVL_DSTNC = #{trvlDstnc},
- INSPT_VALID_PD_BGNDE = #{insptValidPdBgnde},
- INSPT_VALID_PD_ENDDE = #{insptValidPdEndde},
- CHCK_VALID_PD_BGNDE = #{chckValidPdBgnde},
- CHCK_VALID_PD_ENDDE = #{chckValidPdEndde},
- REGIST_REQST_SE_NM = #{registReqstSeNm},
- FRST_REGIST_RQRCNO = #{frstRegistRqrcno},
- NMPL_CSDY_REMNR_DE = #{nmplCsdyRemnrDe},
- NMPL_CSDY_AT = #{nmplCsdyAt},
- BSS_USE_PD = #{bssUsePd},
- OCTHT_ERSR_PRVNTC_NTICE_DE = #{octhtErsrPrvntcNticeDe},
- ERSR_REGIST_DE = #{ersrRegistDe},
- ERSR_REGIST_SE_CODE = #{ersrRegistSeCode},
- ERSR_REGIST_SE_NM = #{ersrRegistSeNm},
- MRTGCNT = #{mrtgcnt},
- VHCLECNT = #{vhclecnt},
- STMDCNT = #{stmdcnt},
- ADRES1 = #{adres1},
- ADRES_NM1 = #{adresNm1},
- ADRES = #{adres},
- ADRES_NM = #{adresNm},
- INDVDL_BSNM_AT = #{indvdlBsnmAt},
- TELNO = #{telno},
- MBER_NM = #{mberNm},
- MBER_SE_CODE = #{mberSeCode},
- MBER_SE_NO = #{mberSeNo},
- TAXXMPT_TRGTER_SE_CODE = #{taxxmptTrgterSeCode},
- TAXXMPT_TRGTER_SE_CODE_NM = #{taxxmptTrgterSeCodeNm},
- CNT_MATTER = #{cntMatter},
- EMD_NM = #{emdNm},
- PRVNTCCNT = #{prvntccnt},
- XPORT_FLFL_AT_STTEMNT_DE = #{xportFlflAtSttemntDe},
- PARTN_RQRCNO = #{partnRqrcno},
- FRST_TRNSFR_DE = #{frstTrnsfrDe},
- PROCESS_IMPRTY_RESN_CODE = #{processImprtyResnCode},
- PROCESS_IMPRTY_RESN_DTLS = #{processImprtyResnDtls},
+ ACQS_AMT = #{acqsAmt},
+ REG_DTL_CD = #{regDtlCd},
+ REG_DTL_NM = #{regDtlNm},
+ FRST_REG_YMD = #{frstRegYmd},
+ VEAG_END_YMD = #{veagEndYmd},
+ YRIDNW = #{yridnw},
+ SPMNNO_1 = #{spmnno1},
+ SPMNNO_2 = #{spmnno2},
+ FBCTN_YMD = #{fbctnYmd},
+ DRVNG_DSTNC = #{drvngDstnc},
+ INSP_VLD_PD_BGNG_YMD = #{inspVldPdBgngYmd},
+ INSP_VLD_PD_END_YMD = #{inspVldPdEndYmd},
+ CHCK_VLD_PD_BGNG_YMD = #{chckVldPdBgngYmd},
+ CHCK_VLD_PD_END_YMD = #{chckVldPdEndYmd},
+ REG_APLY_SE_NM = #{regAplySeNm},
+ FRST_REG_APLY_RCPT_NO = #{frstRegAplyRcptNo},
+ NOPLT_CSDY_AVTSMT_YMD = #{nopltCsdyAvtsmtYmd},
+ NOPLT_CSDY_YN = #{nopltCsdyYn},
+ BSS_USE_PD_YMD = #{bssUsePdYmd},
+ OCTHT_ERSR_PRVNTC_AVTSMT_YMD = #{octhtErsrPrvntcAvtsmtYmd},
+ ERSR_REG_YMD = #{ersrRegYmd},
+ ERSR_REG_SE_CD = #{ersrRegSeCd},
+ ERSR_REG_SE_NM = #{ersrRegSeNm},
+ MRTG_CNT = #{mrtgCnt},
+ SZR_CNT = #{szrCnt},
+ STRCT_CHG_CNT = #{strctChgCnt},
+ USGSRHLD_ADDR_1 = #{usgsrhldAddr1},
+ USGSRHLD_ADDR_DTL_1 = #{usgsrhldAddrDtl1},
+ OWNR_ADDR = #{ownrAddr},
+ OWNR_ADDR_DTL = #{ownrAddrDtl},
+ INDVDL_BZMN_YN = #{indvdlBzmnYn},
+ RPRS_OWNR_TELNO = #{rprsOwnrTelno},
+ RPRS_OWNR_NM = #{rprsOwnrNm},
+ RPRS_OWNR_MBR_SE_CD = #{rprsOwnrMbrSeCd},
+ RPRSV_OWNR_IDECNO = #{rprsvOwnrIdecno},
+ TAXXMPT_TRPR_SE_CD = #{taxxmptTrprSeCd},
+ TAXXMPT_APLCN_SE_CD = #{taxxmptAplcnSeCd},
+ SPCABL_MTTR_CNT = #{spcablMttrCnt},
+ USGSRHLD_DONG_NM = #{usgsrhldDongNm},
+ PRVNTC_CNT = #{prvntcCnt},
+ XPORT_FLFL_YN_DCLR_YMD = #{xportFlflYnDclrYmd},
+ ISSU_NO = #{issuNo},
+ FRST_TRNSFR_YMD = #{frstTrnsfrYmd},
+ DRIV_SRGBTRY_IDNTF_NO = #{drivSrgbtryIdntfNo},
+ PRCS_IMPRTY_RSN_CD = #{prcsImprtyRsnCd},
+ PRCS_IMPRTY_RSN_DTLS = #{prcsImprtyRsnDtls},
+ CAR_FFNLG_TRGT_ID = #{carFfnlgTrgtId}
WHERE CAR_LEDGER_FRMBK_ID = #{carLedgerFrmbkId}
@@ -132,36 +137,40 @@
INSERT INTO tb_car_ledger_frmbk_dtl (
CAR_LEDGER_FRMBK_DTL_ID,
CAR_LEDGER_FRMBK_ID,
- MAINCHK,
- CHANGE_JOB_SE_CODE,
- MAINNO,
- SUBNO,
- DTLS,
- RQRCNO,
+ SZR_RMV_DTL_SN,
+ CHG_TASK_SE_CD,
+ MAIN_NO,
+ SNO,
+ SPCABL_MTTR,
+ HSHLDR_NM,
+ HSHLDR_IDECNO,
+ APLY_RCPT_NO,
VHMNO,
LEDGER_GROUP_NO,
- LEDGER_INDVDLZ_NO,
- GUBUN_NM,
- CHANGE_DE,
- DETAIL_SN,
+ LEDGER_INDIV_NO,
+ CHG_TASK_SE_NM,
+ CHG_YMD,
+ DTL_SN,
FLAG,
REG_DT,
RGTR
) VALUES (
#{carLedgerFrmbkDtlId},
#{carLedgerFrmbkId},
- #{mainchk},
- #{changeJobSeCode},
- #{mainno},
- #{subno},
- #{dtls},
- #{rqrcno},
+ #{szrRmvDtlSn},
+ #{chgTaskSeCd},
+ #{mainNo},
+ #{sno},
+ #{spcablMttr},
+ #{hshldrNm},
+ #{hshldrIdecno},
+ #{aplyRcptNo},
#{vhmno},
#{ledgerGroupNo},
- #{ledgerIndvdlzNo},
- #{gubunNm},
- #{changeDe},
- #{detailSn},
+ #{ledgerIndivNo},
+ #{chgTaskSeNm},
+ #{chgYmd},
+ #{dtlSn},
#{flag},
NOW(),
#{rgtr}