Commit d3e8a8a9bdf0363833e9afd4c5b331ef9592cfc9

Authored by 함상기
1 parent 66b5660a

2024-04-01

@@ -99,14 +99,6 @@ @@ -99,14 +99,6 @@
99 <version>2.3.0</version> 99 <version>2.3.0</version>
100 </dependency> 100 </dependency>
101 101
102 -  
103 - <dependency>  
104 - <groupId>javax.annotation</groupId>  
105 - <artifactId>javax.annotation-api</artifactId>  
106 - <version>1.3.2</version>  
107 - </dependency>  
108 -  
109 -  
110 </dependencies> 102 </dependencies>
111 103
112 <build> 104 <build>
src/main/java/com/batch/config/BatchMatchingConfig.java
@@ -20,10 +20,13 @@ import org.springframework.batch.item.support.ListItemReader; @@ -20,10 +20,13 @@ import org.springframework.batch.item.support.ListItemReader;
20 import org.springframework.beans.factory.annotation.Autowired; 20 import org.springframework.beans.factory.annotation.Autowired;
21 import org.springframework.context.annotation.Bean; 21 import org.springframework.context.annotation.Bean;
22 import org.springframework.context.annotation.Configuration; 22 import org.springframework.context.annotation.Configuration;
  23 +import org.springframework.core.task.SimpleAsyncTaskExecutor;
23 import org.springframework.transaction.PlatformTransactionManager; 24 import org.springframework.transaction.PlatformTransactionManager;
24 25
25 import com.batch.mapper.primary.MatchingInnerDelingMapper; 26 import com.batch.mapper.primary.MatchingInnerDelingMapper;
26 27
  28 +import org.springframework.batch.integration.async.AsyncItemProcessor;
  29 +
27 import lombok.extern.slf4j.Slf4j; 30 import lombok.extern.slf4j.Slf4j;
28 31
29 @Configuration 32 @Configuration
src/main/java/com/batch/config/MatchingExtraProcessorAuto.java
@@ -9,7 +9,6 @@ import java.util.List; @@ -9,7 +9,6 @@ import java.util.List;
9 import java.util.Map; 9 import java.util.Map;
10 import java.util.UUID; 10 import java.util.UUID;
11 11
12 -  
13 import com.batch.mapper.primary.MatchingInnerDelingMapper; 12 import com.batch.mapper.primary.MatchingInnerDelingMapper;
14 import com.batch.util.StatisticsUtil; 13 import com.batch.util.StatisticsUtil;
15 14
@@ -22,227 +21,218 @@ public class MatchingExtraProcessorAuto { @@ -22,227 +21,218 @@ public class MatchingExtraProcessorAuto {
22 21
23 private final MatchingInnerDelingMapper matchingInnerDelingMapper; 22 private final MatchingInnerDelingMapper matchingInnerDelingMapper;
24 23
25 - @SuppressWarnings({ "unchecked", "rawtypes" })  
26 - public long process(Map paramRec, int iCmbnOwnCnt, int iCmbnTranCnt, int iStartOwn, int iStartTran, long mtchNumber) throws Exception {  
27 -  
28 - // Job Create Log  
29 - UUID uuid = UUID.randomUUID();  
30 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
31 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
32 -  
33 - Map<String, Object> paramLog = new HashMap<String, Object>();  
34 - paramLog.put("user_job_id", sDate);  
35 - paramLog.put("user_job_name", "자동조합매칭(" + paramRec.toString() + ",[" + iCmbnOwnCnt + "," + iStartOwn + "],[" + iCmbnTranCnt + "," + iStartTran + "])");  
36 - matchingInnerDelingMapper.createUserJob(paramLog);  
37 -  
38 - int iUpdated = 0;  
39 -  
40 - String sSysSe = (String) paramRec.get("sys_se");  
41 - String sAccnutYm = (String) paramRec.get("accnut_ym");  
42 - String sCprCode = (String) paramRec.get("cpr_code");  
43 - String sPartCpr = (String) paramRec.get("partn_cpr");  
44 - String sDelngCrncy = (String) paramRec.get("delng_crncy");  
45 - String sConds = (String) paramRec.get("conds");  
46 -  
47 - // 작업시작  
48 - Map<String, Object> mParam = new HashMap<String, Object>();  
49 - mParam.put("sysSe", sSysSe);  
50 - mParam.put("accnutYm", sAccnutYm);  
51 - mParam.put("conds", sConds);  
52 - mParam.put("delngCrncy", sDelngCrncy);  
53 -  
54 - // ----------------------------------------------------------------------------  
55 - // 자기법인 데이타 가져오기  
56 - mParam.put("cprCode", sCprCode);  
57 - mParam.put("partnCpr", sPartCpr);  
58 - List<Map> lMatchingDataOne = matchingInnerDelingMapper.getMatchingExtraDataOne(mParam);  
59 -  
60 - // 상대법인 데이타 가져오기  
61 - mParam.put("cprCode", sPartCpr);  
62 - mParam.put("partnCpr", sCprCode);  
63 - List<Map> lMatchingDataTwo = matchingInnerDelingMapper.getMatchingExtraDataTwo(mParam);  
64 -  
65 - // Combination 데이타 만들기 24 + @SuppressWarnings("unchecked")
  25 + public void process(Map paramRec, int iCmbnOwnCnt, int iCmbnTranCnt, int iStartOwn, int iStartTran) throws Exception {
  26 +
  27 + //Job Create Log
  28 + UUID uuid = UUID.randomUUID();
  29 + HashMap<String, String> mt = new HashMap<String, String>();
  30 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  31 + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();
  32 +
  33 + Map<String, Object> paramLog = new HashMap<String, Object>();
  34 + paramLog.put("user_job_id", sDate);
  35 + paramLog.put("user_job_name", "자동조합매칭(" + paramRec.toString() + ",[" + iCmbnOwnCnt + "," + iStartOwn + "],[" + iCmbnTranCnt + "," + iStartTran + "])");
  36 + matchingInnerDelingMapper.createUserJob(paramLog);
  37 +
  38 +
  39 + int iUpdated = 0;
  40 +
  41 + String sSysSe = (String) paramRec.get("sys_se");
  42 + String sAccnutYm = (String) paramRec.get("accnut_ym");
  43 + String sCprCode = (String) paramRec.get("cpr_code");
  44 + String sPartCpr = (String) paramRec.get("partn_cpr");
  45 + String sConds = (String) paramRec.get("conds");
  46 +
  47 + //작업시작
  48 + Map<String, Object> mParam = new HashMap<String, Object>();
  49 + mParam.put("sysSe", sSysSe);
  50 + mParam.put("accnutYm", sAccnutYm);
  51 + mParam.put("conds", sConds);
  52 +
  53 + //----------------------------------------------------------------------------
  54 + //자기법인 데이타 가져오기
  55 + mParam.put("cprCode", sCprCode);
  56 + mParam.put("partnCpr", sPartCpr);
  57 + List<Map> lMatchingDataOne = matchingInnerDelingMapper.getMatchingExtraDataOne(mParam);
  58 +
  59 + //상대법인 데이타 가져오기
  60 + mParam.put("cprCode", sPartCpr);
  61 + mParam.put("partnCpr", sCprCode);
  62 + List<Map> lMatchingDataTwo = matchingInnerDelingMapper.getMatchingExtraDataTwo(mParam);
  63 +
  64 + //Combination 데이타 만들기
66 List<Map> compResult = new ArrayList<Map>(); 65 List<Map> compResult = new ArrayList<Map>();
67 List<List<Map>> llMatchingDataOne = new ArrayList<List<Map>>(); 66 List<List<Map>> llMatchingDataOne = new ArrayList<List<Map>>();
68 List<List<Map>> llMatchingDataTwo = new ArrayList<List<Map>>(); 67 List<List<Map>> llMatchingDataTwo = new ArrayList<List<Map>>();
69 - 68 +
70 int iEndOwn = lMatchingDataOne.size(); 69 int iEndOwn = lMatchingDataOne.size();
71 if (iCmbnOwnCnt == 2) { 70 if (iCmbnOwnCnt == 2) {
72 iEndOwn = iStartOwn + 1000; 71 iEndOwn = iStartOwn + 1000;
73 - if (iEndOwn > lMatchingDataOne.size())  
74 - iEndOwn = lMatchingDataOne.size(); 72 + if (iEndOwn > lMatchingDataOne.size()) iEndOwn = lMatchingDataOne.size();
75 } 73 }
76 if (iCmbnOwnCnt == 3) { 74 if (iCmbnOwnCnt == 3) {
77 iEndOwn = iStartOwn + 50; 75 iEndOwn = iStartOwn + 50;
78 - if (iEndOwn > lMatchingDataOne.size())  
79 - iEndOwn = lMatchingDataOne.size(); 76 + if (iEndOwn > lMatchingDataOne.size()) iEndOwn = lMatchingDataOne.size();
80 } 77 }
81 if (iCmbnOwnCnt > 3) { 78 if (iCmbnOwnCnt > 3) {
82 iEndOwn = iStartOwn + 25; 79 iEndOwn = iStartOwn + 25;
83 - if (iEndOwn > lMatchingDataOne.size())  
84 - iEndOwn = lMatchingDataOne.size(); 80 + if (iEndOwn > lMatchingDataOne.size()) iEndOwn = lMatchingDataOne.size();
85 } 81 }
86 82
87 int iEndTran = lMatchingDataTwo.size(); 83 int iEndTran = lMatchingDataTwo.size();
88 if (iCmbnTranCnt == 2) { 84 if (iCmbnTranCnt == 2) {
89 iEndTran = iStartTran + 1000; 85 iEndTran = iStartTran + 1000;
90 - if (iEndTran > lMatchingDataTwo.size())  
91 - iEndTran = lMatchingDataTwo.size(); 86 + if (iEndTran > lMatchingDataTwo.size()) iEndTran = lMatchingDataTwo.size();
92 } 87 }
93 if (iCmbnTranCnt == 3) { 88 if (iCmbnTranCnt == 3) {
94 iEndTran = iStartTran + 50; 89 iEndTran = iStartTran + 50;
95 - if (iEndTran > lMatchingDataTwo.size())  
96 - iEndTran = lMatchingDataTwo.size(); 90 + if (iEndTran > lMatchingDataTwo.size()) iEndTran = lMatchingDataTwo.size();
97 } 91 }
98 if (iCmbnTranCnt > 3) { 92 if (iCmbnTranCnt > 3) {
99 iEndTran = iStartTran + 25; 93 iEndTran = iStartTran + 25;
100 - if (iEndTran > lMatchingDataTwo.size())  
101 - iEndTran = lMatchingDataTwo.size();  
102 - }  
103 -  
104 - StatisticsUtil.reculsion(lMatchingDataOne, compResult, iStartOwn, iEndOwn, iCmbnOwnCnt, llMatchingDataOne);  
105 - StatisticsUtil.reculsion(lMatchingDataTwo, compResult, iStartTran, iEndTran, iCmbnTranCnt, llMatchingDataTwo);  
106 -  
107 - // ----------------------------------------------------------------------------  
108 - // 자기법인 데이타를 맵으로 처리한다.  
109 - Map<BigDecimal, List<List<Map>>> mMatchingDataOne = new HashMap<BigDecimal, List<List<Map>>>();  
110 - for (List<Map> curlMap : llMatchingDataOne) {  
111 - BigDecimal bdKey = BigDecimal.ZERO;  
112 - for (Map curMap : curlMap) {  
113 - bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt"));  
114 - }  
115 - List<List<Map>> curllMap = new ArrayList<List<Map>>();  
116 - if (mMatchingDataOne.containsKey(bdKey))  
117 - curllMap = mMatchingDataOne.get(bdKey);  
118 - curllMap.add(curlMap);  
119 - mMatchingDataOne.put(bdKey, curllMap);  
120 - }  
121 -  
122 - // 상대법인 데이타를 맵으로 처리한다.  
123 - Map<BigDecimal, List<List<Map>>> mMatchingDataTwo = new HashMap<BigDecimal, List<List<Map>>>();  
124 - for (List<Map> curlMap : llMatchingDataTwo) {  
125 - BigDecimal bdKey = BigDecimal.ZERO;  
126 - for (Map curMap : curlMap) {  
127 - bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt"));  
128 - }  
129 - List<List<Map>> curllMap = new ArrayList<List<Map>>();  
130 - if (mMatchingDataTwo.containsKey(bdKey))  
131 - curllMap = mMatchingDataTwo.get(bdKey);  
132 - curllMap.add(curlMap);  
133 - mMatchingDataTwo.put(bdKey, curllMap); 94 + if (iEndTran > lMatchingDataTwo.size()) iEndTran = lMatchingDataTwo.size();
134 } 95 }
135 -  
136 - // 여기서 매칭 비교  
137 - // 비교 lMatchingDataOne vs mMatchingDataTwo  
138 - List<Map> lMatchingResultUpdate = new ArrayList<Map>(); // 업데이트할 대상  
139 -  
140 - String mtchSys = "AUTO";  
141 - String mtchType = "EX_" + iCmbnOwnCnt + "_" + iCmbnTranCnt;  
142 - String mtchTypeName = "자기(" + iCmbnOwnCnt + "건Sum), 상대(" + iCmbnTranCnt + "건Sum), (" + sDelngCrncy + "), 비교(금액)";  
143 - for (BigDecimal curKey : mMatchingDataOne.keySet()) {  
144 - if (mMatchingDataTwo.containsKey(curKey)) {  
145 - List<List<Map>> llMapOne = mMatchingDataOne.get(curKey);  
146 - List<List<Map>> llMapTwo = mMatchingDataTwo.get(curKey);  
147 -  
148 - // 위와 관련된 동일 레코드가 있는 리스트 삭제  
149 - for (int i = llMapOne.size() - 1; i >= 0; i--) {  
150 - List<Map> curlMap = llMapOne.get(i); 96 +
  97 + StatisticsUtil.reculsion(lMatchingDataOne, compResult, iStartOwn, iEndOwn, iCmbnOwnCnt, llMatchingDataOne);
  98 + StatisticsUtil.reculsion(lMatchingDataTwo, compResult, iStartTran, iEndTran, iCmbnTranCnt, llMatchingDataTwo);
  99 +
  100 + //----------------------------------------------------------------------------
  101 + //자기법인 데이타를 맵으로 처리한다.
  102 + Map<BigDecimal, List<List<Map>>> mMatchingDataOne = new HashMap<BigDecimal, List<List<Map>>>();
  103 + for (List<Map> curlMap : llMatchingDataOne) {
  104 + BigDecimal bdKey = BigDecimal.ZERO;
  105 + for(Map curMap : curlMap) {
  106 + bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt"));
  107 + }
  108 + List<List<Map>> curllMap = new ArrayList<List<Map>>();
  109 + if (mMatchingDataOne.containsKey(bdKey)) curllMap = mMatchingDataOne.get(bdKey);
  110 + curllMap.add(curlMap);
  111 + mMatchingDataOne.put(bdKey, curllMap);
  112 + }
  113 +
  114 + //상대법인 데이타를 맵으로 처리한다.
  115 + Map<BigDecimal, List<List<Map>>> mMatchingDataTwo = new HashMap<BigDecimal, List<List<Map>>>();
  116 + for (List<Map> curlMap : llMatchingDataTwo) {
  117 + BigDecimal bdKey = BigDecimal.ZERO;
  118 + for(Map curMap : curlMap) {
  119 + bdKey = bdKey.add((BigDecimal) curMap.get("delng_amt"));
  120 + }
  121 + List<List<Map>> curllMap = new ArrayList<List<Map>>();
  122 + if (mMatchingDataTwo.containsKey(bdKey)) curllMap = mMatchingDataTwo.get(bdKey);
  123 + curllMap.add(curlMap);
  124 + mMatchingDataTwo.put(bdKey, curllMap);
  125 + }
  126 +
  127 + //여기서 매칭 비교
  128 + //비교 lMatchingDataOne vs mMatchingDataTwo
  129 + List<Map> lMatchingResultUpdate = new ArrayList<Map>(); //업데이트할 대상
  130 +
  131 + int mtchNumber = 0;
  132 + String mtchSys = "AUTO";
  133 + String mtchType = "EX_" + iCmbnOwnCnt + "_" + iCmbnTranCnt;
  134 + String mtchTypeName = "자기(" + iCmbnOwnCnt + "건Sum), 상대(" + iCmbnTranCnt + "건Sum), 비교(금액)";
  135 + for (BigDecimal curKey : mMatchingDataOne.keySet()) {
  136 + if (mMatchingDataTwo.containsKey(curKey)) {
  137 + List<List<Map>> llMapOne = mMatchingDataOne.get(curKey);
  138 + List<List<Map>> llMapTwo = mMatchingDataTwo.get(curKey);
  139 +
  140 + //위와 관련된 동일 레코드가 있는 리스트 삭제
  141 + for (int i=llMapOne.size()-1; i>=0;i--) {
  142 + List<Map> curlMap = llMapOne.get(i);
151 for (Map curMap : lMatchingResultUpdate) { 143 for (Map curMap : lMatchingResultUpdate) {
152 int curIdx = curlMap.indexOf(curMap); 144 int curIdx = curlMap.indexOf(curMap);
153 if (curIdx != -1) { 145 if (curIdx != -1) {
154 llMapOne.remove(i); 146 llMapOne.remove(i);
155 break; 147 break;
156 - } 148 + }
157 } 149 }
158 } 150 }
159 - for (int i = llMapTwo.size() - 1; i >= 0; i--) {  
160 - List<Map> curlMap = llMapTwo.get(i); 151 + for (int i=llMapTwo.size()-1; i>=0;i--) {
  152 + List<Map> curlMap = llMapTwo.get(i);
161 for (Map curMap : lMatchingResultUpdate) { 153 for (Map curMap : lMatchingResultUpdate) {
162 int curIdx = curlMap.indexOf(curMap); 154 int curIdx = curlMap.indexOf(curMap);
163 if (curIdx != -1) { 155 if (curIdx != -1) {
164 llMapTwo.remove(i); 156 llMapTwo.remove(i);
165 break; 157 break;
166 - } 158 + }
167 } 159 }
168 } 160 }
169 -  
170 - int iMin = Math.min(llMapOne.size(), llMapTwo.size());  
171 - if (iMin > 0) {  
172 - mtchNumber++;  
173 - }  
174 - while (iMin > 0) {  
175 - List<Map> curlMapOne = llMapOne.get(0);  
176 - for (Map curMap : curlMapOne) {  
177 - curMap.put("mtch_sys", mtchSys);  
178 - curMap.put("mtch_ty", mtchType);  
179 - curMap.put("mtch_ty_nm", mtchTypeName);  
180 - curMap.put("mtch_ky", mtchNumber);  
181 - lMatchingResultUpdate.add(curMap);  
182 - } 161 +
  162 +
  163 + int iMin = Math.min(llMapOne.size(), llMapTwo.size());
  164 + if (iMin > 0) mtchNumber++;
  165 + while (iMin > 0) {
  166 + List<Map> curlMapOne = llMapOne.get(0);
  167 + for (Map curMap : curlMapOne) {
  168 + curMap.put("mtch_sys", mtchSys);
  169 + curMap.put("mtch_ty", mtchType);
  170 + curMap.put("mtch_ty_nm", mtchTypeName);
  171 + curMap.put("mtch_ky", mtchNumber);
  172 + lMatchingResultUpdate.add(curMap);
  173 + }
183 llMapOne.remove(0); 174 llMapOne.remove(0);
184 175
185 List<Map> curlMapTwo = llMapTwo.get(0); 176 List<Map> curlMapTwo = llMapTwo.get(0);
186 - for (Map curMap : curlMapTwo) {  
187 - curMap.put("mtch_sys", mtchSys);  
188 - curMap.put("mtch_ty", mtchType);  
189 - curMap.put("mtch_ty_nm", mtchTypeName);  
190 - curMap.put("mtch_ky", mtchNumber);  
191 - lMatchingResultUpdate.add(curMap);  
192 - } 177 + for (Map curMap : curlMapTwo) {
  178 + curMap.put("mtch_sys", mtchSys);
  179 + curMap.put("mtch_ty", mtchType);
  180 + curMap.put("mtch_ty_nm", mtchTypeName);
  181 + curMap.put("mtch_ky", mtchNumber);
  182 + lMatchingResultUpdate.add(curMap);
  183 + }
193 llMapTwo.remove(0); 184 llMapTwo.remove(0);
194 185
195 - // 위와 관련된 동일 레코드가 있는 리스트 삭제(추가 업데이트 목록)  
196 - for (int i = llMapOne.size() - 1; i >= 0; i--) {  
197 - List<Map> curlMap = llMapOne.get(i);  
198 - for (Map curMap : curlMapOne) {  
199 - int curIdx = curlMap.indexOf(curMap);  
200 - if (curIdx != -1) {  
201 - llMapOne.remove(i);  
202 - break;  
203 - }  
204 - }  
205 - }  
206 - for (int i = llMapTwo.size() - 1; i >= 0; i--) {  
207 - List<Map> curlMap = llMapTwo.get(i);  
208 - for (Map curMap : curlMapTwo) {  
209 - int curIdx = curlMap.indexOf(curMap);  
210 - if (curIdx != -1) {  
211 - llMapTwo.remove(i);  
212 - break;  
213 - }  
214 - }  
215 - }  
216 - iMin = Math.min(llMapOne.size(), llMapTwo.size());  
217 - }  
218 - }  
219 - }  
220 -  
221 - // ----------------------------------------------------------------------------  
222 - // 여기서 결과 업데이트  
223 - iUpdated = 0;  
224 - int limit = 1000; // 1000건씩 batch  
225 - List<Map> lUpdated = new ArrayList<Map>();  
226 - for (Map curMap : lMatchingResultUpdate) {  
227 - lUpdated.add(curMap);  
228 - if (lUpdated.size() == limit) {  
229 - matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated));  
230 - iUpdated = iUpdated + lUpdated.size();  
231 - lUpdated.clear();  
232 - }  
233 - }  
234 - if (lUpdated.size() > 0) {  
235 - matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated));  
236 - iUpdated = iUpdated + lUpdated.size();  
237 - }  
238 - log.debug("Updated OrgData : " + iUpdated + "건");  
239 -  
240 - // 작업종료에 대한 로그 업데이트  
241 - paramLog.put("exit_code", "0");  
242 - paramLog.put("exit_message", "");  
243 - matchingInnerDelingMapper.finishUserJob(paramLog);  
244 -  
245 - return mtchNumber;  
246 - }  
247 - 186 + //위와 관련된 동일 레코드가 있는 리스트 삭제(추가 업데이트 목록)
  187 + for (int i=llMapOne.size()-1; i>=0;i--) {
  188 + List<Map> curlMap = llMapOne.get(i);
  189 + for (Map curMap : curlMapOne) {
  190 + int curIdx = curlMap.indexOf(curMap);
  191 + if (curIdx != -1) {
  192 + llMapOne.remove(i);
  193 + break;
  194 + }
  195 + }
  196 + }
  197 + for (int i=llMapTwo.size()-1; i>=0;i--) {
  198 + List<Map> curlMap = llMapTwo.get(i);
  199 + for (Map curMap : curlMapTwo) {
  200 + int curIdx = curlMap.indexOf(curMap);
  201 + if (curIdx != -1) {
  202 + llMapTwo.remove(i);
  203 + break;
  204 + }
  205 + }
  206 + }
  207 + iMin = Math.min(llMapOne.size(), llMapTwo.size());
  208 + }
  209 + }
  210 + }
  211 +
  212 + //----------------------------------------------------------------------------
  213 + //여기서 결과 업데이트
  214 + iUpdated = 0;
  215 + int limit = 1000; //1000건씩 batch
  216 + List<Map> lUpdated = new ArrayList<Map>();
  217 + for (Map curMap : lMatchingResultUpdate) {
  218 + lUpdated.add(curMap);
  219 + if (lUpdated.size() == limit) {
  220 + matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated));
  221 + iUpdated = iUpdated + lUpdated.size();
  222 + lUpdated.clear();
  223 + }
  224 + }
  225 + if (lUpdated.size() > 0) {
  226 + matchingInnerDelingMapper.setExtraResult(Map.of("itemList", lUpdated));
  227 + iUpdated = iUpdated + lUpdated.size();
  228 + }
  229 + log.debug("Updated OrgData : " + iUpdated + "건");
  230 +
  231 + //작업종료에 대한 로그 업데이트
  232 + paramLog.put("exit_code", "0");
  233 + paramLog.put("exit_message", "");
  234 + matchingInnerDelingMapper.finishUserJob(paramLog);
  235 +
  236 + }
  237 +
