diff --git a/pom.xml b/pom.xml index 45c262b..3eb27cd 100644 --- a/pom.xml +++ b/pom.xml @@ -99,14 +99,6 @@ 2.3.0 - - - javax.annotation - javax.annotation-api - 1.3.2 - - - diff --git a/src/main/java/com/batch/config/BatchMatchingConfig.java b/src/main/java/com/batch/config/BatchMatchingConfig.java index 467cc34..3518aa0 100644 --- a/src/main/java/com/batch/config/BatchMatchingConfig.java +++ b/src/main/java/com/batch/config/BatchMatchingConfig.java @@ -20,10 +20,13 @@ import org.springframework.batch.item.support.ListItemReader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.task.SimpleAsyncTaskExecutor; import org.springframework.transaction.PlatformTransactionManager; import com.batch.mapper.primary.MatchingInnerDelingMapper; +import org.springframework.batch.integration.async.AsyncItemProcessor; + import lombok.extern.slf4j.Slf4j; @Configuration diff --git a/src/main/java/com/batch/config/MatchingExtraProcessorAuto.java b/src/main/java/com/batch/config/MatchingExtraProcessorAuto.java index 48ca14e..98bc6e6 100644 --- a/src/main/java/com/batch/config/MatchingExtraProcessorAuto.java +++ b/src/main/java/com/batch/config/MatchingExtraProcessorAuto.java @@ -9,7 +9,6 @@ import java.util.List; import java.util.Map; import java.util.UUID; - import com.batch.mapper.primary.MatchingInnerDelingMapper; import com.batch.util.StatisticsUtil; @@ -22,227 +21,218 @@ public class MatchingExtraProcessorAuto { private final MatchingInnerDelingMapper matchingInnerDelingMapper; - @SuppressWarnings({ "unchecked", "rawtypes" }) - public long process(Map paramRec, int iCmbnOwnCnt, int iCmbnTranCnt, int iStartOwn, int iStartTran, long mtchNumber) throws Exception { - - // Job Create Log - UUID uuid = UUID.randomUUID(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "자동조합매칭(" + paramRec.toString() + ",[" + iCmbnOwnCnt + "," + iStartOwn + "],[" + iCmbnTranCnt + "," + iStartTran + "])"); - matchingInnerDelingMapper.createUserJob(paramLog); - - int iUpdated = 0; - - String sSysSe = (String) paramRec.get("sys_se"); - String sAccnutYm = (String) paramRec.get("accnut_ym"); - String sCprCode = (String) paramRec.get("cpr_code"); - String sPartCpr = (String) paramRec.get("partn_cpr"); - String sDelngCrncy = (String) paramRec.get("delng_crncy"); - String sConds = (String) paramRec.get("conds"); - - // 작업시작 - Map mParam = new HashMap(); - mParam.put("sysSe", sSysSe); - mParam.put("accnutYm", sAccnutYm); - mParam.put("conds", sConds); - mParam.put("delngCrncy", sDelngCrncy); - - // ---------------------------------------------------------------------------- - // 자기법인 데이타 가져오기 - mParam.put("cprCode", sCprCode); - mParam.put("partnCpr", sPartCpr); - List lMatchingDataOne = matchingInnerDelingMapper.getMatchingExtraDataOne(mParam); - - // 상대법인 데이타 가져오기 - mParam.put("cprCode", sPartCpr); - mParam.put("partnCpr", sCprCode); - List lMatchingDataTwo = matchingInnerDelingMapper.getMatchingExtraDataTwo(mParam); - - // Combination 데이타 만들기 + @SuppressWarnings("unchecked") + public void process(Map paramRec, int iCmbnOwnCnt, int iCmbnTranCnt, int iStartOwn, int iStartTran) throws Exception { + + //Job Create Log + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); + + Map paramLog = new HashMap(); + paramLog.put("user_job_id", sDate); + paramLog.put("user_job_name", "자동조합매칭(" + paramRec.toString() + ",[" + iCmbnOwnCnt + "," + iStartOwn + "],[" + iCmbnTranCnt + "," + iStartTran + "])"); + matchingInnerDelingMapper.createUserJob(paramLog); + + + int iUpdated = 0; + + String sSysSe = (String) paramRec.get("sys_se"); + String sAccnutYm = (String) paramRec.get("accnut_ym"); + String sCprCode = (String) paramRec.get("cpr_code"); + String sPartCpr = (String) paramRec.get("partn_cpr"); + String sConds = (String) paramRec.get("conds"); + + //작업시작 + Map mParam = new HashMap(); + mParam.put("sysSe", sSysSe); + mParam.put("accnutYm", sAccnutYm); + mParam.put("conds", sConds); + + //---------------------------------------------------------------------------- + //자기법인 데이타 가져오기 + mParam.put("cprCode", sCprCode); + mParam.put("partnCpr", sPartCpr); + List lMatchingDataOne = matchingInnerDelingMapper.getMatchingExtraDataOne(mParam); + + //상대법인 데이타 가져오기 + mParam.put("cprCode", sPartCpr); + mParam.put("partnCpr", sCprCode); + List lMatchingDataTwo = matchingInnerDelingMapper.getMatchingExtraDataTwo(mParam); + + //Combination 데이타 만들기 List compResult = new ArrayList(); List> llMatchingDataOne = new ArrayList>(); List> llMatchingDataTwo = new ArrayList>(); - + int iEndOwn = lMatchingDataOne.size(); if (iCmbnOwnCnt == 2) { iEndOwn = iStartOwn + 1000; - if (iEndOwn > lMatchingDataOne.size()) - iEndOwn = lMatchingDataOne.size(); + if (iEndOwn > lMatchingDataOne.size()) iEndOwn = lMatchingDataOne.size(); } if (iCmbnOwnCnt == 3) { iEndOwn = iStartOwn + 50; - if (iEndOwn > lMatchingDataOne.size()) - iEndOwn = lMatchingDataOne.size(); + if (iEndOwn > lMatchingDataOne.size()) iEndOwn = lMatchingDataOne.size(); } if (iCmbnOwnCnt > 3) { iEndOwn = iStartOwn + 25; - if (iEndOwn > lMatchingDataOne.size()) - iEndOwn = lMatchingDataOne.size(); + if (iEndOwn > lMatchingDataOne.size()) iEndOwn = lMatchingDataOne.size(); } int iEndTran = lMatchingDataTwo.size(); if (iCmbnTranCnt == 2) { iEndTran = iStartTran + 1000; - if (iEndTran > lMatchingDataTwo.size()) - iEndTran = lMatchingDataTwo.size(); + if (iEndTran > lMatchingDataTwo.size()) iEndTran = lMatchingDataTwo.size(); } if (iCmbnTranCnt == 3) { iEndTran = iStartTran + 50; - if (iEndTran > lMatchingDataTwo.size()) - iEndTran = lMatchingDataTwo.size(); + if (iEndTran > lMatchingDataTwo.size()) iEndTran = lMatchingDataTwo.size(); } if (iCmbnTranCnt > 3) { iEndTran = iStartTran + 25; - if (iEndTran > lMatchingDataTwo.size()) - iEndTran = lMatchingDataTwo.size(); - } - - StatisticsUtil.reculsion(lMatchingDataOne, compResult, iStartOwn, iEndOwn, iCmbnOwnCnt, llMatchingDataOne); - StatisticsUtil.reculsion(lMatchingDataTwo, compResult, iStartTran, iEndTran, iCmbnTranCnt, llMatchingDataTwo); - - // ---------------------------------------------------------------------------- - // 자기법인 데이타를 맵으로 처리한다. - Map>> mMatchingDataOne = new HashMap>>(); - for (List curlMap : llMatchingDataOne) { - BigDecimal bdKey = BigDecimal.ZERO; - for (Map curMap : curlMap) { - bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt")); - } - List> curllMap = new ArrayList>(); - if (mMatchingDataOne.containsKey(bdKey)) - curllMap = mMatchingDataOne.get(bdKey); - curllMap.add(curlMap); - mMatchingDataOne.put(bdKey, curllMap); - } - - // 상대법인 데이타를 맵으로 처리한다. - Map>> mMatchingDataTwo = new HashMap>>(); - for (List curlMap : llMatchingDataTwo) { - BigDecimal bdKey = BigDecimal.ZERO; - for (Map curMap : curlMap) { - bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt")); - } - List> curllMap = new ArrayList>(); - if (mMatchingDataTwo.containsKey(bdKey)) - curllMap = mMatchingDataTwo.get(bdKey); - curllMap.add(curlMap); - mMatchingDataTwo.put(bdKey, curllMap); + if (iEndTran > lMatchingDataTwo.size()) iEndTran = lMatchingDataTwo.size(); } - - // 여기서 매칭 비교 - // 비교 lMatchingDataOne vs mMatchingDataTwo - List lMatchingResultUpdate = new ArrayList(); // 업데이트할 대상 - - String mtchSys = "AUTO"; - String mtchType = "EX_" + iCmbnOwnCnt + "_" + iCmbnTranCnt; - String mtchTypeName = "자기(" + iCmbnOwnCnt + "건Sum), 상대(" + iCmbnTranCnt + "건Sum), (" + sDelngCrncy + "), 비교(금액)"; - for (BigDecimal curKey : mMatchingDataOne.keySet()) { - if (mMatchingDataTwo.containsKey(curKey)) { - List> llMapOne = mMatchingDataOne.get(curKey); - List> llMapTwo = mMatchingDataTwo.get(curKey); - - // 위와 관련된 동일 레코드가 있는 리스트 삭제 - for (int i = llMapOne.size() - 1; i >= 0; i--) { - List curlMap = llMapOne.get(i); + + StatisticsUtil.reculsion(lMatchingDataOne, compResult, iStartOwn, iEndOwn, iCmbnOwnCnt, llMatchingDataOne); + StatisticsUtil.reculsion(lMatchingDataTwo, compResult, iStartTran, iEndTran, iCmbnTranCnt, llMatchingDataTwo); + + //---------------------------------------------------------------------------- + //자기법인 데이타를 맵으로 처리한다. + Map>> mMatchingDataOne = new HashMap>>(); + for (List curlMap : llMatchingDataOne) { + BigDecimal bdKey = BigDecimal.ZERO; + for(Map curMap : curlMap) { + bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt")); + } + List> curllMap = new ArrayList>(); + if (mMatchingDataOne.containsKey(bdKey)) curllMap = mMatchingDataOne.get(bdKey); + curllMap.add(curlMap); + mMatchingDataOne.put(bdKey, curllMap); + } + + //상대법인 데이타를 맵으로 처리한다. + Map>> mMatchingDataTwo = new HashMap>>(); + for (List curlMap : llMatchingDataTwo) { + BigDecimal bdKey = BigDecimal.ZERO; + for(Map curMap : curlMap) { + bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt")); + } + List> curllMap = new ArrayList>(); + if (mMatchingDataTwo.containsKey(bdKey)) curllMap = mMatchingDataTwo.get(bdKey); + curllMap.add(curlMap); + mMatchingDataTwo.put(bdKey, curllMap); + } + + //여기서 매칭 비교 + //비교 lMatchingDataOne vs mMatchingDataTwo + List lMatchingResultUpdate = new ArrayList(); //업데이트할 대상 + + int mtchNumber = 0; + String mtchSys = "AUTO"; + String mtchType = "EX_" + iCmbnOwnCnt + "_" + iCmbnTranCnt; + String mtchTypeName = "자기(" + iCmbnOwnCnt + "건Sum), 상대(" + iCmbnTranCnt + "건Sum), 비교(금액)"; + for (BigDecimal curKey : mMatchingDataOne.keySet()) { + if (mMatchingDataTwo.containsKey(curKey)) { + List> llMapOne = mMatchingDataOne.get(curKey); + List> llMapTwo = mMatchingDataTwo.get(curKey); + + //위와 관련된 동일 레코드가 있는 리스트 삭제 + for (int i=llMapOne.size()-1; i>=0;i--) { + List curlMap = llMapOne.get(i); for (Map curMap : lMatchingResultUpdate) { int curIdx = curlMap.indexOf(curMap); if (curIdx != -1) { llMapOne.remove(i); break; - } + } } } - for (int i = llMapTwo.size() - 1; i >= 0; i--) { - List curlMap = llMapTwo.get(i); + for (int i=llMapTwo.size()-1; i>=0;i--) { + List curlMap = llMapTwo.get(i); for (Map curMap : lMatchingResultUpdate) { int curIdx = curlMap.indexOf(curMap); if (curIdx != -1) { llMapTwo.remove(i); break; - } + } } } - - int iMin = Math.min(llMapOne.size(), llMapTwo.size()); - if (iMin > 0) { - mtchNumber++; - } - while (iMin > 0) { - List curlMapOne = llMapOne.get(0); - for (Map curMap : curlMapOne) { - curMap.put("mtch_sys", mtchSys); - curMap.put("mtch_ty", mtchType); - curMap.put("mtch_ty_nm", mtchTypeName); - curMap.put("mtch_ky", mtchNumber); - lMatchingResultUpdate.add(curMap); - } + + + int iMin = Math.min(llMapOne.size(), llMapTwo.size()); + if (iMin > 0) mtchNumber++; + while (iMin > 0) { + List curlMapOne = llMapOne.get(0); + for (Map curMap : curlMapOne) { + curMap.put("mtch_sys", mtchSys); + curMap.put("mtch_ty", mtchType); + curMap.put("mtch_ty_nm", mtchTypeName); + curMap.put("mtch_ky", mtchNumber); + lMatchingResultUpdate.add(curMap); + } llMapOne.remove(0); List curlMapTwo = llMapTwo.get(0); - for (Map curMap : curlMapTwo) { - curMap.put("mtch_sys", mtchSys); - curMap.put("mtch_ty", mtchType); - curMap.put("mtch_ty_nm", mtchTypeName); - curMap.put("mtch_ky", mtchNumber); - lMatchingResultUpdate.add(curMap); - } + for (Map curMap : curlMapTwo) { + curMap.put("mtch_sys", mtchSys); + curMap.put("mtch_ty", mtchType); + curMap.put("mtch_ty_nm", mtchTypeName); + curMap.put("mtch_ky", mtchNumber); + lMatchingResultUpdate.add(curMap); + } llMapTwo.remove(0); - // 위와 관련된 동일 레코드가 있는 리스트 삭제(추가 업데이트 목록) - for (int i = llMapOne.size() - 1; i >= 0; i--) { - List curlMap = llMapOne.get(i); - for (Map curMap : curlMapOne) { - int curIdx = curlMap.indexOf(curMap); - if (curIdx != -1) { - llMapOne.remove(i); - break; - } - } - } - for (int i = llMapTwo.size() - 1; i >= 0; i--) { - List curlMap = llMapTwo.get(i); - for (Map curMap : curlMapTwo) { - int curIdx = curlMap.indexOf(curMap); - if (curIdx != -1) { - llMapTwo.remove(i); - break; - } - } - } - iMin = Math.min(llMapOne.size(), llMapTwo.size()); - } - } - } - - // ---------------------------------------------------------------------------- - // 여기서 결과 업데이트 - iUpdated = 0; - int limit = 1000; // 1000건씩 batch - List lUpdated = new ArrayList(); - for (Map curMap : lMatchingResultUpdate) { - lUpdated.add(curMap); - if (lUpdated.size() == limit) { - matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated)); - iUpdated = iUpdated + lUpdated.size(); - lUpdated.clear(); - } - } - if (lUpdated.size() > 0) { - matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated)); - iUpdated = iUpdated + lUpdated.size(); - } - log.debug("Updated OrgData : " + iUpdated + "건"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - - return mtchNumber; - } - + //위와 관련된 동일 레코드가 있는 리스트 삭제(추가 업데이트 목록) + for (int i=llMapOne.size()-1; i>=0;i--) { + List curlMap = llMapOne.get(i); + for (Map curMap : curlMapOne) { + int curIdx = curlMap.indexOf(curMap); + if (curIdx != -1) { + llMapOne.remove(i); + break; + } + } + } + for (int i=llMapTwo.size()-1; i>=0;i--) { + List curlMap = llMapTwo.get(i); + for (Map curMap : curlMapTwo) { + int curIdx = curlMap.indexOf(curMap); + if (curIdx != -1) { + llMapTwo.remove(i); + break; + } + } + } + iMin = Math.min(llMapOne.size(), llMapTwo.size()); + } + } + } + + //---------------------------------------------------------------------------- + //여기서 결과 업데이트 + iUpdated = 0; + int limit = 1000; //1000건씩 batch + List lUpdated = new ArrayList(); + for (Map curMap : lMatchingResultUpdate) { + lUpdated.add(curMap); + if (lUpdated.size() == limit) { + matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated)); + iUpdated = iUpdated + lUpdated.size(); + lUpdated.clear(); + } + } + if (lUpdated.size() > 0) { + matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated)); + iUpdated = iUpdated + lUpdated.size(); + } + log.debug("Updated OrgData : " + iUpdated + "건"); + + //작업종료에 대한 로그 업데이트 + paramLog.put("exit_code", "0"); + paramLog.put("exit_message", ""); + matchingInnerDelingMapper.finishUserJob(paramLog); + + } + } \ No newline at end of file diff --git a/src/main/java/com/batch/config/MatchingItemProcessorAuto.java b/src/main/java/com/batch/config/MatchingItemProcessorAuto.java index 4496168..8c0547a 100644 --- a/src/main/java/com/batch/config/MatchingItemProcessorAuto.java +++ b/src/main/java/com/batch/config/MatchingItemProcessorAuto.java @@ -12,7 +12,6 @@ import org.springframework.stereotype.Component; import com.batch.config.MatchingSetup.Cond; import com.batch.config.MatchingSetup.Matching; import com.batch.mapper.primary.MatchingInnerDelingMapper; -import com.batch.util.StatisticsUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -38,13 +37,11 @@ public class MatchingItemProcessorAuto implements ItemProcessor { List lCompareField = matching.getCompareField(); String mtchType = matching.getType(); String mtchTypeName = matching.getTypeName(); - long mtchNumber = 0; + int mtchNumber = 0; int iUpdated = 0; - log.info("CustomItemProcessorA.params : " + params.toString()); - log.info("CustomItemProcessorA.item : " + item.toString()); - - params.put("delngCrncy", item.get("delng_crncy")); + log.debug("CustomItemProcessorA.params : " + params.toString()); + log.debug("CustomItemProcessorA.item : " + item.get("cpr_code") + "," + item.get("partn_cpr")); //---------------------------------------------------------------------------- //자기법인 업데이트 @@ -125,9 +122,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor { List lMapTwo = mMatchingDataTwo.get(curKey); int iMin = Math.min(lMapOne.size(), lMapTwo.size()); - if (iMin > 0) { - mtchNumber = StatisticsUtil.getMtchNum(); /** 일치key Sequence */ - } + if (iMin > 0) mtchNumber++; for (int i=0; i { matchingInnerDelingMapper.setResult(Map.of("itemList", lUpdated)); iUpdated = iUpdated + lUpdated.size(); } - log.info("Updated OrgData : " + iUpdated + "건, mtchNumber = " + mtchNumber); + log.debug("Updated OrgData : " + iUpdated + "건"); //작업이 정상적으로 작동 되었을 경우 현재 처리하고 있는 데이타 그대로 넘겨준다. return item; diff --git a/src/main/java/com/batch/config/MatchingItemWriter.java b/src/main/java/com/batch/config/MatchingItemWriter.java index c174312..a08cc07 100644 --- a/src/main/java/com/batch/config/MatchingItemWriter.java +++ b/src/main/java/com/batch/config/MatchingItemWriter.java @@ -1,8 +1,13 @@ package com.batch.config; +import java.util.HashMap; +import java.util.List; import java.util.Map; +import org.springframework.batch.core.configuration.annotation.JobScope; +import org.springframework.batch.item.ItemProcessor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.batch.mapper.primary.MatchingInnerDelingMapper; diff --git a/src/main/java/com/batch/config/MatchingSetup.java b/src/main/java/com/batch/config/MatchingSetup.java index 2150f42..df65ddc 100644 --- a/src/main/java/com/batch/config/MatchingSetup.java +++ b/src/main/java/com/batch/config/MatchingSetup.java @@ -1,5 +1,6 @@ package com.batch.config; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/batch/config/PrimaryMybatisConfiguration.java b/src/main/java/com/batch/config/PrimaryMybatisConfiguration.java index 1d1dd3e..78f0dc4 100644 --- a/src/main/java/com/batch/config/PrimaryMybatisConfiguration.java +++ b/src/main/java/com/batch/config/PrimaryMybatisConfiguration.java @@ -11,6 +11,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @MapperScan(value = "com.batch.mapper.primary", sqlSessionFactoryRef="primarySqlSessionFactory") diff --git a/src/main/java/com/batch/config/SecondaryMyBatisConfiguration.java b/src/main/java/com/batch/config/SecondaryMyBatisConfiguration.java index eb5225d..788765d 100644 --- a/src/main/java/com/batch/config/SecondaryMyBatisConfiguration.java +++ b/src/main/java/com/batch/config/SecondaryMyBatisConfiguration.java @@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @MapperScan(value = "com.batch.mapper.secondary", sqlSessionFactoryRef="secondarySqlSessionFactory") diff --git a/src/main/java/com/batch/controller/JobController.java b/src/main/java/com/batch/controller/JobController.java index 55f5661..f910d8a 100644 --- a/src/main/java/com/batch/controller/JobController.java +++ b/src/main/java/com/batch/controller/JobController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; import com.batch.config.MatchingSetup; import com.batch.config.MatchingSetup.Matching; import com.batch.mapper.primary.MatchingInnerDelingMapper; +import com.batch.mapper.secondary.OracleMapper; import com.batch.service.JobService; import com.batch.util.FileUtil; import com.google.gson.JsonObject; @@ -34,25 +35,6 @@ public class JobController { @Autowired private MatchingInnerDelingMapper matchingInnerDelingMapper; - - - - /** - * TODO : AI 서버에 특정 경로에 생성되는 파일을 읽는(끝에 50줄 정도) API - * */ - @PostMapping("/readlogs") - public StringBuffer readLogs( @RequestBody Map params) throws Exception { - StringBuffer sb = new StringBuffer(); - - String filePath = params.get("filePath"); - int readCnt = Integer.parseInt(params.get("readCnt")); - - sb = FileUtil.readFileLastLines(filePath, readCnt, "ISO-8859-1", "UTF-8"); - - log.info("sb ==="); - log.info(sb.toString()); - return sb; - } @PostMapping("/create") public Map createJob( @RequestBody Map params) throws Exception { @@ -114,54 +96,29 @@ public class JobController { * "searchTwo": "dta_ty in ('11','21','31','33','35','37','41')" * } */ - //Job Create Log UUID uuid = UUID.randomUUID(); String sJobGroup = uuid.toString(); - -// log.debug("Start Extra Matching Job"); -// List retData = matchingInnerDelingMapper.getCustomItemReadData(params); -// List retData = new ArrayList(); -// Map m = new HashMap(); -// m.put("sys_se", "LS_ALL"); -// m.put("accnut_ym", "202311"); -// m.put("cpr_code", "A15300"); -// m.put("partn_cpr", "A01100"); -// m.put("searchOne", "dta_ty in ('11','21','41')"); -// m.put("searchTwo", "dta_ty in ('12','22','42')"); -// retData.add(m); - - /** extraJobSub start ************************************************************************************** */ -// List retData = matchingInnerDelingMapper.getCustomItemReadData(params); -// -// int mtchNumber = 0; -// // 수익/비용 -// for(Map curMap : retData) { -// curMap.put("conds", "T"); -// log.info("Start extraJobSub Transaction !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// jobService.extraJobSub(sJobGroup, curMap, mtchNumber); -// log.info("End extraJobSub Transaction !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// } -// //채권/채무 -// for(Map curMap : retData) { -// curMap.put("conds", "B"); -// log.info("Start extraJobSub Balance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// jobService.extraJobSub(sJobGroup, curMap, mtchNumber); -// log.info("End extraJobSub Balance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// } - /** extraJobSub end ************************************************************************************** */ - + log.debug("Start Extra Matching Job"); + List retData = matchingInnerDelingMapper.getCustomItemReadData(params); - - /** extraJobSub2 start ************************************************************************************** */ - long startTime = System.currentTimeMillis(); - log.info("### Start Extra Matching Job2 : "+startTime); - jobService.extraJobSub2(sJobGroup, params); + // 수익/비용 + for(Map curMap : retData) { + Map cParams = new HashMap(); + cParams.putAll(curMap); + cParams.put("conds", "T"); + jobService.extraJobSub(sJobGroup, cParams); + } + //채권/채무 + for(Map curMap : retData) { + Map cParams = new HashMap(); + cParams.putAll(curMap); + cParams.put("conds", "B"); + jobService.extraJobSub(sJobGroup, cParams); + } - /** extraJobSub2 end ************************************************************************************** */ - - + log.debug("End Extra Matching Job"); Map rtnMap = new HashMap(); rtnMap.put("jobGroupId", sJobGroup); diff --git a/src/main/java/com/batch/mapper/primary/MatchingInnerDelingMapper.java b/src/main/java/com/batch/mapper/primary/MatchingInnerDelingMapper.java index e565092..d6034aa 100644 --- a/src/main/java/com/batch/mapper/primary/MatchingInnerDelingMapper.java +++ b/src/main/java/com/batch/mapper/primary/MatchingInnerDelingMapper.java @@ -169,27 +169,4 @@ public interface MatchingInnerDelingMapper { @SuppressWarnings("rawtypes") List getUserJobStatus(Map param); - - - - - - /** - * 매칭제외1 : 거래금액 = 0 - * @param param - * @return - */ - @SuppressWarnings("rawtypes") - int updateInitExclusion1(Map param); - - - /** - * 매칭제외2 : 거래유형, 자기/상대 법인, 거래일자, 계정 이 같은 1:1 내역 금액이 +, - 로 합이 0 인 경우 - * @param param - * @return - */ - @SuppressWarnings("rawtypes") - int updateInitExclusion2(Map param); - - } \ No newline at end of file diff --git a/src/main/java/com/batch/service/JobService.java b/src/main/java/com/batch/service/JobService.java index 5cbb0ca..c93a096 100644 --- a/src/main/java/com/batch/service/JobService.java +++ b/src/main/java/com/batch/service/JobService.java @@ -33,7 +33,7 @@ import com.batch.config.MatchingSetup.Matching; import com.batch.mapper.primary.MatchingInnerDelingMapper; import com.batch.mapper.secondary.OracleMapper; import com.batch.util.FileUtil; -import com.batch.util.StatisticsUtil; + import com.batch.service.JobService; import lombok.extern.slf4j.Slf4j; @@ -46,476 +46,333 @@ public class JobService { @Value("${python.ai.target}") String sPythonAiTarget; + + @Autowired + private JobLauncher jobLauncher; - @Autowired - private JobLauncher jobLauncher; - - @Autowired - private ApplicationContext context; - - @Autowired - private MatchingInnerDelingMapper matchingInnerDelingMapper; + @Autowired + private ApplicationContext context; - @Autowired - private OracleMapper oracleMapper; + @Autowired + private MatchingInnerDelingMapper matchingInnerDelingMapper; - @SuppressWarnings("rawtypes") + @Autowired + private OracleMapper oracleMapper; + + + @SuppressWarnings("rawtypes") @Async("commAsync") - public void matchingJob(String jobGroupId, Map params) throws Exception { - - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "자동매칭(" + params.toString() + ")"); - matchingInnerDelingMapper.createUserJob(paramLog); - - String sThreadName = Thread.currentThread().getName(); - long startTime = System.currentTimeMillis(); - log.info("[" + sThreadName + "]Job Started : " + startTime); - log.debug("[" + sThreadName + "]params=" + params.toString()); - - StringBuffer sb = FileUtil.readFileToString("matchingSetup.json"); - MatchingSetup matchingSetup = (MatchingSetup) FileUtil.strToObj(sb.toString(), MatchingSetup.class); - - String sJobTypeList = params.get("jobType").toUpperCase(); - List lJobType = Arrays.asList(sJobTypeList != null ? sJobTypeList.split(",") : new String[0]); - - // 파라미터가 ALL일 경우 ALL 대신 등록된 모든 Type를 넣어준다. - if (lJobType.size() > 0 && lJobType.indexOf("ALL") != -1) { - lJobType = new ArrayList(); - for (Matching matching : matchingSetup.getMatchingSetup()) { - if (matching.getActive()) { - lJobType.add(matching.getType()); - } else { - log.info("[" + sThreadName + "]JobType(" + matching.getType() + ") is Disabled"); - } - } - } - - /** 일치key 초기화 */ - StatisticsUtil.initMtchNum(); - - for (String sJobType : lJobType) { - log.info("[" + sThreadName + "]Current running job type: " + sJobType); - JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params); - if (!jobExe.getStatus().equals(BatchStatus.COMPLETED)) { - throw new Exception("Job execution error : Batchstatus(" + jobExe.getStatus() + "), ExitStatus(" + jobExe.getExitStatus() + ")"); - } - } - - long endTime = System.currentTimeMillis(); - log.info("[" + sThreadName + "]Job Type : " + lJobType.toString()); - log.info("[" + sThreadName + "]Job Ended: " + endTime); - log.info("[" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - - } - - @SuppressWarnings("rawtypes") + public void matchingJob(String jobGroupId, Map params) throws Exception { + + //Job Create Log + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); + + Map paramLog = new HashMap(); + paramLog.put("user_job_group", jobGroupId); + paramLog.put("user_job_id", sDate); + paramLog.put("user_job_name", "자동매칭(" + params.toString() + ")"); + matchingInnerDelingMapper.createUserJob(paramLog); + + String sThreadName = Thread.currentThread().getName(); + long startTime = System.currentTimeMillis(); + log.info("[" + sThreadName + "]Job Started : " + startTime); + log.debug("[" + sThreadName + "]params=" + params.toString()); + + StringBuffer sb = FileUtil.readFileToString("matchingSetup.json"); + MatchingSetup matchingSetup = (MatchingSetup) FileUtil.strToObj(sb.toString(), MatchingSetup.class); + + String sJobTypeList = params.get("jobType").toUpperCase(); + List lJobType = Arrays.asList(sJobTypeList != null?sJobTypeList.split(","):new String[0]); + + //파라미터가 ALL일 경우 ALL 대신 등록된 모든 Type를 넣어준다. + if (lJobType.size() > 0 && lJobType.indexOf("ALL") != -1) { + lJobType = new ArrayList(); + for (Matching matching : matchingSetup.getMatchingSetup()) { + if (matching.getActive()) { + lJobType.add(matching.getType()); + } else { + log.info("[" + sThreadName + "]JobType(" + matching.getType() + ") is Disabled"); + } + } + } + + + for (String sJobType : lJobType) { + log.info("[" + sThreadName + "]Current running job type: " + sJobType); + JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params); + if (!jobExe.getStatus().equals(BatchStatus.COMPLETED)) { + throw new Exception("Job execution error : Batchstatus(" + jobExe.getStatus() + "), ExitStatus(" + jobExe.getExitStatus() + ")" ); + } + } + + long endTime = System.currentTimeMillis(); + log.info("[" + sThreadName + "]Job Type : " + lJobType.toString()); + log.info("[" + sThreadName + "]Job Ended: " + endTime); + log.info("[" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms"); + + //작업종료에 대한 로그 업데이트 + paramLog.put("exit_code", "0"); + paramLog.put("exit_message", ""); + matchingInnerDelingMapper.finishUserJob(paramLog); + + } + + + @SuppressWarnings("rawtypes") @Async("extAsync") - public void extraJobSub(String jobGroupId, Map paramRec, int key) throws Exception { - - int mtchNumber = key; - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")"); - - matchingInnerDelingMapper.createUserJob(paramLog); - - String sThreadName = Thread.currentThread().getName(); - long startTime = System.currentTimeMillis(); - log.info("extra [" + sThreadName + " : " + sDate + "]Job Started : " + startTime + "]params=" + paramRec.toString()); - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString()); - - MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper); - - // 2건씩 합산 매칭일 경우 최대 20000건 까지 - for (int i = 0; i < 20000; i = i + 1000) { - matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i, mtchNumber); - } - for (int i = 0; i < 20000; i = i + 1000) { - matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0, mtchNumber); - } - for (int i = 0; i < 20000; i = i + 1000) { - matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber); - } - - // 3건씩 매칭일 경우 최대 5000건 까지 - for (int i = 0; i < 2000; i = i + 100) { - matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber); - } - for (int i = 0; i < 2000; i = i + 100) { - matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber); - } - - long endTime = System.currentTimeMillis(); - log.info("extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime); - log.info("extra [" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - - } - - @SuppressWarnings("rawtypes") - @Async("extAsync") - public void extraJobSub2(String jobGroupId, Map paramRec) throws Exception { - - List retData = matchingInnerDelingMapper.getCustomItemReadData(paramRec); - - long mtchNumber = 1000000; /** Extra매칭 일치key 백만 부터 */ - paramRec.put("conds", "T"); - for (Map curMap : retData) { - paramRec.putAll(curMap); - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")"); - try { - matchingInnerDelingMapper.createUserJob(paramLog); - } catch (Exception e) { - log.info("createUserJob Exception : " + e.getMessage()); - } - String sThreadName = Thread.currentThread().getName(); - long startTime = System.currentTimeMillis(); - log.info("extra [" + sThreadName + " : " + sDate + "]Job Started : " + startTime + "]params=" + paramRec.toString()); - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString()); - - MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper); - - // 2건씩 합산 매칭일 경우 최대 20000건 까지 - for (int i = 0; i < 20000; i = i + 1000) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i, mtchNumber); - } - for (int i = 0; i < 20000; i = i + 1000) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0, mtchNumber); - } - for (int i = 0; i < 20000; i = i + 1000) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber); - } - - // 3건씩 매칭일 경우 최대 2000건 까지 - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber); - } - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber); - } - - - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 3, i, 0, mtchNumber); - } - - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 2, i, 0, mtchNumber); - } - - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 3, i, 0, mtchNumber); - } - - // 3건이상 매칭일 경우 최대 1000건 까지 - for (int i = 0; i < 1000; i = i + 25) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 4, 0, i, mtchNumber); - } - for (int i = 0; i < 1000; i = i + 25) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 4, 1, 0, i, mtchNumber); - } - - long endTime = System.currentTimeMillis(); - log.info( - "extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime + " mtchNumber = " + mtchNumber); - log.info("extra [" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - - } - - paramRec.put("conds", "B"); - for (Map curMap : retData) { - paramRec.putAll(curMap); - - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")"); - try { - matchingInnerDelingMapper.createUserJob(paramLog); - } catch (Exception e) { - log.info("createUserJob Exception : " + e.getMessage()); - } - String sThreadName = Thread.currentThread().getName(); - long startTime = System.currentTimeMillis(); - log.info("extra [" + sThreadName + " : " + sDate + "]Job Started : " + startTime + "]params=" - + paramRec.toString()); - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString()); - - MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto( - matchingInnerDelingMapper); - - // 2건씩 합산 매칭일 경우 최대 20000건 까지 - for (int i = 0; i < 20000; i = i + 1000) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i, mtchNumber); - } - for (int i = 0; i < 20000; i = i + 1000) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0, mtchNumber); - } - for (int i = 0; i < 20000; i = i + 1000) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber); - } - - // 3건씩 매칭일 경우 최대 5000건 까지 - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber); - } - for (int i = 0; i < 2000; i = i + 100) { - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber); - } - - long endTime = System.currentTimeMillis(); - log.info("extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime + " mtchNumber = " + mtchNumber); - log.info("extra [" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - - } - - long endTime = System.currentTimeMillis(); - log.info("### End Extra Matching Job2 : " + endTime); - - } - - @SuppressWarnings("rawtypes") + public void extraJobSub(String jobGroupId, Map paramRec) throws Exception { + + //Job Create Log + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); + + Map paramLog = new HashMap(); + paramLog.put("user_job_group", jobGroupId); + paramLog.put("user_job_id", sDate); + paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")"); + matchingInnerDelingMapper.createUserJob(paramLog); + + String sThreadName = Thread.currentThread().getName(); + long startTime = System.currentTimeMillis(); + log.info("[" + sThreadName + "]Job Started : " + startTime); + log.debug("[" + sThreadName + "]params=" + paramRec.toString()); + + MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper); + + //2건씩 합산 매칭일 경우 최대 20000건 까지 + for (int i=0; i<20000;i=i+1000) { + matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i); + } + for (int i=0; i<20000;i=i+1000) { + matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0); + } + for (int i=0; i<20000;i=i+1000) { + matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i); + } + + //3건씩 매칭일 경우 최대 2000건 까지 + for (int i=0; i<2000;i=i+50) { + matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i); + } + for (int i=0; i<2000;i=i+50) { + matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0); + } + + //4건씩 매칭일 경우 최대 2000건 까지 + for (int i=0; i<2000;i=i+25) { + matchingExtraProcessorAuto.process(paramRec, 1, 4, 0, i); + } + for (int i=0; i<2000;i=i+25) { + matchingExtraProcessorAuto.process(paramRec, 4, 1, i, 0); + } + + long endTime = System.currentTimeMillis(); + log.info("[" + sThreadName + "]Job Ended: " + endTime); + log.info("[" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms"); + + //작업종료에 대한 로그 업데이트 + paramLog.put("exit_code", "0"); + paramLog.put("exit_message", ""); + matchingInnerDelingMapper.finishUserJob(paramLog); + + } + + @SuppressWarnings("rawtypes") @Async("aiAsync") - public void aiJobSub(String jobGroupId, Map paramRec) throws Exception { - - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "AI매칭(" + paramRec.toString() + ")"); - matchingInnerDelingMapper.createUserJob(paramLog); - - long startTime = System.currentTimeMillis(); - log.info("ai Job Started : " + startTime); - log.debug("ai Job params=" + paramRec.toString()); - - String sSysSe = (String) paramRec.get("sys_se"); - String sAccnutYm = (String) paramRec.get("accnut_ym"); - String sCprCode = (String) paramRec.get("cpr_code"); - String sPartCpr = (String) paramRec.get("partn_cpr"); - String sDelngCrncy = (String) paramRec.get("delng_crncy"); - - String sThreadName = Thread.currentThread().getName(); - - log.debug("call python"); - new ProcessExecutor() - .command(sPythonPrg, sPythonAiTarget, sDate, sSysSe, sAccnutYm, sCprCode, sPartCpr, sDelngCrncy) - .redirectOutput(new LogOutputStream() { - @Override - protected void processLine(String line) { - log.info(line); - } - }).execute(); - - long endTime = System.currentTimeMillis(); - log.info("ai Job Ended: " + endTime); - log.info("ai Job Running Time : " + (endTime - startTime) + "ms"); - -// //작업종료에 대한 로그 업데이트 -// paramLog.put("exit_code", "0"); -// paramLog.put("exit_message", ""); -// matchingInnerDelingMapper.finishUserJob(paramLog); - - } - - public JobExecution invokeJob(String jobName, String jobType, Map params) - throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, - JobParametersInvalidException, JobRestartException { - - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - final String date = dateFormat.format(new Date()) + ":" + uuid.toString(); - JobParameters jobParameters = new JobParametersBuilder().addString("syncDate", date) - .addString("jobType", jobType).addString("sysSe", params.get("sysSe")) - .addString("accnutYm", params.get("accnutYm")).addString("searchCond", params.get("searchCond")) - .toJobParameters(); - - var jobToStart = context.getBean(jobName, Job.class); - JobExecution jobExe = jobLauncher.run(jobToStart, jobParameters); - - return jobExe; - } - - @SuppressWarnings("rawtypes") + public void aiJobSub(String jobGroupId, Map paramRec) throws Exception { + + + //Job Create Log + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); + + Map paramLog = new HashMap(); + paramLog.put("user_job_group", jobGroupId); + paramLog.put("user_job_id", sDate); + paramLog.put("user_job_name", "AI매칭(" + paramRec.toString() + ")"); + matchingInnerDelingMapper.createUserJob(paramLog); + + + long startTime = System.currentTimeMillis(); + log.info("Job Started : " + startTime); + log.debug("params=" + paramRec.toString()); + + String sSysSe = (String) paramRec.get("sys_se"); + String sAccnutYm = (String) paramRec.get("accnut_ym"); + String sCprCode = (String) paramRec.get("cpr_code"); + String sPartCpr = (String) paramRec.get("partn_cpr"); + String sDelngCrncy = (String) paramRec.get("delng_crncy"); + + String sThreadName = Thread.currentThread().getName(); + + log.debug("call python"); + new ProcessExecutor() + .command(sPythonPrg, sPythonAiTarget, sThreadName, sSysSe, sAccnutYm, sCprCode, sPartCpr, sDelngCrncy) + .redirectOutput(new LogOutputStream() { + @Override + protected void processLine(String line) { + log.info(line); + } + }) + .execute(); + + long endTime = System.currentTimeMillis(); + log.info("Job Ended: " + endTime); + log.info("Running Time : " + (endTime - startTime) + "ms"); + + + //작업종료에 대한 로그 업데이트 + paramLog.put("exit_code", "0"); + paramLog.put("exit_message", ""); + matchingInnerDelingMapper.finishUserJob(paramLog); + + } + + + public JobExecution invokeJob(String jobName, String jobType, Map params) throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, JobParametersInvalidException, JobRestartException { + + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + final String date = dateFormat.format(new Date()) + ":" + uuid.toString(); + JobParameters jobParameters = new JobParametersBuilder() + .addString("syncDate", date) + .addString("jobType", jobType) + .addString("sysSe", params.get("sysSe")) + .addString("accnutYm", params.get("accnutYm")) + .addString("searchCond", params.get("searchCond")) + .toJobParameters(); + + var jobToStart = context.getBean(jobName, Job.class); + JobExecution jobExe = jobLauncher.run(jobToStart, jobParameters); + + return jobExe; + } + + + + @SuppressWarnings("rawtypes") @Async("commAsync") - public void createData(String jobGroupId, Map params) throws Exception { - - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "작업데이타생성(" + params.toString() + ")"); - matchingInnerDelingMapper.createUserJob(paramLog); - - long startTime = System.currentTimeMillis(); - log.info("Create Data Started : " + startTime); - log.debug("params=" + params.toString()); - - // 기존데이타 삭제 + public void createData(String jobGroupId, Map params) throws Exception { + + //Job Create Log + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); + + Map paramLog = new HashMap(); + paramLog.put("user_job_group", jobGroupId); + paramLog.put("user_job_id", sDate); + paramLog.put("user_job_name", "작업데이타생성(" + params.toString() + ")"); + matchingInnerDelingMapper.createUserJob(paramLog); + + + long startTime = System.currentTimeMillis(); + log.info("Create Data Started : " + startTime); + log.debug("params=" + params.toString()); + + //기존데이타 삭제 int iDeleted = matchingInnerDelingMapper.deleteOriginalData(params); - log.debug("Deleted OrgData : " + iDeleted + "건"); - - // 신규데이타 생성 - // 매칭키에 대한 정보 (sql로 조인하여 조회하기에는 너무 느리고 데이타 중복도 발생함) - List lMatchingInfo = oracleMapper.getMatchingInfo(params); - Map mMatchingInfo = new HashMap(); - for (Map curMap : lMatchingInfo) { - String sKey = String.valueOf(curMap.get("SEQ")); - mMatchingInfo.put(sKey, curMap); - } - - List lOrgData = oracleMapper.getOriginalData(params); - int iInserted = 0; - int iUpdated = 0; - int limit = 1000; // 1000건씩 batch - List lInserted = new ArrayList(); - for (Map curRec : lOrgData) { - String sKey = String.valueOf(curRec.get("SEQ")); - Map curMatchingInfo = mMatchingInfo.get(sKey); - if (curMatchingInfo != null) { - curRec.put("MATCHING_CAUSE", curMatchingInfo.get("MATCHING_CAUSE")); - curRec.put("MATCH_KEY", curMatchingInfo.get("MATCH_KEY")); - } - lInserted.add(curRec); - if (lInserted.size() == limit) { - matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted)); - iInserted = iInserted + lInserted.size(); - lInserted.clear(); - } - } - if (lInserted.size() > 0) { - matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted)); - iInserted = iInserted + lInserted.size(); - } - log.info("Inserted OrgData : " + iInserted + "건"); - - iDeleted = matchingInnerDelingMapper.deleteData(params); - log.debug("Deleted Work Data : " + iDeleted + "건"); - iInserted = matchingInnerDelingMapper.insertDataFromOriginal(params); - log.info("Inserted Work Data : " + iInserted + "건"); - - - /**** 매칭제외 처리 start **************************************************************************************************/ - /** 1. 거래금액 = 0 */ - iUpdated = matchingInnerDelingMapper.updateInitExclusion1(params); - log.info("매칭제외 : 1. 거래금액 = 0 : " + iUpdated + "건"); - - - /** 2. 거래유형, 자기/상대 법인, 거래일자, 계정 이 같은 1:1 내역 금액이 +, - 로 합이 0 인 경우 */ - iUpdated = matchingInnerDelingMapper.updateInitExclusion2(params); - log.info("매칭제외 : 2. 1:1 내역 금액이 +, - 로 합이 0 : " + iUpdated + "건"); - /**** 매칭제외 처리 end **************************************************************************************************/ - - iDeleted = matchingInnerDelingMapper.deleteDataAi(params); - log.debug("Deleted Work AI Data : " + iDeleted + "건"); - iInserted = matchingInnerDelingMapper.insertDataAiFromOriginal(params); - log.info("Inserted Work AI Data : " + iInserted + "건"); - - long endTime = System.currentTimeMillis(); - log.info("Create Data Ended : " + endTime); - log.info("Running Time : " + (endTime - startTime) + "ms"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - } - - @SuppressWarnings("rawtypes") + log.debug("Deleted OrgData : " + iDeleted + "건"); + + //신규데이타 생성 + //매칭키에 대한 정보 (sql로 조인하여 조회하기에는 너무 느리고 데이타 중복도 발생함) + List lMatchingInfo = oracleMapper.getMatchingInfo(params); + Map mMatchingInfo = new HashMap(); + for (Map curMap : lMatchingInfo) { + String sKey = String.valueOf(curMap.get("SEQ")); + mMatchingInfo.put(sKey, curMap); + } + + List lOrgData = oracleMapper.getOriginalData(params); + int iInserted = 0; + int limit = 1000; //1000건씩 batch + List lInserted = new ArrayList(); + for (Map curRec : lOrgData) { + String sKey = String.valueOf(curRec.get("SEQ")); + Map curMatchingInfo = mMatchingInfo.get(sKey); + if (curMatchingInfo != null) { + curRec.put("MATCHING_CAUSE", curMatchingInfo.get("MATCHING_CAUSE")); + curRec.put("MATCH_KEY", curMatchingInfo.get("MATCH_KEY")); + } + lInserted.add(curRec); + if (lInserted.size() == limit) { + matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted)); + iInserted = iInserted + lInserted.size(); + lInserted.clear(); + } + } + if (lInserted.size() > 0) { + matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted)); + iInserted = iInserted + lInserted.size(); + } + log.info("Inserted OrgData : " + iInserted + "건"); + + iDeleted = matchingInnerDelingMapper.deleteData(params); + log.debug("Deleted Work Data : " + iDeleted + "건"); + iInserted = matchingInnerDelingMapper.insertDataFromOriginal(params); + log.info("Inserted Work Data : " + iInserted + "건"); + + iDeleted = matchingInnerDelingMapper.deleteDataAi(params); + log.debug("Deleted Work AI Data : " + iDeleted + "건"); + iInserted = matchingInnerDelingMapper.insertDataAiFromOriginal(params); + log.info("Inserted Work AI Data : " + iInserted + "건"); + + long endTime = System.currentTimeMillis(); + log.info("Create Data Ended : " + endTime); + log.info("Running Time : " + (endTime - startTime) + "ms"); + + //작업종료에 대한 로그 업데이트 + paramLog.put("exit_code", "0"); + paramLog.put("exit_message", ""); + matchingInnerDelingMapper.finishUserJob(paramLog); + } + + + + @SuppressWarnings("rawtypes") @Async("commAsync") - public void returnRwsultData(String jobGroupId, Map params) throws Exception { - - // Job Create Log - UUID uuid = UUID.randomUUID(); - HashMap mt = new HashMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); - - Map paramLog = new HashMap(); - paramLog.put("user_job_group", jobGroupId); - paramLog.put("user_job_id", sDate); - paramLog.put("user_job_name", "결과데이타리턴(" + params.toString() + ")"); - matchingInnerDelingMapper.createUserJob(paramLog); - - long startTime = System.currentTimeMillis(); - log.info("Update Data Started : " + startTime); - log.debug("params=" + params.toString()); - - // 기존데이타 초기화 + public void returnRwsultData(String jobGroupId, Map params) throws Exception { + + //Job Create Log + UUID uuid = UUID.randomUUID(); + HashMap mt = new HashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss"); + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString(); + + Map paramLog = new HashMap(); + paramLog.put("user_job_group", jobGroupId); + paramLog.put("user_job_id", sDate); + paramLog.put("user_job_name", "결과데이타리턴(" + params.toString() + ")"); + matchingInnerDelingMapper.createUserJob(paramLog); + + long startTime = System.currentTimeMillis(); + log.info("Update Data Started : " + startTime); + log.debug("params=" + params.toString()); + + //기존데이타 초기화 int iUpdated = matchingInnerDelingMapper.updateClearNewMatchKey(params); - // 새로운 매칭키 생성 + //새로운 매칭키 생성 iUpdated = matchingInnerDelingMapper.updateNewMatchKey(params); - log.debug("Updated OrgData : " + iUpdated + "건"); - - long endTime = System.currentTimeMillis(); - log.info("Update Data Ended : " + endTime); - log.info("Running Time : " + (endTime - startTime) + "ms"); - - // 작업종료에 대한 로그 업데이트 - paramLog.put("exit_code", "0"); - paramLog.put("exit_message", ""); - matchingInnerDelingMapper.finishUserJob(paramLog); - - } - + log.debug("Updated OrgData : " + iUpdated + "건"); + + long endTime = System.currentTimeMillis(); + log.info("Update Data Ended : " + endTime); + log.info("Running Time : " + (endTime - startTime) + "ms"); + + + //작업종료에 대한 로그 업데이트 + paramLog.put("exit_code", "0"); + paramLog.put("exit_message", ""); + matchingInnerDelingMapper.finishUserJob(paramLog); + + } } diff --git a/src/main/java/com/batch/util/FileUtil.java b/src/main/java/com/batch/util/FileUtil.java index 9d5e664..e839447 100644 --- a/src/main/java/com/batch/util/FileUtil.java +++ b/src/main/java/com/batch/util/FileUtil.java @@ -1,9 +1,7 @@ package com.batch.util; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStreamReader; -import java.io.RandomAccessFile; import org.springframework.core.io.ClassPathResource; @@ -14,85 +12,27 @@ import com.google.gson.JsonParser; public class FileUtil { public static StringBuffer readFileToString(String resourceName) { - StringBuffer sb = new StringBuffer(); - try { + StringBuffer sb = new StringBuffer(); + try { ClassPathResource resource = new ClassPathResource(resourceName); - BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream())); - - // br.readLine() 이 null 인지 검사할 때 한번 사용되므로 String 에 먼저 저장해둬야한다. - String s = ""; - while ((s = br.readLine()) != null) { - sb.append(s); - } - } catch (Exception e) { - sb.append(e.getStackTrace()); - } - return sb; - } - - /** - * 파일 마지막 부터 lineCnt행 읽기 - * @param resourceName - * @param lineCnt - * @return - */ - public static StringBuffer readFileLastLines(String resourceName, int lineCnt, String fEnc, String toEnc) { - StringBuffer sb = new StringBuffer(); - -// lineCnt = 50; // test case -// resourceName = "D://logs/localhost_access_log.2019-03-26.txt"; // test case - - if(resourceName == null || resourceName.isEmpty()) { - sb.append("파일 경로가 입력되지 않았습니다."); - }else if(lineCnt < 1) { - sb.append("라인갯수가 입력되지 않았습니다."); - }else { - RandomAccessFile rf = null; - - try { - - rf = new RandomAccessFile(resourceName, "r"); - long len = rf.length(); - for (long i = len - 1; i >= 0; i--) { - rf.seek(i); - char c = (char) rf.read(); - if (c == '\n') { - lineCnt--; - if(lineCnt < 0) { - break; - } - } - - sb.insert(0, c); - } - - /*** 필요 시 파일 인코딩. utf-8 **/ - if(fEnc != null && !fEnc.isBlank() && toEnc != null && !toEnc.isBlank()) { - sb = new StringBuffer(new String((sb.toString()).getBytes(fEnc), toEnc)); - } - - } catch (Exception e) { -// e.printStackTrace(); - sb = new StringBuffer("유효한 파일경로가 아닙니다.("+resourceName+")"); - } finally { - if (rf != null) { - try { - rf.close(); - } catch (IOException e) { -// e.printStackTrace(); - sb = new StringBuffer("유효한 파일경로가 아닙니다.("+resourceName+")"); - } - } - } - } - return sb; + BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream())); + + // br.readLine() 이 null 인지 검사할 때 한번 사용되므로 String 에 먼저 저장해둬야한다. + String s = ""; + while((s = br.readLine()) != null){ + sb.append(s); + } + } catch (Exception e) { + sb.append(e.getStackTrace()); + } + return sb; } public static JsonObject strToJsonObj(String jsonString) { JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); return jsonObject; } - + public static Object strToObj(String jsonString, Class anyClass) { Gson gson = new Gson(); Object convertedObject = gson.fromJson(jsonString, anyClass); @@ -104,5 +44,5 @@ public class FileUtil { String stringObject = gson.toJson(obj); return stringObject; } - + } diff --git a/src/main/java/com/batch/util/StatisticsUtil.java b/src/main/java/com/batch/util/StatisticsUtil.java index 0c99038..7ea7981 100644 --- a/src/main/java/com/batch/util/StatisticsUtil.java +++ b/src/main/java/com/batch/util/StatisticsUtil.java @@ -25,16 +25,6 @@ public class StatisticsUtil { // log.info("resultAll=" + resultAll.toString()); // } - private static long mtch_num = 0; - - public static long getMtchNum() { - return ++mtch_num; - } - - public static void initMtchNum() { - mtch_num = 0; - } - /** * 조합 구하기 * diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d2000c1..98882de 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -44,9 +44,9 @@ spring.devtools.restart.enabled=true #p6spy query logging decorator.datasource.p6spy.enable-logging=true -logging.level.root=debug -logging.level.com.batch=debug -logging.level.p6spy=off +logging.level.root=info +logging.level.com.batch=info +logging.level.p6spy=debug #Thread Count 설정 thread.comm.count=10 diff --git a/src/main/resources/matchingSetup.json b/src/main/resources/matchingSetup.json index 9e1d56a..89674b5 100644 --- a/src/main/resources/matchingSetup.json +++ b/src/main/resources/matchingSetup.json @@ -3,7 +3,7 @@ { "active": true, "type": "A-A", - "typeName": "자기수익(대사키),상대비용(대사키),비교(년월,비교키,거래금액)", + "typeName": "자기수익(대사키,거래통화),상대비용(대사키,거래통화),비교(년월,비교키,거래통화,거래금액)", "condOne": { "cond": [ @@ -13,7 +13,8 @@ "cmpnsp_ky != ''" ], "makeCompareKey": [ - "cmpnsp_ky" + "cmpnsp_ky", + "delng_crncy" ] }, "condTwo": { @@ -24,7 +25,8 @@ "cmpnsp_ky != ''" ], "makeCompareKey": [ - "cmpnsp_ky" + "cmpnsp_ky", + "delng_crncy" ] }, "uniqueKey": [ @@ -37,6 +39,7 @@ "compareField": [ "accnut_ym", "compare_ky", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -46,7 +49,7 @@ { "active": true, "type": "A-B", - "typeName": "자기채권(대사키),상대채무(대사키),비교(년월,비교키,거래금액)", + "typeName": "자기채권(대사키,거래통화),상대채무(대사키,거래통화),비교(년월,비교키,거래통화,거래금액)", "condOne": { "cond": [ @@ -56,7 +59,8 @@ "cmpnsp_ky != ''" ], "makeCompareKey": [ - "cmpnsp_ky" + "cmpnsp_ky", + "delng_crncy" ] }, "condTwo": { @@ -67,7 +71,8 @@ "cmpnsp_ky != ''" ], "makeCompareKey": [ - "cmpnsp_ky" + "cmpnsp_ky", + "delng_crncy" ] }, "uniqueKey": [ @@ -80,6 +85,7 @@ "compareField": [ "accnut_ym", "compare_ky", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -93,7 +99,7 @@ { "active": true, "type": "B-A", - "typeName": "자기수익(합산키),상대비용(합산키),비교(년월,거래금액)", + "typeName": "자기수익(합산키,거래통화),상대비용(합산키,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -103,7 +109,8 @@ "ext_key1 != ''" ], "makeCompareKey": [ - "ext_key1" + "ext_key1", + "delng_crncy" ] }, "condTwo": { @@ -114,7 +121,8 @@ "ext_key1 != ''" ], "makeCompareKey": [ - "ext_key1" + "ext_key1", + "delng_crncy" ] }, "uniqueKey": [ @@ -126,6 +134,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -135,7 +144,7 @@ { "active": true, "type": "B-B", - "typeName": "자기채권(합산키),상대채무(합산키),비교(년월,거래금액)", + "typeName": "자기채권(합산키,거래통화),상대채무(합산키,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -145,7 +154,8 @@ "ext_key1 != ''" ], "makeCompareKey": [ - "ext_key1" + "ext_key1", + "delng_crncy" ] }, "condTwo": { @@ -156,7 +166,8 @@ "ext_key1 != ''" ], "makeCompareKey": [ - "ext_key1" + "ext_key1", + "delng_crncy" ] }, "uniqueKey": [ @@ -168,6 +179,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -183,7 +195,7 @@ { "active": true, "type": "C-A", - "typeName": "자기수익(전표번호),상대비용(전표번호),비교(년월,거래금액)", + "typeName": "자기수익(전표번호,거래통화),상대비용(전표번호,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -193,7 +205,8 @@ "chit_no != ''" ], "makeCompareKey": [ - "chit_no" + "chit_no", + "delng_crncy" ] }, "condTwo": { @@ -204,7 +217,8 @@ "chit_no != ''" ], "makeCompareKey": [ - "chit_no" + "chit_no", + "delng_crncy" ] }, "uniqueKey": [ @@ -216,6 +230,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -225,7 +240,7 @@ { "active": true, "type": "C-B", - "typeName": "자기채권(전표번호),상대채무(전표번호),비교(년월,거래금액)", + "typeName": "자기채권(전표번호,거래통화),상대채무(전표번호,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -235,7 +250,8 @@ "chit_no != ''" ], "makeCompareKey": [ - "chit_no" + "chit_no", + "delng_crncy" ] }, "condTwo": { @@ -245,7 +261,8 @@ "chit_no is not null" ], "makeCompareKey": [ - "chit_no" + "chit_no", + "delng_crncy" ] }, "uniqueKey": [ @@ -257,6 +274,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -272,7 +290,7 @@ { "active": true, "type": "D-A", - "typeName": "자기수익(거래일자),상대비용(거래일자),비교(년월,거래금액)", + "typeName": "자기수익(거래일자,거래통화),상대비용(거래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -280,7 +298,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -289,7 +308,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -301,6 +321,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -310,7 +331,7 @@ { "active": true, "type": "D-B", - "typeName": "자기채권(거래일자),상대채무(거래일자),비교(년월,거래금액)", + "typeName": "자기채권(거래일자,거래통화),상대채무(거래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -318,7 +339,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -327,7 +349,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -339,6 +362,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -353,7 +377,7 @@ { "active": true, "type": "E-A", - "typeName": "자기수익(거래월),상대비용(거래월),비교(년월,거래금액)", + "typeName": "자기수익(거래월,거래통화),상대비용(거래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -361,7 +385,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -370,7 +395,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -382,6 +408,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -391,7 +418,7 @@ { "active": true, "type": "E-B", - "typeName": "자기채권(거래월),상대채무(거래월),비교(년월,거래금액)", + "typeName": "자기채권(거래월,거래통화),상대채무(거래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -399,7 +426,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -408,7 +436,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -420,6 +449,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -437,7 +467,7 @@ { "active": true, "type": "F-A", - "typeName": "자기수익(전체),상대비용(전체),비교(년월,거래금액)", + "typeName": "자기수익(전체,거래통화),상대비용(전체,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -446,7 +476,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -456,7 +487,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "uniqueKey": [ @@ -468,6 +500,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -477,7 +510,7 @@ { "active": true, "type": "F-B", - "typeName": "자기채권(전체),상대채무(전체),비교(년월,거래금액)", + "typeName": "자기채권(전체,거래통화),상대채무(전체,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -486,7 +519,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -496,7 +530,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "uniqueKey": [ @@ -508,6 +543,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -522,7 +558,7 @@ { "active": true, "type": "G-A", - "typeName": "개별자기수익,상대개별비용,비교(년월,거래금액)", + "typeName": "개별자기수익(거래통화),상대개별비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -532,7 +568,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "condTwo": { @@ -543,7 +580,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -555,6 +593,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -564,7 +603,7 @@ { "active": true, "type": "G-B", - "typeName": "개별자기채권,상대개별채무,비교(년월,거래금액)", + "typeName": "개별자기채권(거래통화),상대개별채무(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -574,7 +613,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "condTwo": { @@ -585,7 +625,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -597,6 +638,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -614,7 +656,7 @@ { "active": true, "type": "H-AA", - "typeName": "자기수익(거래일자),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(거래일자,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -624,7 +666,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -635,7 +678,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -647,6 +691,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -656,7 +701,7 @@ { "active": true, "type": "H-AB", - "typeName": "자기수익(거래월),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(거래월,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -666,7 +711,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" ] + "substring(delng_de,1,6)", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -676,7 +723,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -688,6 +736,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -697,7 +746,7 @@ { "active": true, "type": "H-AC", - "typeName": "자기수익(전표번호),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(전표번호,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -709,7 +758,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "chit_no" ] + "chit_no", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -719,7 +770,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -731,6 +783,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -740,7 +793,7 @@ { "active": true, "type": "H-AD", - "typeName": "자기수익(합산키),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(합산키,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -752,7 +805,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "ext_key1" ] + "ext_key1", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -762,7 +817,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -774,6 +830,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -783,7 +840,7 @@ { "active": true, "type": "H-AE", - "typeName": "자기비용(거래일자),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(거래일자,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -793,7 +850,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -804,7 +862,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -816,6 +875,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -825,7 +885,7 @@ { "active": true, "type": "H-AF", - "typeName": "자기비용(거래월),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(거래월,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -835,7 +895,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" ] + "substring(delng_de,1,6)", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -845,7 +907,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -857,6 +920,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -866,7 +930,7 @@ { "active": true, "type": "H-AG", - "typeName": "자기비용(전표번호),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(전표번호,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -878,7 +942,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "chit_no" ] + "chit_no", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -888,7 +954,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -900,6 +967,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -909,7 +977,7 @@ { "active": true, "type": "H-AH", - "typeName": "자기비용(합산키),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(합산키,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -921,7 +989,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "ext_key1" ] + "ext_key1", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -931,7 +1001,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -943,6 +1014,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -955,7 +1027,7 @@ { "active": true, "type": "H-BA", - "typeName": "자기채권(거래일자),개별상대채무,비교(년월,거래금액)", + "typeName": "자기채권(거래일자,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -965,7 +1037,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -976,7 +1049,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -988,6 +1062,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -997,7 +1072,7 @@ { "active": true, "type": "H-BB", - "typeName": "자기채권(거래월),개별상대채무,비교(년월,거래금액)", + "typeName": "자기채권(거래월,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1007,7 +1082,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" ] + "substring(delng_de,1,6)", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -1017,7 +1094,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1029,6 +1107,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1038,7 +1117,7 @@ { "active": true, "type": "H-BC", - "typeName": "자기채권(전표번호),개별상대채무,비교(년월,거래금액)", + "typeName": "자기채권(전표번호,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1050,7 +1129,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "chit_no" ] + "chit_no", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -1060,7 +1141,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1072,6 +1154,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1081,7 +1164,7 @@ { "active": true, "type": "H-BD", - "typeName": "자기채권(합산키),개별상대채무,비교(년월,거래금액)", + "typeName": "자기채권(합산키,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1091,7 +1174,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "ext_key1" ] + "ext_key1", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -1101,7 +1186,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1113,6 +1199,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1122,7 +1209,7 @@ { "active": true, "type": "H-BE", - "typeName": "자기채무(거래일자),개별상대채권,비교(년월,거래금액)", + "typeName": "자기채무(거래일자,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1132,7 +1219,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -1143,7 +1231,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1155,6 +1244,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1164,7 +1254,7 @@ { "active": true, "type": "H-BF", - "typeName": "자기채무(거래월),개별상대채권,비교(년월,거래금액)", + "typeName": "자기채무(거래월(거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1174,7 +1264,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" ] + "substring(delng_de,1,6)", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -1184,7 +1276,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1196,6 +1289,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1205,7 +1299,7 @@ { "active": true, "type": "H-BG", - "typeName": "자기채무(전표번호),개별상대채권,비교(년월,거래금액)", + "typeName": "자기채무(전표번호,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1217,7 +1311,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "chit_no" ] + "chit_no", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -1227,7 +1323,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1239,6 +1336,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1248,7 +1346,7 @@ { "active": true, "type": "H-BH", - "typeName": "자기채무(합산키),개별상대채권,비교(년월,거래금액)", + "typeName": "자기채무(합산키,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1258,7 +1356,9 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "ext_key1" ] + "ext_key1", + "delng_crncy" + ] }, "condTwo": { "cond": [ @@ -1268,7 +1368,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1280,6 +1381,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1293,7 +1395,7 @@ { "active": true, "type": "I-AA", - "typeName": "자기수익(전체),상대비용(거래월),비교(년월,거래금액)", + "typeName": "자기수익(전체,거래통화),상대비용(겨래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1302,7 +1404,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1313,7 +1416,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1325,6 +1429,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1334,7 +1439,7 @@ { "active": true, "type": "I-AB", - "typeName": "자기수익(전체),상대비용(거래일자),비교(년월,거래금액)", + "typeName": "자기수익(전체,거래통화),상대비용(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1343,7 +1448,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1354,7 +1460,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1366,6 +1473,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1375,7 +1483,7 @@ { "active": true, "type": "I-AC", - "typeName": "자기비용(전체),상대수익(거래월),비교(년월,거래금액)", + "typeName": "자기비용(전체,거래통화),상대수익(겨래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1384,7 +1492,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1395,7 +1504,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1407,6 +1517,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1416,7 +1527,7 @@ { "active": true, "type": "I-AD", - "typeName": "자기비용(전체),상대수익(거래일자),비교(년월,거래금액)", + "typeName": "자기비용(전체,거래통화),상대수익(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1425,7 +1536,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1436,7 +1548,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1448,6 +1561,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1457,7 +1571,7 @@ { "active": true, "type": "I-AE", - "typeName": "자기수익(전체),상대비용(법인계정코드),비교(년월,거래금액)", + "typeName": "자기수익(전체,거래통화),상대비용(법인계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1466,7 +1580,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1477,7 +1592,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -1489,6 +1605,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1498,7 +1615,7 @@ { "active": true, "type": "I-AF", - "typeName": "자기비용(전체),상대수익(법인계정코드),비교(년월,거래금액)", + "typeName": "자기비용(전체,거래통화),상대수익(법인계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1507,7 +1624,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1518,7 +1636,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -1530,6 +1649,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1542,7 +1662,7 @@ { "active": true, "type": "I-BA", - "typeName": "자기채권(전체),상대채무(거래월),비교(년월,거래금액)", + "typeName": "자기채권(전체,거래통화),상대채무(겨래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1551,7 +1671,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1562,7 +1683,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1574,6 +1696,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1583,7 +1706,7 @@ { "active": true, "type": "I-BB", - "typeName": "자기채권(전체),상대채무(거래일자),비교(년월,거래금액)", + "typeName": "자기채권(전체,거래통화),상대채무(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1592,7 +1715,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1603,7 +1727,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1615,6 +1740,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1624,7 +1750,7 @@ { "active": true, "type": "I-BC", - "typeName": "자기채무(전체),상대채권(거래월),비교(년월,거래금액)", + "typeName": "자기채무(전체,거래통화),상대채권(겨래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1633,7 +1759,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1644,7 +1771,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -1656,6 +1784,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1665,7 +1794,7 @@ { "active": true, "type": "I-BD", - "typeName": "자기채무(전체),상대채권(거래일자),비교(년월,거래금액)", + "typeName": "자기채무(전체,거래통화),상대채권(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1674,7 +1803,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -1685,7 +1815,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1697,6 +1828,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1706,7 +1838,7 @@ { "active": true, "type": "I-BE", - "typeName": "자기채권(전체),상대채무(계정코드),비교(년월,거래금액)", + "typeName": "자기채권(전체,거래통화),상대채무(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1715,7 +1847,8 @@ ], "makeCompareKey": [ "sys_se", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -1726,7 +1859,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1738,6 +1872,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1747,7 +1882,7 @@ { "active": true, "type": "I-BF", - "typeName": "자기채무(전체),상대채권(계정코드),비교(년월,거래금액)", + "typeName": "자기채무(전체,거래통화),상대채권(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1756,7 +1891,8 @@ ], "makeCompareKey": [ "sys_se", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -1767,7 +1903,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1779,6 +1916,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1792,7 +1930,7 @@ { "active": true, "type": "J-AA", - "typeName": "자기수익(거래월),상대비용(거래일자),비교(년월,거래금액)", + "typeName": "자기수익(거래월,거래통화),상대비용(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1802,7 +1940,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -1813,7 +1952,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1825,6 +1965,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1834,7 +1975,7 @@ { "active": true, "type": "J-AB", - "typeName": "자기비용(거래월),상대수익(거래일자),비교(년월,거래금액)", + "typeName": "자기비용(거래월,거래통화),상대수익(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1844,7 +1985,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -1855,7 +1997,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1867,6 +2010,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1876,7 +2020,7 @@ { "active": true, "type": "J-AC", - "typeName": "자기수익(거래월),상대비용(계정코드),비교(년월,거래금액)", + "typeName": "자기수익(거래월,거래통화),상대비용(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1886,7 +2030,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -1897,7 +2042,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -1909,6 +2055,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1918,7 +2065,7 @@ { "active": true, "type": "J-AD", - "typeName": "자기비용(거래월),상대수익(계정코드),비교(년월,거래금액)", + "typeName": "자기비용(거래월,거래통화),상대수익(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1928,7 +2075,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -1939,7 +2087,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -1951,6 +2100,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -1961,7 +2111,7 @@ { "active": true, "type": "J-BA", - "typeName": "자기채권(거래월),상대채무(거래일자),비교(년월,거래금액)", + "typeName": "자기채권(거래월,거래통화),상대채무(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -1971,7 +2121,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -1982,7 +2133,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -1994,6 +2146,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2003,7 +2156,7 @@ { "active": true, "type": "J-BB", - "typeName": "자기채무(거래월),상대채권(거래일자),비교(년월,거래금액)", + "typeName": "자기채무(거래월,거래통화),상대채권(겨래일자,거래통하),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2013,7 +2166,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -2024,7 +2178,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -2036,6 +2191,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2045,7 +2201,7 @@ { "active": true, "type": "J-BC", - "typeName": "자기채권(거래월),상대채무(계정코드),비교(년월,거래금액)", + "typeName": "자기채권(거래월,거래통화),상대채무(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2055,7 +2211,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -2066,7 +2223,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -2078,6 +2236,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2087,7 +2246,7 @@ { "active": true, "type": "J-BD", - "typeName": "자기채무(거래월),상대채권(계정코드),비교(년월,거래금액)", + "typeName": "자기채무(거래월,거래통화),상대채권(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2097,7 +2256,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -2108,7 +2268,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -2120,6 +2281,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2142,7 +2304,7 @@ { "active": true, "type": "K-AA", - "typeName": "자기수익(적요),상대비용(적요),비교(년월,거래금액)", + "typeName": "자기수익(적요,거래통화),상대비용(적요,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2152,7 +2314,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2163,7 +2326,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2175,6 +2339,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2184,7 +2349,7 @@ { "active": true, "type": "K-AB", - "typeName": "자기비용(적요),상대수익(거래일자),비교(년월,거래금액)", + "typeName": "자기비용(적요,거래통화),상대수익(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2194,7 +2359,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2205,7 +2371,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -2217,6 +2384,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2226,7 +2394,7 @@ { "active": true, "type": "K-AC", - "typeName": "자기수익(적요),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(적요,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2236,7 +2404,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2247,7 +2416,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2259,6 +2429,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2268,7 +2439,7 @@ { "active": true, "type": "K-AD", - "typeName": "자기비용(적요),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(적요(거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2278,7 +2449,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2289,7 +2461,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2301,6 +2474,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2310,7 +2484,7 @@ { "active": true, "type": "K-BA", - "typeName": "자기채권(적요),상대채무(거래일자),비교(년월,거래금액)", + "typeName": "자기채권(적요,거래통화),상대채무(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2320,7 +2494,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2331,7 +2506,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -2343,6 +2519,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2352,7 +2529,7 @@ { "active": true, "type": "K-BB", - "typeName": "자기채무(적요),상대채권(거래일자),비교(년월,거래금액)", + "typeName": "자기채무(적요,거래통화),상대채권(겨래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2362,7 +2539,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2373,7 +2551,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -2385,6 +2564,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2394,7 +2574,7 @@ { "active": true, "type": "K-BC", - "typeName": "자기채권(적요),개별상대채무,비교(년월,거래금액)", + "typeName": "자기채권(적요,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2404,7 +2584,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2415,7 +2596,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2427,6 +2609,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2436,7 +2619,7 @@ { "active": true, "type": "K-BD", - "typeName": "자기채무(적요),개별상대채권,비교(년월,거래금액)", + "typeName": "자기채무(적요,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2446,7 +2629,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(sumry, 1, 80)" + "substring(sumry, 1, 80)", + "delng_crncy" ] }, "condTwo": { @@ -2457,7 +2641,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2469,6 +2654,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2482,7 +2668,7 @@ { "active": true, "type": "L-A", - "typeName": "자기수익(회계일자),상대비용(회계일자),비교(년월,거래금액)", + "typeName": "자기수익(회계일자,거래통화),상대비용(회계일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2492,7 +2678,8 @@ "elcty_de != ''" ], "makeCompareKey": [ - "elcty_de" + "elcty_de", + "delng_crncy" ] }, "condTwo": { @@ -2503,7 +2690,8 @@ "elcty_de != ''" ], "makeCompareKey": [ - "elcty_de" + "elcty_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -2515,6 +2703,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2524,7 +2713,7 @@ { "active": true, "type": "L-AA", - "typeName": "자기수익(회계일자),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(회계일자,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2534,7 +2723,8 @@ "elcty_de != ''" ], "makeCompareKey": [ - "elcty_de" + "elcty_de", + "delng_crncy" ] }, "condTwo": { @@ -2545,7 +2735,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2557,6 +2748,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2566,7 +2758,7 @@ { "active": true, "type": "L-AB", - "typeName": "자기비용(회계일자),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(회계일자,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2576,7 +2768,8 @@ "elcty_de != ''" ], "makeCompareKey": [ - "elcty_de" + "elcty_de", + "delng_crncy" ] }, "condTwo": { @@ -2587,7 +2780,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2599,6 +2793,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2613,7 +2808,7 @@ { "active": true, "type": "M-A", - "typeName": "자기수익(법인계정코드),상대비용(법인계정코드),비교(년월,거래금액)", + "typeName": "자기수익(법인계정코드,거래통화),상대비용(법인계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2621,7 +2816,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2630,7 +2826,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -2642,6 +2839,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2651,7 +2849,7 @@ { "active": true, "type": "M-AA", - "typeName": "자기수익(법인계정코드),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(법인계정코드,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2659,7 +2857,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2670,7 +2869,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2682,6 +2882,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2691,7 +2892,7 @@ { "active": true, "type": "M-AB", - "typeName": "자기비용(법인계정코드),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(법인계정코드,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2699,7 +2900,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2710,7 +2912,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2722,6 +2925,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2735,7 +2939,7 @@ { "active": true, "type": "N-A", - "typeName": "자기수익(계정코드),상대비용(계정코드),비교(년월,거래금액)", + "typeName": "자기수익(계정코드,거래통화),상대비용(계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2743,7 +2947,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cnnc_acnt_code" + "cnnc_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2752,7 +2957,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cnnc_acnt_code" + "cnnc_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -2764,6 +2970,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2773,7 +2980,7 @@ { "active": true, "type": "N-AA", - "typeName": "자기수익(계정코드),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(계정코드,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2781,7 +2988,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cnnc_acnt_code" + "cnnc_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2792,7 +3000,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2804,6 +3013,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2813,7 +3023,7 @@ { "active": true, "type": "N-AB", - "typeName": "자기비용(계정코드),개별상대수익,비교(년월,비교키,거래금액)", + "typeName": "자기비용(계정코드,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2821,7 +3031,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cnnc_acnt_code" + "cnnc_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2832,7 +3043,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -2853,7 +3065,7 @@ { "active": true, "type": "N-AC", - "typeName": "자기수익(계정코드),상대비용(법인계정코드),비교(년월,거래금액)", + "typeName": "자기수익(계정코드,거래통화),상대비용(법인계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2861,7 +3073,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cnnc_acnt_code" + "cnnc_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2870,7 +3083,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -2882,6 +3096,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2891,7 +3106,7 @@ { "active": true, "type": "N-AD", - "typeName": "자기비용(계정코드),상대수익(법인계정코드),비교(년월,거래금액)", + "typeName": "자기비용(계정코드,거래통화),상대수익(법인계정코드,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2899,7 +3114,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cnnc_acnt_code" + "cnnc_acnt_code", + "delng_crncy" ] }, "condTwo": { @@ -2908,7 +3124,8 @@ "mtch_ty is null" ], "makeCompareKey": [ - "cpr_acnt_code" + "cpr_acnt_code", + "delng_crncy" ] }, "uniqueKey": [ @@ -2920,6 +3137,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2933,7 +3151,7 @@ { "active": true, "type": "O-A", - "typeName": "자기수익(INVOICE),상대비용(INVOICE),비교(년월,거래금액)", + "typeName": "자기수익(INVOICE,거래통화),상대비용(INVOICE,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2943,7 +3161,8 @@ "ext_key2 != ''" ], "makeCompareKey": [ - "ext_key2" + "ext_key2", + "delng_crncy" ] }, "condTwo": { @@ -2954,7 +3173,8 @@ "ext_key2 != ''" ], "makeCompareKey": [ - "ext_key2" + "ext_key2", + "delng_crncy" ] }, "uniqueKey": [ @@ -2966,6 +3186,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -2975,7 +3196,7 @@ { "active": true, "type": "O-AA", - "typeName": "자기수익(INVOICE),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(INVOICE,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -2985,7 +3206,8 @@ "ext_key2 != ''" ], "makeCompareKey": [ - "ext_key2" + "ext_key2", + "delng_crncy" ] }, "condTwo": { @@ -2996,7 +3218,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3008,6 +3231,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3017,7 +3241,7 @@ { "active": true, "type": "O-AB", - "typeName": "자기비용(INVOICE),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(INVOICE,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3027,7 +3251,8 @@ "ext_key2 != ''" ], "makeCompareKey": [ - "ext_key2" + "ext_key2", + "delng_crncy" ] }, "condTwo": { @@ -3038,7 +3263,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3050,6 +3276,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3062,7 +3289,7 @@ { "active": true, "type": "P-A", - "typeName": "자기수익(BL),상대비용(BL),비교(년월,거래금액)", + "typeName": "자기수익(BL,거래통화),상대비용(BL,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3072,7 +3299,8 @@ "ext_key3 != ''" ], "makeCompareKey": [ - "ext_key3" + "ext_key3", + "delng_crncy" ] }, "condTwo": { @@ -3083,7 +3311,8 @@ "ext_key3 != ''" ], "makeCompareKey": [ - "ext_key3" + "ext_key3", + "delng_crncy" ] }, "uniqueKey": [ @@ -3095,6 +3324,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3104,7 +3334,7 @@ { "active": true, "type": "P-AA", - "typeName": "자기수익(BL),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(BL,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3114,7 +3344,8 @@ "ext_key3 != ''" ], "makeCompareKey": [ - "ext_key3" + "ext_key3", + "delng_crncy" ] }, "condTwo": { @@ -3125,7 +3356,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3137,6 +3369,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3146,7 +3379,7 @@ { "active": true, "type": "P-AB", - "typeName": "자기비용(BL),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(BL,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3156,7 +3389,8 @@ "ext_key3 != ''" ], "makeCompareKey": [ - "ext_key3" + "ext_key3", + "delng_crncy" ] }, "condTwo": { @@ -3167,7 +3401,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3179,6 +3414,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3191,7 +3427,7 @@ { "active": true, "type": "Q-A", - "typeName": "자기수익(LC),상대비용(LC),비교(년월,거래금액)", + "typeName": "자기수익(LC,거래통화),상대비용(LC,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3201,7 +3437,8 @@ "ext_key4 != ''" ], "makeCompareKey": [ - "ext_key4" + "ext_key4", + "delng_crncy" ] }, "condTwo": { @@ -3212,7 +3449,8 @@ "ext_key4 != ''" ], "makeCompareKey": [ - "ext_key4" + "ext_key4", + "delng_crncy" ] }, "uniqueKey": [ @@ -3224,6 +3462,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3233,7 +3472,7 @@ { "active": true, "type": "Q-AA", - "typeName": "자기수익(LC),개별상대비용,비교(년월,거래금액)", + "typeName": "자기수익(LC,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3243,7 +3482,8 @@ "ext_key4 != ''" ], "makeCompareKey": [ - "ext_key4" + "ext_key4", + "delng_crncy" ] }, "condTwo": { @@ -3254,7 +3494,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3266,6 +3507,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3275,7 +3517,7 @@ { "active": true, "type": "Q-AB", - "typeName": "자기비용(LC),개별상대수익,비교(년월,거래금액)", + "typeName": "자기비용(LC,거래통화),개별상대수익(거래통화),비교(년월,거래통하,거래금액)", "condOne": { "cond": [ @@ -3285,7 +3527,8 @@ "ext_key4 != ''" ], "makeCompareKey": [ - "ext_key4" + "ext_key4", + "delng_crncy" ] }, "condTwo": { @@ -3296,7 +3539,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "cast(sn as text)" + "cast(sn as text)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3308,6 +3552,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3322,7 +3567,7 @@ { "active": true, "type": "Z-AA", - "typeName": "[재실행]자기수익(거래일자),상대비용(거래일자),비교(년월,거래금액)", + "typeName": "[재실행]자기수익(거래일자,거래통화),상대비용(거래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3332,7 +3577,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -3343,7 +3589,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -3355,6 +3602,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3364,7 +3612,7 @@ { "active": true, "type": "Z-AB", - "typeName": "[재실행]자기수익(거래월),상대비용(거래월),비교(년월,거래금액)", + "typeName": "[재실행]자기수익(거래월,거래통화),상대비용(거래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3374,7 +3622,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -3385,7 +3634,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3397,6 +3647,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3406,7 +3657,7 @@ { "active": true, "type": "Z-AC", - "typeName": "[재실행]자기수익(전체),상대비용(전체),비교(년월,거래금액)", + "typeName": "[재실행]자기수익(전체,거래통화),상대비용(전체,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3415,7 +3666,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -3425,7 +3677,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "uniqueKey": [ @@ -3437,6 +3690,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3446,7 +3700,7 @@ { "active": true, "type": "Z-BA", - "typeName": "[재실행]자기채권(거래일자),상대채무(거래일자),비교(년월,거래금액)", + "typeName": "[재실행]자기채권(거래일자,거래통화),상대채무(거래일자,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3456,7 +3710,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "condTwo": { @@ -3467,7 +3722,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "delng_de" + "delng_de", + "delng_crncy" ] }, "uniqueKey": [ @@ -3479,6 +3735,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3488,7 +3745,7 @@ { "active": true, "type": "Z-BB", - "typeName": "[재실행]자기채권(거래월),상대채무(거래월),비교(년월,거래금액)", + "typeName": "[재실행]자기채권(거래월,거래통화),상대채무(거래월,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3498,7 +3755,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "condTwo": { @@ -3509,7 +3767,8 @@ "makeCompareKey": [ "sys_se", "accnut_ym", - "substring(delng_de,1,6)" + "substring(delng_de,1,6)", + "delng_crncy" ] }, "uniqueKey": [ @@ -3521,6 +3780,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", @@ -3530,7 +3790,7 @@ { "active": true, "type": "Z-BC", - "typeName": "[재실행]자기채권(전체),상대채무(전체),비교(년월,거래금액)", + "typeName": "[재실행]자기채권(전체,거래통화),상대채무(전체,거래통화),비교(년월,거래통화,거래금액)", "condOne": { "cond": [ @@ -3539,7 +3799,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "condTwo": { @@ -3549,7 +3810,8 @@ ], "makeCompareKey": [ "sys_se", - "accnut_ym" + "accnut_ym", + "delng_crncy" ] }, "uniqueKey": [ @@ -3561,6 +3823,7 @@ "amtField": "sum(delng_amt) as delng_amt", "compareField": [ "accnut_ym", + "delng_crncy", "delng_amt" ], "matchingType": "mtch_ty", diff --git a/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml b/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml index 37518ae..501e970 100644 --- a/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml +++ b/src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml @@ -9,7 +9,6 @@ , accnut_ym , cpr_code , partn_cpr - , delng_crncy FROM ( SELECT @@ -17,7 +16,6 @@ , accnut_ym , cpr_code , partn_cpr - , delng_crncy , case when count(*) > 0 then 1 else 0 end as cnt FROM public.batch_tbcr_inner_delng @@ -26,20 +24,17 @@ and accnut_ym = #{accnutYm} and mtch_ty is null and dta_ty in ('11','21','31','33','35','37','41') - and delng_amt != 0 GROUP BY sys_se , accnut_ym , cpr_code , partn_cpr - , delng_crncy union all SELECT sys_se , accnut_ym , partn_cpr as cpr_code , cpr_code as partn_cpr - , delng_crncy , case when count(*) > 0 then 1 else 0 end as cnt FROM public.batch_tbcr_inner_delng @@ -48,20 +43,17 @@ and accnut_ym = #{accnutYm} and mtch_ty is null and dta_ty in ('12','22','32','34','36','38','42') - and delng_amt != 0 GROUP BY sys_se , accnut_ym , cpr_code , partn_cpr - , delng_crncy ) m GROUP BY sys_se , accnut_ym , cpr_code , partn_cpr - , delng_crncy HAVING sum(cnt) > 1 @@ -75,7 +67,6 @@ and accnut_ym = #{accnutYm} and cpr_code = #{cprCode} and partn_cpr = #{partnCpr} - and delng_crncy = #{delngCrncy} and ${item} @@ -95,7 +86,6 @@ and compare_ky is not null and cpr_code = #{cprCode} and partn_cpr = #{partnCpr} - and delng_crncy = #{delngCrncy} and ${item} @@ -119,7 +109,6 @@ and compare_ky is not null and cpr_code = #{cprCode} and partn_cpr = #{partnCpr} - and delng_crncy = #{delngCrncy} and ${item} @@ -324,8 +313,6 @@ WHERE cons_group = #{sysSe} and account_period = #{accnutYm} - and adjust_type is null - and coalesce(equal_check, 'N') != 'Y' @@ -373,8 +360,6 @@ WHERE cons_group = #{sysSe} and account_period = #{accnutYm} - and adjust_type is null - and coalesce(equal_check, 'N') != 'Y' @@ -426,7 +411,6 @@ , sn , '' as compare_ky , delng_de - , delng_crncy , delng_amt FROM public.batch_tbcr_inner_delng @@ -435,7 +419,6 @@ and accnut_ym = #{accnutYm} and cpr_code = #{cprCode} and partn_cpr = #{partnCpr} - and delng_crncy = #{delngCrncy} and mtch_ky is null and dta_ty in ('11','21','41') @@ -445,7 +428,7 @@ and delng_amt != 0 ORDER BY - delng_de, sn + delng_de @@ -456,7 +439,6 @@ , sn , '' as compare_ky , delng_de - , delng_crncy , delng_amt FROM public.batch_tbcr_inner_delng @@ -465,7 +447,6 @@ and accnut_ym = #{accnutYm} and cpr_code = #{cprCode} and partn_cpr = #{partnCpr} - and delng_crncy = #{delngCrncy} and mtch_ky is null and dta_ty in ('12','22','42') @@ -475,7 +456,7 @@ and delng_amt != 0 ORDER BY - delng_de, sn + delng_de @@ -522,25 +503,28 @@ @@ -612,7 +573,6 @@ , exit_code , exit_message , user_job_group - , log_file_path FROM public.batch_user_job_status WHERE @@ -664,50 +624,4 @@ and accnut_ym = #{accnutYm} - - - - - update batch_tbcr_inner_delng - set - MTCH_SYS = 'EXCLUSION' - , MTCH_TY = 'ZERO' - , MTCH_TY_NM = 'ZERO' - where sys_se = #{sysSe} - and accnut_ym = #{accnutYm} - and mtch_ty is null - and delng_amt = 0 - - - - - merge into batch_tbcr_inner_delng a - using ( - with ht_data as ( - select count(*) over(partition by sys_se, accnut_ym, dta_ty, cpr_code, partn_cpr, cnnc_acnt_code, delng_de, delng_crncy) as cnt - , sum(delng_amt) over(partition by sys_se, accnut_ym, dta_ty, cpr_code, partn_cpr, cnnc_acnt_code, delng_de, delng_crncy) as sum_amt - , a.* - from batch_tbcr_inner_delng a - where sys_se = #{sysSe} - and accnut_ym = #{accnutYm} - and mtch_ty is null - and delng_amt != 0 - ) - select sys_se, accnut_ym, sn - from ht_data - where cnt = 2 - and sum_amt = 0 - ) b - on ( - b.sys_se = a.sys_se - and b.accnut_ym = a.accnut_ym - and b.sn = a.sn - ) - when matched then - update - set MTCH_SYS = 'EXCLUSION' - , MTCH_TY = 'REVERSAL' - , MTCH_TY_NM = 'REVERSAL' - - \ No newline at end of file diff --git a/src/main/resources/mybatis/secondaryMapper/OracleMapper.xml b/src/main/resources/mybatis/secondaryMapper/OracleMapper.xml index 901b4a1..422bc70 100644 --- a/src/main/resources/mybatis/secondaryMapper/OracleMapper.xml +++ b/src/main/resources/mybatis/secondaryMapper/OracleMapper.xml @@ -1,7 +1,7 @@ - +