feat: NICE CI 소켓 통신 추가

- 전문 응답 parsing
dev
Jonguk. Lim 2 months ago
parent c0a723538f
commit 2e1f2684d2

@ -256,34 +256,4 @@ public class NiceCiApiCommon {
private static String nvl(String src){ private static String nvl(String src){
return StringUtils.defaultIfEmpty(src, StringUtils.EMPTY); return StringUtils.defaultIfEmpty(src, StringUtils.EMPTY);
} }
public static void main(String[] args) {
NiceCiHistoryApiDTO.Request nr = new NiceCiHistoryApiDTO.Request();
nr.setTrCode("0000006150");
// // 공통부
//
// // 개별요청부
// nr.setQueryReason(StringUtils.EMPTY);
// nr.setQueryReqCnt(46);
// nr.setSmsSndReqCode("1");
// nr.setSndPhoneNo("010");
// nr.setContactSearchCode("1");
// 공통부
NiceCiApiCommon nc = new NiceCiApiCommon();
// nc.setGrpCode("grpCode");
//nc.setTrType("Type");
nc.setTrClassification("31895"); // 거래구분
nc.setOrgId("Z755400"); // 참가기관Id - property 에서
nc.setOrgMngNo("0000000103"); // 기관관리번호
nc.setOrgSndDt("20240919");
System.out.println(NiceCiApiCommon.parse(nc.ofString()));
//sendNiceSocket();
//serverSocket();
}
} }

