This commit is contained in:
Rinjae
2025-09-05 18:57:45 +09:00
commit aacc1a389e
1229 changed files with 167963 additions and 0 deletions
@@ -0,0 +1,69 @@
package com.eactive.eai.common.c2rservice;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.eactive.eai.common.c2rservice.loader.C2RServiceLoader;
import com.eactive.eai.common.c2rservice.mapper.C2RServiceMapper;
import com.eactive.eai.common.dao.BaseDAO;
import com.eactive.eai.common.dao.DAOException;
import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.data.entity.onl.c2rservice.C2RService;
@Service
@Transactional
public class C2RServiceDAO extends BaseDAO {
private static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
@Autowired
C2RServiceLoader c2rServiceEntityService;
@Autowired
C2RServiceMapper c2rServiceMapper;
public Map<String, C2RServiceVO> getAllC2RServices() throws DAOException {
try {
HashMap<String, C2RServiceVO> c2rMap = new HashMap<>();
List<C2RService> c2rServices = c2rServiceEntityService.findByUseynOrderByDefault("1");
logger.info("[ @@ Load C2RService Configuration - starting >>>>>>>>>>>>>>>>> ]");
for (C2RService c2rService : c2rServices) {
C2RServiceVO vo = c2rServiceMapper.toVo(c2rService);
logger.info("@ " + vo.toString());
String key = c2rService.getId().getExtnlinstiidnfiname() + c2rService.getId().getSvcprcssno();
c2rMap.put(key, vo);
}
logger.info("[>>Load C2RService Configuration - ended ]");
return c2rMap;
} catch (Exception e) {
throw new DAOException(ExceptionUtil.getErrorCode(e, "RECEAICMM101"));
}
}
public Map<String, C2RServiceVO> getC2RService(String c2rExtnlInstiCd) throws DAOException {
try {
HashMap<String, C2RServiceVO> c2rMap = new HashMap<>();
C2RService c2rService = c2rServiceEntityService.findByIdExtnlinstiidnfinameOrderByDefault(c2rExtnlInstiCd);
logger.info("[ @@ Load C2RService getC2RService Configuration - starting >>>>>>>>>>>>>>>>> ]");
if (c2rService != null) {
C2RServiceVO vo = c2rServiceMapper.toVo(c2rService);
logger.info("@ " + vo.toString());
String key = c2rService.getId().getExtnlinstiidnfiname() + c2rService.getId().getSvcprcssno();
c2rMap.put(key, vo);
}
logger.info("[>>Load C2RService getC2RService Configuration - ended ]");
return c2rMap;
} catch (Exception e) {
throw new DAOException(ExceptionUtil.getErrorCode(e, "RECEAICMM101"));
}
}
}
@@ -0,0 +1,169 @@
package com.eactive.eai.common.c2rservice;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.eactive.eai.common.dao.DAOException;
import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.lifecycle.Lifecycle;
import com.eactive.eai.common.lifecycle.LifecycleException;
import com.eactive.eai.common.lifecycle.LifecycleListener;
import com.eactive.eai.common.lifecycle.LifecycleSupport;
import com.eactive.eai.common.util.ApplicationContextProvider;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.common.util.ObjectUtil;
@Component
public class C2RServiceManager implements Lifecycle {
static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
@Autowired
C2RServiceDAO c2rServiceDAO;
private Map<String, C2RServiceVO> c2rsMsgs = new HashMap<>();
private boolean started;
private LifecycleSupport lifecycle = new LifecycleSupport(this);
public static synchronized C2RServiceManager getInstance() {
return ApplicationContextProvider.getContext().getBean(C2RServiceManager.class);
}
public void start() throws LifecycleException {
if (started)
throw new LifecycleException("RECEAICMM201");
lifecycle.fireLifecycleEvent(STARTING_EVENT, this);
try {
init();
} catch (Exception e) {
throw new LifecycleException(ExceptionUtil.getErrorCode(e, "RECEAICMM202"));
}
started = true;
lifecycle.fireLifecycleEvent(STARTED_EVENT, this);
}
private void init() throws DAOException {
c2rsMsgs = null;
c2rsMsgs = c2rServiceDAO.getAllC2RServices();
}
public synchronized void reload() throws Exception {
if (logger.isWarn()) {
logger.warn("C2RExtractManager] reload all Started ...");
}
init();
if (logger.isWarn()) {
logger.warn("C2RExtractManager] reload all finished ...");
}
}
public synchronized void reload(String c2rExtnlInstiCd) throws Exception {
if (logger.isWarn()) {
logger.warn("C2RExtractManager] reload Started ...");
}
Map<String, C2RServiceVO> map = c2rServiceDAO.getC2RService(c2rExtnlInstiCd);
if (map != null) {
Iterator<String> it = map.keySet().iterator();
String key = "";
while (it.hasNext()) {
key = it.next();
C2RServiceVO vo = map.get(key);
if ("1".equals(vo.getUseYn())) {
c2rsMsgs.put(key, map.get(key));
} else {
c2rsMsgs.remove(key);
logger.warn("C2RServiceManager] reload key[" + key + "] useYn[0] removed");
}
}
}
if (logger.isWarn()) {
logger.warn("C2RExtractManager] reload finished ...");
}
}
public void stop() throws LifecycleException {
if (!started)
throw new LifecycleException("RECEAICMM203");
lifecycle.fireLifecycleEvent(STOPING_EVENT, this);
c2rsMsgs.clear();
started = false;
lifecycle.fireLifecycleEvent(STOPPED_EVENT, this);
}
public void addLifecycleListener(LifecycleListener listener) {
lifecycle.addLifecycleListener(listener);
}
public LifecycleListener[] findLifecycleListeners() {
return lifecycle.findLifecycleListeners();
}
public void removeLifecycleListener(LifecycleListener listener) {
lifecycle.removeLifecycleListener(listener);
}
public boolean isStarted() {
return this.started;
}
public C2RServiceVO getC2RServiceVO(String c2rExtnlInstiCd, int svcPssSeq) {
String key = c2rExtnlInstiCd + svcPssSeq;
return getC2RServiceVO(key);
}
public C2RServiceVO getC2RServiceVO(String key) {
C2RServiceVO aMsg = c2rsMsgs.get(key);
if (aMsg != null) {
try {
return (C2RServiceVO) ObjectUtil.deepCopy(aMsg);
} catch (Exception e) {
if (logger.isError())
logger.error(e.getMessage(), e);
throw new RuntimeException(ExceptionUtil.getErrorCode(e, "RECEAICMM204"));
}
} else {
return aMsg;
}
}
public String[] getAllKeys() {
Iterator<String> it = this.c2rsMsgs.keySet().iterator();
String[] svcCd = new String[this.c2rsMsgs.size()];
for (int i = 0; it.hasNext(); i++) {
svcCd[i] = it.next();
}
Arrays.sort(svcCd);
return svcCd;
}
public void setC2RServiceVO(String code, C2RServiceVO vo) {
c2rsMsgs.put(code, vo);
}
// db update 필요
public void updateC2RServiceVO(String c2rExtnlInstiCd, int svcPssSeq, C2RServiceVO vo) {
String key = c2rExtnlInstiCd + svcPssSeq;
c2rsMsgs.put(key, vo);
}
public void removeC2RServiceVO(String c2rExtnlInstiCd, int svcPssSeq, C2RServiceVO vo) {
String key = c2rExtnlInstiCd + svcPssSeq;
c2rsMsgs.remove(key);
}
public void removeC2RServiceVO(String key) {
c2rsMsgs.remove(key);
}
}
@@ -0,0 +1,259 @@
package com.eactive.eai.common.c2rservice;
import java.io.Serializable;
import com.eactive.eai.common.message.EAIMessageKeys;
public class C2RServiceVO implements EAIMessageKeys, Serializable {
private static final long serialVersionUID = 1L;
private String c2rExtnlInstiCd; // 외부기관식별명 [TSEAIHE04.extnlinstiidnfiname]
private int svcPssSeq; // 서비스처리순서 [TSEAIHE04.svcprcssno]
private String psvItfTp; // 수동인터페이스유형 [TSEAIHE04.psvintfacdsticname]
private String psvBwkSysNm; // 수동업무시스템명 [TSEAIHE04.psvsysbzwkdstcd]
private String psvSysID; // 수동시스템ID [TSEAIHE04.psvsysidname]
private String psvSysSvcCd; // 수동시스템서비스코드 [TSEAIHE04.psvsyssvcdsticname]
private String psvSysItfTp; // 수동시스템어댑터업무그룹명 [TSEAIHE04.psvsysadptrbzwkgroupname]
private String flOvrCls; // FailOver여부 [TSEAIHE04.flovryn]
private String cnvEn; // 변환유무 [TSEAIHE04.chngeonot]
private String cnvMsgID; // 변환메시지ID [TSEAIHE04.chngmsgidname]
private String bsRspMsgCprVl; // 기본응답메시지비교값 [TSEAIHE04.bascrspnsmsgcmprctnt]
private String bsRspCnvEn; // 기본응답변환유무 [TSEAIHE04.bascrspnschngeonot]
private String bsRspCnvMsgID; // 기본응답변환메시지ID [TSEAIHE04.bascrspnschngmsgidname]
private String errRspMsgCprVl; // 오류응답메시지비교값 [TSEAIHE04.errrspnsmsgcmprctnt]
private String errRspCnvEn; // 오류응답변환유무 [TSEAIHE04.errrspnschngeonot]
private String errRspCnvMsgID; // 오류응답변환메시지ID [TSEAIHE04.errrspnschngmsgidname]
private int nxtSvcPssSeq; // 다음서비스처리번호 [TSEAIHE04.nextsvcprcssno]
private String outbRtnNm; // Outbound라우팅명 [TSEAIHE04.outbndroutname]
private int tmoVl; // 타임아웃값 [TSEAIHE04.toutval]
private String cpnsSvcPssCd; // 보상서비스처리코드 [TSEAIHE04.cmpensvcprcssdsticname]
private String supplDelYn; // 추가삭제여부 [TSEAIHE04.suppldelyn]
private String hdrCtrlDstcd; // 헤더제어구분코드 [TSEAIHE04.hdrctrldstcd]
private String hdrRefClsName; // 참고클래스명 [TSEAIHE04.hdrrefclsname]
private String useYn; // 사용여부 [TSEAIHE04.useyn]
public String getSupplDelYn() {
return supplDelYn;
}
public void setSupplDelYn(String supplDelYn) {
this.supplDelYn = supplDelYn;
}
public String getHdrCtrlDstcd() {
return hdrCtrlDstcd;
}
public void setHdrCtrlDstcd(String hdrCtrlDstcd) {
this.hdrCtrlDstcd = hdrCtrlDstcd;
}
public String getHdrRefClsName() {
return hdrRefClsName;
}
public void setHdrRefClsName(String hdrRefClsName) {
this.hdrRefClsName = hdrRefClsName;
}
public String getC2rExtnlInstiCd() {
return this.c2rExtnlInstiCd;
}
public void setC2rExtnlInstiCd(String c2rExtnlInstiCd) {
this.c2rExtnlInstiCd = c2rExtnlInstiCd;
}
public String getBsRspCnvEn() {
return bsRspCnvEn;
}
public boolean isBsRspCnvEn() {
return this.bsRspCnvEn.equals( YES_FLAG );
}
public void setBsRspCnvEn(String bsRspCnvEn) {
this.bsRspCnvEn = bsRspCnvEn;
}
public String getBsRspCnvMsgID() {
return bsRspCnvMsgID;
}
public void setBsRspCnvMsgID(String bsRspCnvMsgID) {
this.bsRspCnvMsgID = bsRspCnvMsgID;
}
public String getBsRspMsgCprVl() {
return bsRspMsgCprVl;
}
public void setBsRspMsgCprVl(String bsRspMsgCprVl) {
this.bsRspMsgCprVl = bsRspMsgCprVl;
}
public String getCnvEn() {
return cnvEn;
}
public boolean isCnvEn() {
return this.cnvEn.equals( YES_FLAG );
}
public void setCnvEn(String cnvEn) {
this.cnvEn = cnvEn;
}
public String getCnvMsgID() {
return cnvMsgID;
}
public void setCnvMsgID(String cnvMsgID) {
this.cnvMsgID = cnvMsgID;
}
public String getCpnsSvcPssCd() {
return cpnsSvcPssCd;
}
public void setCpnsSvcPssCd(String cpnsSvcPssCd) {
this.cpnsSvcPssCd = cpnsSvcPssCd;
}
public String getErrRspCnvEn() {
return errRspCnvEn;
}
public boolean isErrRspCnvEn() {
return this.errRspCnvEn.equals( YES_FLAG );
}
public void setErrRspCnvEn(String errRspCnvEn) {
this.errRspCnvEn = errRspCnvEn;
}
public String getErrRspCnvMsgID() {
return errRspCnvMsgID;
}
public void setErrRspCnvMsgID(String errRspCnvMsgID) {
this.errRspCnvMsgID = errRspCnvMsgID;
}
public String getErrRspMsgCprVl() {
return errRspMsgCprVl;
}
public void setErrRspMsgCprVl(String errRspMsgCprVl) {
this.errRspMsgCprVl = errRspMsgCprVl;
}
public String getFlOvrCls() {
return flOvrCls;
}
public boolean hasFailOver() {
return this.flOvrCls.equals( YES_FLAG );
}
public void setFlOvrCls(String flOvrCls) {
this.flOvrCls = flOvrCls;
}
public int getNxtSvcPssSeq() {
return nxtSvcPssSeq;
}
public void setNxtSvcPssSeq(int nxtSvcPssSeq) {
this.nxtSvcPssSeq = nxtSvcPssSeq;
}
public String getOutbRtnNm() {
return outbRtnNm;
}
public void setOutbRtnNm(String outbRtnNm) {
this.outbRtnNm = outbRtnNm;
}
public String getPsvBwkSysNm() {
return psvBwkSysNm;
}
public void setPsvBwkSysNm(String psvBwkSysNm) {
this.psvBwkSysNm = psvBwkSysNm;
}
public String getPsvItfTp() {
return psvItfTp;
}
public boolean isSyncItfTp() {
return this.psvItfTp.equals( SYNC_SVC );
}
public boolean isAckItfTp() {
return this.psvItfTp.equals( ACKONLY_SVC );
}
public void setPsvItfTp(String psvItfTp) {
this.psvItfTp = psvItfTp;
}
public String getPsvSysID() {
return psvSysID;
}
public void setPsvSysID(String psvSysID) {
this.psvSysID = psvSysID;
}
public String getPsvSysItfTp() {
return psvSysItfTp;
}
public void setPsvSysItfTp(String psvSysItfTp) {
this.psvSysItfTp = psvSysItfTp;
}
public String getPsvSysSvcCd() {
return psvSysSvcCd;
}
public void setPsvSysSvcCd(String psvSysSvcCd) {
this.psvSysSvcCd = psvSysSvcCd;
}
public int getTmoVl() {
return tmoVl;
}
public boolean hasTimeOut() {
return ( this.tmoVl > 0 );
}
public void setTmoVl(int tmoVl) {
this.tmoVl = tmoVl;
}
public int getSvcPssSeq(){
return svcPssSeq;
}
public void setSvcPssSeq(int seq){
svcPssSeq = seq;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
}
@@ -0,0 +1,45 @@
package com.eactive.eai.common.c2rservice.mapper;
import org.mapstruct.InheritInverseConfiguration;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import com.eactive.eai.common.c2rservice.C2RServiceVO;
import com.eactive.eai.data.entity.onl.c2rservice.C2RService;
import com.eactive.eai.data.mapper.GenericMapper;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface C2RServiceMapper extends GenericMapper<C2RServiceVO, C2RService> {
@Mapping(source = "id.extnlinstiidnfiname", target = "c2rExtnlInstiCd")
@Mapping(source = "id.svcprcssno", target = "svcPssSeq")
@Mapping(source = "bascrspnschngeonot", target = "bsRspCnvEn")
@Mapping(source = "bascrspnschngmsgidname", target = "bsRspCnvMsgID")
@Mapping(source = "bascrspnsmsgcmprctnt", target = "bsRspMsgCprVl")
@Mapping(source = "chngeonot", target = "cnvEn")
@Mapping(source = "chngmsgidname", target = "cnvMsgID")
@Mapping(source = "cmpensvcprcssdsticname", target = "cpnsSvcPssCd")
@Mapping(source = "errrspnschngeonot", target = "errRspCnvEn")
@Mapping(source = "errrspnschngmsgidname", target = "errRspCnvMsgID")
@Mapping(source = "errrspnsmsgcmprctnt", target = "errRspMsgCprVl")
@Mapping(source = "flovryn", target = "flOvrCls")
@Mapping(source = "hdrctrldstcd", target = "hdrCtrlDstcd")
@Mapping(source = "hdrrefclsname", target = "hdrRefClsName")
@Mapping(source = "nextsvcprcssno", target = "nxtSvcPssSeq")
@Mapping(source = "outbndroutname", target = "outbRtnNm")
@Mapping(source = "psvintfacdsticname", target = "psvItfTp")
@Mapping(source = "psvsysadptrbzwkgroupname", target = "psvSysItfTp")
@Mapping(source = "psvsysbzwkdstcd", target = "psvBwkSysNm")
@Mapping(source = "psvsysidname", target = "psvSysID")
@Mapping(source = "psvsyssvcdsticname", target = "psvSysSvcCd")
@Mapping(source = "suppldelyn", target = "supplDelYn")
@Mapping(source = "toutval", target = "tmoVl")
@Mapping(source = "useyn", target = "useYn")
@Override
C2RServiceVO toVo(C2RService entity);
@InheritInverseConfiguration
@Override
C2RService toEntity(C2RServiceVO vo);
}