행공망을 이용한 자동차 기본정보(연료제원 포함) 조회 추가

master
mjkhan21 1 year ago
parent 390ee14bfd
commit a14b84948f

@ -50,6 +50,12 @@
<artifactId>xit-foundation</artifactId>
<version>23.04.01-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cokr.xit.interfaces</groupId>
<artifactId>xit-public-info</artifactId>
<version>23.04.01-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>

@ -7,6 +7,8 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
@ -54,4 +56,19 @@ public interface VehicleInfoMapper extends AbstractMapper {
.set("bsno", bsno)
);
}
/** ( ) .
* @param req
* @return
*/
List<BasicInfoExtResponse.ExtInfo> selectExtInfo(BasicInfoExtRequest req);
/** .
* @param params
* <ul><li>req - </li>
* <li>info - </li>
* </ul>
* @return
*/
int insertExtInfo(Map<String, Object> params);
}

@ -1,5 +1,7 @@
package cokr.xit.interfaces.lvis.service;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
import cokr.xit.interfaces.lvis.service.reg.CustodyTrgetRequest;
@ -33,6 +35,13 @@ public interface VehicleInfoService {
*/
BasicInfoResponse getBasicInfo(BasicInfoRequest req);
/** ( ) .<br />
* intf-conf gpki.conf, public-info.conf .
* @param req ( )
* @return ( )
*/
BasicInfoExtResponse getBasicInfo(BasicInfoExtRequest req);
/** () .
* @param req ()
* @return ()

@ -11,7 +11,10 @@ import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.ApplicationException;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.foundation.data.JSON;
import cokr.xit.interfaces.lvis.dao.VehicleInfoMapper;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
import cokr.xit.interfaces.lvis.service.reg.CustodyTrgetRequest;
@ -39,6 +42,8 @@ import cokr.xit.interfaces.lvis.service.seizure.seizure.AddAutoSeizureByEttffRet
import cokr.xit.interfaces.lvis.service.seizure.seizure.FindAltrtvSeizureVhrnoReturn;
import cokr.xit.interfaces.lvis.service.seizure.seizure.SeizureProxy;
import cokr.xit.interfaces.lvis.service.types.WsRequestContext;
import cokr.xit.interfaces.publicinfo.ServiceClient;
import cokr.xit.interfaces.publicinfo.ServiceMessage;
/** () Bean
* @author mjkhan
@ -70,8 +75,7 @@ public class VehicleInfoBean extends AbstractComponent {
}
log().debug("자동차 기본정보를 {}", (success ? "찾았습니다." : "찾지 못했습니다."));
boolean keepLog = properties.getBoolean("lvis.log.basicInfo", false);
if (keepLog) {
if (keepLog()) {
Map<String, Object> params = Map.of(
"req", req,
"info", result.getBasicInfo(),
@ -88,6 +92,10 @@ public class VehicleInfoBean extends AbstractComponent {
}
}
private boolean keepLog() {
return properties.getBoolean("lvis.log.basicInfo", false);
}
private void setRoadNameInfo(BasicInfoRequest req, BasicInfoResponse.BasicInfo basicInfo) {
basicInfo.setSggCd(req.getSggCd());
DataObject roadNameInfo = vehicleInfoMapper.selectRoadNmAdres(
@ -129,6 +137,84 @@ public class VehicleInfoBean extends AbstractComponent {
.toList();
}
/** ( ) .<br />
* intf-conf gpki.conf, public-info.conf .
* @param req ( )
* @return ( )
*/
public BasicInfoExtResponse getBasicInfo(BasicInfoExtRequest req) {
req.setInfo_sys_id(stringProperty("lvis.info_sys.id"));
req.setInfo_sys_ip(stringProperty("lvis.info_sys.ip"));
req.setSigungu_code(stringProperty("lvis.sigungu.code"));
req.setCntc_info_code("AC1_AW0_76");
req.setCharger_id("");
req.setCharger_ip(stringProperty("lvis.charger.ip_adres"));
req.setCharger_nm(stringProperty("lvis.charger.nm"));
req.validate();
if (lvisHost.isLocal())
return getLocalExtInfo(req);
JSON json = new JSON().configure(objectMapper ->
objectMapper.setPropertyNamingStrategy(
new JSON.CustomPropertyNames().customize(propertyName ->
"data".equals(propertyName) || "record".equals(propertyName) ? propertyName : propertyName.toUpperCase()
)
)
);
ServiceMessage.Response sresp = new ServiceClient()
.setConf("basic-info-ext")
.setJSON(json)
.request(req);
String body = sresp.getBody();
if (sresp.success()) {
String data = ServiceMessage.Support.peel(body);
BasicInfoExtResponse resp = json.parse(data, BasicInfoExtResponse.class);
if (keepLog()) {
create(req, resp);
}
return resp;
} else {
Throwable error = sresp.getError();
if (error != null)
throw runtimeException(error);
else {
Map<String, Object> map = new JSON().parse(body, Map.class);
BasicInfoExtResponse resp = new BasicInfoExtResponse();
resp.setError(map);
return resp;
}
}
}
private BasicInfoExtResponse getLocalExtInfo(BasicInfoExtRequest req) {
List<BasicInfoExtResponse.ExtInfo> list = vehicleInfoMapper.selectExtInfo(req);
/*
boolean empty = list.isEmpty();
BasicInfoExtResponse.ExtInfo extInfo = !empty ? list.get(0) : new BasicInfoExtResponse.ExtInfo();
if (!empty) {
extInfo.setProcess_imprty_resn_code("00");
}
*/
BasicInfoExtResponse response = new BasicInfoExtResponse();
response.setRecord(list);
return response;
}
public void create(BasicInfoExtRequest req, BasicInfoExtResponse resp) {
DataObject params = new DataObject()
.set("req", req)
.set("resp", resp)
.set("currentUser", currentUser());
for (BasicInfoExtResponse.ExtInfo extInfo: resp.getRecord()) {
vehicleInfoMapper.insertExtInfo(params.set("info", extInfo));
}
}
/** () .
* @param req ()
* @return ()

@ -6,6 +6,8 @@ import org.springframework.stereotype.Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.interfaces.lvis.service.VehicleInfoService;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
import cokr.xit.interfaces.lvis.service.reg.CustodyTrgetRequest;
@ -34,6 +36,11 @@ public class VehicleInfoServiceBean extends AbstractServiceBean implements Vehic
return vehicleInfoBean.getBasicInfo(req);
}
@Override
public BasicInfoExtResponse getBasicInfo(BasicInfoExtRequest req) {
return vehicleInfoBean.getBasicInfo(req);
}
@Override
public FrmrWlthReadngResponse getFrmrWlthReadng(FrmrWlthReadngRequest req) {
return vehicleInfoBean.getFrmrWlthReadng(req);

@ -0,0 +1,48 @@
package cokr.xit.interfaces.lvis.service.reg;
import cokr.xit.foundation.Assert;
import lombok.Getter;
import lombok.Setter;
/** ( )
* @author mjkhan
*/
@Getter
@Setter
public class BasicInfoExtRequest {
/** 정보시스템ID */
private String info_sys_id;
/** 정보시스템IP */
private String info_sys_ip;
/** 시군구코드 */
private String sigungu_code;
/** 연계정보코드 */
private String cntc_info_code;
/** 담당자ID */
private String charger_id;
/** 담당자IP */
private String charger_ip;
/** 담당자명 */
private String charger_nm;
/** 부과기준일 */
private String levy_stdde;
/** 조회구분코드 */
private String inqire_se_code;
/** 자동차등록번호 */
private String vhrno;
/** 차대번호 */
private String vin;
public void validate() {
if (Assert.isEmpty(levy_stdde))
throw new IllegalArgumentException("empty levy_stdde");
if (Assert.isEmpty(vhrno) && Assert.isEmpty(vin))
throw new IllegalArgumentException("empty vhrno, vin");
if (!Assert.isEmpty(vhrno)) {
inqire_se_code = "3";
} else {
if (!Assert.isEmpty(vin))
inqire_se_code = "2";
}
}
}

@ -0,0 +1,37 @@
package cokr.xit.interfaces.lvis.service.reg;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
/** ( )
* @author mjkhan
*/
@Getter
@Setter
public class BasicInfoExtResponse {
private List<ExtInfo> record;
/** 연계결과코드 */
private String cntc_result_code;
/** 연계결과상세 */
private String cntc_result_dtls;
private Map<String, Object> error;
/** ( )
* @author mjkhan
*/
@Getter
@Setter
public static class ExtInfo extends BasicInfoResponse.BasicInfo {
private static final long serialVersionUID = 1L;
/** 사용본거지전체주소 */
private String usgsrhld_adres_full;
/** 연료소비율 */
private String fuel_cnsmp_rt;
/** 전기복합연료소비율 */
private String elcty_cmpnd_fuel_cnsmp_rt;
}
}

@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RestController;
import cokr.xit.foundation.web.AbstractController;
import cokr.xit.interfaces.lvis.service.VehicleInfoService;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
import cokr.xit.interfaces.lvis.service.reg.CustodyTrgetRequest;
@ -50,11 +52,25 @@ public class ApiController extends AbstractController {
* }</pre>
* @return
*/
@RequestMapping(value = "/basicInfo", name = "자동차 기본사항 조회")
@PostMapping(value = "/basicInfo", name = "자동차 기본사항 조회")
public BasicInfoResponse getBasicInfo(@RequestBody BasicInfoRequest req) {
return service.getBasicInfo(req);
}
/** .
* @param req
* <pre>{
* "VIN": "차대번호",
* "VHRNO": "차량번호",
* "LEVY_STDDE": "부과기준일자"
* }</pre>
* @return
*/
@PostMapping(value = "/basicInfoExt", name = "자동차 기본사항 조회")
public BasicInfoExtResponse getBasicInfo(@RequestBody BasicInfoExtRequest req) {
return service.getBasicInfo(req);
}
/** () .
* @param req ()
* <pre>{
@ -69,7 +85,7 @@ public class ApiController extends AbstractController {
* }</pre>
* @return ()
*/
@RequestMapping(value = "/frmrWlthReadng", name = "자동차 등록원부(갑) 조회")
@PostMapping(value = "/frmrWlthReadng", name = "자동차 등록원부(갑) 조회")
public FrmrWlthReadngResponse getFrmrWlthReadng(@RequestBody FrmrWlthReadngRequest req) {
return service.getFrmrWlthReadng(req);
}
@ -87,7 +103,7 @@ public class ApiController extends AbstractController {
* }</pre>
* @return ()
*/
@RequestMapping(value = "/scldgrReadng", name = "자동차 등록원부(을) 조회")
@PostMapping(value = "/scldgrReadng", name = "자동차 등록원부(을) 조회")
public ScldgrReadngResponse getScldgrReadng(@RequestBody ScldgrReadngRequest req) {
return service.getScldgrReadng(req);
}
@ -102,7 +118,7 @@ public class ApiController extends AbstractController {
* }</pre>
* @return
*/
@RequestMapping(value = "/seizureByVhrNo", name = "압류내역 조회")
@PostMapping(value = "/seizureByVhrNo", name = "압류내역 조회")
public SeizureByVhrNoResponse getSeizureByVhrNo(@RequestBody SeizureByVhrNoRequest req) {
return service.getSeizureByVhrNo(req);
}
@ -152,7 +168,7 @@ public class ApiController extends AbstractController {
* }</pre>
* @return
*/
@RequestMapping(value = "/altrtvSeizureVhrno", name = "대체 압류차량 조회")
@PostMapping(value = "/altrtvSeizureVhrno", name = "대체 압류차량 조회")
public AltrtvSeizureVhrnoResponse getAltrtvSeizureVhrno(@RequestBody AltrtvSeizureVhrnoRequest req) {
return service.getAltrtvSeizureVhrno(req);
}
@ -164,7 +180,7 @@ public class ApiController extends AbstractController {
* }</pre>
* @return
*/
@RequestMapping(value = "/custodyTrget", name = "번호판 영치대상 조회")
@PostMapping(value = "/custodyTrget", name = "번호판 영치대상 조회")
public CustodyTrgetResponse getCustodyTrget(@RequestBody CustodyTrgetRequest req) {
return service.getCustodyTrget(req);
}
@ -179,7 +195,12 @@ public class ApiController extends AbstractController {
map.put("messageId", "MSG50560");
map.put("messageName", "제공기관 구간 시스템 오류");
map.put("messageReason", "제공기관 구간 시스템 오류 : 기타 시스템 오류");
map.put("exceptionStackTrace", ExceptionUtils.getStackTrace(rootCause(t)));
Throwable cause = rootCause(t);
map.put("exceptionStackTrace", ExceptionUtils.getStackTrace(cause));
cause.printStackTrace();
return map;
}
}

