DJBank에 필요없는 클래스 정리

- 타 사이트 설정파일 및 표준전문 클래스
This commit is contained in:
curry772
2026-06-01 09:57:06 +09:00
parent 6a53e29710
commit 7109c56623
41 changed files with 1 additions and 2608 deletions
@@ -1,81 +0,0 @@
package com.eactive.eai.custom.message;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.common.server.Keys;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.common.util.UUID;
/**
* 1. 기능 : UUID Generation Class 2. 처리 개요 : * - 3. 주의사항
*
* @author :
* @version : v 1.0.0
* @see : 관련 기능을 참조
* @since : :
*/
public final class GUIDGeneratorKAKAOCARD {
private static final DateTimeFormatter SDF_YYYYMMDDHHMMSSMS = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
/*
* 날짜(17) + "-"(1) + 시스템코드(3) + hostname(6) + 일련번호(5) + "-"(1) + 001(3)
*
*/
public static final int GUID_LENGTH = 33; // seq값 제외부분
/**
* 1. 기능 : Private 생성자 2. 처리 개요 : - 3. 주의사항 - Instance 생성하지 못함
**/
private GUIDGeneratorKAKAOCARD() {
}
public synchronized static String getGUID(String systemCode) {
StringBuilder sb = new StringBuilder();
sb.append(SDF_YYYYMMDDHHMMSSMS.format(ZonedDateTime.now()));
sb.append("-");
sb.append(systemCode);
sb.append(UNIQUE_NUM);
char[] formatSeq = { '0', '0', '0', '0', '0' };
char[] seqCharArray = String.valueOf(seq).toCharArray();
int destPos = formatSeq.length - seqCharArray.length;
System.arraycopy(seqCharArray, 0, formatSeq, destPos, seqCharArray.length);
sb.append(formatSeq);
seq++;
if (seq > 99999) {
seq = 1;
}
return sb.toString() + "-" + "001";
}
private static String UNIQUE_NUM;
private static int seq = 1;
private static int hostlength = 6;
static {
String uniqueValue = System.getProperty(Keys.SERVER_KEY);
if (StringUtils.isBlank(uniqueValue)) {
try {
uniqueValue = java.net.InetAddress.getLocalHost().getHostName();
} catch (Exception e) {
uniqueValue = StringUtil.stringFormat("", false, 'X', hostlength);
}
}
if (uniqueValue.length() > hostlength) {
uniqueValue = uniqueValue.substring(uniqueValue.length() - hostlength, uniqueValue.length());
} else if (uniqueValue.length() < hostlength) {
uniqueValue = StringUtil.stringFormat(uniqueValue, false, 'X', hostlength);
}
UNIQUE_NUM = uniqueValue.toUpperCase();
}
public static void main(String[] args) {
String guid = getGUID("FEP");
// System.out.println("[" + guid.length() + "]" + guid);
}
}
@@ -1,40 +0,0 @@
package com.eactive.eai.custom.message;
import com.eactive.eai.common.server.Keys;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.StringUtil;
public class GUIDGeneratorKBANK {
private static String UNIQUE_NUM;
private static int seq = 1;
static {
String uniqueValue = System.getProperty(Keys.SERVER_KEY);
if(uniqueValue.length() < 8) {
uniqueValue = StringUtil.stringFormat(uniqueValue, false, '0', 8);
}else if(uniqueValue.length() > 8){
uniqueValue = uniqueValue.substring(uniqueValue.length() - 8);
}
UNIQUE_NUM = uniqueValue.toUpperCase();
}
public synchronized static String makeGUID() {
StringBuilder sb = new StringBuilder();
sb.append(DatetimeUtil.getCurrentDateTime());
sb.append(UNIQUE_NUM);
char[] formatSeq = {'0','0','0','0','0','0','0','0'};
char[] seqCharArray = String.valueOf(seq).toCharArray();
int destPos = formatSeq.length - seqCharArray.length;
System.arraycopy(seqCharArray, 0, formatSeq, destPos, seqCharArray.length);
sb.append(formatSeq);
seq ++;
if(seq > 99999999) {
seq = 1;
}
return sb.toString() ;
}
}
@@ -1,98 +0,0 @@
package com.eactive.eai.custom.message;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import com.eactive.eai.common.util.DatetimeUtil;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.common.server.Keys;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.common.util.UUID;
/**
* 1. 기능 : UUID Generation Class 2. 처리 개요 : * - 3. 주의사항
*
* @author :
* @version : v 1.0.0
* @see : 관련 기능을 참조
* @since : :
*/
public final class GUIDGeneratorKJB {
/*
* 그룹사코드(3) + 호스트명(8) + 서버구분번호(2) + 일자(8) + 전문생성시간(6) + 일련번호(6) + 시스템경로번호(3, '001')
*/
public static final int GUID_LENGTH = 33; // 시스템경로번호 제외부분
/**
* 1. 기능 : Private 생성자 2. 처리 개요 : - 3. 주의사항 - Instance 생성하지 못함
**/
private GUIDGeneratorKJB() {
}
public synchronized static String getGUID(String groupCmpCd) {
String guid = groupCmpCd + UNIQUE_NUM;
guid = guid + DatetimeUtil.getCurrentDateTime();
if(seq < 10) {
guid = guid + "00000" + seq;
}
else if(seq < 100) {
guid = guid + "0000" + seq;
}
else if(seq < 1000) {
guid = guid + "000" + seq;
}
else if(seq < 10000) {
guid = guid + "00" + seq;
}
else if(seq < 100000) {
guid = guid + "0" + seq;
}
else {
guid = guid + seq;
}
seq ++;
if(seq > 999999) {
seq = 1;
}
return guid + "001";
}
private static String UNIQUE_NUM;
private static int seq = 1;
static {
String hostname = "";
try {
hostname = java.net.InetAddress.getLocalHost().getHostName();
}
catch(Exception e) {
hostname = "________";
}
if(hostname.getBytes().length != 8) {
if(hostname.getBytes().length < 8) {
hostname = StringUtils.leftPad(hostname, 8, '_');
} else if(hostname.getBytes().length > 8) {
hostname = StringUtils.substring(hostname, 0, 8);
}
}
String serverName = System.getProperty(Keys.SERVER_KEY);
String instid = "00";
if(serverName != null && serverName.length() > 2) {
instid = serverName.substring(serverName.length()-2, serverName.length());
}
UNIQUE_NUM = hostname.toUpperCase() + instid;
}
public static void main(String[] args) {
String guid = getGUID("051");
// System.out.println("[" + guid.length() + "]" + guid);
}
}
@@ -1,60 +0,0 @@
package com.eactive.eai.custom.message;
import java.text.SimpleDateFormat;
import com.eactive.eai.common.server.Keys;
import com.eactive.eai.common.util.StringUtil;
public final class GUIDGeneratorSBI {
private static final SimpleDateFormat SDF_YYYYMMDDHHMMSSMI = new SimpleDateFormat("yyyyMMddHHmmssSSS");
private GUIDGeneratorSBI() {
}
/**
* 시스템일시(17)+시스템환경코드(1)+시스템코드(3)+시스템고유번호(9)+일련번호(2)
*
* @param envDvcd
* @return
*/
public synchronized static String getGUID(String envDvcd, String systemType) {
String guid = (SDF_YYYYMMDDHHMMSSMI).format(new java.util.Date()) + envDvcd + systemType + UNIQUE_NUM;
if (seq < 10) {
guid = guid + "0" + seq;
} else {
guid = guid + seq;
}
seq++;
if (seq > 99) {
seq = 1;
}
return guid;
}
private static String UNIQUE_NUM;
private static int seq = 1;
static {
String hostname = "";
try {
hostname = java.net.InetAddress.getLocalHost().getHostName();
} catch (Exception e) {
hostname = "_______";
}
if (hostname.getBytes().length != 7) {
hostname = StringUtil.stringFormat(hostname, false, '_', 7);
}
String serverName = System.getProperty(Keys.SERVER_KEY); // inst.Name
String instid = "11";
if (serverName != null && serverName.length() > 2) {
instid = serverName.substring(serverName.length() - 2, serverName.length());
}
UNIQUE_NUM = hostname.toUpperCase() + instid;
}
}
@@ -1,202 +0,0 @@
package com.eactive.eai.custom.message;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.service.DefaultInterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
@SuppressWarnings("serial")
public class InterfaceMapperKAKAOCARD extends DefaultInterfaceMapper {
private static String SESSION_ID = "INTERFACE_COMMON.MCI_SESN_ID";
private static String INSTANCE_ID = "INTERFACE_COMMON.MCI_INSTNC_ID";
@Override
public String getEaiSvcCode(StandardMessage standardMessage) {
String eaiSvcCode = null;
String interfaceId = getInterfaceId(standardMessage);
String returnType = getSendRecvDivision(standardMessage); // S | R
String inExDivision = getInExDivision(standardMessage); // 1 | 2
if (interfaceId == null)
interfaceId = "";
interfaceId = interfaceId.trim();
// TODO : site에 맞게 조합해야 함.
eaiSvcCode = interfaceId + returnType + StringUtils.defaultString(inExDivision);
return eaiSvcCode;
}
@Override
public void setGuid(StandardMessage standardMessage, String guid) {
if (guid == null)
throw new RuntimeException("guid is null");
if (guid.length() != 36)
throw new RuntimeException("The length of guid is not 36");
setItemValue(standardMessage, getPath(GUID), guid);
}
@Override
public String getGuid(StandardMessage standardMessage) {
String guid = getItemValue(standardMessage, getPath(GUID));
if (guid.length() == 36) {
guid = guid.substring(0, 33);
}
return guid;
}
@Override
public String getGuidSeq(StandardMessage standardMessage) {
String guidseq = null;
String guid = getItemValue(standardMessage, getPath(GUID));
if (guid.length() == 36) {
guidseq = guid.substring(33);
} else {
guidseq = "000";
}
return guidseq;
}
@Override
public void setGuidSeq(StandardMessage standardMessage, String guidSeq) {
setItemValue(standardMessage, getPath(GUID), getGuid(standardMessage) + guidSeq);
}
@Override
public String getOrgGuid(StandardMessage standardMessage) {
String orgGuid = getItemValue(standardMessage, getPath(GUID_ORG));
if (orgGuid.length() == 36) {
orgGuid = orgGuid.substring(0, 33);
}
return orgGuid;
}
@Override
public void setOrgGuid(StandardMessage standardMessage, String orgGuid) {
if (orgGuid.length() == 36) {
orgGuid = orgGuid.substring(0, 33);
}
setItemValue(standardMessage, getPath(GUID_ORG), orgGuid);
}
@Override
public String nextGuidSeq(StandardMessage standardMessage) {
String guidSeq = getGuidSeq(standardMessage);
if (guidSeq == null)
return "";
int seq = 0;
try {
seq = Integer.parseInt(guidSeq) + 1;
} catch (NumberFormatException e) {
seq = 1;
}
guidSeq = StringUtil.stringFormat(Integer.toString(seq), true, '0', 3);
setGuidSeq(standardMessage, guidSeq);
return guidSeq;
}
/**
* 표준전문의 복원은 COMMON.ORTR_RESTR_YN 의 value는 (Y/N) 엔진에서 복원여부 의 value는 (1/0)
*/
@Override
public String getRecoverYn(StandardMessage standardMessage) {
String data = getItemValue(standardMessage, getPath(RECOVER_YN));
if ("Y".equals(data)) {
return "1";
} else {
return "0";
}
}
@Override
public void setRecoverYn(StandardMessage standardMessage, String recoverYn) {
if ("1".equals(recoverYn)) {
setItemValue(standardMessage, getPath(RECOVER_YN), "Y");
} else {
setItemValue(standardMessage, getPath(RECOVER_YN), "N");
}
}
@Override
public String getInstCode(StandardMessage standardMessage) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
return getItemValue(standardMessage, INSTANCE_ID);
} else {
return "";
}
}
@Override
public void setInstCode(StandardMessage standardMessage, String instCode) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
setItemValue(standardMessage, INSTANCE_ID, instCode);
}
}
@Override
public String getSessionId(StandardMessage standardMessage) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
return getItemValue(standardMessage, SESSION_ID);
} else {
return "";
}
}
@Override
public void setSessionId(StandardMessage standardMessage, String sessionId) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
setItemValue(standardMessage, SESSION_ID, sessionId);
}
}
/*
* 엔진 에서는 public static final String RESPONSE_TYPE_CODE_N = "0";//정상(normal)
* public static final String RESPONSE_TYPE_CODE_E = "1";//오류(error)
*/
@Override
public void setResponseType(StandardMessage standardMessage, String responseType) {
if (responseType != null && (STDMessageKeys.RESPONSE_TYPE_CODE_N.equals(responseType)
|| STDMessageKeys.RESPONSE_TYPE_CODE_E.equals(responseType))) {
if (STDMessageKeys.RESPONSE_TYPE_CODE_N.equals(responseType)) {
setItemValue(standardMessage, getPath(RESPONSE_TYPE), "NR");
} else {
setItemValue(standardMessage, getPath(RESPONSE_TYPE), "ER");
}
} else {
setItemValue(standardMessage, getPath(RESPONSE_TYPE), responseType);
}
}
@Override
public String getInterfaceId(StandardMessage standardMessage) {
String interfaceId = getItemValue(standardMessage, getPath(INTERFACE_ID));
if (interfaceId == null)
return "";
interfaceId = interfaceId.trim();
return interfaceId;
}
@Override
public String getReqSysCode(StandardMessage standardMessage) {
// apiPath의 값에서 추출할 예정 : serviceId = api_path
String apiPath = getItemValue(standardMessage, getPath(SERVICE_ID));
if (apiPath != null) {
String[] split = apiPath.split("/");
if (split.length > 2) {
String route = split[1].toUpperCase();
if (route.length() > 3) {
route = route.substring(0, 3);
}
return route;
}
}
return null;
}
}
@@ -1,50 +0,0 @@
package com.eactive.eai.custom.message;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.service.DefaultInterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
public class InterfaceMapperKBANK extends DefaultInterfaceMapper {
private static final long serialVersionUID = 1L;
//전문작성일시
String ITEM_TLGR_WRTN_DT = "header_part.tlgrWrtnDt";
//전문생성시스템
String ITEM_TLGR_CRTN_SYS_NM = "header_part.tlgrCrtnSysNm";
//전문일련번호
String ITEM_TLGR_SRL_NO = "header_part.tlgrSrlNo";
@Override
public String getInExDivision(StandardMessage standardMessage) {
return "2";
}
@Override
public void setGuid(StandardMessage standardMessage, String guid) {
String tlgrWrtnDt = StringUtils.substring(guid, 0, 14);
String tlgrCrtnSysNm = StringUtils.substring(guid, 14, 22);
String tlgrSrlNo = StringUtils.substring(guid, 22, 30);
setItemValue(standardMessage, ITEM_TLGR_WRTN_DT, tlgrWrtnDt);
setItemValue(standardMessage, ITEM_TLGR_CRTN_SYS_NM, tlgrCrtnSysNm);
setItemValue(standardMessage, ITEM_TLGR_SRL_NO, tlgrSrlNo);
}
@Override
public void setGuidSeq(StandardMessage standardMessage, String guidSeq) {
if(guidSeq.length() == 1) {
guidSeq = "0"+guidSeq;
}
super.setGuidSeq(standardMessage, guidSeq);
}
@Override
public String getGuid(StandardMessage standardMessage) {
String tlgrWrtnDt = getItemValue(standardMessage, ITEM_TLGR_WRTN_DT);
String tlgrCrtnSysNm = getItemValue(standardMessage, ITEM_TLGR_CRTN_SYS_NM);
String tlgrSrlNo = getItemValue(standardMessage, ITEM_TLGR_SRL_NO);
return tlgrWrtnDt+tlgrCrtnSysNm+tlgrSrlNo;
}
}
@@ -1,202 +0,0 @@
package com.eactive.eai.custom.message;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.service.DefaultInterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
@SuppressWarnings("serial")
public class InterfaceMapperKJB extends DefaultInterfaceMapper {
private static String SESSION_ID = "INTERFACE_COMMON.MCI_SESN_ID";
private static String INSTANCE_ID = "INTERFACE_COMMON.MCI_INSTNC_ID";
@Override
public String getEaiSvcCode(StandardMessage standardMessage) {
String eaiSvcCode = null;
String interfaceId = getInterfaceId(standardMessage);
String returnType = getSendRecvDivision(standardMessage); // S | R
String inExDivision = getInExDivision(standardMessage); // 1 | 2
if (interfaceId == null)
interfaceId = "";
interfaceId = interfaceId.trim();
// TODO : site에 맞게 조합해야 함.
eaiSvcCode = interfaceId + returnType + StringUtils.defaultString(inExDivision);
return eaiSvcCode;
}
@Override
public void setGuid(StandardMessage standardMessage, String guid) {
if (guid == null)
throw new RuntimeException("guid is null");
if (guid.length() != 36)
throw new RuntimeException("The length of guid is not 36");
setItemValue(standardMessage, getPath(GUID), guid);
}
@Override
public String getGuid(StandardMessage standardMessage) {
String guid = getItemValue(standardMessage, getPath(GUID));
if (guid.length() == 36) {
guid = guid.substring(0, 33);
}
return guid;
}
@Override
public String getGuidSeq(StandardMessage standardMessage) {
String guidseq = null;
String guid = getItemValue(standardMessage, getPath(GUID));
if (guid.length() == 36) {
guidseq = guid.substring(33);
} else {
guidseq = "000";
}
return guidseq;
}
@Override
public void setGuidSeq(StandardMessage standardMessage, String guidSeq) {
setItemValue(standardMessage, getPath(GUID), getGuid(standardMessage) + guidSeq);
}
@Override
public String getOrgGuid(StandardMessage standardMessage) {
String orgGuid = getItemValue(standardMessage, getPath(GUID));
if (orgGuid.length() == 36) {
orgGuid = orgGuid.substring(0, 33);
}
return orgGuid;
}
@Override
public void setOrgGuid(StandardMessage standardMessage, String orgGuid) {
if (orgGuid.length() == 36) {
orgGuid = orgGuid.substring(0, 33);
}
setItemValue(standardMessage, getPath(GUID_ORG), orgGuid);
}
@Override
public String nextGuidSeq(StandardMessage standardMessage) {
String guidSeq = getGuidSeq(standardMessage);
if (guidSeq == null)
return "";
int seq = 0;
try {
seq = Integer.parseInt(guidSeq) + 1;
} catch (NumberFormatException e) {
seq = 1;
}
guidSeq = StringUtil.stringFormat(Integer.toString(seq), true, '0', 3);
setGuidSeq(standardMessage, guidSeq);
return guidSeq;
}
/**
* 표준전문의 복원은 COMMON.ORTR_RESTR_YN 의 value는 (Y/N) 엔진에서 복원여부 의 value는 (1/0)
*/
@Override
public String getRecoverYn(StandardMessage standardMessage) {
String data = getItemValue(standardMessage, getPath(RECOVER_YN));
if ("Y".equals(data)) {
return "1";
} else {
return "0";
}
}
@Override
public void setRecoverYn(StandardMessage standardMessage, String recoverYn) {
if ("1".equals(recoverYn)) {
setItemValue(standardMessage, getPath(RECOVER_YN), "Y");
} else {
setItemValue(standardMessage, getPath(RECOVER_YN), "N");
}
}
@Override
public String getInstCode(StandardMessage standardMessage) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
return getItemValue(standardMessage, INSTANCE_ID);
} else {
return "";
}
}
@Override
public void setInstCode(StandardMessage standardMessage, String instCode) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
setItemValue(standardMessage, INSTANCE_ID, instCode);
}
}
@Override
public String getSessionId(StandardMessage standardMessage) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
return getItemValue(standardMessage, SESSION_ID);
} else {
return "";
}
}
@Override
public void setSessionId(StandardMessage standardMessage, String sessionId) {
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) {
setItemValue(standardMessage, SESSION_ID, sessionId);
}
}
/*
* 엔진 에서는 public static final String RESPONSE_TYPE_CODE_N = "0";//정상(normal)
* public static final String RESPONSE_TYPE_CODE_E = "1";//오류(error)
*/
@Override
public void setResponseType(StandardMessage standardMessage, String responseType) {
if (responseType != null && (STDMessageKeys.RESPONSE_TYPE_CODE_N.equals(responseType)
|| STDMessageKeys.RESPONSE_TYPE_CODE_E.equals(responseType))) {
if (STDMessageKeys.RESPONSE_TYPE_CODE_N.equals(responseType)) {
setItemValue(standardMessage, getPath(RESPONSE_TYPE), "NR");
} else {
setItemValue(standardMessage, getPath(RESPONSE_TYPE), "ER");
}
} else {
setItemValue(standardMessage, getPath(RESPONSE_TYPE), responseType);
}
}
@Override
public String getInterfaceId(StandardMessage standardMessage) {
String interfaceId = getItemValue(standardMessage, getPath(INTERFACE_ID));
if (interfaceId == null)
return "";
interfaceId = interfaceId.trim();
return interfaceId;
}
@Override
public String getReqSysCode(StandardMessage standardMessage) {
// apiPath의 값에서 추출할 예정 : serviceId = api_path
String apiPath = getItemValue(standardMessage, getPath(SERVICE_ID));
if (apiPath != null) {
String[] split = apiPath.split("/");
if (split.length > 2) {
String route = split[1].toUpperCase();
if (route.length() > 3) {
route = route.substring(0, 3);
}
return route;
}
}
return null;
}
}
@@ -1,21 +0,0 @@
package com.eactive.eai.custom.message;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.service.DefaultInterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
@SuppressWarnings("serial")
public class InterfaceMapperSBI extends DefaultInterfaceMapper {
@Override
public String getSendRecvDivision(StandardMessage standardMessage) {
String sendRecvDivision = super.getSendRecvDivision(standardMessage);
if (StringUtils.equals(sendRecvDivision, "Q")) {
return STDMessageKeys.SEND_RECV_CD_SEND;
} else {
return sendRecvDivision;
}
}
}
@@ -1,419 +0,0 @@
package com.eactive.eai.custom.message;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey;
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey;
import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.message.EAIMessage;
import com.eactive.eai.common.property.PropManager;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.common.util.MessageUtil;
import com.eactive.eai.custom.stderrorcode.ChannelErrorCodeManager;
import com.eactive.eai.custom.stderrorcode.ChannelErrorCodeVO;
import com.eactive.eai.custom.stderrorcode.StdErrorCodeManager;
import com.eactive.eai.custom.stderrorcode.StdErrorCodeVO;
import com.eactive.eai.inbound.error.InboundErrorKeys;
import com.eactive.eai.inbound.processor.ProcessVO;
import com.eactive.eai.message.StandardItem;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.manager.StandardMessageManager;
import com.eactive.eai.message.service.DefaultStandardMessageCoordinator;
import com.eactive.eai.message.service.InterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageErrorKeys;
import com.ext.eai.common.stdmessage.STDMessageKeys;
public class StandardMessageCoordinatorKAKAOCARD extends DefaultStandardMessageCoordinator {
static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
//private static int defaultTimeout = 30;
private static String GW_SESSION_ID = "INTERFACE_COMMON.GTWY_SESN_ID";
private static String GW_INSTANCE_ID = "INTERFACE_COMMON.GTWY_INSTNC_ID";
private static String MESSAGE_OUT_ATRB_CD = "MESSAGE.OUT_ATRB_CD";//출력속성코드
private static String MESSAGE_OUT_MSG_DESC = "MESSAGE.OUT_MSG_DESC";//출력메시지설명
private static String COMMON_OUT_FMSG_DSTCD = "COMMON.OUT_FMSG_DSTCD";//출력전문구별코드
private static String MESSAGE = "MESSAGE";//메시지부
@Override
public void coordinateAfterParsing(StandardMessage standardMessage, Object paramObject, Properties prop) {
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
//표준에서 들어올때 표준전문의 값을 header에 셋팅
//표준전문 to prop
if (EAIServerManager.getInstance().isFEP()) {
StandardItem gwSesnId = standardMessage.findItem(GW_SESSION_ID);//transactionId
StandardItem gwNodeNo = standardMessage.findItem(GW_INSTANCE_ID);//instanceId
if (gwSesnId != null && gwNodeNo != null && StringUtils.isNotBlank(gwSesnId.getValue()) && StringUtils.isNotBlank(gwNodeNo.getValue())) {
prop.put(HttpClientAdapterServiceKey.TRANSACTION_ID, gwSesnId.getValue());
prop.put(HttpClientAdapterServiceKey.INSTANCE_ID, gwNodeNo.getValue());
}
}
// REST용 전달값 중 api_path 이후의 값을 표준전문 API_PATH에 셋팅
String adapterApiPath = prop.getProperty(HttpAdapterServiceKey.API_PATH);
if (StringUtils.isNotBlank(adapterApiPath)) {
String adapterExtUri = prop.getProperty(HttpAdapterServiceKey.INBOUND_EXTURI);
/*
* apiPath 나머지를 추출하기 위해서
* 예) 어댑터에 설정되어 있는 API_PATH = /api/cts
* 어댑터에 들어온 INBOUND_EXTURI = /api/cts/cmb/api/user/custom
* 표준전문에 셋팅하고 싶은값 /cmb/api/user/custom
*/
String standardApiPath = adapterExtUri.replaceAll(adapterApiPath, "");
if (!standardApiPath.startsWith("/")) {
standardApiPath = standardApiPath + "/";
}
if (standardApiPath.length() > 1) {
mapper.setServiceId(standardMessage,standardApiPath);
}
}
//아래로직은 표준전문에서 요청일때 MESSAGE부가 안보이고 응답일때 MESSAGE부 보이게 설정
String sendRecvDivision = mapper.getSendRecvDivision(standardMessage);
StandardItem msg = standardMessage.findItem(MESSAGE);
if (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_SEND)) {
msg.setHidden(true);
}
if (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_RECV)) {
msg.setHidden(false);
}
//mci이고 요청 거래시에 설정 인스턴스ID설정
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI() && (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_SEND))) {
//인스턴스ID설정
String instCode = mapper.getInstCode(standardMessage);
String localServer = server.getLocalServerName();
if (instCode != null && localServer != null) {
mapper.setInstCode(standardMessage, localServer);
}
//타임아웃값이 없을경우 default값 설정
String timeout = mapper.getTimeout(standardMessage);
int defaultTimeout = getDefaultTimeout();
if (StringUtils.isBlank(timeout)) {
mapper.setTimeout(standardMessage, Integer.toString(defaultTimeout));
}else {
try {
Integer.parseInt(timeout);
}catch(Exception e) {
mapper.setTimeout(standardMessage, Integer.toString(defaultTimeout));
}
}
}
//TODO 표준전문 메시지 설정해야됨
//표준전문에 메시지 부에 값이 있을경우 처리
if (!msg.isHidden()) {
String errmsg = mapper.getErrorMsg(standardMessage);
if (StringUtils.isBlank(errmsg)) {
String errCode = mapper.getErrorCode(standardMessage);
if (StringUtils.isNotBlank(errCode)) {
StdErrorCodeManager manager = StdErrorCodeManager.getInstance();
StdErrorCodeVO vo = manager.getSTDErrorCode(errCode);
if (vo != null) {
mapper.setErrorMsg(standardMessage, vo.getErrMsg());
if (server != null && server.isMCI()) {
String type = mapper.getChannelDetailCd(standardMessage);
//채널오류코드 셋팅
ChannelErrorCodeManager cmanager = ChannelErrorCodeManager.getInstance();
ChannelErrorCodeVO cvo = cmanager.getChannelErrorCode(errCode+"_"+type);
if (cvo != null) {
mapper.setErrorMsg(standardMessage, cvo.getErrMsg());
}
}
}
}
}
}
}
@Override
//비표준처리
public void coordinateAfterCreateMessageByRule(StandardMessage standardMessage, Object paramObject, Properties prop) {
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
//비표준에서 들어올때 header값을 표준전문에 셋팅
//prop to 표준전문
if (EAIServerManager.getInstance().isFEP()) {
String trandactionId = prop.getProperty(HttpClientAdapterServiceKey.TRANSACTION_ID);
String instanceId = prop.getProperty(HttpClientAdapterServiceKey.INSTANCE_ID);
if (StringUtils.isNotBlank(trandactionId) && StringUtils.isNotBlank(instanceId)) {
StandardItem gwSesnId = standardMessage.findItem(GW_SESSION_ID);//transactionId
if (gwSesnId != null) {
gwSesnId.setValue(trandactionId);
}
StandardItem gwNodeNo = standardMessage.findItem(GW_INSTANCE_ID);//instanceId
if (gwNodeNo != null) {
gwNodeNo.setValue(instanceId);
}
}
}
EAIServerManager eaiServerManager = EAIServerManager.getInstance();
//HEADER.GUID설정
mapper.setGuid(standardMessage,GUIDGeneratorKAKAOCARD.getGUID(eaiServerManager.getSystemType()));
//HEADER.FMSG_REQ_RES_DSTCD 전문요청응답구별코드 : 표준전문값
//HEADER.FRST_TRNM_IPAD 최초전송IP주소
mapper.setFirstReqIp(standardMessage, "0.0.0.0");
//HEADER.GNRZ_TMOT_TM 총괄타임아웃시간
mapper.setTimeout(standardMessage, "180");
// HEADER.SYS_ENV_DSTCD 시스템운영환경구분코드
String operationEnv = mapper.getOperationEnv(standardMessage);
if (operationEnv != null && StringUtils.isBlank(operationEnv)) {
mapper.setOperationEnv(standardMessage, getSysOprtEnvDvcd(eaiServerManager));
}
// HEADER.CARD_TX_TYP_DSTCD 거래유형구별코드
StandardItem cardTxTypDstcd = standardMessage.findItem("HEADER.CARD_TX_TYP_DSTCD");
if (cardTxTypDstcd != null ) {
cardTxTypDstcd.setValue("O");
}
//COMMON.GROUP_CMP_CD 그룹회사코드
StandardItem groupCmpCd = standardMessage.findItem("COMMON.GROUP_CMP_CD");
if (groupCmpCd != null ) {
groupCmpCd.setValue("090");
}
//COMMON.TX_BRCD 거래부점코드
StandardItem txBrcd = standardMessage.findItem("COMMON.TX_BRCD");
if (txBrcd != null ) {
txBrcd.setValue("0000");
}
//COMMON.RLTR_BRCD 실거래부점코드
StandardItem rltrBrcd = standardMessage.findItem("COMMON.RLTR_BRCD");
if (rltrBrcd != null ) {
rltrBrcd.setValue("0000");
}
//COMMON.TLRNO 텔러번호
StandardItem tlrno = standardMessage.findItem("COMMON.TLRNO");
if (tlrno != null ) {
tlrno.setValue("000000");
}
//COMMON.TX_DT 거래일자
StandardItem txDt = standardMessage.findItem("COMMON.TX_DT");
if (txDt != null ) {
txDt.setValue(DatetimeUtil.getFormattedDate("yyyyMMdd"));
}
//COMMON.TX_TM 거래시간
StandardItem txTm = standardMessage.findItem("COMMON.TX_TM");
if (txTm != null ) {
txTm.setValue(DatetimeUtil.getFormattedDate("HHmmssSSS"));
}
//아래로직은 표준전문에서 요청일때 MESSAGE부가 안보이고 응답일때 MESSAGE부 보이게 설정
String sendRecvDivision = mapper.getSendRecvDivision(standardMessage);
StandardItem msg = standardMessage.findItem(MESSAGE);
if (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_SEND)) {
msg.setHidden(true);
}
if (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_RECV)) {
msg.setHidden(false);
}
//TODO 표준전문 메시지 설정해야됨
//응답일경우 MESSAGE부에 정상 메시지 헤더를 설정하기 위해서
if (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_RECV)) {
StandardItem outputAtrbCd = standardMessage.findItem(MESSAGE_OUT_ATRB_CD);//출력속성코드
outputAtrbCd.setValue("1");
mapper.setErrorCode(standardMessage, STDMessageErrorKeys.SUCCESS_CODE_VALUE);
mapper.setErrorMsg(standardMessage, STDMessageErrorKeys.SUCCESS_MSG_VALUE);
mapper.setResponseType(standardMessage, STDMessageKeys.RESPONSE_TYPE_CODE_N);
}
}
@Override
public void coordinateInReturnObject(StandardMessage standardMessage) {
//아래로직은 표준전문에서 응답일때 MESSAGE부가 보이게 하기위해서
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
mapper.setSendRecvDivision(standardMessage, STDMessageKeys.SEND_RECV_CD_RECV);
StandardItem msg = standardMessage.findItem(MESSAGE);
msg.setHidden(false);
}
public String getSysOprtEnvDvcd(EAIServerManager eaiServerManager) {
String result = "";
if (eaiServerManager.isPEAIServer()) { // 운영
result = "R";
} else if (eaiServerManager.isDEAIServer()) { // 개발
result = "D";
} else if (eaiServerManager.isSEAIServer()) { // 테스트/검증
result = "T";
}
return result;
}
@Override
public void coordinateBeforeInboundErrorResponse(StandardMessage standardMessage) {
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
mapper.setSendRecvDivision(standardMessage, STDMessageKeys.SEND_RECV_CD_RECV);
StandardItem msg = standardMessage.findItem(MESSAGE);
msg.setHidden(false);
}
@Override
public boolean coordinateSetStandardMessageError(StandardMessage standardMessage, InterfaceMapper mapper,
String errCode, String errMsg) {
String siteErrCode = null;
String siteErrMessage = null;
if(errCode != null) {
siteErrCode = MessageUtil.getTobeCode(errCode);
siteErrMessage = MessageUtil.getTobeMessage(errCode);
}
String sendRecvDivision = mapper.getSendRecvDivision(standardMessage);
if (StringUtils.equals(sendRecvDivision, STDMessageKeys.SEND_RECV_CD_RECV)) {
StandardItem msg = standardMessage.findItem(MESSAGE);
msg.setHidden(false);
}
StandardItem outputAtrbCd = standardMessage.findItem(MESSAGE_OUT_ATRB_CD);//출력속성코드
outputAtrbCd.setValue("1");
if (siteErrCode != null) {
mapper.setErrorCode(standardMessage, siteErrCode);
}else if (errCode != null) {
mapper.setErrorCode(standardMessage, errCode);
}
if (siteErrMessage != null) {
mapper.setErrorMsg(standardMessage, siteErrMessage);
}else if (errMsg != null){
mapper.setErrorMsg(standardMessage, errMsg);
}
StandardItem outputMsgDesc = standardMessage.findItem(MESSAGE_OUT_MSG_DESC);//출력메시지설명
if (errMsg != null){
outputMsgDesc.setValue(errMsg);
}
mapper.setResponseType(standardMessage, STDMessageKeys.RESPONSE_TYPE_CODE_E);
return false;
}
@Override
//복원시
public void coordinateAfterRestored(StandardMessage dbMessage, StandardMessage responseMessage) {
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
String interfaceId = mapper.getInterfaceId(responseMessage);
mapper.setInterfaceId(dbMessage, interfaceId);
String sendRecvDivision = mapper.getSendRecvDivision(responseMessage);
mapper.setSendRecvDivision(dbMessage, sendRecvDivision);
String inExDivision = mapper.getInExDivision(responseMessage);
mapper.setInExDivision(dbMessage, inExDivision);
String recoverYn = mapper.getRecoverYn(responseMessage);
mapper.setRecoverYn(dbMessage, recoverYn);
//복원시 처리결과수신 서비스코드를 서비스코드에 셋팅한다.
//처리결과수신값이 없을경우 원거래 서비스ID를 셋팅한다.
String returnServiceId = mapper.getReturnServiceId(dbMessage);
if (StringUtils.isBlank(returnServiceId)){
returnServiceId = mapper.getServiceId(dbMessage);
}
mapper.setServiceId(dbMessage, returnServiceId);
//표준전문 메시지 관련 설정
String dbSendRecvDivision = mapper.getSendRecvDivision(dbMessage);
StandardItem msg = dbMessage.findItem(MESSAGE);
if ( StringUtils.equals(dbSendRecvDivision, STDMessageKeys.SEND_RECV_CD_SEND)) {
msg.setHidden(true);
}
if (StringUtils.equals(dbSendRecvDivision, STDMessageKeys.SEND_RECV_CD_RECV)) {
msg.setHidden(false);
}
//응답일경우 MESSAGE부 정상설정
if (StringUtils.equals(dbSendRecvDivision, STDMessageKeys.SEND_RECV_CD_RECV)) {
StandardItem outputAtrbCd = dbMessage.findItem(MESSAGE_OUT_ATRB_CD);//출력속성코드
outputAtrbCd.setValue("1");
mapper.setErrorCode(dbMessage, STDMessageErrorKeys.SUCCESS_CODE_VALUE);//출력메시지코드
mapper.setErrorMsg(dbMessage, STDMessageErrorKeys.SUCCESS_MSG_VALUE);//출력메시지내용
mapper.setResponseType(dbMessage, STDMessageKeys.RESPONSE_TYPE_CODE_N);
}
}
@Override
public boolean coordinateIsWaitCheckForSync(StandardMessage responseMessage) {
StandardItem outputMesgTycd = responseMessage.findItem(COMMON_OUT_FMSG_DSTCD);
if (outputMesgTycd != null && StringUtils.equals(outputMesgTycd.getValue(), "9")) {
return true;
}
return false;
}
@Override
public int coordinateForTimeoutCodeToValue(EAIMessage eaiMessage) {
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
EAIServerManager server = EAIServerManager.getInstance();
if (server != null && server.isMCI()) { //MCI 일경우 처리
StandardMessage standardMessage = eaiMessage.getStandardMessage();
String timeout = mapper.getTimeout(standardMessage);
int defaultTimeout = getDefaultTimeout();
if (StringUtils.isBlank(timeout)) {
return defaultTimeout;
}else {
try {
return Integer.parseInt(timeout);
}catch(Exception e) {
return defaultTimeout;
}
}
}else { //MCI 이외일 경우 처리 (인터페이스에 있는 타임아웃기준)
return eaiMessage.getCurrentSvcMsg().getTmoVl();
}
}
private int getDefaultTimeout() {
PropManager manager = PropManager.getInstance();
int defaultTimeout = 30;
try {
String sdefaultTimeout = manager.getProperty("KAKAO_CARD", "DEFAULT_TIMEOUT", Integer.toString(defaultTimeout));
defaultTimeout = Integer.parseInt(sdefaultTimeout);
}catch(Exception e) {
}
return defaultTimeout;
}
@Override
public boolean coordinateValidation(StandardMessage standardMessage, ProcessVO vo) {
// RECEAIIRP110 인터페이스 ({1}) 에 표준전문 항목 ({2}) 의 값이 없습니다.
// RECEAIIRP120 인터페이스 ({1}) 에 표준전문 항목 ({2}) 의 값을 확인하세요.
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
String interfaceId = mapper.getInterfaceId(standardMessage);
String guid = mapper.getGuid(standardMessage);
if (StringUtils.isBlank(guid)) {
vo.setRspErrorCode("RECEAIIRP110");
vo.setRspErrorMsg(ExceptionUtil.make(vo.getRspErrorCode(), new String[] { interfaceId, "GUID" }));
vo.setErrTypeCode(InboundErrorKeys.IN_ERROR);
return false;
}
String guidSeq = mapper.getGuidSeq(standardMessage);
if (StringUtils.isBlank(guidSeq)) {
vo.setRspErrorCode("RECEAIIRP110");
vo.setRspErrorMsg(ExceptionUtil.make(vo.getRspErrorCode(), new String[] { interfaceId, "GUID" }));
vo.setErrTypeCode(InboundErrorKeys.IN_ERROR);
return false;
}
if (guid.length() + guidSeq.length() != 36) {
vo.setRspErrorCode("RECEAIIRP120");
vo.setRspErrorMsg(ExceptionUtil.make(vo.getRspErrorCode(), new String[] { interfaceId, "GUID" }));
vo.setErrTypeCode(InboundErrorKeys.IN_ERROR);
return false;
}
return true;
}
}
@@ -1,90 +0,0 @@
package com.eactive.eai.custom.message;
import java.util.Properties;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.server.Keys;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.MessageUtil;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.message.StandardItem;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.manager.StandardMessageManager;
import com.eactive.eai.message.service.DefaultStandardMessageCoordinator;
import com.eactive.eai.message.service.InterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
public class StandardMessageCoordinatorKBANK extends DefaultStandardMessageCoordinator {
private static final String MESSAGE_PART_SUB_MSG_GOUP = "message_part.subMsgGoup";
private static final String MESSAGE_PART_MSG_TYPE = "message_part.msgType";
private static final String MESSAGE_PART = "message_part";
@Override
public void coordinateAfterParsing(StandardMessage standardMessage, Object paramObject, Properties prop) {
}
@Override
public void coordinateAfterCreateMessageByRule(StandardMessage standardMessage, Object paramObject, Properties prop) {
// guid 설정
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
String guid = GUIDGeneratorKBANK.makeGUID();
mapper.setGuid(standardMessage, guid);
String orgGuid = guid + mapper.getGuidSeq(standardMessage);
mapper.setOrgGuid(standardMessage, orgGuid);
mapper.setOperationEnv(standardMessage, System.getProperty(Keys.EAI_SYSTEMMODE));
mapper.setFirstReqIp(standardMessage, EAIServerManager.getInstance().getServerIp());
}
@Override
public boolean coordinateSetStandardMessageError(StandardMessage standardMessage, InterfaceMapper mapper,
String errCode, String errMsg) {
mapper.setResponseType(standardMessage, STDMessageKeys.RESPONSE_TYPE_CODE_E);
StandardItem messagePart = standardMessage.findItem(MESSAGE_PART);
messagePart.setHidden(false);
messagePart.setSize(1);
StandardItem messageType = standardMessage.findItem(MESSAGE_PART_MSG_TYPE);
messageType.setValue("99");
StandardItem subMsgGoup = standardMessage.findItem(MESSAGE_PART_SUB_MSG_GOUP);
subMsgGoup.getList().clear();
subMsgGoup.setRefValue("0");
if(errCode != null) {
String siteErrCode = MessageUtil.getTobeCode(errCode);
String siteErrMessage;
switch(errCode) {
case("RECEAIIRP070"):
siteErrMessage = "거래 통제 되었습니다.";
break;
default:
siteErrMessage = MessageUtil.getTobeMessage(errCode); break;
}
mapper.setErrorCode(standardMessage, siteErrCode);
mapper.setErrorMsg(standardMessage, siteErrMessage);
}
return false;
}
@Override
public void coordinateAfterRecvNonStdSyncResponse(StandardMessage responseMessage) {
StandardItem messagePart = responseMessage.findItem(MESSAGE_PART);
messagePart.setHidden(false);
messagePart.setSize(1);
StandardItem subMsgGoup = responseMessage.findItem(MESSAGE_PART_SUB_MSG_GOUP);
subMsgGoup.getList().clear();
subMsgGoup.setRefValue("0");
}
}
@@ -1,199 +0,0 @@
package com.eactive.eai.custom.message;
import com.eactive.eai.adapter.AdapterGroupVO;
import com.eactive.eai.adapter.AdapterManager;
import com.eactive.eai.common.dao.Keys;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.common.util.MessageUtil;
import com.eactive.eai.common.util.StringUtil;
import com.eactive.eai.inbound.processor.ProcessVO;
import com.eactive.eai.inbound.processor.Processor;
import com.eactive.eai.message.StandardItem;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.manager.StandardMessageManager;
import com.eactive.eai.message.service.DefaultStandardMessageCoordinator;
import com.eactive.eai.message.service.InterfaceMapper;
import com.ext.eai.common.stdmessage.STDMessageKeys;
import org.apache.commons.lang.StringUtils;
import java.net.UnknownHostException;
import java.util.LinkedHashMap;
import java.util.Properties;
public class StandardMessageCoordinatorKJB extends DefaultStandardMessageCoordinator {
private static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
private static final String MESSAGE_PART = "Message";
private static final String MESSAGE_PART_HEADER_PART = "Message.Msg_Header";
private static final String MESSAGE_PART_MSG_HEDR_KNCD = "Message.Msg_Header.MSG_HEDR_KNCD";
private static final String MESSAGE_PART_MSG_HEDR_LEN = "Message.Msg_Header.MSG_HEDR_LEN";
private static final String MESSAGE_PART_BODY_PART = "Message.Msg_Body";
private static final String MESSAGE_PART_OUTPUT_MSG_CD = "Message.Msg_Body.OUTPUT_MSG_CD";
private static final String MESSAGE_PART_OUTPUT_MSG_CTNT = "Message.Msg_Body.OUTPUT_MSG_CTNT";
private static final String MESSAGE_PART_OUTPUT_MSG_GRID = "Message.Msg_Body.Output_Msg_Grid";
private static final String COMMON_PART_GROUP_CMD_CD = "Common.Service_info.GROUP_CMP_CD";
private static final String COMMON_PART_OTSD_CHNL_INST_CD = "Common.Service_info.OTSD_CHNL_INST_CD";
private static final String DATA_HEADER_DATA_HEDR_LEN = "Data_Part.Data_Header.DATA_HEDR_LEN";
@Override
public void coordinateAfterParsing(StandardMessage standardMessage, Object paramObject, Properties prop) {
super.coordinateAfterParsing(standardMessage, paramObject, prop);
}
@Override
public void coordinateBeforeStandardMessageSend(StandardMessage standardMessage, String msgType, String charset) {
makeupDataHeaderLength(standardMessage, charset);
}
@Override
public void coordinateBeforeResponse(StandardMessage standardMessage, ProcessVO processVO, Properties prop, String charset) {
makeupDataHeaderLength(standardMessage, charset);
}
@Override
public void coordinateAfterCreateMessageByRule(StandardMessage standardMessage, Object paramObject, Properties prop) {
// guid 설정
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
//GUID 설정
String groupCmdCd = standardMessage.findItemValue(COMMON_PART_GROUP_CMD_CD);
String guid = GUIDGeneratorKJB.getGUID(groupCmdCd);
mapper.setGuid(standardMessage, guid);
StandardItem dataHeaderEtc = standardMessage.findItem("Data_Part.Data_Header_Etc");
dataHeaderEtc.setHidden(true);
//기관코드, 텔러번호 설정
//Adapter에 셋팅된 기관코드를 셋팅한다.
String adapterGroupName = prop.getProperty(Processor.ADAPTER_GROUP_NAME);
AdapterManager adapterManager = AdapterManager.getInstance();
AdapterGroupVO adptGrpVO = adapterManager.getAdapterGroupVO(adapterGroupName);
// Adapter의 기관코드를 얻어온다.
//TODO: 기관코드의 경우 현재 EAPIM 시스템에 컬럼은 있으나 설정을 사용하지 않고있으므로 불필요 할 경우 사용하지 않는다, 필요 할 경우 추가한다.
String inAdapterOsidInstiNo = adptGrpVO.getOsidInstiNo();
if(inAdapterOsidInstiNo != null && inAdapterOsidInstiNo.trim().length() > 0) {
standardMessage.setData(COMMON_PART_OTSD_CHNL_INST_CD, inAdapterOsidInstiNo);
if (logger.isDebug()) {
logger.debug("FIELD SET " + COMMON_PART_OTSD_CHNL_INST_CD + " << "+inAdapterOsidInstiNo);
}
}
//2012-12-17 나영채 차장 타발요청에만 셋팅해달라고 요청
//전문요청일자
standardMessage.setData("Common.BizProc_Info.MESG_DMAN_DT", DatetimeUtil.getCurrentDate());
//전문요청시간
standardMessage.setData("Common.BizProc_Info.MESG_DMAN_TKTM", DatetimeUtil.getFormattedDate("HHmmssSSS"));
//2012-07-24 임의 로 영업일자에 system시간 설정
standardMessage.setData("Common.BizProc_Info.BZOP_DT", DatetimeUtil.getCurrentDate());
EAIServerManager eaiServerManager = EAIServerManager.getInstance();
//비표준일경우 시스템 운영환경 구분코드를 셋팅한다.
standardMessage.setData("Common.Service_info.SYS_OPRT_ENV_DVCD", getSysOprtEnvDvcd(eaiServerManager));
//헤더부 최초전송IP주소 FRST_TRNM_IPAD
try {
standardMessage.setData("Header.Src_System.FRST_TRNM_IPAD", java.net.InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException e) {
}
}
@Override
public boolean coordinateSetStandardMessageError(StandardMessage standardMessage, InterfaceMapper mapper,
String errCode, String errMsg) {
mapper.setResponseType(standardMessage, STDMessageKeys.RESPONSE_TYPE_CODE_E);
mapper.setSendRecvDivision(standardMessage, STDMessageKeys.SEND_RECV_CD_RECV);
StandardItem messagePart = standardMessage.findItem(MESSAGE_PART);
messagePart.setHidden(false);
messagePart.setSize(1);
StandardItem messageHeaderPart = standardMessage.findItem(MESSAGE_PART_HEADER_PART);
messageHeaderPart.setSize(1);
StandardItem messageBodyPart = standardMessage.findItem(MESSAGE_PART_BODY_PART);
messageBodyPart.setSize(1);
errCode = StringUtils.defaultString(errCode);
String siteErrCode = MessageUtil.getTobeCode(errCode);
String siteErrMessage;
switch(errCode) {
case("RECEAIIRP070"):
siteErrMessage = "거래 통제 되었습니다.";
break;
default:
siteErrMessage = MessageUtil.getTobeMessage(errCode);
break;
}
mapper.setErrorCode(standardMessage, siteErrCode);
standardMessage.setData(MESSAGE_PART_MSG_HEDR_KNCD, "EM");
standardMessage.setData(MESSAGE_PART_OUTPUT_MSG_CD, siteErrCode);
StandardItem msgGrid = standardMessage.findItem(MESSAGE_PART_OUTPUT_MSG_GRID);
LinkedHashMap<String, StandardItem> msgGridFirstChilds = msgGrid.getArrayChilds(0, true);
msgGridFirstChilds.get("OUTPUT_MSG_CD").setValue(siteErrCode);
msgGridFirstChilds.get("OUTPUT_MSG_CTNT").setValue(siteErrMessage);
//Message.Msg_Body.OUTPUT_MSG_CTNT
mapper.setErrorMsg(standardMessage, siteErrMessage);
int len = standardMessage.getBytesDataLengthForPath(MESSAGE_PART_BODY_PART);
String lenStr = StringUtils.leftPad(String.valueOf(len), 8, '0');
standardMessage.setData(MESSAGE_PART_MSG_HEDR_LEN, lenStr);
return false;
}
@Override
public void coordinateAfterRecvNonStdSyncResponse(StandardMessage responseMessage) {
StandardItem messagePart = responseMessage.findItem(MESSAGE_PART);
messagePart.setHidden(false);
messagePart.setSize(1);
StandardItem messageHeaderPart = responseMessage.findItem(MESSAGE_PART_HEADER_PART);
messageHeaderPart.setSize(1);
StandardItem messageBodyPart = responseMessage.findItem(MESSAGE_PART_BODY_PART);
messageBodyPart.setSize(1);
responseMessage.setData(MESSAGE_PART_MSG_HEDR_KNCD, "NM");
responseMessage.setData(MESSAGE_PART_OUTPUT_MSG_CD, "100000 ");
responseMessage.setData(MESSAGE_PART_OUTPUT_MSG_CTNT, "정상처리");
StandardItem msgGrid = responseMessage.findItem(MESSAGE_PART_OUTPUT_MSG_GRID);
LinkedHashMap<String, StandardItem> msgGridFirstChilds = msgGrid.getArrayChilds(0, true);
msgGridFirstChilds.get("OUTPUT_MSG_CD").setValue("100000 ");
msgGridFirstChilds.get("OUTPUT_MSG_CTNT").setValue("정상처리");
int len = responseMessage.getBytesDataLengthForPath(MESSAGE_PART_BODY_PART);
String lenStr = StringUtils.leftPad(String.valueOf(len), 8, '0');
responseMessage.setData(MESSAGE_PART_MSG_HEDR_LEN, lenStr);
}
public String getSysOprtEnvDvcd(EAIServerManager eaiServerManager) {
String result = "";
if (eaiServerManager.isPEAIServer()){ //운영
result = STDMessageKeys.SYS_OPRT_ENV_DVCD_ONLINE;
}else if (eaiServerManager.isDEAIServer()){ //개발
result = STDMessageKeys.SYS_OPRT_ENV_DVCD_DEV;
}else if (eaiServerManager.isSEAIServer()){ //테스트/검증
result = STDMessageKeys.SYS_OPRT_ENV_DVCD_TESTSTAGE;
}
return result;
}
private static void makeupDataHeaderLength(StandardMessage standardMessage, String charset) {
String dataBytesLengthStr = null;
try {
dataBytesLengthStr = String.valueOf(standardMessage.getBizDataBytes(charset).length);
String dataHeaderLength = StringUtils.leftPad(dataBytesLengthStr, 8, '0');
standardMessage.setData(DATA_HEADER_DATA_HEDR_LEN, dataHeaderLength);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
@@ -1,142 +0,0 @@
package com.eactive.eai.custom.message;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.inbound.processor.ProcessVO;
import com.eactive.eai.message.StandardItem;
import com.eactive.eai.message.StandardMessage;
import com.eactive.eai.message.manager.StandardMessageManager;
import com.eactive.eai.message.service.DefaultStandardMessageCoordinator;
import com.eactive.eai.message.service.InterfaceMapper;
import com.eactive.eai.message.service.StandardMessageCoordinator;
public class StandardMessageCoordinatorSBI extends DefaultStandardMessageCoordinator {
static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
@Override
public void coordinateAfterCreateMessageByRule(StandardMessage message, Object paramObject, Properties prop) {
// STD_HEADER.mesgDvcd 설정
StandardItem mesgDvcdItem = message.findItem("STD_HEADER.mesgDvcd");
if (mesgDvcdItem != null && StringUtils.equals(mesgDvcdItem.getValue(), "S")) {
mesgDvcdItem.setValue("Q");
}
// STD_HEADER.mesgKind 설정
StandardItem mesgKindItem = message.findItem("STD_HEADER.mesgKind");
if (mesgKindItem != null && StringUtils.isBlank(mesgKindItem.getValue())) {
mesgKindItem.setValue("3"); // 3:데이터 4:시스템
}
// STD_HEADER.envDvcd 설정
StandardItem envDvcdItem = message.findItem("STD_HEADER.envDvcd");
EAIServerManager eaiServerManager = EAIServerManager.getInstance();
if (envDvcdItem != null && StringUtils.isBlank(envDvcdItem.getValue())) {
envDvcdItem.setValue(getSysOprtEnvDvcd(eaiServerManager));
}
// guid 설정
StandardMessageManager standardManager = StandardMessageManager.getInstance();
InterfaceMapper mapper = standardManager.getMapper();
mapper.setGuid(message,
GUIDGeneratorSBI.getGUID(getSysOprtEnvDvcd(eaiServerManager), eaiServerManager.getSystemType()));
// STD_HEADER.frstTrnmChnlCd 설정
StandardItem frstTrnmChnlCdItem = message.findItem("STD_HEADER.frstTrnmChnlCd");
if (frstTrnmChnlCdItem != null && StringUtils.isBlank(frstTrnmChnlCdItem.getValue())) {
frstTrnmChnlCdItem.setValue(eaiServerManager.getSystemType());
}
// STD_HEADER.trnmChnlCd 설정
StandardItem trnmChnlCdItem = message.findItem("STD_HEADER.trnmChnlCd");
if (trnmChnlCdItem != null && StringUtils.isBlank(trnmChnlCdItem.getValue())) {
trnmChnlCdItem.setValue(eaiServerManager.getSystemType());
}
// STD_HEADER.userNo 설정
StandardItem userNoItem = message.findItem("STD_HEADER.userNo");
if (userNoItem != null && StringUtils.isBlank(userNoItem.getValue())) {
ProcessVO processVo = (ProcessVO) paramObject;
if (StringUtils.isNotBlank(processVo.getInAdapterUserEmpid())) {
userNoItem.setValue(eaiServerManager.getSystemType());
}
}
// STD_HEADER.mesgDmndDttm 설정
StandardItem mesgDmndDttmItem = message.findItem("STD_HEADER.mesgDmndDttm");
if (mesgDmndDttmItem != null && StringUtils.isBlank(mesgDmndDttmItem.getValue())) {
mesgDmndDttmItem.setValue(DatetimeUtil.getCurrentTimeMillis());
}
// STD_HEADER.ipAd 설정
StandardItem ipAdItem = message.findItem("STD_HEADER.ipAd");
if (ipAdItem != null && StringUtils.isBlank(ipAdItem.getValue())) {
try {
ipAdItem.setValue(InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException e) {
logger.error(e.getMessage());
}
}
// STD_HEADER.mesgTycd 설정
StandardItem mesgTycdItem = message.findItem("STD_HEADER.mesgTycd");
if (mesgTycdItem != null && StringUtils.isBlank(mesgTycdItem.getValue())) {
mesgTycdItem.setValue("1");
}
// STD_HEADER.mesgCntySrno 설정
StandardItem mesgCntySrnoItem = message.findItem("STD_HEADER.mesgCntySrno");
if (mesgCntySrnoItem != null && StringUtils.isBlank(mesgCntySrnoItem.getValue())) {
mesgCntySrnoItem.setValue("00");
}
// STD_HEADER.bfrDtLoinYn 설정
StandardItem bfrDtLoinYnItem = message.findItem("STD_HEADER.bfrDtLoinYn");
if (bfrDtLoinYnItem != null && StringUtils.isBlank(bfrDtLoinYnItem.getValue())) {
bfrDtLoinYnItem.setValue("N");
}
// STD_HEADER.canCrctDvcd 설정
StandardItem canCrctDvcdItem = message.findItem("STD_HEADER.canCrctDvcd");
if (canCrctDvcdItem != null && StringUtils.isBlank(canCrctDvcdItem.getValue())) {
canCrctDvcdItem.setValue("0");
}
// STD_HEADER.cmpgRelmUseDvcd 설정
StandardItem cmpgRelmUseDvcdItem = message.findItem("STD_HEADER.cmpgRelmUseDvcd");
if (cmpgRelmUseDvcdItem != null && StringUtils.isBlank(cmpgRelmUseDvcdItem.getValue())) {
cmpgRelmUseDvcdItem.setValue("0");
}
// STD_HEADER.bzwrSvrCd 설정
StandardItem bzwrSvrCdItem = message.findItem("STD_HEADER.bzwrSvrCd");
if (bzwrSvrCdItem != null && StringUtils.isBlank(bzwrSvrCdItem.getValue())) {
String serverName = eaiServerManager.getLocalServerName();
if (StringUtils.isNotBlank(serverName)) {
String instanceid1 = serverName.substring(0, 2);
String instanceid2 = serverName.substring(serverName.length() - 2, serverName.length());
bzwrSvrCdItem.setValue(StringUtils.upperCase(instanceid1 + instanceid2));
}
}
}
public String getSysOprtEnvDvcd(EAIServerManager eaiServerManager) {
String result = "";
if (eaiServerManager.isPEAIServer()) { // 운영
result = "R";
} else if (eaiServerManager.isDEAIServer()) { // 개발
result = "D";
} else if (eaiServerManager.isSEAIServer()) { // 테스트/검증
result = "T";
}
return result;
}
}