iim layout sync
This commit is contained in:
@@ -87,6 +87,12 @@
|
||||
resource="com/eactive/eai/rms/onl/statistics/backup/MonthlyBackup-oracle.xml" />
|
||||
<sqlMap
|
||||
resource="com/eactive/eai/rms/onl/statistics/backup/Tseaist01-oracle.xml" />
|
||||
|
||||
<sqlMap
|
||||
resource="com/eactive/eai/rms/onl/transaction/Layout.xml" />
|
||||
<sqlMap
|
||||
resource="com/eactive/eai/rms/onl/transaction/Layout-oracle.xml" />
|
||||
|
||||
|
||||
<!-- 통계 -->
|
||||
<!-- 통계/매체별통계 -->
|
||||
|
||||
@@ -1,9 +1,22 @@
|
||||
package com.eactive.eai.rms.data.entity.onl.layout;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import com.eactive.eai.data.entity.onl.transformer.layout.LayoutItemEntity;
|
||||
import com.eactive.eai.data.entity.onl.transformer.layout.LayoutItemEntityId;
|
||||
import com.eactive.eai.data.jpa.BaseRepository;
|
||||
|
||||
public interface LayoutItemEMSRepository extends BaseRepository<LayoutItemEntity, LayoutItemEntityId> {
|
||||
|
||||
@Modifying
|
||||
@Query("DELETE FROM LayoutItemEntity l WHERE l.id.loutname = :loutname")
|
||||
int deleteByLoutname(@Param("loutname") String loutname);
|
||||
|
||||
List<LayoutItemEntity> findByIdLoutname(String loutname);
|
||||
|
||||
List<LayoutItemEntity> findByIdLoutnameOrderByIdLoutitemserno(String loutname);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
package com.eactive.eai.rms.onl.manage.rule.layout;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.eactive.eai.data.entity.onl.transformer.layout.LayoutEntity;
|
||||
import com.eactive.eai.data.entity.onl.transformer.layout.LayoutItemEntity;
|
||||
import com.eactive.eai.data.entity.onl.transformer.layout.LayoutItemEntityId;
|
||||
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
|
||||
import com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusinessService;
|
||||
import com.eactive.eai.rms.data.entity.onl.layout.LayoutItemEMSRepository;
|
||||
import com.eactive.eai.rms.data.entity.onl.layout.LayoutService;
|
||||
import com.eactive.eai.rms.onl.manage.rule.layoutsync.LayoutSyncVo;
|
||||
|
||||
@Repository("layoutDao")
|
||||
@@ -14,37 +25,137 @@ import com.eactive.eai.rms.onl.manage.rule.layoutsync.LayoutSyncVo;
|
||||
public class LayoutDao extends SqlMapClientTemplateDao {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(LayoutDao.class);
|
||||
private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
|
||||
@Autowired
|
||||
private LayoutService layoutService;
|
||||
|
||||
@Autowired
|
||||
private LayoutItemEMSRepository layoutItemRepository;
|
||||
|
||||
@Autowired
|
||||
private UserBusinessService userBusinessService;
|
||||
|
||||
public int selectListCount(HashMap param) throws Exception {
|
||||
return (Integer) template.queryForObject("Layout.selectListCount", param);
|
||||
List<String> currentUserBusiness = userBusinessService.getCurrentUserBusinessCodes();
|
||||
long count = layoutService.getJPAQueryFactory()
|
||||
.selectFrom(com.eactive.eai.data.entity.onl.transformer.layout.QLayoutEntity.layoutEntity)
|
||||
.where(com.eactive.eai.data.entity.onl.transformer.layout.QLayoutEntity.layoutEntity.eaibzwkdstcd.in(currentUserBusiness))
|
||||
.fetchCount();
|
||||
return (int) count;
|
||||
}
|
||||
|
||||
public HashMap selectDetail(HashMap param) throws Exception {
|
||||
return (HashMap) template.queryForObject("Layout.selectDetail", param);
|
||||
String loutName = (String) param.get("loutName");
|
||||
Optional<LayoutEntity> optionalEntity = layoutService.findById(loutName);
|
||||
|
||||
if (!optionalEntity.isPresent()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
LayoutEntity entity = optionalEntity.get();
|
||||
HashMap<String, Object> result = new HashMap<>();
|
||||
result.put("LOUTNAME", entity.getLoutname());
|
||||
result.put("LOUTPTRNNAME", entity.getLoutptrnname());
|
||||
result.put("LOUTDESC", entity.getLoutdesc());
|
||||
result.put("LASTAMNDHMS", entity.getLastamndhms() != null ? entity.getLastamndhms().format(DATETIME_FORMATTER) : null);
|
||||
result.put("EAIBZWKDSTCD", entity.getEaibzwkdstcd());
|
||||
result.put("UAPPLNAME", entity.getUapplname());
|
||||
result.put("SYSINTFACNAME", entity.getSysintfacname());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void insert(HashMap paramMap) throws Exception {
|
||||
this.template.insert("Layout.insert", paramMap);
|
||||
LayoutEntity entity = new LayoutEntity();
|
||||
entity.setLoutname((String) paramMap.get("loutName"));
|
||||
entity.setLoutptrnname((String) paramMap.get("loutPtrnName"));
|
||||
entity.setLoutdesc((String) paramMap.get("loutDesc"));
|
||||
entity.setEaibzwkdstcd((String) paramMap.get("eaiBzwkDstcd"));
|
||||
entity.setUapplname((String) paramMap.get("uapplName"));
|
||||
entity.setSysintfacname((String) paramMap.get("sysIntfacName"));
|
||||
|
||||
layoutService.save(entity);
|
||||
}
|
||||
|
||||
public void update(HashMap paramMap) throws Exception {
|
||||
this.template.update("Layout.update", paramMap);
|
||||
String loutName = (String) paramMap.get("loutName");
|
||||
Optional<LayoutEntity> optionalEntity = layoutService.findById(loutName);
|
||||
|
||||
if (!optionalEntity.isPresent()) {
|
||||
throw new Exception("Layout not found: " + loutName);
|
||||
}
|
||||
|
||||
LayoutEntity entity = optionalEntity.get();
|
||||
entity.setLoutptrnname((String) paramMap.get("loutPtrnName"));
|
||||
entity.setLoutdesc((String) paramMap.get("loutDesc"));
|
||||
entity.setEaibzwkdstcd((String) paramMap.get("eaiBzwkDstcd"));
|
||||
entity.setUapplname((String) paramMap.get("uapplName"));
|
||||
entity.setSysintfacname((String) paramMap.get("sysIntfacName"));
|
||||
|
||||
layoutService.save(entity);
|
||||
}
|
||||
|
||||
public void delete(HashMap paramMap) throws Exception {
|
||||
this.template.delete("Layout.delete", paramMap);
|
||||
String loutName = (String) paramMap.get("loutName");
|
||||
layoutService.deleteById(loutName);
|
||||
}
|
||||
|
||||
public int insertItem(HashMap<String, Object> param) {
|
||||
return this.template.update("Layout.insertItem", param);
|
||||
LayoutItemEntity entity = new LayoutItemEntity();
|
||||
|
||||
// Composite Key 설정
|
||||
LayoutItemEntityId id = new LayoutItemEntityId();
|
||||
id.setLoutname((String) param.get("loutName"));
|
||||
id.setLoutitemname((String) param.get("loutItemName"));
|
||||
id.setLoutitemserno((Integer) param.get("loutItemSerno"));
|
||||
entity.setId(id);
|
||||
|
||||
// 필드 설정
|
||||
entity.setLoutitemidname((Integer) param.get("loutItemIDName"));
|
||||
entity.setParntloutitemidname((Integer) param.get("parntLoutItemIDName"));
|
||||
entity.setLoutitemdesc((String) param.get("loutItemDesc"));
|
||||
entity.setLoutitemnodeptrnidname((Integer) param.get("loutItemNodePtrnIDName"));
|
||||
entity.setLoutitemptrnidname((Integer) param.get("loutItemPtrnIDName"));
|
||||
entity.setLoutitempathname((String) param.get("loutItemPathName"));
|
||||
entity.setLoutitemlencnt((Integer) param.get("loutItemLenCnt"));
|
||||
entity.setLoutitemrefinfo((String) param.get("loutItemRefInfo"));
|
||||
entity.setLoutitemrefinfo2((String) param.get("loutItemRefInfo2"));
|
||||
entity.setLoutitemoccurptrndstcd((String) param.get("loutItemOccurPtrnDstcd"));
|
||||
entity.setLoutitemmaxoccurnoitm((Integer) param.get("loutItemMaxOccurNoitm"));
|
||||
entity.setLoutitemminoccurnoitm((Integer) param.get("loutItemMinOccurNoitm"));
|
||||
entity.setLoutitembascval((String) param.get("loutItemBascVal"));
|
||||
entity.setLoutitemmskyn((String) param.get("loutItemMskYn"));
|
||||
entity.setLoutitemmasklength((Integer) param.get("loutItemMaskLength"));
|
||||
entity.setLoutdptcnt((Integer) param.get("lyoutDptCnt"));
|
||||
entity.setDecptlencnt((Integer) param.get("decptLenCnt"));
|
||||
entity.setLoutitemrefptrnidname((String) param.get("lyoutItemRefPtrnIDName"));
|
||||
|
||||
layoutItemRepository.save(entity);
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int deleteItemAll(HashMap<String, Object> param) {
|
||||
return this.template.update("Layout.deleteItemAll", param);
|
||||
String loutName = (String) param.get("loutName");
|
||||
return layoutItemRepository.deleteByLoutname(loutName);
|
||||
}
|
||||
|
||||
public List<HashMap<String, Object>> selectListAll(HashMap<String, Object> param) {
|
||||
return this.template.queryForList("Layout.selectListAll", param);
|
||||
List<String> currentUserBusiness = userBusinessService.getCurrentUserBusinessCodes();
|
||||
|
||||
List<LayoutEntity> entities = layoutService.getJPAQueryFactory()
|
||||
.selectFrom(com.eactive.eai.data.entity.onl.transformer.layout.QLayoutEntity.layoutEntity)
|
||||
.where(com.eactive.eai.data.entity.onl.transformer.layout.QLayoutEntity.layoutEntity.eaibzwkdstcd.in(currentUserBusiness))
|
||||
.orderBy(com.eactive.eai.data.entity.onl.transformer.layout.QLayoutEntity.layoutEntity.loutname.asc())
|
||||
.fetch();
|
||||
|
||||
return entities.stream().map(entity -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("LOUTNAME", entity.getLoutname());
|
||||
map.put("LOUTDESC", entity.getLoutdesc());
|
||||
map.put("LOUTPTRNNAME", entity.getLoutptrnname());
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<LayoutSyncVo> getLayoutXMLList(HashMap<String, String> param) {
|
||||
@@ -78,6 +189,19 @@ public class LayoutDao extends SqlMapClientTemplateDao {
|
||||
}
|
||||
|
||||
public List<HashMap> selectLayout(HashMap params) {
|
||||
return template.queryForList("Layout.selectLayout", params);
|
||||
// params에서 검색 조건 추출
|
||||
List<LayoutEntity> entities = layoutService.findAll();
|
||||
|
||||
return entities.stream().map(entity -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("LOUTNAME", entity.getLoutname());
|
||||
map.put("LOUTPTRNNAME", entity.getLoutptrnname());
|
||||
map.put("LOUTDESC", entity.getLoutdesc());
|
||||
map.put("LASTAMNDHMS", entity.getLastamndhms() != null ? entity.getLastamndhms().format(DATETIME_FORMATTER) : null);
|
||||
map.put("EAIBZWKDSTCD", entity.getEaibzwkdstcd());
|
||||
map.put("UAPPLNAME", entity.getUapplname());
|
||||
map.put("SYSINTFACNAME", entity.getSysintfacname());
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.eactive.eai.rms.onl.manage.rule.layoutsync;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
|
||||
import com.eactive.eai.rms.onl.transaction.extnl.InterfaceDao;
|
||||
|
||||
@Repository
|
||||
class KJBInterfaceDao extends SqlMapClientTemplateDao {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(InterfaceDao.class);
|
||||
|
||||
public void lazyInsertToIF01(HashMap paramMap) throws Exception {
|
||||
this.template.insert("Interface.insertToIF01", paramMap);
|
||||
}
|
||||
|
||||
public HashMap selectDetail(HashMap paramMap) throws Exception {
|
||||
return (HashMap) template.queryForObject("Interface.selectDetail", paramMap);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.eactive.eai.rms.onl.manage.rule.layoutsync;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
@RequiredArgsConstructor
|
||||
class KJBInterfaceService {
|
||||
|
||||
private final KJBInterfaceDao dao;
|
||||
|
||||
public void lazyInsertToIF01(HashMap<String, Object> param) throws Exception {
|
||||
HashMap detail = dao.selectDetail(param);
|
||||
if (detail == null) {
|
||||
dao.lazyInsertToIF01(param);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.eactive.eai.rms.onl.manage.rule.layoutsync;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
|
||||
import com.eactive.eai.rms.data.entity.onl.layout.LayoutService;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
class KJBLayoutDao extends SqlMapClientTemplateDao {
|
||||
|
||||
private final LayoutService layoutService;
|
||||
|
||||
public List selectItemPathList(HashMap param) throws Exception {
|
||||
return template.queryForList("Layout.selectItemPathList", param);
|
||||
}
|
||||
}
|
||||
+291
@@ -0,0 +1,291 @@
|
||||
package com.eactive.eai.rms.onl.manage.rule.layoutsync;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.eactive.eai.rms.onl.manage.rule.transform.TransformDao;
|
||||
import com.eactive.eai.rms.onl.manage.rule.transform.TransformManService;
|
||||
import com.eactive.eai.rms.onl.manage.serviceinfo.eaimsg.EaiMsgDao;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@Service
|
||||
@Transactional
|
||||
@RequiredArgsConstructor
|
||||
class KJBTransformService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(KJBTransformService.class);
|
||||
|
||||
private final TransformDao transformDao;
|
||||
private final KJBLayoutDao layoutDao;
|
||||
|
||||
// 참고메시지 id 를 얻기 위함.
|
||||
private final EaiMsgDao eaiMessageDAO;
|
||||
|
||||
TransformManService transformManService;
|
||||
|
||||
public String transactionLayoutToTransform(JSONObject json, String interfaceLayoutName, String serviceLayoutName)
|
||||
throws Exception {
|
||||
/*
|
||||
* 인터페이스가 있는 지 확인 후 없으면 전문레이아웃변환매핑을 신규로 입력 한다. 있을 경우 추후 프로세스에 의해 정보가 업데이트 된다.
|
||||
*/
|
||||
|
||||
JSONObject message = (JSONObject) json.get("Message");
|
||||
JSONObject header = (JSONObject) message.get("Header");
|
||||
JSONObject body = (JSONObject) message.get("Body");
|
||||
|
||||
String interfaceCode = (String) body.get("interfaceCode");
|
||||
|
||||
String srcLayoutName = null;
|
||||
String tgtLayoutName = null;
|
||||
|
||||
JSONObject srcLayout = null;
|
||||
JSONObject tgtLayout = null;
|
||||
|
||||
JSONArray layoutArray = (JSONArray) body.get("Layout");
|
||||
|
||||
// interfaceCode에 해당하는 Layout 검색
|
||||
JSONObject interfaceLayout = (JSONObject) layoutArray.stream()
|
||||
.filter(j -> interfaceLayoutName.equals(((JSONObject) j).get("id"))).findFirst().get();
|
||||
JSONObject serviceLayout = (JSONObject) layoutArray.stream()
|
||||
.filter(j -> serviceLayoutName.equals(((JSONObject) j).get("id"))).findFirst().get();
|
||||
|
||||
String cnvsnDesc = (String) body.get("interfaceDesc");
|
||||
|
||||
String interfaceIdSuffix = null;
|
||||
String cnvsnType = null;
|
||||
|
||||
if ("I".equals(interfaceLayout.get("ioType")) || ((String) interfaceLayout.get("id")).endsWith("S1")) {
|
||||
cnvsnType = "REQ";
|
||||
} else {
|
||||
cnvsnType = "RES";
|
||||
}
|
||||
|
||||
if ("EAI".equals(interfaceLayout.get("usesystem"))) {
|
||||
// EAI
|
||||
if (interfaceCode.startsWith("EA"))// 비동기
|
||||
{
|
||||
interfaceIdSuffix = "REQ".equals(cnvsnType) ? "S1" : "R1";
|
||||
} else// 동기
|
||||
{
|
||||
interfaceIdSuffix = "REQ".equals(cnvsnType) ? "S1" : "S1";
|
||||
}
|
||||
|
||||
} else if ("FEP".equals(interfaceLayout.get("usesystem"))) {
|
||||
// FEP
|
||||
// 당타발
|
||||
if (interfaceCode.startsWith("F1")) {
|
||||
// 타발
|
||||
interfaceIdSuffix = "REQ".equals(cnvsnType) ? "S1" : "R2";
|
||||
} else if (interfaceCode.startsWith("F2")) {
|
||||
// 당발
|
||||
interfaceIdSuffix = "REQ".equals(cnvsnType) ? "S2" : "R1";
|
||||
}
|
||||
}
|
||||
|
||||
String cnvsnName = String.format("TRANSFORM_%s_%s%s_%s", body.get("bzSystemCode"), interfaceCode,
|
||||
interfaceIdSuffix, cnvsnType);
|
||||
|
||||
if ("FEP".equals(interfaceLayout.get("usesystem")) || "REQ".equals(cnvsnType)) {
|
||||
srcLayoutName = interfaceLayoutName;
|
||||
srcLayout = interfaceLayout;
|
||||
|
||||
tgtLayoutName = serviceLayoutName;
|
||||
tgtLayout = serviceLayout;
|
||||
} else {
|
||||
srcLayoutName = serviceLayoutName;
|
||||
srcLayout = serviceLayout;
|
||||
|
||||
tgtLayoutName = interfaceLayoutName;
|
||||
tgtLayout = interfaceLayout;
|
||||
}
|
||||
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("cnvsnName", cnvsnName);
|
||||
|
||||
Map<String, Object> fransformDetail = transformDao.selectDetail(params);
|
||||
|
||||
if (fransformDetail == null) {
|
||||
insert(interfaceCode, cnvsnName, cnvsnDesc, cnvsnType);
|
||||
}
|
||||
|
||||
HashMap param = new HashMap();
|
||||
param.put("loutName", srcLayoutName);
|
||||
List<HashMap<String, Object>> srcDataArray = layoutDao.selectItemPathList(param);
|
||||
param.put("loutName", tgtLayoutName);
|
||||
List<HashMap<String, Object>> tgtDataArray = layoutDao.selectItemPathList(param);
|
||||
|
||||
HashMap[] list = new HashMap[srcDataArray.size()];
|
||||
|
||||
for (int i = 0; i < srcDataArray.size(); i++) {
|
||||
String s = (String) ((HashMap<String, Object>) srcDataArray.get(i)).get("PATH");
|
||||
String t = (String) ((HashMap<String, Object>) tgtDataArray.get(i)).get("PATH");
|
||||
|
||||
HashMap m = new HashMap();
|
||||
|
||||
m.put("CNVSNCMDNAME", s);
|
||||
m.put("CNVSNRSULTITEMPATHNAME", t);
|
||||
m.put("CNVSNITEMBASCVAL", "");
|
||||
m.put("CNVSNITEMSERNO", i + 1);
|
||||
|
||||
list[i] = m;
|
||||
}
|
||||
|
||||
transaction(cnvsnName, interfaceCode, cnvsnDesc, srcLayoutName, tgtLayoutName, list, "false", cnvsnType);
|
||||
|
||||
return cnvsnName;
|
||||
|
||||
}
|
||||
|
||||
public void insert(String eaiSvcName, String cnvsnName, String cnvsnDesc, String cnvsnType) {
|
||||
|
||||
HashMap paramMap = new HashMap();
|
||||
paramMap.put("eaiSvcName", eaiSvcName);
|
||||
paramMap.put("cnvsnName", cnvsnName);
|
||||
paramMap.put("cnvsnType", cnvsnType);
|
||||
paramMap.put("cnvsnDesc", cnvsnDesc);
|
||||
paramMap.put("chngEonot", "1");// 0.미사용 1.사용
|
||||
// 1.EAI Message에 셋팅
|
||||
updateTransfromEaiSvcName(paramMap);
|
||||
// 2.EAI
|
||||
transformDao.insert(paramMap);
|
||||
|
||||
}
|
||||
|
||||
public void transaction(String cnvsnName, String eaiSvcName, String cnvsnDesc, String srcLayoutName,
|
||||
String tgtLayoutName, HashMap[] list, String chkForce, String cnvsnType) throws Exception {
|
||||
|
||||
if (chkForce != null && "true".equals(chkForce)) {
|
||||
HashMap paramMap = new HashMap();
|
||||
paramMap.put("cnvsnName", cnvsnName);
|
||||
paramMap.put("eaiSvcName", eaiSvcName);
|
||||
paramMap.put("cnvsnType", cnvsnType);
|
||||
paramMap.put("chngEonot", "1");// 0.미사용 1.사용
|
||||
updateTransfromEaiSvcName(paramMap);
|
||||
}
|
||||
|
||||
HashMap paramMap = new HashMap();
|
||||
// 1.변환 테이블 update
|
||||
paramMap.put("cnvsnName", cnvsnName);
|
||||
paramMap.put("cnvsnDesc", cnvsnDesc);
|
||||
transformDao.updateTransform(paramMap);
|
||||
// 2.변환 소스/결과 테이블 update
|
||||
paramMap = new HashMap();
|
||||
paramMap.put("cnvsnName", cnvsnName);
|
||||
transformDao.deleteTransformSourceResult(paramMap);
|
||||
|
||||
// 2-1.SRC 등록
|
||||
paramMap.put("loutName", srcLayoutName);
|
||||
paramMap.put("sourcRsultDstcd", "SRC_LAYOUT");
|
||||
transformDao.insertTransformSourceResult(paramMap);
|
||||
|
||||
// 2-2.TGT 등록
|
||||
paramMap.put("loutName", tgtLayoutName);
|
||||
paramMap.put("sourcRsultDstcd", "TGT_LAYOUT");
|
||||
transformDao.insertTransformSourceResult(paramMap);
|
||||
|
||||
// 3.변환항목 테이블 update
|
||||
// -----------------------------------------------------------------------------
|
||||
// 임시코드 : 복합거래시 소스레이아웃을 추가로 등록되도록 임시 수정 (2018.06.26)
|
||||
// -----------------------------------------------------------------------------
|
||||
String layoutName = null;
|
||||
HashMap layoutParamMap = new HashMap();
|
||||
layoutParamMap.put("cnvsnName", cnvsnName);
|
||||
layoutParamMap.put("sourcRsultDstcd", "SRC_LAYOUT");
|
||||
|
||||
HashMap layoutMap = new HashMap();
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
paramMap = new HashMap();
|
||||
paramMap.put("cnvsnName", cnvsnName);
|
||||
transformDao.deleteTransformItem(paramMap);
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
paramMap.put("cnvsnCmdName", list[i].get("CNVSNCMDNAME"));
|
||||
paramMap.put("cnvsnRsultItemPathName", list[i].get("CNVSNRSULTITEMPATHNAME"));
|
||||
paramMap.put("cnvsnItemBascVal", Objects.toString(list[i].get("CNVSNITEMBASCVAL"), ""));
|
||||
paramMap.put("cnvsnItemSerno", list[i].get("CNVSNITEMSERNO"));
|
||||
|
||||
transformDao.insertTransformItem(paramMap);
|
||||
// -----------------------------------------------------------------------------
|
||||
// 임시코드 : 복합거래시 소스레이아웃을 추가로 등록되도록 임시 수정 (2018.06.26)
|
||||
// -----------------------------------------------------------------------------
|
||||
logger.debug(">>> Check SRC_LAYOUT layoutName = " + layoutName);
|
||||
|
||||
layoutName = extractLayoutName((String) list[i].get("CNVSNCMDNAME"));
|
||||
if (layoutName == null || srcLayoutName.equals(layoutName) || layoutMap.get(layoutName) != null) {
|
||||
// Do nothing
|
||||
} else {
|
||||
logger.debug(">>> Added SRC_LAYOUT layoutName = " + layoutName);
|
||||
layoutParamMap.put("loutName", layoutName);
|
||||
transformDao.insertTransformSourceResult(layoutParamMap);
|
||||
layoutMap.put(layoutName, layoutName);
|
||||
}
|
||||
// -----------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateTransfromEaiSvcName(HashMap paramMap) {
|
||||
// String cnvsnType = null;
|
||||
HashMap map = new HashMap();
|
||||
String eaiSvcName = (String) paramMap.get("eaiSvcName");
|
||||
map.put("eaiSvcName", eaiSvcName);
|
||||
map.put("svcPrcssNo", "1");
|
||||
|
||||
try {
|
||||
HashMap ifc = eaiMessageDAO.selectDetailSvc(map);
|
||||
|
||||
if ("ASYN".equals((String) ifc.get("PSVINTFACDSTICNAME"))) {
|
||||
if (!"ERR".equals((String) paramMap.get("cnvsnType"))) {
|
||||
// cnvsnType = "REQ";
|
||||
/**
|
||||
* 20200521. SYNC-ASYN 처리 추가
|
||||
*/
|
||||
HashMap ifmsg = eaiMessageDAO.selectDetail(map);
|
||||
String inboundSyncAsync = (String) ifmsg.get("SVCMOTIVUSEDSTCD");
|
||||
if ("SYNC".equals(inboundSyncAsync) == false) {
|
||||
paramMap.put("cnvsnType", "REQ");
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error(e.toString(), e);
|
||||
}
|
||||
|
||||
transformDao.updateTransfromEaiSvcName(paramMap);
|
||||
}
|
||||
|
||||
private String extractLayoutName(String path) {
|
||||
String layoutName = null;
|
||||
int sPos = 0;
|
||||
int ePos = 0;
|
||||
if (path == null || path.length() == 0)
|
||||
return null;
|
||||
|
||||
sPos = path.lastIndexOf("(");
|
||||
if (sPos < 0) {
|
||||
sPos = 0;
|
||||
} else if (sPos > 0) {
|
||||
sPos = sPos + 1;
|
||||
}
|
||||
|
||||
ePos = path.indexOf(".");
|
||||
if (ePos < 0)
|
||||
sPos = 0;
|
||||
|
||||
if (ePos > 0 && ePos > sPos) {
|
||||
layoutName = path.substring(sPos, ePos);
|
||||
layoutName = layoutName.trim();
|
||||
}
|
||||
return layoutName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,458 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
<sqlMap namespace="Layout">
|
||||
<!-- #### 레이아웃 ### -->
|
||||
<!-- 목록 조회 -->
|
||||
<statement id="selectList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT FA.*, FB.BZWKDSTICNAME
|
||||
FROM (
|
||||
SELECT ROWNO, LOUTNAME , LOUTPTRNNAME , LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT ROWNUM AS ROWNO,
|
||||
LOUTNAME, LOUTPTRNNAME, LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT A.LOUTNAME, A.LOUTPTRNNAME, A.LOUTDESC, B.LOUTPTRNDESC,
|
||||
A.LASTAMNDHMS , A.EAIBZWKDSTCD , A.UAPPLNAME , A.SYSINTFACNAME
|
||||
FROM $schemaId$.TSEAITR07 A, $schemaId$.TSEAITR06 B
|
||||
WHERE A.LOUTPTRNNAME = B.LOUTPTRNNAME
|
||||
AND A.EAIBZWKDSTCD IN (select EAIBZWKDSTCD from $schemaId$.TSEAIRM06 where userId =#loginId#)
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
A.LOUTNAME LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
A.EAIBZWKDSTCD LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
A.LOUTDESC LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
) TMP1
|
||||
) TMP2 WHERE ROWNO BETWEEN #startNum# AND #endNum#
|
||||
) FA LEFT OUTER JOIN $schemaId$.TSEAICM01 FB
|
||||
ON FA.EAIBZWKDSTCD = FB.EAIBZWKDSTCD
|
||||
ORDER BY 1
|
||||
</statement>
|
||||
|
||||
<!-- 전체 목록수 얻기 -->
|
||||
<statement id="selectListCount" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM $schemaId$.TSEAITR07
|
||||
WHERE EAIBZWKDSTCD IN (select EAIBZWKDSTCD from $schemaId$.TSEAIRM06 where userId =#loginId#)
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
LOUTNAME LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
EAIBZWKDSTCD LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
LOUTDESC LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
</statement>
|
||||
|
||||
<!-- item list -->
|
||||
<!-- select level - 1 "level" -->
|
||||
<!-- , LoutItemIDName "id" -->
|
||||
<!-- , ParntLoutItemIDName "parent" -->
|
||||
<!-- , 'true' "expanded" -->
|
||||
<!-- , decode(LoutItemNodePtrnIDName,2203,'true','false') "isLeaf" -->
|
||||
<!-- , substr( SYS_CONNECT_BY_PATH(decode (level,1,LoutName,LoutItemName), '.'),2) LOUTITEMPATH -->
|
||||
<!-- , LOUTNAME -->
|
||||
<!-- , LOUTITEMIDNAME -->
|
||||
<!-- , LOUTITEMNAME -->
|
||||
<!-- , LOUTITEMDESC -->
|
||||
<!-- , LOUTITEMSERNO -->
|
||||
<!-- , LOUTITEMLENCNT -->
|
||||
<!-- , DECPTLENCNT -->
|
||||
<!-- , LOUTITEMNODEPTRNIDNAME -->
|
||||
<!-- , LOUTITEMPTRNIDNAME -->
|
||||
<!-- , decode(LoutItemNodePtrnIDName -->
|
||||
<!-- ,2201,'MESSAGE' -->
|
||||
<!-- ,2202,'GROUP' -->
|
||||
<!-- ,2203,'FIELD' -->
|
||||
<!-- ,2204,'ATTR' -->
|
||||
<!-- ,'UNKNOWN' -->
|
||||
<!-- ) LOUTITEMNODEPTRNIDDESC -->
|
||||
<!-- , decode(LoutItemPtrnIDName -->
|
||||
<!-- ,2100,'UNKNOWN' -->
|
||||
<!-- ,2101,'STRING' -->
|
||||
<!-- ,2102,'INT' -->
|
||||
<!-- ,2103,'LONG' -->
|
||||
<!-- ,2104,'SHORT' -->
|
||||
<!-- ,2105,'DOUBLE' -->
|
||||
<!-- ,2106,'FLOAT' -->
|
||||
<!-- ,2107,'CHAR' -->
|
||||
<!-- ,2108,'BYTE' -->
|
||||
<!-- ,2109,'DATE' -->
|
||||
<!-- ,2110,'TIME' -->
|
||||
<!-- ,2111,'TIMESTAMP' -->
|
||||
<!-- ,2112,'NUMBER' -->
|
||||
<!-- ,2113,'BYTEARRAY' -->
|
||||
<!-- ,2114,'NUMERIC' -->
|
||||
<!-- ,2115,'PACKDECIMAL' -->
|
||||
<!-- ,2116,'OBJECT' -->
|
||||
<!-- ,2117,'BOOLEAN' -->
|
||||
<!-- ,2118,'BIGDECIMAL' -->
|
||||
<!-- ,'UNKNOWN' -->
|
||||
<!-- )LOUTITEMPTRNIDDESC -->
|
||||
<!-- , PARNTLOUTITEMIDNAME -->
|
||||
<!-- , LOUTITEMOCCURPTRNDSTCD -->
|
||||
<!-- , LOUTITEMMINOCCURNOITM -->
|
||||
<!-- , LOUTITEMMAXOCCURNOITM -->
|
||||
<!-- , LOUTITEMREFINFO2 -->
|
||||
<!-- from ( -->
|
||||
<!-- select * -->
|
||||
<!-- from $schemaId$.TSEAITR08 -->
|
||||
<!-- where LoutName = #loutName# -->
|
||||
<!-- ) -->
|
||||
<!-- connect by prior LoutItemIDName = ParntLoutItemIDName -->
|
||||
<!-- start with ParntLoutItemIDName = '0' -->
|
||||
<!-- order siblings by LoutItemSerno -->
|
||||
<statement id="selectItemList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
select 0 AS "level"
|
||||
, LoutItemIDName "id"
|
||||
, ParntLoutItemIDName "parent"
|
||||
, 'true' AS "expanded"
|
||||
, CASE LoutItemNodePtrnIDName WHEN 2203 THEN 'true' ELSE 'false' END "isLeaf"
|
||||
, LoutItemName LOUTITEMPATH
|
||||
, LOUTNAME AS LOUTNAME
|
||||
, LOUTITEMIDNAME AS LOUTITEMIDNAME
|
||||
, LOUTITEMNAME AS LOUTITEMNAME
|
||||
, LOUTITEMDESC AS LOUTITEMDESC
|
||||
, LOUTITEMSERNO AS LOUTITEMSERNO
|
||||
, LOUTITEMLENCNT AS LOUTITEMLENCNT
|
||||
, DECPTLENCNT AS DECPTLENCNT
|
||||
, LOUTITEMNODEPTRNIDNAME AS LOUTITEMNODEPTRNIDNAME
|
||||
, LOUTITEMPTRNIDNAME AS LOUTITEMPTRNIDNAME
|
||||
, (CASE LoutItemNodePtrnIDName
|
||||
WHEN 2201 THEN 'MESSAGE'
|
||||
WHEN 2202 THEN 'GROUP'
|
||||
WHEN 2203 THEN 'FIELD'
|
||||
WHEN 2204 THEN 'ATTR'
|
||||
ELSE 'UNKNOWN' END) LOUTITEMNODEPTRNIDDESC
|
||||
, (CASE LoutItemPtrnIDName
|
||||
WHEN 2100 THEN 'UNKNOWN'
|
||||
WHEN 2101 THEN 'STRING'
|
||||
WHEN 2102 THEN 'INT'
|
||||
WHEN 2103 THEN 'LONG'
|
||||
WHEN 2104 THEN 'SHORT'
|
||||
WHEN 2105 THEN 'DOUBLE'
|
||||
WHEN 2106 THEN 'FLOAT'
|
||||
WHEN 2107 THEN 'CHAR'
|
||||
WHEN 2108 THEN 'BYTE'
|
||||
WHEN 2109 THEN 'DATE'
|
||||
WHEN 2110 THEN 'TIME'
|
||||
WHEN 2111 THEN 'TIMESTAMP'
|
||||
WHEN 2112 THEN 'NUMBER'
|
||||
WHEN 2113 THEN 'BYTEARRAY'
|
||||
WHEN 2114 THEN 'NUMERIC'
|
||||
WHEN 2115 THEN 'PACKDECIMAL'
|
||||
WHEN 2116 THEN 'OBJECT'
|
||||
WHEN 2117 THEN 'BOOLEAN'
|
||||
WHEN 2118 THEN 'BIGDECIMAL'
|
||||
ELSE 'UNKNOWN' END
|
||||
)LOUTITEMPTRNIDDESC
|
||||
, PARNTLOUTITEMIDNAME AS PARNTLOUTITEMIDNAME
|
||||
, LOUTITEMOCCURPTRNDSTCD AS LOUTITEMOCCURPTRNDSTCD
|
||||
, LOUTITEMMINOCCURNOITM AS LOUTITEMMINOCCURNOITM
|
||||
, LOUTITEMMAXOCCURNOITM AS LOUTITEMMAXOCCURNOITM
|
||||
, LOUTITEMREFINFO2 AS LOUTITEMREFINFO2
|
||||
from (
|
||||
select *
|
||||
from $schemaId$.TSEAITR08
|
||||
where LoutName = #loutName#
|
||||
) T
|
||||
order by LoutItemSerno
|
||||
</statement>
|
||||
|
||||
<!-- Update date -->
|
||||
<statement id="updateLayoutDate" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR07
|
||||
SET LASTAMNDHMS = to_char(sysdate,'yyyymmddhh24miss')
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- item detail -->
|
||||
<statement id="selectItemDetail" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME LOUTNAME,
|
||||
LOUTITEMNAME LOUTITEMNAME,
|
||||
LOUTITEMIDNAME LOUTITEMIDNAME,
|
||||
PARNTLOUTITEMIDNAME PARNTLOUTITEMIDNAME,
|
||||
LOUTITEMDESC LOUTITEMDESC,
|
||||
LOUTITEMNODEPTRNIDNAME LOUTITEMNODEPTRNIDNAME,
|
||||
LOUTITEMPTRNIDNAME LOUTITEMPTRNIDNAME,
|
||||
LOUTITEMPATHNAME LOUTITEMPATHNAME,
|
||||
LOUTITEMLENCNT LOUTITEMLENCNT,
|
||||
LOUTITEMREFINFO LOUTITEMREFINFO,
|
||||
LOUTITEMREFINFO2 LOUTITEMREFINFO2,
|
||||
LOUTITEMSERNO LOUTITEMSERNO,
|
||||
LOUTITEMOCCURPTRNDSTCD LOUTITEMOCCURPTRNDSTCD,
|
||||
LOUTITEMMAXOCCURNOITM LOUTITEMMAXOCCURNOITM,
|
||||
LOUTITEMMINOCCURNOITM LOUTITEMMINOCCURNOITM,
|
||||
LOUTITEMBASCVAL LOUTITEMBASCVAL,
|
||||
LOUTITEMMSKYN LOUTITEMMSKYN,
|
||||
COALESCE(LOUTITEMMASKLENGTH,0) LOUTITEMMASKLENGTH,
|
||||
LYOUTDPTCNT LYOUTDPTCNT,
|
||||
DECPTLENCNT DECPTLENCNT,
|
||||
LYOUTITEMREFPTRNIDNAME LYOUTITEMREFPTRNIDNAME
|
||||
FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME=#loutName#
|
||||
AND LOUTITEMNAME =#loutItemName#
|
||||
AND LOUTITEMSERNO=#loutItemSerno#
|
||||
ORDER BY LOUTITEMIDNAME, LOUTITEMOCCURPTRNDSTCD DESC
|
||||
</statement>
|
||||
|
||||
<!-- Oracle에서도 실행이 안됨 -->
|
||||
<statement id="selectLayoutXMLList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
CASE WHEN PARNTLOUTITEMIDNAME = '0' THEN 'FORMAT'
|
||||
ELSE CASE WHEN LOUTITEMPTRNIDNAME = '2100' THEN 'GRID'
|
||||
WHEN LOUTITEMPTRNIDNAME = '2113' THEN ( CASE WHEN (SELECT LOUTITEMPTRNIDNAME
|
||||
FROM $schemaId$.TSEAITR08 L
|
||||
WHERE L.LOUTNAME = O.LOUTNAME
|
||||
AND L.LOUTITEMIDNAME = O.PARNTLOUTITEMIDNAME
|
||||
AND L.LOUTITEMPTRNIDNAME = '2100'
|
||||
AND (L.LOUTITEMMAXOCCURNOITM = -1 OR L.LOUTITEMMAXOCCURNOITM > 1)
|
||||
) = '2100' THEN 'COLUMN' ELSE 'FLD' END )
|
||||
END AS FIELDTYPE
|
||||
, LOUTITEMNAME AS ID
|
||||
, LOUTITEMDESC AS DESC
|
||||
,CASE WHEN LYOUTITEMREFPTRNIDNAME = 'STRING' THEN 'CHAR'
|
||||
LYOUTITEMREFPTRNIDNAME = 'BYTEARRAY' THEN 'CHAR'
|
||||
LYOUTITEMREFPTRNIDNAME = 'INTEGER' THEN 'DECIMAL'
|
||||
LYOUTITEMREFPTRNIDNAME = 'BIGDECIMAL' THEN 'NUMERIC'
|
||||
ELSE 'CHAR'
|
||||
END AS TYPE
|
||||
, LOUTITEMLENCNT AS LEN
|
||||
, DECPTLENCNT AS SCALE
|
||||
, (CASE WHEN LOUTITEMPTRNIDNAME = '2100' AND PARNTLOUTITEMIDNAME !=0 AND TRIM(LOUTITEMREFINFO2) IS NOT NULL THEN LOUTITEMREFINFO2
|
||||
WHEN LOUTITEMPTRNIDNAME = '2100' AND PARNTLOUTITEMIDNAME !=0 AND TRIM(LOUTITEMREFINFO2) IS NULL THEN TO_CHAR(LOUTITEMMAXOCCURNOITM)
|
||||
ELSE ' ' END) AS COUNT
|
||||
FROM (
|
||||
SELECT *
|
||||
FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME = #LoutName#
|
||||
) O
|
||||
WHERE (LOUTITEMPTRNIDNAME = '2100' AND (LOUTITEMMAXOCCURNOITM = -1 OR LOUTITEMMAXOCCURNOITM > 1) ) OR (LOUTITEMPTRNIDNAME = '2113' ) OR (PARNTLOUTITEMIDNAME = 0)
|
||||
CONNECT BY PRIOR LOUTITEMIDNAME = PARNTLOUTITEMIDNAME
|
||||
START WITH PARNTLOUTITEMIDNAME = '0'
|
||||
</statement>
|
||||
|
||||
<!-- JJB 수정사항 shkim 2020-06-08 표준전문 수정4차 -->
|
||||
<statement id="selectLayoutMappingXMLList" resultClass="java.util.HashMap">
|
||||
SELECT ID "id",
|
||||
LOUTDESC "desc", '$schemaId$' "usesystem",
|
||||
TARGETSYSTEM "targetsystem", TRIM(PSVSYSBZWKDSTCD) "group", IOTYPE "ioType",
|
||||
HEADER_TXID "servicecode", A.EAISVCNAME "interfacecode"
|
||||
FROM (
|
||||
SELECT LOUTNAME ID, CASE WHEN SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'I' ELSE 'O' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN '기동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN '수동'
|
||||
WHEN EAISVCNAME LIKE '%1' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN 'CBS'
|
||||
WHEN EAISVCNAME LIKE '%2' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,EAISVCNAME, PSVSYSBZWKDSTCD
|
||||
FROM $schemaId$.TSEAITR02 A JOIN $schemaId$.TSEAIHE02 B ON A.CNVSNNAME = B.CHNGMSGIDNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName# UNION
|
||||
SELECT LOUTNAME ID, CASE WHEN SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'I' ELSE 'O' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN '수동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN '기동'
|
||||
WHEN EAISVCNAME LIKE '%1' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN 'CBS'
|
||||
WHEN EAISVCNAME LIKE '%2' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,EAISVCNAME, PSVSYSBZWKDSTCD
|
||||
FROM $schemaId$.TSEAITR02 A JOIN $schemaId$.TSEAIHE02 B ON A.CNVSNNAME = B.BASCRSPNSCHNGMSGIDNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName# UNION
|
||||
SELECT LOUTNAME ID, CASE WHEN SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'IE' ELSE 'OE' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN '수동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN '기동'
|
||||
WHEN EAISVCNAME LIKE '%1' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN 'CBS'
|
||||
WHEN EAISVCNAME LIKE '%2' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,EAISVCNAME, PSVSYSBZWKDSTCD
|
||||
FROM $schemaId$.TSEAITR02 A JOIN $schemaId$.TSEAIHE02 B ON A.CNVSNNAME = B.ERRRSPNSCHNGMSGIDNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName# UNION
|
||||
SELECT REFMSGIDNAME ID, CASE WHEN REFMSGIDNO = 1 THEN 'I' ELSE 'O' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND REFMSGIDNO = 1 THEN '기동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND REFMSGIDNO = 2 THEN '수동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND REFMSGIDNO = 3 THEN '수동'
|
||||
WHEN REFMSGIDNAME LIKE '%CBS' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,A.EAISVCNAME, PSVSYSBZWKDSTCD FROM $schemaId$.TSEAIMS02 A JOIN $schemaId$.TSEAIHE02 B ON A.EAISVCNAME = B.EAISVCNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName#
|
||||
) A
|
||||
LEFT OUTER JOIN ( SELECT EAISVCNAME
|
||||
, max(decode(COLUMNNAME,'HEADER_TXID',COLUMNVALUE,'')) HEADER_TXID
|
||||
FROM $schemaId$.TSEAIHS04 hs04 , $schemaId$.tseaihs05 hs05
|
||||
where hs04.BZWKSVCKEYNAME =hs05.BZWKSVCKEYNAME
|
||||
group by hs04.BZWKSVCKEYNAME,EAISVCNAME
|
||||
) HS04 ON A.EAISVCNAME = HS04.EAISVCNAME
|
||||
LEFT OUTER JOIN $schemaId$.TSEAITR07 TR07 ON TR07.LOUTNAME = A.ID
|
||||
ORDER BY 1
|
||||
</statement>
|
||||
|
||||
<!-- 아이템항목 PATH 조회 -->
|
||||
<statement id="selectItemPathList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT SUBSTR(SYS_CONNECT_BY_PATH(LOUTITEMNAME, '.'),2) PATH
|
||||
FROM (
|
||||
SELECT decode(LYOUTITEMREFPTRNIDNAME, NULL, decode(LOUTITEMIDNAME, 1000, LOUTITEMNAME, LOUTITEMNAME||'[*]'), LOUTITEMNAME) LOUTITEMNAME, LOUTITEMIDNAME, LYOUTDPTCNT, nvl(LYOUTITEMREFPTRNIDNAME,'Group') LYOUTITEMREFPTRNIDNAME, PARNTLOUTITEMIDNAME PARENT
|
||||
FROM tseaitr08 a
|
||||
WHERE loutname = #loutName#
|
||||
ORDER BY LOUTITEMIDNAME
|
||||
)
|
||||
WHERE LYOUTITEMREFPTRNIDNAME != 'Group'
|
||||
START WITH LOUTITEMIDNAME = 1000 CONNECT BY PRIOR LOUTITEMIDNAME = PARENT
|
||||
</statement>
|
||||
|
||||
<!-- 목록 조회 -->
|
||||
<statement id="selectListPop" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT FA.*, FB.BZWKDSTICNAME
|
||||
FROM (
|
||||
SELECT ROWNO, LOUTNAME , LOUTPTRNNAME , LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT ROWNUM AS ROWNO,
|
||||
LOUTNAME, LOUTPTRNNAME, LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT A.LOUTNAME, A.LOUTPTRNNAME, A.LOUTDESC, B.LOUTPTRNDESC,
|
||||
A.LASTAMNDHMS , A.EAIBZWKDSTCD , A.UAPPLNAME , A.SYSINTFACNAME
|
||||
FROM $schemaId$.TSEAITR07 A, $schemaId$.TSEAITR06 B
|
||||
WHERE A.LOUTPTRNNAME = B.LOUTPTRNNAME
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
UPPER(A.LOUTNAME) LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
UPPER(A.EAIBZWKDSTCD) LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
UPPER(A.LOUTDESC) LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
) TMP1
|
||||
) TMP2 WHERE ROWNO BETWEEN #startNum# AND #endNum#
|
||||
) FA LEFT OUTER JOIN $schemaId$.TSEAICM01 FB
|
||||
ON FA.EAIBZWKDSTCD = FB.EAIBZWKDSTCD
|
||||
ORDER BY 1
|
||||
</statement>
|
||||
|
||||
<!-- 전체 목록수 얻기 -->
|
||||
<statement id="selectListCountPop" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM $schemaId$.TSEAITR07
|
||||
<dynamic prepend="WHERE">
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
UPPER(LOUTNAME) LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
UPPER(EAIBZWKDSTCD) LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
UPPER(LOUTDESC) LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
</dynamic>
|
||||
</statement>
|
||||
|
||||
<statement id="insertMappingSyncLog">
|
||||
INSERT INTO $schemaId$.TSEAITR09
|
||||
( LOGPRCSSSERNO, EXECUTEDATE ,EXECUTECLASS,EXECUTEMETHOD,EXECUTEUSER,SENDXMLCMNT,SENDAMNDHMS )
|
||||
VALUES
|
||||
( #logPrcssSerno#, TO_CHAR(CURRENT_DATE,'YYYYMMDD') ,#executeClass#,#executeMethod#,#executeUser#,#sendXmlCmnt#,
|
||||
TO_CHAR(CURRENT_TIMESTAMP,'YYYYMMDDHH24MISSFF2') )
|
||||
</statement>
|
||||
|
||||
<statement id="updateMappingSyncLog">
|
||||
UPDATE $schemaId$.TSEAITR09
|
||||
SET RECVAMNDHMS=TO_CHAR(CURRENT_TIMESTAMP,'YYYYMMDDHH24MISSFF2'),
|
||||
RECVRSLT=#recvRslt#,
|
||||
RECVFAILCMNT=#recvFailCmnt#
|
||||
WHERE LOGPRCSSSERNO = #logPrcssSerno#
|
||||
</statement>
|
||||
<!-- item delete -->
|
||||
<statement id="deleteItem" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME=#loutName#
|
||||
AND LOUTITEMNAME =#loutItemName#
|
||||
AND LOUTITEMSERNO=#loutItemSerno#
|
||||
</statement>
|
||||
|
||||
<!-- item insert -->
|
||||
<statement id="insertItem" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
<!-- LOUTITEMMSKCODE 삭제, 광주은행 테이블에 미존재 231005-->
|
||||
INSERT INTO $schemaId$.TSEAITR08 (
|
||||
LOUTNAME, LOUTITEMNAME, LOUTITEMIDNAME, PARNTLOUTITEMIDNAME, LOUTITEMDESC, LOUTITEMNODEPTRNIDNAME,
|
||||
LOUTITEMPTRNIDNAME, LOUTITEMPATHNAME, LOUTITEMLENCNT, LOUTITEMREFINFO, LOUTITEMREFINFO2,
|
||||
LOUTITEMSERNO, LOUTITEMOCCURPTRNDSTCD, LOUTITEMMAXOCCURNOITM, LOUTITEMMINOCCURNOITM,
|
||||
LOUTITEMBASCVAL, LOUTITEMMSKYN, LOUTITEMMASKLENGTH, LYOUTDPTCNT, DECPTLENCNT, LYOUTITEMREFPTRNIDNAME
|
||||
) VALUES (
|
||||
#loutName#, #loutItemName#, #loutItemIDName#, #parntLoutItemIDName#, #loutItemDesc#, #loutItemNodePtrnIDName#,
|
||||
#loutItemPtrnIDName#, #loutItemPathName#, #loutItemLenCnt#, #loutItemRefInfo#, #loutItemRefInfo2#,
|
||||
#loutItemSerno#, #loutItemOccurPtrnDstcd#, #loutItemMaxOccurNoitm#, #loutItemMinOccurNoitm#,
|
||||
#loutItemBascVal#, #loutItemMskYn#, #loutItemMaskLength#, #lyoutDptCnt#, #decptLenCnt#, #lyoutItemRefPtrnIDName#
|
||||
)
|
||||
</statement>
|
||||
|
||||
<!-- item update -->
|
||||
<statement id="updateItem" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR08
|
||||
SET
|
||||
LOUTNAME = #loutName#,
|
||||
LOUTITEMNAME = #loutItemName#,
|
||||
LOUTITEMIDNAME = #loutItemIDName#,
|
||||
PARNTLOUTITEMIDNAME = #parntLoutItemIDName#,
|
||||
LOUTITEMDESC = #loutItemDesc#,
|
||||
LOUTITEMNODEPTRNIDNAME = #loutItemNodePtrnIDName#,
|
||||
LOUTITEMPTRNIDNAME = #loutItemPtrnIDName#,
|
||||
LOUTITEMPATHNAME = #loutItemPathName#,
|
||||
LOUTITEMLENCNT = #loutItemLenCnt#,
|
||||
LOUTITEMREFINFO = #loutItemRefInfo#,
|
||||
LOUTITEMREFINFO2 = #loutItemRefInfo2#,
|
||||
LOUTITEMSERNO = #loutItemSerno#,
|
||||
LOUTITEMOCCURPTRNDSTCD = #loutItemOccurPtrnDstcd#,
|
||||
LOUTITEMMAXOCCURNOITM = #loutItemMaxOccurNoitm#,
|
||||
LOUTITEMMINOCCURNOITM = #loutItemMinOccurNoitm#,
|
||||
LOUTITEMBASCVAL = #loutItemBascVal#,
|
||||
LOUTITEMMSKYN = #loutItemMskYn#,
|
||||
LOUTITEMMASKLENGTH = #loutItemMaskLength#,
|
||||
LYOUTDPTCNT = #lyoutDptCnt#,
|
||||
DECPTLENCNT = #decptLenCnt#,
|
||||
LYOUTITEMREFPTRNIDNAME = #lyoutItemRefPtrnIDName#
|
||||
WHERE LOUTNAME = #loutName#
|
||||
AND LOUTITEMNAME =#loutItemName#
|
||||
AND LOUTITEMSERNO =#loutItemSerno#
|
||||
</statement>
|
||||
|
||||
<statement id="insertTR08" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
INSERT INTO $schemaId$.TSEAITR08 ( LOUTNAME, LOUTITEMNAME, LOUTITEMSERNO, LOUTITEMIDNAME, PARNTLOUTITEMIDNAME,
|
||||
LOUTITEMDESC, LOUTITEMNODEPTRNIDNAME, LOUTITEMPTRNIDNAME, LOUTITEMPATHNAME, LOUTITEMLENCNT,
|
||||
LOUTITEMREFINFO, LOUTITEMREFINFO2, LOUTITEMOCCURPTRNDSTCD, LOUTITEMMAXOCCURNOITM, LOUTITEMMINOCCURNOITM,
|
||||
LOUTITEMBASCVAL, LOUTITEMMSKYN, LYOUTDPTCNT, DECPTLENCNT, LYOUTITEMREFPTRNIDNAME )
|
||||
VALUES ( #loutName#, #loutItemName#, #loutItemSerno#, #loutItemIDName#, #parntLoutItemIDName#,
|
||||
#loutItemDesc#, #loutItemNodePtrnIDName#, #loutItemPtrnIDName#, #loutItemPathName#, #loutItemLenCnt#,
|
||||
#loutItemRefInfo#, #loutItemRefInfo2#, #loutItemOccurPtrnDstcd#, #loutItemMaxOccurNoitm#, #loutItemMinOccurNoitm#,
|
||||
#loutItemBascVal#, #loutItemMskYn#, #lyoutDptCnt#, #decptLenCnt#, #lyoutItemRefPtrnIDName# )
|
||||
</statement>
|
||||
<!-- 여기 까지 마이그레이션 영역 -->
|
||||
|
||||
<statement id="insertLayoutSyncLog">
|
||||
INSERT INTO $schemaId$.TSEAITR10
|
||||
( LOGPRCSSSEQNO, SEQNO, SERVICENAME ,COMMAND,LOUTNAME,RECVDATA,RECVAMNDHMS,PRCSSRSLT, PRCSSRSLTCMNT )
|
||||
VALUES
|
||||
( #logPrcssSeqno#, #seqno#, #serviceName# ,#command#,#loutName#,#recvData#,#recvAmndHMS#,#prcssRslt#, #prcssRsltCmnt# )
|
||||
</statement>
|
||||
</sqlMap>
|
||||
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
<sqlMap namespace="Layout">
|
||||
<!-- #### 레이아웃 ### -->
|
||||
<!-- 상세 조회 -->
|
||||
<statement id="selectDetail" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME AS "LOUTNAME" ,
|
||||
LOUTPTRNNAME AS "LOUTPTRNNAME" ,
|
||||
LOUTDESC AS "LOUTDESC" ,
|
||||
LASTAMNDHMS AS "LASTAMNDHMS" ,
|
||||
EAIBZWKDSTCD AS "EAIBZWKDSTCD" ,
|
||||
UAPPLNAME AS "UAPPLNAME" ,
|
||||
SYSINTFACNAME AS "SYSINTFACNAME"
|
||||
FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- DELETE-->
|
||||
<statement id="delete" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- Insert-->
|
||||
<statement id="insert" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
INSERT INTO $schemaId$.TSEAITR07 (
|
||||
LOUTNAME, LOUTDESC, LOUTPTRNNAME , LASTAMNDHMS , EAIBZWKDSTCD , UAPPLNAME , SYSINTFACNAME, CREATEBY, UPDATEBY
|
||||
) VALUES (#loutName#, #loutDesc#, #loutPtrnName#, #lastAmndHMS# , #eaiBzwkDstcd# , #uapplName# , #sysIntfacName#, #createBy#, #updateBy# )
|
||||
</statement>
|
||||
|
||||
<!-- Update-->
|
||||
<statement id="update" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR07
|
||||
SET LOUTDESC = #loutDesc#,
|
||||
LOUTPTRNNAME= #loutPtrnName#,
|
||||
LASTAMNDHMS = #lastAmndHMS#,
|
||||
EAIBZWKDSTCD = #eaiBzwkDstcd#,
|
||||
UAPPLNAME = #uapplName#,
|
||||
SYSINTFACNAME = #sysIntfacName# ,
|
||||
UPDATEBY = #updateBy#
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- List All -->
|
||||
<statement id="selectListAll" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
L.LOUTNAME AS "LOUTNAME",
|
||||
L.LOUTDESC AS "LOUTDESC",
|
||||
L.LOUTPTRNNAME AS "LOUTPTRNNAME"
|
||||
FROM $schemaId$.TSEAITR07 L
|
||||
WHERE L.EAIBZWKDSTCD IN (select EAIBZWKDSTCD from $schemaId$.TSEAIRM06 WHERE USERID = #loginId#)
|
||||
ORDER BY L.LOUTNAME
|
||||
</statement>
|
||||
|
||||
<!-- item delete all -->
|
||||
<statement id="deleteItemAll" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME=#loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="updateItemDesc" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR08
|
||||
SET LOUTITEMDESC = #loutDesc#
|
||||
WHERE LOUTNAME = #loutName#
|
||||
AND LOUTITEMNAME = #loutName#
|
||||
AND LOUTITEMSERNO = 0
|
||||
</statement>
|
||||
|
||||
<statement id="selectTypeAll" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT LOUTPTRNNAME AS "LOUTPTRNNAME",
|
||||
LOUTPTRNDESC AS "LOUTPTRNDESC"
|
||||
FROM $schemaId$.TSEAITR06
|
||||
ORDER BY LOUTPTRNDESC
|
||||
</statement>
|
||||
|
||||
<statement id="selectEffect" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT SV.EAISVCNAME AS "EAISVCNAME" , SV.EAISVCDESC AS "EAISVCDESC" ,
|
||||
TR.CNVSNNAME AS "CNVSNNAME" , TR.CNVSNDESC AS "CNVSNDESC" , TR.SOURCRSULTDSTCD AS "SOURCRSULTDSTCD"
|
||||
FROM
|
||||
( SELECT T1.CNVSNNAME , T1.CNVSNDESC ,
|
||||
T2.LOUTNAME , T2.SOURCRSULTDSTCD
|
||||
FROM $schemaId$.TSEAITR01 T1, $schemaId$.TSEAITR02 T2
|
||||
WHERE T1.CNVSNNAME = T2.CNVSNNAME
|
||||
AND T2.LOUTNAME = #loutName#
|
||||
) TR,
|
||||
(
|
||||
SELECT DISTINCT EAISVCNAME, EAISVCDESC, SVCPRCSSNO, CHNGMSGIDNAME FROM (
|
||||
SELECT A.EAISVCNAME, A.EAISVCDESC, B.SVCPRCSSNO, B.CHNGMSGIDNAME FROM $schemaId$.TSEAIHE01 A, $schemaId$.TSEAIHE02 B WHERE A.EAISVCNAME = B.EAISVCNAME
|
||||
UNION ALL
|
||||
SELECT A.EAISVCNAME, A.EAISVCDESC, B.SVCPRCSSNO, B.BASCRSPNSCHNGMSGIDNAME CHNGMSGIDNAME FROM $schemaId$.TSEAIHE01 A, $schemaId$.TSEAIHE02 B WHERE A.EAISVCNAME = B.EAISVCNAME
|
||||
UNION ALL
|
||||
SELECT A.EAISVCNAME, A.EAISVCDESC, B.SVCPRCSSNO, B.ERRRSPNSCHNGMSGIDNAME CHNGMSGIDNAME FROM $schemaId$.TSEAIHE01 A, $schemaId$.TSEAIHE02 B WHERE A.EAISVCNAME = B.EAISVCNAME
|
||||
) TMP
|
||||
) SV
|
||||
WHERE TR.CNVSNNAME = SV.CHNGMSGIDNAME
|
||||
</statement>
|
||||
|
||||
<statement id="selectReportCount" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT EAIBZWKDSTCD "EAIBzwkDstcd", COUNT(LOUTNAME) "Cnt"
|
||||
FROM $schemaId$.TSEAITR07
|
||||
GROUP BY EAIBZWKDSTCD
|
||||
</statement>
|
||||
|
||||
<!-- 여기서 부터 마이그레이션 영역 -->
|
||||
<statement id="selectTR07Select" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME AS "LOUTNAME" ,
|
||||
LOUTPTRNNAME AS "LOUTPTRNNAME" ,
|
||||
LOUTDESC AS "LOUTDESC" ,
|
||||
LASTAMNDHMS AS "LASTAMNDHMS" ,
|
||||
EAIBZWKDSTCD AS "EAIBZWKDSTCD" ,
|
||||
UAPPLNAME AS "UAPPLNAME" ,
|
||||
SYSINTFACNAME AS "SYSINTFACNAME"
|
||||
FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="deleteTR07" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="insertTR07" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
INSERT INTO $schemaId$.TSEAITR07 ( LOUTNAME, LOUTPTRNNAME, LOUTDESC, LASTAMNDHMS, EAIBZWKDSTCD, UAPPLNAME, SYSINTFACNAME )
|
||||
VALUES ( #loutName#, #loutPtrnName#, #loutDesc#, #lastAmndHMS#, #eaiBzwkDstcd#, #uapplName#, #sysIntfacName# )
|
||||
</statement>
|
||||
|
||||
<statement id="selectTR08" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME AS "LOUTNAME" ,
|
||||
LOUTITEMNAME AS "LOUTITEMNAME" ,
|
||||
LOUTITEMSERNO AS "LOUTITEMSERNO" ,
|
||||
LOUTITEMIDNAME AS "LOUTITEMIDNAME" ,
|
||||
PARNTLOUTITEMIDNAME AS "PARNTLOUTITEMIDNAME" ,
|
||||
LOUTITEMDESC AS "LOUTITEMDESC" ,
|
||||
LOUTITEMNODEPTRNIDNAME AS "LOUTITEMNODEPTRNIDNAME" ,
|
||||
LOUTITEMPTRNIDNAME AS "LOUTITEMPTRNIDNAME" ,
|
||||
LOUTITEMPATHNAME AS "LOUTITEMPATHNAME" ,
|
||||
LOUTITEMLENCNT AS "LOUTITEMLENCNT" ,
|
||||
LOUTITEMREFINFO AS "LOUTITEMREFINFO" ,
|
||||
LOUTITEMREFINFO2 AS "LOUTITEMREFINFO2" ,
|
||||
LOUTITEMOCCURPTRNDSTCD AS "LOUTITEMOCCURPTRNDSTCD" ,
|
||||
LOUTITEMMAXOCCURNOITM AS "LOUTITEMMAXOCCURNOITM" ,
|
||||
LOUTITEMMINOCCURNOITM AS "LOUTITEMMINOCCURNOITM" ,
|
||||
LOUTITEMBASCVAL AS "LOUTITEMBASCVAL" ,
|
||||
LOUTITEMMSKYN AS "LOUTITEMMSKYN" ,
|
||||
LYOUTDPTCNT AS "LYOUTDPTCNT" ,
|
||||
DECPTLENCNT AS "DECPTLENCNT" ,
|
||||
LYOUTITEMREFPTRNIDNAME AS "LYOUTITEMREFPTRNIDNAME"
|
||||
FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="deleteTR08" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
</sqlMap>
|
||||
+659
-85
@@ -2,9 +2,10 @@ package com.eactive.eai.rms.onl.manage.rule.layoutsync;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -21,10 +22,14 @@ import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.input.SAXBuilder;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@@ -50,18 +55,28 @@ import com.eactive.eai.rms.onl.common.util.DateUtil;
|
||||
import com.eactive.eai.transformer.layout.Item;
|
||||
import com.eactive.eai.transformer.layout.Types;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/layoutSync.do")
|
||||
public class LayoutSyncController extends OnlBaseAnnotationController implements InterceptorSkipController {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(LayoutSyncController.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(LayoutSyncController.class);
|
||||
|
||||
@Autowired
|
||||
@Qualifier("layoutSyncService")
|
||||
private LayoutSyncService service;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("monitoringContext")
|
||||
private MonitoringContext monitoringContext;
|
||||
|
||||
@Autowired
|
||||
private KJBTransformService transformService;
|
||||
|
||||
@Autowired
|
||||
private KJBInterfaceService interfaceService;
|
||||
|
||||
|
||||
/**
|
||||
* xml 형식으로 전달 된 레이아웃을 LayoutVo로 전환
|
||||
*
|
||||
@@ -92,8 +107,6 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
node = Item.NODE_GROUP;
|
||||
} else if("GRID".equals(el.getName().toUpperCase())) {
|
||||
node = Item.NODE_GROUP;
|
||||
} else if("ATTR".equals(el.getName().toUpperCase())) {
|
||||
node = Item.NODE_ATTR;
|
||||
} else {
|
||||
node = Item.NODE_FIELD;
|
||||
}
|
||||
@@ -101,20 +114,19 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
item.put("loutItemNodePtrnIDName",node);
|
||||
|
||||
int loutType = Types.TYPE_UNKNOWN;
|
||||
if( el.getAttributeValue("type") == null || "".equals(el.getAttributeValue("type"))) {
|
||||
} else if( "GRID".equals(el.getName().toUpperCase()) || "GROUP".equals(el.getName().toUpperCase()) ) {
|
||||
} else if( msgType.equals("XML") ) {
|
||||
if( el.getAttributeValue("type") == null || "".equals(el.getAttributeValue("type"))) {
|
||||
} else if( "GRID".equals(el.getName().toUpperCase()) || "GROUP".equals(el.getName().toUpperCase()) ) {
|
||||
} else if( msgType.equals("XML") || msgType.equals("JSON") ) {
|
||||
loutType = "VARCHAR".startsWith(el.getAttributeValue("type").toUpperCase()) ? Types.TYPE_STRING : Types.TYPE_INT; // TYPE_LONG, TYPE_SHORT, TYPE_DOUBLE, TYPE_FLOAT
|
||||
|
||||
//loutType = Types.TYPE_STRING;
|
||||
} else {
|
||||
loutType = Types.TYPE_BYTEARRAY;
|
||||
}
|
||||
|
||||
item.put("loutItemPtrnIDName",loutType);
|
||||
item.put("loutItemLenCnt","".equals(el.getAttributeValue("len")) ? 0 : Integer.parseInt(el.getAttributeValue("len")));
|
||||
item.put("loutItemRefInfo2",el.getAttributeValue("count")); //
|
||||
|
||||
item.put("loutItemPtrnIDName", loutType);
|
||||
item.put("loutItemLenCnt",
|
||||
"".equals(el.getAttributeValue("len")) ? 0 : Integer.parseInt(el.getAttributeValue("len")));
|
||||
item.put("loutItemRefInfo2", el.getAttributeValue("count"));
|
||||
|
||||
// MIN, MAX 설정
|
||||
// 통합인터페이스는 * , 숫자만 보냄 ( 가변은 * 고정은 숫자 )
|
||||
@@ -158,7 +170,10 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
item.put("loutItemMinOccurNoitm",min); // 레이아웃항목최소발생건수
|
||||
|
||||
item.put("loutItemBascVal",el.getAttributeValue("default")); // 레이아웃항목기본값
|
||||
item.put("loutItemMskYn",el.getAttributeValue("mask")); // [Y/N/ ]
|
||||
item.put("louItemMskYn",el.getAttributeValue("mask")); // [Y/N/ ]
|
||||
item.put("louItemMskCode",el.getAttributeValue("mask2"));
|
||||
//item.put("loutItemMskTarget",el.getAttributeValue("maskTarget")); // [LOG/DATA ]
|
||||
|
||||
if( "Y".equals(item.get("loutItemMskYn")) ) item.put("loutItemMaskLength",Integer.parseInt(el.getAttributeValue("maskLength")));
|
||||
item.put("lyoutDptCnt",Integer.parseInt(el.getAttributeValue("depth")) + 1 ); // 통합인터페이스 전달되는 Depth + 1을 해야 함
|
||||
item.put("decptLenCnt","".equals(el.getAttributeValue("scale")) ? 0 : Integer.parseInt(el.getAttributeValue("scale"))); // 소수점길이 META에서 "" 이면 "" 으로 표현함
|
||||
@@ -166,7 +181,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
|
||||
|
||||
String dataType = "";
|
||||
if( el.getAttributeValue("type") == null || "".equals(el.getAttributeValue("type"))) {
|
||||
if( el.getAttributeValue("type") == null || "".equals(el.getAttributeValue("type"))) {
|
||||
} else if( "VARCHAR".startsWith(el.getAttributeValue("type").toUpperCase()) ) { // Varchar, Number
|
||||
dataType = "String";
|
||||
} else if( "NUMBER".startsWith(el.getAttributeValue("type").toUpperCase()) ) { // Varchar, Number
|
||||
@@ -183,6 +198,194 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
return list;
|
||||
}
|
||||
|
||||
// JJB 수정사항 shkim 2020-05-13 JSON 타입 추가
|
||||
/**
|
||||
* json 형식으로 전달 된 레이아웃을 LayoutVo로 전환
|
||||
*
|
||||
* @param e
|
||||
* @param msgType
|
||||
* @param loutName
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private List<HashMap<String,Object>> setLayoutItemsJSN(JSONArray items, String msgType, String loutName, String parentNo) throws Exception {
|
||||
List<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>();
|
||||
|
||||
for(Object i : items) {
|
||||
// Layout Item Format (TR08)
|
||||
HashMap<String,Object> item = new HashMap<String,Object>();
|
||||
|
||||
String type = (String) ((JSONObject) i).keySet().iterator().next();
|
||||
|
||||
JSONObject _i = (JSONObject) ((JSONObject) i).get(type);
|
||||
|
||||
item.put("loutName",loutName);
|
||||
item.put("loutItemName",_i.get("id"));
|
||||
item.put("loutItemSerno", Integer.parseInt((String) _i.get("no")) );
|
||||
item.put("loutItemIDName",Integer.parseInt((String) _i.get("no")) + 1000);
|
||||
String no = parentNo;
|
||||
item.put("parntLoutItemIDName",Integer.parseInt( no == null ? "0":no ) + 1000 );
|
||||
item.put("loutItemDesc",_i.get("desc"));
|
||||
type = type.toUpperCase();
|
||||
int node = 0;
|
||||
if( "GROUP".equals(type) ) {
|
||||
node = Item.NODE_GROUP;
|
||||
} else if("GRID".equals(type)) {
|
||||
node = Item.NODE_GROUP;
|
||||
} else {
|
||||
node = Item.NODE_FIELD;
|
||||
}
|
||||
|
||||
item.put("loutItemNodePtrnIDName",node);
|
||||
|
||||
int loutType = Types.TYPE_UNKNOWN;
|
||||
if( _i.get("type") == null || "".equals(_i.get("type")))
|
||||
{
|
||||
} else if( "GRID".equals(type) || "GROUP".equals(type) )
|
||||
{
|
||||
} else if( msgType.equals("XML") )
|
||||
{
|
||||
loutType = "VARCHAR".startsWith(((String) _i.get("type")).toUpperCase()) ? Types.TYPE_STRING : Types.TYPE_INT; // TYPE_LONG, TYPE_SHORT, TYPE_DOUBLE, TYPE_FLOAT
|
||||
|
||||
//loutType = Types.TYPE_STRING;
|
||||
}
|
||||
else if ( msgType.equals("JSON") )
|
||||
{
|
||||
String type2 = ((String) _i.get("type")).toUpperCase();
|
||||
|
||||
switch(type2)
|
||||
{
|
||||
case "VARCHAR":
|
||||
loutType = Types.TYPE_STRING;
|
||||
break;
|
||||
// JJB 수정사항 shkim 2020-08-19 숫자형 실수부 처리 문제로 BigDecimal로 처리
|
||||
case "NUMBER":
|
||||
// loutType = Types.TYPE_INT;
|
||||
// break;
|
||||
case "BIGDECIMAL":
|
||||
loutType = Types.TYPE_BIGDECIMAL;
|
||||
break;
|
||||
}
|
||||
//loutType = type2.equals("VARCHAR") ? Types.TYPE_STRING : Types.TYPE_INT; // TYPE_LONG, TYPE_SHORT, TYPE_DOUBLE, TYPE_FLOAT
|
||||
|
||||
}else if ( msgType.equals("FML32") )
|
||||
{
|
||||
String fmlType = ((String) _i.get("id")).toUpperCase().replaceAll("[\\d]", "");
|
||||
|
||||
switch(fmlType)
|
||||
{
|
||||
case "LONG":
|
||||
loutType = Types.TYPE_LONG;
|
||||
break;
|
||||
case "SHORT":
|
||||
loutType = Types.TYPE_SHORT;
|
||||
break;
|
||||
case "DOUBLE":
|
||||
loutType = Types.TYPE_DOUBLE;
|
||||
break;
|
||||
default:
|
||||
loutType = Types.TYPE_STRING;
|
||||
break;
|
||||
|
||||
}
|
||||
item.put("loutItemPathName", _i.get("id"));
|
||||
}
|
||||
else {
|
||||
loutType = Types.TYPE_BYTEARRAY;
|
||||
}
|
||||
|
||||
|
||||
|
||||
item.put("loutItemPtrnIDName",loutType);
|
||||
item.put("loutItemLenCnt","".equals(_i.get("len")) ? 0 : Integer.parseInt((String) _i.get("len")));
|
||||
|
||||
|
||||
|
||||
// MIN, MAX 설정
|
||||
// 통합인터페이스는 * , 숫자만 보냄 ( 가변은 * 고정은 숫자 )
|
||||
String occurNoitm = (String) _i.get("maxCnt");
|
||||
|
||||
|
||||
int max = 0;
|
||||
int min = 0;
|
||||
if( String.valueOf(Item.OCC_MULTI_OR_NONE).equals(occurNoitm) ) { // *
|
||||
max = -1;
|
||||
item.put("loutItemRefInfo2",_i.get("count"));
|
||||
} else if ( String.valueOf(Item.OCC_ONCE_OR_NONE).equals(occurNoitm) ) { // ?
|
||||
max = 1;
|
||||
} else if ( String.valueOf(Item.OCC_MULTI_OR_ONCE).equals(occurNoitm) ) { // +
|
||||
min = 1;
|
||||
max = -1;
|
||||
} else if ( "".equals(occurNoitm) ) { // ""
|
||||
min = 1;
|
||||
max = 1;
|
||||
} else if ( occurNoitm.matches("[0-9]+") ) { // ""
|
||||
min = Integer.parseInt(occurNoitm);
|
||||
max = Integer.parseInt(occurNoitm);
|
||||
}
|
||||
|
||||
// 반복횟수 참조정보가 없는데 MIN, MAX 값이 설정되지 않은 경우 오류
|
||||
if( max == 0 && min == 0 ) {
|
||||
if("GRID".equals(type) ) {
|
||||
if ( !StringUtils.isEmpty((String) _i.get("count")) ) {
|
||||
} else {
|
||||
throw new Exception("반복횟수 참조정보 오류");
|
||||
}
|
||||
} else {
|
||||
min = 1;
|
||||
max = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if( "0".equals(occurNoitm) ) {
|
||||
occurNoitm = "";
|
||||
}
|
||||
|
||||
item.put("loutItemOccurPtrnDstcd",occurNoitm); // 레이아웃항목발생유형구분코드
|
||||
item.put("loutItemMaxOccurNoitm",max); // 레이아웃항목최대발생건수
|
||||
item.put("loutItemMinOccurNoitm",min); // 레이아웃항목최소발생건수
|
||||
|
||||
item.put("loutItemBascVal",_i.get("default")); // 레이아웃항목기본값
|
||||
if( _i.get("mask") != null && _i.get("mask").equals("Y"))
|
||||
{
|
||||
item.put("loutItemMskYn", "Y");
|
||||
item.put("loutItemMskCode", _i.get("mask2"));
|
||||
}
|
||||
else
|
||||
{
|
||||
item.put("loutItemMskYn",_i.get("mask")); // [Y/N/ ]
|
||||
}
|
||||
|
||||
if( "Y".equals(item.get("loutItemMskYn")) ) item.put("loutItemMaskLength",Integer.parseInt((String) _i.get("maskLength")));
|
||||
item.put("lyoutDptCnt",Integer.parseInt((String) _i.get("depth")) + 1 ); // 통합인터페이스 전달되는 Depth + 1을 해야 함
|
||||
item.put("decptLenCnt","".equals(_i.get("scale")) ? 0 : Integer.parseInt((String) _i.get("scale"))); // 소수점길이 META에서 "" 이면 "" 으로 표현함
|
||||
item.put("loutItemMskTarget", _i.get("maskTarget"));
|
||||
|
||||
|
||||
String dataType = "";
|
||||
if( _i.get("type") == null || "".equals(_i.get("type"))) {
|
||||
} else if( "VARCHAR".startsWith(((String) _i.get("type")).toUpperCase()) ) { // Varchar, Number
|
||||
dataType = "String";
|
||||
} else if( "NUMBER".startsWith(((String) _i.get("type")).toUpperCase()) ) { // Varchar, Number
|
||||
// JJB 수정사항 shkim 2020-08-19 숫자형 실수부 처리 문제로 BigDecimal로 처리
|
||||
dataType = "BigDecimal";
|
||||
// dataType = "Integer";
|
||||
} else if( "BIGDECIMAL".startsWith(((String) _i.get("type")).toUpperCase()) ) { // Varchar, Number
|
||||
dataType = "BigDecimal";
|
||||
}
|
||||
|
||||
item.put("lyoutItemRefPtrnIDName",dataType); // 데이터타입
|
||||
|
||||
list.add(item);
|
||||
|
||||
if( _i.containsKey("item") && _i.entrySet().size() > 0 ) {
|
||||
list.addAll(setLayoutItemsJSN((JSONArray) _i.get("item"), msgType, loutName, (String) _i.get("no")));
|
||||
}
|
||||
} // end FOR
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 통합인터페이스 시스템(iim)에서 전문 레이아웃에 대한 INSERT, DELETE 요청
|
||||
* *
|
||||
@@ -194,7 +397,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
*/
|
||||
@RequestMapping(params = "cmd=Message")
|
||||
public View parseMessage(HttpServletRequest request, HttpServletResponse response, String schema) throws Exception {
|
||||
UserAccessLogger.log(request, "Layout", "L", "cmd=Message");
|
||||
UserAccessLogger.log(request, "레이아웃", "L", "cmd=Message");
|
||||
Document rDoc = null;
|
||||
Element results = null;
|
||||
String resultS = null;
|
||||
@@ -204,35 +407,23 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
String recvTime = DateUtil.getDateTime("yyyyMMddHHmmssSS").substring(0, 16);
|
||||
|
||||
// 초기화
|
||||
if (schema != null) {
|
||||
DataSourceContextHolder.setDataSourceType(DataSourceTypeManager.getDataSourceType(schema));
|
||||
} else {
|
||||
logger.error(">>> DataSourceTypeManager.getDataSourceType(schema) error. schema is null");
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
DataSourceContextHolder.setDataSourceType(DataSourceTypeManager.getDataSourceType(schema));
|
||||
try {
|
||||
|
||||
SAXBuilder builder = new SAXBuilder();
|
||||
|
||||
// 응답 전문
|
||||
InputStream resStream = request.getSession().getServletContext().getResourceAsStream("/WEB-INF/layout-messagesync-res.xml");
|
||||
if (resStream == null) {
|
||||
throw new Exception("layout-messagesync-res.xml 파일을 찾을 수 없습니다.");
|
||||
}
|
||||
try {
|
||||
rDoc = builder.build(resStream);
|
||||
results = rDoc.getRootElement();
|
||||
} finally {
|
||||
resStream.close();
|
||||
}
|
||||
|
||||
// 요청 전문
|
||||
sis = request.getInputStream();
|
||||
Document doc = builder.build(sis);
|
||||
|
||||
// log 기록
|
||||
File res = new File( request.getSession().getServletContext().getRealPath("/WEB-INF/") + "/layout-messagesync-res.xml" );
|
||||
// ServletContext context = request.getSession().getServletContext();
|
||||
// InputStream res = context.getResourceAsStream("layout-messagesync-res.xml");
|
||||
rDoc = builder.build(res);
|
||||
results = rDoc.getRootElement();
|
||||
|
||||
|
||||
// 요청 전문 - InputStream을 먼저 byte[]로 읽음
|
||||
sis = request.getInputStream();
|
||||
byte[] arg = new byte[request.getContentLength()];
|
||||
int resultSet =0;
|
||||
int resultSet = 0;
|
||||
int total = 0;
|
||||
try {
|
||||
resultSet = sis.readLine(arg, 0, arg.length);
|
||||
@@ -240,12 +431,20 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
total += resultSet;
|
||||
resultSet = sis.readLine(arg, total, 1024);
|
||||
}
|
||||
|
||||
param.put("recvData", new String(arg));
|
||||
|
||||
param.put("recvData", new String(arg, "UTF-8"));
|
||||
} catch(Exception e) {
|
||||
logger.error("MessageSync.err - don't read the XML File - " + new String(arg), e);
|
||||
param.put("recvData", "");
|
||||
}
|
||||
|
||||
// byte[]로부터 XML 파싱 (BOM 제거)
|
||||
String xmlContent = new String(arg, "UTF-8").trim();
|
||||
// BOM 제거 (UTF-8 BOM: EF BB BF)
|
||||
if (xmlContent.startsWith("\uFEFF")) {
|
||||
xmlContent = xmlContent.substring(1);
|
||||
}
|
||||
Document doc = builder.build(new ByteArrayInputStream(xmlContent.getBytes("UTF-8")));
|
||||
|
||||
param.put("logPrcssSeqno", UUIDGenerator.getUUID());
|
||||
// xml 1.1
|
||||
@@ -263,7 +462,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
param.put("recvAmndHMS", recvTime);
|
||||
|
||||
logger.info(layoutName + " command - [" + command +"]");
|
||||
//HashMap<String, Object> returnMap = new HashMap<String,Object>();
|
||||
HashMap<String, Object> returnMap = new HashMap<String,Object>();
|
||||
if( command.equals("delete") ) {
|
||||
HashMap<String,Object> vo = new HashMap<String,Object>();
|
||||
vo.put("loutName",layoutName);
|
||||
@@ -276,15 +475,19 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
|
||||
service.addLayoutSyncLog(param);
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
// LoutName 검증
|
||||
// 인터페이스 이름 20자리 이하
|
||||
// EAI _CBSS _CBSR _CBSE _UAIR
|
||||
// FEP _CBS _ORG
|
||||
String fattern = "[A-Z0-9]{3}_[A-Z0-9]{3}[A-Z0-9]*_[A-Z0-9]{3,4}";
|
||||
if(!layoutName.matches(fattern)) {
|
||||
throw new BizException("잘못된 전문레이아웃명 입니다.\n명명규칙을 확인하세요.\n[A-Z0-9]{3}_[A-Z0-9]{3}[A-Z0-9]*_[A-Z0-9]{3,4}");
|
||||
}
|
||||
// EAI _CORS _CORR _CORE _UAIR
|
||||
// FEP _COR _ORG
|
||||
String fattern = "[A-Za-z0-9]*";
|
||||
|
||||
//레이아웃 필터링으로 미동작 주석처
|
||||
// if(!layoutName.matches(fattern)) {
|
||||
// throw new BizException("잘못된 전문레이아웃명 입니다.\n명명규칙을 확인하세요.\n"+fattern);
|
||||
// }
|
||||
|
||||
String layout = body.getChild("data").getText();
|
||||
logger.info(layoutName + " recv Data - [" + layout + "]");
|
||||
@@ -297,7 +500,16 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
Element format = doc2.getRootElement();
|
||||
|
||||
String msgType = format.getAttributeValue("msgType");
|
||||
if( "ASCII".equals(format.getAttributeValue("msgType")) ) {
|
||||
String useSystem = format.getAttributeValue("usesystem");
|
||||
|
||||
// useSystem "EAI", "FEP" 만 배포 받는다.
|
||||
if (!"EAI".equalsIgnoreCase(useSystem) && !"FEP".equalsIgnoreCase(useSystem)) {
|
||||
String errorMessage = "사용 시스템(" + useSystem + ")인 전문레이아웃은 EAI, FEP로 배포 안됨.";
|
||||
logger.error(errorMessage);
|
||||
throw new Exception(errorMessage);
|
||||
}
|
||||
|
||||
if( "ASCII".equals(format.getAttributeValue("msgType")) ) {
|
||||
msgType = "BYTES";
|
||||
} else if( "VASCII".equals(format.getAttributeValue("msgType")) ) {
|
||||
msgType = "VBYTES";
|
||||
@@ -365,8 +577,8 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
resultS = StringUtils.toXMLString(rDoc, true);
|
||||
|
||||
} catch( Exception e ) {
|
||||
logger.error(e);
|
||||
logger.error(e.getStackTrace()[0]);
|
||||
logger.error("",e);
|
||||
logger.error("",e.getStackTrace()[0]);
|
||||
try {
|
||||
if( results != null ) {
|
||||
results.getChild("Result").setText("False");
|
||||
@@ -383,22 +595,16 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
param.put("PrcssRsltCmnt", StringUtils.cuttings(CommonUtil.getArrayString(e.getStackTrace(), "\n"), 4000)[0]);
|
||||
service.addLayoutSyncLog(param);
|
||||
} catch(Exception ee) {
|
||||
//ee.printStackTrace();
|
||||
logger.error("error",e);
|
||||
ee.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
ServletOutputStream sos = null;
|
||||
try {
|
||||
sos = response.getOutputStream();
|
||||
if(resultS != null) {
|
||||
sos.write(resultS.getBytes());
|
||||
}
|
||||
|
||||
sos.write(resultS.getBytes());
|
||||
} catch( Exception e ) {
|
||||
//e.printStackTrace();
|
||||
//취약점코드 수정 2019.08.22 SW
|
||||
logger.error(e.getMessage());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if( sis != null ) sis.close();
|
||||
if( sos != null ) sos.close();
|
||||
@@ -406,6 +612,382 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
return null;
|
||||
}
|
||||
|
||||
// JJB 수정사항 shkim 2020-05-13 JSON 타입 추가
|
||||
/**
|
||||
* 통합인터페이스 시스템(iim)에서 전문 레이아웃에 대한 INSERT, DELETE 요청
|
||||
* *
|
||||
* @param request
|
||||
* @param response
|
||||
* @param schema
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(params = "cmd=MessageJSON")
|
||||
public View parseMessageJSN(HttpServletRequest request, HttpServletResponse response, String schema) throws Exception {
|
||||
UserAccessLogger.log(request, "레이아웃", "L", "cmd=MessageJSON");
|
||||
|
||||
ServletInputStream sis = null;
|
||||
|
||||
JSONObject results = new JSONObject();
|
||||
JSONObject resultS = new JSONObject();
|
||||
resultS.put("Results", results);
|
||||
|
||||
|
||||
HashMap<String, String> param = new HashMap<String, String>();
|
||||
String recvTime = DateUtil.getDateTime("yyyyMMddHHmmssSS").substring(0, 16);
|
||||
|
||||
// 초기화
|
||||
DataSourceContextHolder.setDataSourceType(DataSourceTypeManager.getDataSourceType(schema));
|
||||
try {
|
||||
// // 요청 전문
|
||||
sis = request.getInputStream();
|
||||
|
||||
JSONObject json = (JSONObject) JSONValue.parse(new InputStreamReader(sis));
|
||||
|
||||
// JJB 향후제거 shkim 2020-05-13 연계 테스트 체크
|
||||
logger.error("\n\n MMI SYNC Request : " + json.toString());
|
||||
|
||||
// log 기록
|
||||
byte[] arg = new byte[request.getContentLength()];
|
||||
int resultSet =0;
|
||||
int total = 0;
|
||||
try {
|
||||
resultSet = sis.readLine(arg, 0, arg.length);
|
||||
while(resultSet != -1) {
|
||||
total += resultSet;
|
||||
resultSet = sis.readLine(arg, total, 1024);
|
||||
}
|
||||
|
||||
param.put("recvData", new String(arg));
|
||||
} catch(Exception e) {
|
||||
logger.error("MessageSync.err - don't read the JSON File - " + new String(arg), e);
|
||||
param.put("recvData", "");
|
||||
}
|
||||
|
||||
syncLayout(param, recvTime, json);
|
||||
// results.getChild("Result").setText("S".equals(param.get("prcssRslt"))?"True":"False");
|
||||
// results.getChild("ResultMessage").setText("S".equals(param.get("prcssRslt"))?"성공":param.get("prcssRsltCmnt"));
|
||||
|
||||
// resultS = StringUtils.toXMLString(rDoc, true);
|
||||
|
||||
results.put("Result", "S".equals(param.get("prcssRslt"))?"True":"False");
|
||||
results.put("ResultMessage", "S".equals(param.get("prcssRslt"))?"성공":param.get("prcssRsltCmnt"));
|
||||
|
||||
|
||||
} catch( Exception e ) {
|
||||
logger.error("", e);
|
||||
try {
|
||||
if( results != null ) {
|
||||
// results.getChild("Result").setText("False");
|
||||
// results.getChild("ResultMessage").setText( e.getMessage() );
|
||||
|
||||
// resultS = StringUtils.toXMLString(rDoc, true);
|
||||
results.put("Result", "False");
|
||||
results.put("ResultMessage", e.getMessage() );
|
||||
|
||||
}
|
||||
if( param.get("logPrcssSeqno") == null ) {
|
||||
param.put("logPrcssSeqno", UUIDGenerator.getUUID());
|
||||
param.put("ServiceName", "MessageSync");
|
||||
param.put("RecvAmndHMS", recvTime);
|
||||
}
|
||||
param.put("PrcssRslt", "F");
|
||||
param.put("PrcssRsltCmnt", StringUtils.cuttings(CommonUtil.getArrayString(e.getStackTrace(), "\n"), 4000)[0]);
|
||||
service.addLayoutSyncLog(param);
|
||||
} catch(Exception ee) {
|
||||
ee.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
ServletOutputStream sos = null;
|
||||
try {
|
||||
sos = response.getOutputStream();
|
||||
sos.write(resultS.toString().getBytes());
|
||||
} catch( Exception e ) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if( sis != null ) sis.close();
|
||||
if( sos != null ) sos.close();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void syncLayout(HashMap<String, String> param, String recvTime, JSONObject json)
|
||||
throws Exception, BizException, ParseException {
|
||||
JSONObject header = (JSONObject) ((JSONObject) json.get("Message")).get("Header");
|
||||
JSONObject body = (JSONObject) ((JSONObject) json.get("Message")).get("Body");
|
||||
|
||||
String serviceName = (String) header.get("ServiceName");
|
||||
String command = (String) header.get("Command");
|
||||
|
||||
String interfaceId = (String) body.get("interfaceCode");
|
||||
Object layoutObject = body.get("Layout");
|
||||
|
||||
param.put("serviceName", serviceName);
|
||||
param.put("command", command);
|
||||
param.put("recvAmndHMS", recvTime);
|
||||
|
||||
|
||||
|
||||
JSONArray layoutArray = null;
|
||||
if (layoutObject instanceof JSONArray) {
|
||||
insertInterface(interfaceId,body);
|
||||
layoutArray = (JSONArray) layoutObject;
|
||||
for (int i = 0; i < layoutArray.size(); i++) {
|
||||
syncLayout(param, body, command, (JSONObject) layoutArray.get(i));
|
||||
}
|
||||
} else {
|
||||
syncLayout(param, body, command, (JSONObject) layoutObject);
|
||||
}
|
||||
|
||||
|
||||
// 전문 변환 매핑이 필요한 지 확인 한 후 매핑 한다.
|
||||
if (body.get("interfaceLayout") != null && body.get("serviceLayout") != null && layoutArray != null
|
||||
&& layoutArray.size() % 2 == 0) {
|
||||
|
||||
String[] serviceLayoutList = ((String)body.get("serviceLayout")).split(",");
|
||||
String[] interfaceLayoutList = ((String)body.get("interfaceLayout")).split(",");
|
||||
|
||||
if ( "E".equals(interfaceId.substring(0,1)) ) // EAI일때
|
||||
{
|
||||
for( String serviceLayout : serviceLayoutList)
|
||||
{
|
||||
for(String interfaceLayout : interfaceLayoutList )
|
||||
{
|
||||
if ( interfaceLayout.endsWith(serviceLayout) )
|
||||
{
|
||||
String cnvsnName = transformService.transactionLayoutToTransform(json,interfaceLayout, serviceLayout);
|
||||
CommonCommand refreshCommand = new CommonCommand("com.eactive.eai.agent.transformer.ReloadTransformCommand",cnvsnName);
|
||||
//변환매핑 reload처리후, result 받아서 예외처리 안한 이유. 앞단에서 레이아웃 동기화 command 날리면서 온라인이동 통신 성공해야 여기 까이 오기때문에, 굳이 추가하지않음.
|
||||
agentUtilService.broadcast(refreshCommand);
|
||||
logger.debug(">>> reload cnvsName = " +cnvsnName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else //FEP일때
|
||||
{
|
||||
for( String srcLayout : interfaceLayoutList)
|
||||
{
|
||||
for( String targetLayout : serviceLayoutList )
|
||||
{
|
||||
String cnvsnName = transformService.transactionLayoutToTransform(json,srcLayout, targetLayout);
|
||||
CommonCommand refreshCommand = new CommonCommand("com.eactive.eai.agent.transformer.ReloadTransformCommand",cnvsnName);
|
||||
//변환매핑 reload처리후, result 받아서 예외처리 안한 이유. 앞단에서 레이아웃 동기화 command 날리면서 온라인이동 통신 성공해야 여기 까이 오기때문에, 굳이 추가하지않음.
|
||||
agentUtilService.broadcast(refreshCommand);
|
||||
logger.debug(">>> reload cnvsName = " +cnvsnName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void insertInterface(String interfaceId, JSONObject body) throws Exception
|
||||
{
|
||||
if ( interfaceId.startsWith("E") )
|
||||
{
|
||||
insertInterfaceForEAI(interfaceId, body);
|
||||
}
|
||||
else
|
||||
{
|
||||
insertInterfaceForFEP(interfaceId, body);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void insertInterfaceForEAI(String interfaceId, JSONObject body) throws Exception
|
||||
{
|
||||
HashMap<String, Object> param = new HashMap<String, Object>();
|
||||
|
||||
|
||||
String bizCode = (String) body.get("bzSystemCode");
|
||||
String interfaceDesc = (String) body.get("interfaceDesc");
|
||||
String tuxedoxaYn = (String) body.get("tuxedoXaYN");
|
||||
String tuxedosvcId = (String) body.get("serviceCode");
|
||||
param.put("eaiSvcName", interfaceId+"S1");
|
||||
param.put("eaiBzwkDstCd", bizCode);
|
||||
param.put("interfaceId", interfaceId);
|
||||
param.put("interfaceDesc", interfaceDesc);
|
||||
param.put("io", "I");
|
||||
param.put("splizdmndDstCd","S");
|
||||
param.put("inExtnlDstCd","1");
|
||||
param.put("tuxedoxaYn", tuxedoxaYn);
|
||||
|
||||
if( "INF".equals(interfaceId.substring(5, 8)) )
|
||||
{
|
||||
param.put("tuxedosvcId", tuxedosvcId);
|
||||
}
|
||||
|
||||
if( "S".equals(interfaceId.substring(1, 2)) ) //sync일경우
|
||||
{
|
||||
param.put("layoutMappingName",interfaceId+"_I,"+interfaceId.substring(5, interfaceId.length())+"_O");
|
||||
param.put("svcMotivuseDstCd","SYNC");
|
||||
}
|
||||
else
|
||||
{
|
||||
param.put("layoutMappingName",interfaceId+"_I");
|
||||
param.put("svcMotivuseDstCd","ASYN");
|
||||
}
|
||||
|
||||
interfaceService.lazyInsertToIF01(param);
|
||||
|
||||
}
|
||||
|
||||
private void insertInterfaceForFEP(String interfaceId, JSONObject body) throws Exception
|
||||
{
|
||||
HashMap<String, Object> param = new HashMap<String, Object>();
|
||||
|
||||
String bizCode = (String) body.get("bzSystemCode");
|
||||
String interfaceDesc = (String) body.get("interfaceDesc");
|
||||
String tuxedoxaYn = (String) body.get("tuxedoXaYN");
|
||||
String tuxedosvcId = (String) body.get("serviceCode");
|
||||
|
||||
String io = "1".equals(interfaceId.substring(1, 2)) ? "I" : "O";
|
||||
String splizdmndDstCd = interfaceId.substring(interfaceId.length()-1);
|
||||
String inExtnlDstCd = "";
|
||||
|
||||
if ( "IS:OR".contains(io+splizdmndDstCd) )
|
||||
{
|
||||
inExtnlDstCd = "1";
|
||||
param.put("bzwksvckeyName",interfaceId.substring(5, interfaceId.length()-1));
|
||||
}
|
||||
else
|
||||
{
|
||||
inExtnlDstCd = "2";
|
||||
}
|
||||
|
||||
param.put("eaiSvcName", interfaceId+splizdmndDstCd+inExtnlDstCd);
|
||||
param.put("eaiBzwkDstCd", bizCode);
|
||||
param.put("interfaceId", interfaceId);
|
||||
param.put("interfaceDesc", interfaceDesc);
|
||||
param.put("io", io);
|
||||
param.put("splizdmndDstCd",splizdmndDstCd);
|
||||
param.put("inExtnlDstCd",inExtnlDstCd);
|
||||
param.put("svcMotivuseDstCd","ASYN");
|
||||
param.put("tuxedoxaYn", tuxedoxaYn);
|
||||
|
||||
|
||||
param.put("layoutMappingName",interfaceId+"1");
|
||||
|
||||
interfaceService.lazyInsertToIF01(param);
|
||||
}
|
||||
|
||||
private void syncLayout(HashMap<String, String> param, JSONObject body, String command, JSONObject layout)
|
||||
throws Exception, BizException, ParseException {
|
||||
|
||||
String layoutName = (String) layout.get("id");
|
||||
String useSystem = (String) layout.get("usesystem");
|
||||
|
||||
param.put("logPrcssSeqno", UUIDGenerator.getUUID());
|
||||
param.put("loutName", layoutName);
|
||||
|
||||
logger.info(layoutName + " command - [" + command +"]");
|
||||
if( command.equals("delete") ) {
|
||||
HashMap<String,Object> vo = new HashMap<String,Object>();
|
||||
vo.put("loutName",layoutName);
|
||||
|
||||
service.deleteLayout(vo);
|
||||
|
||||
CommonCommand commonCommand = new CommonCommand("com.eactive.eai.agent.transformer.RemoveLayoutCommand",vo.get("loutName"));
|
||||
HashMap<String,String> result = AgentParserUtils.parse(commonCommand, agentUtilService,"prcssRslt","prcssRsltCmnt");
|
||||
param.putAll(result);
|
||||
|
||||
service.addLayoutSyncLog(param);
|
||||
} else {
|
||||
// LoutName 검증
|
||||
// 인터페이스 이름 20자리 이하
|
||||
// EAI _CORS _CORR _CORE _UAIR
|
||||
// FEP _COR _ORG
|
||||
String fattern = "";
|
||||
switch(useSystem)
|
||||
{
|
||||
case "FEP":
|
||||
fattern = "[A-Za-z0-9]*[12E]{1}";
|
||||
break;
|
||||
case "EAI":
|
||||
case "FWK":
|
||||
fattern = "[A-Za-z0-9]*_[IOE]{1}";
|
||||
break;
|
||||
}
|
||||
|
||||
if(!layoutName.matches(fattern)) {
|
||||
throw new BizException("잘못된 전문레이아웃명 입니다.\n명명규칙을 확인하세요.\n"+fattern);
|
||||
}
|
||||
|
||||
logger.info(layoutName + " recv Data - [" + layout + "]");
|
||||
param.put("recvData", layout.toString());
|
||||
|
||||
HashMap<String,Object> vo = new HashMap<String,Object>();
|
||||
|
||||
String msgType = (String) layout.get("msgType");
|
||||
if( "ASCII".equals(msgType) ) {
|
||||
msgType = "FEP".equals(useSystem) ? "BYTES" : "PBYTES";
|
||||
} else if( "VASCII".equals(msgType) ) {
|
||||
msgType = "VBYTES";
|
||||
}
|
||||
|
||||
|
||||
// Layout Format (TR07)
|
||||
vo.put("loutName",layoutName);
|
||||
vo.put("loutPtrnName",msgType); // ASCII, EBCDIC, XML
|
||||
vo.put("loutDesc",layout.get("desc"));
|
||||
|
||||
String date = (String) layout.get("date");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
vo.put("lastAmndHMS",new SimpleDateFormat("yyyyMMddHHmmssSS").format(sdf.parse(date)));
|
||||
|
||||
vo.put("eaiBzwkDstcd",layout.get("group"));
|
||||
|
||||
if( !"".equals(layout.get("createBy"))) {
|
||||
vo.put("createBy",layout.get("createBy"));
|
||||
}
|
||||
|
||||
if( !"".equals(layout.get("updateBy"))) {
|
||||
vo.put("updateBy",layout.get("updateBy"));
|
||||
}
|
||||
|
||||
|
||||
// Layout Item Format (TR08)
|
||||
List<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>();
|
||||
HashMap<String,Object> tr08 = new HashMap<String,Object>();
|
||||
tr08.put("loutName",layoutName);
|
||||
tr08.put("loutItemName",layoutName);
|
||||
tr08.put("loutItemSerno",0);
|
||||
tr08.put("loutItemIDName",1000);
|
||||
tr08.put("parntLoutItemIDName",0);
|
||||
tr08.put("loutItemDesc",layout.get("desc"));
|
||||
tr08.put("loutItemNodePtrnIDName",Item.NODE_MESSAGE);
|
||||
tr08.put("loutItemPtrnIDName",Types.TYPE_UNKNOWN);
|
||||
tr08.put("loutItemPathName",""); //
|
||||
tr08.put("loutItemLenCnt",0);
|
||||
tr08.put("loutItemRefInfo",""); // GROUP NAME
|
||||
tr08.put("loutItemRefInfo2",""); //
|
||||
tr08.put("loutItemOccurPtrnDstcd",""); // 레이아웃항목발생유형구분코드
|
||||
tr08.put("loutItemMaxOccurNoitm",0); // 레이아웃항목최대발생건수
|
||||
tr08.put("loutItemMinOccurNoitm",0); // 레이아웃항목최소발생건수
|
||||
tr08.put("loutItemBascVal",""); // 레이아웃항목기본값
|
||||
tr08.put("loutItemMskYn"," "); //
|
||||
tr08.put("lyoutDptCnt",1);
|
||||
tr08.put("decptLenCnt",0); // 소수점길이
|
||||
tr08.put("lyoutItemRefPtrnIdName",""); // 데이터타입
|
||||
|
||||
list.add(tr08);
|
||||
list.addAll(setLayoutItemsJSN((JSONArray) layout.get("data"), msgType, layoutName, null));
|
||||
|
||||
service.insertLayout(vo, list); //FIXME : 스키마 변경 룰 적용해야 함
|
||||
|
||||
CommonCommand commonCommand = new CommonCommand("com.eactive.eai.agent.transformer.ReloadLayoutCommand",vo.get("loutName"));
|
||||
HashMap<String,String> result = AgentParserUtils.parse(commonCommand, agentUtilService,"prcssRslt","prcssRsltCmnt");
|
||||
param.putAll(result);
|
||||
service.addLayoutSyncLog(param);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* [통합인터페이스]에 레이아웃 정보 송신
|
||||
* * schemaId에 따라 별도로 저장 됨
|
||||
@@ -420,11 +1002,11 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
@RequestMapping(params = "cmd=M_LAYOUT")
|
||||
public String migrationLayout(HttpServletRequest request, HttpServletResponse response, ModelMap model, String schema) throws Exception {
|
||||
|
||||
UserAccessLogger.log(request, "Layout", "M", "cmd=SYNC");
|
||||
UserAccessLogger.log(request, "레이아웃", "M", "cmd=SYNC");
|
||||
|
||||
// if( !DataSourceTypeManager.EAI.equals(schema) && !DataSourceTypeManager.FEP.equals(schema) ) {
|
||||
if( !DataSourceTypeManager.EAI.equals(schema) && !DataSourceTypeManager.FEP.equals(schema) ) {
|
||||
schema = DataSourceContextHolder.getDataSourceType().getName();
|
||||
// }
|
||||
}
|
||||
|
||||
// 1. 파라메터 셋팅
|
||||
String migration = monitoringContext.getStringProperty("iim.layout.migration" ,"");
|
||||
@@ -437,7 +1019,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
param.put("userId", SessionManager.getUserId(request));
|
||||
param.put("schemaId", schema);
|
||||
param.put("filePath", StringUtils.defaultString(props[0], request.getSession().getServletContext().getRealPath("/WEB-INF/")));
|
||||
param.put("encoding", StringUtils.defaultString(props[1],"utf-8"));
|
||||
param.put("encoding", StringUtils.defaultString(props[1],"EUC-KR"));
|
||||
param.put("indent", StringUtils.defaultString(props[2],"yes"));
|
||||
param.put("path", request.getSession().getServletContext().getRealPath("/WEB-INF/"));
|
||||
|
||||
@@ -457,12 +1039,9 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
File mkf = new File(param.get("filePath") + "/" + param.get("schemaId"));
|
||||
if( mkf.exists() ) {
|
||||
File[] fList = mkf.listFiles();
|
||||
if(fList != null){
|
||||
for( int i=0; i< fList.length; i++) {
|
||||
fList[i].delete();
|
||||
}
|
||||
for( int i=0; i< fList.length; i++) {
|
||||
fList[i].delete();
|
||||
}
|
||||
|
||||
mkf.delete();
|
||||
}
|
||||
mkf.mkdir();
|
||||
@@ -481,7 +1060,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
+ "/" + layout.get("LOUTNAME") + ".xml";
|
||||
|
||||
// 파일 저장
|
||||
//File newFile = new File(newName);
|
||||
File newFile = new File(newName);
|
||||
|
||||
TransformerFactory factory = TransformerFactory.newInstance();
|
||||
Transformer transformer = factory.newTransformer();
|
||||
@@ -497,8 +1076,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
succCnt++;
|
||||
}
|
||||
} catch(Exception e) {
|
||||
//e.printStackTrace();
|
||||
logger.error("migrationLayout error",e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -508,11 +1086,11 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
@RequestMapping(params = "cmd=M_LAYOUT_MAPPING")
|
||||
public String migrationLayoutMapping(HttpServletRequest request, HttpServletResponse response, ModelMap model, String schema) throws Exception {
|
||||
|
||||
UserAccessLogger.log(request, "Layout", "M", "cmd=SYNC");
|
||||
UserAccessLogger.log(request, "레이아웃", "M", "cmd=SYNC");
|
||||
|
||||
// if( !DataSourceTypeManager.EAI.equals(schema) && !DataSourceTypeManager.FEP.equals(schema) ) {
|
||||
if( !DataSourceTypeManager.EAI.equals(schema) && !DataSourceTypeManager.FEP.equals(schema) ) {
|
||||
schema = DataSourceContextHolder.getDataSourceType().getName();
|
||||
// }
|
||||
}
|
||||
|
||||
// 1. 파라메터 셋팅
|
||||
String migration = monitoringContext.getStringProperty("iim.layout.migration" ,"");
|
||||
@@ -525,7 +1103,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
param.put("userId", SessionManager.getUserId(request));
|
||||
param.put("schemaId", schema);
|
||||
param.put("filePath", StringUtils.defaultString(props[0], request.getSession().getServletContext().getRealPath("/WEB-INF/")));
|
||||
param.put("encoding", StringUtils.defaultString(props[1],"utf-8"));
|
||||
param.put("encoding", StringUtils.defaultString(props[1],"EUC-KR"));
|
||||
param.put("indent", StringUtils.defaultString(props[2],"yes"));
|
||||
param.put("path", request.getSession().getServletContext().getRealPath("/WEB-INF/"));
|
||||
|
||||
@@ -545,12 +1123,9 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
File mkf = new File(param.get("filePath") + "/mapping_" + param.get("schemaId"));
|
||||
if( mkf.exists() ) {
|
||||
File[] fList = mkf.listFiles();
|
||||
if(fList != null){
|
||||
for( int i=0; i< fList.length; i++) {
|
||||
fList[i].delete();
|
||||
}
|
||||
for( int i=0; i< fList.length; i++) {
|
||||
fList[i].delete();
|
||||
}
|
||||
|
||||
mkf.delete();
|
||||
}
|
||||
mkf.mkdir();
|
||||
@@ -567,7 +1142,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
|
||||
// 파일 저장
|
||||
if( xmlQuery.indexOf("Layout") != -1) {
|
||||
//File newFile = new File(newName);
|
||||
File newFile = new File(newName);
|
||||
|
||||
TransformerFactory factory = TransformerFactory.newInstance();
|
||||
Transformer transformer = factory.newTransformer();
|
||||
@@ -584,8 +1159,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
//e.printStackTrace();
|
||||
logger.error("migrationLayoutMapping error",e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null ;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.apache.commons.httpclient.util.DateUtil;
|
||||
import org.jdom.Document;
|
||||
@@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
|
||||
import com.eactive.eai.rms.common.base.OnlBaseService;
|
||||
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
|
||||
import com.eactive.eai.rms.common.util.StringUtils;
|
||||
import com.eactive.eai.rms.data.entity.onl.layout.LayoutService;
|
||||
import com.eactive.eai.rms.onl.manage.rule.layout.LayoutDao;
|
||||
import com.eactive.eai.rms.onl.manage.serviceinfo.eaimsg.EaiMsgDao;
|
||||
|
||||
@@ -38,6 +40,9 @@ public class LayoutSyncService extends OnlBaseService {
|
||||
|
||||
@Autowired
|
||||
private EaiMsgDao eaiMsgDao;
|
||||
|
||||
@Autowired
|
||||
private LayoutService layoutService;
|
||||
|
||||
public List<HashMap<String,Object>> getAllEAIMessages(HashMap<String, String> param) throws Exception {
|
||||
return eaiMsgDao.selectListAll(param);
|
||||
@@ -50,10 +55,7 @@ public class LayoutSyncService extends OnlBaseService {
|
||||
|
||||
public void insertLayout(HashMap<String,Object> vo, List<HashMap<String,Object>> items)
|
||||
throws Exception {
|
||||
|
||||
dao.deleteItemAll(vo);
|
||||
dao.delete(vo);
|
||||
|
||||
deleteLayout(vo);
|
||||
dao.insert(vo);
|
||||
|
||||
for(HashMap<String,Object> item : items) {
|
||||
@@ -74,8 +76,7 @@ public class LayoutSyncService extends OnlBaseService {
|
||||
|
||||
public void deleteLayout(HashMap<String,Object> vo)
|
||||
throws Exception {
|
||||
dao.deleteItemAll(vo);
|
||||
dao.delete(vo);
|
||||
layoutService.findById(Objects.toString(vo.get("loutName"))).ifPresent(layoutService::delete);
|
||||
}
|
||||
|
||||
public List<HashMap<String,Object>> getAllLayouts() throws Exception {
|
||||
|
||||
@@ -314,6 +314,13 @@
|
||||
</dynamic>
|
||||
)
|
||||
WHERE ROWNO BETWEEN #startNum# AND #endNum#
|
||||
</statement>
|
||||
</statement>
|
||||
|
||||
<statement id="insertToIF01" parameterClass="java.util.HashMap">
|
||||
INSERT INTO $schemaId$.TSEAIIF01
|
||||
(EAISVCNAME, EAIBZWKDSTCD, EAITRANNAME, EAISVCDESC, IO, SPLIZDMNDDSTCD, STNDTELGMWTINEXTNLDSTCD, SVCMOTIVUSEDSTCD, BZWKSVCKEYNAME, LAYOUTMAPPINGNAME CREATEBY, UPDATEBY)
|
||||
VALUES
|
||||
(#eaiSvcName#, #eaiBzwkDstCd#, #interfaceId#, #interfaceDesc#, #io#, #splizdmndDstCd#, #inExtnlDstCd#, #svcMotivuseDstCd#, #bzwksvckeyName#, #layoutMappingName#, #loginId#, #loginId# )
|
||||
</statement>
|
||||
</sqlMap>
|
||||
|
||||
@@ -0,0 +1,458 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
<sqlMap namespace="Layout">
|
||||
<!-- #### 레이아웃 ### -->
|
||||
<!-- 목록 조회 -->
|
||||
<statement id="selectList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT FA.*, FB.BZWKDSTICNAME
|
||||
FROM (
|
||||
SELECT ROWNO, LOUTNAME , LOUTPTRNNAME , LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT ROWNUM AS ROWNO,
|
||||
LOUTNAME, LOUTPTRNNAME, LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT A.LOUTNAME, A.LOUTPTRNNAME, A.LOUTDESC, B.LOUTPTRNDESC,
|
||||
A.LASTAMNDHMS , A.EAIBZWKDSTCD , A.UAPPLNAME , A.SYSINTFACNAME
|
||||
FROM $schemaId$.TSEAITR07 A, $schemaId$.TSEAITR06 B
|
||||
WHERE A.LOUTPTRNNAME = B.LOUTPTRNNAME
|
||||
AND A.EAIBZWKDSTCD IN (select EAIBZWKDSTCD from $schemaId$.TSEAIRM06 where userId =#loginId#)
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
A.LOUTNAME LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
A.EAIBZWKDSTCD LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
A.LOUTDESC LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
) TMP1
|
||||
) TMP2 WHERE ROWNO BETWEEN #startNum# AND #endNum#
|
||||
) FA LEFT OUTER JOIN $schemaId$.TSEAICM01 FB
|
||||
ON FA.EAIBZWKDSTCD = FB.EAIBZWKDSTCD
|
||||
ORDER BY 1
|
||||
</statement>
|
||||
|
||||
<!-- 전체 목록수 얻기 -->
|
||||
<statement id="selectListCount" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM $schemaId$.TSEAITR07
|
||||
WHERE EAIBZWKDSTCD IN (select EAIBZWKDSTCD from $schemaId$.TSEAIRM06 where userId =#loginId#)
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
LOUTNAME LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
EAIBZWKDSTCD LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
LOUTDESC LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
</statement>
|
||||
|
||||
<!-- item list -->
|
||||
<!-- select level - 1 "level" -->
|
||||
<!-- , LoutItemIDName "id" -->
|
||||
<!-- , ParntLoutItemIDName "parent" -->
|
||||
<!-- , 'true' "expanded" -->
|
||||
<!-- , decode(LoutItemNodePtrnIDName,2203,'true','false') "isLeaf" -->
|
||||
<!-- , substr( SYS_CONNECT_BY_PATH(decode (level,1,LoutName,LoutItemName), '.'),2) LOUTITEMPATH -->
|
||||
<!-- , LOUTNAME -->
|
||||
<!-- , LOUTITEMIDNAME -->
|
||||
<!-- , LOUTITEMNAME -->
|
||||
<!-- , LOUTITEMDESC -->
|
||||
<!-- , LOUTITEMSERNO -->
|
||||
<!-- , LOUTITEMLENCNT -->
|
||||
<!-- , DECPTLENCNT -->
|
||||
<!-- , LOUTITEMNODEPTRNIDNAME -->
|
||||
<!-- , LOUTITEMPTRNIDNAME -->
|
||||
<!-- , decode(LoutItemNodePtrnIDName -->
|
||||
<!-- ,2201,'MESSAGE' -->
|
||||
<!-- ,2202,'GROUP' -->
|
||||
<!-- ,2203,'FIELD' -->
|
||||
<!-- ,2204,'ATTR' -->
|
||||
<!-- ,'UNKNOWN' -->
|
||||
<!-- ) LOUTITEMNODEPTRNIDDESC -->
|
||||
<!-- , decode(LoutItemPtrnIDName -->
|
||||
<!-- ,2100,'UNKNOWN' -->
|
||||
<!-- ,2101,'STRING' -->
|
||||
<!-- ,2102,'INT' -->
|
||||
<!-- ,2103,'LONG' -->
|
||||
<!-- ,2104,'SHORT' -->
|
||||
<!-- ,2105,'DOUBLE' -->
|
||||
<!-- ,2106,'FLOAT' -->
|
||||
<!-- ,2107,'CHAR' -->
|
||||
<!-- ,2108,'BYTE' -->
|
||||
<!-- ,2109,'DATE' -->
|
||||
<!-- ,2110,'TIME' -->
|
||||
<!-- ,2111,'TIMESTAMP' -->
|
||||
<!-- ,2112,'NUMBER' -->
|
||||
<!-- ,2113,'BYTEARRAY' -->
|
||||
<!-- ,2114,'NUMERIC' -->
|
||||
<!-- ,2115,'PACKDECIMAL' -->
|
||||
<!-- ,2116,'OBJECT' -->
|
||||
<!-- ,2117,'BOOLEAN' -->
|
||||
<!-- ,2118,'BIGDECIMAL' -->
|
||||
<!-- ,'UNKNOWN' -->
|
||||
<!-- )LOUTITEMPTRNIDDESC -->
|
||||
<!-- , PARNTLOUTITEMIDNAME -->
|
||||
<!-- , LOUTITEMOCCURPTRNDSTCD -->
|
||||
<!-- , LOUTITEMMINOCCURNOITM -->
|
||||
<!-- , LOUTITEMMAXOCCURNOITM -->
|
||||
<!-- , LOUTITEMREFINFO2 -->
|
||||
<!-- from ( -->
|
||||
<!-- select * -->
|
||||
<!-- from $schemaId$.TSEAITR08 -->
|
||||
<!-- where LoutName = #loutName# -->
|
||||
<!-- ) -->
|
||||
<!-- connect by prior LoutItemIDName = ParntLoutItemIDName -->
|
||||
<!-- start with ParntLoutItemIDName = '0' -->
|
||||
<!-- order siblings by LoutItemSerno -->
|
||||
<statement id="selectItemList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
select 0 AS "level"
|
||||
, LoutItemIDName "id"
|
||||
, ParntLoutItemIDName "parent"
|
||||
, 'true' AS "expanded"
|
||||
, CASE LoutItemNodePtrnIDName WHEN 2203 THEN 'true' ELSE 'false' END "isLeaf"
|
||||
, LoutItemName LOUTITEMPATH
|
||||
, LOUTNAME AS LOUTNAME
|
||||
, LOUTITEMIDNAME AS LOUTITEMIDNAME
|
||||
, LOUTITEMNAME AS LOUTITEMNAME
|
||||
, LOUTITEMDESC AS LOUTITEMDESC
|
||||
, LOUTITEMSERNO AS LOUTITEMSERNO
|
||||
, LOUTITEMLENCNT AS LOUTITEMLENCNT
|
||||
, DECPTLENCNT AS DECPTLENCNT
|
||||
, LOUTITEMNODEPTRNIDNAME AS LOUTITEMNODEPTRNIDNAME
|
||||
, LOUTITEMPTRNIDNAME AS LOUTITEMPTRNIDNAME
|
||||
, (CASE LoutItemNodePtrnIDName
|
||||
WHEN 2201 THEN 'MESSAGE'
|
||||
WHEN 2202 THEN 'GROUP'
|
||||
WHEN 2203 THEN 'FIELD'
|
||||
WHEN 2204 THEN 'ATTR'
|
||||
ELSE 'UNKNOWN' END) LOUTITEMNODEPTRNIDDESC
|
||||
, (CASE LoutItemPtrnIDName
|
||||
WHEN 2100 THEN 'UNKNOWN'
|
||||
WHEN 2101 THEN 'STRING'
|
||||
WHEN 2102 THEN 'INT'
|
||||
WHEN 2103 THEN 'LONG'
|
||||
WHEN 2104 THEN 'SHORT'
|
||||
WHEN 2105 THEN 'DOUBLE'
|
||||
WHEN 2106 THEN 'FLOAT'
|
||||
WHEN 2107 THEN 'CHAR'
|
||||
WHEN 2108 THEN 'BYTE'
|
||||
WHEN 2109 THEN 'DATE'
|
||||
WHEN 2110 THEN 'TIME'
|
||||
WHEN 2111 THEN 'TIMESTAMP'
|
||||
WHEN 2112 THEN 'NUMBER'
|
||||
WHEN 2113 THEN 'BYTEARRAY'
|
||||
WHEN 2114 THEN 'NUMERIC'
|
||||
WHEN 2115 THEN 'PACKDECIMAL'
|
||||
WHEN 2116 THEN 'OBJECT'
|
||||
WHEN 2117 THEN 'BOOLEAN'
|
||||
WHEN 2118 THEN 'BIGDECIMAL'
|
||||
ELSE 'UNKNOWN' END
|
||||
)LOUTITEMPTRNIDDESC
|
||||
, PARNTLOUTITEMIDNAME AS PARNTLOUTITEMIDNAME
|
||||
, LOUTITEMOCCURPTRNDSTCD AS LOUTITEMOCCURPTRNDSTCD
|
||||
, LOUTITEMMINOCCURNOITM AS LOUTITEMMINOCCURNOITM
|
||||
, LOUTITEMMAXOCCURNOITM AS LOUTITEMMAXOCCURNOITM
|
||||
, LOUTITEMREFINFO2 AS LOUTITEMREFINFO2
|
||||
from (
|
||||
select *
|
||||
from $schemaId$.TSEAITR08
|
||||
where LoutName = #loutName#
|
||||
) T
|
||||
order by LoutItemSerno
|
||||
</statement>
|
||||
|
||||
<!-- Update date -->
|
||||
<statement id="updateLayoutDate" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR07
|
||||
SET LASTAMNDHMS = to_char(sysdate,'yyyymmddhh24miss')
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- item detail -->
|
||||
<statement id="selectItemDetail" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME LOUTNAME,
|
||||
LOUTITEMNAME LOUTITEMNAME,
|
||||
LOUTITEMIDNAME LOUTITEMIDNAME,
|
||||
PARNTLOUTITEMIDNAME PARNTLOUTITEMIDNAME,
|
||||
LOUTITEMDESC LOUTITEMDESC,
|
||||
LOUTITEMNODEPTRNIDNAME LOUTITEMNODEPTRNIDNAME,
|
||||
LOUTITEMPTRNIDNAME LOUTITEMPTRNIDNAME,
|
||||
LOUTITEMPATHNAME LOUTITEMPATHNAME,
|
||||
LOUTITEMLENCNT LOUTITEMLENCNT,
|
||||
LOUTITEMREFINFO LOUTITEMREFINFO,
|
||||
LOUTITEMREFINFO2 LOUTITEMREFINFO2,
|
||||
LOUTITEMSERNO LOUTITEMSERNO,
|
||||
LOUTITEMOCCURPTRNDSTCD LOUTITEMOCCURPTRNDSTCD,
|
||||
LOUTITEMMAXOCCURNOITM LOUTITEMMAXOCCURNOITM,
|
||||
LOUTITEMMINOCCURNOITM LOUTITEMMINOCCURNOITM,
|
||||
LOUTITEMBASCVAL LOUTITEMBASCVAL,
|
||||
LOUTITEMMSKYN LOUTITEMMSKYN,
|
||||
COALESCE(LOUTITEMMASKLENGTH,0) LOUTITEMMASKLENGTH,
|
||||
LYOUTDPTCNT LYOUTDPTCNT,
|
||||
DECPTLENCNT DECPTLENCNT,
|
||||
LYOUTITEMREFPTRNIDNAME LYOUTITEMREFPTRNIDNAME
|
||||
FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME=#loutName#
|
||||
AND LOUTITEMNAME =#loutItemName#
|
||||
AND LOUTITEMSERNO=#loutItemSerno#
|
||||
ORDER BY LOUTITEMIDNAME, LOUTITEMOCCURPTRNDSTCD DESC
|
||||
</statement>
|
||||
|
||||
<!-- Oracle에서도 실행이 안됨 -->
|
||||
<statement id="selectLayoutXMLList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
CASE WHEN PARNTLOUTITEMIDNAME = '0' THEN 'FORMAT'
|
||||
ELSE CASE WHEN LOUTITEMPTRNIDNAME = '2100' THEN 'GRID'
|
||||
WHEN LOUTITEMPTRNIDNAME = '2113' THEN ( CASE WHEN (SELECT LOUTITEMPTRNIDNAME
|
||||
FROM $schemaId$.TSEAITR08 L
|
||||
WHERE L.LOUTNAME = O.LOUTNAME
|
||||
AND L.LOUTITEMIDNAME = O.PARNTLOUTITEMIDNAME
|
||||
AND L.LOUTITEMPTRNIDNAME = '2100'
|
||||
AND (L.LOUTITEMMAXOCCURNOITM = -1 OR L.LOUTITEMMAXOCCURNOITM > 1)
|
||||
) = '2100' THEN 'COLUMN' ELSE 'FLD' END )
|
||||
END AS FIELDTYPE
|
||||
, LOUTITEMNAME AS ID
|
||||
, LOUTITEMDESC AS DESC
|
||||
,CASE WHEN LYOUTITEMREFPTRNIDNAME = 'STRING' THEN 'CHAR'
|
||||
LYOUTITEMREFPTRNIDNAME = 'BYTEARRAY' THEN 'CHAR'
|
||||
LYOUTITEMREFPTRNIDNAME = 'INTEGER' THEN 'DECIMAL'
|
||||
LYOUTITEMREFPTRNIDNAME = 'BIGDECIMAL' THEN 'NUMERIC'
|
||||
ELSE 'CHAR'
|
||||
END AS TYPE
|
||||
, LOUTITEMLENCNT AS LEN
|
||||
, DECPTLENCNT AS SCALE
|
||||
, (CASE WHEN LOUTITEMPTRNIDNAME = '2100' AND PARNTLOUTITEMIDNAME !=0 AND TRIM(LOUTITEMREFINFO2) IS NOT NULL THEN LOUTITEMREFINFO2
|
||||
WHEN LOUTITEMPTRNIDNAME = '2100' AND PARNTLOUTITEMIDNAME !=0 AND TRIM(LOUTITEMREFINFO2) IS NULL THEN TO_CHAR(LOUTITEMMAXOCCURNOITM)
|
||||
ELSE ' ' END) AS COUNT
|
||||
FROM (
|
||||
SELECT *
|
||||
FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME = #LoutName#
|
||||
) O
|
||||
WHERE (LOUTITEMPTRNIDNAME = '2100' AND (LOUTITEMMAXOCCURNOITM = -1 OR LOUTITEMMAXOCCURNOITM > 1) ) OR (LOUTITEMPTRNIDNAME = '2113' ) OR (PARNTLOUTITEMIDNAME = 0)
|
||||
CONNECT BY PRIOR LOUTITEMIDNAME = PARNTLOUTITEMIDNAME
|
||||
START WITH PARNTLOUTITEMIDNAME = '0'
|
||||
</statement>
|
||||
|
||||
<!-- JJB 수정사항 shkim 2020-06-08 표준전문 수정4차 -->
|
||||
<statement id="selectLayoutMappingXMLList" resultClass="java.util.HashMap">
|
||||
SELECT ID "id",
|
||||
LOUTDESC "desc", '$schemaId$' "usesystem",
|
||||
TARGETSYSTEM "targetsystem", TRIM(PSVSYSBZWKDSTCD) "group", IOTYPE "ioType",
|
||||
HEADER_TXID "servicecode", A.EAISVCNAME "interfacecode"
|
||||
FROM (
|
||||
SELECT LOUTNAME ID, CASE WHEN SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'I' ELSE 'O' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN '기동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN '수동'
|
||||
WHEN EAISVCNAME LIKE '%1' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN 'CBS'
|
||||
WHEN EAISVCNAME LIKE '%2' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,EAISVCNAME, PSVSYSBZWKDSTCD
|
||||
FROM $schemaId$.TSEAITR02 A JOIN $schemaId$.TSEAIHE02 B ON A.CNVSNNAME = B.CHNGMSGIDNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName# UNION
|
||||
SELECT LOUTNAME ID, CASE WHEN SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'I' ELSE 'O' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN '수동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN '기동'
|
||||
WHEN EAISVCNAME LIKE '%1' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN 'CBS'
|
||||
WHEN EAISVCNAME LIKE '%2' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,EAISVCNAME, PSVSYSBZWKDSTCD
|
||||
FROM $schemaId$.TSEAITR02 A JOIN $schemaId$.TSEAIHE02 B ON A.CNVSNNAME = B.BASCRSPNSCHNGMSGIDNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName# UNION
|
||||
SELECT LOUTNAME ID, CASE WHEN SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'IE' ELSE 'OE' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN '수동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN '기동'
|
||||
WHEN EAISVCNAME LIKE '%1' AND SOURCRSULTDSTCD = 'TGT_LAYOUT' THEN 'CBS'
|
||||
WHEN EAISVCNAME LIKE '%2' AND SOURCRSULTDSTCD = 'SRC_LAYOUT' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,EAISVCNAME, PSVSYSBZWKDSTCD
|
||||
FROM $schemaId$.TSEAITR02 A JOIN $schemaId$.TSEAIHE02 B ON A.CNVSNNAME = B.ERRRSPNSCHNGMSGIDNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName# UNION
|
||||
SELECT REFMSGIDNAME ID, CASE WHEN REFMSGIDNO = 1 THEN 'I' ELSE 'O' END IOTYPE
|
||||
,CASE WHEN PSVINTFACDSTICNAME = 'SYNC' AND REFMSGIDNO = 1 THEN '기동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND REFMSGIDNO = 2 THEN '수동'
|
||||
WHEN PSVINTFACDSTICNAME = 'SYNC' AND REFMSGIDNO = 3 THEN '수동'
|
||||
WHEN REFMSGIDNAME LIKE '%CBS' THEN 'CBS'
|
||||
ELSE '대외' END TARGETSYSTEM
|
||||
,A.EAISVCNAME, PSVSYSBZWKDSTCD FROM $schemaId$.TSEAIMS02 A JOIN $schemaId$.TSEAIHE02 B ON A.EAISVCNAME = B.EAISVCNAME
|
||||
WHERE B.EAISVCNAME = #eaiSvcName#
|
||||
) A
|
||||
LEFT OUTER JOIN ( SELECT EAISVCNAME
|
||||
, max(decode(COLUMNNAME,'HEADER_TXID',COLUMNVALUE,'')) HEADER_TXID
|
||||
FROM $schemaId$.TSEAIHS04 hs04 , $schemaId$.tseaihs05 hs05
|
||||
where hs04.BZWKSVCKEYNAME =hs05.BZWKSVCKEYNAME
|
||||
group by hs04.BZWKSVCKEYNAME,EAISVCNAME
|
||||
) HS04 ON A.EAISVCNAME = HS04.EAISVCNAME
|
||||
LEFT OUTER JOIN $schemaId$.TSEAITR07 TR07 ON TR07.LOUTNAME = A.ID
|
||||
ORDER BY 1
|
||||
</statement>
|
||||
|
||||
<!-- 아이템항목 PATH 조회 -->
|
||||
<statement id="selectItemPathList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT SUBSTR(SYS_CONNECT_BY_PATH(LOUTITEMNAME, '.'),2) PATH
|
||||
FROM (
|
||||
SELECT decode(LYOUTITEMREFPTRNIDNAME, NULL, decode(LOUTITEMIDNAME, 1000, LOUTITEMNAME, LOUTITEMNAME||'[*]'), LOUTITEMNAME) LOUTITEMNAME, LOUTITEMIDNAME, LYOUTDPTCNT, nvl(LYOUTITEMREFPTRNIDNAME,'Group') LYOUTITEMREFPTRNIDNAME, PARNTLOUTITEMIDNAME PARENT
|
||||
FROM tseaitr08 a
|
||||
WHERE loutname = #loutName#
|
||||
ORDER BY LOUTITEMIDNAME
|
||||
)
|
||||
WHERE LYOUTITEMREFPTRNIDNAME != 'Group'
|
||||
START WITH LOUTITEMIDNAME = 1000 CONNECT BY PRIOR LOUTITEMIDNAME = PARENT
|
||||
</statement>
|
||||
|
||||
<!-- 목록 조회 -->
|
||||
<statement id="selectListPop" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT FA.*, FB.BZWKDSTICNAME
|
||||
FROM (
|
||||
SELECT ROWNO, LOUTNAME , LOUTPTRNNAME , LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT ROWNUM AS ROWNO,
|
||||
LOUTNAME, LOUTPTRNNAME, LOUTDESC ,
|
||||
LOUTPTRNDESC , LASTAMNDHMS , EAIBZWKDSTCD ,
|
||||
UAPPLNAME , SYSINTFACNAME
|
||||
FROM (
|
||||
SELECT A.LOUTNAME, A.LOUTPTRNNAME, A.LOUTDESC, B.LOUTPTRNDESC,
|
||||
A.LASTAMNDHMS , A.EAIBZWKDSTCD , A.UAPPLNAME , A.SYSINTFACNAME
|
||||
FROM $schemaId$.TSEAITR07 A, $schemaId$.TSEAITR06 B
|
||||
WHERE A.LOUTPTRNNAME = B.LOUTPTRNNAME
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
UPPER(A.LOUTNAME) LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
UPPER(A.EAIBZWKDSTCD) LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
UPPER(A.LOUTDESC) LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
) TMP1
|
||||
) TMP2 WHERE ROWNO BETWEEN #startNum# AND #endNum#
|
||||
) FA LEFT OUTER JOIN $schemaId$.TSEAICM01 FB
|
||||
ON FA.EAIBZWKDSTCD = FB.EAIBZWKDSTCD
|
||||
ORDER BY 1
|
||||
</statement>
|
||||
|
||||
<!-- 전체 목록수 얻기 -->
|
||||
<statement id="selectListCountPop" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM $schemaId$.TSEAITR07
|
||||
<dynamic prepend="WHERE">
|
||||
<isNotEmpty prepend="AND" property="searchLoutName">
|
||||
UPPER(LOUTNAME) LIKE UPPER('%'||#searchLoutName#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchEaiBzwkDstcd">
|
||||
UPPER(EAIBZWKDSTCD) LIKE UPPER('%'||#searchEaiBzwkDstcd#||'%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty prepend="AND" property="searchLoutDesc">
|
||||
UPPER(LOUTDESC) LIKE UPPER('%'||#searchLoutDesc#||'%')
|
||||
</isNotEmpty>
|
||||
</dynamic>
|
||||
</statement>
|
||||
|
||||
<statement id="insertMappingSyncLog">
|
||||
INSERT INTO $schemaId$.TSEAITR09
|
||||
( LOGPRCSSSERNO, EXECUTEDATE ,EXECUTECLASS,EXECUTEMETHOD,EXECUTEUSER,SENDXMLCMNT,SENDAMNDHMS )
|
||||
VALUES
|
||||
( #logPrcssSerno#, TO_CHAR(CURRENT_DATE,'YYYYMMDD') ,#executeClass#,#executeMethod#,#executeUser#,#sendXmlCmnt#,
|
||||
TO_CHAR(CURRENT_TIMESTAMP,'YYYYMMDDHH24MISSFF2') )
|
||||
</statement>
|
||||
|
||||
<statement id="updateMappingSyncLog">
|
||||
UPDATE $schemaId$.TSEAITR09
|
||||
SET RECVAMNDHMS=TO_CHAR(CURRENT_TIMESTAMP,'YYYYMMDDHH24MISSFF2'),
|
||||
RECVRSLT=#recvRslt#,
|
||||
RECVFAILCMNT=#recvFailCmnt#
|
||||
WHERE LOGPRCSSSERNO = #logPrcssSerno#
|
||||
</statement>
|
||||
<!-- item delete -->
|
||||
<statement id="deleteItem" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME=#loutName#
|
||||
AND LOUTITEMNAME =#loutItemName#
|
||||
AND LOUTITEMSERNO=#loutItemSerno#
|
||||
</statement>
|
||||
|
||||
<!-- item insert -->
|
||||
<statement id="insertItem" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
<!-- LOUTITEMMSKCODE 삭제, 광주은행 테이블에 미존재 231005-->
|
||||
INSERT INTO $schemaId$.TSEAITR08 (
|
||||
LOUTNAME, LOUTITEMNAME, LOUTITEMIDNAME, PARNTLOUTITEMIDNAME, LOUTITEMDESC, LOUTITEMNODEPTRNIDNAME,
|
||||
LOUTITEMPTRNIDNAME, LOUTITEMPATHNAME, LOUTITEMLENCNT, LOUTITEMREFINFO, LOUTITEMREFINFO2,
|
||||
LOUTITEMSERNO, LOUTITEMOCCURPTRNDSTCD, LOUTITEMMAXOCCURNOITM, LOUTITEMMINOCCURNOITM,
|
||||
LOUTITEMBASCVAL, LOUTITEMMSKYN, LOUTITEMMASKLENGTH, LYOUTDPTCNT, DECPTLENCNT, LYOUTITEMREFPTRNIDNAME
|
||||
) VALUES (
|
||||
#loutName#, #loutItemName#, #loutItemIDName#, #parntLoutItemIDName#, #loutItemDesc#, #loutItemNodePtrnIDName#,
|
||||
#loutItemPtrnIDName#, #loutItemPathName#, #loutItemLenCnt#, #loutItemRefInfo#, #loutItemRefInfo2#,
|
||||
#loutItemSerno#, #loutItemOccurPtrnDstcd#, #loutItemMaxOccurNoitm#, #loutItemMinOccurNoitm#,
|
||||
#loutItemBascVal#, #loutItemMskYn#, #loutItemMaskLength#, #lyoutDptCnt#, #decptLenCnt#, #lyoutItemRefPtrnIDName#
|
||||
)
|
||||
</statement>
|
||||
|
||||
<!-- item update -->
|
||||
<statement id="updateItem" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR08
|
||||
SET
|
||||
LOUTNAME = #loutName#,
|
||||
LOUTITEMNAME = #loutItemName#,
|
||||
LOUTITEMIDNAME = #loutItemIDName#,
|
||||
PARNTLOUTITEMIDNAME = #parntLoutItemIDName#,
|
||||
LOUTITEMDESC = #loutItemDesc#,
|
||||
LOUTITEMNODEPTRNIDNAME = #loutItemNodePtrnIDName#,
|
||||
LOUTITEMPTRNIDNAME = #loutItemPtrnIDName#,
|
||||
LOUTITEMPATHNAME = #loutItemPathName#,
|
||||
LOUTITEMLENCNT = #loutItemLenCnt#,
|
||||
LOUTITEMREFINFO = #loutItemRefInfo#,
|
||||
LOUTITEMREFINFO2 = #loutItemRefInfo2#,
|
||||
LOUTITEMSERNO = #loutItemSerno#,
|
||||
LOUTITEMOCCURPTRNDSTCD = #loutItemOccurPtrnDstcd#,
|
||||
LOUTITEMMAXOCCURNOITM = #loutItemMaxOccurNoitm#,
|
||||
LOUTITEMMINOCCURNOITM = #loutItemMinOccurNoitm#,
|
||||
LOUTITEMBASCVAL = #loutItemBascVal#,
|
||||
LOUTITEMMSKYN = #loutItemMskYn#,
|
||||
LOUTITEMMASKLENGTH = #loutItemMaskLength#,
|
||||
LYOUTDPTCNT = #lyoutDptCnt#,
|
||||
DECPTLENCNT = #decptLenCnt#,
|
||||
LYOUTITEMREFPTRNIDNAME = #lyoutItemRefPtrnIDName#
|
||||
WHERE LOUTNAME = #loutName#
|
||||
AND LOUTITEMNAME =#loutItemName#
|
||||
AND LOUTITEMSERNO =#loutItemSerno#
|
||||
</statement>
|
||||
|
||||
<statement id="insertTR08" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
INSERT INTO $schemaId$.TSEAITR08 ( LOUTNAME, LOUTITEMNAME, LOUTITEMSERNO, LOUTITEMIDNAME, PARNTLOUTITEMIDNAME,
|
||||
LOUTITEMDESC, LOUTITEMNODEPTRNIDNAME, LOUTITEMPTRNIDNAME, LOUTITEMPATHNAME, LOUTITEMLENCNT,
|
||||
LOUTITEMREFINFO, LOUTITEMREFINFO2, LOUTITEMOCCURPTRNDSTCD, LOUTITEMMAXOCCURNOITM, LOUTITEMMINOCCURNOITM,
|
||||
LOUTITEMBASCVAL, LOUTITEMMSKYN, LYOUTDPTCNT, DECPTLENCNT, LYOUTITEMREFPTRNIDNAME )
|
||||
VALUES ( #loutName#, #loutItemName#, #loutItemSerno#, #loutItemIDName#, #parntLoutItemIDName#,
|
||||
#loutItemDesc#, #loutItemNodePtrnIDName#, #loutItemPtrnIDName#, #loutItemPathName#, #loutItemLenCnt#,
|
||||
#loutItemRefInfo#, #loutItemRefInfo2#, #loutItemOccurPtrnDstcd#, #loutItemMaxOccurNoitm#, #loutItemMinOccurNoitm#,
|
||||
#loutItemBascVal#, #loutItemMskYn#, #lyoutDptCnt#, #decptLenCnt#, #lyoutItemRefPtrnIDName# )
|
||||
</statement>
|
||||
<!-- 여기 까지 마이그레이션 영역 -->
|
||||
|
||||
<statement id="insertLayoutSyncLog">
|
||||
INSERT INTO $schemaId$.TSEAITR10
|
||||
( LOGPRCSSSEQNO, SEQNO, SERVICENAME ,COMMAND,LOUTNAME,RECVDATA,RECVAMNDHMS,PRCSSRSLT, PRCSSRSLTCMNT )
|
||||
VALUES
|
||||
( #logPrcssSeqno#, #seqno#, #serviceName# ,#command#,#loutName#,#recvData#,#recvAmndHMS#,#prcssRslt#, #prcssRsltCmnt# )
|
||||
</statement>
|
||||
</sqlMap>
|
||||
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
<sqlMap namespace="Layout">
|
||||
<!-- #### 레이아웃 ### -->
|
||||
<!-- 상세 조회 -->
|
||||
<statement id="selectDetail" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME AS "LOUTNAME" ,
|
||||
LOUTPTRNNAME AS "LOUTPTRNNAME" ,
|
||||
LOUTDESC AS "LOUTDESC" ,
|
||||
LASTAMNDHMS AS "LASTAMNDHMS" ,
|
||||
EAIBZWKDSTCD AS "EAIBZWKDSTCD" ,
|
||||
UAPPLNAME AS "UAPPLNAME" ,
|
||||
SYSINTFACNAME AS "SYSINTFACNAME"
|
||||
FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- DELETE-->
|
||||
<statement id="delete" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- Insert-->
|
||||
<statement id="insert" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
INSERT INTO $schemaId$.TSEAITR07 (
|
||||
LOUTNAME, LOUTDESC, LOUTPTRNNAME , LASTAMNDHMS , EAIBZWKDSTCD , UAPPLNAME , SYSINTFACNAME, CREATEBY, UPDATEBY
|
||||
) VALUES (#loutName#, #loutDesc#, #loutPtrnName#, #lastAmndHMS# , #eaiBzwkDstcd# , #uapplName# , #sysIntfacName#, #createBy#, #updateBy# )
|
||||
</statement>
|
||||
|
||||
<!-- Update-->
|
||||
<statement id="update" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR07
|
||||
SET LOUTDESC = #loutDesc#,
|
||||
LOUTPTRNNAME= #loutPtrnName#,
|
||||
LASTAMNDHMS = #lastAmndHMS#,
|
||||
EAIBZWKDSTCD = #eaiBzwkDstcd#,
|
||||
UAPPLNAME = #uapplName#,
|
||||
SYSINTFACNAME = #sysIntfacName# ,
|
||||
UPDATEBY = #updateBy#
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<!-- List All -->
|
||||
<statement id="selectListAll" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
L.LOUTNAME AS "LOUTNAME",
|
||||
L.LOUTDESC AS "LOUTDESC",
|
||||
L.LOUTPTRNNAME AS "LOUTPTRNNAME"
|
||||
FROM $schemaId$.TSEAITR07 L
|
||||
WHERE L.EAIBZWKDSTCD IN (select EAIBZWKDSTCD from $schemaId$.TSEAIRM06 WHERE USERID = #loginId#)
|
||||
ORDER BY L.LOUTNAME
|
||||
</statement>
|
||||
|
||||
<!-- item delete all -->
|
||||
<statement id="deleteItemAll" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME=#loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="updateItemDesc" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
UPDATE $schemaId$.TSEAITR08
|
||||
SET LOUTITEMDESC = #loutDesc#
|
||||
WHERE LOUTNAME = #loutName#
|
||||
AND LOUTITEMNAME = #loutName#
|
||||
AND LOUTITEMSERNO = 0
|
||||
</statement>
|
||||
|
||||
<statement id="selectTypeAll" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT LOUTPTRNNAME AS "LOUTPTRNNAME",
|
||||
LOUTPTRNDESC AS "LOUTPTRNDESC"
|
||||
FROM $schemaId$.TSEAITR06
|
||||
ORDER BY LOUTPTRNDESC
|
||||
</statement>
|
||||
|
||||
<statement id="selectEffect" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT SV.EAISVCNAME AS "EAISVCNAME" , SV.EAISVCDESC AS "EAISVCDESC" ,
|
||||
TR.CNVSNNAME AS "CNVSNNAME" , TR.CNVSNDESC AS "CNVSNDESC" , TR.SOURCRSULTDSTCD AS "SOURCRSULTDSTCD"
|
||||
FROM
|
||||
( SELECT T1.CNVSNNAME , T1.CNVSNDESC ,
|
||||
T2.LOUTNAME , T2.SOURCRSULTDSTCD
|
||||
FROM $schemaId$.TSEAITR01 T1, $schemaId$.TSEAITR02 T2
|
||||
WHERE T1.CNVSNNAME = T2.CNVSNNAME
|
||||
AND T2.LOUTNAME = #loutName#
|
||||
) TR,
|
||||
(
|
||||
SELECT DISTINCT EAISVCNAME, EAISVCDESC, SVCPRCSSNO, CHNGMSGIDNAME FROM (
|
||||
SELECT A.EAISVCNAME, A.EAISVCDESC, B.SVCPRCSSNO, B.CHNGMSGIDNAME FROM $schemaId$.TSEAIHE01 A, $schemaId$.TSEAIHE02 B WHERE A.EAISVCNAME = B.EAISVCNAME
|
||||
UNION ALL
|
||||
SELECT A.EAISVCNAME, A.EAISVCDESC, B.SVCPRCSSNO, B.BASCRSPNSCHNGMSGIDNAME CHNGMSGIDNAME FROM $schemaId$.TSEAIHE01 A, $schemaId$.TSEAIHE02 B WHERE A.EAISVCNAME = B.EAISVCNAME
|
||||
UNION ALL
|
||||
SELECT A.EAISVCNAME, A.EAISVCDESC, B.SVCPRCSSNO, B.ERRRSPNSCHNGMSGIDNAME CHNGMSGIDNAME FROM $schemaId$.TSEAIHE01 A, $schemaId$.TSEAIHE02 B WHERE A.EAISVCNAME = B.EAISVCNAME
|
||||
) TMP
|
||||
) SV
|
||||
WHERE TR.CNVSNNAME = SV.CHNGMSGIDNAME
|
||||
</statement>
|
||||
|
||||
<statement id="selectReportCount" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT EAIBZWKDSTCD "EAIBzwkDstcd", COUNT(LOUTNAME) "Cnt"
|
||||
FROM $schemaId$.TSEAITR07
|
||||
GROUP BY EAIBZWKDSTCD
|
||||
</statement>
|
||||
|
||||
<!-- 여기서 부터 마이그레이션 영역 -->
|
||||
<statement id="selectTR07Select" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME AS "LOUTNAME" ,
|
||||
LOUTPTRNNAME AS "LOUTPTRNNAME" ,
|
||||
LOUTDESC AS "LOUTDESC" ,
|
||||
LASTAMNDHMS AS "LASTAMNDHMS" ,
|
||||
EAIBZWKDSTCD AS "EAIBZWKDSTCD" ,
|
||||
UAPPLNAME AS "UAPPLNAME" ,
|
||||
SYSINTFACNAME AS "SYSINTFACNAME"
|
||||
FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="deleteTR07" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR07
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="insertTR07" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
INSERT INTO $schemaId$.TSEAITR07 ( LOUTNAME, LOUTPTRNNAME, LOUTDESC, LASTAMNDHMS, EAIBZWKDSTCD, UAPPLNAME, SYSINTFACNAME )
|
||||
VALUES ( #loutName#, #loutPtrnName#, #loutDesc#, #lastAmndHMS#, #eaiBzwkDstcd#, #uapplName#, #sysIntfacName# )
|
||||
</statement>
|
||||
|
||||
<statement id="selectTR08" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
LOUTNAME AS "LOUTNAME" ,
|
||||
LOUTITEMNAME AS "LOUTITEMNAME" ,
|
||||
LOUTITEMSERNO AS "LOUTITEMSERNO" ,
|
||||
LOUTITEMIDNAME AS "LOUTITEMIDNAME" ,
|
||||
PARNTLOUTITEMIDNAME AS "PARNTLOUTITEMIDNAME" ,
|
||||
LOUTITEMDESC AS "LOUTITEMDESC" ,
|
||||
LOUTITEMNODEPTRNIDNAME AS "LOUTITEMNODEPTRNIDNAME" ,
|
||||
LOUTITEMPTRNIDNAME AS "LOUTITEMPTRNIDNAME" ,
|
||||
LOUTITEMPATHNAME AS "LOUTITEMPATHNAME" ,
|
||||
LOUTITEMLENCNT AS "LOUTITEMLENCNT" ,
|
||||
LOUTITEMREFINFO AS "LOUTITEMREFINFO" ,
|
||||
LOUTITEMREFINFO2 AS "LOUTITEMREFINFO2" ,
|
||||
LOUTITEMOCCURPTRNDSTCD AS "LOUTITEMOCCURPTRNDSTCD" ,
|
||||
LOUTITEMMAXOCCURNOITM AS "LOUTITEMMAXOCCURNOITM" ,
|
||||
LOUTITEMMINOCCURNOITM AS "LOUTITEMMINOCCURNOITM" ,
|
||||
LOUTITEMBASCVAL AS "LOUTITEMBASCVAL" ,
|
||||
LOUTITEMMSKYN AS "LOUTITEMMSKYN" ,
|
||||
LYOUTDPTCNT AS "LYOUTDPTCNT" ,
|
||||
DECPTLENCNT AS "DECPTLENCNT" ,
|
||||
LYOUTITEMREFPTRNIDNAME AS "LYOUTITEMREFPTRNIDNAME"
|
||||
FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
<statement id="deleteTR08" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
|
||||
DELETE FROM $schemaId$.TSEAITR08
|
||||
WHERE LOUTNAME = #loutName#
|
||||
</statement>
|
||||
|
||||
</sqlMap>
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package com.eactive.eai.rms.onl.manage.rule.layoutsync;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* LayoutSyncController 통합 테스트 실제 localhost:28080으로 HTTP 요청을 보냅니다.
|
||||
*/
|
||||
class LayoutSyncControllerTest {
|
||||
|
||||
private static final String BASE_URL = "http://localhost:28080/monitoring/layoutSync.do";
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
restTemplate = new RestTemplate();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testParseMessage() {
|
||||
String layoutId = "URP_DRA00357321URP_CBSS";
|
||||
String requestXml = "<?xml version=\"1.0\" encoding=\"euc-kr\"?><Message><Header><ServiceName>MessageSync</ServiceName><Command>insert</Command></Header><Body><Layout><id>"
|
||||
+ layoutId + "</id><data><![CDATA[<?xml version=\"1.0\" encoding=\"euc-kr\"?>"
|
||||
+ "<Format id=\"URP_DRA00357321URP_CBSS\" desc=\"(107300)자동이체 신청/변경_REQ\" author=\"1910272\" usesystem=\"EAI\" group=\"URP\" date=\"2020-08-18 08:58:54\" msgType=\"ASCII\" ioType=\"CBSS\" part=\"data\" createBy=\"1910272\" updateBy=\"1910272\" type=\"business\"><Field id=\"TX_UNQ_NO_S16\" desc=\"거래고유번호_S16\" depth=\"1\" maxCnt=\"0\" no=\"1\" count=\"\" type=\"Varchar\" len=\"16\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" />"
|
||||
+ "<Field id=\"PN_NO_S14\" desc=\"플랜번호_S14\" depth=\"1\" maxCnt=\"0\" no=\"2\" count=\"\" type=\"Varchar\" len=\"14\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"TX_DIV1_S1\" desc=\"거래구분1_S1\" depth=\"1\" maxCnt=\"0\" no=\"3\" count=\"\" type=\"Varchar\" len=\"1\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"REG_DIV_S1\" desc=\"등록구분_S1\" depth=\"1\" maxCnt=\"0\" no=\"4\" count=\"\" type=\"Varchar\" len=\"1\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"SEQNO_S4\" desc=\"일련번호_S4\" depth=\"1\" maxCnt=\"0\" no=\"5\" count=\"\" type=\"Varchar\" len=\"4\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"WDL_ACCO_NO_S16\" desc=\"출금계좌번호_S16\" depth=\"1\" maxCnt=\"0\" no=\"6\" count=\"\" type=\"Varchar\" len=\"16\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"MNRC_ACNO_S16\" desc=\"입금계좌번호_S16\" depth=\"1\" maxCnt=\"0\" no=\"7\" count=\"\" type=\"Varchar\" len=\"16\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"TRSF_DD_S2\" desc=\"이체일_S2\" depth=\"1\" maxCnt=\"0\" no=\"8\" count=\"\" type=\"Varchar\" len=\"2\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"STDD_S8\" desc=\"시작일자_S8\" depth=\"1\" maxCnt=\"0\" no=\"9\" count=\"\" type=\"Varchar\" len=\"8\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"ENDT_S8\" desc=\"종료일자_S8\" depth=\"1\" maxCnt=\"0\" no=\"10\" count=\"\" type=\"Varchar\" len=\"8\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"TRAM_NMCP_INFO1_S14\" desc=\"이체금액부수정보1_S14\" depth=\"1\" maxCnt=\"0\" no=\"11\" count=\"\" type=\"Varchar\" len=\"14\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"CORP_BDMN_S14\" desc=\"기업부담금_S14\" depth=\"1\" maxCnt=\"0\" no=\"12\" count=\"\" type=\"Varchar\" len=\"14\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"IDVD_BDMN_S14\" desc=\"개인부담금_S14\" depth=\"1\" maxCnt=\"0\" no=\"13\" count=\"\" type=\"Varchar\" len=\"14\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"WDL_SUMRY\" desc=\"출금적요\" depth=\"1\" maxCnt=\"0\" no=\"14\" count=\"\" type=\"Varchar\" len=\"50\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"MNRC_SUMRY\" desc=\"입금적요\" depth=\"1\" maxCnt=\"0\" no=\"15\" count=\"\" type=\"Varchar\" len=\"50\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"TX_BRCD\" desc=\"거래부점코드\" depth=\"1\" maxCnt=\"0\" no=\"16\" count=\"\" type=\"Varchar\" len=\"4\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /><Field id=\"TX_TLRNO\" desc=\"거래텔러번호\" depth=\"1\" maxCnt=\"0\" no=\"17\" count=\"\" type=\"Varchar\" len=\"7\" scale=\"0\" default=\"\" object=\"\" mask=\"\" maskLength=\"0\" point_yn=\"\" batc_info=\"\" rec_tp_yn=\"\" rec_tp_val=\"\" /></Format>]]>"
|
||||
+ "</data></Layout></Body></Message>";
|
||||
|
||||
// =====================================
|
||||
|
||||
String url = BASE_URL + "?cmd=Message&schema=APIGW";
|
||||
|
||||
// HTTP 헤더 설정
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_XML);
|
||||
|
||||
// 요청 생성
|
||||
HttpEntity<String> request = new HttpEntity<>(requestXml, headers);
|
||||
|
||||
// POST 요청 전송
|
||||
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
|
||||
|
||||
// 응답 출력
|
||||
System.out.println("=== Status Code: " + response.getStatusCodeValue());
|
||||
System.out.println("=== Response Body ===");
|
||||
System.out.println(response.getBody());
|
||||
|
||||
// 기본 검증
|
||||
assertNotNull(response);
|
||||
assertEquals(200, response.getStatusCodeValue());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user