@ -0,0 +1,25 @@
{
"license": "C:\\GPKI\\Lic", /* 이용기관 GPKI API 라이센스 디렉토리 */
"charset": "UTF-8", /* 문자셋 */
"server": {
"local": "SVR1311000030", /* 이용기관 서버 CN */
"targets": "SVR1500000015" /* 대상기관 서버인증서 아이디, 여러 개일 경우 컴마(,)로 구분 */
},
"ldapUrl": "ldap://10.1.7.118:389/cn=", /* 대상기관 인증서 다운로드를 위한 행정망 LDAP URL */
/*"ldapUrl": "ldap://152.99.57.127:389/cn=", 대상기관 인증서 다운로드를 위한 인터넷망 LDAP URL */
"certDir": "C:\\GPKI\\Certificate\\class1", /* 서버 인증서, 키 저장 디렉토리 */
"env": { /* 이용기관 서버 인증서 */
"certFile": "SVR1311000030_env.cer",
"privateKeyFile": "SVR1311000030_env.key",
"privateKeyPassword": "기후대기3395!"
},
"sig": { /* 이용기관 서버 전자서명 */
"certFile": "SVR1311000030_sig.cer",
"privateKeyFile": "SVR1311000030_sig.key",
"privateKeyPassword": "기후대기3395!"
}
}

@ -0,0 +1,12 @@
{
"basic-info-ext": { /* 자동차 기본정보(연료제원 포함) 조회 설정 이름 */
"apiKey": "59f26bf09ed196bfbd98210388c4c6ea9dd0f77bde3f35526f082647a305325b", /* 행정정보 공동이용 서비스가 발급한 api key */
"apiUrl": "http://10.188.225.94:29001/piss/api/molit/SignguCarBassMatterInqireService", /* 서비스 api url */
"userServerId": "SVR1311000030", /* 이용기관 gpki server id */
"providerServerId": "SVR1500000015", /* 보유기관 gpki server id */
"gpki": true, /* 데이터 암복호화 사용 여부 */
"mock": false /* 보유기관 가상 데이터 사용 여부 */
}
}

@ -0,0 +1,34 @@
#시군구코드(필수)
lvis.sigungu.code=28000
#담당자 주민등록번호
lvis.charger.ihinum=
#담당자 IP 어드레스
lvis.charger.ip_adres=
#담당자명
lvis.charger.nm=이광진
#담당자 연락처
lvis.charger.wrc_telno=032-440-3963
#정보시스템 ID(필수)
lvis.info_sys.id=28-230
#정보시스템 IP(필수)
lvis.info_sys.ip=101.0.115.13
#정보시스템 MAC 어드레스
lvis.info_sys.macaddress=EC:EB:B8:97:F2:14
#암호화키
lvis.enc.key=0BCE7F19897CEA91
#암호화키 그룹
lvis.enc.key_group=1
#암호화키 번호
lvis.enc.key_no=1
#lvis 사용 서비스 (production || test || local)
lvis.host.active=local
#lvis 운영 서비스 주소
lvis.host.production=http://auto.car.go.kr:39700/lvis/services/WsFrontController
#lvis 테스트 서비스 주소
lvis.host.test=http://10.98.198.199:9700/lvis/services/WsFrontController
#자동차 기본사항 조회 로그 저장 여부(true || false)
lvis.log.basicInfo=true

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configuration>
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss,SSS} %5p [%c{1}] %m%n" />
</Console>
<RollingFile name="file" fileName="./logs/xit-lvis.log" filePattern="./logs/xit-lvis.%d{yy-MM-dd}.log" append="false">
<PatternLayout pattern="%d{HH:mm:ss,SSS} %5p [%c{1}] %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.springframework" level="INFO" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
<Logger name="egovframework" level="INFO" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
<Logger name="cokr.xit" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
<!-- log SQL with timing information, post execution -->
<Logger name="jdbc.audit" level="OFF" />
<Logger name="jdbc.sqlonly" level="OFF" />
<Logger name="jdbc.resultset" level="OFF" />
<Logger name="jdbc.resultsettable" level="OFF" />
<Logger name="jdbc.sqltiming" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Root level="DEBUG">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Root>
</Loggers>
</Configuration>

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 60초마다 설정 파일의 변경을 확인 하여 변경시 갱신 -->
<configuration scan="true" scanPeriod="60 seconds">
<property name="applicationName" value="xit-lvis"/>
<property name="LOG_PATH" value="logs"/>
<property name="LOG_FILE_NAME" value="${applicationName}"/>
<property name="ERR_LOG_FILE_NAME" value="${LOG_FILE_NAME}-error"/>
<property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} %-5level [%logger{0}:%line] - %msg%n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory><!-- 로그파일 보관주기(일)-->
<!--<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>-->
</rollingPolicy>
</appender>
<appender name="Error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 파일당 최고 용량 kb, mb, gb -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="Error"/>
</root>
<logger name="jdbc" level="OFF" additivity="false"/>
<logger name="jdbc.sqltiming" level="DEBUG" additivity="false"/>
<logger name="jdbc.resultsettable" level="OFF" additivity="false"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.resultset" level="OFF" additivity="false"/>
<logger name="jdbc.connection" level="OFF" additivity="false"/>
<logger name="jdbc.audit" level="OFF" additivity="false"/>
<logger name="org.apache" level="OFF" additivity="false"/>
<logger name="com.zaxxer" level="OFF" additivity="false"/>
<logger name="org.apache.commons" level="OFF" additivity="false"/>
<logger name="org.mariadb" level="OFF" additivity="false"/>
<logger name="jdbc.connection" level="OFF" additivity="false"/>
<logger name="jdbc.sqlonly" level="OFF" additivity="false"/>
<logger name="jdbc.resultset" level="OFF" additivity="false"/>
<logger name="jdbc.resultsettable" level="OFF" additivity="false"/>
<!--
<logger name="jdbc" level="OFF" additivity="false"/>
<logger name="jdbc.sqltiming" level="DEBUG" />
<logger name="jdbc.audit" level="OFF" additivity="false"/>
-->
<!-- 특정패키지 로깅레벨 설정 -->
<logger name="cokr.xit" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="Error"/>
</logger>
</configuration>