248 } 238 }
249 \ No newline at end of file 239 \ No newline at end of file
src/main/java/com/batch/config/MatchingItemProcessorAuto.java
@@ -12,7 +12,6 @@ import org.springframework.stereotype.Component; @@ -12,7 +12,6 @@ import org.springframework.stereotype.Component;
12 import com.batch.config.MatchingSetup.Cond; 12 import com.batch.config.MatchingSetup.Cond;
13 import com.batch.config.MatchingSetup.Matching; 13 import com.batch.config.MatchingSetup.Matching;
14 import com.batch.mapper.primary.MatchingInnerDelingMapper; 14 import com.batch.mapper.primary.MatchingInnerDelingMapper;
15 -import com.batch.util.StatisticsUtil;  
16 15
17 import lombok.RequiredArgsConstructor; 16 import lombok.RequiredArgsConstructor;
18 import lombok.extern.slf4j.Slf4j; 17 import lombok.extern.slf4j.Slf4j;
@@ -38,13 +37,11 @@ public class MatchingItemProcessorAuto implements ItemProcessor&lt;Map, Map&gt; { @@ -38,13 +37,11 @@ public class MatchingItemProcessorAuto implements ItemProcessor&lt;Map, Map&gt; {
38 List<String> lCompareField = matching.getCompareField(); 37 List<String> lCompareField = matching.getCompareField();
39 String mtchType = matching.getType(); 38 String mtchType = matching.getType();
40 String mtchTypeName = matching.getTypeName(); 39 String mtchTypeName = matching.getTypeName();
41 - long mtchNumber = 0; 40 + int mtchNumber = 0;
42 int iUpdated = 0; 41 int iUpdated = 0;
43 42
44 - log.info("CustomItemProcessorA.params : " + params.toString());  
45 - log.info("CustomItemProcessorA.item : " + item.toString());  
46 -  
47 - params.put("delngCrncy", item.get("delng_crncy")); 43 + log.debug("CustomItemProcessorA.params : " + params.toString());
  44 + log.debug("CustomItemProcessorA.item : " + item.get("cpr_code") + "," + item.get("partn_cpr"));
48 45
49 //---------------------------------------------------------------------------- 46 //----------------------------------------------------------------------------
50 //자기법인 업데이트 47 //자기법인 업데이트
@@ -125,9 +122,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor&lt;Map, Map&gt; { @@ -125,9 +122,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor&lt;Map, Map&gt; {
125 List<Map> lMapTwo = mMatchingDataTwo.get(curKey); 122 List<Map> lMapTwo = mMatchingDataTwo.get(curKey);
126 123
127 int iMin = Math.min(lMapOne.size(), lMapTwo.size()); 124 int iMin = Math.min(lMapOne.size(), lMapTwo.size());
128 - if (iMin > 0) {  
129 - mtchNumber = StatisticsUtil.getMtchNum(); /** 일치key Sequence */  
130 - } 125 + if (iMin > 0) mtchNumber++;
131 for (int i=0; i<iMin; i++) { 126 for (int i=0; i<iMin; i++) {
132 lMapOne.get(i).put("mtchType", mtchType); 127 lMapOne.get(i).put("mtchType", mtchType);
133 lMapOne.get(i).put("mtchTypeName", mtchTypeName); 128 lMapOne.get(i).put("mtchTypeName", mtchTypeName);
@@ -212,7 +207,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor&lt;Map, Map&gt; { @@ -212,7 +207,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor&lt;Map, Map&gt; {
212 matchingInnerDelingMapper.setResult(Map.of("itemList", lUpdated)); 207 matchingInnerDelingMapper.setResult(Map.of("itemList", lUpdated));
213 iUpdated = iUpdated + lUpdated.size(); 208 iUpdated = iUpdated + lUpdated.size();
214 } 209 }
215 - log.info("Updated OrgData : " + iUpdated + "건, mtchNumber = " + mtchNumber); 210 + log.debug("Updated OrgData : " + iUpdated + "건");
216 211
217 //작업이 정상적으로 작동 되었을 경우 현재 처리하고 있는 데이타 그대로 넘겨준다. 212 //작업이 정상적으로 작동 되었을 경우 현재 처리하고 있는 데이타 그대로 넘겨준다.
218 return item; 213 return item;
src/main/java/com/batch/config/MatchingItemWriter.java
1 package com.batch.config; 1 package com.batch.config;
2 2
  3 +import java.util.HashMap;
  4 +import java.util.List;
3 import java.util.Map; 5 import java.util.Map;
4 6
  7 +import org.springframework.batch.core.configuration.annotation.JobScope;
  8 +import org.springframework.batch.item.ItemProcessor;
5 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.beans.factory.annotation.Value;
6 import org.springframework.stereotype.Component; 11 import org.springframework.stereotype.Component;
7 12
8 import com.batch.mapper.primary.MatchingInnerDelingMapper; 13 import com.batch.mapper.primary.MatchingInnerDelingMapper;
src/main/java/com/batch/config/MatchingSetup.java
1 package com.batch.config; 1 package com.batch.config;
2 2
  3 +import java.math.BigDecimal;
3 import java.util.ArrayList; 4 import java.util.ArrayList;
4 import java.util.List; 5 import java.util.List;
5 6
src/main/java/com/batch/config/PrimaryMybatisConfiguration.java
@@ -11,6 +11,7 @@ import org.springframework.context.ApplicationContext; @@ -11,6 +11,7 @@ import org.springframework.context.ApplicationContext;
11 import org.springframework.context.annotation.Bean; 11 import org.springframework.context.annotation.Bean;
12 import org.springframework.context.annotation.Configuration; 12 import org.springframework.context.annotation.Configuration;
13 import org.springframework.context.annotation.Primary; 13 import org.springframework.context.annotation.Primary;
  14 +import org.springframework.transaction.annotation.EnableTransactionManagement;
14 15
15 @Configuration 16 @Configuration
16 @MapperScan(value = "com.batch.mapper.primary", sqlSessionFactoryRef="primarySqlSessionFactory") 17 @MapperScan(value = "com.batch.mapper.primary", sqlSessionFactoryRef="primarySqlSessionFactory")
src/main/java/com/batch/config/SecondaryMyBatisConfiguration.java
@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Qualifier; @@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
10 import org.springframework.context.ApplicationContext; 10 import org.springframework.context.ApplicationContext;
11 import org.springframework.context.annotation.Bean; 11 import org.springframework.context.annotation.Bean;
12 import org.springframework.context.annotation.Configuration; 12 import org.springframework.context.annotation.Configuration;
  13 +import org.springframework.transaction.annotation.EnableTransactionManagement;
13 14
14 @Configuration 15 @Configuration
15 @MapperScan(value = "com.batch.mapper.secondary", sqlSessionFactoryRef="secondarySqlSessionFactory") 16 @MapperScan(value = "com.batch.mapper.secondary", sqlSessionFactoryRef="secondarySqlSessionFactory")
src/main/java/com/batch/controller/JobController.java
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
17 import com.batch.config.MatchingSetup; 17 import com.batch.config.MatchingSetup;
18 import com.batch.config.MatchingSetup.Matching; 18 import com.batch.config.MatchingSetup.Matching;
19 import com.batch.mapper.primary.MatchingInnerDelingMapper; 19 import com.batch.mapper.primary.MatchingInnerDelingMapper;
  20 +import com.batch.mapper.secondary.OracleMapper;
20 import com.batch.service.JobService; 21 import com.batch.service.JobService;
21 import com.batch.util.FileUtil; 22 import com.batch.util.FileUtil;
22 import com.google.gson.JsonObject; 23 import com.google.gson.JsonObject;
@@ -34,25 +35,6 @@ public class JobController { @@ -34,25 +35,6 @@ public class JobController {
34 @Autowired 35 @Autowired
35 private MatchingInnerDelingMapper matchingInnerDelingMapper; 36 private MatchingInnerDelingMapper matchingInnerDelingMapper;
36 37
37 -  
38 -  
39 -  
40 - /**  
41 - * TODO : AI 서버에 특정 경로에 생성되는 파일을 읽는(끝에 50줄 정도) API  
42 - * */  
43 - @PostMapping("/readlogs")  
44 - public StringBuffer readLogs( @RequestBody Map<String, String> params) throws Exception {  
45 - StringBuffer sb = new StringBuffer();  
46 -  
47 - String filePath = params.get("filePath");  
48 - int readCnt = Integer.parseInt(params.get("readCnt"));  
49 -  
50 - sb = FileUtil.readFileLastLines(filePath, readCnt, "ISO-8859-1", "UTF-8");  
51 -  
52 - log.info("sb ===");  
53 - log.info(sb.toString());  
54 - return sb;  
55 - }  
56 38
57 @PostMapping("/create") 39 @PostMapping("/create")
58 public Map<String, String> createJob( @RequestBody Map<String, String> params) throws Exception { 40 public Map<String, String> createJob( @RequestBody Map<String, String> params) throws Exception {
@@ -114,54 +96,29 @@ public class JobController { @@ -114,54 +96,29 @@ public class JobController {
114 * "searchTwo": "dta_ty in ('11','21','31','33','35','37','41')" 96 * "searchTwo": "dta_ty in ('11','21','31','33','35','37','41')"
115 * } 97 * }
116 */ 98 */
117 -  
118 //Job Create Log 99 //Job Create Log
119 UUID uuid = UUID.randomUUID(); 100 UUID uuid = UUID.randomUUID();
120 String sJobGroup = uuid.toString(); 101 String sJobGroup = uuid.toString();
121 102
122 -  
123 -// log.debug("Start Extra Matching Job");  
124 -// List<Map> retData = matchingInnerDelingMapper.getCustomItemReadData(params);  
125 -// List<Map> retData = new ArrayList<Map>();  
126 -// Map m = new HashMap();  
127 -// m.put("sys_se", "LS_ALL");  
128 -// m.put("accnut_ym", "202311");  
129 -// m.put("cpr_code", "A15300");  
130 -// m.put("partn_cpr", "A01100");  
131 -// m.put("searchOne", "dta_ty in ('11','21','41')");  
132 -// m.put("searchTwo", "dta_ty in ('12','22','42')");  
133 -// retData.add(m);  
134 -  
135 - /** extraJobSub start ************************************************************************************** */  
136 -// List<Map> retData = matchingInnerDelingMapper.getCustomItemReadData(params);  
137 -//  
138 -// int mtchNumber = 0;  
139 -// // 수익/비용  
140 -// for(Map curMap : retData) {  
141 -// curMap.put("conds", "T");  
142 -// log.info("Start extraJobSub Transaction !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  
143 -// jobService.extraJobSub(sJobGroup, curMap, mtchNumber);  
144 -// log.info("End extraJobSub Transaction !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  
145 -// }  
146 -// //채권/채무  
147 -// for(Map curMap : retData) {  
148 -// curMap.put("conds", "B");  
149 -// log.info("Start extraJobSub Balance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  
150 -// jobService.extraJobSub(sJobGroup, curMap, mtchNumber);  
151 -// log.info("End extraJobSub Balance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  
152 -// }  
153 - /** extraJobSub end ************************************************************************************** */  
154 - 103 + log.debug("Start Extra Matching Job");
  104 + List<Map> retData = matchingInnerDelingMapper.getCustomItemReadData(params);
155 105
156 -  
157 - /** extraJobSub2 start ************************************************************************************** */  
158 - long startTime = System.currentTimeMillis();  
159 - log.info("### Start Extra Matching Job2 : "+startTime);  
160 - jobService.extraJobSub2(sJobGroup, params); 106 + // 수익/비용
  107 + for(Map curMap : retData) {
  108 + Map<String, String> cParams = new HashMap<String, String>();
  109 + cParams.putAll(curMap);
  110 + cParams.put("conds", "T");
  111 + jobService.extraJobSub(sJobGroup, cParams);
  112 + }
  113 + //채권/채무
  114 + for(Map curMap : retData) {
  115 + Map<String, String> cParams = new HashMap<String, String>();
  116 + cParams.putAll(curMap);
  117 + cParams.put("conds", "B");
  118 + jobService.extraJobSub(sJobGroup, cParams);
  119 + }
161 120
162 - /** extraJobSub2 end ************************************************************************************** */  
163 -  
164 - 121 + log.debug("End Extra Matching Job");
165 122
166 Map<String, String> rtnMap = new HashMap<String, String>(); 123 Map<String, String> rtnMap = new HashMap<String, String>();
167 rtnMap.put("jobGroupId", sJobGroup); 124 rtnMap.put("jobGroupId", sJobGroup);
src/main/java/com/batch/mapper/primary/MatchingInnerDelingMapper.java
@@ -169,27 +169,4 @@ public interface MatchingInnerDelingMapper { @@ -169,27 +169,4 @@ public interface MatchingInnerDelingMapper {
169 @SuppressWarnings("rawtypes") 169 @SuppressWarnings("rawtypes")
170 List<Map> getUserJobStatus(Map param); 170 List<Map> getUserJobStatus(Map param);
171 171
172 -  
173 -  
174 -  
175 -  
176 -  
177 - /**  
178 - * 매칭제외1 : 거래금액 = 0  
179 - * @param param  
180 - * @return  
181 - */  
182 - @SuppressWarnings("rawtypes")  
183 - int updateInitExclusion1(Map param);  
184 -  
185 -  
186 - /**  
187 - * 매칭제외2 : 거래유형, 자기/상대 법인, 거래일자, 계정 이 같은 1:1 내역 금액이 +, - 로 합이 0 인 경우  
188 - * @param param  
189 - * @return  
190 - */  
191 - @SuppressWarnings("rawtypes")  
192 - int updateInitExclusion2(Map param);  
193 -  
194 -  
195 } 172 }
196 \ No newline at end of file 173 \ No newline at end of file
src/main/java/com/batch/service/JobService.java
@@ -33,7 +33,7 @@ import com.batch.config.MatchingSetup.Matching; @@ -33,7 +33,7 @@ import com.batch.config.MatchingSetup.Matching;
33 import com.batch.mapper.primary.MatchingInnerDelingMapper; 33 import com.batch.mapper.primary.MatchingInnerDelingMapper;
34 import com.batch.mapper.secondary.OracleMapper; 34 import com.batch.mapper.secondary.OracleMapper;
35 import com.batch.util.FileUtil; 35 import com.batch.util.FileUtil;
36 -import com.batch.util.StatisticsUtil; 36 +
37 import com.batch.service.JobService; 37 import com.batch.service.JobService;
38 import lombok.extern.slf4j.Slf4j; 38 import lombok.extern.slf4j.Slf4j;
39 39
@@ -46,476 +46,333 @@ public class JobService { @@ -46,476 +46,333 @@ public class JobService {
46 46
47 @Value("${python.ai.target}") 47 @Value("${python.ai.target}")
48 String sPythonAiTarget; 48 String sPythonAiTarget;
  49 +
  50 + @Autowired
  51 + private JobLauncher jobLauncher;
49 52
50 - @Autowired  
51 - private JobLauncher jobLauncher;  
52 -  
53 - @Autowired  
54 - private ApplicationContext context;  
55 -  
56 - @Autowired  
57 - private MatchingInnerDelingMapper matchingInnerDelingMapper; 53 + @Autowired
  54 + private ApplicationContext context;
58 55
59 - @Autowired  
60 - private OracleMapper oracleMapper; 56 + @Autowired
  57 + private MatchingInnerDelingMapper matchingInnerDelingMapper;
61 58
62 - @SuppressWarnings("rawtypes") 59 + @Autowired
  60 + private OracleMapper oracleMapper;
  61 +
  62 +
  63 + @SuppressWarnings("rawtypes")
63 @Async("commAsync") 64 @Async("commAsync")
64 - public void matchingJob(String jobGroupId, Map<String, String> params) throws Exception {  
65 -  
66 - // Job Create Log  
67 - UUID uuid = UUID.randomUUID();  
68 - HashMap<String, String> mt = new HashMap<String, String>();  
69 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
70 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
71 -  
72 - Map<String, Object> paramLog = new HashMap<String, Object>();  
73 - paramLog.put("user_job_group", jobGroupId);  
74 - paramLog.put("user_job_id", sDate);  
75 - paramLog.put("user_job_name", "자동매칭(" + params.toString() + ")");  
76 - matchingInnerDelingMapper.createUserJob(paramLog);  
77 -  
78 - String sThreadName = Thread.currentThread().getName();  
79 - long startTime = System.currentTimeMillis();  
80 - log.info("[" + sThreadName + "]Job Started : " + startTime);  
81 - log.debug("[" + sThreadName + "]params=" + params.toString());  
82 -  
83 - StringBuffer sb = FileUtil.readFileToString("matchingSetup.json");  
84 - MatchingSetup matchingSetup = (MatchingSetup) FileUtil.strToObj(sb.toString(), MatchingSetup.class);  
85 -  
86 - String sJobTypeList = params.get("jobType").toUpperCase();  
87 - List<String> lJobType = Arrays.asList(sJobTypeList != null ? sJobTypeList.split(",") : new String[0]);  
88 -  
89 - // 파라미터가 ALL일 경우 ALL 대신 등록된 모든 Type를 넣어준다.  
90 - if (lJobType.size() > 0 && lJobType.indexOf("ALL") != -1) {  
91 - lJobType = new ArrayList();  
92 - for (Matching matching : matchingSetup.getMatchingSetup()) {  
93 - if (matching.getActive()) {  
94 - lJobType.add(matching.getType());  
95 - } else {  
96 - log.info("[" + sThreadName + "]JobType(" + matching.getType() + ") is Disabled");  
97 - }  
98 - }  
99 - }  
100 -  
101 - /** 일치key 초기화 */  
102 - StatisticsUtil.initMtchNum();  
103 -  
104 - for (String sJobType : lJobType) {  
105 - log.info("[" + sThreadName + "]Current running job type: " + sJobType);  
106 - JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params);  
107 - if (!jobExe.getStatus().equals(BatchStatus.COMPLETED)) {  
108 - throw new Exception("Job execution error : Batchstatus(" + jobExe.getStatus() + "), ExitStatus(" + jobExe.getExitStatus() + ")");  
109 - }  
110 - }  
111 -  
112 - long endTime = System.currentTimeMillis();  
113 - log.info("[" + sThreadName + "]Job Type : " + lJobType.toString());  
114 - log.info("[" + sThreadName + "]Job Ended: " + endTime);  
115 - log.info("[" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms");  
116 -  
117 - // 작업종료에 대한 로그 업데이트  
118 - paramLog.put("exit_code", "0");  
119 - paramLog.put("exit_message", "");  
120 - matchingInnerDelingMapper.finishUserJob(paramLog);  
121 -  
122 - }  
123 -  
124 - @SuppressWarnings("rawtypes") 65 + public void matchingJob(String jobGroupId, Map<String, String> params) throws Exception {
  66 +
  67 + //Job Create Log
  68 + UUID uuid = UUID.randomUUID();
  69 + HashMap<String, String> mt = new HashMap<String, String>();
  70 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  71 + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();
  72 +
  73 + Map<String, Object> paramLog = new HashMap<String, Object>();
  74 + paramLog.put("user_job_group", jobGroupId);
  75 + paramLog.put("user_job_id", sDate);
  76 + paramLog.put("user_job_name", "자동매칭(" + params.toString() + ")");
  77 + matchingInnerDelingMapper.createUserJob(paramLog);
  78 +
  79 + String sThreadName = Thread.currentThread().getName();
  80 + long startTime = System.currentTimeMillis();
  81 + log.info("[" + sThreadName + "]Job Started : " + startTime);
  82 + log.debug("[" + sThreadName + "]params=" + params.toString());
  83 +
  84 + StringBuffer sb = FileUtil.readFileToString("matchingSetup.json");
  85 + MatchingSetup matchingSetup = (MatchingSetup) FileUtil.strToObj(sb.toString(), MatchingSetup.class);
  86 +
  87 + String sJobTypeList = params.get("jobType").toUpperCase();
  88 + List<String> lJobType = Arrays.asList(sJobTypeList != null?sJobTypeList.split(","):new String[0]);
  89 +
  90 + //파라미터가 ALL일 경우 ALL 대신 등록된 모든 Type를 넣어준다.
  91 + if (lJobType.size() > 0 && lJobType.indexOf("ALL") != -1) {
  92 + lJobType = new ArrayList();
  93 + for (Matching matching : matchingSetup.getMatchingSetup()) {
  94 + if (matching.getActive()) {
  95 + lJobType.add(matching.getType());
  96 + } else {
  97 + log.info("[" + sThreadName + "]JobType(" + matching.getType() + ") is Disabled");
  98 + }
  99 + }
  100 + }
  101 +
  102 +
  103 + for (String sJobType : lJobType) {
  104 + log.info("[" + sThreadName + "]Current running job type: " + sJobType);
  105 + JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params);
  106 + if (!jobExe.getStatus().equals(BatchStatus.COMPLETED)) {
  107 + throw new Exception("Job execution error : Batchstatus(" + jobExe.getStatus() + "), ExitStatus(" + jobExe.getExitStatus() + ")" );
  108 + }
  109 + }
  110 +
  111 + long endTime = System.currentTimeMillis();
  112 + log.info("[" + sThreadName + "]Job Type : " + lJobType.toString());
  113 + log.info("[" + sThreadName + "]Job Ended: " + endTime);
  114 + log.info("[" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms");
  115 +
  116 + //작업종료에 대한 로그 업데이트
  117 + paramLog.put("exit_code", "0");
  118 + paramLog.put("exit_message", "");
  119 + matchingInnerDelingMapper.finishUserJob(paramLog);
  120 +
  121 + }
  122 +
  123 +
  124 + @SuppressWarnings("rawtypes")
125 @Async("extAsync") 125 @Async("extAsync")
126 - public void extraJobSub(String jobGroupId, Map paramRec, int key) throws Exception {  
127 -  
128 - int mtchNumber = key;  
129 - // Job Create Log  
130 - UUID uuid = UUID.randomUUID();  
131 - HashMap<String, String> mt = new HashMap<String, String>();  
132 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
133 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
134 -  
135 - Map<String, Object> paramLog = new HashMap<String, Object>();  
136 - paramLog.put("user_job_group", jobGroupId);  
137 - paramLog.put("user_job_id", sDate);  
138 - paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")");  
139 -  
140 - matchingInnerDelingMapper.createUserJob(paramLog);  
141 -  
142 - String sThreadName = Thread.currentThread().getName();  
143 - long startTime = System.currentTimeMillis();  
144 - log.info("extra [" + sThreadName + " : " + sDate + "]Job Started : " + startTime + "]params=" + paramRec.toString());  
145 - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString());  
146 -  
147 - MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper);  
148 -  
149 - // 2건씩 합산 매칭일 경우 최대 20000건 까지  
150 - for (int i = 0; i < 20000; i = i + 1000) {  
151 - matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i, mtchNumber);  
152 - }  
153 - for (int i = 0; i < 20000; i = i + 1000) {  
154 - matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0, mtchNumber);  
155 - }  
156 - for (int i = 0; i < 20000; i = i + 1000) {  
157 - matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber);  
158 - }  
159 -  
160 - // 3건씩 매칭일 경우 최대 5000건 까지  
161 - for (int i = 0; i < 2000; i = i + 100) {  
162 - matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber);  
163 - }  
164 - for (int i = 0; i < 2000; i = i + 100) {  
165 - matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber);  
166 - }  
167 -  
168 - long endTime = System.currentTimeMillis();  
169 - log.info("extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime);  
170 - log.info("extra [" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms");  
171 -  
172 - // 작업종료에 대한 로그 업데이트  
173 - paramLog.put("exit_code", "0");  
174 - paramLog.put("exit_message", "");  
175 - matchingInnerDelingMapper.finishUserJob(paramLog);  
176 -  
177 - }  
178 -  
179 - @SuppressWarnings("rawtypes")  
180 - @Async("extAsync")  
181 - public void extraJobSub2(String jobGroupId, Map paramRec) throws Exception {  
182 -  
183 - List<Map> retData = matchingInnerDelingMapper.getCustomItemReadData(paramRec);  
184 -  
185 - long mtchNumber = 1000000; /** Extra매칭 일치key 백만 부터 */  
186 - paramRec.put("conds", "T");  
187 - for (Map curMap : retData) {  
188 - paramRec.putAll(curMap);  
189 - // Job Create Log  
190 - UUID uuid = UUID.randomUUID();  
191 - HashMap<String, String> mt = new HashMap<String, String>();  
192 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
193 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
194 -  
195 - Map<String, Object> paramLog = new HashMap<String, Object>();  
196 - paramLog.put("user_job_group", jobGroupId);  
197 - paramLog.put("user_job_id", sDate);  
198 - paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")");  
199 - try {  
200 - matchingInnerDelingMapper.createUserJob(paramLog);  
201 - } catch (Exception e) {  
202 - log.info("createUserJob Exception : " + e.getMessage());  
203 - }  
204 - String sThreadName = Thread.currentThread().getName();  
205 - long startTime = System.currentTimeMillis();  
206 - log.info("extra [" + sThreadName + " : " + sDate + "]Job Started : " + startTime + "]params=" + paramRec.toString());  
207 - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString());  
208 -  
209 - MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper);  
210 -  
211 - // 2건씩 합산 매칭일 경우 최대 20000건 까지  
212 - for (int i = 0; i < 20000; i = i + 1000) {  
213 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i, mtchNumber);  
214 - }  
215 - for (int i = 0; i < 20000; i = i + 1000) {  
216 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0, mtchNumber);  
217 - }  
218 - for (int i = 0; i < 20000; i = i + 1000) {  
219 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber);  
220 - }  
221 -  
222 - // 3건씩 매칭일 경우 최대 2000건 까지  
223 - for (int i = 0; i < 2000; i = i + 100) {  
224 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber);  
225 - }  
226 - for (int i = 0; i < 2000; i = i + 100) {  
227 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber);  
228 - }  
229 -  
230 -  
231 - for (int i = 0; i < 2000; i = i + 100) {  
232 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 3, i, 0, mtchNumber);  
233 - }  
234 -  
235 - for (int i = 0; i < 2000; i = i + 100) {  
236 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 2, i, 0, mtchNumber);  
237 - }  
238 -  
239 - for (int i = 0; i < 2000; i = i + 100) {  
240 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 3, i, 0, mtchNumber);  
241 - }  
242 -  
243 - // 3건이상 매칭일 경우 최대 1000건 까지  
244 - for (int i = 0; i < 1000; i = i + 25) {  
245 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 4, 0, i, mtchNumber);  
246 - }  
247 - for (int i = 0; i < 1000; i = i + 25) {  
248 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 4, 1, 0, i, mtchNumber);  
249 - }  
250 -  
251 - long endTime = System.currentTimeMillis();  
252 - log.info(  
253 - "extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime + " mtchNumber = " + mtchNumber);  
254 - log.info("extra [" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms");  
255 -  
256 - // 작업종료에 대한 로그 업데이트  
257 - paramLog.put("exit_code", "0");  
258 - paramLog.put("exit_message", "");  
259 - matchingInnerDelingMapper.finishUserJob(paramLog);  
260 -  
261 - }  
262 -  
263 - paramRec.put("conds", "B");  
264 - for (Map curMap : retData) {  
265 - paramRec.putAll(curMap);  
266 -  
267 - // Job Create Log  
268 - UUID uuid = UUID.randomUUID();  
269 - HashMap<String, String> mt = new HashMap<String, String>();  
270 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
271 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
272 -  
273 - Map<String, Object> paramLog = new HashMap<String, Object>();  
274 - paramLog.put("user_job_group", jobGroupId);  
275 - paramLog.put("user_job_id", sDate);  
276 - paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")");  
277 - try {  
278 - matchingInnerDelingMapper.createUserJob(paramLog);  
279 - } catch (Exception e) {  
280 - log.info("createUserJob Exception : " + e.getMessage());  
281 - }  
282 - String sThreadName = Thread.currentThread().getName();  
283 - long startTime = System.currentTimeMillis();  
284 - log.info("extra [" + sThreadName + " : " + sDate + "]Job Started : " + startTime + "]params="  
285 - + paramRec.toString());  
286 - log.debug("extra [" + sThreadName + "]params=" + paramRec.toString());  
287 -  
288 - MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(  
289 - matchingInnerDelingMapper);  
290 -  
291 - // 2건씩 합산 매칭일 경우 최대 20000건 까지  
292 - for (int i = 0; i < 20000; i = i + 1000) {  
293 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i, mtchNumber);  
294 - }  
295 - for (int i = 0; i < 20000; i = i + 1000) {  
296 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0, mtchNumber);  
297 - }  
298 - for (int i = 0; i < 20000; i = i + 1000) {  
299 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber);  
300 - }  
301 -  
302 - // 3건씩 매칭일 경우 최대 5000건 까지  
303 - for (int i = 0; i < 2000; i = i + 100) {  
304 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber);  
305 - }  
306 - for (int i = 0; i < 2000; i = i + 100) {  
307 - mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber);  
308 - }  
309 -  
310 - long endTime = System.currentTimeMillis();  
311 - log.info("extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime + " mtchNumber = " + mtchNumber);  
312 - log.info("extra [" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms");  
313 -  
314 - // 작업종료에 대한 로그 업데이트  
315 - paramLog.put("exit_code", "0");  
316 - paramLog.put("exit_message", "");  
317 - matchingInnerDelingMapper.finishUserJob(paramLog);  
318 -  
319 - }  
320 -  
321 - long endTime = System.currentTimeMillis();  
322 - log.info("### End Extra Matching Job2 : " + endTime);  
323 -  
324 - }  
325 -  
326 - @SuppressWarnings("rawtypes") 126 + public void extraJobSub(String jobGroupId, Map paramRec) throws Exception {
  127 +
  128 + //Job Create Log
  129 + UUID uuid = UUID.randomUUID();
  130 + HashMap<String, String> mt = new HashMap<String, String>();
  131 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  132 + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();
  133 +
  134 + Map<String, Object> paramLog = new HashMap<String, Object>();
  135 + paramLog.put("user_job_group", jobGroupId);
  136 + paramLog.put("user_job_id", sDate);
  137 + paramLog.put("user_job_name", "Extra매칭(" + paramRec.toString() + ")");
  138 + matchingInnerDelingMapper.createUserJob(paramLog);
  139 +
  140 + String sThreadName = Thread.currentThread().getName();
  141 + long startTime = System.currentTimeMillis();
  142 + log.info("[" + sThreadName + "]Job Started : " + startTime);
  143 + log.debug("[" + sThreadName + "]params=" + paramRec.toString());
  144 +
  145 + MatchingExtraProcessorAuto matchingExtraProcessorAuto = new MatchingExtraProcessorAuto(matchingInnerDelingMapper);
  146 +
  147 + //2건씩 합산 매칭일 경우 최대 20000건 까지
  148 + for (int i=0; i<20000;i=i+1000) {
  149 + matchingExtraProcessorAuto.process(paramRec, 1, 2, 0, i);
  150 + }
  151 + for (int i=0; i<20000;i=i+1000) {
  152 + matchingExtraProcessorAuto.process(paramRec, 2, 1, i, 0);
  153 + }
  154 + for (int i=0; i<20000;i=i+1000) {
  155 + matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i);
  156 + }
  157 +
  158 + //3건씩 매칭일 경우 최대 2000건 까지
  159 + for (int i=0; i<2000;i=i+50) {
  160 + matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i);
  161 + }
  162 + for (int i=0; i<2000;i=i+50) {
  163 + matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0);
  164 + }
  165 +
  166 + //4건씩 매칭일 경우 최대 2000건 까지
  167 + for (int i=0; i<2000;i=i+25) {
  168 + matchingExtraProcessorAuto.process(paramRec, 1, 4, 0, i);
  169 + }
  170 + for (int i=0; i<2000;i=i+25) {
  171 + matchingExtraProcessorAuto.process(paramRec, 4, 1, i, 0);
  172 + }
  173 +
  174 + long endTime = System.currentTimeMillis();
  175 + log.info("[" + sThreadName + "]Job Ended: " + endTime);
  176 + log.info("[" + sThreadName + "]Running Time : " + (endTime - startTime) + "ms");
  177 +
  178 + //작업종료에 대한 로그 업데이트
  179 + paramLog.put("exit_code", "0");
  180 + paramLog.put("exit_message", "");
  181 + matchingInnerDelingMapper.finishUserJob(paramLog);
  182 +
  183 + }
  184 +
  185 + @SuppressWarnings("rawtypes")
327 @Async("aiAsync") 186 @Async("aiAsync")
328 - public void aiJobSub(String jobGroupId, Map paramRec) throws Exception {  
329 -  
330 - // Job Create Log  
331 - UUID uuid = UUID.randomUUID();  
332 - HashMap<String, String> mt = new HashMap<String, String>();  
333 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
334 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
335 -  
336 - Map<String, Object> paramLog = new HashMap<String, Object>();  
337 - paramLog.put("user_job_group", jobGroupId);  
338 - paramLog.put("user_job_id", sDate);  
339 - paramLog.put("user_job_name", "AI매칭(" + paramRec.toString() + ")");  
340 - matchingInnerDelingMapper.createUserJob(paramLog);  
341 -  
342 - long startTime = System.currentTimeMillis();  
343 - log.info("ai Job Started : " + startTime);  
344 - log.debug("ai Job params=" + paramRec.toString());  
345 -  
346 - String sSysSe = (String) paramRec.get("sys_se");  
347 - String sAccnutYm = (String) paramRec.get("accnut_ym");  
348 - String sCprCode = (String) paramRec.get("cpr_code");  
349 - String sPartCpr = (String) paramRec.get("partn_cpr");  
350 - String sDelngCrncy = (String) paramRec.get("delng_crncy");  
351 -  
352 - String sThreadName = Thread.currentThread().getName();  
353 -  
354 - log.debug("call python");  
355 - new ProcessExecutor()  
356 - .command(sPythonPrg, sPythonAiTarget, sDate, sSysSe, sAccnutYm, sCprCode, sPartCpr, sDelngCrncy)  
357 - .redirectOutput(new LogOutputStream() {  
358 - @Override  
359 - protected void processLine(String line) {  
360 - log.info(line);  
361 - }  
362 - }).execute();  
363 -  
364 - long endTime = System.currentTimeMillis();  
365 - log.info("ai Job Ended: " + endTime);  
366 - log.info("ai Job Running Time : " + (endTime - startTime) + "ms");  
367 -  
368 -// //작업종료에 대한 로그 업데이트  
369 -// paramLog.put("exit_code", "0");  
370 -// paramLog.put("exit_message", "");  
371 -// matchingInnerDelingMapper.finishUserJob(paramLog);  
372 -  
373 - }  
374 -  
375 - public JobExecution invokeJob(String jobName, String jobType, Map<String, String> params)  
376 - throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException,  
377 - JobParametersInvalidException, JobRestartException {  
378 -  
379 - UUID uuid = UUID.randomUUID();  
380 - HashMap<String, String> mt = new HashMap<String, String>();  
381 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
382 - final String date = dateFormat.format(new Date()) + ":" + uuid.toString();  
383 - JobParameters jobParameters = new JobParametersBuilder().addString("syncDate", date)  
384 - .addString("jobType", jobType).addString("sysSe", params.get("sysSe"))  
385 - .addString("accnutYm", params.get("accnutYm")).addString("searchCond", params.get("searchCond"))  
386 - .toJobParameters();  
387 -  
388 - var jobToStart = context.getBean(jobName, Job.class);  
389 - JobExecution jobExe = jobLauncher.run(jobToStart, jobParameters);  
390 -  
391 - return jobExe;  
392 - }  
393 -  
394 - @SuppressWarnings("rawtypes") 187 + public void aiJobSub(String jobGroupId, Map paramRec) throws Exception {
  188 +
  189 +
  190 + //Job Create Log
  191 + UUID uuid = UUID.randomUUID();
  192 + HashMap<String, String> mt = new HashMap<String, String>();
  193 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  194 + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();
  195 +
  196 + Map<String, Object> paramLog = new HashMap<String, Object>();
  197 + paramLog.put("user_job_group", jobGroupId);
  198 + paramLog.put("user_job_id", sDate);
  199 + paramLog.put("user_job_name", "AI매칭(" + paramRec.toString() + ")");
  200 + matchingInnerDelingMapper.createUserJob(paramLog);
  201 +
  202 +
  203 + long startTime = System.currentTimeMillis();
  204 + log.info("Job Started : " + startTime);
  205 + log.debug("params=" + paramRec.toString());
  206 +
  207 + String sSysSe = (String) paramRec.get("sys_se");
  208 + String sAccnutYm = (String) paramRec.get("accnut_ym");
  209 + String sCprCode = (String) paramRec.get("cpr_code");
  210 + String sPartCpr = (String) paramRec.get("partn_cpr");
  211 + String sDelngCrncy = (String) paramRec.get("delng_crncy");
  212 +
  213 + String sThreadName = Thread.currentThread().getName();
  214 +
  215 + log.debug("call python");
  216 + new ProcessExecutor()
  217 + .command(sPythonPrg, sPythonAiTarget, sThreadName, sSysSe, sAccnutYm, sCprCode, sPartCpr, sDelngCrncy)
  218 + .redirectOutput(new LogOutputStream() {
  219 + @Override
  220 + protected void processLine(String line) {
  221 + log.info(line);
  222 + }
  223 + })
  224 + .execute();
  225 +
  226 + long endTime = System.currentTimeMillis();
  227 + log.info("Job Ended: " + endTime);
  228 + log.info("Running Time : " + (endTime - startTime) + "ms");
  229 +
  230 +
  231 + //작업종료에 대한 로그 업데이트
  232 + paramLog.put("exit_code", "0");
  233 + paramLog.put("exit_message", "");
  234 + matchingInnerDelingMapper.finishUserJob(paramLog);
  235 +
  236 + }
  237 +
  238 +
  239 + public JobExecution invokeJob(String jobName, String jobType, Map<String, String> params) throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, JobParametersInvalidException, JobRestartException {
  240 +
  241 + UUID uuid = UUID.randomUUID();
  242 + HashMap<String, String> mt = new HashMap<String, String>();
  243 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  244 + final String date = dateFormat.format(new Date()) + ":" + uuid.toString();
  245 + JobParameters jobParameters = new JobParametersBuilder()
  246 + .addString("syncDate", date)
  247 + .addString("jobType", jobType)
  248 + .addString("sysSe", params.get("sysSe"))
  249 + .addString("accnutYm", params.get("accnutYm"))
  250 + .addString("searchCond", params.get("searchCond"))
  251 + .toJobParameters();
  252 +
  253 + var jobToStart = context.getBean(jobName, Job.class);
  254 + JobExecution jobExe = jobLauncher.run(jobToStart, jobParameters);
  255 +
  256 + return jobExe;
  257 + }
  258 +
  259 +
  260 +
  261 + @SuppressWarnings("rawtypes")
