25 xit lvis 24.06.01
hanmj edited this page 5 months ago

xit-lvis-24.06.01이란?

xit-lvis는 자동차관리 (차세대)정보시스템에 연계를 돕는 모듈로 java 17 이상에서 동작한다.

사전요건

  • 행정정보 공동이용 시스템의 사용승인을 받아야 한다.
  • 자동차관리 정보시스템에서
    • 사용승인을 받아야 한다.
    • 사용하려는 API의 cvms_apikey를 발급받아야 한다.

설치

xit-lvis를 사용하려면

  • 응용시스템 프로젝트의 pom.xml에 의존성을 추가한다.
  • xit-lvis와 관련 의존 모듈의 설정정보를 정의한다.
  • 자동차 기본정보 조회의 로그를 저장하려면 응용시스템 DB에 로그 테이블을 생성한다.

의존성 추가

xit-lvis를 응용시스템에서 사용하려면 프로젝트의 pom.xml에 의존성을 다음과 같이 추가한다.

<dependency>
    <groupId>cokr.xit.interfaces</groupId>
    <artifactId>xit-lvis</artifactId>
    <version>24.06.01-SNAPSHOT</version>
</dependency>

설정

gpki 지원 모듈 설정

public-info.conf

intf-conf/public-info.conf 파일을 열어 행정정보 공동이용 시스템 접속을 위한 정보를 다음과 같이 설정한다.

{
    "host": "http://10.188.225.94:29001",
/*  행정정보 url
    운영: http://10.188.225.25:29001
    개발: http://10.188.225.94:29001
*/
    "apis": [
        {
            "name": "lvis",

            "userServerId": "이용기관 gpki server id",
            "providerServerId": "보유기관 gpki server id",
            "gpki": true,  // 데이터 암복호화 사용 여부
            "mock": false  // 보유기관 가상 데이터 사용 여부
        }
    ]
}

위 내용은 자동차관리 정보시스템 연계를 위한 행정정보 공동이용 시스템 접속 정보를 "lvis"라는 이름으로 정의한 것이다.

사용하려는 API의 url과 api_key는 아래 xit-lvis.conf에서 지정한다.

xit-lvis.conf

intf-conf/xit-lvis.conf 파일을 열어 사용하려는 API 정보를 설정한다.

{
    "apis": [ /* api 아이디 및 uri 목록 */
        {"id": "AC1_FD11_01", "uri": "/piss/api/molit/SignguCarBassMatterInqireService"},  /* 자동차 기본사항 조회 */
        {"id": "AC1_FI59_03", "uri": "/piss/api/molit/SignguSeizrDtlsInqireService"},      /* 압류내역조회 */
        {"id": "AC1_FI59_04", "uri": "/piss/api/molit/SignguAltrtvSeizrVhcleInfoService"}, /* 대체압류차량 */    
        {"id": "FI59_AC1_01", "uri": "/piss/api/molit/SignguCarSeizrRelisEttffService"}    /* 압류연계등록 */
    ],

    "clients": [ /* api 사용기관별 설정 */
        {   "name": "설정 이름",
            "sigunguCode": "시군구코드(필수)",
            "deptCode": "부서코드",

            "infoSysId": "정보시스템 ID(필수)",
            "infoSysIp": "정보시스템 IP(필수)",

            "chargerId": "담당자 id",
            "chargerIp": "담당자 ip 주소",
            "chargerName": "담당자명",

            "publicInfo": "행정정보 공동이용 서비스 접속 설정(public-info.conf) 이름",

            "apiSettings": [ /* api별 설정 */
                {   "api": "api id",
                    "api_key": "행정정보 공동이용 서비스 발급 API 키",
/*                  "cntc_info_code": "연계정보코드, 연계정보코드가 api id와 다를 경우에만 설정", */
                    "cvmis_apikey": "교통안전공단 발급 API 키"
                },
                ...
            ]
        },
        ...
    ]
}

다음은 위 public-info.conf의 'lvis' 설정으로 접속하여 api 4종을 호출하도록 한 설정사례이다.

{
    "apis": [
        {"id": "AC1_FD11_01", "uri": "/piss/api/molit/SignguCarBassMatterInqireService"},  /* 자동차 기본사항 조회 */
        {"id": "AC1_FI59_03", "uri": "/piss/api/molit/SignguSeizrDtlsInqireService"},      /* 압류내역조회 */
        {"id": "AC1_FI59_04", "uri": "/piss/api/molit/SignguAltrtvSeizrVhcleInfoService"}, /* 대체압류차량 */    
        {"id": "FI59_AC1_01", "uri": "/piss/api/molit/SignguCarSeizrRelisEttffService"}    /* 압류연계등록 */
    ],

    "clients": [
        {   "name": "default",              /* 설정 이름 */
            "sigunguCode": "28000",         /* 시군구코드(필수) */
            "deptCode": "",                 /* 부서코드 */

            "infoSysId": "41-358",          /* 정보시스템 ID(필수) */
            "infoSysIp": "101.0.115.13",    /* 정보시스템 IP(필수) */

            "chargerId": "",                /* 담당자 id */
            "chargerIp": "",                /* 담당자 ip 주소 */
            "chargerName": "이광진",          /* 담당자명 */

            "publicInfo": "lvis",           /* public-info.conf의 설정 'lvis' */

            "apiSettings": [
                {   "api": "AC1_FD11_01", /* 자동차 기본사항 조회 */
                    "api_key": "행정정보 공동이용 서비스 발급 API 키",
                    "cvmis_apikey": "교통안전공단 발급 API 키",
                    "log": true            /* 로그 테이블 저장 여부 */
                },
                {   "api": "AC1_FI59_03", /* 압류내역조회 */
                    "api_key": "행정정보 공동이용 서비스 발급 API 키",
                    "cvmis_apikey": "교통안전공단 발급 API 키"
                }, 
                {   "api": "AC1_FI59_04", /* 대체압류차량 */
                    "api_key": "행정정보 공동이용 서비스 발급 API 키",
                    "cvmis_apikey": "교통안전공단 발급 API 키"
                },
                {   "api": "FI59_AC1_01",  /* 압류연계등록 */
                    "api_key": "행정정보 공동이용 서비스 발급 API 키",
                    "cvmis_apikey": "교통안전공단 발급 API 키"
                }
            ]
        }
    ]
}

