KJB 필터 및 Util 정리

This commit is contained in:
curry772
2026-06-15 15:02:47 +09:00
parent a01ee024c0
commit ec9c6d8553
19 changed files with 1 additions and 2720 deletions
@@ -1,82 +0,0 @@
package com.eactive.eai.custom.message;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.message.StandardItem;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.filter.MessageFilter;
import com.eactive.eai.message.manager.StandardMessageManager;
import com.eactive.eai.message.service.InterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
@SuppressWarnings("serial")
public class FlatMessageFilterKAKAOCARD implements MessageFilter {
@Override
public StandardMessage doFilter(StandardMessage message) {
// 카카오은행 기준
// 전체길이(8) : 전체길이포함 전체
// 헤더 : 150
// 공통부: 850
// DATA헤더 : 10
// DATA : ?
// 종료 : @@ : 2
// 예) DATA가 320byte이면 전체길이는 1332 임
// 요청시 MESSAGE 부가 없음
// 응답시 MESSAGE 부가 있음
boolean isMessageHidden = true;
// 아래로직은 표준전문에서 요청일때 MESSAGE부가 안보이고 응답일때 MESSAGE부 보이게 설정
StandardItem mesgDmanDvcd = message.findItem("Header.MESG_DMAN_DVCD");
if (mesgDmanDvcd != null && StringUtils.equals(mesgDmanDvcd.getValue(), "R")) {
isMessageHidden = false;
}
// message부 보이기 여부
StandardItem msg = message.findItem("MSG");
// 아래로직은 표준전문에서 요청일때 MESSAGE부가 안보이고 응답일때 MESSAGE부 보이게 설정
msg.setHidden(isMessageHidden);
int totalSize = 0; // 전체 길이 ( 메시지여부에 따라 변경됨)
int ioSize = 0; // 데이터부 길이
int messageSize = 0; // 메시지부 길이
try {
ioSize = message.getBizDataBytes().length;
// 데이터부 길이 설정
StandardItem dataHedrLen = message.findItem("DataPart.DataHeader.DATA_HEDR_LEN");
dataHedrLen.setValue(String.valueOf(ioSize));
} catch (Exception e) {
}
try {
messageSize = message.getBytesDataLengthForPath("MSG");
if (messageSize > 10) {
StandardItem msgLen = message.findItem("MSG.MSG_HEDR_LEN");
msgLen.setValue(String.valueOf(messageSize - 10));
}
StandardItem msgCnt = message.findItem("MSG.OUTPUT_MSG_NCNT");
} catch (Exception e) {
}
if (isMessageHidden) {
// 전체길이 = 150 + 850 + 메시지부길이(X) + DATA부(10) + bizData(?) +종료부(2)
totalSize = 150 + 850 + 0 + 10 + ioSize + 2;
} else {
// 전체길이 = 150 + 850 + 메시지부길이(배열존재(출력메시지개수)) + DATA부(10) + bizData +종료부(2)
totalSize = 150 + 850 + messageSize + 10 + ioSize + 2;
}
// 전체 길이 셋팅
try {
message.setLlData(String.valueOf(totalSize));
} catch (Exception e) {
}
return message;
}
}
@@ -1,57 +0,0 @@
package com.eactive.eai.custom.message;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.message.StandardItem;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.filter.MessageFilter;
import com.eactive.eai.message.manager.StandardMessageManager;
import com.eactive.eai.message.service.InterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
@SuppressWarnings("serial")
public class FlatMessageFilterSBI implements MessageFilter {
@Override
public StandardMessage doFilter(StandardMessage message) {
// total 메시지 길이 설정
int totalSize = 0;
try {
totalSize = message.getBytesDataLength();
message.setLlData(String.valueOf(totalSize));
} catch (Exception e) {
}
// whlMesgLen=전체길이 - 채널헤더길이(24) - ZZ(2)
try {
StandardItem whlMesgLenItem = message.findItem("STD_HEADER.whlMesgLen");
if (whlMesgLenItem != null) {
int whlMesgLen = totalSize - 24 - 2;
whlMesgLenItem.setValue(String.valueOf(whlMesgLen));
}
// stndHdrLen=전체길이 - 채널헤더길이(24) - bizData길이 - ZZ(2)
StandardItem stndHdrLenItem = message.findItem("STD_HEADER.stndHdrLen");
if (stndHdrLenItem != null) {
int stndHdrLen = totalSize - 24 - message.getBizDataBytes().length - 2;
stndHdrLenItem.setValue(String.valueOf(stndHdrLen));
}
} catch (Exception e) {
}
// STD_HEADER.rsltCd 설정
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
if (StringUtils.equals(mapper.getSendRecvDivision(message), "R")) {
StandardItem rsltCdItem = message.findItem("STD_HEADER.rsltCd");
if (StringUtils.equals(mapper.getResponseType(message), STDMessageKeys.RESPONSE_TYPE_CODE_N)) {
rsltCdItem.setValue("00"); // STD_MSG_RSLT_CD_SUCCESS
} else {
rsltCdItem.setValue("99"); // STD_MSG_RSLT_CD_ERROR_UNKNOWN
}
}
return message;
}
}