@ -450,21 +450,6 @@ public class NiceCiApiDTO {
// 응답반복부 : 110 자리 // 응답반복부 : 110 자리
//---------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------
// public String ofString() {
// StringBuilder sb = new StringBuilder();
// sb.append(trCode);
// sb.append(niceCommon.ofString());
// sb.append(commonEmptyField);
// sb.append(resCnt);
// sb.append(smsSndReqCode);
// sb.append(sndMessage);
// sb.append(sndPhoneNo);
// sb.append(contactSearchCode);
// sb.append(privateEmptyField);
// sb.append(resResults.stream().map(ResResult::ofString).collect(Collectors.joining()));
// return sb.toString();
// }
public static Response parse(String tgtString) { public static Response parse(String tgtString) {
final int repeatLength = 110; final int repeatLength = 110;
final int[] parseLength = { final int[] parseLength = {
@ -650,78 +635,6 @@ public class NiceCiApiDTO {
} }
} }
public static void main(String[] args) {
NiceCiApiDTO.Request ciRequest = new NiceCiApiDTO.Request();
//ciRequest.setTrCode("0000006150");
// // 공통부
//
// // 개별요청부
// nr.setQueryReason(StringUtils.EMPTY);
// nr.setQueryReqCnt(46);
// nr.setSmsSndReqCode("1");
ciRequest.setSndMessage("민자도로 관리지원센터에서 김해찬님께 발송한 미납통행료 고지서가 도착했습니다.\n"
+ "\n"
+ "민자도로 미납통행료 고지서\n"
+ "\n"
+ "□ 차량번호 : 19너0914\n"
+ "□ 미납발생 노선 : 서울-문산\n"
+ "□ 미납발생 기간 : 2021년 04월 12일~2023년 08월 30일\n"
+ "□ 납부금액 : 819,500원(42건)\n"
+ "□ 납부기한 : 2024년10월01일\n"
+ "□ 납부방법 : \n"
+ "① 하단의 (납부하기) 클릭\n"
+ "② 가상계좌 납부\n"
+ "-(가상계좌) : 농협은행 792000-36-986609\n"
+ "국민은행 731190-72-253083\n"
+ "우리은행 283752-73-918780\n"
+ "신한은행 562146-27-470101\n"
+ "\n"
+ "※ 알림톡 수신 시 종이고지서는 발송되지 않습니다.\n"
+ "\n"
+ "문의처 : 044-211-3377");
// nr.setSndPhoneNo("010");
// nr.setContactSearchCode("1");
// 공통부
NiceCiApiCommon nc = new NiceCiApiCommon();
// nc.setGrpCode("grpCode");
//nc.setTrType("Type");
nc.setTrClassification("31895"); // 거래구분
nc.setOrgId("Z755400"); // 참가기관Id - property 에서
nc.setOrgMngNo("0000000103"); // 기관관리번호
nc.setOrgSndDt("20240919");
QueryRequest qr = new QueryRequest();
ButtonRequest br = new ButtonRequest();
ciRequest.setNiceCommon(nc);
ciRequest.getQueryRequests().add(qr);
ciRequest.getButtonRequests().add(br);
// nc.setNiceMngNo(StringUtils.EMPTY);
// nc.setNiceSndDt(StringUtils.EMPTY);
String ciTxt = ciRequest.ofString();
String ft = String.format("%s%s", StringUtils.leftPad(String.valueOf(NiceCiUtils.lengthKr(ciTxt)), 10, "0"), ciTxt);
System.out.println(String.format("[%s] kr length - %d, utf-8 length - %d", ft, NiceCiUtils.lengthKr(ft), ft.length()));
String resStr = "trCode " +
// NiceCommon
"NICEIF 020031895B503rsltorgId orgMngNo orgSndDt niceMngNo niceSndDt" +
" "+
// 개별응답부
"241~~~~~~~~~~~~~~~~~~~~~~~ 010 1 "+
// 응답반복부
"18401011449211name2 001 "+
"19412341234567이름2 1 ";
NiceCiApiDTO.Response niceResponse = NiceCiApiDTO.Response.parse(resStr);
System.out.println(niceResponse);
//sendNiceSocket();
//serverSocket();
}
private static String nvl(String src){ private static String nvl(String src){
return StringUtils.defaultIfEmpty(src, StringUtils.EMPTY); return StringUtils.defaultIfEmpty(src, StringUtils.EMPTY);
} }

@ -30,7 +30,7 @@ import lombok.*;
* *
* </pre> * </pre>
*/ */
public class NiceCiHistoryApiDTO { public class NiceCiApiHistoryDTO {
@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
@ -303,21 +303,6 @@ public class NiceCiHistoryApiDTO {
// 응답반복부 : 1150 자리 // 응답반복부 : 1150 자리
//---------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------
// public String ofString() {
// StringBuilder sb = new StringBuilder();
// sb.append(trCode);
// sb.append(niceCommon.ofString());
// sb.append(commonEmptyField);
// sb.append(resCnt);
// sb.append(smsSndReqCode);
// sb.append(sndMessage);
// sb.append(sndPhoneNo);
// sb.append(contactSearchCode);
// sb.append(privateEmptyField);
// sb.append(resResults.stream().map(ResResult::ofString).collect(Collectors.joining()));
// return sb.toString();
// }
public static Response parse(String tgtString) { public static Response parse(String tgtString) {
final int repeatLength = 1150; final int repeatLength = 1150;
final int[] parseLength = { final int[] parseLength = {
@ -372,45 +357,4 @@ public class NiceCiHistoryApiDTO {
private static String nvl(String src){ private static String nvl(String src){
return StringUtils.defaultIfEmpty(src, StringUtils.EMPTY); return StringUtils.defaultIfEmpty(src, StringUtils.EMPTY);
} }
public static void main(String[] args) {
NiceCiHistoryApiDTO.Request ciHisRequest = new NiceCiHistoryApiDTO.Request();
ciHisRequest.setTrCode("0000006150");
// // 공통부
//
// // 개별요청부
// ciHisRequest.setQueryReason(StringUtils.EMPTY);
// ciHisRequest.setQueryReqCnt(46);
// ciHisRequest.setSmsSndReqCode("1");
// ciHisRequest.setSndPhoneNo("010");
// ciHisRequest.setContactSearchCode("1");
// 공통부
NiceCiApiCommon nc = new NiceCiApiCommon();
// nc.setGrpCode("grpCode");
//nc.setTrType("Type");
nc.setTrClassification("31895"); // 거래구분
nc.setOrgId("Z755400"); // 참가기관Id - property 에서
nc.setOrgMngNo("0000000103"); // 기관관리번호
nc.setOrgSndDt("20240919");
String fullText = ciHisRequest.ofString();
System.out.println(String.format("[%s] %d", fullText, fullText.length()));
String resStr = "trCode " +
// NiceCommon
"NICEIF 020031895B503rsltorgId orgMngNo orgSndDt niceMngNo niceSndDt" +
" "+
// 개별응답부
"241~~~~~~~~~~~~~~~~~~~~~~~ 010 1 "+
// 응답반복부
"18401011449211name2 001 "+
"19412341234567이름2 1 ";
NiceCiHistoryApiDTO.Response niceResponse = NiceCiHistoryApiDTO.Response.parse(resStr);
System.out.println(niceResponse);
//sendNiceSocket();
//serverSocket();
}
} }

@ -236,22 +236,6 @@ public class NiceCiApiResult {
this.emptyField = StringUtils.trim(emptyField); this.emptyField = StringUtils.trim(emptyField);
} }
// public String ofString() {
// StringBuilder sb = new StringBuilder();
// sb.append(idDiv);
// sb.append(jumin);
// sb.append(name);
// sb.append(contractOf1st);
// sb.append(contractOf2nd);
// sb.append(contractOf3rd);
// sb.append(rsltDivCode);
// sb.append(smsSndContractOrder);
// sb.append(smsSndContractNo);
// sb.append(smsSndWillDt);
// sb.append(emptyField);
// return sb.toString();
// }
public static NiceCiApiResult parse(String tgtString) { public static NiceCiApiResult parse(String tgtString) {
// 110 자리 // 110 자리
final int[] parseLength = { final int[] parseLength = {

@ -111,7 +111,7 @@ public class NiceCiService {
} }
public EnsResponseVO<?> findBulkStatus() { public EnsResponseVO<?> findBulkStatus() {
NiceCiHistoryApiDTO.Request ciRequest = new NiceCiHistoryApiDTO.Request(); NiceCiApiHistoryDTO.Request ciRequest = new NiceCiApiHistoryDTO.Request();
//ciRequest.setTrCode("0000006150"); //ciRequest.setTrCode("0000006150");
// // 공통부 // // 공통부
// //

@ -86,9 +86,9 @@ public class NiceCiApiService {
.build(); .build();
} }
public EnsResponseVO<?> findBulkStatus(final NiceCiHistoryApiDTO.Request reqDTO) { public EnsResponseVO<?> findBulkStatus(final NiceCiApiHistoryDTO.Request reqDTO) {
List<String> errors = new ArrayList<>(); List<String> errors = new ArrayList<>();
final Set<ConstraintViolation<NiceCiHistoryApiDTO.Request>> list = validator.validate(reqDTO); final Set<ConstraintViolation<NiceCiApiHistoryDTO.Request>> list = validator.validate(reqDTO);
if (!list.isEmpty()) { if (!list.isEmpty()) {
errors.addAll(list.stream() errors.addAll(list.stream()
.map(row -> String.format("%s=%s", row.getPropertyPath(), row.getMessageTemplate())) .map(row -> String.format("%s=%s", row.getPropertyPath(), row.getMessageTemplate()))
@ -116,7 +116,7 @@ public class NiceCiApiService {
.errMsg(e.getMessage()) .errMsg(e.getMessage())
.build(); .build();
} }
NiceCiHistoryApiDTO.Response resDTO = NiceCiHistoryApiDTO.Response.parse(rtnMsg); NiceCiApiHistoryDTO.Response resDTO = NiceCiApiHistoryDTO.Response.parse(rtnMsg);
return EnsResponseVO.okBuilder() return EnsResponseVO.okBuilder()
.resultInfo(resDTO) .resultInfo(resDTO)
.build(); .build();

Loading…
Cancel
Save