395 @Async("commAsync") 262 @Async("commAsync")
396 - public void createData(String jobGroupId, Map<String, String> params) throws Exception {  
397 -  
398 - // Job Create Log  
399 - UUID uuid = UUID.randomUUID();  
400 - HashMap<String, String> mt = new HashMap<String, String>();  
401 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
402 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
403 -  
404 - Map<String, Object> paramLog = new HashMap<String, Object>();  
405 - paramLog.put("user_job_group", jobGroupId);  
406 - paramLog.put("user_job_id", sDate);  
407 - paramLog.put("user_job_name", "작업데이타생성(" + params.toString() + ")");  
408 - matchingInnerDelingMapper.createUserJob(paramLog);  
409 -  
410 - long startTime = System.currentTimeMillis();  
411 - log.info("Create Data Started : " + startTime);  
412 - log.debug("params=" + params.toString());  
413 -  
414 - // 기존데이타 삭제 263 + public void createData(String jobGroupId, Map<String, String> params) throws Exception {
  264 +
  265 + //Job Create Log
  266 + UUID uuid = UUID.randomUUID();
  267 + HashMap<String, String> mt = new HashMap<String, String>();
  268 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  269 + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();
  270 +
  271 + Map<String, Object> paramLog = new HashMap<String, Object>();
  272 + paramLog.put("user_job_group", jobGroupId);
  273 + paramLog.put("user_job_id", sDate);
  274 + paramLog.put("user_job_name", "작업데이타생성(" + params.toString() + ")");
  275 + matchingInnerDelingMapper.createUserJob(paramLog);
  276 +
  277 +
  278 + long startTime = System.currentTimeMillis();
  279 + log.info("Create Data Started : " + startTime);
  280 + log.debug("params=" + params.toString());
  281 +
  282 + //기존데이타 삭제
415 int iDeleted = matchingInnerDelingMapper.deleteOriginalData(params); 283 int iDeleted = matchingInnerDelingMapper.deleteOriginalData(params);
416 - log.debug("Deleted OrgData : " + iDeleted + "건");  
417 -  
418 - // 신규데이타 생성  
419 - // 매칭키에 대한 정보 (sql로 조인하여 조회하기에는 너무 느리고 데이타 중복도 발생함)  
420 - List<Map> lMatchingInfo = oracleMapper.getMatchingInfo(params);  
421 - Map<String, Map> mMatchingInfo = new HashMap<String, Map>();  
422 - for (Map curMap : lMatchingInfo) {  
423 - String sKey = String.valueOf(curMap.get("SEQ"));  
424 - mMatchingInfo.put(sKey, curMap);  
425 - }  
426 -  
427 - List<Map> lOrgData = oracleMapper.getOriginalData(params);  
428 - int iInserted = 0;  
429 - int iUpdated = 0;  
430 - int limit = 1000; // 1000건씩 batch  
431 - List<Map> lInserted = new ArrayList<Map>();  
432 - for (Map curRec : lOrgData) {  
433 - String sKey = String.valueOf(curRec.get("SEQ"));  
434 - Map curMatchingInfo = mMatchingInfo.get(sKey);  
435 - if (curMatchingInfo != null) {  
436 - curRec.put("MATCHING_CAUSE", curMatchingInfo.get("MATCHING_CAUSE"));  
437 - curRec.put("MATCH_KEY", curMatchingInfo.get("MATCH_KEY"));  
438 - }  
439 - lInserted.add(curRec);  
440 - if (lInserted.size() == limit) {  
441 - matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted));  
442 - iInserted = iInserted + lInserted.size();  
443 - lInserted.clear();  
444 - }  
445 - }  
446 - if (lInserted.size() > 0) {  
447 - matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted));  
448 - iInserted = iInserted + lInserted.size();  
449 - }  
450 - log.info("Inserted OrgData : " + iInserted + "건");  
451 -  
452 - iDeleted = matchingInnerDelingMapper.deleteData(params);  
453 - log.debug("Deleted Work Data : " + iDeleted + "건");  
454 - iInserted = matchingInnerDelingMapper.insertDataFromOriginal(params);  
455 - log.info("Inserted Work Data : " + iInserted + "건");  
456 -  
457 -  
458 - /**** 매칭제외 처리 start **************************************************************************************************/  
459 - /** 1. 거래금액 = 0 */  
460 - iUpdated = matchingInnerDelingMapper.updateInitExclusion1(params);  
461 - log.info("매칭제외 : 1. 거래금액 = 0 : " + iUpdated + "건");  
462 -  
463 -  
464 - /** 2. 거래유형, 자기/상대 법인, 거래일자, 계정 이 같은 1:1 내역 금액이 +, - 로 합이 0 인 경우 */  
465 - iUpdated = matchingInnerDelingMapper.updateInitExclusion2(params);  
466 - log.info("매칭제외 : 2. 1:1 내역 금액이 +, - 로 합이 0 : " + iUpdated + "건");  
467 - /**** 매칭제외 처리 end **************************************************************************************************/  
468 -  
469 - iDeleted = matchingInnerDelingMapper.deleteDataAi(params);  
470 - log.debug("Deleted Work AI Data : " + iDeleted + "건");  
471 - iInserted = matchingInnerDelingMapper.insertDataAiFromOriginal(params);  
472 - log.info("Inserted Work AI Data : " + iInserted + "건");  
473 -  
474 - long endTime = System.currentTimeMillis();  
475 - log.info("Create Data Ended : " + endTime);  
476 - log.info("Running Time : " + (endTime - startTime) + "ms");  
477 -  
478 - // 작업종료에 대한 로그 업데이트  
479 - paramLog.put("exit_code", "0");  
480 - paramLog.put("exit_message", "");  
481 - matchingInnerDelingMapper.finishUserJob(paramLog);  
482 - }  
483 -  
484 - @SuppressWarnings("rawtypes") 284 + log.debug("Deleted OrgData : " + iDeleted + "건");
  285 +
  286 + //신규데이타 생성
  287 + //매칭키에 대한 정보 (sql로 조인하여 조회하기에는 너무 느리고 데이타 중복도 발생함)
  288 + List<Map> lMatchingInfo = oracleMapper.getMatchingInfo(params);
  289 + Map<String, Map> mMatchingInfo = new HashMap<String, Map>();
  290 + for (Map curMap : lMatchingInfo) {
  291 + String sKey = String.valueOf(curMap.get("SEQ"));
  292 + mMatchingInfo.put(sKey, curMap);
  293 + }
  294 +
  295 + List<Map> lOrgData = oracleMapper.getOriginalData(params);
  296 + int iInserted = 0;
  297 + int limit = 1000; //1000건씩 batch
  298 + List<Map> lInserted = new ArrayList<Map>();
  299 + for (Map curRec : lOrgData) {
  300 + String sKey = String.valueOf(curRec.get("SEQ"));
  301 + Map curMatchingInfo = mMatchingInfo.get(sKey);
  302 + if (curMatchingInfo != null) {
  303 + curRec.put("MATCHING_CAUSE", curMatchingInfo.get("MATCHING_CAUSE"));
  304 + curRec.put("MATCH_KEY", curMatchingInfo.get("MATCH_KEY"));
  305 + }
  306 + lInserted.add(curRec);
  307 + if (lInserted.size() == limit) {
  308 + matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted));
  309 + iInserted = iInserted + lInserted.size();
  310 + lInserted.clear();
  311 + }
  312 + }
  313 + if (lInserted.size() > 0) {
  314 + matchingInnerDelingMapper.insertOriginalData(Map.of("itemList", lInserted));
  315 + iInserted = iInserted + lInserted.size();
  316 + }
  317 + log.info("Inserted OrgData : " + iInserted + "건");
  318 +
  319 + iDeleted = matchingInnerDelingMapper.deleteData(params);
  320 + log.debug("Deleted Work Data : " + iDeleted + "건");
  321 + iInserted = matchingInnerDelingMapper.insertDataFromOriginal(params);
  322 + log.info("Inserted Work Data : " + iInserted + "건");
  323 +
  324 + iDeleted = matchingInnerDelingMapper.deleteDataAi(params);
  325 + log.debug("Deleted Work AI Data : " + iDeleted + "건");
  326 + iInserted = matchingInnerDelingMapper.insertDataAiFromOriginal(params);
  327 + log.info("Inserted Work AI Data : " + iInserted + "건");
  328 +
  329 + long endTime = System.currentTimeMillis();
  330 + log.info("Create Data Ended : " + endTime);
  331 + log.info("Running Time : " + (endTime - startTime) + "ms");
  332 +
  333 + //작업종료에 대한 로그 업데이트
  334 + paramLog.put("exit_code", "0");
  335 + paramLog.put("exit_message", "");
  336 + matchingInnerDelingMapper.finishUserJob(paramLog);
  337 + }
  338 +
  339 +
  340 +
  341 + @SuppressWarnings("rawtypes")
485 @Async("commAsync") 342 @Async("commAsync")
486 - public void returnRwsultData(String jobGroupId, Map<String, String> params) throws Exception {  
487 -  
488 - // Job Create Log  
489 - UUID uuid = UUID.randomUUID();  
490 - HashMap<String, String> mt = new HashMap<String, String>();  
491 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");  
492 - String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();  
493 -  
494 - Map<String, Object> paramLog = new HashMap<String, Object>();  
495 - paramLog.put("user_job_group", jobGroupId);  
496 - paramLog.put("user_job_id", sDate);  
497 - paramLog.put("user_job_name", "결과데이타리턴(" + params.toString() + ")");  
498 - matchingInnerDelingMapper.createUserJob(paramLog);  
499 -  
500 - long startTime = System.currentTimeMillis();  
501 - log.info("Update Data Started : " + startTime);  
502 - log.debug("params=" + params.toString());  
503 -  
504 - // 기존데이타 초기화 343 + public void returnRwsultData(String jobGroupId, Map<String, String> params) throws Exception {
  344 +
  345 + //Job Create Log
  346 + UUID uuid = UUID.randomUUID();
  347 + HashMap<String, String> mt = new HashMap<String, String>();
  348 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
  349 + String sDate = dateFormat.format(new Date()) + ":" + uuid.toString();
  350 +
  351 + Map<String, Object> paramLog = new HashMap<String, Object>();
  352 + paramLog.put("user_job_group", jobGroupId);
  353 + paramLog.put("user_job_id", sDate);
  354 + paramLog.put("user_job_name", "결과데이타리턴(" + params.toString() + ")");
  355 + matchingInnerDelingMapper.createUserJob(paramLog);
  356 +
  357 + long startTime = System.currentTimeMillis();
  358 + log.info("Update Data Started : " + startTime);
  359 + log.debug("params=" + params.toString());
  360 +
  361 + //기존데이타 초기화
505 int iUpdated = matchingInnerDelingMapper.updateClearNewMatchKey(params); 362 int iUpdated = matchingInnerDelingMapper.updateClearNewMatchKey(params);
506 - // 새로운 매칭키 생성 363 + //새로운 매칭키 생성
507 iUpdated = matchingInnerDelingMapper.updateNewMatchKey(params); 364 iUpdated = matchingInnerDelingMapper.updateNewMatchKey(params);
508 - log.debug("Updated OrgData : " + iUpdated + "건");  
509 -  
510 - long endTime = System.currentTimeMillis();  
511 - log.info("Update Data Ended : " + endTime);  
512 - log.info("Running Time : " + (endTime - startTime) + "ms");  
513 -  
514 - // 작업종료에 대한 로그 업데이트  
515 - paramLog.put("exit_code", "0");  
516 - paramLog.put("exit_message", "");  
517 - matchingInnerDelingMapper.finishUserJob(paramLog);  
518 -  
519 - }  
520 - 365 + log.debug("Updated OrgData : " + iUpdated + "건");
  366 +
  367 + long endTime = System.currentTimeMillis();
  368 + log.info("Update Data Ended : " + endTime);
  369 + log.info("Running Time : " + (endTime - startTime) + "ms");
  370 +
  371 +
  372 + //작업종료에 대한 로그 업데이트
  373 + paramLog.put("exit_code", "0");
  374 + paramLog.put("exit_message", "");
  375 + matchingInnerDelingMapper.finishUserJob(paramLog);
  376 +
  377 + }
521 } 378 }
src/main/java/com/batch/util/FileUtil.java
1 package com.batch.util; 1 package com.batch.util;
2 2
3 import java.io.BufferedReader; 3 import java.io.BufferedReader;
4 -import java.io.IOException;  
5 import java.io.InputStreamReader; 4 import java.io.InputStreamReader;
6 -import java.io.RandomAccessFile;  
7 5
8 import org.springframework.core.io.ClassPathResource; 6 import org.springframework.core.io.ClassPathResource;
9 7
@@ -14,85 +12,27 @@ import com.google.gson.JsonParser; @@ -14,85 +12,27 @@ import com.google.gson.JsonParser;
14 public class FileUtil { 12 public class FileUtil {
15 13
16 public static StringBuffer readFileToString(String resourceName) { 14 public static StringBuffer readFileToString(String resourceName) {
17 - StringBuffer sb = new StringBuffer();  
18 - try { 15 + StringBuffer sb = new StringBuffer();
  16 + try {
19 ClassPathResource resource = new ClassPathResource(resourceName); 17 ClassPathResource resource = new ClassPathResource(resourceName);
20 - BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream()));  
21 -  
22 - // br.readLine() 이 null 인지 검사할 때 한번 사용되므로 String 에 먼저 저장해둬야한다.  
23 - String s = "";  
24 - while ((s = br.readLine()) != null) {  
25 - sb.append(s);  
26 - }  
27 - } catch (Exception e) {  
28 - sb.append(e.getStackTrace());  
29 - }  
30 - return sb;  
31 - }  
32 -  
33 - /**  
34 - * 파일 마지막 부터 lineCnt행 읽기  
35 - * @param resourceName  
36 - * @param lineCnt  
37 - * @return  
38 - */  
39 - public static StringBuffer readFileLastLines(String resourceName, int lineCnt, String fEnc, String toEnc) {  
40 - StringBuffer sb = new StringBuffer();  
41 -  
42 -// lineCnt = 50; // test case  
43 -// resourceName = "D://logs/localhost_access_log.2019-03-26.txt"; // test case  
44 -  
45 - if(resourceName == null || resourceName.isEmpty()) {  
46 - sb.append("파일 경로가 입력되지 않았습니다.");  
47 - }else if(lineCnt < 1) {  
48 - sb.append("라인갯수가 입력되지 않았습니다.");  
49 - }else {  
50 - RandomAccessFile rf = null;  
51 -  
52 - try {  
53 -  
54 - rf = new RandomAccessFile(resourceName, "r");  
55 - long len = rf.length();  
56 - for (long i = len - 1; i >= 0; i--) {  
57 - rf.seek(i);  
58 - char c = (char) rf.read();  
59 - if (c == '\n') {  
60 - lineCnt--;  
61 - if(lineCnt < 0) {  
62 - break;  
63 - }  
64 - }  
65 -  
66 - sb.insert(0, c);  
67 - }  
68 -  
69 - /*** 필요 시 파일 인코딩. utf-8 **/  
70 - if(fEnc != null && !fEnc.isBlank() && toEnc != null && !toEnc.isBlank()) {  
71 - sb = new StringBuffer(new String((sb.toString()).getBytes(fEnc), toEnc));  
72 - }  
73 -  
74 - } catch (Exception e) {  
75 -// e.printStackTrace();  
76 - sb = new StringBuffer("유효한 파일경로가 아닙니다.("+resourceName+")");  
77 - } finally {  
78 - if (rf != null) {  
79 - try {  
80 - rf.close();  
81 - } catch (IOException e) {  
82 -// e.printStackTrace();  
83 - sb = new StringBuffer("유효한 파일경로가 아닙니다.("+resourceName+")");  
84 - }  
85 - }  
86 - }  
87 - }  
88 - return sb; 18 + BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream()));
  19 +
  20 + // br.readLine() 이 null 인지 검사할 때 한번 사용되므로 String 에 먼저 저장해둬야한다.
  21 + String s = "";
  22 + while((s = br.readLine()) != null){
  23 + sb.append(s);
  24 + }
  25 + } catch (Exception e) {
  26 + sb.append(e.getStackTrace());
  27 + }
  28 + return sb;