@ -1,34 +0,0 @@
#\uc2dc\uad70\uad6c\ucf54\ub4dc(\ud544\uc218)
lvis.sigungu.code=28000
#\ub2f4\ub2f9\uc790 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638
lvis.charger.ihinum=
#\ub2f4\ub2f9\uc790 IP \uc5b4\ub4dc\ub808\uc2a4
lvis.charger.ip_adres=
#\ub2f4\ub2f9\uc790\uba85
lvis.charger.nm=\uc774\uad11\uc9c4
#\ub2f4\ub2f9\uc790 \uc5f0\ub77d\ucc98
lvis.charger.wrc_telno=032-440-3963
#\uc815\ubcf4\uc2dc\uc2a4\ud15c ID(\ud544\uc218)
lvis.info_sys.id=28-230
#\uc815\ubcf4\uc2dc\uc2a4\ud15c IP(\ud544\uc218)
lvis.info_sys.ip=101.0.115.13
#\uc815\ubcf4\uc2dc\uc2a4\ud15c MAC \uc5b4\ub4dc\ub808\uc2a4
lvis.info_sys.macaddress=EC:EB:B8:97:F2:14
#\uc554\ud638\ud654\ud0a4
lvis.enc.key=0BCE7F19897CEA91
#\uc554\ud638\ud654\ud0a4 \uadf8\ub8f9
lvis.enc.key_group=1
#\uc554\ud638\ud654\ud0a4 \ubc88\ud638
lvis.enc.key_no=1
#lvis \uc0ac\uc6a9 \uc11c\ube44\uc2a4 (production || test || local)
lvis.host.active=local
#lvis \uc6b4\uc601 \uc11c\ube44\uc2a4 \uc8fc\uc18c
lvis.host.production=http://auto.car.go.kr:39700/lvis/services/WsFrontController
#lvis \ud14c\uc2a4\ud2b8 \uc11c\ube44\uc2a4 \uc8fc\uc18c
lvis.host.test=http://10.98.198.199:9700/lvis/services/WsFrontController
#\uc790\ub3d9\ucc28 \uae30\ubcf8\uc0ac\ud56d \uc870\ud68c \ub85c\uadf8 \uc800\uc7a5 \uc5ec\ubd80(true || false)
lvis.log.basicInfo=true

@ -56,7 +56,7 @@
<set>
<map>
<entry key="encoding" value="UTF-8"/>
<entry key="filename" value="classpath*:properties/xit-lvis.properties"/>
<entry key="filename" value="classpath*:intf-conf/xit-lvis.properties"/>
</map>
</set>
</property>

