@ -20,7 +20,7 @@ import lombok.*;
* Builder 패 턴 사 용 X
* Builder 패 턴 사 용 X
* - > setter 를 사 용 필 드 길 이 고 정 필 요
* - > setter 를 사 용 필 드 길 이 고 정 필 요
* packageName : cokr . xit . ens . modules . nice . model
* packageName : cokr . xit . ens . modules . nice . model
* fileName : Nice DTO
* fileName : Nice CiApiStatus DTO
* author : limju
* author : limju
* date : 2024 9 월 23
* date : 2024 9 월 23
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
@ -30,7 +30,7 @@ import lombok.*;
*
*
* < / pre >
* < / pre >
* /
* /
public class NiceCiApi History DTO {
public class NiceCiApi Status DTO {
@Schema ( name = "Request(Nice CI History) API DTO" , description = "NICE CI API 이력 요청 전문 DTO" )
@Schema ( name = "Request(Nice CI History) API DTO" , description = "NICE CI API 이력 요청 전문 DTO" )
@Data
@Data
@ -51,10 +51,15 @@ public class NiceCiApiHistoryDTO {
* /
* /
//@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "TR Code", example = " ")
//@Schema(requiredMode = Schema.RequiredMode.REQUIRED, title = "TR Code", example = " ")
//@Size(min = 10, max = 10, message = "트랜잭션 코드는 10자리 입니다.")
//@Size(min = 10, max = 10, message = "트랜잭션 코드는 10자리 입니다.")
private String tr Code = StringUtils . EMPTY ;
private String tr nscId = StringUtils . EMPTY ;
public void setTr Code( String trCode ) {
public void setTr nscId( String trnscId ) {
this . tr Code = StringUtils . leftPad ( nvl ( trCode ) , 10 , StringUtils . SPACE ) ;
this . tr nscId = StringUtils . leftPad ( nvl ( trnscId ) , 10 , StringUtils . SPACE ) ;
}
}
/ * *
* nice sms 발 송 요 청 ID - 업 무 PK
* /
private String niceSmsSndngInqireId ;
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
@ -63,15 +68,6 @@ public class NiceCiApiHistoryDTO {
@Schema ( requiredMode = Schema . RequiredMode . REQUIRED )
@Schema ( requiredMode = Schema . RequiredMode . REQUIRED )
@Valid
@Valid
NiceCiApiCommon niceCommon ;
NiceCiApiCommon niceCommon ;
/ * *
* < pre >
* 공 란 - 17 자 리
* < / pre >
* /
@Schema ( title = "공란" , example = " " )
@Size ( min = 17 , max = 17 , message = "공란(16자리)" )
private String commonEmptyField = StringUtils . rightPad ( StringUtils . EMPTY , 17 , StringUtils . SPACE ) ;
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
// 공통부 : 100 자리
// 공통부 : 100 자리
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
@ -88,9 +84,9 @@ public class NiceCiApiHistoryDTO {
* /
* /
@Schema ( title = "검색기간 from" , example = " " )
@Schema ( title = "검색기간 from" , example = " " )
@Size ( min = 20 , max = 20 , message = "검색기간 from" )
@Size ( min = 20 , max = 20 , message = "검색기간 from" )
private String fromDt = StringUtils . rightPad ( StringUtils . EMPTY , 20 , StringUtils . SPACE ) ;
private String searchPdFrom = StringUtils . rightPad ( StringUtils . EMPTY , 20 , StringUtils . SPACE ) ;
public void set FromDt( String fromDt ) {
public void set SearchPdFrom( String searchPdFrom ) {
this . fromDt = StringUtils . rightPad ( nvl ( fromDt ) , 20 , StringUtils . SPACE ) ;
this . searchPdFrom = StringUtils . rightPad ( nvl ( searchPdFrom ) , 20 , StringUtils . SPACE ) ;
}
}
/ * *
/ * *
@ -101,9 +97,9 @@ public class NiceCiApiHistoryDTO {
* /
* /
@Schema ( title = "검색기간 to" , example = " " )
@Schema ( title = "검색기간 to" , example = " " )
@Size ( min = 20 , max = 20 , message = "검색기간 to" )
@Size ( min = 20 , max = 20 , message = "검색기간 to" )
private String toDt = StringUtils . rightPad ( StringUtils . EMPTY , 20 , StringUtils . SPACE ) ;
private String searchPdTo = StringUtils . rightPad ( StringUtils . EMPTY , 20 , StringUtils . SPACE ) ;
public void set ToDt( String toDt ) {
public void set SearchPdTo( String searchPdTo ) {
this . toDt = StringUtils . rightPad ( nvl ( toDt ) , 20 , StringUtils . SPACE ) ;
this . searchPdTo = StringUtils . rightPad ( nvl ( searchPdTo ) , 20 , StringUtils . SPACE ) ;
}
}
/ * *
/ * *
@ -114,7 +110,7 @@ public class NiceCiApiHistoryDTO {
* /
* /
@Schema ( title = "개인/사업자/법인구분" , example = "1" )
@Schema ( title = "개인/사업자/법인구분" , example = "1" )
@Size ( min = 1 , max = 1 , message = "개인/사업자/법인구분은 1자리 입니다." )
@Size ( min = 1 , max = 1 , message = "개인/사업자/법인구분은 1자리 입니다." )
private String i dDi v = "1" ;
private String i n dvdlBsnmCprSe = "1" ;
/ * *
/ * *
* < pre >
* < pre >
@ -122,26 +118,26 @@ public class NiceCiApiHistoryDTO {
* < / pre >
* < / pre >
* /
* /
@Schema ( title = "주민번호" , example = " " )
@Schema ( title = "주민번호" , example = " " )
@Size ( min = 13 , max = 13 , message = "주민번호는 13자리 입니다." )
//@Size(min = 13, max = 13, message = "주민번호는 13자리 입니다.")
private String jum in = StringUtils . rightPad ( StringUtils . EMPTY , 13 , StringUtils . SPACE ) ;
private String ihid num = StringUtils . rightPad ( StringUtils . EMPTY , 13 , StringUtils . SPACE ) ;
public void set Jumin( String jumin ) {
public void set Ihidnum( String ihidnum ) {
this . jum in = StringUtils . rightPad ( nvl ( jum in) , 13 , StringUtils . SPACE ) ;
this . ihid num = StringUtils . rightPad ( nvl ( ihid num ) , 13 , StringUtils . SPACE ) ;
}
}
/ * *
/ * *
* < pre >
* < pre >
* 결 과 구 분 코 드 - 2 자 리
* 결 과 구 분 코 드 - 2 자 리
* " " - 전 체 조 회
* " " - 전 체 조 회
* 00 - 정 상 ( SMS 미 발 송 시 조 회 정 상 , SMS 발 송 시 발 송 정 상 )
* 00 - 정 상 ( SMS 미 발 송 시 조 회 정 상 , SMS 발 송 시 발 송 정 상 )
* 01 - 연 락 처 조 회 실 패 건 ( 주 민 번 호 오 류 / 데 이 터 없 음 / 기 타 오 류 건 )
* 01 - 연 락 처 조 회 실 패 건 ( 주 민 번 호 오 류 / 데 이 터 없 음 / 기 타 오 류 건 )
* 10 - 진 행 중 ( 연 락 처 조 회 정 상 건 중 SMS 발 송 이 전 )
* 10 - 진 행 중 ( 연 락 처 조 회 정 상 건 중 SMS 발 송 이 전 )
* < / pre >
* < / pre >
* /
* /
@Schema ( title = "결과구분코드" , example = " " , allowableValues = { " " , "00" , "01" , "10" } )
@Schema ( title = "결과구분코드" , example = " " , allowableValues = { " " , "00" , "01" , "10" } )
@Size ( min = 2 , max = 2 , message = "결과구분코드는 2자리 입니다." )
@Size ( min = 2 , max = 2 , message = "결과구분코드는 2자리 입니다." )
private String r sltDivCod e = " " ;
private String r esultS e = " " ;
public void setR sltDivCode( String rsltDivCod e) {
public void setR esultSe( String resultS e) {
this . r sltDivCode = StringUtils . rightPad ( nvl ( rsltDivCod e) , 2 , StringUtils . SPACE ) ;
this . r esultSe = StringUtils . rightPad ( nvl ( resultS e) , 2 , StringUtils . SPACE ) ;
}
}
/ * *
/ * *
@ -156,7 +152,7 @@ public class NiceCiApiHistoryDTO {
* /
* /
@Schema ( title = "SMS발송요청구분" , example = " " , allowableValues = { "0" , "1" , "2" , "3" , "4" } )
@Schema ( title = "SMS발송요청구분" , example = " " , allowableValues = { "0" , "1" , "2" , "3" , "4" } )
@Size ( min = 1 , max = 1 , message = "SMS발송요청구분은 1자리 입니다." )
@Size ( min = 1 , max = 1 , message = "SMS발송요청구분은 1자리 입니다." )
private String smsSnd ReqCod e = "0" ;
private String smsSnd ngRequstS e = "0" ;
/ * *
/ * *
* < pre >
* < pre >
@ -165,10 +161,10 @@ public class NiceCiApiHistoryDTO {
* < / pre >
* < / pre >
* /
* /
@Schema ( title = "요청건수" , example = " " )
@Schema ( title = "요청건수" , example = " " )
@Pattern ( regexp = "^ \\s{10}$|\\d{10} ", message = "요청건수는 10자리(max 100)입니다" )
@Pattern ( regexp = "^ [\\s\\S]{10}$ ", message = "요청건수는 10자리(max 100)입니다" )
private String req Cnt = StringUtils . rightPad ( StringUtils . EMPTY , 10 , StringUtils . SPACE ) ;
private String req ustCo = StringUtils . rightPad ( StringUtils . EMPTY , 10 , StringUtils . SPACE ) ;
public void setReq Cnt( String reqCnt ) {
public void setReq ustCo( String requstCo ) {
this . req Cnt = StringUtils . rightPad ( nvl ( reqCnt ) , 10 , StringUtils . SPACE ) ;
this . req ustCo = StringUtils . rightPad ( nvl ( requstCo ) , 10 , StringUtils . SPACE ) ;
}
}
/ * *
/ * *
@ -178,10 +174,11 @@ public class NiceCiApiHistoryDTO {
* < / pre >
* < / pre >
* /
* /
@Schema ( title = "누적수신건수" , example = " " )
@Schema ( title = "누적수신건수" , example = " " )
@Max ( value = 100 , message = "누적수신건수는 최대 10자리 입니다." )
@Size ( min = 10 , max = 10 , message = "누적수신건수는 10자리 입니다." )
private String accRecvCnt = "0000000000" ;
@Pattern ( regexp = "^\\d{10}$" , message = "요청건수는 10자리(max 100)입니다" )
public void setAccRecvCnt ( String accRecvCnt ) {
private String accmltRecptnCo = "0000000000" ;
this . accRecvCnt = StringUtils . rightPad ( nvl ( accRecvCnt ) , 10 , StringUtils . SPACE ) ;
public void setAccmltRecptnCo ( String accmltRecptnCo ) {
this . accmltRecptnCo = StringUtils . rightPad ( nvl ( accmltRecptnCo ) , 10 , StringUtils . SPACE ) ;
}
}
/ * *
/ * *
@ -191,35 +188,38 @@ public class NiceCiApiHistoryDTO {
* /
* /
@Schema ( title = "공란" , example = " " )
@Schema ( title = "공란" , example = " " )
@Size ( min = 23 , max = 23 , message = "공란(23자리)" )
@Size ( min = 23 , max = 23 , message = "공란(23자리)" )
private String privateEmptyField = StringUtils . rightPad ( StringUtils . EMPTY , 23 , StringUtils . SPACE ) ;
private String indvdlzRequstBlnk = StringUtils . rightPad ( StringUtils . EMPTY , 23 , StringUtils . SPACE ) ;
public void setIndvdlzRequstBlnk ( String indvdlzRequstBlnk ) {
this . indvdlzRequstBlnk = StringUtils . rightPad ( nvl ( indvdlzRequstBlnk ) , 23 , StringUtils . SPACE ) ;
}
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
// 개별요청부 : 100 자리
// 개별요청부 : 100 자리
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
public String ofString ( ) {
public String ofString ( ) {
StringBuilder sb = new StringBuilder ( ) ;
StringBuilder sb = new StringBuilder ( ) ;
sb . append ( trCode ) ;
sb . append ( trnscId ) ;
// 공통부
// 공통부
sb . append ( niceCommon . ofString ( ) ) ;
sb . append ( niceCommon . ofString ( false ) ) ;
sb . append ( commonEmptyField ) ;
// 개별요청부
// 개별요청부
sb . append ( fromDt ) ;
sb . append ( searchPdFrom ) ;
sb . append ( toDt ) ;
sb . append ( searchPdTo ) ;
sb . append ( i dDi v) ;
sb . append ( i n dvdlBsnmCprSe ) ;
sb . append ( jum in) ;
sb . append ( ihid num ) ;
sb . append ( r sltDivCod e) ;
sb . append ( r esultS e) ;
sb . append ( smsSnd ReqCod e) ;
sb . append ( smsSnd ngRequstS e) ;
sb . append ( req Cnt ) ;
sb . append ( req ustCo ) ;
sb . append ( acc RecvCnt ) ;
sb . append ( acc mltRecptnCo ) ;
sb . append ( privateEmptyField ) ;
sb . append ( indvdlzRequstBlnk ) ;
// FIXME: 인코딩확인후 적용
// FIXME: 인코딩확인후 적용
return new String ( sb . toString ( ) . getBytes ( ) , StandardCharsets . UTF_8 ) ;
return new String ( sb . toString ( ) . getBytes ( ) , StandardCharsets . UTF_8 ) ;
}
}
}
}
@Schema ( name = "Response(Nice CI History ) DTO", description = "NICE CI 이력 응답 전문 DTO")
@Schema ( name = "Response(Nice CI Status ) DTO", description = "NICE CI 상태( 이력) 응답 전문 DTO")
@Data
@Data
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@ -235,25 +235,20 @@ public class NiceCiApiHistoryDTO {
* 회 원 사 고 유 키 - 요 청 시 필 수 max : 9
* 회 원 사 고 유 키 - 요 청 시 필 수 max : 9
* < / pre >
* < / pre >
* /
* /
private String tr Code ;
private String tr nscId ;
public void setTr Code( String trCode ) {
public void setTr nscId( String trnscId ) {
this . tr Code = StringUtils . trim ( trCode ) ;
this . tr nscId = StringUtils . trim ( trnscId ) ;
}
}
/ * *
* nice sms 발 송 요 청 ID - 업 무 PK
* /
private String niceSmsSndngInqireId ;
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
// 공통부 : 100 자리
// 공통부 : 100 자리
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
NiceCiApiCommon niceCommon ;
NiceCiApiCommon niceCommon ;
/ * *
* < pre >
* 공 란 - 16 자 리
* < / pre >
* /
private String commonEmptyField ;
public void setCommonEmptyField ( String commonEmptyField ) {
this . commonEmptyField = StringUtils . trim ( commonEmptyField ) ;
}
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
// 공통부 : 100 자리
// 공통부 : 100 자리
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
@ -266,9 +261,9 @@ public class NiceCiApiHistoryDTO {
* 총 건 수 : 10 자 리
* 총 건 수 : 10 자 리
* < / pre >
* < / pre >
* /
* /
private String tot alCnt ;
private String tot Co ;
public void setTot alCnt( String totalCnt ) {
public void setTot Co( String totCo ) {
this . tot alCnt = StringUtils . trim ( totalCnt ) ;
this . tot Co = StringUtils . trim ( totCo ) ;
}
}
/ * *
/ * *
@ -276,9 +271,9 @@ public class NiceCiApiHistoryDTO {
* 누 적 건 수 : 10 자 리
* 누 적 건 수 : 10 자 리
* < / pre >
* < / pre >
* /
* /
private String acc Cnt ;
private String acc mltCo ;
public void setAcc Cnt( String accCnt ) {
public void setAcc mltCo( String accmltCo ) {
this . acc Cnt = StringUtils . trim ( accCnt ) ;
this . acc mltCo = StringUtils . trim ( accmltCo ) ;
}
}
/ * *
/ * *
@ -287,9 +282,9 @@ public class NiceCiApiHistoryDTO {
* 최 대 100 건
* 최 대 100 건
* < / pre >
* < / pre >
* /
* /
private String r esCnt ;
private String r spnsCo ;
public void setR esCnt( String resCnt ) {
public void setR spnsCo( String rspnsCo ) {
this . r esCnt = StringUtils . trim ( resCnt ) ;
this . r spnsCo = StringUtils . trim ( rspnsCo ) ;
}
}
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
// 개별응답부 : 30 자리
// 개별응답부 : 30 자리
@ -307,8 +302,7 @@ public class NiceCiApiHistoryDTO {
final int repeatLength = 1150 ;
final int repeatLength = 1150 ;
final int [ ] parseLength = {
final int [ ] parseLength = {
10 , // tr-code
10 , // tr-code
83 , // 공통부
100 , // 공통부
17 , // 공란
10 , // 총건수
10 , // 총건수
10 , // 누적건수
10 , // 누적건수
10 , // 응답건수
10 , // 응답건수
@ -319,22 +313,19 @@ public class NiceCiApiHistoryDTO {
if ( StringUtils . isNotBlank ( tgtString ) & & NiceCiUtils . lengthKr ( tgtString ) > = 1290 ) {
if ( StringUtils . isNotBlank ( tgtString ) & & NiceCiUtils . lengthKr ( tgtString ) > = 1290 ) {
Response nr = new Response ( ) ;
Response nr = new Response ( ) ;
int idx = 0 ;
int idx = 0 ;
nr . setTr Code ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
nr . setTr nscId ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
nr . setNiceCommon ( NiceCiApiCommon . parse ( tgtString ) ) ;
nr . setNiceCommon ( NiceCiApiCommon . parse ( tgtString ) ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
nr . setCommonEmptyField ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
nr . setTotCo ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
nr . setTotalCnt ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
nr . setAcc Cnt ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
nr . setAccmltCo ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
nr . setR esCnt ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
nr . setR spnsCo ( StringUtils . left ( tgtString , parseLength [ idx ] ) ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
tgtString = tgtString . substring ( parseLength [ idx + + ] ) ;
if ( NiceCiUtils . lengthKr ( tgtString ) % repeatLength = = 0 ) {
if ( NiceCiUtils . lengthKr ( tgtString ) % repeatLength = = 0 ) {
@ -343,7 +334,7 @@ public class NiceCiApiHistoryDTO {
List < NiceCiApiResult > resResults = IntStream . range ( 0 , repeat )
List < NiceCiApiResult > resResults = IntStream . range ( 0 , repeat )
. mapToObj ( i - > {
. mapToObj ( i - > {
String currentString = NiceCiUtils . substringKr ( finalTgtString , i * repeatLength ) ;
String currentString = NiceCiUtils . substringKr ( finalTgtString , i * repeatLength ) ;
return NiceCiApiResult . parse History ( currentString ) ;
return NiceCiApiResult . parse Status ( currentString ) ;
} )
} )
. collect ( Collectors . toList ( ) ) ;
. collect ( Collectors . toList ( ) ) ;
nr . setNiceCiResults ( resResults ) ;
nr . setNiceCiResults ( resResults ) ;