89 } 29 }
90 30
91 public static JsonObject strToJsonObj(String jsonString) { 31 public static JsonObject strToJsonObj(String jsonString) {
92 JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); 32 JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
93 return jsonObject; 33 return jsonObject;
94 } 34 }
95 - 35 +
96 public static Object strToObj(String jsonString, Class<?> anyClass) { 36 public static Object strToObj(String jsonString, Class<?> anyClass) {
97 Gson gson = new Gson(); 37 Gson gson = new Gson();
98 Object convertedObject = gson.fromJson(jsonString, anyClass); 38 Object convertedObject = gson.fromJson(jsonString, anyClass);
@@ -104,5 +44,5 @@ public class FileUtil { @@ -104,5 +44,5 @@ public class FileUtil {
104 String stringObject = gson.toJson(obj); 44 String stringObject = gson.toJson(obj);
105 return stringObject; 45 return stringObject;
106 } 46 }
107 - 47 +
108 } 48 }
src/main/java/com/batch/util/StatisticsUtil.java
@@ -25,16 +25,6 @@ public class StatisticsUtil { @@ -25,16 +25,6 @@ public class StatisticsUtil {
25 // log.info("resultAll=" + resultAll.toString()); 25 // log.info("resultAll=" + resultAll.toString());
26 // } 26 // }
27 27
28 - private static long mtch_num = 0;  
29 -  
30 - public static long getMtchNum() {  
31 - return ++mtch_num;  
32 - }  
33 -  
34 - public static void initMtchNum() {  
35 - mtch_num = 0;  
36 - }  
37 -  
38 /** 28 /**
39 * 조합 구하기 29 * 조합 구하기
40 * 30 *
src/main/resources/application.properties
@@ -44,9 +44,9 @@ spring.devtools.restart.enabled=true @@ -44,9 +44,9 @@ spring.devtools.restart.enabled=true
44 #p6spy query logging 44 #p6spy query logging
45 decorator.datasource.p6spy.enable-logging=true 45 decorator.datasource.p6spy.enable-logging=true
46 46
47 -logging.level.root=debug  
48 -logging.level.com.batch=debug  
49 -logging.level.p6spy=off 47 +logging.level.root=info
  48 +logging.level.com.batch=info
  49 +logging.level.p6spy=debug
50 50
51 #Thread Count 설정 51 #Thread Count 설정
52 thread.comm.count=10 52 thread.comm.count=10
src/main/resources/matchingSetup.json
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 { 3 {
4 "active": true, 4 "active": true,
5 "type": "A-A", 5 "type": "A-A",
6 - "typeName": "자기수익(대사키),상대비용(대사키),비교(년월,비교키,거래금액)", 6 + "typeName": "자기수익(대사키,거래통화),상대비용(대사키,거래통화),비교(년월,비교키,거래통화,거래금액)",
7 7
8 "condOne": { 8 "condOne": {
9 "cond": [ 9 "cond": [
@@ -13,7 +13,8 @@ @@ -13,7 +13,8 @@
13 "cmpnsp_ky != ''" 13 "cmpnsp_ky != ''"
14 ], 14 ],
15 "makeCompareKey": [ 15 "makeCompareKey": [
16 - "cmpnsp_ky" 16 + "cmpnsp_ky",
  17 + "delng_crncy"
17 ] 18 ]
18 }, 19 },
19 "condTwo": { 20 "condTwo": {
@@ -24,7 +25,8 @@ @@ -24,7 +25,8 @@
24 "cmpnsp_ky != ''" 25 "cmpnsp_ky != ''"
25 ], 26 ],
26 "makeCompareKey": [ 27 "makeCompareKey": [
27 - "cmpnsp_ky" 28 + "cmpnsp_ky",
  29 + "delng_crncy"
28 ] 30 ]
29 }, 31 },
30 "uniqueKey": [ 32 "uniqueKey": [
@@ -37,6 +39,7 @@ @@ -37,6 +39,7 @@
37 "compareField": [ 39 "compareField": [
38 "accnut_ym", 40 "accnut_ym",
39 "compare_ky", 41 "compare_ky",
  42 + "delng_crncy",
40 "delng_amt" 43 "delng_amt"
41 ], 44 ],
42 "matchingType": "mtch_ty", 45 "matchingType": "mtch_ty",
@@ -46,7 +49,7 @@ @@ -46,7 +49,7 @@
46 { 49 {
47 "active": true, 50 "active": true,
48 "type": "A-B", 51 "type": "A-B",
49 - "typeName": "자기채권(대사키),상대채무(대사키),비교(년월,비교키,거래금액)", 52 + "typeName": "자기채권(대사키,거래통화),상대채무(대사키,거래통화),비교(년월,비교키,거래통화,거래금액)",
50 53
51 "condOne": { 54 "condOne": {
52 "cond": [ 55 "cond": [
@@ -56,7 +59,8 @@ @@ -56,7 +59,8 @@
56 "cmpnsp_ky != ''" 59 "cmpnsp_ky != ''"
57 ], 60 ],
58 "makeCompareKey": [ 61 "makeCompareKey": [
59 - "cmpnsp_ky" 62 + "cmpnsp_ky",
  63 + "delng_crncy"
60 ] 64 ]
61 }, 65 },
62 "condTwo": { 66 "condTwo": {
@@ -67,7 +71,8 @@ @@ -67,7 +71,8 @@
67 "cmpnsp_ky != ''" 71 "cmpnsp_ky != ''"
68 ], 72 ],
69 "makeCompareKey": [ 73 "makeCompareKey": [
70 - "cmpnsp_ky" 74 + "cmpnsp_ky",
  75 + "delng_crncy"
71 ] 76 ]
72 }, 77 },
73 "uniqueKey": [ 78 "uniqueKey": [
@@ -80,6 +85,7 @@ @@ -80,6 +85,7 @@
80 "compareField": [ 85 "compareField": [
81 "accnut_ym", 86 "accnut_ym",
82 "compare_ky", 87 "compare_ky",
  88 + "delng_crncy",
83 "delng_amt" 89 "delng_amt"
84 ], 90 ],
85 "matchingType": "mtch_ty", 91 "matchingType": "mtch_ty",
@@ -93,7 +99,7 @@ @@ -93,7 +99,7 @@
93 { 99 {
94 "active": true, 100 "active": true,
95 "type": "B-A", 101 "type": "B-A",
96 - "typeName": "자기수익(합산키),상대비용(합산키),비교(년월,거래금액)", 102 + "typeName": "자기수익(합산키,거래통화),상대비용(합산키,거래통화),비교(년월,거래통화,거래금액)",
97 103
98 "condOne": { 104 "condOne": {
99 "cond": [ 105 "cond": [
@@ -103,7 +109,8 @@ @@ -103,7 +109,8 @@
103 "ext_key1 != ''" 109 "ext_key1 != ''"
104 ], 110 ],
105 "makeCompareKey": [ 111 "makeCompareKey": [
106 - "ext_key1" 112 + "ext_key1",
  113 + "delng_crncy"
107 ] 114 ]
108 }, 115 },
109 "condTwo": { 116 "condTwo": {
@@ -114,7 +121,8 @@ @@ -114,7 +121,8 @@
114 "ext_key1 != ''" 121 "ext_key1 != ''"
115 ], 122 ],
116 "makeCompareKey": [ 123 "makeCompareKey": [
117 - "ext_key1" 124 + "ext_key1",
  125 + "delng_crncy"
118 ] 126 ]
119 }, 127 },
120 "uniqueKey": [ 128 "uniqueKey": [
@@ -126,6 +134,7 @@ @@ -126,6 +134,7 @@
126 "amtField": "sum(delng_amt) as delng_amt", 134 "amtField": "sum(delng_amt) as delng_amt",
127 "compareField": [ 135 "compareField": [
128 "accnut_ym", 136 "accnut_ym",
  137 + "delng_crncy",
129 "delng_amt" 138 "delng_amt"
130 ], 139 ],
131 "matchingType": "mtch_ty", 140 "matchingType": "mtch_ty",
@@ -135,7 +144,7 @@ @@ -135,7 +144,7 @@
135 { 144 {
136 "active": true, 145 "active": true,
137 "type": "B-B", 146 "type": "B-B",
138 - "typeName": "자기채권(합산키),상대채무(합산키),비교(년월,거래금액)", 147 + "typeName": "자기채권(합산키,거래통화),상대채무(합산키,거래통화),비교(년월,거래통화,거래금액)",
139 148
140 "condOne": { 149 "condOne": {
141 "cond": [ 150 "cond": [
@@ -145,7 +154,8 @@ @@ -145,7 +154,8 @@
145 "ext_key1 != ''" 154 "ext_key1 != ''"
146 ], 155 ],
147 "makeCompareKey": [ 156 "makeCompareKey": [
148 - "ext_key1" 157 + "ext_key1",
  158 + "delng_crncy"
149 ] 159 ]
150 }, 160 },
151 "condTwo": { 161 "condTwo": {
@@ -156,7 +166,8 @@ @@ -156,7 +166,8 @@
156 "ext_key1 != ''" 166 "ext_key1 != ''"
157 ], 167 ],
158 "makeCompareKey": [ 168 "makeCompareKey": [
159 - "ext_key1" 169 + "ext_key1",
  170 + "delng_crncy"
160 ] 171 ]
161 }, 172 },
162 "uniqueKey": [ 173 "uniqueKey": [
@@ -168,6 +179,7 @@ @@ -168,6 +179,7 @@
168 "amtField": "sum(delng_amt) as delng_amt", 179 "amtField": "sum(delng_amt) as delng_amt",
169 "compareField": [ 180 "compareField": [
170 "accnut_ym", 181 "accnut_ym",
  182 + "delng_crncy",
171 "delng_amt" 183 "delng_amt"
172 ], 184 ],
173 "matchingType": "mtch_ty", 185 "matchingType": "mtch_ty",
@@ -183,7 +195,7 @@ @@ -183,7 +195,7 @@
183 { 195 {
184 "active": true, 196 "active": true,
185 "type": "C-A", 197 "type": "C-A",
186 - "typeName": "자기수익(전표번호),상대비용(전표번호),비교(년월,거래금액)", 198 + "typeName": "자기수익(전표번호,거래통화),상대비용(전표번호,거래통화),비교(년월,거래통화,거래금액)",
187 199
188 "condOne": { 200 "condOne": {
189 "cond": [ 201 "cond": [
@@ -193,7 +205,8 @@ @@ -193,7 +205,8 @@
193 "chit_no != ''" 205 "chit_no != ''"
194 ], 206 ],
195 "makeCompareKey": [ 207 "makeCompareKey": [
196 - "chit_no" 208 + "chit_no",
  209 + "delng_crncy"
197 ] 210 ]
198 }, 211 },
199 "condTwo": { 212 "condTwo": {
@@ -204,7 +217,8 @@ @@ -204,7 +217,8 @@
204 "chit_no != ''" 217 "chit_no != ''"
205 ], 218 ],
206 "makeCompareKey": [ 219 "makeCompareKey": [
207 - "chit_no" 220 + "chit_no",
  221 + "delng_crncy"
208 ] 222 ]
209 }, 223 },
210 "uniqueKey": [ 224 "uniqueKey": [
@@ -216,6 +230,7 @@ @@ -216,6 +230,7 @@
216 "amtField": "sum(delng_amt) as delng_amt", 230 "amtField": "sum(delng_amt) as delng_amt",
217 "compareField": [ 231 "compareField": [
218 "accnut_ym", 232 "accnut_ym",
  233 + "delng_crncy",
219 "delng_amt" 234 "delng_amt"
220 ], 235 ],
221 "matchingType": "mtch_ty", 236 "matchingType": "mtch_ty",
@@ -225,7 +240,7 @@ @@ -225,7 +240,7 @@
225 { 240 {
226 "active": true, 241 "active": true,
227 "type": "C-B", 242 "type": "C-B",
228 - "typeName": "자기채권(전표번호),상대채무(전표번호),비교(년월,거래금액)", 243 + "typeName": "자기채권(전표번호,거래통화),상대채무(전표번호,거래통화),비교(년월,거래통화,거래금액)",
229 244
230 "condOne": { 245 "condOne": {
231 "cond": [ 246 "cond": [
@@ -235,7 +250,8 @@ @@ -235,7 +250,8 @@
235 "chit_no != ''" 250 "chit_no != ''"
236 ], 251 ],
237 "makeCompareKey": [ 252 "makeCompareKey": [
238 - "chit_no" 253 + "chit_no",
  254 + "delng_crncy"
239 ] 255 ]
240 }, 256 },
241 "condTwo": { 257 "condTwo": {
@@ -245,7 +261,8 @@ @@ -245,7 +261,8 @@
245 "chit_no is not null" 261 "chit_no is not null"
246 ], 262 ],
247 "makeCompareKey": [ 263 "makeCompareKey": [
248 - "chit_no" 264 + "chit_no",
  265 + "delng_crncy"
249 ] 266 ]
250 }, 267 },
251 "uniqueKey": [ 268 "uniqueKey": [
@@ -257,6 +274,7 @@ @@ -257,6 +274,7 @@
257 "amtField": "sum(delng_amt) as delng_amt", 274 "amtField": "sum(delng_amt) as delng_amt",
258 "compareField": [ 275 "compareField": [
259 "accnut_ym", 276 "accnut_ym",
  277 + "delng_crncy",
260 "delng_amt" 278 "delng_amt"
261 ], 279 ],
262 "matchingType": "mtch_ty", 280 "matchingType": "mtch_ty",
@@ -272,7 +290,7 @@ @@ -272,7 +290,7 @@
272 { 290 {
273 "active": true, 291 "active": true,
274 "type": "D-A", 292 "type": "D-A",
275 - "typeName": "자기수익(거래일자),상대비용(거래일자),비교(년월,거래금액)", 293 + "typeName": "자기수익(거래일자,거래통화),상대비용(거래일자,거래통화),비교(년월,거래통화,거래금액)",
276 294
277 "condOne": { 295 "condOne": {
278 "cond": [ 296 "cond": [
@@ -280,7 +298,8 @@ @@ -280,7 +298,8 @@
280 "mtch_ty is null" 298 "mtch_ty is null"
281 ], 299 ],
282 "makeCompareKey": [ 300 "makeCompareKey": [
283 - "delng_de" 301 + "delng_de",
  302 + "delng_crncy"
284 ] 303 ]
285 }, 304 },
286 "condTwo": { 305 "condTwo": {
@@ -289,7 +308,8 @@ @@ -289,7 +308,8 @@
289 "mtch_ty is null" 308 "mtch_ty is null"
290 ], 309 ],
291 "makeCompareKey": [ 310 "makeCompareKey": [
292 - "delng_de" 311 + "delng_de",
  312 + "delng_crncy"
293 ] 313 ]
294 }, 314 },
295 "uniqueKey": [ 315 "uniqueKey": [
@@ -301,6 +321,7 @@ @@ -301,6 +321,7 @@
301 "amtField": "sum(delng_amt) as delng_amt", 321 "amtField": "sum(delng_amt) as delng_amt",
302 "compareField": [ 322 "compareField": [
303 "accnut_ym", 323 "accnut_ym",
  324 + "delng_crncy",
304 "delng_amt" 325 "delng_amt"
305 ], 326 ],
306 "matchingType": "mtch_ty", 327 "matchingType": "mtch_ty",
@@ -310,7 +331,7 @@ @@ -310,7 +331,7 @@
310 { 331 {
311 "active": true, 332 "active": true,
312 "type": "D-B", 333 "type": "D-B",
313 - "typeName": "자기채권(거래일자),상대채무(거래일자),비교(년월,거래금액)", 334 + "typeName": "자기채권(거래일자,거래통화),상대채무(거래일자,거래통화),비교(년월,거래통화,거래금액)",
314 335
315 "condOne": { 336 "condOne": {
316 "cond": [ 337 "cond": [
@@ -318,7 +339,8 @@ @@ -318,7 +339,8 @@
318 "mtch_ty is null" 339 "mtch_ty is null"
319 ], 340 ],
320 "makeCompareKey": [ 341 "makeCompareKey": [
321 - "delng_de" 342 + "delng_de",
  343 + "delng_crncy"
322 ] 344 ]
323 }, 345 },
324 "condTwo": { 346 "condTwo": {
@@ -327,7 +349,8 @@ @@ -327,7 +349,8 @@
327 "mtch_ty is null" 349 "mtch_ty is null"
328 ], 350 ],
329 "makeCompareKey": [ 351 "makeCompareKey": [
330 - "delng_de" 352 + "delng_de",
  353 + "delng_crncy"
331 ] 354 ]
332 }, 355 },
333 "uniqueKey": [ 356 "uniqueKey": [
@@ -339,6 +362,7 @@ @@ -339,6 +362,7 @@
339 "amtField": "sum(delng_amt) as delng_amt", 362 "amtField": "sum(delng_amt) as delng_amt",
340 "compareField": [ 363 "compareField": [
341 "accnut_ym", 364 "accnut_ym",
  365 + "delng_crncy",
342 "delng_amt" 366 "delng_amt"
343 ], 367 ],
344 "matchingType": "mtch_ty", 368 "matchingType": "mtch_ty",
@@ -353,7 +377,7 @@ @@ -353,7 +377,7 @@
353 { 377 {
354 "active": true, 378 "active": true,
355 "type": "E-A", 379 "type": "E-A",
356 - "typeName": "자기수익(거래월),상대비용(거래월),비교(년월,거래금액)", 380 + "typeName": "자기수익(거래월,거래통화),상대비용(거래월,거래통화),비교(년월,거래통화,거래금액)",
357 381
358 "condOne": { 382 "condOne": {
359 "cond": [ 383 "cond": [
@@ -361,7 +385,8 @@ @@ -361,7 +385,8 @@
361 "mtch_ty is null" 385 "mtch_ty is null"
362 ], 386 ],
363 "makeCompareKey": [ 387 "makeCompareKey": [
364 - "substring(delng_de,1,6)" 388 + "substring(delng_de,1,6)",
  389 + "delng_crncy"
365 ] 390 ]
366 }, 391 },
367 "condTwo": { 392 "condTwo": {
@@ -370,7 +395,8 @@ @@ -370,7 +395,8 @@
370 "mtch_ty is null" 395 "mtch_ty is null"
371 ], 396 ],
372 "makeCompareKey": [ 397 "makeCompareKey": [
373 - "substring(delng_de,1,6)" 398 + "substring(delng_de,1,6)",
  399 + "delng_crncy"
374 ] 400 ]
375 }, 401 },
376 "uniqueKey": [ 402 "uniqueKey": [
@@ -382,6 +408,7 @@ @@ -382,6 +408,7 @@
382 "amtField": "sum(delng_amt) as delng_amt", 408 "amtField": "sum(delng_amt) as delng_amt",
383 "compareField": [ 409 "compareField": [
384 "accnut_ym", 410 "accnut_ym",
  411 + "delng_crncy",
385 "delng_amt" 412 "delng_amt"
386 ], 413 ],
387 "matchingType": "mtch_ty", 414 "matchingType": "mtch_ty",
@@ -391,7 +418,7 @@ @@ -391,7 +418,7 @@
391 { 418 {
392 "active": true, 419 "active": true,
393 "type": "E-B", 420 "type": "E-B",
394 - "typeName": "자기채권(거래월),상대채무(거래월),비교(년월,거래금액)", 421 + "typeName": "자기채권(거래월,거래통화),상대채무(거래월,거래통화),비교(년월,거래통화,거래금액)",
395 422
396 "condOne": { 423 "condOne": {
397 "cond": [ 424 "cond": [
@@ -399,7 +426,8 @@ @@ -399,7 +426,8 @@
399 "mtch_ty is null" 426 "mtch_ty is null"
400 ], 427 ],
401 "makeCompareKey": [ 428 "makeCompareKey": [
402 - "substring(delng_de,1,6)" 429 + "substring(delng_de,1,6)",
  430 + "delng_crncy"
403 ] 431 ]
404 }, 432 },
405 "condTwo": { 433 "condTwo": {
@@ -408,7 +436,8 @@ @@ -408,7 +436,8 @@
408 "mtch_ty is null" 436 "mtch_ty is null"
409 ], 437 ],
410 "makeCompareKey": [ 438 "makeCompareKey": [
411 - "substring(delng_de,1,6)" 439 + "substring(delng_de,1,6)",
  440 + "delng_crncy"
412 ] 441 ]
413 }, 442 },
414 "uniqueKey": [ 443 "uniqueKey": [
@@ -420,6 +449,7 @@ @@ -420,6 +449,7 @@
420 "amtField": "sum(delng_amt) as delng_amt", 449 "amtField": "sum(delng_amt) as delng_amt",
421 "compareField": [ 450 "compareField": [
422 "accnut_ym", 451 "accnut_ym",
  452 + "delng_crncy",
423 "delng_amt" 453 "delng_amt"
424 ], 454 ],
425 "matchingType": "mtch_ty", 455 "matchingType": "mtch_ty",
@@ -437,7 +467,7 @@ @@ -437,7 +467,7 @@
437 { 467 {
438 "active": true, 468 "active": true,
439 "type": "F-A", 469 "type": "F-A",
440 - "typeName": "자기수익(전체),상대비용(전체),비교(년월,거래금액)", 470 + "typeName": "자기수익(전체,거래통화),상대비용(전체,거래통화),비교(년월,거래통화,거래금액)",
441 471
442 "condOne": { 472 "condOne": {
443 "cond": [ 473 "cond": [
@@ -446,7 +476,8 @@ @@ -446,7 +476,8 @@
446 ], 476 ],
447 "makeCompareKey": [ 477 "makeCompareKey": [
448 "sys_se", 478 "sys_se",
449 - "accnut_ym" 479 + "accnut_ym",
  480 + "delng_crncy"
450 ] 481 ]
451 }, 482 },
452 "condTwo": { 483 "condTwo": {
@@ -456,7 +487,8 @@ @@ -456,7 +487,8 @@
456 ], 487 ],
457 "makeCompareKey": [ 488 "makeCompareKey": [
458 "sys_se", 489 "sys_se",
459 - "accnut_ym" 490 + "accnut_ym",
  491 + "delng_crncy"
460 ] 492 ]
461 }, 493 },
462 "uniqueKey": [ 494 "uniqueKey": [
@@ -468,6 +500,7 @@ @@ -468,6 +500,7 @@
468 "amtField": "sum(delng_amt) as delng_amt", 500 "amtField": "sum(delng_amt) as delng_amt",
469 "compareField": [ 501 "compareField": [
470 "accnut_ym", 502 "accnut_ym",
  503 + "delng_crncy",
471 "delng_amt" 504 "delng_amt"
472 ], 505 ],
473 "matchingType": "mtch_ty", 506 "matchingType": "mtch_ty",
@@ -477,7 +510,7 @@ @@ -477,7 +510,7 @@
477 { 510 {
478 "active": true, 511 "active": true,
479 "type": "F-B", 512 "type": "F-B",
480 - "typeName": "자기채권(전체),상대채무(전체),비교(년월,거래금액)", 513 + "typeName": "자기채권(전체,거래통화),상대채무(전체,거래통화),비교(년월,거래통화,거래금액)",
481 514
482 "condOne": { 515 "condOne": {
483 "cond": [ 516 "cond": [
@@ -486,7 +519,8 @@ @@ -486,7 +519,8 @@
486 ], 519 ],
487 "makeCompareKey": [ 520 "makeCompareKey": [
488 "sys_se", 521 "sys_se",
489 - "accnut_ym" 522 + "accnut_ym",
  523 + "delng_crncy"
490 ] 524 ]
491 }, 525 },
492 "condTwo": { 526 "condTwo": {
@@ -496,7 +530,8 @@ @@ -496,7 +530,8 @@
496 ], 530 ],
497 "makeCompareKey": [ 531 "makeCompareKey": [
498 "sys_se", 532 "sys_se",
499 - "accnut_ym" 533 + "accnut_ym",
  534 + "delng_crncy"
500 ] 535 ]
501 }, 536 },
502 "uniqueKey": [ 537 "uniqueKey": [
@@ -508,6 +543,7 @@ @@ -508,6 +543,7 @@
508 "amtField": "sum(delng_amt) as delng_amt", 543 "amtField": "sum(delng_amt) as delng_amt",
509 "compareField": [ 544 "compareField": [
510 "accnut_ym", 545 "accnut_ym",
  546 + "delng_crncy",
511 "delng_amt" 547 "delng_amt"
512 ], 548 ],
513 "matchingType": "mtch_ty", 549 "matchingType": "mtch_ty",
@@ -522,7 +558,7 @@ @@ -522,7 +558,7 @@
522 { 558 {
523 "active": true, 559 "active": true,
524 "type": "G-A", 560 "type": "G-A",
525 - "typeName": "개별자기수익,상대개별비용,비교(년월,거래금액)", 561 + "typeName": "개별자기수익(거래통화),상대개별비용(거래통화),비교(년월,거래통화,거래금액)",
526 562
527 "condOne": { 563 "condOne": {
528 "cond": [ 564 "cond": [
@@ -532,7 +568,8 @@ @@ -532,7 +568,8 @@
532 "makeCompareKey": [ 568 "makeCompareKey": [
533 "sys_se", 569 "sys_se",
534 "accnut_ym", 570 "accnut_ym",
535 - "cast(sn as text)" 571 + "cast(sn as text)",
  572 + "delng_crncy"
536 ] 573 ]
537 }, 574 },
538 "condTwo": { 575 "condTwo": {
@@ -543,7 +580,8 @@ @@ -543,7 +580,8 @@
543 "makeCompareKey": [ 580 "makeCompareKey": [
544 "sys_se", 581 "sys_se",
545 "accnut_ym", 582 "accnut_ym",
546 - "cast(sn as text)" 583 + "cast(sn as text)",
  584 + "delng_crncy"
547 ] 585 ]
548 }, 586 },
549 "uniqueKey": [ 587 "uniqueKey": [
@@ -555,6 +593,7 @@ @@ -555,6 +593,7 @@
555 "amtField": "sum(delng_amt) as delng_amt", 593 "amtField": "sum(delng_amt) as delng_amt",
556 "compareField": [ 594 "compareField": [
557 "accnut_ym", 595 "accnut_ym",
  596 + "delng_crncy",
558 "delng_amt" 597 "delng_amt"
559 ], 598 ],
560 "matchingType": "mtch_ty", 599 "matchingType": "mtch_ty",
@@ -564,7 +603,7 @@ @@ -564,7 +603,7 @@
564 { 603 {
565 "active": true, 604 "active": true,
566 "type": "G-B", 605 "type": "G-B",
567 - "typeName": "개별자기채권,상대개별채무,비교(년월,거래금액)", 606 + "typeName": "개별자기채권(거래통화),상대개별채무(거래통화),비교(년월,거래통화,거래금액)",
568 607
569 "condOne": { 608 "condOne": {
570 "cond": [ 609 "cond": [
@@ -574,7 +613,8 @@ @@ -574,7 +613,8 @@
574 "makeCompareKey": [ 613 "makeCompareKey": [
575 "sys_se", 614 "sys_se",
576 "accnut_ym", 615 "accnut_ym",
577 - "cast(sn as text)" 616 + "cast(sn as text)",
  617 + "delng_crncy"
578 ] 618 ]
579 }, 619 },
580 "condTwo": { 620 "condTwo": {
@@ -585,7 +625,8 @@ @@ -585,7 +625,8 @@
585 "makeCompareKey": [ 625 "makeCompareKey": [
586 "sys_se", 626 "sys_se",
587 "accnut_ym", 627 "accnut_ym",
588 - "cast(sn as text)" 628 + "cast(sn as text)",
  629 + "delng_crncy"
589 ] 630 ]
590 }, 631 },
591 "uniqueKey": [ 632 "uniqueKey": [
@@ -597,6 +638,7 @@ @@ -597,6 +638,7 @@
597 "amtField": "sum(delng_amt) as delng_amt", 638 "amtField": "sum(delng_amt) as delng_amt",
598 "compareField": [ 639 "compareField": [
599 "accnut_ym", 640 "accnut_ym",
  641 + "delng_crncy",
600 "delng_amt" 642 "delng_amt"
601 ], 643 ],
602 "matchingType": "mtch_ty", 644 "matchingType": "mtch_ty",
@@ -614,7 +656,7 @@ @@ -614,7 +656,7 @@
614 { 656 {
615 "active": true, 657 "active": true,
616 "type": "H-AA", 658 "type": "H-AA",
617 - "typeName": "자기수익(거래일자),개별상대비용,비교(년월,거래금액)", 659 + "typeName": "자기수익(거래일자,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
618 660
619 "condOne": { 661 "condOne": {
620 "cond": [ 662 "cond": [
@@ -624,7 +666,8 @@ @@ -624,7 +666,8 @@
624 "makeCompareKey": [ 666 "makeCompareKey": [
625 "sys_se", 667 "sys_se",
626 "accnut_ym", 668 "accnut_ym",
627 - "delng_de" 669 + "delng_de",
  670 + "delng_crncy"
628 ] 671 ]
629 }, 672 },
630 "condTwo": { 673 "condTwo": {
@@ -635,7 +678,8 @@ @@ -635,7 +678,8 @@
635 "makeCompareKey": [ 678 "makeCompareKey": [
636 "sys_se", 679 "sys_se",
637 "accnut_ym", 680 "accnut_ym",
638 - "cast(sn as text)" 681 + "cast(sn as text)",
  682 + "delng_crncy"
639 ] 683 ]
640 }, 684 },
641 "uniqueKey": [ 685 "uniqueKey": [
@@ -647,6 +691,7 @@ @@ -647,6 +691,7 @@
647 "amtField": "sum(delng_amt) as delng_amt", 691 "amtField": "sum(delng_amt) as delng_amt",
648 "compareField": [ 692 "compareField": [
649 "accnut_ym", 693 "accnut_ym",
  694 + "delng_crncy",
650 "delng_amt" 695 "delng_amt"
651 ], 696 ],
652 "matchingType": "mtch_ty", 697 "matchingType": "mtch_ty",
@@ -656,7 +701,7 @@ @@ -656,7 +701,7 @@
656 { 701 {
657 "active": true, 702 "active": true,
658 "type": "H-AB", 703 "type": "H-AB",
659 - "typeName": "자기수익(거래월),개별상대비용,비교(년월,거래금액)", 704 + "typeName": "자기수익(거래월,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
660 705
661 "condOne": { 706 "condOne": {
662 "cond": [ 707 "cond": [
@@ -666,7 +711,9 @@ @@ -666,7 +711,9 @@
666 "makeCompareKey": [ 711 "makeCompareKey": [
667 "sys_se", 712 "sys_se",
668 "accnut_ym", 713 "accnut_ym",
669 - "substring(delng_de,1,6)" ] 714 + "substring(delng_de,1,6)",
  715 + "delng_crncy"
  716 + ]
670 }, 717 },
671 "condTwo": { 718 "condTwo": {
672 "cond": [ 719 "cond": [
@@ -676,7 +723,8 @@ @@ -676,7 +723,8 @@
676 "makeCompareKey": [ 723 "makeCompareKey": [
677 "sys_se", 724 "sys_se",
678 "accnut_ym", 725 "accnut_ym",
679 - "cast(sn as text)" 726 + "cast(sn as text)",
  727 + "delng_crncy"
680 ] 728 ]
681 }, 729 },
682 "uniqueKey": [ 730 "uniqueKey": [
@@ -688,6 +736,7 @@ @@ -688,6 +736,7 @@
688 "amtField": "sum(delng_amt) as delng_amt", 736 "amtField": "sum(delng_amt) as delng_amt",
689 "compareField": [ 737 "compareField": [
690 "accnut_ym", 738 "accnut_ym",
  739 + "delng_crncy",
691 "delng_amt" 740 "delng_amt"
692 ], 741 ],
693 "matchingType": "mtch_ty", 742 "matchingType": "mtch_ty",
@@ -697,7 +746,7 @@ @@ -697,7 +746,7 @@
697 { 746 {
698 "active": true, 747 "active": true,
699 "type": "H-AC", 748 "type": "H-AC",
700 - "typeName": "자기수익(전표번호),개별상대비용,비교(년월,거래금액)", 749 + "typeName": "자기수익(전표번호,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
701 750
702 "condOne": { 751 "condOne": {
703 "cond": [ 752 "cond": [
@@ -709,7 +758,9 @@ @@ -709,7 +758,9 @@
709 "makeCompareKey": [ 758 "makeCompareKey": [
710 "sys_se", 759 "sys_se",
711 "accnut_ym", 760 "accnut_ym",
712 - "chit_no" ] 761 + "chit_no",
  762 + "delng_crncy"
  763 + ]
713 }, 764 },
714 "condTwo": { 765 "condTwo": {
715 "cond": [ 766 "cond": [
@@ -719,7 +770,8 @@ @@ -719,7 +770,8 @@
719 "makeCompareKey": [ 770 "makeCompareKey": [
720 "sys_se", 771 "sys_se",
721 "accnut_ym", 772 "accnut_ym",
722 - "cast(sn as text)" 773 + "cast(sn as text)",
  774 + "delng_crncy"
723 ] 775 ]
724 }, 776 },
725 "uniqueKey": [ 777 "uniqueKey": [
@@ -731,6 +783,7 @@ @@ -731,6 +783,7 @@
731 "amtField": "sum(delng_amt) as delng_amt", 783 "amtField": "sum(delng_amt) as delng_amt",
732 "compareField": [ 784 "compareField": [
733 "accnut_ym", 785 "accnut_ym",
  786 + "delng_crncy",
734 "delng_amt" 787 "delng_amt"
735 ], 788 ],
736 "matchingType": "mtch_ty", 789 "matchingType": "mtch_ty",
@@ -740,7 +793,7 @@ @@ -740,7 +793,7 @@
740 { 793 {
741 "active": true, 794 "active": true,
742 "type": "H-AD", 795 "type": "H-AD",
743 - "typeName": "자기수익(합산키),개별상대비용,비교(년월,거래금액)", 796 + "typeName": "자기수익(합산키,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
744 797
745 "condOne": { 798 "condOne": {
746 "cond": [ 799 "cond": [
@@ -752,7 +805,9 @@ @@ -752,7 +805,9 @@
752 "makeCompareKey": [ 805 "makeCompareKey": [
753 "sys_se", 806 "sys_se",
754 "accnut_ym", 807 "accnut_ym",
755 - "ext_key1" ] 808 + "ext_key1",
  809 + "delng_crncy"
  810 + ]
756 }, 811 },
757 "condTwo": { 812 "condTwo": {
758 "cond": [ 813 "cond": [
@@ -762,7 +817,8 @@ @@ -762,7 +817,8 @@
762 "makeCompareKey": [ 817 "makeCompareKey": [
763 "sys_se", 818 "sys_se",
764 "accnut_ym", 819 "accnut_ym",
765 - "cast(sn as text)" 820 + "cast(sn as text)",
  821 + "delng_crncy"
766 ] 822 ]
767 }, 823 },
768 "uniqueKey": [ 824 "uniqueKey": [
@@ -774,6 +830,7 @@ @@ -774,6 +830,7 @@
774 "amtField": "sum(delng_amt) as delng_amt", 830 "amtField": "sum(delng_amt) as delng_amt",
775 "compareField": [ 831 "compareField": [
776 "accnut_ym", 832 "accnut_ym",
  833 + "delng_crncy",
777 "delng_amt" 834 "delng_amt"
778 ], 835 ],
779 "matchingType": "mtch_ty", 836 "matchingType": "mtch_ty",
@@ -783,7 +840,7 @@ @@ -783,7 +840,7 @@
783 { 840 {
784 "active": true, 841 "active": true,
785 "type": "H-AE", 842 "type": "H-AE",
786 - "typeName": "자기비용(거래일자),개별상대수익,비교(년월,거래금액)", 843 + "typeName": "자기비용(거래일자,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
787 844
788 "condOne": { 845 "condOne": {
789 "cond": [ 846 "cond": [
@@ -793,7 +850,8 @@ @@ -793,7 +850,8 @@
793 "makeCompareKey": [ 850 "makeCompareKey": [
794 "sys_se", 851 "sys_se",
795 "accnut_ym", 852 "accnut_ym",
796 - "delng_de" 853 + "delng_de",
  854 + "delng_crncy"
797 ] 855 ]
798 }, 856 },
799 "condTwo": { 857 "condTwo": {
@@ -804,7 +862,8 @@ @@ -804,7 +862,8 @@
804 "makeCompareKey": [ 862 "makeCompareKey": [
805 "sys_se", 863 "sys_se",
806 "accnut_ym", 864 "accnut_ym",
807 - "cast(sn as text)" 865 + "cast(sn as text)",
  866 + "delng_crncy"
808 ] 867 ]
809 }, 868 },
810 "uniqueKey": [ 869 "uniqueKey": [
@@ -816,6 +875,7 @@ @@ -816,6 +875,7 @@
816 "amtField": "sum(delng_amt) as delng_amt", 875 "amtField": "sum(delng_amt) as delng_amt",
817 "compareField": [ 876 "compareField": [
818 "accnut_ym", 877 "accnut_ym",
  878 + "delng_crncy",
819 "delng_amt" 879 "delng_amt"
820 ], 880 ],
821 "matchingType": "mtch_ty", 881 "matchingType": "mtch_ty",
@@ -825,7 +885,7 @@ @@ -825,7 +885,7 @@
825 { 885 {
826 "active": true, 886 "active": true,
827 "type": "H-AF", 887 "type": "H-AF",
828 - "typeName": "자기비용(거래월),개별상대수익,비교(년월,거래금액)", 888 + "typeName": "자기비용(거래월,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
829 889
830 "condOne": { 890 "condOne": {
831 "cond": [ 891 "cond": [
@@ -835,7 +895,9 @@ @@ -835,7 +895,9 @@
835 "makeCompareKey": [ 895 "makeCompareKey": [
836 "sys_se", 896 "sys_se",
837 "accnut_ym", 897 "accnut_ym",
838 - "substring(delng_de,1,6)" ] 898 + "substring(delng_de,1,6)",
  899 + "delng_crncy"
  900 + ]
839 }, 901 },
840 "condTwo": { 902 "condTwo": {
841 "cond": [ 903 "cond": [
@@ -845,7 +907,8 @@ @@ -845,7 +907,8 @@
845 "makeCompareKey": [ 907 "makeCompareKey": [
846 "sys_se", 908 "sys_se",
847 "accnut_ym", 909 "accnut_ym",
848 - "cast(sn as text)" 910 + "cast(sn as text)",
  911 + "delng_crncy"
849 ] 912 ]
850 }, 913 },
851 "uniqueKey": [ 914 "uniqueKey": [
@@ -857,6 +920,7 @@ @@ -857,6 +920,7 @@
857 "amtField": "sum(delng_amt) as delng_amt", 920 "amtField": "sum(delng_amt) as delng_amt",
858 "compareField": [ 921 "compareField": [
859 "accnut_ym", 922 "accnut_ym",
  923 + "delng_crncy",
860 "delng_amt" 924 "delng_amt"
861 ], 925 ],
862 "matchingType": "mtch_ty", 926 "matchingType": "mtch_ty",
@@ -866,7 +930,7 @@ @@ -866,7 +930,7 @@
866 { 930 {
867 "active": true, 931 "active": true,
868 "type": "H-AG", 932 "type": "H-AG",
869 - "typeName": "자기비용(전표번호),개별상대수익,비교(년월,거래금액)", 933 + "typeName": "자기비용(전표번호,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
870 934
871 "condOne": { 935 "condOne": {
872 "cond": [ 936 "cond": [
@@ -878,7 +942,9 @@ @@ -878,7 +942,9 @@
878 "makeCompareKey": [ 942 "makeCompareKey": [
879 "sys_se", 943 "sys_se",
880 "accnut_ym", 944 "accnut_ym",
881 - "chit_no" ] 945 + "chit_no",
  946 + "delng_crncy"
  947 + ]
882 }, 948 },
883 "condTwo": { 949 "condTwo": {
884 "cond": [ 950 "cond": [
@@ -888,7 +954,8 @@ @@ -888,7 +954,8 @@
888 "makeCompareKey": [ 954 "makeCompareKey": [
889 "sys_se", 955 "sys_se",
890 "accnut_ym", 956 "accnut_ym",
891 - "cast(sn as text)" 957 + "cast(sn as text)",
  958 + "delng_crncy"
892 ] 959 ]
893 }, 960 },
894 "uniqueKey": [ 961 "uniqueKey": [
@@ -900,6 +967,7 @@ @@ -900,6 +967,7 @@
900 "amtField": "sum(delng_amt) as delng_amt", 967 "amtField": "sum(delng_amt) as delng_amt",
901 "compareField": [ 968 "compareField": [
902 "accnut_ym", 969 "accnut_ym",
  970 + "delng_crncy",
903 "delng_amt" 971 "delng_amt"
904 ], 972 ],
905 "matchingType": "mtch_ty", 973 "matchingType": "mtch_ty",
@@ -909,7 +977,7 @@ @@ -909,7 +977,7 @@
909 { 977 {
910 "active": true, 978 "active": true,
911 "type": "H-AH", 979 "type": "H-AH",
912 - "typeName": "자기비용(합산키),개별상대수익,비교(년월,거래금액)", 980 + "typeName": "자기비용(합산키,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
913 981
914 "condOne": { 982 "condOne": {
915 "cond": [ 983 "cond": [
@@ -921,7 +989,9 @@ @@ -921,7 +989,9 @@
921 "makeCompareKey": [ 989 "makeCompareKey": [
922 "sys_se", 990 "sys_se",
923 "accnut_ym", 991 "accnut_ym",
924 - "ext_key1" ] 992 + "ext_key1",
  993 + "delng_crncy"
  994 + ]
925 }, 995 },
926 "condTwo": { 996 "condTwo": {
927 "cond": [ 997 "cond": [
@@ -931,7 +1001,8 @@ @@ -931,7 +1001,8 @@
931 "makeCompareKey": [ 1001 "makeCompareKey": [
932 "sys_se", 1002 "sys_se",
933 "accnut_ym", 1003 "accnut_ym",
934 - "cast(sn as text)" 1004 + "cast(sn as text)",
  1005 + "delng_crncy"
935 ] 1006 ]
936 }, 1007 },
937 "uniqueKey": [ 1008 "uniqueKey": [
@@ -943,6 +1014,7 @@ @@ -943,6 +1014,7 @@
943 "amtField": "sum(delng_amt) as delng_amt", 1014 "amtField": "sum(delng_amt) as delng_amt",
944 "compareField": [ 1015 "compareField": [
945 "accnut_ym", 1016 "accnut_ym",
  1017 + "delng_crncy",
946 "delng_amt" 1018 "delng_amt"
947 ], 1019 ],
948 "matchingType": "mtch_ty", 1020 "matchingType": "mtch_ty",
@@ -955,7 +1027,7 @@ @@ -955,7 +1027,7 @@
955 { 1027 {
956 "active": true, 1028 "active": true,
957 "type": "H-BA", 1029 "type": "H-BA",
958 - "typeName": "자기채권(거래일자),개별상대채무,비교(년월,거래금액)", 1030 + "typeName": "자기채권(거래일자,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)",
959 1031
960 "condOne": { 1032 "condOne": {
961 "cond": [ 1033 "cond": [
@@ -965,7 +1037,8 @@ @@ -965,7 +1037,8 @@
965 "makeCompareKey": [ 1037 "makeCompareKey": [
966 "sys_se", 1038 "sys_se",
967 "accnut_ym", 1039 "accnut_ym",
968 - "delng_de" 1040 + "delng_de",
  1041 + "delng_crncy"
969 ] 1042 ]
970 }, 1043 },
971 "condTwo": { 1044 "condTwo": {
@@ -976,7 +1049,8 @@ @@ -976,7 +1049,8 @@
976 "makeCompareKey": [ 1049 "makeCompareKey": [
977 "sys_se", 1050 "sys_se",
978 "accnut_ym", 1051 "accnut_ym",
979 - "cast(sn as text)" 1052 + "cast(sn as text)",
  1053 + "delng_crncy"
980 ] 1054 ]
981 }, 1055 },
982 "uniqueKey": [ 1056 "uniqueKey": [
@@ -988,6 +1062,7 @@ @@ -988,6 +1062,7 @@
988 "amtField": "sum(delng_amt) as delng_amt", 1062 "amtField": "sum(delng_amt) as delng_amt",
989 "compareField": [ 1063 "compareField": [
990 "accnut_ym", 1064 "accnut_ym",
  1065 + "delng_crncy",
991 "delng_amt" 1066 "delng_amt"
992 ], 1067 ],
993 "matchingType": "mtch_ty", 1068 "matchingType": "mtch_ty",
@@ -997,7 +1072,7 @@ @@ -997,7 +1072,7 @@
997 { 1072 {
998 "active": true, 1073 "active": true,
999 "type": "H-BB", 1074 "type": "H-BB",
1000 - "typeName": "자기채권(거래월),개별상대채무,비교(년월,거래금액)", 1075 + "typeName": "자기채권(거래월,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)",
1001 1076
1002 "condOne": { 1077 "condOne": {
1003 "cond": [ 1078 "cond": [
@@ -1007,7 +1082,9 @@ @@ -1007,7 +1082,9 @@
1007 "makeCompareKey": [ 1082 "makeCompareKey": [
1008 "sys_se", 1083 "sys_se",
1009 "accnut_ym", 1084 "accnut_ym",
1010 - "substring(delng_de,1,6)" ] 1085 + "substring(delng_de,1,6)",
  1086 + "delng_crncy"
  1087 + ]
1011 }, 1088 },
1012 "condTwo": { 1089 "condTwo": {
1013 "cond": [ 1090 "cond": [
@@ -1017,7 +1094,8 @@ @@ -1017,7 +1094,8 @@
1017 "makeCompareKey": [ 1094 "makeCompareKey": [
1018 "sys_se", 1095 "sys_se",
1019 "accnut_ym", 1096 "accnut_ym",
1020 - "cast(sn as text)" 1097 + "cast(sn as text)",
  1098 + "delng_crncy"
1021 ] 1099 ]
1022 }, 1100 },
1023 "uniqueKey": [ 1101 "uniqueKey": [
@@ -1029,6 +1107,7 @@ @@ -1029,6 +1107,7 @@
1029 "amtField": "sum(delng_amt) as delng_amt", 1107 "amtField": "sum(delng_amt) as delng_amt",
1030 "compareField": [ 1108 "compareField": [
1031 "accnut_ym", 1109 "accnut_ym",
  1110 + "delng_crncy",
1032 "delng_amt" 1111 "delng_amt"
1033 ], 1112 ],
1034 "matchingType": "mtch_ty", 1113 "matchingType": "mtch_ty",
@@ -1038,7 +1117,7 @@ @@ -1038,7 +1117,7 @@
1038 { 1117 {
1039 "active": true, 1118 "active": true,
1040 "type": "H-BC", 1119 "type": "H-BC",
1041 - "typeName": "자기채권(전표번호),개별상대채무,비교(년월,거래금액)", 1120 + "typeName": "자기채권(전표번호,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)",
1042 1121
1043 "condOne": { 1122 "condOne": {
1044 "cond": [ 1123 "cond": [
@@ -1050,7 +1129,9 @@ @@ -1050,7 +1129,9 @@
1050 "makeCompareKey": [ 1129 "makeCompareKey": [
1051 "sys_se", 1130 "sys_se",
1052 "accnut_ym", 1131 "accnut_ym",
1053 - "chit_no" ] 1132 + "chit_no",
  1133 + "delng_crncy"
  1134 + ]
1054 }, 1135 },
1055 "condTwo": { 1136 "condTwo": {
1056 "cond": [ 1137 "cond": [
@@ -1060,7 +1141,8 @@ @@ -1060,7 +1141,8 @@
1060 "makeCompareKey": [ 1141 "makeCompareKey": [
1061 "sys_se", 1142 "sys_se",
1062 "accnut_ym", 1143 "accnut_ym",
1063 - "cast(sn as text)" 1144 + "cast(sn as text)",
  1145 + "delng_crncy"
1064 ] 1146 ]
1065 }, 1147 },
1066 "uniqueKey": [ 1148 "uniqueKey": [
@@ -1072,6 +1154,7 @@ @@ -1072,6 +1154,7 @@
1072 "amtField": "sum(delng_amt) as delng_amt", 1154 "amtField": "sum(delng_amt) as delng_amt",
1073 "compareField": [ 1155 "compareField": [
1074 "accnut_ym", 1156 "accnut_ym",
  1157 + "delng_crncy",
1075 "delng_amt" 1158 "delng_amt"
1076 ], 1159 ],
1077 "matchingType": "mtch_ty", 1160 "matchingType": "mtch_ty",
@@ -1081,7 +1164,7 @@ @@ -1081,7 +1164,7 @@
1081 { 1164 {
1082 "active": true, 1165 "active": true,
1083 "type": "H-BD", 1166 "type": "H-BD",
1084 - "typeName": "자기채권(합산키),개별상대채무,비교(년월,거래금액)", 1167 + "typeName": "자기채권(합산키,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)",
1085 1168
1086 "condOne": { 1169 "condOne": {
1087 "cond": [ 1170 "cond": [
@@ -1091,7 +1174,9 @@ @@ -1091,7 +1174,9 @@
1091 "makeCompareKey": [ 1174 "makeCompareKey": [
1092 "sys_se", 1175 "sys_se",
1093 "accnut_ym", 1176 "accnut_ym",
1094 - "ext_key1" ] 1177 + "ext_key1",
  1178 + "delng_crncy"
  1179 + ]
1095 }, 1180 },
1096 "condTwo": { 1181 "condTwo": {
1097 "cond": [ 1182 "cond": [
@@ -1101,7 +1186,8 @@ @@ -1101,7 +1186,8 @@
1101 "makeCompareKey": [ 1186 "makeCompareKey": [
1102 "sys_se", 1187 "sys_se",
1103 "accnut_ym", 1188 "accnut_ym",
1104 - "cast(sn as text)" 1189 + "cast(sn as text)",
  1190 + "delng_crncy"
1105 ] 1191 ]
1106 }, 1192 },
1107 "uniqueKey": [ 1193 "uniqueKey": [
@@ -1113,6 +1199,7 @@ @@ -1113,6 +1199,7 @@
1113 "amtField": "sum(delng_amt) as delng_amt", 1199 "amtField": "sum(delng_amt) as delng_amt",
1114 "compareField": [ 1200 "compareField": [
1115 "accnut_ym", 1201 "accnut_ym",
  1202 + "delng_crncy",
1116 "delng_amt" 1203 "delng_amt"
1117 ], 1204 ],
1118 "matchingType": "mtch_ty", 1205 "matchingType": "mtch_ty",
@@ -1122,7 +1209,7 @@ @@ -1122,7 +1209,7 @@
1122 { 1209 {
1123 "active": true, 1210 "active": true,
1124 "type": "H-BE", 1211 "type": "H-BE",
1125 - "typeName": "자기채무(거래일자),개별상대채권,비교(년월,거래금액)", 1212 + "typeName": "자기채무(거래일자,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)",
1126 1213
1127 "condOne": { 1214 "condOne": {
1128 "cond": [ 1215 "cond": [
@@ -1132,7 +1219,8 @@ @@ -1132,7 +1219,8 @@
1132 "makeCompareKey": [ 1219 "makeCompareKey": [
1133 "sys_se", 1220 "sys_se",
1134 "accnut_ym", 1221 "accnut_ym",
1135 - "delng_de" 1222 + "delng_de",
  1223 + "delng_crncy"
1136 ] 1224 ]
1137 }, 1225 },
1138 "condTwo": { 1226 "condTwo": {
@@ -1143,7 +1231,8 @@ @@ -1143,7 +1231,8 @@
1143 "makeCompareKey": [ 1231 "makeCompareKey": [
1144 "sys_se", 1232 "sys_se",
1145 "accnut_ym", 1233 "accnut_ym",
1146 - "cast(sn as text)" 1234 + "cast(sn as text)",
  1235 + "delng_crncy"
1147 ] 1236 ]
1148 }, 1237 },
1149 "uniqueKey": [ 1238 "uniqueKey": [
@@ -1155,6 +1244,7 @@ @@ -1155,6 +1244,7 @@
1155 "amtField": "sum(delng_amt) as delng_amt", 1244 "amtField": "sum(delng_amt) as delng_amt",
1156 "compareField": [ 1245 "compareField": [
1157 "accnut_ym", 1246 "accnut_ym",
  1247 + "delng_crncy",
1158 "delng_amt" 1248 "delng_amt"
1159 ], 1249 ],
1160 "matchingType": "mtch_ty", 1250 "matchingType": "mtch_ty",
@@ -1164,7 +1254,7 @@ @@ -1164,7 +1254,7 @@
1164 { 1254 {
1165 "active": true, 1255 "active": true,
1166 "type": "H-BF", 1256 "type": "H-BF",
1167 - "typeName": "자기채무(거래월),개별상대채권,비교(년월,거래금액)", 1257 + "typeName": "자기채무(거래월(거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)",
1168 1258
1169 "condOne": { 1259 "condOne": {
1170 "cond": [ 1260 "cond": [
@@ -1174,7 +1264,9 @@ @@ -1174,7 +1264,9 @@
1174 "makeCompareKey": [ 1264 "makeCompareKey": [
1175 "sys_se", 1265 "sys_se",
1176 "accnut_ym", 1266 "accnut_ym",
1177 - "substring(delng_de,1,6)" ] 1267 + "substring(delng_de,1,6)",
  1268 + "delng_crncy"
  1269 + ]
1178 }, 1270 },
1179 "condTwo": { 1271 "condTwo": {
1180 "cond": [ 1272 "cond": [
@@ -1184,7 +1276,8 @@ @@ -1184,7 +1276,8 @@
1184 "makeCompareKey": [ 1276 "makeCompareKey": [
1185 "sys_se", 1277 "sys_se",
1186 "accnut_ym", 1278 "accnut_ym",
1187 - "cast(sn as text)" 1279 + "cast(sn as text)",
  1280 + "delng_crncy"
1188 ] 1281 ]
1189 }, 1282 },
1190 "uniqueKey": [ 1283 "uniqueKey": [
@@ -1196,6 +1289,7 @@ @@ -1196,6 +1289,7 @@
1196 "amtField": "sum(delng_amt) as delng_amt", 1289 "amtField": "sum(delng_amt) as delng_amt",
1197 "compareField": [ 1290 "compareField": [
1198 "accnut_ym", 1291 "accnut_ym",
  1292 + "delng_crncy",
1199 "delng_amt" 1293 "delng_amt"
1200 ], 1294 ],
1201 "matchingType": "mtch_ty", 1295 "matchingType": "mtch_ty",
@@ -1205,7 +1299,7 @@ @@ -1205,7 +1299,7 @@
1205 { 1299 {
1206 "active": true, 1300 "active": true,
1207 "type": "H-BG", 1301 "type": "H-BG",
1208 - "typeName": "자기채무(전표번호),개별상대채권,비교(년월,거래금액)", 1302 + "typeName": "자기채무(전표번호,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)",
1209 1303
1210 "condOne": { 1304 "condOne": {
1211 "cond": [ 1305 "cond": [
@@ -1217,7 +1311,9 @@ @@ -1217,7 +1311,9 @@
1217 "makeCompareKey": [ 1311 "makeCompareKey": [
1218 "sys_se", 1312 "sys_se",
1219 "accnut_ym", 1313 "accnut_ym",
1220 - "chit_no" ] 1314 + "chit_no",
  1315 + "delng_crncy"
  1316 + ]
1221 }, 1317 },
1222 "condTwo": { 1318 "condTwo": {
1223 "cond": [ 1319 "cond": [
@@ -1227,7 +1323,8 @@ @@ -1227,7 +1323,8 @@
1227 "makeCompareKey": [ 1323 "makeCompareKey": [
1228 "sys_se", 1324 "sys_se",
1229 "accnut_ym", 1325 "accnut_ym",
1230 - "cast(sn as text)" 1326 + "cast(sn as text)",
  1327 + "delng_crncy"
1231 ] 1328 ]
1232 }, 1329 },
1233 "uniqueKey": [ 1330 "uniqueKey": [
@@ -1239,6 +1336,7 @@ @@ -1239,6 +1336,7 @@
1239 "amtField": "sum(delng_amt) as delng_amt", 1336 "amtField": "sum(delng_amt) as delng_amt",
1240 "compareField": [ 1337 "compareField": [
1241 "accnut_ym", 1338 "accnut_ym",
  1339 + "delng_crncy",
1242 "delng_amt" 1340 "delng_amt"
1243 ], 1341 ],
1244 "matchingType": "mtch_ty", 1342 "matchingType": "mtch_ty",
@@ -1248,7 +1346,7 @@ @@ -1248,7 +1346,7 @@
1248 { 1346 {
1249 "active": true, 1347 "active": true,
1250 "type": "H-BH", 1348 "type": "H-BH",
1251 - "typeName": "자기채무(합산키),개별상대채권,비교(년월,거래금액)", 1349 + "typeName": "자기채무(합산키,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)",
1252 1350
1253 "condOne": { 1351 "condOne": {
1254 "cond": [ 1352 "cond": [
@@ -1258,7 +1356,9 @@ @@ -1258,7 +1356,9 @@
1258 "makeCompareKey": [ 1356 "makeCompareKey": [
1259 "sys_se", 1357 "sys_se",
1260 "accnut_ym", 1358 "accnut_ym",
1261 - "ext_key1" ] 1359 + "ext_key1",
  1360 + "delng_crncy"
  1361 + ]
1262 }, 1362 },
1263 "condTwo": { 1363 "condTwo": {
1264 "cond": [ 1364 "cond": [
@@ -1268,7 +1368,8 @@ @@ -1268,7 +1368,8 @@
1268 "makeCompareKey": [ 1368 "makeCompareKey": [
1269 "sys_se", 1369 "sys_se",
1270 "accnut_ym", 1370 "accnut_ym",
1271 - "cast(sn as text)" 1371 + "cast(sn as text)",
  1372 + "delng_crncy"
1272 ] 1373 ]
1273 }, 1374 },
1274 "uniqueKey": [ 1375 "uniqueKey": [
@@ -1280,6 +1381,7 @@ @@ -1280,6 +1381,7 @@
1280 "amtField": "sum(delng_amt) as delng_amt", 1381 "amtField": "sum(delng_amt) as delng_amt",
1281 "compareField": [ 1382 "compareField": [
1282 "accnut_ym", 1383 "accnut_ym",
  1384 + "delng_crncy",
1283 "delng_amt" 1385 "delng_amt"
1284 ], 1386 ],
1285 "matchingType": "mtch_ty", 1387 "matchingType": "mtch_ty",
@@ -1293,7 +1395,7 @@ @@ -1293,7 +1395,7 @@
1293 { 1395 {
1294 "active": true, 1396 "active": true,
1295 "type": "I-AA", 1397 "type": "I-AA",
1296 - "typeName": "자기수익(전체),상대비용(거래월),비교(년월,거래금액)", 1398 + "typeName": "자기수익(전체,거래통화),상대비용(겨래월,거래통화),비교(년월,거래통화,거래금액)",
1297 1399
1298 "condOne": { 1400 "condOne": {
1299 "cond": [ 1401 "cond": [
@@ -1302,7 +1404,8 @@ @@ -1302,7 +1404,8 @@
1302 ], 1404 ],
1303 "makeCompareKey": [ 1405 "makeCompareKey": [
1304 "sys_se", 1406 "sys_se",
1305 - "accnut_ym" 1407 + "accnut_ym",
  1408 + "delng_crncy"
1306 ] 1409 ]
1307 }, 1410 },
1308 "condTwo": { 1411 "condTwo": {
@@ -1313,7 +1416,8 @@ @@ -1313,7 +1416,8 @@
1313 "makeCompareKey": [ 1416 "makeCompareKey": [
1314 "sys_se", 1417 "sys_se",
1315 "accnut_ym", 1418 "accnut_ym",
1316 - "substring(delng_de,1,6)" 1419 + "substring(delng_de,1,6)",
  1420 + "delng_crncy"
1317 ] 1421 ]
1318 }, 1422 },
1319 "uniqueKey": [ 1423 "uniqueKey": [
@@ -1325,6 +1429,7 @@ @@ -1325,6 +1429,7 @@
1325 "amtField": "sum(delng_amt) as delng_amt", 1429 "amtField": "sum(delng_amt) as delng_amt",
1326 "compareField": [ 1430 "compareField": [
1327 "accnut_ym", 1431 "accnut_ym",
  1432 + "delng_crncy",
1328 "delng_amt" 1433 "delng_amt"
1329 ], 1434 ],
1330 "matchingType": "mtch_ty", 1435 "matchingType": "mtch_ty",
@@ -1334,7 +1439,7 @@ @@ -1334,7 +1439,7 @@
1334 { 1439 {
1335 "active": true, 1440 "active": true,
1336 "type": "I-AB", 1441 "type": "I-AB",
1337 - "typeName": "자기수익(전체),상대비용(거래일자),비교(년월,거래금액)", 1442 + "typeName": "자기수익(전체,거래통화),상대비용(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1338 1443
1339 "condOne": { 1444 "condOne": {
1340 "cond": [ 1445 "cond": [
@@ -1343,7 +1448,8 @@ @@ -1343,7 +1448,8 @@
1343 ], 1448 ],
1344 "makeCompareKey": [ 1449 "makeCompareKey": [
1345 "sys_se", 1450 "sys_se",
1346 - "accnut_ym" 1451 + "accnut_ym",
  1452 + "delng_crncy"
1347 ] 1453 ]
1348 }, 1454 },
1349 "condTwo": { 1455 "condTwo": {
@@ -1354,7 +1460,8 @@ @@ -1354,7 +1460,8 @@
1354 "makeCompareKey": [ 1460 "makeCompareKey": [
1355 "sys_se", 1461 "sys_se",
1356 "accnut_ym", 1462 "accnut_ym",
1357 - "delng_de" 1463 + "delng_de",
  1464 + "delng_crncy"
1358 ] 1465 ]
1359 }, 1466 },
1360 "uniqueKey": [ 1467 "uniqueKey": [
@@ -1366,6 +1473,7 @@ @@ -1366,6 +1473,7 @@
1366 "amtField": "sum(delng_amt) as delng_amt", 1473 "amtField": "sum(delng_amt) as delng_amt",
1367 "compareField": [ 1474 "compareField": [
1368 "accnut_ym", 1475 "accnut_ym",
  1476 + "delng_crncy",
1369 "delng_amt" 1477 "delng_amt"
1370 ], 1478 ],
1371 "matchingType": "mtch_ty", 1479 "matchingType": "mtch_ty",
@@ -1375,7 +1483,7 @@ @@ -1375,7 +1483,7 @@
1375 { 1483 {
1376 "active": true, 1484 "active": true,
1377 "type": "I-AC", 1485 "type": "I-AC",
1378 - "typeName": "자기비용(전체),상대수익(거래월),비교(년월,거래금액)", 1486 + "typeName": "자기비용(전체,거래통화),상대수익(겨래월,거래통화),비교(년월,거래통화,거래금액)",
1379 1487
1380 "condOne": { 1488 "condOne": {
1381 "cond": [ 1489 "cond": [
@@ -1384,7 +1492,8 @@ @@ -1384,7 +1492,8 @@
1384 ], 1492 ],
1385 "makeCompareKey": [ 1493 "makeCompareKey": [
1386 "sys_se", 1494 "sys_se",
1387 - "accnut_ym" 1495 + "accnut_ym",
  1496 + "delng_crncy"
1388 ] 1497 ]
1389 }, 1498 },
1390 "condTwo": { 1499 "condTwo": {
@@ -1395,7 +1504,8 @@ @@ -1395,7 +1504,8 @@
1395 "makeCompareKey": [ 1504 "makeCompareKey": [
1396 "sys_se", 1505 "sys_se",
1397 "accnut_ym", 1506 "accnut_ym",
1398 - "substring(delng_de,1,6)" 1507 + "substring(delng_de,1,6)",
  1508 + "delng_crncy"
1399 ] 1509 ]
1400 }, 1510 },
1401 "uniqueKey": [ 1511 "uniqueKey": [
@@ -1407,6 +1517,7 @@ @@ -1407,6 +1517,7 @@
1407 "amtField": "sum(delng_amt) as delng_amt", 1517 "amtField": "sum(delng_amt) as delng_amt",
1408 "compareField": [ 1518 "compareField": [
1409 "accnut_ym", 1519 "accnut_ym",
  1520 + "delng_crncy",
1410 "delng_amt" 1521 "delng_amt"
1411 ], 1522 ],
1412 "matchingType": "mtch_ty", 1523 "matchingType": "mtch_ty",
@@ -1416,7 +1527,7 @@ @@ -1416,7 +1527,7 @@
1416 { 1527 {
1417 "active": true, 1528 "active": true,
1418 "type": "I-AD", 1529 "type": "I-AD",
1419 - "typeName": "자기비용(전체),상대수익(거래일자),비교(년월,거래금액)", 1530 + "typeName": "자기비용(전체,거래통화),상대수익(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1420 1531
1421 "condOne": { 1532 "condOne": {
1422 "cond": [ 1533 "cond": [
@@ -1425,7 +1536,8 @@ @@ -1425,7 +1536,8 @@
1425 ], 1536 ],
1426 "makeCompareKey": [ 1537 "makeCompareKey": [
1427 "sys_se", 1538 "sys_se",
1428 - "accnut_ym" 1539 + "accnut_ym",
  1540 + "delng_crncy"
1429 ] 1541 ]
1430 }, 1542 },
1431 "condTwo": { 1543 "condTwo": {
@@ -1436,7 +1548,8 @@ @@ -1436,7 +1548,8 @@
1436 "makeCompareKey": [ 1548 "makeCompareKey": [
1437 "sys_se", 1549 "sys_se",
1438 "accnut_ym", 1550 "accnut_ym",
1439 - "delng_de" 1551 + "delng_de",
  1552 + "delng_crncy"
1440 ] 1553 ]
1441 }, 1554 },
1442 "uniqueKey": [ 1555 "uniqueKey": [
@@ -1448,6 +1561,7 @@ @@ -1448,6 +1561,7 @@
1448 "amtField": "sum(delng_amt) as delng_amt", 1561 "amtField": "sum(delng_amt) as delng_amt",
1449 "compareField": [ 1562 "compareField": [
1450 "accnut_ym", 1563 "accnut_ym",
  1564 + "delng_crncy",
1451 "delng_amt" 1565 "delng_amt"
1452 ], 1566 ],
1453 "matchingType": "mtch_ty", 1567 "matchingType": "mtch_ty",
@@ -1457,7 +1571,7 @@ @@ -1457,7 +1571,7 @@
1457 { 1571 {
1458 "active": true, 1572 "active": true,
1459 "type": "I-AE", 1573 "type": "I-AE",
1460 - "typeName": "자기수익(전체),상대비용(법인계정코드),비교(년월,거래금액)", 1574 + "typeName": "자기수익(전체,거래통화),상대비용(법인계정코드,거래통화),비교(년월,거래통화,거래금액)",
1461 1575
1462 "condOne": { 1576 "condOne": {
1463 "cond": [ 1577 "cond": [
@@ -1466,7 +1580,8 @@ @@ -1466,7 +1580,8 @@
1466 ], 1580 ],
1467 "makeCompareKey": [ 1581 "makeCompareKey": [
1468 "sys_se", 1582 "sys_se",
1469 - "accnut_ym" 1583 + "accnut_ym",
  1584 + "delng_crncy"
1470 ] 1585 ]
1471 }, 1586 },
1472 "condTwo": { 1587 "condTwo": {
@@ -1477,7 +1592,8 @@ @@ -1477,7 +1592,8 @@
1477 "makeCompareKey": [ 1592 "makeCompareKey": [
1478 "sys_se", 1593 "sys_se",
1479 "accnut_ym", 1594 "accnut_ym",
1480 - "cpr_acnt_code" 1595 + "cpr_acnt_code",
  1596 + "delng_crncy"
1481 ] 1597 ]
1482 }, 1598 },
1483 "uniqueKey": [ 1599 "uniqueKey": [
@@ -1489,6 +1605,7 @@ @@ -1489,6 +1605,7 @@
1489 "amtField": "sum(delng_amt) as delng_amt", 1605 "amtField": "sum(delng_amt) as delng_amt",
1490 "compareField": [ 1606 "compareField": [
1491 "accnut_ym", 1607 "accnut_ym",
  1608 + "delng_crncy",
1492 "delng_amt" 1609 "delng_amt"
1493 ], 1610 ],
1494 "matchingType": "mtch_ty", 1611 "matchingType": "mtch_ty",
@@ -1498,7 +1615,7 @@ @@ -1498,7 +1615,7 @@
1498 { 1615 {
1499 "active": true, 1616 "active": true,
1500 "type": "I-AF", 1617 "type": "I-AF",
1501 - "typeName": "자기비용(전체),상대수익(법인계정코드),비교(년월,거래금액)", 1618 + "typeName": "자기비용(전체,거래통화),상대수익(법인계정코드,거래통화),비교(년월,거래통화,거래금액)",
1502 1619
1503 "condOne": { 1620 "condOne": {
1504 "cond": [ 1621 "cond": [
@@ -1507,7 +1624,8 @@ @@ -1507,7 +1624,8 @@
1507 ], 1624 ],
1508 "makeCompareKey": [ 1625 "makeCompareKey": [
1509 "sys_se", 1626 "sys_se",
1510 - "accnut_ym" 1627 + "accnut_ym",
  1628 + "delng_crncy"
1511 ] 1629 ]
1512 }, 1630 },
1513 "condTwo": { 1631 "condTwo": {
@@ -1518,7 +1636,8 @@ @@ -1518,7 +1636,8 @@
1518 "makeCompareKey": [ 1636 "makeCompareKey": [
1519 "sys_se", 1637 "sys_se",
1520 "accnut_ym", 1638 "accnut_ym",
1521 - "cpr_acnt_code" 1639 + "cpr_acnt_code",
  1640 + "delng_crncy"
1522 ] 1641 ]
1523 }, 1642 },
1524 "uniqueKey": [ 1643 "uniqueKey": [
@@ -1530,6 +1649,7 @@ @@ -1530,6 +1649,7 @@
1530 "amtField": "sum(delng_amt) as delng_amt", 1649 "amtField": "sum(delng_amt) as delng_amt",
1531 "compareField": [ 1650 "compareField": [
1532 "accnut_ym", 1651 "accnut_ym",
  1652 + "delng_crncy",
1533 "delng_amt" 1653 "delng_amt"
1534 ], 1654 ],
1535 "matchingType": "mtch_ty", 1655 "matchingType": "mtch_ty",
@@ -1542,7 +1662,7 @@ @@ -1542,7 +1662,7 @@
1542 { 1662 {
1543 "active": true, 1663 "active": true,
1544 "type": "I-BA", 1664 "type": "I-BA",
1545 - "typeName": "자기채권(전체),상대채무(거래월),비교(년월,거래금액)", 1665 + "typeName": "자기채권(전체,거래통화),상대채무(겨래월,거래통화),비교(년월,거래통화,거래금액)",
1546 1666
1547 "condOne": { 1667 "condOne": {
1548 "cond": [ 1668 "cond": [
@@ -1551,7 +1671,8 @@ @@ -1551,7 +1671,8 @@
1551 ], 1671 ],
1552 "makeCompareKey": [ 1672 "makeCompareKey": [
1553 "sys_se", 1673 "sys_se",
1554 - "accnut_ym" 1674 + "accnut_ym",
  1675 + "delng_crncy"
1555 ] 1676 ]
1556 }, 1677 },
1557 "condTwo": { 1678 "condTwo": {
@@ -1562,7 +1683,8 @@ @@ -1562,7 +1683,8 @@
1562 "makeCompareKey": [ 1683 "makeCompareKey": [
1563 "sys_se", 1684 "sys_se",
1564 "accnut_ym", 1685 "accnut_ym",
1565 - "substring(delng_de,1,6)" 1686 + "substring(delng_de,1,6)",
  1687 + "delng_crncy"
1566 ] 1688 ]
1567 }, 1689 },
1568 "uniqueKey": [ 1690 "uniqueKey": [
@@ -1574,6 +1696,7 @@ @@ -1574,6 +1696,7 @@
1574 "amtField": "sum(delng_amt) as delng_amt", 1696 "amtField": "sum(delng_amt) as delng_amt",
1575 "compareField": [ 1697 "compareField": [
1576 "accnut_ym", 1698 "accnut_ym",
  1699 + "delng_crncy",
1577 "delng_amt" 1700 "delng_amt"
1578 ], 1701 ],
1579 "matchingType": "mtch_ty", 1702 "matchingType": "mtch_ty",
@@ -1583,7 +1706,7 @@ @@ -1583,7 +1706,7 @@
1583 { 1706 {
1584 "active": true, 1707 "active": true,
1585 "type": "I-BB", 1708 "type": "I-BB",
1586 - "typeName": "자기채권(전체),상대채무(거래일자),비교(년월,거래금액)", 1709 + "typeName": "자기채권(전체,거래통화),상대채무(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1587 1710
1588 "condOne": { 1711 "condOne": {
1589 "cond": [ 1712 "cond": [
@@ -1592,7 +1715,8 @@ @@ -1592,7 +1715,8 @@
1592 ], 1715 ],
1593 "makeCompareKey": [ 1716 "makeCompareKey": [
1594 "sys_se", 1717 "sys_se",
1595 - "accnut_ym" 1718 + "accnut_ym",
  1719 + "delng_crncy"
1596 ] 1720 ]
1597 }, 1721 },
1598 "condTwo": { 1722 "condTwo": {
@@ -1603,7 +1727,8 @@ @@ -1603,7 +1727,8 @@
1603 "makeCompareKey": [ 1727 "makeCompareKey": [
1604 "sys_se", 1728 "sys_se",
1605 "accnut_ym", 1729 "accnut_ym",
1606 - "delng_de" 1730 + "delng_de",
  1731 + "delng_crncy"
1607 ] 1732 ]
1608 }, 1733 },
1609 "uniqueKey": [ 1734 "uniqueKey": [
@@ -1615,6 +1740,7 @@ @@ -1615,6 +1740,7 @@
1615 "amtField": "sum(delng_amt) as delng_amt", 1740 "amtField": "sum(delng_amt) as delng_amt",
1616 "compareField": [ 1741 "compareField": [
1617 "accnut_ym", 1742 "accnut_ym",
  1743 + "delng_crncy",
1618 "delng_amt" 1744 "delng_amt"
1619 ], 1745 ],
1620 "matchingType": "mtch_ty", 1746 "matchingType": "mtch_ty",
@@ -1624,7 +1750,7 @@ @@ -1624,7 +1750,7 @@
1624 { 1750 {
1625 "active": true, 1751 "active": true,
1626 "type": "I-BC", 1752 "type": "I-BC",
1627 - "typeName": "자기채무(전체),상대채권(거래월),비교(년월,거래금액)", 1753 + "typeName": "자기채무(전체,거래통화),상대채권(겨래월,거래통화),비교(년월,거래통화,거래금액)",
1628 1754
1629 "condOne": { 1755 "condOne": {
1630 "cond": [ 1756 "cond": [
@@ -1633,7 +1759,8 @@ @@ -1633,7 +1759,8 @@
1633 ], 1759 ],
1634 "makeCompareKey": [ 1760 "makeCompareKey": [
1635 "sys_se", 1761 "sys_se",
1636 - "accnut_ym" 1762 + "accnut_ym",
  1763 + "delng_crncy"
1637 ] 1764 ]
1638 }, 1765 },
1639 "condTwo": { 1766 "condTwo": {
@@ -1644,7 +1771,8 @@ @@ -1644,7 +1771,8 @@
1644 "makeCompareKey": [ 1771 "makeCompareKey": [
1645 "sys_se", 1772 "sys_se",
1646 "accnut_ym", 1773 "accnut_ym",
1647 - "substring(delng_de,1,6)" 1774 + "substring(delng_de,1,6)",
  1775 + "delng_crncy"
1648 ] 1776 ]
1649 }, 1777 },
1650 "uniqueKey": [ 1778 "uniqueKey": [
@@ -1656,6 +1784,7 @@ @@ -1656,6 +1784,7 @@
1656 "amtField": "sum(delng_amt) as delng_amt", 1784 "amtField": "sum(delng_amt) as delng_amt",
1657 "compareField": [ 1785 "compareField": [
1658 "accnut_ym", 1786 "accnut_ym",
  1787 + "delng_crncy",
1659 "delng_amt" 1788 "delng_amt"
1660 ], 1789 ],
1661 "matchingType": "mtch_ty", 1790 "matchingType": "mtch_ty",
@@ -1665,7 +1794,7 @@ @@ -1665,7 +1794,7 @@
1665 { 1794 {
1666 "active": true, 1795 "active": true,
1667 "type": "I-BD", 1796 "type": "I-BD",
1668 - "typeName": "자기채무(전체),상대채권(거래일자),비교(년월,거래금액)", 1797 + "typeName": "자기채무(전체,거래통화),상대채권(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1669 1798
1670 "condOne": { 1799 "condOne": {
1671 "cond": [ 1800 "cond": [
@@ -1674,7 +1803,8 @@ @@ -1674,7 +1803,8 @@
1674 ], 1803 ],
1675 "makeCompareKey": [ 1804 "makeCompareKey": [
1676 "sys_se", 1805 "sys_se",
1677 - "accnut_ym" 1806 + "accnut_ym",
  1807 + "delng_crncy"
1678 ] 1808 ]
1679 }, 1809 },
1680 "condTwo": { 1810 "condTwo": {
@@ -1685,7 +1815,8 @@ @@ -1685,7 +1815,8 @@
1685 "makeCompareKey": [ 1815 "makeCompareKey": [
1686 "sys_se", 1816 "sys_se",
1687 "accnut_ym", 1817 "accnut_ym",
1688 - "delng_de" 1818 + "delng_de",
  1819 + "delng_crncy"
1689 ] 1820 ]
1690 }, 1821 },
1691 "uniqueKey": [ 1822 "uniqueKey": [
@@ -1697,6 +1828,7 @@ @@ -1697,6 +1828,7 @@
1697 "amtField": "sum(delng_amt) as delng_amt", 1828 "amtField": "sum(delng_amt) as delng_amt",
1698 "compareField": [ 1829 "compareField": [
1699 "accnut_ym", 1830 "accnut_ym",
  1831 + "delng_crncy",
1700 "delng_amt" 1832 "delng_amt"
1701 ], 1833 ],
1702 "matchingType": "mtch_ty", 1834 "matchingType": "mtch_ty",
@@ -1706,7 +1838,7 @@ @@ -1706,7 +1838,7 @@
1706 { 1838 {
1707 "active": true, 1839 "active": true,
1708 "type": "I-BE", 1840 "type": "I-BE",
1709 - "typeName": "자기채권(전체),상대채무(계정코드),비교(년월,거래금액)", 1841 + "typeName": "자기채권(전체,거래통화),상대채무(계정코드,거래통화),비교(년월,거래통화,거래금액)",
1710 1842
1711 "condOne": { 1843 "condOne": {
1712 "cond": [ 1844 "cond": [
@@ -1715,7 +1847,8 @@ @@ -1715,7 +1847,8 @@
1715 ], 1847 ],
1716 "makeCompareKey": [ 1848 "makeCompareKey": [
1717 "sys_se", 1849 "sys_se",
1718 - "cpr_acnt_code" 1850 + "cpr_acnt_code",
  1851 + "delng_crncy"
1719 ] 1852 ]
1720 }, 1853 },
1721 "condTwo": { 1854 "condTwo": {
@@ -1726,7 +1859,8 @@ @@ -1726,7 +1859,8 @@
1726 "makeCompareKey": [ 1859 "makeCompareKey": [
1727 "sys_se", 1860 "sys_se",
1728 "accnut_ym", 1861 "accnut_ym",
1729 - "delng_de" 1862 + "delng_de",
  1863 + "delng_crncy"
1730 ] 1864 ]
1731 }, 1865 },
1732 "uniqueKey": [ 1866 "uniqueKey": [
@@ -1738,6 +1872,7 @@ @@ -1738,6 +1872,7 @@
1738 "amtField": "sum(delng_amt) as delng_amt", 1872 "amtField": "sum(delng_amt) as delng_amt",
1739 "compareField": [ 1873 "compareField": [
1740 "accnut_ym", 1874 "accnut_ym",
  1875 + "delng_crncy",
1741 "delng_amt" 1876 "delng_amt"
1742 ], 1877 ],
1743 "matchingType": "mtch_ty", 1878 "matchingType": "mtch_ty",
@@ -1747,7 +1882,7 @@ @@ -1747,7 +1882,7 @@
1747 { 1882 {
1748 "active": true, 1883 "active": true,
1749 "type": "I-BF", 1884 "type": "I-BF",
1750 - "typeName": "자기채무(전체),상대채권(계정코드),비교(년월,거래금액)", 1885 + "typeName": "자기채무(전체,거래통화),상대채권(계정코드,거래통화),비교(년월,거래통화,거래금액)",
1751 1886
1752 "condOne": { 1887 "condOne": {
1753 "cond": [ 1888 "cond": [
@@ -1756,7 +1891,8 @@ @@ -1756,7 +1891,8 @@
1756 ], 1891 ],
1757 "makeCompareKey": [ 1892 "makeCompareKey": [
1758 "sys_se", 1893 "sys_se",
1759 - "cpr_acnt_code" 1894 + "cpr_acnt_code",
  1895 + "delng_crncy"
1760 ] 1896 ]
1761 }, 1897 },
1762 "condTwo": { 1898 "condTwo": {
@@ -1767,7 +1903,8 @@ @@ -1767,7 +1903,8 @@
1767 "makeCompareKey": [ 1903 "makeCompareKey": [
1768 "sys_se", 1904 "sys_se",
1769 "accnut_ym", 1905 "accnut_ym",
1770 - "delng_de" 1906 + "delng_de",
  1907 + "delng_crncy"
1771 ] 1908 ]
1772 }, 1909 },
1773 "uniqueKey": [ 1910 "uniqueKey": [
@@ -1779,6 +1916,7 @@ @@ -1779,6 +1916,7 @@
1779 "amtField": "sum(delng_amt) as delng_amt", 1916 "amtField": "sum(delng_amt) as delng_amt",
1780 "compareField": [ 1917 "compareField": [
1781 "accnut_ym", 1918 "accnut_ym",
  1919 + "delng_crncy",
1782 "delng_amt" 1920 "delng_amt"
1783 ], 1921 ],
1784 "matchingType": "mtch_ty", 1922 "matchingType": "mtch_ty",
@@ -1792,7 +1930,7 @@ @@ -1792,7 +1930,7 @@
1792 { 1930 {
1793 "active": true, 1931 "active": true,
1794 "type": "J-AA", 1932 "type": "J-AA",
1795 - "typeName": "자기수익(거래월),상대비용(거래일자),비교(년월,거래금액)", 1933 + "typeName": "자기수익(거래월,거래통화),상대비용(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1796 1934
1797 "condOne": { 1935 "condOne": {
1798 "cond": [ 1936 "cond": [
@@ -1802,7 +1940,8 @@ @@ -1802,7 +1940,8 @@
1802 "makeCompareKey": [ 1940 "makeCompareKey": [
1803 "sys_se", 1941 "sys_se",
1804 "accnut_ym", 1942 "accnut_ym",
1805 - "substring(delng_de,1,6)" 1943 + "substring(delng_de,1,6)",
  1944 + "delng_crncy"
1806 ] 1945 ]
1807 }, 1946 },
1808 "condTwo": { 1947 "condTwo": {
@@ -1813,7 +1952,8 @@ @@ -1813,7 +1952,8 @@
1813 "makeCompareKey": [ 1952 "makeCompareKey": [
1814 "sys_se", 1953 "sys_se",
1815 "accnut_ym", 1954 "accnut_ym",
1816 - "delng_de" 1955 + "delng_de",
  1956 + "delng_crncy"
1817 ] 1957 ]
1818 }, 1958 },
1819 "uniqueKey": [ 1959 "uniqueKey": [
@@ -1825,6 +1965,7 @@ @@ -1825,6 +1965,7 @@
1825 "amtField": "sum(delng_amt) as delng_amt", 1965 "amtField": "sum(delng_amt) as delng_amt",
1826 "compareField": [ 1966 "compareField": [
1827 "accnut_ym", 1967 "accnut_ym",
  1968 + "delng_crncy",
1828 "delng_amt" 1969 "delng_amt"
1829 ], 1970 ],
1830 "matchingType": "mtch_ty", 1971 "matchingType": "mtch_ty",
@@ -1834,7 +1975,7 @@ @@ -1834,7 +1975,7 @@
1834 { 1975 {
1835 "active": true, 1976 "active": true,
1836 "type": "J-AB", 1977 "type": "J-AB",
1837 - "typeName": "자기비용(거래월),상대수익(거래일자),비교(년월,거래금액)", 1978 + "typeName": "자기비용(거래월,거래통화),상대수익(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1838 1979
1839 "condOne": { 1980 "condOne": {
1840 "cond": [ 1981 "cond": [
@@ -1844,7 +1985,8 @@ @@ -1844,7 +1985,8 @@
1844 "makeCompareKey": [ 1985 "makeCompareKey": [
1845 "sys_se", 1986 "sys_se",
1846 "accnut_ym", 1987 "accnut_ym",
1847 - "substring(delng_de,1,6)" 1988 + "substring(delng_de,1,6)",
  1989 + "delng_crncy"
1848 ] 1990 ]
1849 }, 1991 },
1850 "condTwo": { 1992 "condTwo": {
@@ -1855,7 +1997,8 @@ @@ -1855,7 +1997,8 @@
1855 "makeCompareKey": [ 1997 "makeCompareKey": [
1856 "sys_se", 1998 "sys_se",
1857 "accnut_ym", 1999 "accnut_ym",
1858 - "delng_de" 2000 + "delng_de",
  2001 + "delng_crncy"
1859 ] 2002 ]
1860 }, 2003 },
1861 "uniqueKey": [ 2004 "uniqueKey": [
@@ -1867,6 +2010,7 @@ @@ -1867,6 +2010,7 @@
1867 "amtField": "sum(delng_amt) as delng_amt", 2010 "amtField": "sum(delng_amt) as delng_amt",
1868 "compareField": [ 2011 "compareField": [
1869 "accnut_ym", 2012 "accnut_ym",
  2013 + "delng_crncy",
1870 "delng_amt" 2014 "delng_amt"
1871 ], 2015 ],
1872 "matchingType": "mtch_ty", 2016 "matchingType": "mtch_ty",
@@ -1876,7 +2020,7 @@ @@ -1876,7 +2020,7 @@
1876 { 2020 {
1877 "active": true, 2021 "active": true,
1878 "type": "J-AC", 2022 "type": "J-AC",
1879 - "typeName": "자기수익(거래월),상대비용(계정코드),비교(년월,거래금액)", 2023 + "typeName": "자기수익(거래월,거래통화),상대비용(계정코드,거래통화),비교(년월,거래통화,거래금액)",
1880 2024
1881 "condOne": { 2025 "condOne": {
1882 "cond": [ 2026 "cond": [
@@ -1886,7 +2030,8 @@ @@ -1886,7 +2030,8 @@
1886 "makeCompareKey": [ 2030 "makeCompareKey": [
1887 "sys_se", 2031 "sys_se",
1888 "accnut_ym", 2032 "accnut_ym",
1889 - "substring(delng_de,1,6)" 2033 + "substring(delng_de,1,6)",
  2034 + "delng_crncy"
1890 ] 2035 ]
1891 }, 2036 },
1892 "condTwo": { 2037 "condTwo": {
@@ -1897,7 +2042,8 @@ @@ -1897,7 +2042,8 @@
1897 "makeCompareKey": [ 2042 "makeCompareKey": [
1898 "sys_se", 2043 "sys_se",
1899 "accnut_ym", 2044 "accnut_ym",
1900 - "cpr_acnt_code" 2045 + "cpr_acnt_code",
  2046 + "delng_crncy"
1901 ] 2047 ]
1902 }, 2048 },
1903 "uniqueKey": [ 2049 "uniqueKey": [
@@ -1909,6 +2055,7 @@ @@ -1909,6 +2055,7 @@
1909 "amtField": "sum(delng_amt) as delng_amt", 2055 "amtField": "sum(delng_amt) as delng_amt",
1910 "compareField": [ 2056 "compareField": [
1911 "accnut_ym", 2057 "accnut_ym",
  2058 + "delng_crncy",
1912 "delng_amt" 2059 "delng_amt"
1913 ], 2060 ],
1914 "matchingType": "mtch_ty", 2061 "matchingType": "mtch_ty",
@@ -1918,7 +2065,7 @@ @@ -1918,7 +2065,7 @@
1918 { 2065 {
1919 "active": true, 2066 "active": true,
1920 "type": "J-AD", 2067 "type": "J-AD",
1921 - "typeName": "자기비용(거래월),상대수익(계정코드),비교(년월,거래금액)", 2068 + "typeName": "자기비용(거래월,거래통화),상대수익(계정코드,거래통화),비교(년월,거래통화,거래금액)",
1922 2069
1923 "condOne": { 2070 "condOne": {
1924 "cond": [ 2071 "cond": [
@@ -1928,7 +2075,8 @@ @@ -1928,7 +2075,8 @@
1928 "makeCompareKey": [ 2075 "makeCompareKey": [
1929 "sys_se", 2076 "sys_se",
1930 "accnut_ym", 2077 "accnut_ym",
1931 - "substring(delng_de,1,6)" 2078 + "substring(delng_de,1,6)",
  2079 + "delng_crncy"
1932 ] 2080 ]
1933 }, 2081 },
1934 "condTwo": { 2082 "condTwo": {
@@ -1939,7 +2087,8 @@ @@ -1939,7 +2087,8 @@
1939 "makeCompareKey": [ 2087 "makeCompareKey": [
1940 "sys_se", 2088 "sys_se",
1941 "accnut_ym", 2089 "accnut_ym",
1942 - "cpr_acnt_code" 2090 + "cpr_acnt_code",
  2091 + "delng_crncy"
1943 ] 2092 ]
1944 }, 2093 },
1945 "uniqueKey": [ 2094 "uniqueKey": [
@@ -1951,6 +2100,7 @@ @@ -1951,6 +2100,7 @@
1951 "amtField": "sum(delng_amt) as delng_amt", 2100 "amtField": "sum(delng_amt) as delng_amt",
1952 "compareField": [ 2101 "compareField": [
1953 "accnut_ym", 2102 "accnut_ym",
  2103 + "delng_crncy",
1954 "delng_amt" 2104 "delng_amt"
1955 ], 2105 ],
1956 "matchingType": "mtch_ty", 2106 "matchingType": "mtch_ty",
@@ -1961,7 +2111,7 @@ @@ -1961,7 +2111,7 @@
1961 { 2111 {
1962 "active": true, 2112 "active": true,
1963 "type": "J-BA", 2113 "type": "J-BA",
1964 - "typeName": "자기채권(거래월),상대채무(거래일자),비교(년월,거래금액)", 2114 + "typeName": "자기채권(거래월,거래통화),상대채무(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
1965 2115
1966 "condOne": { 2116 "condOne": {
1967 "cond": [ 2117 "cond": [
@@ -1971,7 +2121,8 @@ @@ -1971,7 +2121,8 @@
1971 "makeCompareKey": [ 2121 "makeCompareKey": [
1972 "sys_se", 2122 "sys_se",
1973 "accnut_ym", 2123 "accnut_ym",
1974 - "substring(delng_de,1,6)" 2124 + "substring(delng_de,1,6)",
  2125 + "delng_crncy"
1975 ] 2126 ]
1976 }, 2127 },
1977 "condTwo": { 2128 "condTwo": {
@@ -1982,7 +2133,8 @@ @@ -1982,7 +2133,8 @@
1982 "makeCompareKey": [ 2133 "makeCompareKey": [
1983 "sys_se", 2134 "sys_se",
1984 "accnut_ym", 2135 "accnut_ym",
1985 - "delng_de" 2136 + "delng_de",
  2137 + "delng_crncy"
1986 ] 2138 ]
1987 }, 2139 },
1988 "uniqueKey": [ 2140 "uniqueKey": [
@@ -1994,6 +2146,7 @@ @@ -1994,6 +2146,7 @@
1994 "amtField": "sum(delng_amt) as delng_amt", 2146 "amtField": "sum(delng_amt) as delng_amt",
1995 "compareField": [ 2147 "compareField": [
1996 "accnut_ym", 2148 "accnut_ym",
  2149 + "delng_crncy",
1997 "delng_amt" 2150 "delng_amt"
1998 ], 2151 ],
1999 "matchingType": "mtch_ty", 2152 "matchingType": "mtch_ty",
@@ -2003,7 +2156,7 @@ @@ -2003,7 +2156,7 @@
2003 { 2156 {
2004 "active": true, 2157 "active": true,
2005 "type": "J-BB", 2158 "type": "J-BB",
2006 - "typeName": "자기채무(거래월),상대채권(거래일자),비교(년월,거래금액)", 2159 + "typeName": "자기채무(거래월,거래통화),상대채권(겨래일자,거래통하),비교(년월,거래통화,거래금액)",
2007 2160
2008 "condOne": { 2161 "condOne": {
2009 "cond": [ 2162 "cond": [
@@ -2013,7 +2166,8 @@ @@ -2013,7 +2166,8 @@
2013 "makeCompareKey": [ 2166 "makeCompareKey": [
2014 "sys_se", 2167 "sys_se",
2015 "accnut_ym", 2168 "accnut_ym",
2016 - "substring(delng_de,1,6)" 2169 + "substring(delng_de,1,6)",
  2170 + "delng_crncy"
2017 ] 2171 ]
2018 }, 2172 },
2019 "condTwo": { 2173 "condTwo": {
@@ -2024,7 +2178,8 @@ @@ -2024,7 +2178,8 @@
2024 "makeCompareKey": [ 2178 "makeCompareKey": [
2025 "sys_se", 2179 "sys_se",
2026 "accnut_ym", 2180 "accnut_ym",
2027 - "delng_de" 2181 + "delng_de",
  2182 + "delng_crncy"
2028 ] 2183 ]
2029 }, 2184 },
2030 "uniqueKey": [ 2185 "uniqueKey": [
@@ -2036,6 +2191,7 @@ @@ -2036,6 +2191,7 @@
2036 "amtField": "sum(delng_amt) as delng_amt", 2191 "amtField": "sum(delng_amt) as delng_amt",
2037 "compareField": [ 2192 "compareField": [
2038 "accnut_ym", 2193 "accnut_ym",
  2194 + "delng_crncy",
2039 "delng_amt" 2195 "delng_amt"
2040 ], 2196 ],
2041 "matchingType": "mtch_ty", 2197 "matchingType": "mtch_ty",
@@ -2045,7 +2201,7 @@ @@ -2045,7 +2201,7 @@
2045 { 2201 {
2046 "active": true, 2202 "active": true,
2047 "type": "J-BC", 2203 "type": "J-BC",
2048 - "typeName": "자기채권(거래월),상대채무(계정코드),비교(년월,거래금액)", 2204 + "typeName": "자기채권(거래월,거래통화),상대채무(계정코드,거래통화),비교(년월,거래통화,거래금액)",
2049 2205
2050 "condOne": { 2206 "condOne": {
2051 "cond": [ 2207 "cond": [
@@ -2055,7 +2211,8 @@ @@ -2055,7 +2211,8 @@
2055 "makeCompareKey": [ 2211 "makeCompareKey": [
2056 "sys_se", 2212 "sys_se",
2057 "accnut_ym", 2213 "accnut_ym",
2058 - "substring(delng_de,1,6)" 2214 + "substring(delng_de,1,6)",
  2215 + "delng_crncy"
2059 ] 2216 ]
2060 }, 2217 },
2061 "condTwo": { 2218 "condTwo": {
@@ -2066,7 +2223,8 @@ @@ -2066,7 +2223,8 @@
2066 "makeCompareKey": [ 2223 "makeCompareKey": [
2067 "sys_se", 2224 "sys_se",
2068 "accnut_ym", 2225 "accnut_ym",
2069 - "cpr_acnt_code" 2226 + "cpr_acnt_code",
  2227 + "delng_crncy"
2070 ] 2228 ]
2071 }, 2229 },
2072 "uniqueKey": [ 2230 "uniqueKey": [
@@ -2078,6 +2236,7 @@ @@ -2078,6 +2236,7 @@
2078 "amtField": "sum(delng_amt) as delng_amt", 2236 "amtField": "sum(delng_amt) as delng_amt",
2079 "compareField": [ 2237 "compareField": [
2080 "accnut_ym", 2238 "accnut_ym",
  2239 + "delng_crncy",
2081 "delng_amt" 2240 "delng_amt"
2082 ], 2241 ],
2083 "matchingType": "mtch_ty", 2242 "matchingType": "mtch_ty",
@@ -2087,7 +2246,7 @@ @@ -2087,7 +2246,7 @@
2087 { 2246 {
2088 "active": true, 2247 "active": true,
2089 "type": "J-BD", 2248 "type": "J-BD",
2090 - "typeName": "자기채무(거래월),상대채권(계정코드),비교(년월,거래금액)", 2249 + "typeName": "자기채무(거래월,거래통화),상대채권(계정코드,거래통화),비교(년월,거래통화,거래금액)",
2091 2250
2092 "condOne": { 2251 "condOne": {
2093 "cond": [ 2252 "cond": [
@@ -2097,7 +2256,8 @@ @@ -2097,7 +2256,8 @@
2097 "makeCompareKey": [ 2256 "makeCompareKey": [
2098 "sys_se", 2257 "sys_se",
2099 "accnut_ym", 2258 "accnut_ym",
2100 - "substring(delng_de,1,6)" 2259 + "substring(delng_de,1,6)",
  2260 + "delng_crncy"
2101 ] 2261 ]
2102 }, 2262 },
2103 "condTwo": { 2263 "condTwo": {
@@ -2108,7 +2268,8 @@ @@ -2108,7 +2268,8 @@
2108 "makeCompareKey": [ 2268 "makeCompareKey": [
2109 "sys_se", 2269 "sys_se",
2110 "accnut_ym", 2270 "accnut_ym",
2111 - "cpr_acnt_code" 2271 + "cpr_acnt_code",
  2272 + "delng_crncy"
2112 ] 2273 ]
2113 }, 2274 },
2114 "uniqueKey": [ 2275 "uniqueKey": [
@@ -2120,6 +2281,7 @@ @@ -2120,6 +2281,7 @@
2120 "amtField": "sum(delng_amt) as delng_amt", 2281 "amtField": "sum(delng_amt) as delng_amt",
2121 "compareField": [ 2282 "compareField": [
2122 "accnut_ym", 2283 "accnut_ym",
  2284 + "delng_crncy",
2123 "delng_amt" 2285 "delng_amt"
2124 ], 2286 ],
2125 "matchingType": "mtch_ty", 2287 "matchingType": "mtch_ty",
@@ -2142,7 +2304,7 @@ @@ -2142,7 +2304,7 @@
2142 { 2304 {
2143 "active": true, 2305 "active": true,
2144 "type": "K-AA", 2306 "type": "K-AA",
2145 - "typeName": "자기수익(적요),상대비용(적요),비교(년월,거래금액)", 2307 + "typeName": "자기수익(적요,거래통화),상대비용(적요,거래통화),비교(년월,거래통화,거래금액)",
2146 2308
2147 "condOne": { 2309 "condOne": {
2148 "cond": [ 2310 "cond": [
@@ -2152,7 +2314,8 @@ @@ -2152,7 +2314,8 @@
2152 "makeCompareKey": [ 2314 "makeCompareKey": [
2153 "sys_se", 2315 "sys_se",
2154 "accnut_ym", 2316 "accnut_ym",
2155 - "substring(sumry, 1, 80)" 2317 + "substring(sumry, 1, 80)",
  2318 + "delng_crncy"
2156 ] 2319 ]
2157 }, 2320 },
2158 "condTwo": { 2321 "condTwo": {
@@ -2163,7 +2326,8 @@ @@ -2163,7 +2326,8 @@
2163 "makeCompareKey": [ 2326 "makeCompareKey": [
2164 "sys_se", 2327 "sys_se",
2165 "accnut_ym", 2328 "accnut_ym",
2166 - "substring(sumry, 1, 80)" 2329 + "substring(sumry, 1, 80)",
  2330 + "delng_crncy"
2167 ] 2331 ]
2168 }, 2332 },
2169 "uniqueKey": [ 2333 "uniqueKey": [
@@ -2175,6 +2339,7 @@ @@ -2175,6 +2339,7 @@
2175 "amtField": "sum(delng_amt) as delng_amt", 2339 "amtField": "sum(delng_amt) as delng_amt",
2176 "compareField": [ 2340 "compareField": [
2177 "accnut_ym", 2341 "accnut_ym",
  2342 + "delng_crncy",
2178 "delng_amt" 2343 "delng_amt"
2179 ], 2344 ],
2180 "matchingType": "mtch_ty", 2345 "matchingType": "mtch_ty",
@@ -2184,7 +2349,7 @@ @@ -2184,7 +2349,7 @@
2184 { 2349 {
2185 "active": true, 2350 "active": true,
2186 "type": "K-AB", 2351 "type": "K-AB",
2187 - "typeName": "자기비용(적요),상대수익(거래일자),비교(년월,거래금액)", 2352 + "typeName": "자기비용(적요,거래통화),상대수익(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
2188 2353
2189 "condOne": { 2354 "condOne": {
2190 "cond": [ 2355 "cond": [
@@ -2194,7 +2359,8 @@ @@ -2194,7 +2359,8 @@
2194 "makeCompareKey": [ 2359 "makeCompareKey": [
2195 "sys_se", 2360 "sys_se",
2196 "accnut_ym", 2361 "accnut_ym",
2197 - "substring(sumry, 1, 80)" 2362 + "substring(sumry, 1, 80)",
  2363 + "delng_crncy"
2198 ] 2364 ]
2199 }, 2365 },
2200 "condTwo": { 2366 "condTwo": {
@@ -2205,7 +2371,8 @@ @@ -2205,7 +2371,8 @@
2205 "makeCompareKey": [ 2371 "makeCompareKey": [
2206 "sys_se", 2372 "sys_se",
2207 "accnut_ym", 2373 "accnut_ym",
2208 - "delng_de" 2374 + "delng_de",
  2375 + "delng_crncy"
2209 ] 2376 ]
2210 }, 2377 },
2211 "uniqueKey": [ 2378 "uniqueKey": [
@@ -2217,6 +2384,7 @@ @@ -2217,6 +2384,7 @@
2217 "amtField": "sum(delng_amt) as delng_amt", 2384 "amtField": "sum(delng_amt) as delng_amt",
2218 "compareField": [ 2385 "compareField": [
2219 "accnut_ym", 2386 "accnut_ym",
  2387 + "delng_crncy",
2220 "delng_amt" 2388 "delng_amt"
2221 ], 2389 ],
2222 "matchingType": "mtch_ty", 2390 "matchingType": "mtch_ty",
@@ -2226,7 +2394,7 @@ @@ -2226,7 +2394,7 @@
2226 { 2394 {
2227 "active": true, 2395 "active": true,
2228 "type": "K-AC", 2396 "type": "K-AC",
2229 - "typeName": "자기수익(적요),개별상대비용,비교(년월,거래금액)", 2397 + "typeName": "자기수익(적요,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
2230 2398
2231 "condOne": { 2399 "condOne": {
2232 "cond": [ 2400 "cond": [
@@ -2236,7 +2404,8 @@ @@ -2236,7 +2404,8 @@
2236 "makeCompareKey": [ 2404 "makeCompareKey": [
2237 "sys_se", 2405 "sys_se",
2238 "accnut_ym", 2406 "accnut_ym",
2239 - "substring(sumry, 1, 80)" 2407 + "substring(sumry, 1, 80)",
  2408 + "delng_crncy"
2240 ] 2409 ]
2241 }, 2410 },
2242 "condTwo": { 2411 "condTwo": {
@@ -2247,7 +2416,8 @@ @@ -2247,7 +2416,8 @@
2247 "makeCompareKey": [ 2416 "makeCompareKey": [
2248 "sys_se", 2417 "sys_se",
2249 "accnut_ym", 2418 "accnut_ym",
2250 - "cast(sn as text)" 2419 + "cast(sn as text)",
  2420 + "delng_crncy"
2251 ] 2421 ]
2252 }, 2422 },
2253 "uniqueKey": [ 2423 "uniqueKey": [
@@ -2259,6 +2429,7 @@ @@ -2259,6 +2429,7 @@
2259 "amtField": "sum(delng_amt) as delng_amt", 2429 "amtField": "sum(delng_amt) as delng_amt",
2260 "compareField": [ 2430 "compareField": [
2261 "accnut_ym", 2431 "accnut_ym",
  2432 + "delng_crncy",
2262 "delng_amt" 2433 "delng_amt"
2263 ], 2434 ],
2264 "matchingType": "mtch_ty", 2435 "matchingType": "mtch_ty",
@@ -2268,7 +2439,7 @@ @@ -2268,7 +2439,7 @@
2268 { 2439 {
2269 "active": true, 2440 "active": true,
2270 "type": "K-AD", 2441 "type": "K-AD",
2271 - "typeName": "자기비용(적요),개별상대수익,비교(년월,거래금액)", 2442 + "typeName": "자기비용(적요(거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
2272 2443
2273 "condOne": { 2444 "condOne": {
2274 "cond": [ 2445 "cond": [
@@ -2278,7 +2449,8 @@ @@ -2278,7 +2449,8 @@
2278 "makeCompareKey": [ 2449 "makeCompareKey": [
2279 "sys_se", 2450 "sys_se",
2280 "accnut_ym", 2451 "accnut_ym",
2281 - "substring(sumry, 1, 80)" 2452 + "substring(sumry, 1, 80)",
  2453 + "delng_crncy"
2282 ] 2454 ]
2283 }, 2455 },
2284 "condTwo": { 2456 "condTwo": {
@@ -2289,7 +2461,8 @@ @@ -2289,7 +2461,8 @@
2289 "makeCompareKey": [ 2461 "makeCompareKey": [
2290 "sys_se", 2462 "sys_se",
2291 "accnut_ym", 2463 "accnut_ym",
2292 - "cast(sn as text)" 2464 + "cast(sn as text)",
  2465 + "delng_crncy"
2293 ] 2466 ]
2294 }, 2467 },
2295 "uniqueKey": [ 2468 "uniqueKey": [
@@ -2301,6 +2474,7 @@ @@ -2301,6 +2474,7 @@
2301 "amtField": "sum(delng_amt) as delng_amt", 2474 "amtField": "sum(delng_amt) as delng_amt",
2302 "compareField": [ 2475 "compareField": [
2303 "accnut_ym", 2476 "accnut_ym",
  2477 + "delng_crncy",
2304 "delng_amt" 2478 "delng_amt"
2305 ], 2479 ],
2306 "matchingType": "mtch_ty", 2480 "matchingType": "mtch_ty",
@@ -2310,7 +2484,7 @@ @@ -2310,7 +2484,7 @@
2310 { 2484 {
2311 "active": true, 2485 "active": true,
2312 "type": "K-BA", 2486 "type": "K-BA",
2313 - "typeName": "자기채권(적요),상대채무(거래일자),비교(년월,거래금액)", 2487 + "typeName": "자기채권(적요,거래통화),상대채무(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
2314 2488
2315 "condOne": { 2489 "condOne": {
2316 "cond": [ 2490 "cond": [
@@ -2320,7 +2494,8 @@ @@ -2320,7 +2494,8 @@
2320 "makeCompareKey": [ 2494 "makeCompareKey": [
2321 "sys_se", 2495 "sys_se",
2322 "accnut_ym", 2496 "accnut_ym",
2323 - "substring(sumry, 1, 80)" 2497 + "substring(sumry, 1, 80)",
  2498 + "delng_crncy"
2324 ] 2499 ]
2325 }, 2500 },
2326 "condTwo": { 2501 "condTwo": {
@@ -2331,7 +2506,8 @@ @@ -2331,7 +2506,8 @@
2331 "makeCompareKey": [ 2506 "makeCompareKey": [
2332 "sys_se", 2507 "sys_se",
2333 "accnut_ym", 2508 "accnut_ym",
2334 - "delng_de" 2509 + "delng_de",
  2510 + "delng_crncy"
2335 ] 2511 ]
2336 }, 2512 },
2337 "uniqueKey": [ 2513 "uniqueKey": [
@@ -2343,6 +2519,7 @@ @@ -2343,6 +2519,7 @@
2343 "amtField": "sum(delng_amt) as delng_amt", 2519 "amtField": "sum(delng_amt) as delng_amt",
2344 "compareField": [ 2520 "compareField": [
2345 "accnut_ym", 2521 "accnut_ym",
  2522 + "delng_crncy",
2346 "delng_amt" 2523 "delng_amt"
2347 ], 2524 ],
2348 "matchingType": "mtch_ty", 2525 "matchingType": "mtch_ty",
@@ -2352,7 +2529,7 @@ @@ -2352,7 +2529,7 @@
2352 { 2529 {
2353 "active": true, 2530 "active": true,
2354 "type": "K-BB", 2531 "type": "K-BB",
2355 - "typeName": "자기채무(적요),상대채권(거래일자),비교(년월,거래금액)", 2532 + "typeName": "자기채무(적요,거래통화),상대채권(겨래일자,거래통화),비교(년월,거래통화,거래금액)",
2356 2533
2357 "condOne": { 2534 "condOne": {
2358 "cond": [ 2535 "cond": [
@@ -2362,7 +2539,8 @@ @@ -2362,7 +2539,8 @@
2362 "makeCompareKey": [ 2539 "makeCompareKey": [
2363 "sys_se", 2540 "sys_se",
2364 "accnut_ym", 2541 "accnut_ym",
2365 - "substring(sumry, 1, 80)" 2542 + "substring(sumry, 1, 80)",
  2543 + "delng_crncy"
2366 ] 2544 ]
2367 }, 2545 },
2368 "condTwo": { 2546 "condTwo": {
@@ -2373,7 +2551,8 @@ @@ -2373,7 +2551,8 @@
2373 "makeCompareKey": [ 2551 "makeCompareKey": [
2374 "sys_se", 2552 "sys_se",
2375 "accnut_ym", 2553 "accnut_ym",
2376 - "delng_de" 2554 + "delng_de",
  2555 + "delng_crncy"
2377 ] 2556 ]
2378 }, 2557 },
2379 "uniqueKey": [ 2558 "uniqueKey": [
@@ -2385,6 +2564,7 @@ @@ -2385,6 +2564,7 @@
2385 "amtField": "sum(delng_amt) as delng_amt", 2564 "amtField": "sum(delng_amt) as delng_amt",
2386 "compareField": [ 2565 "compareField": [
2387 "accnut_ym", 2566 "accnut_ym",
  2567 + "delng_crncy",
2388 "delng_amt" 2568 "delng_amt"
2389 ], 2569 ],
2390 "matchingType": "mtch_ty", 2570 "matchingType": "mtch_ty",
@@ -2394,7 +2574,7 @@ @@ -2394,7 +2574,7 @@
2394 { 2574 {
2395 "active": true, 2575 "active": true,
2396 "type": "K-BC", 2576 "type": "K-BC",
2397 - "typeName": "자기채권(적요),개별상대채무,비교(년월,거래금액)", 2577 + "typeName": "자기채권(적요,거래통화),개별상대채무(거래통화),비교(년월,거래통화,거래금액)",
2398 2578
2399 "condOne": { 2579 "condOne": {
2400 "cond": [ 2580 "cond": [
@@ -2404,7 +2584,8 @@ @@ -2404,7 +2584,8 @@
2404 "makeCompareKey": [ 2584 "makeCompareKey": [
2405 "sys_se", 2585 "sys_se",
2406 "accnut_ym", 2586 "accnut_ym",
2407 - "substring(sumry, 1, 80)" 2587 + "substring(sumry, 1, 80)",
  2588 + "delng_crncy"
2408 ] 2589 ]
2409 }, 2590 },
2410 "condTwo": { 2591 "condTwo": {
@@ -2415,7 +2596,8 @@ @@ -2415,7 +2596,8 @@
2415 "makeCompareKey": [ 2596 "makeCompareKey": [
2416 "sys_se", 2597 "sys_se",
2417 "accnut_ym", 2598 "accnut_ym",
2418 - "cast(sn as text)" 2599 + "cast(sn as text)",
  2600 + "delng_crncy"
2419 ] 2601 ]
2420 }, 2602 },
2421 "uniqueKey": [ 2603 "uniqueKey": [
@@ -2427,6 +2609,7 @@ @@ -2427,6 +2609,7 @@
2427 "amtField": "sum(delng_amt) as delng_amt", 2609 "amtField": "sum(delng_amt) as delng_amt",
2428 "compareField": [ 2610 "compareField": [
2429 "accnut_ym", 2611 "accnut_ym",
  2612 + "delng_crncy",
2430 "delng_amt" 2613 "delng_amt"
2431 ], 2614 ],
2432 "matchingType": "mtch_ty", 2615 "matchingType": "mtch_ty",
@@ -2436,7 +2619,7 @@ @@ -2436,7 +2619,7 @@
2436 { 2619 {
2437 "active": true, 2620 "active": true,
2438 "type": "K-BD", 2621 "type": "K-BD",
2439 - "typeName": "자기채무(적요),개별상대채권,비교(년월,거래금액)", 2622 + "typeName": "자기채무(적요,거래통화),개별상대채권(거래통화),비교(년월,거래통화,거래금액)",
2440 2623
2441 "condOne": { 2624 "condOne": {
2442 "cond": [ 2625 "cond": [
@@ -2446,7 +2629,8 @@ @@ -2446,7 +2629,8 @@
2446 "makeCompareKey": [ 2629 "makeCompareKey": [
2447 "sys_se", 2630 "sys_se",
2448 "accnut_ym", 2631 "accnut_ym",
2449 - "substring(sumry, 1, 80)" 2632 + "substring(sumry, 1, 80)",
  2633 + "delng_crncy"
2450 ] 2634 ]
2451 }, 2635 },
2452 "condTwo": { 2636 "condTwo": {
@@ -2457,7 +2641,8 @@ @@ -2457,7 +2641,8 @@
2457 "makeCompareKey": [ 2641 "makeCompareKey": [
2458 "sys_se", 2642 "sys_se",
2459 "accnut_ym", 2643 "accnut_ym",
2460 - "cast(sn as text)" 2644 + "cast(sn as text)",
  2645 + "delng_crncy"
2461 ] 2646 ]
2462 }, 2647 },
2463 "uniqueKey": [ 2648 "uniqueKey": [
@@ -2469,6 +2654,7 @@ @@ -2469,6 +2654,7 @@
2469 "amtField": "sum(delng_amt) as delng_amt", 2654 "amtField": "sum(delng_amt) as delng_amt",
2470 "compareField": [ 2655 "compareField": [
2471 "accnut_ym", 2656 "accnut_ym",
  2657 + "delng_crncy",
2472 "delng_amt" 2658 "delng_amt"
2473 ], 2659 ],
2474 "matchingType": "mtch_ty", 2660 "matchingType": "mtch_ty",
@@ -2482,7 +2668,7 @@ @@ -2482,7 +2668,7 @@
2482 { 2668 {
2483 "active": true, 2669 "active": true,
2484 "type": "L-A", 2670 "type": "L-A",
2485 - "typeName": "자기수익(회계일자),상대비용(회계일자),비교(년월,거래금액)", 2671 + "typeName": "자기수익(회계일자,거래통화),상대비용(회계일자,거래통화),비교(년월,거래통화,거래금액)",
2486 2672
2487 "condOne": { 2673 "condOne": {
2488 "cond": [ 2674 "cond": [
@@ -2492,7 +2678,8 @@ @@ -2492,7 +2678,8 @@
2492 "elcty_de != ''" 2678 "elcty_de != ''"
2493 ], 2679 ],
2494 "makeCompareKey": [ 2680 "makeCompareKey": [
2495 - "elcty_de" 2681 + "elcty_de",
  2682 + "delng_crncy"
2496 ] 2683 ]
2497 }, 2684 },
2498 "condTwo": { 2685 "condTwo": {
@@ -2503,7 +2690,8 @@ @@ -2503,7 +2690,8 @@
2503 "elcty_de != ''" 2690 "elcty_de != ''"
2504 ], 2691 ],
2505 "makeCompareKey": [ 2692 "makeCompareKey": [
2506 - "elcty_de" 2693 + "elcty_de",
  2694 + "delng_crncy"
2507 ] 2695 ]
2508 }, 2696 },
2509 "uniqueKey": [ 2697 "uniqueKey": [
@@ -2515,6 +2703,7 @@ @@ -2515,6 +2703,7 @@
2515 "amtField": "sum(delng_amt) as delng_amt", 2703 "amtField": "sum(delng_amt) as delng_amt",
2516 "compareField": [ 2704 "compareField": [
2517 "accnut_ym", 2705 "accnut_ym",
  2706 + "delng_crncy",
2518 "delng_amt" 2707 "delng_amt"
2519 ], 2708 ],
2520 "matchingType": "mtch_ty", 2709 "matchingType": "mtch_ty",
@@ -2524,7 +2713,7 @@ @@ -2524,7 +2713,7 @@
2524 { 2713 {
2525 "active": true, 2714 "active": true,
2526 "type": "L-AA", 2715 "type": "L-AA",
2527 - "typeName": "자기수익(회계일자),개별상대비용,비교(년월,거래금액)", 2716 + "typeName": "자기수익(회계일자,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
2528 2717
2529 "condOne": { 2718 "condOne": {
2530 "cond": [ 2719 "cond": [
@@ -2534,7 +2723,8 @@ @@ -2534,7 +2723,8 @@
2534 "elcty_de != ''" 2723 "elcty_de != ''"
2535 ], 2724 ],
2536 "makeCompareKey": [ 2725 "makeCompareKey": [
2537 - "elcty_de" 2726 + "elcty_de",
  2727 + "delng_crncy"
2538 ] 2728 ]
2539 }, 2729 },
2540 "condTwo": { 2730 "condTwo": {
@@ -2545,7 +2735,8 @@ @@ -2545,7 +2735,8 @@
2545 "makeCompareKey": [ 2735 "makeCompareKey": [
2546 "sys_se", 2736 "sys_se",
2547 "accnut_ym", 2737 "accnut_ym",
2548 - "cast(sn as text)" 2738 + "cast(sn as text)",
  2739 + "delng_crncy"
2549 ] 2740 ]
2550 }, 2741 },
2551 "uniqueKey": [ 2742 "uniqueKey": [
@@ -2557,6 +2748,7 @@ @@ -2557,6 +2748,7 @@
2557 "amtField": "sum(delng_amt) as delng_amt", 2748 "amtField": "sum(delng_amt) as delng_amt",
2558 "compareField": [ 2749 "compareField": [
2559 "accnut_ym", 2750 "accnut_ym",
  2751 + "delng_crncy",
2560 "delng_amt" 2752 "delng_amt"
2561 ], 2753 ],
2562 "matchingType": "mtch_ty", 2754 "matchingType": "mtch_ty",
@@ -2566,7 +2758,7 @@ @@ -2566,7 +2758,7 @@
2566 { 2758 {
2567 "active": true, 2759 "active": true,
2568 "type": "L-AB", 2760 "type": "L-AB",
2569 - "typeName": "자기비용(회계일자),개별상대수익,비교(년월,거래금액)", 2761 + "typeName": "자기비용(회계일자,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
2570 2762
2571 "condOne": { 2763 "condOne": {
2572 "cond": [ 2764 "cond": [
@@ -2576,7 +2768,8 @@ @@ -2576,7 +2768,8 @@
2576 "elcty_de != ''" 2768 "elcty_de != ''"
2577 ], 2769 ],
2578 "makeCompareKey": [ 2770 "makeCompareKey": [
2579 - "elcty_de" 2771 + "elcty_de",
  2772 + "delng_crncy"
2580 ] 2773 ]
2581 }, 2774 },
2582 "condTwo": { 2775 "condTwo": {
@@ -2587,7 +2780,8 @@ @@ -2587,7 +2780,8 @@
2587 "makeCompareKey": [ 2780 "makeCompareKey": [
2588 "sys_se", 2781 "sys_se",
2589 "accnut_ym", 2782 "accnut_ym",
2590 - "cast(sn as text)" 2783 + "cast(sn as text)",
  2784 + "delng_crncy"
2591 ] 2785 ]
2592 }, 2786 },
2593 "uniqueKey": [ 2787 "uniqueKey": [
@@ -2599,6 +2793,7 @@ @@ -2599,6 +2793,7 @@
2599 "amtField": "sum(delng_amt) as delng_amt", 2793 "amtField": "sum(delng_amt) as delng_amt",
2600 "compareField": [ 2794 "compareField": [
2601 "accnut_ym", 2795 "accnut_ym",
  2796 + "delng_crncy",
2602 "delng_amt" 2797 "delng_amt"
2603 ], 2798 ],
2604 "matchingType": "mtch_ty", 2799 "matchingType": "mtch_ty",
@@ -2613,7 +2808,7 @@ @@ -2613,7 +2808,7 @@
2613 { 2808 {
2614 "active": true, 2809 "active": true,
2615 "type": "M-A", 2810 "type": "M-A",
2616 - "typeName": "자기수익(법인계정코드),상대비용(법인계정코드),비교(년월,거래금액)", 2811 + "typeName": "자기수익(법인계정코드,거래통화),상대비용(법인계정코드,거래통화),비교(년월,거래통화,거래금액)",
2617 2812
2618 "condOne": { 2813 "condOne": {
2619 "cond": [ 2814 "cond": [
@@ -2621,7 +2816,8 @@ @@ -2621,7 +2816,8 @@
2621 "mtch_ty is null" 2816 "mtch_ty is null"
2622 ], 2817 ],
2623 "makeCompareKey": [ 2818 "makeCompareKey": [
2624 - "cpr_acnt_code" 2819 + "cpr_acnt_code",
  2820 + "delng_crncy"
2625 ] 2821 ]
2626 }, 2822 },
2627 "condTwo": { 2823 "condTwo": {
@@ -2630,7 +2826,8 @@ @@ -2630,7 +2826,8 @@
2630 "mtch_ty is null" 2826 "mtch_ty is null"
2631 ], 2827 ],
2632 "makeCompareKey": [ 2828 "makeCompareKey": [
2633 - "cpr_acnt_code" 2829 + "cpr_acnt_code",
  2830 + "delng_crncy"
2634 ] 2831 ]
2635 }, 2832 },
2636 "uniqueKey": [ 2833 "uniqueKey": [
@@ -2642,6 +2839,7 @@ @@ -2642,6 +2839,7 @@
2642 "amtField": "sum(delng_amt) as delng_amt", 2839 "amtField": "sum(delng_amt) as delng_amt",
2643 "compareField": [ 2840 "compareField": [
2644 "accnut_ym", 2841 "accnut_ym",
  2842 + "delng_crncy",
2645 "delng_amt" 2843 "delng_amt"
2646 ], 2844 ],
2647 "matchingType": "mtch_ty", 2845 "matchingType": "mtch_ty",
@@ -2651,7 +2849,7 @@ @@ -2651,7 +2849,7 @@
2651 { 2849 {
2652 "active": true, 2850 "active": true,
2653 "type": "M-AA", 2851 "type": "M-AA",
2654 - "typeName": "자기수익(법인계정코드),개별상대비용,비교(년월,거래금액)", 2852 + "typeName": "자기수익(법인계정코드,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
2655 2853
2656 "condOne": { 2854 "condOne": {
2657 "cond": [ 2855 "cond": [
@@ -2659,7 +2857,8 @@ @@ -2659,7 +2857,8 @@
2659 "mtch_ty is null" 2857 "mtch_ty is null"
2660 ], 2858 ],
2661 "makeCompareKey": [ 2859 "makeCompareKey": [
2662 - "cpr_acnt_code" 2860 + "cpr_acnt_code",
  2861 + "delng_crncy"
2663 ] 2862 ]
2664 }, 2863 },
2665 "condTwo": { 2864 "condTwo": {
@@ -2670,7 +2869,8 @@ @@ -2670,7 +2869,8 @@
2670 "makeCompareKey": [ 2869 "makeCompareKey": [
2671 "sys_se", 2870 "sys_se",
2672 "accnut_ym", 2871 "accnut_ym",
2673 - "cast(sn as text)" 2872 + "cast(sn as text)",
  2873 + "delng_crncy"
2674 ] 2874 ]
2675 }, 2875 },
2676 "uniqueKey": [ 2876 "uniqueKey": [
@@ -2682,6 +2882,7 @@ @@ -2682,6 +2882,7 @@
2682 "amtField": "sum(delng_amt) as delng_amt", 2882 "amtField": "sum(delng_amt) as delng_amt",
2683 "compareField": [ 2883 "compareField": [
2684 "accnut_ym", 2884 "accnut_ym",
  2885 + "delng_crncy",
2685 "delng_amt" 2886 "delng_amt"
2686 ], 2887 ],
2687 "matchingType": "mtch_ty", 2888 "matchingType": "mtch_ty",
@@ -2691,7 +2892,7 @@ @@ -2691,7 +2892,7 @@
2691 { 2892 {
2692 "active": true, 2893 "active": true,
2693 "type": "M-AB", 2894 "type": "M-AB",
2694 - "typeName": "자기비용(법인계정코드),개별상대수익,비교(년월,거래금액)", 2895 + "typeName": "자기비용(법인계정코드,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
2695 2896
2696 "condOne": { 2897 "condOne": {
2697 "cond": [ 2898 "cond": [
@@ -2699,7 +2900,8 @@ @@ -2699,7 +2900,8 @@
2699 "mtch_ty is null" 2900 "mtch_ty is null"
2700 ], 2901 ],
2701 "makeCompareKey": [ 2902 "makeCompareKey": [
2702 - "cpr_acnt_code" 2903 + "cpr_acnt_code",
  2904 + "delng_crncy"
2703 ] 2905 ]
2704 }, 2906 },
2705 "condTwo": { 2907 "condTwo": {
@@ -2710,7 +2912,8 @@ @@ -2710,7 +2912,8 @@
2710 "makeCompareKey": [ 2912 "makeCompareKey": [
2711 "sys_se", 2913 "sys_se",
2712 "accnut_ym", 2914 "accnut_ym",
2713 - "cast(sn as text)" 2915 + "cast(sn as text)",
  2916 + "delng_crncy"
2714 ] 2917 ]
2715 }, 2918 },
2716 "uniqueKey": [ 2919 "uniqueKey": [
@@ -2722,6 +2925,7 @@ @@ -2722,6 +2925,7 @@
2722 "amtField": "sum(delng_amt) as delng_amt", 2925 "amtField": "sum(delng_amt) as delng_amt",
2723 "compareField": [ 2926 "compareField": [
2724 "accnut_ym", 2927 "accnut_ym",
  2928 + "delng_crncy",
2725 "delng_amt" 2929 "delng_amt"
2726 ], 2930 ],
2727 "matchingType": "mtch_ty", 2931 "matchingType": "mtch_ty",
@@ -2735,7 +2939,7 @@ @@ -2735,7 +2939,7 @@
2735 { 2939 {
2736 "active": true, 2940 "active": true,
2737 "type": "N-A", 2941 "type": "N-A",
2738 - "typeName": "자기수익(계정코드),상대비용(계정코드),비교(년월,거래금액)", 2942 + "typeName": "자기수익(계정코드,거래통화),상대비용(계정코드,거래통화),비교(년월,거래통화,거래금액)",
2739 2943
2740 "condOne": { 2944 "condOne": {
2741 "cond": [ 2945 "cond": [
@@ -2743,7 +2947,8 @@ @@ -2743,7 +2947,8 @@
2743 "mtch_ty is null" 2947 "mtch_ty is null"
2744 ], 2948 ],
2745 "makeCompareKey": [ 2949 "makeCompareKey": [
2746 - "cnnc_acnt_code" 2950 + "cnnc_acnt_code",
  2951 + "delng_crncy"
2747 ] 2952 ]
2748 }, 2953 },
2749 "condTwo": { 2954 "condTwo": {
@@ -2752,7 +2957,8 @@ @@ -2752,7 +2957,8 @@
2752 "mtch_ty is null" 2957 "mtch_ty is null"
2753 ], 2958 ],
2754 "makeCompareKey": [ 2959 "makeCompareKey": [
2755 - "cnnc_acnt_code" 2960 + "cnnc_acnt_code",
  2961 + "delng_crncy"
2756 ] 2962 ]
2757 }, 2963 },
2758 "uniqueKey": [ 2964 "uniqueKey": [
@@ -2764,6 +2970,7 @@ @@ -2764,6 +2970,7 @@
2764 "amtField": "sum(delng_amt) as delng_amt", 2970 "amtField": "sum(delng_amt) as delng_amt",
2765 "compareField": [ 2971 "compareField": [
2766 "accnut_ym", 2972 "accnut_ym",
  2973 + "delng_crncy",
2767 "delng_amt" 2974 "delng_amt"
2768 ], 2975 ],
2769 "matchingType": "mtch_ty", 2976 "matchingType": "mtch_ty",
@@ -2773,7 +2980,7 @@ @@ -2773,7 +2980,7 @@
2773 { 2980 {
2774 "active": true, 2981 "active": true,
2775 "type": "N-AA", 2982 "type": "N-AA",
2776 - "typeName": "자기수익(계정코드),개별상대비용,비교(년월,거래금액)", 2983 + "typeName": "자기수익(계정코드,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
2777 2984
2778 "condOne": { 2985 "condOne": {
2779 "cond": [ 2986 "cond": [
@@ -2781,7 +2988,8 @@ @@ -2781,7 +2988,8 @@
2781 "mtch_ty is null" 2988 "mtch_ty is null"
2782 ], 2989 ],
2783 "makeCompareKey": [ 2990 "makeCompareKey": [
2784 - "cnnc_acnt_code" 2991 + "cnnc_acnt_code",
  2992 + "delng_crncy"
2785 ] 2993 ]
2786 }, 2994 },
2787 "condTwo": { 2995 "condTwo": {
@@ -2792,7 +3000,8 @@ @@ -2792,7 +3000,8 @@
2792 "makeCompareKey": [ 3000 "makeCompareKey": [
2793 "sys_se", 3001 "sys_se",
2794 "accnut_ym", 3002 "accnut_ym",
2795 - "cast(sn as text)" 3003 + "cast(sn as text)",
  3004 + "delng_crncy"
2796 ] 3005 ]
2797 }, 3006 },
2798 "uniqueKey": [ 3007 "uniqueKey": [
@@ -2804,6 +3013,7 @@ @@ -2804,6 +3013,7 @@
2804 "amtField": "sum(delng_amt) as delng_amt", 3013 "amtField": "sum(delng_amt) as delng_amt",
2805 "compareField": [ 3014 "compareField": [
2806 "accnut_ym", 3015 "accnut_ym",
  3016 + "delng_crncy",
2807 "delng_amt" 3017 "delng_amt"
2808 ], 3018 ],
2809 "matchingType": "mtch_ty", 3019 "matchingType": "mtch_ty",
@@ -2813,7 +3023,7 @@ @@ -2813,7 +3023,7 @@
2813 { 3023 {
2814 "active": true, 3024 "active": true,
2815 "type": "N-AB", 3025 "type": "N-AB",
2816 - "typeName": "자기비용(계정코드),개별상대수익,비교(년월,비교키,거래금액)", 3026 + "typeName": "자기비용(계정코드,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
2817 3027
2818 "condOne": { 3028 "condOne": {
2819 "cond": [ 3029 "cond": [
@@ -2821,7 +3031,8 @@ @@ -2821,7 +3031,8 @@
2821 "mtch_ty is null" 3031 "mtch_ty is null"
2822 ], 3032 ],
2823 "makeCompareKey": [ 3033 "makeCompareKey": [
2824 - "cnnc_acnt_code" 3034 + "cnnc_acnt_code",
  3035 + "delng_crncy"
2825 ] 3036 ]
2826 }, 3037 },
2827 "condTwo": { 3038 "condTwo": {
@@ -2832,7 +3043,8 @@ @@ -2832,7 +3043,8 @@
2832 "makeCompareKey": [ 3043 "makeCompareKey": [
2833 "sys_se", 3044 "sys_se",
2834 "accnut_ym", 3045 "accnut_ym",
2835 - "cast(sn as text)" 3046 + "cast(sn as text)",
  3047 + "delng_crncy"
2836 ] 3048 ]
2837 }, 3049 },
2838 "uniqueKey": [ 3050 "uniqueKey": [
@@ -2853,7 +3065,7 @@ @@ -2853,7 +3065,7 @@
2853 { 3065 {
2854 "active": true, 3066 "active": true,
2855 "type": "N-AC", 3067 "type": "N-AC",
2856 - "typeName": "자기수익(계정코드),상대비용(법인계정코드),비교(년월,거래금액)", 3068 + "typeName": "자기수익(계정코드,거래통화),상대비용(법인계정코드,거래통화),비교(년월,거래통화,거래금액)",
2857 3069
2858 "condOne": { 3070 "condOne": {
2859 "cond": [ 3071 "cond": [
@@ -2861,7 +3073,8 @@ @@ -2861,7 +3073,8 @@
2861 "mtch_ty is null" 3073 "mtch_ty is null"
2862 ], 3074 ],
2863 "makeCompareKey": [ 3075 "makeCompareKey": [
2864 - "cnnc_acnt_code" 3076 + "cnnc_acnt_code",
  3077 + "delng_crncy"
2865 ] 3078 ]
2866 }, 3079 },
2867 "condTwo": { 3080 "condTwo": {
@@ -2870,7 +3083,8 @@ @@ -2870,7 +3083,8 @@
2870 "mtch_ty is null" 3083 "mtch_ty is null"
2871 ], 3084 ],
2872 "makeCompareKey": [ 3085 "makeCompareKey": [
2873 - "cpr_acnt_code" 3086 + "cpr_acnt_code",
  3087 + "delng_crncy"
2874 ] 3088 ]
2875 }, 3089 },
2876 "uniqueKey": [ 3090 "uniqueKey": [
@@ -2882,6 +3096,7 @@ @@ -2882,6 +3096,7 @@
2882 "amtField": "sum(delng_amt) as delng_amt", 3096 "amtField": "sum(delng_amt) as delng_amt",
2883 "compareField": [ 3097 "compareField": [
2884 "accnut_ym", 3098 "accnut_ym",
  3099 + "delng_crncy",
2885 "delng_amt" 3100 "delng_amt"
2886 ], 3101 ],
2887 "matchingType": "mtch_ty", 3102 "matchingType": "mtch_ty",
@@ -2891,7 +3106,7 @@ @@ -2891,7 +3106,7 @@
2891 { 3106 {
2892 "active": true, 3107 "active": true,
2893 "type": "N-AD", 3108 "type": "N-AD",
2894 - "typeName": "자기비용(계정코드),상대수익(법인계정코드),비교(년월,거래금액)", 3109 + "typeName": "자기비용(계정코드,거래통화),상대수익(법인계정코드,거래통화),비교(년월,거래통화,거래금액)",
2895 3110
2896 "condOne": { 3111 "condOne": {
2897 "cond": [ 3112 "cond": [
@@ -2899,7 +3114,8 @@ @@ -2899,7 +3114,8 @@
2899 "mtch_ty is null" 3114 "mtch_ty is null"
2900 ], 3115 ],
2901 "makeCompareKey": [ 3116 "makeCompareKey": [
2902 - "cnnc_acnt_code" 3117 + "cnnc_acnt_code",
  3118 + "delng_crncy"
2903 ] 3119 ]
2904 }, 3120 },
2905 "condTwo": { 3121 "condTwo": {
@@ -2908,7 +3124,8 @@ @@ -2908,7 +3124,8 @@
2908 "mtch_ty is null" 3124 "mtch_ty is null"
2909 ], 3125 ],
2910 "makeCompareKey": [ 3126 "makeCompareKey": [
2911 - "cpr_acnt_code" 3127 + "cpr_acnt_code",
  3128 + "delng_crncy"
2912 ] 3129 ]
2913 }, 3130 },
2914 "uniqueKey": [ 3131 "uniqueKey": [
@@ -2920,6 +3137,7 @@ @@ -2920,6 +3137,7 @@
2920 "amtField": "sum(delng_amt) as delng_amt", 3137 "amtField": "sum(delng_amt) as delng_amt",
2921 "compareField": [ 3138 "compareField": [
2922 "accnut_ym", 3139 "accnut_ym",
  3140 + "delng_crncy",
2923 "delng_amt" 3141 "delng_amt"
2924 ], 3142 ],
2925 "matchingType": "mtch_ty", 3143 "matchingType": "mtch_ty",
@@ -2933,7 +3151,7 @@ @@ -2933,7 +3151,7 @@
2933 { 3151 {
2934 "active": true, 3152 "active": true,
2935 "type": "O-A", 3153 "type": "O-A",
2936 - "typeName": "자기수익(INVOICE),상대비용(INVOICE),비교(년월,거래금액)", 3154 + "typeName": "자기수익(INVOICE,거래통화),상대비용(INVOICE,거래통화),비교(년월,거래통화,거래금액)",
2937 3155
2938 "condOne": { 3156 "condOne": {
2939 "cond": [ 3157 "cond": [
@@ -2943,7 +3161,8 @@ @@ -2943,7 +3161,8 @@
2943 "ext_key2 != ''" 3161 "ext_key2 != ''"
2944 ], 3162 ],
2945 "makeCompareKey": [ 3163 "makeCompareKey": [
2946 - "ext_key2" 3164 + "ext_key2",
  3165 + "delng_crncy"
2947 ] 3166 ]
2948 }, 3167 },
2949 "condTwo": { 3168 "condTwo": {
@@ -2954,7 +3173,8 @@ @@ -2954,7 +3173,8 @@
2954 "ext_key2 != ''" 3173 "ext_key2 != ''"
2955 ], 3174 ],
2956 "makeCompareKey": [ 3175 "makeCompareKey": [
2957 - "ext_key2" 3176 + "ext_key2",
  3177 + "delng_crncy"
2958 ] 3178 ]
2959 }, 3179 },
2960 "uniqueKey": [ 3180 "uniqueKey": [
@@ -2966,6 +3186,7 @@ @@ -2966,6 +3186,7 @@
2966 "amtField": "sum(delng_amt) as delng_amt", 3186 "amtField": "sum(delng_amt) as delng_amt",
2967 "compareField": [ 3187 "compareField": [
2968 "accnut_ym", 3188 "accnut_ym",
  3189 + "delng_crncy",
2969 "delng_amt" 3190 "delng_amt"
2970 ], 3191 ],
2971 "matchingType": "mtch_ty", 3192 "matchingType": "mtch_ty",
@@ -2975,7 +3196,7 @@ @@ -2975,7 +3196,7 @@
2975 { 3196 {
2976 "active": true, 3197 "active": true,
2977 "type": "O-AA", 3198 "type": "O-AA",
2978 - "typeName": "자기수익(INVOICE),개별상대비용,비교(년월,거래금액)", 3199 + "typeName": "자기수익(INVOICE,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
2979 3200
2980 "condOne": { 3201 "condOne": {
2981 "cond": [ 3202 "cond": [
@@ -2985,7 +3206,8 @@ @@ -2985,7 +3206,8 @@
2985 "ext_key2 != ''" 3206 "ext_key2 != ''"
2986 ], 3207 ],
2987 "makeCompareKey": [ 3208 "makeCompareKey": [
2988 - "ext_key2" 3209 + "ext_key2",
  3210 + "delng_crncy"
2989 ] 3211 ]
2990 }, 3212 },
2991 "condTwo": { 3213 "condTwo": {
@@ -2996,7 +3218,8 @@ @@ -2996,7 +3218,8 @@
2996 "makeCompareKey": [ 3218 "makeCompareKey": [
2997 "sys_se", 3219 "sys_se",
2998 "accnut_ym", 3220 "accnut_ym",
2999 - "cast(sn as text)" 3221 + "cast(sn as text)",
  3222 + "delng_crncy"
3000 ] 3223 ]
3001 }, 3224 },
3002 "uniqueKey": [ 3225 "uniqueKey": [
@@ -3008,6 +3231,7 @@ @@ -3008,6 +3231,7 @@
3008 "amtField": "sum(delng_amt) as delng_amt", 3231 "amtField": "sum(delng_amt) as delng_amt",
3009 "compareField": [ 3232 "compareField": [
3010 "accnut_ym", 3233 "accnut_ym",
  3234 + "delng_crncy",
3011 "delng_amt" 3235 "delng_amt"
3012 ], 3236 ],
3013 "matchingType": "mtch_ty", 3237 "matchingType": "mtch_ty",
@@ -3017,7 +3241,7 @@ @@ -3017,7 +3241,7 @@
3017 { 3241 {
3018 "active": true, 3242 "active": true,
3019 "type": "O-AB", 3243 "type": "O-AB",
3020 - "typeName": "자기비용(INVOICE),개별상대수익,비교(년월,거래금액)", 3244 + "typeName": "자기비용(INVOICE,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
3021 3245
3022 "condOne": { 3246 "condOne": {
3023 "cond": [ 3247 "cond": [
@@ -3027,7 +3251,8 @@ @@ -3027,7 +3251,8 @@
3027 "ext_key2 != ''" 3251 "ext_key2 != ''"
3028 ], 3252 ],
3029 "makeCompareKey": [ 3253 "makeCompareKey": [
3030 - "ext_key2" 3254 + "ext_key2",
  3255 + "delng_crncy"
3031 ] 3256 ]
3032 }, 3257 },
3033 "condTwo": { 3258 "condTwo": {
@@ -3038,7 +3263,8 @@ @@ -3038,7 +3263,8 @@
3038 "makeCompareKey": [ 3263 "makeCompareKey": [
3039 "sys_se", 3264 "sys_se",
3040 "accnut_ym", 3265 "accnut_ym",
3041 - "cast(sn as text)" 3266 + "cast(sn as text)",
  3267 + "delng_crncy"
3042 ] 3268 ]
3043 }, 3269 },
3044 "uniqueKey": [ 3270 "uniqueKey": [
@@ -3050,6 +3276,7 @@ @@ -3050,6 +3276,7 @@
3050 "amtField": "sum(delng_amt) as delng_amt", 3276 "amtField": "sum(delng_amt) as delng_amt",
3051 "compareField": [ 3277 "compareField": [
3052 "accnut_ym", 3278 "accnut_ym",
  3279 + "delng_crncy",
3053 "delng_amt" 3280 "delng_amt"
3054 ], 3281 ],
3055 "matchingType": "mtch_ty", 3282 "matchingType": "mtch_ty",
@@ -3062,7 +3289,7 @@ @@ -3062,7 +3289,7 @@
3062 { 3289 {
3063 "active": true, 3290 "active": true,
3064 "type": "P-A", 3291 "type": "P-A",
3065 - "typeName": "자기수익(BL),상대비용(BL),비교(년월,거래금액)", 3292 + "typeName": "자기수익(BL,거래통화),상대비용(BL,거래통화),비교(년월,거래통화,거래금액)",
3066 3293
3067 "condOne": { 3294 "condOne": {
3068 "cond": [ 3295 "cond": [
@@ -3072,7 +3299,8 @@ @@ -3072,7 +3299,8 @@
3072 "ext_key3 != ''" 3299 "ext_key3 != ''"
3073 ], 3300 ],
3074 "makeCompareKey": [ 3301 "makeCompareKey": [
3075 - "ext_key3" 3302 + "ext_key3",
  3303 + "delng_crncy"
3076 ] 3304 ]
3077 }, 3305 },
3078 "condTwo": { 3306 "condTwo": {
@@ -3083,7 +3311,8 @@ @@ -3083,7 +3311,8 @@
3083 "ext_key3 != ''" 3311 "ext_key3 != ''"
3084 ], 3312 ],
3085 "makeCompareKey": [ 3313 "makeCompareKey": [
3086 - "ext_key3" 3314 + "ext_key3",
  3315 + "delng_crncy"
3087 ] 3316 ]
3088 }, 3317 },
3089 "uniqueKey": [ 3318 "uniqueKey": [
@@ -3095,6 +3324,7 @@ @@ -3095,6 +3324,7 @@
3095 "amtField": "sum(delng_amt) as delng_amt", 3324 "amtField": "sum(delng_amt) as delng_amt",
3096 "compareField": [ 3325 "compareField": [
3097 "accnut_ym", 3326 "accnut_ym",
  3327 + "delng_crncy",
3098 "delng_amt" 3328 "delng_amt"
3099 ], 3329 ],
3100 "matchingType": "mtch_ty", 3330 "matchingType": "mtch_ty",
@@ -3104,7 +3334,7 @@ @@ -3104,7 +3334,7 @@
3104 { 3334 {
3105 "active": true, 3335 "active": true,
3106 "type": "P-AA", 3336 "type": "P-AA",
3107 - "typeName": "자기수익(BL),개별상대비용,비교(년월,거래금액)", 3337 + "typeName": "자기수익(BL,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
3108 3338
3109 "condOne": { 3339 "condOne": {
3110 "cond": [ 3340 "cond": [
@@ -3114,7 +3344,8 @@ @@ -3114,7 +3344,8 @@
3114 "ext_key3 != ''" 3344 "ext_key3 != ''"
3115 ], 3345 ],
3116 "makeCompareKey": [ 3346 "makeCompareKey": [
3117 - "ext_key3" 3347 + "ext_key3",
  3348 + "delng_crncy"
3118 ] 3349 ]
3119 }, 3350 },
3120 "condTwo": { 3351 "condTwo": {
@@ -3125,7 +3356,8 @@ @@ -3125,7 +3356,8 @@
3125 "makeCompareKey": [ 3356 "makeCompareKey": [
3126 "sys_se", 3357 "sys_se",
3127 "accnut_ym", 3358 "accnut_ym",
3128 - "cast(sn as text)" 3359 + "cast(sn as text)",
  3360 + "delng_crncy"
3129 ] 3361 ]
3130 }, 3362 },
3131 "uniqueKey": [ 3363 "uniqueKey": [
@@ -3137,6 +3369,7 @@ @@ -3137,6 +3369,7 @@
3137 "amtField": "sum(delng_amt) as delng_amt", 3369 "amtField": "sum(delng_amt) as delng_amt",
3138 "compareField": [ 3370 "compareField": [
3139 "accnut_ym", 3371 "accnut_ym",
  3372 + "delng_crncy",
3140 "delng_amt" 3373 "delng_amt"
3141 ], 3374 ],
3142 "matchingType": "mtch_ty", 3375 "matchingType": "mtch_ty",
@@ -3146,7 +3379,7 @@ @@ -3146,7 +3379,7 @@
3146 { 3379 {
3147 "active": true, 3380 "active": true,
3148 "type": "P-AB", 3381 "type": "P-AB",
3149 - "typeName": "자기비용(BL),개별상대수익,비교(년월,거래금액)", 3382 + "typeName": "자기비용(BL,거래통화),개별상대수익(거래통화),비교(년월,거래통화,거래금액)",
3150 3383
3151 "condOne": { 3384 "condOne": {
3152 "cond": [ 3385 "cond": [
@@ -3156,7 +3389,8 @@ @@ -3156,7 +3389,8 @@
3156 "ext_key3 != ''" 3389 "ext_key3 != ''"
3157 ], 3390 ],
3158 "makeCompareKey": [ 3391 "makeCompareKey": [
3159 - "ext_key3" 3392 + "ext_key3",
  3393 + "delng_crncy"
3160 ] 3394 ]
3161 }, 3395 },
3162 "condTwo": { 3396 "condTwo": {
@@ -3167,7 +3401,8 @@ @@ -3167,7 +3401,8 @@
3167 "makeCompareKey": [ 3401 "makeCompareKey": [
3168 "sys_se", 3402 "sys_se",
3169 "accnut_ym", 3403 "accnut_ym",
3170 - "cast(sn as text)" 3404 + "cast(sn as text)",
  3405 + "delng_crncy"
3171 ] 3406 ]
3172 }, 3407 },
3173 "uniqueKey": [ 3408 "uniqueKey": [
@@ -3179,6 +3414,7 @@ @@ -3179,6 +3414,7 @@
3179 "amtField": "sum(delng_amt) as delng_amt", 3414 "amtField": "sum(delng_amt) as delng_amt",
3180 "compareField": [ 3415 "compareField": [
3181 "accnut_ym", 3416 "accnut_ym",
  3417 + "delng_crncy",
3182 "delng_amt" 3418 "delng_amt"
3183 ], 3419 ],
3184 "matchingType": "mtch_ty", 3420 "matchingType": "mtch_ty",
@@ -3191,7 +3427,7 @@ @@ -3191,7 +3427,7 @@
3191 { 3427 {
3192 "active": true, 3428 "active": true,
3193 "type": "Q-A", 3429 "type": "Q-A",
3194 - "typeName": "자기수익(LC),상대비용(LC),비교(년월,거래금액)", 3430 + "typeName": "자기수익(LC,거래통화),상대비용(LC,거래통화),비교(년월,거래통화,거래금액)",
3195 3431
3196 "condOne": { 3432 "condOne": {
3197 "cond": [ 3433 "cond": [
@@ -3201,7 +3437,8 @@ @@ -3201,7 +3437,8 @@
3201 "ext_key4 != ''" 3437 "ext_key4 != ''"
3202 ], 3438 ],
3203 "makeCompareKey": [ 3439 "makeCompareKey": [
3204 - "ext_key4" 3440 + "ext_key4",
  3441 + "delng_crncy"
3205 ] 3442 ]
3206 }, 3443 },
3207 "condTwo": { 3444 "condTwo": {
@@ -3212,7 +3449,8 @@ @@ -3212,7 +3449,8 @@
3212 "ext_key4 != ''" 3449 "ext_key4 != ''"
3213 ], 3450 ],
3214 "makeCompareKey": [ 3451 "makeCompareKey": [
3215 - "ext_key4" 3452 + "ext_key4",
  3453 + "delng_crncy"
3216 ] 3454 ]
3217 }, 3455 },
3218 "uniqueKey": [ 3456 "uniqueKey": [
@@ -3224,6 +3462,7 @@ @@ -3224,6 +3462,7 @@
3224 "amtField": "sum(delng_amt) as delng_amt", 3462 "amtField": "sum(delng_amt) as delng_amt",
3225 "compareField": [ 3463 "compareField": [
3226 "accnut_ym", 3464 "accnut_ym",
  3465 + "delng_crncy",
3227 "delng_amt" 3466 "delng_amt"
3228 ], 3467 ],
3229 "matchingType": "mtch_ty", 3468 "matchingType": "mtch_ty",
@@ -3233,7 +3472,7 @@ @@ -3233,7 +3472,7 @@
3233 { 3472 {
3234 "active": true, 3473 "active": true,
3235 "type": "Q-AA", 3474 "type": "Q-AA",
3236 - "typeName": "자기수익(LC),개별상대비용,비교(년월,거래금액)", 3475 + "typeName": "자기수익(LC,거래통화),개별상대비용(거래통화),비교(년월,거래통화,거래금액)",
3237 3476
3238 "condOne": { 3477 "condOne": {
3239 "cond": [ 3478 "cond": [
@@ -3243,7 +3482,8 @@ @@ -3243,7 +3482,8 @@
3243 "ext_key4 != ''" 3482 "ext_key4 != ''"
3244 ], 3483 ],
3245 "makeCompareKey": [ 3484 "makeCompareKey": [
3246 - "ext_key4" 3485 + "ext_key4",
  3486 + "delng_crncy"
3247 ] 3487 ]
3248 }, 3488 },
3249 "condTwo": { 3489 "condTwo": {
@@ -3254,7 +3494,8 @@ @@ -3254,7 +3494,8 @@
3254 "makeCompareKey": [ 3494 "makeCompareKey": [
3255 "sys_se", 3495 "sys_se",
3256 "accnut_ym", 3496 "accnut_ym",
3257 - "cast(sn as text)" 3497 + "cast(sn as text)",
  3498 + "delng_crncy"
3258 ] 3499 ]
3259 }, 3500 },
3260 "uniqueKey": [ 3501 "uniqueKey": [
@@ -3266,6 +3507,7 @@ @@ -3266,6 +3507,7 @@
3266 "amtField": "sum(delng_amt) as delng_amt", 3507 "amtField": "sum(delng_amt) as delng_amt",
3267 "compareField": [ 3508 "compareField": [
3268 "accnut_ym", 3509 "accnut_ym",
  3510 + "delng_crncy",
3269 "delng_amt" 3511 "delng_amt"
3270 ], 3512 ],
3271 "matchingType": "mtch_ty", 3513 "matchingType": "mtch_ty",
@@ -3275,7 +3517,7 @@ @@ -3275,7 +3517,7 @@
3275 { 3517 {
3276 "active": true, 3518 "active": true,
3277 "type": "Q-AB", 3519 "type": "Q-AB",
3278 - "typeName": "자기비용(LC),개별상대수익,비교(년월,거래금액)", 3520 + "typeName": "자기비용(LC,거래통화),개별상대수익(거래통화),비교(년월,거래통하,거래금액)",
3279 3521
3280 "condOne": { 3522 "condOne": {
3281 "cond": [ 3523 "cond": [
@@ -3285,7 +3527,8 @@ @@ -3285,7 +3527,8 @@
3285 "ext_key4 != ''" 3527 "ext_key4 != ''"
3286 ], 3528 ],
3287 "makeCompareKey": [ 3529 "makeCompareKey": [
3288 - "ext_key4" 3530 + "ext_key4",
  3531 + "delng_crncy"
3289 ] 3532 ]
3290 }, 3533 },
3291 "condTwo": { 3534 "condTwo": {
@@ -3296,7 +3539,8 @@ @@ -3296,7 +3539,8 @@
3296 "makeCompareKey": [ 3539 "makeCompareKey": [
3297 "sys_se", 3540 "sys_se",
3298 "accnut_ym", 3541 "accnut_ym",
3299 - "cast(sn as text)" 3542 + "cast(sn as text)",
  3543 + "delng_crncy"
3300 ] 3544 ]
3301 }, 3545 },
3302 "uniqueKey": [ 3546 "uniqueKey": [
@@ -3308,6 +3552,7 @@ @@ -3308,6 +3552,7 @@
3308 "amtField": "sum(delng_amt) as delng_amt", 3552 "amtField": "sum(delng_amt) as delng_amt",
3309 "compareField": [ 3553 "compareField": [
3310 "accnut_ym", 3554 "accnut_ym",
  3555 + "delng_crncy",
3311 "delng_amt" 3556 "delng_amt"
3312 ], 3557 ],
3313 "matchingType": "mtch_ty", 3558 "matchingType": "mtch_ty",
@@ -3322,7 +3567,7 @@ @@ -3322,7 +3567,7 @@
3322 { 3567 {
3323 "active": true, 3568 "active": true,
3324 "type": "Z-AA", 3569 "type": "Z-AA",
3325 - "typeName": "[재실행]자기수익(거래일자),상대비용(거래일자),비교(년월,거래금액)", 3570 + "typeName": "[재실행]자기수익(거래일자,거래통화),상대비용(거래일자,거래통화),비교(년월,거래통화,거래금액)",
3326 3571
3327 "condOne": { 3572 "condOne": {
3328 "cond": [ 3573 "cond": [
@@ -3332,7 +3577,8 @@ @@ -3332,7 +3577,8 @@
3332 "makeCompareKey": [ 3577 "makeCompareKey": [
3333 "sys_se", 3578 "sys_se",
3334 "accnut_ym", 3579 "accnut_ym",
3335 - "delng_de" 3580 + "delng_de",
  3581 + "delng_crncy"
3336 ] 3582 ]
3337 }, 3583 },
3338 "condTwo": { 3584 "condTwo": {
@@ -3343,7 +3589,8 @@ @@ -3343,7 +3589,8 @@
3343 "makeCompareKey": [ 3589 "makeCompareKey": [
3344 "sys_se", 3590 "sys_se",
3345 "accnut_ym", 3591 "accnut_ym",
3346 - "delng_de" 3592 + "delng_de",
  3593 + "delng_crncy"
3347 ] 3594 ]
3348 }, 3595 },
3349 "uniqueKey": [ 3596 "uniqueKey": [
@@ -3355,6 +3602,7 @@ @@ -3355,6 +3602,7 @@
3355 "amtField": "sum(delng_amt) as delng_amt", 3602 "amtField": "sum(delng_amt) as delng_amt",
3356 "compareField": [ 3603 "compareField": [
3357 "accnut_ym", 3604 "accnut_ym",
  3605 + "delng_crncy",
3358 "delng_amt" 3606 "delng_amt"
3359 ], 3607 ],
3360 "matchingType": "mtch_ty", 3608 "matchingType": "mtch_ty",
@@ -3364,7 +3612,7 @@ @@ -3364,7 +3612,7 @@
3364 { 3612 {
3365 "active": true, 3613 "active": true,
3366 "type": "Z-AB", 3614 "type": "Z-AB",
3367 - "typeName": "[재실행]자기수익(거래월),상대비용(거래월),비교(년월,거래금액)", 3615 + "typeName": "[재실행]자기수익(거래월,거래통화),상대비용(거래월,거래통화),비교(년월,거래통화,거래금액)",
3368 3616
3369 "condOne": { 3617 "condOne": {
3370 "cond": [ 3618 "cond": [
@@ -3374,7 +3622,8 @@ @@ -3374,7 +3622,8 @@
3374 "makeCompareKey": [ 3622 "makeCompareKey": [
3375 "sys_se", 3623 "sys_se",
3376 "accnut_ym", 3624 "accnut_ym",
3377 - "substring(delng_de,1,6)" 3625 + "substring(delng_de,1,6)",
  3626 + "delng_crncy"
3378 ] 3627 ]
3379 }, 3628 },
3380 "condTwo": { 3629 "condTwo": {
@@ -3385,7 +3634,8 @@ @@ -3385,7 +3634,8 @@
3385 "makeCompareKey": [ 3634 "makeCompareKey": [
3386 "sys_se", 3635 "sys_se",
3387 "accnut_ym", 3636 "accnut_ym",
3388 - "substring(delng_de,1,6)" 3637 + "substring(delng_de,1,6)",
  3638 + "delng_crncy"
3389 ] 3639 ]
3390 }, 3640 },
3391 "uniqueKey": [ 3641 "uniqueKey": [
@@ -3397,6 +3647,7 @@ @@ -3397,6 +3647,7 @@
3397 "amtField": "sum(delng_amt) as delng_amt", 3647 "amtField": "sum(delng_amt) as delng_amt",
3398 "compareField": [ 3648 "compareField": [
3399 "accnut_ym", 3649 "accnut_ym",
  3650 + "delng_crncy",
3400 "delng_amt" 3651 "delng_amt"
3401 ], 3652 ],
3402 "matchingType": "mtch_ty", 3653 "matchingType": "mtch_ty",
@@ -3406,7 +3657,7 @@ @@ -3406,7 +3657,7 @@
3406 { 3657 {
3407 "active": true, 3658 "active": true,
3408 "type": "Z-AC", 3659 "type": "Z-AC",
3409 - "typeName": "[재실행]자기수익(전체),상대비용(전체),비교(년월,거래금액)", 3660 + "typeName": "[재실행]자기수익(전체,거래통화),상대비용(전체,거래통화),비교(년월,거래통화,거래금액)",
3410 3661
3411 "condOne": { 3662 "condOne": {
3412 "cond": [ 3663 "cond": [
@@ -3415,7 +3666,8 @@ @@ -3415,7 +3666,8 @@
3415 ], 3666 ],
3416 "makeCompareKey": [ 3667 "makeCompareKey": [
3417 "sys_se", 3668 "sys_se",
3418 - "accnut_ym" 3669 + "accnut_ym",
  3670 + "delng_crncy"
3419 ] 3671 ]
3420 }, 3672 },
3421 "condTwo": { 3673 "condTwo": {
@@ -3425,7 +3677,8 @@ @@ -3425,7 +3677,8 @@
3425 ], 3677 ],
3426 "makeCompareKey": [ 3678 "makeCompareKey": [
3427 "sys_se", 3679 "sys_se",
3428 - "accnut_ym" 3680 + "accnut_ym",
  3681 + "delng_crncy"
3429 ] 3682 ]
3430 }, 3683 },
3431 "uniqueKey": [ 3684 "uniqueKey": [
@@ -3437,6 +3690,7 @@ @@ -3437,6 +3690,7 @@
3437 "amtField": "sum(delng_amt) as delng_amt", 3690 "amtField": "sum(delng_amt) as delng_amt",
3438 "compareField": [ 3691 "compareField": [
3439 "accnut_ym", 3692 "accnut_ym",
  3693 + "delng_crncy",
3440 "delng_amt" 3694 "delng_amt"
3441 ], 3695 ],
3442 "matchingType": "mtch_ty", 3696 "matchingType": "mtch_ty",
@@ -3446,7 +3700,7 @@ @@ -3446,7 +3700,7 @@
3446 { 3700 {
3447 "active": true, 3701 "active": true,
3448 "type": "Z-BA", 3702 "type": "Z-BA",
3449 - "typeName": "[재실행]자기채권(거래일자),상대채무(거래일자),비교(년월,거래금액)", 3703 + "typeName": "[재실행]자기채권(거래일자,거래통화),상대채무(거래일자,거래통화),비교(년월,거래통화,거래금액)",
3450 3704
3451 "condOne": { 3705 "condOne": {
3452 "cond": [ 3706 "cond": [
@@ -3456,7 +3710,8 @@ @@ -3456,7 +3710,8 @@
3456 "makeCompareKey": [ 3710 "makeCompareKey": [
3457 "sys_se", 3711 "sys_se",
3458 "accnut_ym", 3712 "accnut_ym",
3459 - "delng_de" 3713 + "delng_de",
  3714 + "delng_crncy"
3460 ] 3715 ]
3461 }, 3716 },
3462 "condTwo": { 3717 "condTwo": {
@@ -3467,7 +3722,8 @@ @@ -3467,7 +3722,8 @@
3467 "makeCompareKey": [ 3722 "makeCompareKey": [
3468 "sys_se", 3723 "sys_se",
3469 "accnut_ym", 3724 "accnut_ym",
3470 - "delng_de" 3725 + "delng_de",
  3726 + "delng_crncy"
3471 ] 3727 ]
3472 }, 3728 },
3473 "uniqueKey": [ 3729 "uniqueKey": [
@@ -3479,6 +3735,7 @@ @@ -3479,6 +3735,7 @@
3479 "amtField": "sum(delng_amt) as delng_amt", 3735 "amtField": "sum(delng_amt) as delng_amt",
3480 "compareField": [ 3736 "compareField": [
3481 "accnut_ym", 3737 "accnut_ym",
  3738 + "delng_crncy",
3482 "delng_amt" 3739 "delng_amt"
3483 ], 3740 ],
3484 "matchingType": "mtch_ty", 3741 "matchingType": "mtch_ty",
@@ -3488,7 +3745,7 @@ @@ -3488,7 +3745,7 @@
3488 { 3745 {
3489 "active": true, 3746 "active": true,
3490 "type": "Z-BB", 3747 "type": "Z-BB",
3491 - "typeName": "[재실행]자기채권(거래월),상대채무(거래월),비교(년월,거래금액)", 3748 + "typeName": "[재실행]자기채권(거래월,거래통화),상대채무(거래월,거래통화),비교(년월,거래통화,거래금액)",
3492 3749
3493 "condOne": { 3750 "condOne": {
3494 "cond": [ 3751 "cond": [
@@ -3498,7 +3755,8 @@ @@ -3498,7 +3755,8 @@
3498 "makeCompareKey": [ 3755 "makeCompareKey": [
3499 "sys_se", 3756 "sys_se",
3500 "accnut_ym", 3757 "accnut_ym",
3501 - "substring(delng_de,1,6)" 3758 + "substring(delng_de,1,6)",
  3759 + "delng_crncy"
3502 ] 3760 ]
3503 }, 3761 },
3504 "condTwo": { 3762 "condTwo": {
@@ -3509,7 +3767,8 @@ @@ -3509,7 +3767,8 @@
3509 "makeCompareKey": [ 3767 "makeCompareKey": [
3510 "sys_se", 3768 "sys_se",
3511 "accnut_ym", 3769 "accnut_ym",
3512 - "substring(delng_de,1,6)" 3770 + "substring(delng_de,1,6)",
  3771 + "delng_crncy"
3513 ] 3772 ]
3514 }, 3773 },
3515 "uniqueKey": [ 3774 "uniqueKey": [
@@ -3521,6 +3780,7 @@ @@ -3521,6 +3780,7 @@
3521 "amtField": "sum(delng_amt) as delng_amt", 3780 "amtField": "sum(delng_amt) as delng_amt",
3522 "compareField": [ 3781 "compareField": [
3523 "accnut_ym", 3782 "accnut_ym",
  3783 + "delng_crncy",
3524 "delng_amt" 3784 "delng_amt"
3525 ], 3785 ],
3526 "matchingType": "mtch_ty", 3786 "matchingType": "mtch_ty",
@@ -3530,7 +3790,7 @@ @@ -3530,7 +3790,7 @@
3530 { 3790 {
3531 "active": true, 3791 "active": true,
3532 "type": "Z-BC", 3792 "type": "Z-BC",
3533 - "typeName": "[재실행]자기채권(전체),상대채무(전체),비교(년월,거래금액)", 3793 + "typeName": "[재실행]자기채권(전체,거래통화),상대채무(전체,거래통화),비교(년월,거래통화,거래금액)",
3534 3794
3535 "condOne": { 3795 "condOne": {
3536 "cond": [ 3796 "cond": [
@@ -3539,7 +3799,8 @@ @@ -3539,7 +3799,8 @@
3539 ], 3799 ],
3540 "makeCompareKey": [ 3800 "makeCompareKey": [
3541 "sys_se", 3801 "sys_se",
3542 - "accnut_ym" 3802 + "accnut_ym",
  3803 + "delng_crncy"
3543 ] 3804 ]
3544 }, 3805 },
3545 "condTwo": { 3806 "condTwo": {
@@ -3549,7 +3810,8 @@ @@ -3549,7 +3810,8 @@
3549 ], 3810 ],
3550 "makeCompareKey": [ 3811 "makeCompareKey": [
3551 "sys_se", 3812 "sys_se",
3552 - "accnut_ym" 3813 + "accnut_ym",
  3814 + "delng_crncy"
3553 ] 3815 ]
3554 }, 3816 },
3555 "uniqueKey": [ 3817 "uniqueKey": [
@@ -3561,6 +3823,7 @@ @@ -3561,6 +3823,7 @@
3561 "amtField": "sum(delng_amt) as delng_amt", 3823 "amtField": "sum(delng_amt) as delng_amt",
3562 "compareField": [ 3824 "compareField": [
3563 "accnut_ym", 3825 "accnut_ym",
  3826 + "delng_crncy",
3564 "delng_amt" 3827 "delng_amt"
3565 ], 3828 ],
3566 "matchingType": "mtch_ty", 3829 "matchingType": "mtch_ty",
src/main/resources/mybatis/primaryMapper/MatchingInnerDelingMapper.xml
@@ -9,7 +9,6 @@ @@ -9,7 +9,6 @@
9 , accnut_ym 9 , accnut_ym
10 , cpr_code 10 , cpr_code
11 , partn_cpr 11 , partn_cpr
12 - , delng_crncy  
13 FROM 12 FROM
14 ( 13 (
15 SELECT 14 SELECT
@@ -17,7 +16,6 @@ @@ -17,7 +16,6 @@
17 , accnut_ym 16 , accnut_ym
18 , cpr_code 17 , cpr_code
19 , partn_cpr 18 , partn_cpr
20 - , delng_crncy  
21 , case when count(*) > 0 then 1 else 0 end as cnt 19 , case when count(*) > 0 then 1 else 0 end as cnt
22 FROM 20 FROM
23 public.batch_tbcr_inner_delng 21 public.batch_tbcr_inner_delng
@@ -26,20 +24,17 @@ @@ -26,20 +24,17 @@
26 and accnut_ym = #{accnutYm} 24 and accnut_ym = #{accnutYm}
27 and mtch_ty is null 25 and mtch_ty is null
28 and dta_ty in ('11','21','31','33','35','37','41') 26 and dta_ty in ('11','21','31','33','35','37','41')
29 - and delng_amt != 0  
30 GROUP BY 27 GROUP BY
31 sys_se 28 sys_se
32 , accnut_ym 29 , accnut_ym
33 , cpr_code 30 , cpr_code
34 , partn_cpr 31 , partn_cpr
35 - , delng_crncy  
36 union all 32 union all
37 SELECT 33 SELECT
38 sys_se 34 sys_se
39 , accnut_ym 35 , accnut_ym
40 , partn_cpr as cpr_code 36 , partn_cpr as cpr_code
41 , cpr_code as partn_cpr 37 , cpr_code as partn_cpr
42 - , delng_crncy  
43 , case when count(*) > 0 then 1 else 0 end as cnt 38 , case when count(*) > 0 then 1 else 0 end as cnt
44 FROM 39 FROM
45 public.batch_tbcr_inner_delng 40 public.batch_tbcr_inner_delng
@@ -48,20 +43,17 @@ @@ -48,20 +43,17 @@
48 and accnut_ym = #{accnutYm} 43 and accnut_ym = #{accnutYm}
49 and mtch_ty is null 44 and mtch_ty is null
50 and dta_ty in ('12','22','32','34','36','38','42') 45 and dta_ty in ('12','22','32','34','36','38','42')
51 - and delng_amt != 0  
52 GROUP BY 46 GROUP BY
53 sys_se 47 sys_se
54 , accnut_ym 48 , accnut_ym
55 , cpr_code 49 , cpr_code
56 , partn_cpr 50 , partn_cpr
57 - , delng_crncy  
58 ) m 51 ) m
59 GROUP BY 52 GROUP BY
60 sys_se 53 sys_se
61 , accnut_ym 54 , accnut_ym
62 , cpr_code 55 , cpr_code
63 , partn_cpr 56 , partn_cpr
64 - , delng_crncy  
65 HAVING sum(cnt) > 1 57 HAVING sum(cnt) > 1
66 </select> 58 </select>
67 59
@@ -75,7 +67,6 @@ @@ -75,7 +67,6 @@
75 and accnut_ym = #{accnutYm} 67 and accnut_ym = #{accnutYm}
76 and cpr_code = #{cprCode} 68 and cpr_code = #{cprCode}
77 and partn_cpr = #{partnCpr} 69 and partn_cpr = #{partnCpr}
78 - and delng_crncy = #{delngCrncy}  
79 <foreach collection="cond" item="item" open="" close="" separator=""> 70 <foreach collection="cond" item="item" open="" close="" separator="">
80 and ${item} 71 and ${item}
81 </foreach> 72 </foreach>
@@ -95,7 +86,6 @@ @@ -95,7 +86,6 @@
95 and compare_ky is not null 86 and compare_ky is not null
96 and cpr_code = #{cprCode} 87 and cpr_code = #{cprCode}
97 and partn_cpr = #{partnCpr} 88 and partn_cpr = #{partnCpr}
98 - and delng_crncy = #{delngCrncy}  
99 <foreach collection="cond" item="item" open="" close="" separator=""> 89 <foreach collection="cond" item="item" open="" close="" separator="">
100 and ${item} 90 and ${item}
101 </foreach> 91 </foreach>
@@ -119,7 +109,6 @@ @@ -119,7 +109,6 @@
119 and compare_ky is not null 109 and compare_ky is not null
120 and cpr_code = #{cprCode} 110 and cpr_code = #{cprCode}
121 and partn_cpr = #{partnCpr} 111 and partn_cpr = #{partnCpr}
122 - and delng_crncy = #{delngCrncy}  
123 <foreach collection="cond" item="item" open="" close="" separator=""> 112 <foreach collection="cond" item="item" open="" close="" separator="">
124 and ${item} 113 and ${item}
125 </foreach> 114 </foreach>
@@ -324,8 +313,6 @@ @@ -324,8 +313,6 @@
324 WHERE 313 WHERE
325 cons_group = #{sysSe} 314 cons_group = #{sysSe}
326 and account_period = #{accnutYm} 315 and account_period = #{accnutYm}
327 - and adjust_type is null  
328 - and coalesce(equal_check, 'N') != 'Y'  
329 </update> 316 </update>
330 317
331 <update id="deleteDataAi" parameterType="map"> 318 <update id="deleteDataAi" parameterType="map">
@@ -373,8 +360,6 @@ @@ -373,8 +360,6 @@
373 WHERE 360 WHERE
374 cons_group = #{sysSe} 361 cons_group = #{sysSe}
375 and account_period = #{accnutYm} 362 and account_period = #{accnutYm}
376 - and adjust_type is null  
377 - and coalesce(equal_check, 'N') != 'Y'  
378 </update> 363 </update>
379 364
380 <update id="updateClearNewMatchKey" parameterType="map"> 365 <update id="updateClearNewMatchKey" parameterType="map">
@@ -426,7 +411,6 @@ @@ -426,7 +411,6 @@
426 , sn 411 , sn
427 , '' as compare_ky 412 , '' as compare_ky
428 , delng_de 413 , delng_de
429 - , delng_crncy  
430 , delng_amt 414 , delng_amt
431 FROM 415 FROM
432 public.batch_tbcr_inner_delng 416 public.batch_tbcr_inner_delng
@@ -435,7 +419,6 @@ @@ -435,7 +419,6 @@
435 and accnut_ym = #{accnutYm} 419 and accnut_ym = #{accnutYm}
436 and cpr_code = #{cprCode} 420 and cpr_code = #{cprCode}
437 and partn_cpr = #{partnCpr} 421 and partn_cpr = #{partnCpr}
438 - and delng_crncy = #{delngCrncy}  
439 and mtch_ky is null 422 and mtch_ky is null
440 <if test='conds eq "T".toString()'> 423 <if test='conds eq "T".toString()'>
441 and dta_ty in ('11','21','41') 424 and dta_ty in ('11','21','41')
@@ -445,7 +428,7 @@ @@ -445,7 +428,7 @@
445 </if> 428 </if>
446 and delng_amt != 0 429 and delng_amt != 0
447 ORDER BY 430 ORDER BY
448 - delng_de, sn 431 + delng_de
449 </select> 432 </select>
450 433
451 <!-- 매칭작업할 데이타 가져오기 --> 434 <!-- 매칭작업할 데이타 가져오기 -->
@@ -456,7 +439,6 @@ @@ -456,7 +439,6 @@
456 , sn 439 , sn
457 , '' as compare_ky 440 , '' as compare_ky
458 , delng_de 441 , delng_de
459 - , delng_crncy  
460 , delng_amt 442 , delng_amt
461 FROM 443 FROM
462 public.batch_tbcr_inner_delng 444 public.batch_tbcr_inner_delng
@@ -465,7 +447,6 @@ @@ -465,7 +447,6 @@
465 and accnut_ym = #{accnutYm} 447 and accnut_ym = #{accnutYm}
466 and cpr_code = #{cprCode} 448 and cpr_code = #{cprCode}
467 and partn_cpr = #{partnCpr} 449 and partn_cpr = #{partnCpr}
468 - and delng_crncy = #{delngCrncy}  
469 and mtch_ky is null 450 and mtch_ky is null
470 <if test='conds eq "T".toString()'> 451 <if test='conds eq "T".toString()'>
471 and dta_ty in ('12','22','42') 452 and dta_ty in ('12','22','42')
@@ -475,7 +456,7 @@ @@ -475,7 +456,7 @@
475 </if> 456 </if>
476 and delng_amt != 0 457 and delng_amt != 0
477 ORDER BY 458 ORDER BY
478 - delng_de, sn 459 + delng_de
479 </select> 460 </select>
480 461
481 <update id="setExtraResult" parameterType="map"> 462 <update id="setExtraResult" parameterType="map">
@@ -522,25 +503,28 @@ @@ -522,25 +503,28 @@
522 503
523 <!-- AI 작업리스트 --> 504 <!-- AI 작업리스트 -->
524 <select id="getAiReadData" parameterType="map" resultType="map"> 505 <select id="getAiReadData" parameterType="map" resultType="map">
525 - with HT_TR as ( 506 + SELECT
  507 + sys_se
  508 + , accnut_ym
  509 + , cpr_code
  510 + , partn_cpr
  511 + , delng_crncy
  512 + FROM
  513 + (
526 SELECT 514 SELECT
527 sys_se 515 sys_se
528 , accnut_ym 516 , accnut_ym
529 , cpr_code 517 , cpr_code
530 , partn_cpr 518 , partn_cpr
531 , delng_crncy 519 , delng_crncy
532 - , case when count(*) &gt; 0 then 1 else 0 end as cnt  
533 - , count(*) as CNT1  
534 - , 0 as CNT2  
535 - , SUM(delng_amt) as AMT1  
536 - , 0 as AMT2 520 + , case when count(*) > 0 then 1 else 0 end as cnt
537 FROM 521 FROM
538 public.batch_tbcr_inner_delng 522 public.batch_tbcr_inner_delng
539 WHERE 523 WHERE
540 sys_se = #{sysSe} 524 sys_se = #{sysSe}
541 and accnut_ym = #{accnutYm} 525 and accnut_ym = #{accnutYm}
542 and mtch_ty is null 526 and mtch_ty is null
543 - and dta_ty in ('11','21','41') /* AI 에서는 일단 수익비용 만 처리 */ 527 + and dta_ty in ('11','21','31','33','35','37','41')
544 GROUP BY 528 GROUP BY
545 sys_se 529 sys_se
546 , accnut_ym 530 , accnut_ym
@@ -554,51 +538,28 @@ @@ -554,51 +538,28 @@
554 , partn_cpr as cpr_code 538 , partn_cpr as cpr_code
555 , cpr_code as partn_cpr 539 , cpr_code as partn_cpr
556 , delng_crncy 540 , delng_crncy
557 - , case when count(*) &gt; 0 then 1 else 0 end as cnt  
558 - , 0 as CNT1  
559 - , count(*) as CNT2  
560 - , 0 as AMT1  
561 - , SUM(delng_amt) as AMT2 541 + , case when count(*) > 0 then 1 else 0 end as cnt
562 FROM 542 FROM
563 public.batch_tbcr_inner_delng 543 public.batch_tbcr_inner_delng
564 WHERE 544 WHERE
565 sys_se = #{sysSe} 545 sys_se = #{sysSe}
566 and accnut_ym = #{accnutYm} 546 and accnut_ym = #{accnutYm}
567 and mtch_ty is null 547 and mtch_ty is null
568 - and dta_ty in ('12','22','42') /* AI 에서는 일단 수익비용 만 처리 */ 548 + and dta_ty in ('12','22','32','34','36','38','42')
569 GROUP BY 549 GROUP BY
570 sys_se 550 sys_se
571 , accnut_ym 551 , accnut_ym
572 - , partn_cpr  
573 , cpr_code 552 , cpr_code
  553 + , partn_cpr
574 , delng_crncy 554 , delng_crncy
575 - )  
576 - SELECT  
577 - sys_se  
578 - , accnut_ym  
579 - , cpr_code  
580 - , partn_cpr  
581 - , delng_crncy  
582 - --- , SUM(CNT1) as CNT1 /* 수익 건수 */  
583 - --- , SUM(CNT2) as CNT2 /* 비용 건수 */  
584 - --- , SUM(AMT1) as AMT1 /* 수익 금액 */  
585 - --- , SUM(AMT2) as AMT2 /* 비용 금액 */  
586 - from HT_TR 555 + ) m
587 GROUP BY 556 GROUP BY
588 sys_se 557 sys_se
589 , accnut_ym 558 , accnut_ym
590 , cpr_code 559 , cpr_code
591 , partn_cpr 560 , partn_cpr
592 , delng_crncy 561 , delng_crncy
593 - HAVING sum(cnt) = 2 /* 자기, 상대 거래가 모두 있고 */  
594 - and ( ( SUM(CNT1) + SUM(CNT2) &gt; 2 ) /* 자기, 상대 거래 2건 이상 이거나 */  
595 - or ( SUM(AMT1) - SUM(AMT2) = 0 ) /* 자기, 상대 거래 금액 같거나 */  
596 - )  
597 - order by sys_se  
598 - , accnut_ym  
599 - , cpr_code  
600 - , partn_cpr  
601 - , delng_crncy 562 + HAVING sum(cnt) > 1
602 </select> 563 </select>
603 564
604 <!-- User Job Status --> 565 <!-- User Job Status -->
@@ -612,7 +573,6 @@ @@ -612,7 +573,6 @@
612 , exit_code 573 , exit_code
613 , exit_message 574 , exit_message
614 , user_job_group 575 , user_job_group
615 - , log_file_path  
616 FROM 576 FROM
617 public.batch_user_job_status 577 public.batch_user_job_status
618 WHERE 578 WHERE
@@ -664,50 +624,4 @@ @@ -664,50 +624,4 @@
664 and accnut_ym = #{accnutYm} 624 and accnut_ym = #{accnutYm}
665 </select> 625 </select>
666 626
667 -  
668 -  
669 -  
670 - <update id="updateInitExclusion1" parameterType="map">  
671 - update batch_tbcr_inner_delng  
672 - set  
673 - MTCH_SYS = 'EXCLUSION'  
674 - , MTCH_TY = 'ZERO'  
675 - , MTCH_TY_NM = 'ZERO'  
676 - where sys_se = #{sysSe}  
677 - and accnut_ym = #{accnutYm}  
678 - and mtch_ty is null  
679 - and delng_amt = 0  
680 - </update>  
681 -  
682 -  
683 - <update id="updateInitExclusion2" parameterType="map">  
684 - merge into batch_tbcr_inner_delng a  
685 - using (  
686 - with ht_data as (  
687 - select count(*) over(partition by sys_se, accnut_ym, dta_ty, cpr_code, partn_cpr, cnnc_acnt_code, delng_de, delng_crncy) as cnt  
688 - , 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  
689 - , a.*  
690 - from batch_tbcr_inner_delng a  
691 - where sys_se = #{sysSe}  
692 - and accnut_ym = #{accnutYm}  
693 - and mtch_ty is null  
694 - and delng_amt != 0  
695 - )  
696 - select sys_se, accnut_ym, sn  
697 - from ht_data  
698 - where cnt = 2  
699 - and sum_amt = 0  
700 - ) b  
701 - on (  
702 - b.sys_se = a.sys_se  
703 - and b.accnut_ym = a.accnut_ym  
704 - and b.sn = a.sn  
705 - )  
706 - when matched then  
707 - update  
708 - set MTCH_SYS = 'EXCLUSION'  
709 - , MTCH_TY = 'REVERSAL'  
710 - , MTCH_TY_NM = 'REVERSAL'  
711 - </update>  
712 -  
713 </mapper> 627 </mapper>
714 \ No newline at end of file 628 \ No newline at end of file
src/main/resources/mybatis/secondaryMapper/OracleMapper.xml
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="com.batch.mapper.secondary.OracleMapper"> 3 <mapper namespace="com.batch.mapper.secondary.OracleMapper">
4 - 4 +
5 <!-- 작업리스트 --> 5 <!-- 작업리스트 -->
6 <select id="getOriginalData" parameterType="map" resultType="map"> 6 <select id="getOriginalData" parameterType="map" resultType="map">
7 SELECT 7 SELECT
사용법.md 0 → 100644
  1 +0. 필요시 application.proeprties파일을 수정한다.
  2 +1. Run.bat를 실행하여 서버를 뛰운다.
  3 +2. http://localhost:8080/swagger-ui/index.html로 들어가서 테스트 가능
  4 +3. 파리미터
  5 +
  6 +#원본데이타를 가져와 생성
  7 +http://localhost:8080/api/job/create (post)
  8 +{
  9 + "sysSe": "AI_ALL",
  10 + "accnutYm": "202311"
  11 +}
  12 +
  13 +.\curl\bin\curl -d '{"sysSe":"AI_ALL", "accnutYm":"202311"}' `
  14 +-H "Content-Type: application/json" `
  15 +-X POST http://localhost:8080/api/job/create
  16 +
  17 +#자동매칭
  18 +http://localhost:8080/api/job/matching
  19 +{
  20 + "jobType": "ALL",
  21 + "sysSe": "AI_ALL",
  22 + "accnutYm": "202311",
  23 + "searchCond": "mtch_ty is null"
  24 +}
  25 +
  26 +.\curl\bin\curl -d '{"jobType": "ALL", "sysSe":"AI_ALL", "accnutYm":"202311", "searchCond":"mtch_ty is null"}' `
  27 +-H "Content-Type: application/json" `
  28 +-X POST http://localhost:8080/api/job/matching
  29 +
  30 +
  31 +#EX 매칭 (조합)
  32 +http://localhost:8080/api/job/extramatching
  33 +{
  34 + "sysSe": "LS_ALL",
  35 + "accnutYm": "202311"
  36 +}
  37 +
  38 +.\curl\bin\curl -d '{"sysSe":"AI_ALL", "accnutYm":"202311"}' `
  39 +-H "Content-Type: application/json" `
  40 +-X POST http://localhost:8080/api/job/extramatching
  41 +
  42 +
  43 +#AI 매칭
  44 +http://localhost:8080/api/job/aimatching
  45 +{
  46 + "sysSe": "LS_ALL",
  47 + "accnutYm": "202310",
  48 +}
  49 +
  50 +
  51 +.\curl\bin\curl -d '{"sysSe":"AI_ALL", "accnutYm":"202311"}' `
  52 +-H "Content-Type: application/json" `
  53 +-X POST http://localhost:8080/api/job/aimatching
  54 +
  55 +
  56 +#매칭결과 리턴시
  57 +http://localhost:8080/api/job/return
  58 +{
  59 + "sysSe": "LS_ALL",
  60 + "accnutYm": "202312"
  61 +}
  62 +
  63 +.\curl\bin\curl -d '{"sysSe":"AI_ALL", "accnutYm":"202311"}' `
  64 +-H "Content-Type: application/json" `
  65 +-X POST http://localhost:8080/api/job/return
  66 +
  67 +
  68 +#작업진행결과
  69 +http://localhost:8080/api/job/userJobInfo/JOB그룹id