@ -182,11 +182,12 @@ SELECT PRYE <!-- 연식 -->
, FRST_MXMM_LDG <!-- 최초최대적재량 -->
, PROCESS_IMPRTY_RESN_CODE <!-- 처리불가사유코드 -->
, PROCESS_IMPRTY_RESN_DTLS <!-- 처리불가사유명세 -->
FROM TB_CAR_BSC_MTTR<where>
FROM TB_CAR_BSC_MTTR
WHERE CNTC_INFO_CODE = 'A01'
<if test='inqire_se_code == "1"'> AND MBER_SE_NO = #{owner_mber_no}</if> <!-- 소유자 회원번호 -->
<if test='inqire_se_code == "2"'> AND VIN = #{vin}</if> <!-- 차대번호 -->
<if test='inqire_se_code == "3"'> AND VHRNO = #{vhrno}</if> <!-- 차량번호 -->
</where></select>
<if test='inqire_se_code == "2"'> AND DMND_VIN = #{vin}</if> <!-- 차대번호 -->
<if test='inqire_se_code == "3"'> AND DMND_VHRNO = #{vhrno}</if> <!-- 차량번호 -->
</select>
<select id="selectRoadNmAdres" parameterType="map" resultType="dataobject">/* vehicleInfoMapper.selectRoadNmAdres(도로명 주소 조회) */
SELECT CASE WHEN LENGTH(STDG_LI_NM) > 0 THEN
@ -218,6 +219,7 @@ INSERT INTO TB_CAR_BSC_MTTR (
, MESSAGEREASON <!-- 결과 메시지 사유 -->
, MESSAGEREMARK <!-- 결과 메시지 비고 -->
, EXCEPTIONSTACKTRACE <!-- 오류 메시지 STACK -->
, CNTC_INFO_CODE <!-- 연계정보 코드 -->
, DMND_LEVY_STDDE <!-- 요청 부과기준일 -->
, DMND_INQIRE_SE_CODE <!-- 요청 조회구분코드 -->
@ -321,6 +323,7 @@ INSERT INTO TB_CAR_BSC_MTTR (
, #{msg.messageReason} <!-- 결과 메시지 사유 -->
, #{msg.messageRemark} <!-- 결과 메시지 비고 -->
, #{msg.exceptionStackTrace} <!-- 오류 메시지 stack -->
, 'A01' <!-- 연계정보 코드 -->
, #{req.levy_stdde} <!-- 요청 부과기준일 -->
, #{req.inqire_se_code} <!-- 요청 조회구분코드 -->
@ -419,4 +422,420 @@ INSERT INTO TB_CAR_BSC_MTTR (
, #{currentUser.id} <!-- 등록자 -->
)</insert>
<resultMap id="carExtInfoRow" type="cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse$ExtInfo"> <!-- 자동차 기본사항(연료제원 포함) -->
<result property="prye" column="PRYE" /> <!-- 연식 -->
<result property="regist_de" column="REGIST_DE" /> <!-- 등록일 -->
<result property="ersr_regist_se_code" column="ERSR_REGIST_SE_CODE" /> <!-- 말소등록구분코드 -->
<result property="ersr_regist_se_nm" column="ERSR_REGIST_SE_NM" /> <!-- 말소등록구분명 -->
<result property="ersr_regist_de" column="ERSR_REGIST_DE" /> <!-- 말송등록일 -->
<result property="regist_detail_code" column="REGIST_DETAIL_CODE" /> <!-- 등록상세코드 -->
<result property="dsplvl" column="DSPLVL" /> <!-- 배기량 -->
<result property="use_strnghld_legaldong_code" column="USE_STRNGHLD_LEGALDONG_CODE" /> <!-- 사용본거지법정동코드 -->
<result property="use_strnghld_adstrd_code" column="USE_STRNGHLD_ADSTRD_CODE" /> <!-- 사용본거지행정동코드 -->
<result property="use_strnghld_mntn" column="USE_STRNGHLD_MNTN" /> <!-- 사용본거지산 -->
<result property="use_strnghld_lnbr" column="USE_STRNGHLD_LNBR" /> <!-- 사용본거지번지 -->
<result property="use_strnghld_ho" column="USE_STRNGHLD_HO" /> <!-- 사용본거지호 -->
<result property="use_strnghld_adres_nm" column="USE_STRNGHLD_ADRES_NM" /> <!-- 사용본거지상세주소 -->
<result property="use_strnghld_road_nm_code" column="USE_STRNGHLD_ROAD_NM_CODE" /> <!-- 사용본거지도로명코드 -->
<result property="usgsrhld_undgrnd_buld_se_code" column="USGSRHLD_UNDGRND_BULD_SE_CODE" /> <!-- 사용본거지지하건물구분코드 -->
<result property="use_strnghld_buld_main_no" column="USE_STRNGHLD_BULD_MAIN_NO" /> <!-- 사용본거지건물주요번호 -->
<result property="use_strnghld_buld_sub_no" column="USE_STRNGHLD_BULD_SUB_NO" /> <!-- 사용본거지건물부번호 -->
<result property="usgsrhld_adres_full" column="USGSRHLD_ADRES_FULL" /> <!-- 사용본거지전체주소 -->
<result property="mber_se_code" column="MBER_SE_CODE" /> <!-- 대표소유자회원구분코드 -->
<result property="mber_nm" column="MBER_NM" /> <!-- 대표소유자성명 -->
<result property="mber_se_no" column="MBER_SE_NO" /> <!-- 대표소유자회원번호 -->
<result property="telno" column="TELNO" /> <!-- 대표소유자전화번호 -->
<result property="owner_legaldong_code" column="OWNER_LEGALDONG_CODE" /> <!-- 소유자법정동코드 -->
<result property="owner_adstrd_code" column="OWNER_ADSTRD_CODE" /> <!-- 소유자행정동코드 -->
<result property="owner_mntn" column="OWNER_MNTN" /> <!-- 소유자산 -->
<result property="owner_lnbr" column="OWNER_LNBR" /> <!-- 소유자번지 -->
<result property="owner_ho" column="OWNER_HO" /> <!-- 소유자호 -->
<result property="owner_adres_nm" column="OWNER_ADRES_NM" /> <!-- 소유자상세주소 -->
<result property="owner_road_nm_code" column="OWNER_ROAD_NM_CODE" /> <!-- 소유자도로명코드 -->
<result property="owner_undgrnd_buld_se_code" column="OWNER_UNDGRND_BULD_SE_CODE" /> <!-- 소유자지하건물구분코드 -->
<result property="owner_buld_main_no" column="OWNER_BULD_MAIN_NO" /> <!-- 소유자건물주요번호 -->
<result property="owner_buld_sub_no" column="OWNER_BULD_SUB_NO" /> <!-- 소유자건물부번호 -->
<result property="owner_adres_full" column="OWNER_ADRES_FULL" /> <!-- 소유자전체주소 -->
<result property="aftr_vhrno" column="AFTR_VHRNO" /> <!-- 신차량번호 -->
<result property="use_fuel_code" column="USE_FUEL_CODE" /> <!-- 사용연료코드 -->
<result property="prpos_se_code" column="PRPOS_SE_CODE" /> <!-- 용도구분코드 -->
<result property="mtrs_fom_nm" column="MTRS_FOM_NM" /> <!-- 원동기형식명 -->
<result property="frnt_vhrno" column="FRNT_VHRNO" /> <!-- 이전차량번호 -->
<result property="vhrno" column="VHRNO" /> <!-- 차량번호 -->
<result property="vin" column="VIN" /> <!-- 차대번호 -->
<result property="cnm" column="CNM" /> <!-- 차명 -->
<result property="vhcle_tot_wt" column="VHCLE_TOT_WT" /> <!-- 차량총중량 -->
<result property="caag_endde" column="CAAG_ENDDE" /> <!-- 차령만료일자 -->
<result property="change_de" column="CHANGE_DE" /> <!-- 차번호변경시기 -->
<result property="vhcty_asort_code" column="VHCTY_ASORT_CODE" /> <!-- 차종종별코드 -->
<result property="vhcty_ty_code" column="VHCTY_TY_CODE" /> <!-- 차종유형코드 -->
<result property="vhcty_se_code" column="VHCTY_SE_CODE" /> <!-- 차종분류코드 -->
<result property="mxmm_ldg" column="MXMM_LDG" /> <!-- 최대적재량 -->
<result property="vhcty_asort_nm" column="VHCTY_ASORT_NM" /> <!-- 차종종별명 -->
<result property="vhcty_ty_nm" column="VHCTY_TY_NM" /> <!-- 차종유형명 -->
<result property="vhcty_se_nm" column="VHCTY_SE_NM" /> <!-- 차종분류명 -->
<result property="frst_regist_de" column="FRST_REGIST_DE" /> <!-- 최초등록일 -->
<result property="fom_nm" column="FOM_NM" /> <!-- 형식 -->
<result property="acqs_de" column="ACQS_DE" /> <!-- 취득일자 -->
<result property="acqs_end_de" column="ACQS_END_DE" /> <!-- 취득종료일자 -->
<result property="ybl_md" column="YBL_MD" /> <!-- 제작년월일 -->
<result property="transr_regist_de" column="TRANSR_REGIST_DE" /> <!-- 이전등록일 -->
<result property="spcf_regist_sttus_code" column="SPCF_REGIST_STTUS_CODE" /> <!-- 제원등록상태코드 -->
<result property="color_nm" column="COLOR_NM" /> <!-- 색상명 -->
<result property="mrtg_co" column="MRTG_CO" /> <!-- 저당수 -->
<result property="seizr_co" column="SEIZR_CO" /> <!-- 압류건수 -->
<result property="stmd_co" column="STMD_CO" /> <!-- 구조변경수 -->
<result property="nmpl_csdy_at" column="NMPL_cSDY_aT" /> <!-- 번호판영치여부 -->
<result property="nmpl_csdy_remnr_de" column="NMPL_cSDY_REMNR_DE" /> <!-- 번호판영치최고일 -->
<result property="origin_se_code" column="ORIGIN_SE_CODE" /> <!-- 출처구분코드 -->
<result property="nmpl_stndrd_code" column="NMPL_STNDRD_CODE" /> <!-- 번호판규격코드 -->
<result property="acqs_amount" column="ACQS_aMOUNT" /> <!-- 취득금액 -->
<result property="inspt_valid_pd_bgnde" column="INSPT_vALID_pD_bGNDE" /> <!-- 검사유효기간시작일 -->
<result property="inspt_valid_pd_endde" column="INSPT_vALID_pD_ENDDE" /> <!-- 검사유효기간종료일 -->
<result property="chck_valid_pd_bgnde" column="CHCK_vALID_pD_bGNDE" /> <!-- 점검유효기간시작일 -->
<result property="chck_valid_pd_endde" column="CHCK_vALID_pD_ENDDE" /> <!-- 점검유효기간종료일 -->
<result property="use_strnghld_grc_code" column="USE_STRNGHLD_GRC_CODE" /> <!-- 사용본거지관청코드 -->
<result property="tkcar_pscap_co" column="TKCAR_PSCAP_CO" /> <!-- 승차정원수 -->
<result property="spmnno" column="SPMNNO" /> <!-- 제원관리번호 -->
<result property="trvl_dstnc" column="TRVL_DSTNC" /> <!-- 주행거리 -->
<result property="frst_regist_rqrcno" column="FRST_REGIST_RQRCNO" /> <!-- 최초등록접수번호 -->
<result property="vlnt_ersr_prvntc_ntice_de" column="VLNT_ERSR_PRVNTC_NTICE_DE" /> <!-- 예고통지일 -->
<result property="regist_instt_nm" column="REGIST_INSTT_NM" /> <!-- 등록기관명 -->
<result property="vims_prpos_se_code" column="VIMS_PRPOS_SE_CODE" /> <!-- 용도구분코드 -->
<result property="vims_vhcty_asort_code" column="VIMS_VHCTY_ASORT_CODE" /> <!-- 차종종별코드 -->
<result property="vims_vhcty_ty_code" column="VIMS_VHCTY_TY_CODE" /> <!-- 차종유형코드 -->
<result property="vims_vhcty_se_code" column="VIMS_VHCTY_SE_CODE" /> <!-- 차종분류코드 -->
<result property="cbd_lt" column="CBD_LT" /> <!-- 차체길이 -->
<result property="cbd_bt" column="CBD_BT" /> <!-- 차체너비 -->
<result property="cbd_hg" column="CBD_HG" /> <!-- 차체높이 -->
<result property="frst_mxmm_ldg" column="FRST_MXMM_LDG" /> <!-- 최초최대적재량 -->
<result property="fuel_cnsmp_rt" column="FUEL_CNSMP_RT" /> <!-- 연료소비율 -->
<result property="elcty_cmpnd_fuel_cnsmp_rt" column="ELCTY_CMPND_FUEL_CNSMP_RT" /> <!-- 전기복합연료소비율 -->
<result property="process_imprty_resn_code" column="PROCESS_IMPRTY_RESN_CODE" /> <!-- 처리불가사유코드 -->
<result property="process_imprty_resn_dtls" column="PROCESS_IMPRTY_RESN_dTLS" /> <!-- 처리불가사유명세 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
</resultMap>
<select id="selectExtInfo" parameterType="map" resultMap="carExtInfoRow">/* vehicleInfoMapper.selectExtInfo(자동차 연료제원 포함 기본사항 조회) */
SELECT PRYE <!-- 연식 -->
, REGIST_DE <!-- 등록일 -->
, ERSR_REGIST_SE_CODE <!-- 말소등록구분코드 -->
, ERSR_REGIST_SE_NM <!-- 말소등록구분명 -->
, ERSR_REGIST_DE <!-- 말송등록일 -->
, REGIST_DETAIL_CODE <!-- 등록상세코드 -->
, DSPLVL <!-- 배기량 -->
, USE_STRNGHLD_LEGALDONG_CODE <!-- 사용본거지법정동코드 -->
, USE_STRNGHLD_ADSTRD_CODE <!-- 사용본거지행정동코드 -->
, USE_STRNGHLD_MNTN <!-- 사용본거지산 -->
, USE_STRNGHLD_LNBR <!-- 사용본거지번지 -->
, USE_STRNGHLD_HO <!-- 사용본거지호 -->
, USE_STRNGHLD_ADRES_NM <!-- 사용본거지상세주소 -->
, USE_STRNGHLD_ROAD_NM_CODE <!-- 사용본거지도로명코드 -->
, USGSRHLD_UNDGRND_BULD_SE_CODE <!-- 사용본거지지하건물구분코드 -->
, USE_STRNGHLD_BULD_MAIN_NO <!-- 사용본거지건물주요번호 -->
, USE_STRNGHLD_BULD_SUB_NO <!-- 사용본거지건물부번호 -->
, USGSRHLD_ADRES_FULL <!-- 사용본거지전체주소 -->
, MBER_SE_CODE <!-- 대표소유자회원구분코드 -->
, MBER_NM <!-- 대표소유자성명 -->
, MBER_SE_NO <!-- 대표소유자회원번호 -->
, TELNO <!-- 대표소유자전화번호 -->
, OWNER_LEGALDONG_CODE <!-- 소유자법정동코드 -->
, OWNER_ADSTRD_CODE <!-- 소유자행정동코드 -->
, OWNER_MNTN <!-- 소유자산 -->
, OWNER_LNBR <!-- 소유자번지 -->
, OWNER_HO <!-- 소유자호 -->
, OWNER_ADRES_NM <!-- 소유자상세주소 -->
, OWNER_ROAD_NM_CODE <!-- 소유자도로명코드 -->
, OWNER_UNDGRND_BULD_SE_CODE <!-- 소유자지하건물구분코드 -->
, OWNER_BULD_MAIN_NO <!-- 소유자건물주요번호 -->
, OWNER_BULD_SUB_NO <!-- 소유자건물부번호 -->
, OWNER_ADRES_FULL <!-- 소유자전체주소 -->
, AFTR_VHRNO <!-- 신차량번호 -->
, USE_FUEL_CODE <!-- 사용연료코드 -->
, PRPOS_SE_CODE <!-- 용도구분코드 -->
, MTRS_FOM_NM <!-- 원동기형식명 -->
, FRNT_VHRNO <!-- 이전차량번호 -->
, VHRNO <!-- 차량번호 -->
, VIN <!-- 차대번호 -->
, CNM <!-- 차명 -->
, VHCLE_TOT_WT <!-- 차량총중량 -->
, CAAG_ENDDE <!-- 차령만료일자 -->
, CHANGE_DE <!-- 차번호변경시기 -->
, VHCTY_ASORT_CODE <!-- 차종종별코드 -->
, VHCTY_TY_CODE <!-- 차종유형코드 -->
, VHCTY_SE_CODE <!-- 차종분류코드 -->
, MXMM_LDG <!-- 최대적재량 -->
, VHCTY_ASORT_NM <!-- 차종종별명 -->
, VHCTY_TY_NM <!-- 차종유형명 -->
, VHCTY_SE_NM <!-- 차종분류명 -->
, FRST_REGIST_DE <!-- 최초등록일 -->
, FOM_NM <!-- 형식 -->
, ACQS_DE <!-- 취득일자 -->
, ACQS_END_DE <!-- 취득종료일자 -->
, YBL_MD <!-- 제작년월일 -->
, TRANSR_REGIST_DE <!-- 이전등록일 -->
, SPCF_REGIST_STTUS_CODE <!-- 제원등록상태코드 -->
, COLOR_NM <!-- 색상명 -->
, MRTG_CO <!-- 저당수 -->
, SEIZR_CO <!-- 압류건수 -->
, STMD_CO <!-- 구조변경수 -->
, NMPL_CSDY_AT <!-- 번호판영치여부 -->
, NMPL_CSDY_REMNR_DE <!-- 번호판영치최고일 -->
, ORIGIN_SE_CODE <!-- 출처구분코드 -->
, NMPL_STNDRD_CODE <!-- 번호판규격코드 -->
, ACQS_AMOUNT <!-- 취득금액 -->
, INSPT_VALID_PD_BGNDE <!-- 검사유효기간시작일 -->
, INSPT_VALID_PD_ENDDE <!-- 검사유효기간종료일 -->
, CHCK_VALID_PD_BGNDE <!-- 점검유효기간시작일 -->
, CHCK_VALID_PD_ENDDE <!-- 점검유효기간종료일 -->
, USE_STRNGHLD_GRC_CODE <!-- 사용본거지관청코드 -->
, TKCAR_PSCAP_CO <!-- 승차정원수 -->
, SPMNNO <!-- 제원관리번호 -->
, TRVL_DSTNC <!-- 주행거리 -->
, FRST_REGIST_RQRCNO <!-- 최초등록접수번호 -->
, VLNT_ERSR_PRVNTC_NTICE_DE <!-- 예고통지일 -->
, REGIST_INSTT_NM <!-- 등록기관명 -->
, VIMS_PRPOS_SE_CODE <!-- 용도구분코드 -->
, VIMS_VHCTY_ASORT_CODE <!-- 차종종별코드 -->
, VIMS_VHCTY_TY_CODE <!-- 차종유형코드 -->
, VIMS_VHCTY_SE_CODE <!-- 차종분류코드 -->
, CBD_LT <!-- 차체길이 -->
, CBD_BT <!-- 차체너비 -->
, CBD_HG <!-- 차체높이 -->
, FRST_MXMM_LDG <!-- 최초최대적재량 -->
, FUEL_CNSMP_RT <!-- 연료소비율 -->
, ELCTY_CMPND_FUEL_CNSMP_RT <!-- 전기복합연료소비율 -->
, PROCESS_IMPRTY_RESN_CODE <!-- 처리불가사유코드 -->
, PROCESS_IMPRTY_RESN_DTLS <!-- 처리불가사유명세 -->
FROM TB_CAR_BSC_MTTR
WHERE CNTC_INFO_CODE = 'AC1_AW0_76'
<if test='inqire_se_code == "2"'> AND DMND_VIN = #{vin}</if> <!-- 차대번호 -->
<if test='inqire_se_code == "3"'> AND DMND_VHRNO = #{vhrno}</if> <!-- 차량번호 -->
</select>
<insert id="insertExtInfo" parameterType="map">/* vehicleInfoMapper.insertExtInfo(자동차 연료제원 포함 기본사항 조회 로그 등록) */
<selectKey keyProperty="info.bsc_mttr_id" resultType="string" order="BEFORE">
SELECT CONCAT(
<include refid="utility.today" />
, LPAD(IFNULL(SUBSTRING(MAX(BSC_MTTR_ID), 9) + 1, 1), 22, '0')
) NEW_ID
FROM TB_CAR_BSC_MTTR TCBM
WHERE BSC_MTTR_ID LIKE CONCAT(<include refid="utility.today" />, '%')</selectKey>
INSERT INTO TB_CAR_BSC_MTTR (
BSC_MTTR_ID <!-- 기본 사항 ID -->
, MESSAGEID <!-- 결과 메시지 ID -->
, MESSAGENAME <!-- 결과 메시지 명 -->
, MESSAGEREASON <!-- 결과 메시지 사유 -->
, MESSAGEREMARK <!-- 결과 메시지 비고 -->
, EXCEPTIONSTACKTRACE <!-- 오류 메시지 STACK -->
, CNTC_INFO_CODE <!-- 연계정보 코드 -->
, DMND_LEVY_STDDE <!-- 요청 부과기준일 -->
, DMND_INQIRE_SE_CODE <!-- 요청 조회구분코드 -->
, DMND_VHRNO <!-- 요청 자동차등록번호 -->
, DMND_VIN <!-- 요청 차대번호 -->
, PRYE <!-- 연식 -->
, REGIST_DE <!-- 등록일(변경일) -->
, ERSR_REGIST_SE_CODE <!-- 말소등록구분코드 -->
, ERSR_REGIST_SE_NM <!-- 말소등록구분명 -->
, ERSR_REGIST_DE <!-- 말소등록일 -->
, REGIST_DETAIL_CODE <!-- 등록상세코드 -->
, DSPLVL <!-- 배기량 -->
, USE_STRNGHLD_LEGALDONG_CODE <!-- 사용본거지법정동코드 -->
, USE_STRNGHLD_ADSTRD_CODE <!-- 사용본거지행정동코드 -->
, USE_STRNGHLD_MNTN <!-- 사용본거지산 -->
, USE_STRNGHLD_LNBR <!-- 사용본거지번지 -->
, USE_STRNGHLD_HO <!-- 사용본거지호 -->
, USE_STRNGHLD_ADRES_NM <!-- 사용본거지상세주소 -->
, USE_STRNGHLD_ROAD_NM_CODE <!-- 사용본거지도로명코드 -->
, USGSRHLD_UNDGRND_BULD_SE_CODE <!-- 사용본거지지하건물구분코드 -->
, USE_STRNGHLD_BULD_MAIN_NO <!-- 사용본거지건물주요번호 -->
, USE_STRNGHLD_BULD_SUB_NO <!-- 사용본거지건물부번호 -->
, USGSRHLD_ADRES_FULL <!-- 사용본거지전체주소 -->
, MBER_SE_CODE <!-- 대표소유자회원구분코드 -->
, MBER_NM <!-- 대표소유자성명 -->
, MBER_SE_NO <!-- 대표소유자회원번호 -->
, TELNO <!-- 대표소유자전화번호 -->
, OWNER_LEGALDONG_CODE <!-- 소유자법정동코드 -->
, OWNER_ADSTRD_CODE <!-- 소유자행정동코드 -->
, OWNER_MNTN <!-- 소유자산 -->
, OWNER_LNBR <!-- 소유자번지 -->
, OWNER_HO <!-- 소유자호 -->
, OWNER_ADRES_NM <!-- 소유자상세주소 -->
, OWNER_ROAD_NM_CODE <!-- 소유자도로명코드 -->
, OWNER_UNDGRND_BULD_SE_CODE <!-- 소유자지하건물구분코드 -->
, OWNER_BULD_MAIN_NO <!-- 소유자건물주요번호 -->
, OWNER_BULD_SUB_NO <!-- 소유자건물부번호 -->
, OWNER_ADRES_FULL <!-- 소유자전체주소 -->
, AFTR_VHRNO <!-- 신차량번호 -->
, USE_FUEL_CODE <!-- 사용연료코드 -->
, PRPOS_SE_CODE <!-- 용도구분코드 -->
, MTRS_FOM_NM <!-- 원동기형식명 -->
, FRNT_VHRNO <!-- 이전차량번호 -->
, VHRNO <!-- 차량번호 -->
, VIN <!-- 차대번호 -->
, CNM <!-- 차명 -->
, VHCLE_TOT_WT <!-- 차량총중량 -->
, CAAG_ENDDE <!-- 차령만료일자 -->
, CHANGE_DE <!-- 차번호변경시기 -->
, VHCTY_ASORT_CODE <!-- 차종종별코드 -->
, VHCTY_TY_CODE <!-- 차종유형코드 -->
, VHCTY_SE_CODE <!-- 차종분류코드 -->
, MXMM_LDG <!-- 최대적재량 -->
, VHCTY_ASORT_NM <!-- 차종종별명 -->
, VHCTY_TY_NM <!-- 차종유형명 -->
, VHCTY_SE_NM <!-- 차종분류명 -->
, FRST_REGIST_DE <!-- 최초등록일 -->
, FOM_NM <!-- 형식 -->
, ACQS_DE <!-- 취득일자 -->
, ACQS_END_DE <!-- 취득종료일자 -->
, YBL_MD <!-- 제작년월일 -->
, TRANSR_REGIST_DE <!-- 이전등록일(양수일) -->
, SPCF_REGIST_STTUS_CODE <!-- 제원등록상태코드 -->
, COLOR_NM <!-- 색상명 -->
, MRTG_CO <!-- 저당수 -->
, SEIZR_CO <!-- 압류건수 -->
, STMD_CO <!-- 구조변경수 -->
, NMPL_CSDY_AT <!-- 번호판영치여부 -->
, NMPL_CSDY_REMNR_DE <!-- 번호판영치최고일 -->
, ORIGIN_SE_CODE <!-- 출처구분코드 -->
, NMPL_STNDRD_CODE <!-- 번호판규격코드 -->
, ACQS_AMOUNT <!-- 취득금액 -->
, INSPT_VALID_PD_BGNDE <!-- 검사유효기간시작일 -->
, INSPT_VALID_PD_ENDDE <!-- 검사유효기간종료일 -->
, CHCK_VALID_PD_BGNDE <!-- 점검유효기간시작일 -->
, CHCK_VALID_PD_ENDDE <!-- 점검유효기간종료일 -->
, USE_STRNGHLD_GRC_CODE <!-- 사용본거지관청코드 -->
, TKCAR_PSCAP_CO <!-- 승차정원수 -->
, SPMNNO <!-- 제원관리번호 -->
, TRVL_DSTNC <!-- 주행거리 -->
, FRST_REGIST_RQRCNO <!-- 최초등록접수번호 -->
, VLNT_ERSR_PRVNTC_NTICE_DE <!-- 예고통지일 -->
, REGIST_INSTT_NM <!-- 등록기관명 -->
, VIMS_PRPOS_SE_CODE <!-- 용도구분코드 -->
, VIMS_VHCTY_ASORT_CODE <!-- 차종종별코드 -->
, VIMS_VHCTY_TY_CODE <!-- 차종유형코드 -->
, VIMS_VHCTY_SE_CODE <!-- 차종분류코드 -->
, CBD_LT <!-- 차체길이 -->
, CBD_BT <!-- 차체너비 -->
, CBD_HG <!-- 차체높이 -->
, FRST_MXMM_LDG <!-- 최초최대적재량 -->
, FUEL_CNSMP_RT <!-- 연료소비율 -->
, ELCTY_CMPND_FUEL_CNSMP_RT <!-- 전기복합연료소비율 -->
, PROCESS_IMPRTY_RESN_CODE <!-- 처리불가사유코드 -->
, PROCESS_IMPRTY_RESN_DTLS <!-- 처리불가사유명세 -->
, REG_DT <!-- 등록일자 -->
, RGTR <!-- 등록자 -->
) VALUES (
#{info.bsc_mttr_id} <!-- 기본 사항 id -->
, #{resp.cntc_result_code} <!-- 결과 메시지 id -->
, #{resp.cntc_result_dtls} <!-- 결과 메시지 명 -->
, NULL <!-- 결과 메시지 사유 -->
, NULL <!-- 결과 메시지 비고 -->
, NULL <!-- 오류 메시지 stack -->
, 'AC1_AW0_76' <!-- 연계정보 코드 -->
, #{req.levy_stdde} <!-- 요청 부과기준일 -->
, #{req.inqire_se_code} <!-- 요청 조회구분코드 -->
, #{req.vhrno} <!-- 요청 자동차등록번호 -->
, #{req.vin} <!-- 요청 차대번호 -->
, #{info.prye} <!-- 연식 -->
, #{info.regist_de} <!-- 등록일(변경일) -->
, #{info.ersr_regist_se_code} <!-- 말소등록구분코드 -->
, #{info.ersr_regist_se_nm} <!-- 말소등록구분명 -->
, #{info.ersr_regist_de} <!-- 말소등록일 -->
, #{info.regist_detail_code} <!-- 등록상세코드 -->
, #{info.dsplvl} <!-- 배기량 -->
, #{info.use_strnghld_legaldong_code} <!-- 사용본거지법정동코드 -->
, #{info.use_strnghld_adstrd_code} <!-- 사용본거지행정동코드 -->
, #{info.use_strnghld_mntn} <!-- 사용본거지산 -->
, #{info.use_strnghld_lnbr} <!-- 사용본거지번지 -->
, #{info.use_strnghld_ho} <!-- 사용본거지호 -->
, #{info.use_strnghld_adres_nm} <!-- 사용본거지상세주소 -->
, #{info.use_strnghld_road_nm_code} <!-- 사용본거지도로명코드 -->
, #{info.usgsrhld_undgrnd_buld_se_code} <!-- 사용본거지지하건물구분코드 -->
, #{info.use_strnghld_buld_main_no} <!-- 사용본거지건물주요번호 -->
, #{info.use_strnghld_buld_sub_no} <!-- 사용본거지건물부번호 -->
, #{info.usgsrhld_adres_full} <!-- 사용본거지전체주소 -->
, #{info.mber_se_code} <!-- 대표소유자회원구분코드 -->
, #{info.mber_nm} <!-- 대표소유자성명 -->
, #{info.mber_se_no} <!-- 대표소유자회원번호 -->
, #{info.telno} <!-- 대표소유자전화번호 -->
, #{info.owner_legaldong_code} <!-- 소유자법정동코드 -->
, #{info.owner_adstrd_code} <!-- 소유자행정동코드 -->
, #{info.owner_mntn} <!-- 소유자산 -->
, #{info.owner_lnbr} <!-- 소유자번지 -->
, #{info.owner_ho} <!-- 소유자호 -->
, #{info.owner_adres_nm} <!-- 소유자상세주소 -->
, #{info.owner_road_nm_code} <!-- 소유자도로명코드 -->
, #{info.owner_undgrnd_buld_se_code} <!-- 소유자지하건물구분코드 -->
, #{info.owner_buld_main_no} <!-- 소유자건물주요번호 -->
, #{info.owner_buld_sub_no} <!-- 소유자건물부번호 -->
, #{info.owner_adres_full} <!-- 소유자전체주소 -->
, #{info.aftr_vhrno} <!-- 신차량번호 -->
, #{info.use_fuel_code} <!-- 사용연료코드 -->
, #{info.prpos_se_code} <!-- 용도구분코드 -->
, #{info.mtrs_fom_nm} <!-- 원동기형식명 -->
, #{info.frnt_vhrno} <!-- 이전차량번호 -->
, #{info.vhrno} <!-- 차량번호 -->
, #{info.vin} <!-- 차대번호 -->
, #{info.cnm} <!-- 차명 -->
, #{info.vhcle_tot_wt} <!-- 차량총중량 -->
, #{info.caag_endde} <!-- 차령만료일자 -->
, #{info.change_de} <!-- 차번호변경시기 -->
, #{info.vhcty_asort_code} <!-- 차종종별코드 -->
, #{info.vhcty_ty_code} <!-- 차종유형코드 -->
, #{info.vhcty_se_code} <!-- 차종분류코드 -->
, #{info.mxmm_ldg} <!-- 최대적재량 -->
, #{info.vhcty_asort_nm} <!-- 차종종별명 -->
, #{info.vhcty_ty_nm} <!-- 차종유형명 -->
, #{info.vhcty_se_nm} <!-- 차종분류명 -->
, #{info.frst_regist_de} <!-- 최초등록일 -->
, #{info.fom_nm} <!-- 형식 -->
, #{info.acqs_de} <!-- 취득일자 -->
, #{info.acqs_end_de} <!-- 취득종료일자 -->
, #{info.ybl_md} <!-- 제작년월일 -->
, #{info.transr_regist_de} <!-- 이전등록일(양수일) -->
, #{info.spcf_regist_sttus_code} <!-- 제원등록상태코드 -->
, #{info.color_nm} <!-- 색상명 -->
, #{info.mrtg_co} <!-- 저당수 -->
, #{info.seizr_co} <!-- 압류건수 -->
, #{info.stmd_co} <!-- 구조변경수 -->
, #{info.nmpl_csdy_at} <!-- 번호판영치여부 -->
, #{info.nmpl_csdy_remnr_de} <!-- 번호판영치최고일 -->
, #{info.origin_se_code} <!-- 출처구분코드 -->
, #{info.nmpl_stndrd_code} <!-- 번호판규격코드 -->
, #{info.acqs_amount} <!-- 취득금액 -->
, #{info.inspt_valid_pd_bgnde} <!-- 검사유효기간시작일 -->
, #{info.inspt_valid_pd_endde} <!-- 검사유효기간종료일 -->
, #{info.chck_valid_pd_bgnde} <!-- 점검유효기간시작일 -->
, #{info.chck_valid_pd_endde} <!-- 점검유효기간종료일 -->
, #{info.use_strnghld_grc_code} <!-- 사용본거지관청코드 -->
, #{info.tkcar_pscap_co} <!-- 승차정원수 -->
, #{info.spmnno} <!-- 제원관리번호 -->
, #{info.trvl_dstnc} <!-- 주행거리 -->
, #{info.frst_regist_rqrcno} <!-- 최초등록접수번호 -->
, #{info.vlnt_ersr_prvntc_ntice_de} <!-- 예고통지일 -->
, #{info.regist_instt_nm} <!-- 등록기관명 -->
, #{info.vims_prpos_se_code} <!-- 용도구분코드 -->
, #{info.vims_vhcty_asort_code} <!-- 차종종별코드 -->
, #{info.vims_vhcty_ty_code} <!-- 차종유형코드 -->
, #{info.vims_vhcty_se_code} <!-- 차종분류코드 -->
, #{info.cbd_lt} <!-- 차체길이 -->
, #{info.cbd_bt} <!-- 차체너비 -->
, #{info.cbd_hg} <!-- 차체높이 -->
, #{info.frst_mxmm_ldg} <!-- 최초최대적재량 -->
, #{info.fuel_cnsmp_rt} <!-- 연료소비율 -->
, #{info.elcty_cmpnd_fuel_cnsmp_rt} <!-- 전기복합연료소비율 -->
, #{info.process_imprty_resn_code} <!-- 처리불가사유코드 -->
, #{info.process_imprty_resn_dtls} <!-- 처리불가사유명세 -->
,<include refid="utility.now" /> <!-- 등록일자 -->
, #{currentUser.id} <!-- 등록자 -->
)</insert>
</mapper>

@ -0,0 +1,185 @@
package cokr.xit.interfaces.lvis.service;
import java.util.List;
import javax.annotation.Resource;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import cokr.xit.foundation.data.JSON;
import cokr.xit.foundation.test.TestSupport;
import cokr.xit.interfaces.lvis.service.bean.VehicleInfoBean;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.publicinfo.ServiceMessage;
public class BasicInfoExtTest extends TestSupport {
@Resource(name = "vehicleInfoService")
private VehicleInfoService service;
private JSON json = new JSON().configure(objectMapper ->
objectMapper.setPropertyNamingStrategy(
new JSON.CustomPropertyNames().customize(p -> "record".equals(p) ? p : p.toUpperCase())
)
);
private String str = "{\r\n"
+ " \"data\": [\r\n"
+ " {\r\n"
+ " \"record\": [\r\n"
+ " {\r\n"
+ " \"VHRNO\": \"\",\r\n"
+ " \"VIN\": \"\",\r\n"
+ " \"PRYE\": \"\",\r\n"
+ " \"REGIST_DE\": \"\",\r\n"
+ " \"ERSR_REGIST_SE_CODE\": \"\",\r\n"
+ " \"ERSR_REGIST_SE_NM\": \"\",\r\n"
+ " \"ERSR_REGIST_DE\": \"\",\r\n"
+ " \"REGIST_DETAIL_CODE\": \"\",\r\n"
+ " \"DSPLVL\": \"\",\r\n"
+ " \"USE_STRNGHLD_LEGALDONG_CODE\": \"\",\r\n"
+ " \"USE_STRNGHLD_ADSTRD_CODE\": \"\",\r\n"
+ " \"USE_STRNGHLD_MNTN\": \"\",\r\n"
+ " \"USE_STRNGHLD_LNBR\": \"\",\r\n"
+ " \"USE_STRNGHLD_HO\": \"\",\r\n"
+ " \"USE_STRNGHLD_ADRES_NM\": \"\",\r\n"
+ " \"USE_STRNGHLD_ROAD_NM_CODE\": \"\",\r\n"
+ " \"USGSRHLD_UNDGRND_BULD_SE_CODE\": \"\",\r\n"
+ " \"USE_STRNGHLD_BULD_MAIN_NO\": \"\",\r\n"
+ " \"USE_STRNGHLD_BULD_SUB_NO\": \"\",\r\n"
+ " \"USGSRHLD_ADRES_FULL\": \"*** *** *** ***** **, ***동 ***호(***, *****)\",\r\n"
+ " \"MBER_SE_CODE\": \"\",\r\n"
+ " \"MBER_NM\": \"***\",\r\n"
+ " \"MBER_SE_NO\": \"*************\",\r\n"
+ " \"TELNO\": \"\",\r\n"
+ " \"OWNER_LEGALDONG_CODE\": \"\",\r\n"
+ " \"OWNER_ADSTRD_CODE\": \"\",\r\n"
+ " \"OWNER_MNTN\": \"\",\r\n"
+ " \"OWNER_LNBR\": \"\",\r\n"
+ " \"OWNER_HO\": \"\",\r\n"
+ " \"OWNER_ADRES_NM\": \"\",\r\n"
+ " \"OWNER_ROAD_NM_CODE\": \"\",\r\n"
+ " \"OWNER_UNDGRND_BULD_SE_CODE\": \"\",\r\n"
+ " \"OWNER_BULD_MAIN_NO\": \"\",\r\n"
+ " \"OWNER_BULD_SUB_NO\": \"\",\r\n"
+ " \"OWNER_ADRES_FULL\": \"\",\r\n"
+ " \"AFTR_VHRNO\": \"\",\r\n"
+ " \"USE_FUEL_CODE\": \"\",\r\n"
+ " \"PRPOS_SE_CODE\": \"\",\r\n"
+ " \"MTRS_FOM_NM\": \"\",\r\n"
+ " \"FRNT_VHRNO\": \"\",\r\n"
+ " \"CNM\": \"*****\",\r\n"
+ " \"VHCLE_TOT_WT\": \"\",\r\n"
+ " \"CAAG_ENDDE\": \"\",\r\n"
+ " \"CHANGE_DE\": \"\",\r\n"
+ " \"VHCTY_ASORT_CODE\": \"\",\r\n"
+ " \"VHCTY_TY_CODE\": \"\",\r\n"
+ " \"VHCTY_SE_CODE\": \"\",\r\n"
+ " \"MXMM_LDG\": \"\",\r\n"
+ " \"VHCTY_ASORT_NM\": \"**\",\r\n"
+ " \"VHCTY_TY_NM\": \"\",\r\n"
+ " \"VHCTY_SE_NM\": \"\",\r\n"
+ " \"FRST_REGIST_DE\": \"\",\r\n"
+ " \"FOM_NM\": \"\",\r\n"
+ " \"ACQS_DE\": \"\",\r\n"
+ " \"ACQS_END_DE\": \"\",\r\n"
+ " \"YBL_MD\": \"\",\r\n"
+ " \"TRANSR_REGIST_DE\": \"\",\r\n"
+ " \"SPCF_REGIST_STTUS_CODE\": \"\",\r\n"
+ " \"COLOR_NM\": \"\",\r\n"
+ " \"MRTG_CO\": \"\",\r\n"
+ " \"SEIZR_CO\": \"\",\r\n"
+ " \"STMD_CO\": \"\",\r\n"
+ " \"NMPL_CSDY_AT\": \"\",\r\n"
+ " \"NMPL_CSDY_REMNR_DE\": \"\",\r\n"
+ " \"ORIGIN_SE_CODE\": \"\",\r\n"
+ " \"NMPL_STNDRD_CODE\": \"\",\r\n"
+ " \"ACQS_AMOUNT\": \"\",\r\n"
+ " \"INSPT_VALID_PD_BGNDE\": \"\",\r\n"
+ " \"INSPT_VALID_PD_ENDDE\": \"\",\r\n"
+ " \"USE_STRNGHLD_GRC_CODE\": \"\",\r\n"
+ " \"TKCAR_PSCAP_CO\": \"\",\r\n"
+ " \"SPMNNO\": \"\",\r\n"
+ " \"TRVL_DSTNC\": \"\",\r\n"
+ " \"FRST_REGIST_RQRCNO\": \"\",\r\n"
+ " \"VLNT_ERSR_PRVNTC_NTICE_DE\": \"\",\r\n"
+ " \"REGIST_INSTT_NM\": \"\",\r\n"
+ " \"PROCESS_IMPRTY_RESN_CODE\": \"**\",\r\n"
+ " \"PROCESS_IMPRTY_RESN_DTLS\": \"****\",\r\n"
+ " \"CBD_LT\": \"\",\r\n"
+ " \"CBD_BT\": \"\",\r\n"
+ " \"CBD_HG\": \"\",\r\n"
+ " \"FRST_MXMM_LDG\": \"\",\r\n"
+ " \"FUEL_CNSMP_RT\": \"15.0\",\r\n"
+ " \"ELCTY_CMPND_FUEL_CNSMP_RT\": \"\"\r\n"
+ " }\r\n"
+ " ],\r\n"
+ " \"CNTC_RESULT_CODE\": \"MSG50000\",\r\n"
+ " \"CNTC_RESULT_DTLS\": \"정상\"\r\n"
+ " }\r\n"
+ " ]\r\n"
+ "}";
@Test
void parse() {
String s = ServiceMessage.Support.peel(str);
System.out.println(s);
BasicInfoExtResponse resp = json.parse(s, BasicInfoExtResponse.class);
System.out.println(resp);
}
@Resource(name="vehicleInfoBean")
private VehicleInfoBean bean;
@Test
void parse2() {
BasicInfoExtRequest req = new BasicInfoExtRequest();
req.setLevy_stdde("20231031");
req.setVhrno("18도7733");
req.validate();
String str = "{\"data\":[{\"record\":[{\"VHRNO\":\"\",\"VIN\":\"\",\"PRYE\":\"\",\"REGIST_DE\":\"\",\"ERSR_REGIST_SE_CODE\":\"\",\"ERSR_REGIST_SE_NM\":\"\",\"ERSR_REGIST_DE\":\"\",\"REGIST_DETAIL_CODE\":\"\",\"DSPLVL\":\"\",\"USE_STRNGHLD_LEGALDONG_CODE\":\"\",\"USE_STRNGHLD_ADSTRD_CODE\":\"\",\"USE_STRNGHLD_MNTN\":\"\",\"USE_STRNGHLD_LNBR\":\"\",\"USE_STRNGHLD_HO\":\"\",\"USE_STRNGHLD_ADRES_NM\":\"\",\"USE_STRNGHLD_ROAD_NM_CODE\":\"\",\"USGSRHLD_UNDGRND_BULD_SE_CODE\":\"\",\"USE_STRNGHLD_BULD_MAIN_NO\":\"\",\"USE_STRNGHLD_BULD_SUB_NO\":\"\",\"USGSRHLD_ADRES_FULL\":\"경 기도 수원시 장안구 정자로19번길 18, 505동 809호(천천동, 일성아파트)\",\"MBER_SE_CODE\":\"\",\"MBER_NM\":\"서상종\",\"MBER_SE_NO\":\"8108141226621\",\"TELNO\":\"\",\"OWNER_LEGALDONG_CODE\":\"\",\"OWNER_ADSTRD_CODE\":\"\",\"OWNER_MNTN\":\"\",\"OWNER_LNBR\":\"\",\"OWNER_HO\":\"\",\"OWNER_ADRES_NM\":\"\",\"OWNER_ROAD_NM_CODE\":\"\",\"OWNER_UNDGRND_BULD_SE_CODE\":\"\",\"OWNER_BULD_MAIN_NO\":\"\",\"OWNER_BULD_SUB_NO\":\"\",\"OWNER_ADRES_FULL\":\"\",\"AFTR_VHRNO\":\"\",\"USE_FUEL_CODE\":\"\",\"PRPOS_SE_CODE\":\"\",\"MTRS_FOM_NM\":\"\",\"FRNT_VHRNO\":\"\",\"CNM\":\"싼타페(SANTAFE)\",\"VHCLE_TOT_WT\":\"\",\"CAAG_ENDDE\":\"\",\"CHANGE_DE\":\"\",\"VHCTY_ASORT_CODE\":\"\",\"VHCTY_TY_CODE\":\"\",\"VHCTY_SE_CODE\":\"\",\"MXMM_LDG\":\"\",\"VHCTY_ASORT_NM\":\"승용\",\"VHCTY_TY_NM\":\"\",\"VHCTY_SE_NM\":\"\",\"FRST_REGIST_DE\":\"\",\"FOM_NM\":\"\",\"ACQS_DE\":\"\",\"ACQS_END_DE\":\"\",\"YBL_MD\":\"\",\"TRANSR_REGIST_DE\":\"\",\"SPCF_REGIST_STTUS_CODE\":\"\",\"COLOR_NM\":\"\",\"MRTG_CO\":\"\",\"SEIZR_CO\":\"\",\"STMD_CO\":\"\",\"NMPL_CSDY_AT\":\"\",\"NMPL_CSDY_REMNR_DE\":\"\",\"ORIGIN_SE_CODE\":\"\",\"NMPL_STNDRD_CODE\":\"\",\"ACQS_AMOUNT\":\"\",\"INSPT_VALID_PD_BGNDE\":\"\",\"INSPT_VALID_PD_ENDDE\":\"\",\"USE_STRNGHLD_GRC_CODE\":\"\",\"TKCAR_PSCAP_CO\":\"\",\"SPMNNO\":\"\",\"TRVL_DSTNC\":\"\",\"FRST_REGIST_RQRCNO\":\"\",\"VLNT_ERSR_PRVNTC_NTICE_DE\":\"\",\"REGIST_INSTT_NM\":\"\",\"PROCESS_IMPRTY_RESN_CODE\":\"00\",\"PROCESS_IMPRTY_RESN_DTLS\":\"운행차량\",\"CBD_LT\":\"\",\"CBD_BT\":\"\",\"CBD_HG\":\"\",\"FRST_MXMM_LDG\":\"\",\"FUEL_CNSMP_RT\":\"15.0\",\"ELCTY_CMPND_FUEL_CNSMP_RT\":\"\"}],\"CNTC_RESULT_CODE\":\"MSG50000\",\"CNTC_RESULT_DTLS\":\"정상\"}]}";
String s = ServiceMessage.Support.peel(str);
System.out.println(s);
BasicInfoExtResponse resp = json.parse(s, BasicInfoExtResponse.class);
System.out.println(resp);
bean.create(req, resp);
BasicInfoExtResponse found = bean.getBasicInfo(req);
System.out.println(found);
}
@Test
void stringify() {
BasicInfoExtResponse.ExtInfo detail = new BasicInfoExtResponse.ExtInfo();
detail.setUsgsrhld_adres_full("*** *** *** ***** **, ***동 ***호(***, *****)");
detail.setMber_nm("***");
detail.setMber_se_no("*************");
detail.setCnm("*****");
detail.setProcess_imprty_resn_code("**");
detail.setProcess_imprty_resn_dtls("****");
detail.setFuel_cnsmp_rt("15.0");
BasicInfoExtResponse resp = new BasicInfoExtResponse();
resp.setRecord(List.of(detail));
resp.setCntc_result_code("MSG50000");
resp.setCntc_result_dtls("정상");
String str = json.stringify(resp, true);
System.out.println(str);
BasicInfoExtResponse parsed = json.parse(str, BasicInfoExtResponse.class);
System.out.println(parsed);
}
@Test
void getEVInfo() {
BasicInfoExtRequest req = new BasicInfoExtRequest();
Assertions.assertThrows(IllegalArgumentException.class, () -> service.getBasicInfo(req));
req.setLevy_stdde("20231026");
req.setVhrno("18도7733");
service.getBasicInfo(req);
}
}
Loading…
Cancel
Save