지원 API

자동차관리 정보시스템의 api를 사용하려면 cokr.xit.interfaces.lvis.service.VehicleInfoService를 사용한다.

@Resource(name="vehicleInfoService")
private VehicleInfoService service;

지원 API

VehicleInfoService는 자동차관리 정보시스템과 연계하여 다음 서비스를 지원한다.

  • findBasicInfo(..): 자동차 기본정보 조회
  • getFrmrWlthReadng(..): 자동차 등록원부(갑), 현재 지원하지 않음
  • getScldgrReadng(..): 자동차 등록원부(을), 현재 지원하지 않음
  • getSeizureByVhrNo(..): 압류내역 조회
  • addAutoSeizureByEttff(..): 압류내역 연계등록
  • getAltrtvSeizureVhrno(..): 대체압류차량 정보 조회
  • getCustodyTrget(..): 번호판 영치대상 조회, 현재 지원하지 않음

공통 파라미터

자동차관리 정보시스템에 요청을 전달할 때 포함되는 공통 파라미터는 다음과 같다.

  • client: xit-lvis.conf의 클라이언트 설정 이름
  • info_sys_id: 정보시스템 id
  • info_sys_ip: 정보시스템 ip
  • sigungu_code: 시군구 코드
  • cntc_info_code : 정보연계 코드
  • charger_id: 담당자 id
  • charger_ip: 담당자 ip
  • charger_nm: 담당자 이름

이중 다음 파라미터들은 xit-lvis가 설정하므로 응용시스템이 설정할 필요없다.

  • info_sys_id
  • info_sys_ip
  • sigungu_code
  • cntc_info_code
  • charger_id
  • charger_ip
  • charger_nm

파라미터 'client'는 xit-lvis가 xit-lvis.conf의 이용기관 설정(clients)을 지정한다.

'client' 파라미터에 값을 지정하지 않으면 'default'라는 이름의 이용기관 설정을 찾는다.

API별 파라미터

자동차 기본정보 조회

  • levy_stdde: 부과 기준일자
  • vhrno: 자동차 등록번호
  • vin: 차대번호

압류내역 조회

{
  "vhrno": "자동차 등록번호",
  "vin": "차대번호",
  "detail_expression": "내역표시",
}

압류내역 연계 등록

{
  "record": [
    {
      "vhrno": "자동차 등록번호",
      "usr_mber_nm": "소유자 명",
      "usr_mber_no": "소유자 주민번호",
      "seizr_regist_se_code": "압류등록구분코드",
      "ofldc_no": "압류공문서번호",
      "ettff_grc_nm": "압류촉탁기관명",
      "seizr_dt": "압류촉탁일",
      "reg_dt": "압류촉탁등록일",
      "seizr_dtls": "압류내역",
      "seizr_amount": 압류금액,
      "ettff_grc_telno": "촉탁기관 전화번호",
      "reg_legaldong_code": "등록권리자 법정동코드",
      "reg_adstrd_code": "등록권리자 행정동코드",
      "reg_mntn": "등록권리자 산",
      "reg_lnbr": "등록권리자 번지",
      "reg_ho": "등록권리자 호",
      "reg_adres_nm": "등록권리자 상세주소",
      "reg_road_nm_code": "등록권리자 도로명코드",
      "reg_undgrnd_buld_se_code": "등록권리자 지하건물구분코드",
      "reg_buld_main_no": "등록권리자 건물주요번호",
      "reg_buld_sub_no": "등록권리자 건물부번호",
      "reg_mber_nm": "등록권리자 성명",
      "reg_mber_no": "등록권리자 주민번호",
      "seizr_requst_se_code": "압류요청구분코드",
      "seizr_se_code": "압류구분코드",
      "seizr_sttus_code": "압류상태코드",
      "ntic_no": "고지번호",
      "seizr_manage_no": "압류관리번호",
      "seizr_ettff_grc_code": "압류촉탁기관코드"
    }
  ]
}

대체 압류차량 조회

{
  "vhrno": "자동차 등록번호",
  "ihidnum": "대표소유자 주민번호"
}