Commit 4c27234c1bb32561cc6a8c717bfc1ad8dbab000e
1 parent
b490e7c9
* 자동일치 Sequence
StatisticsUtil.getMtchNum(); /** 일치key */ * EX 매칭 2:3, 3:2, 3:3, 4:1, 1:4 케이스 추가
Showing
3 changed files
with
42 additions
and
5 deletions
Show diff stats
src/main/java/com/batch/config/MatchingItemProcessorAuto.java
... | ... | @@ -12,6 +12,7 @@ import org.springframework.stereotype.Component; |
12 | 12 | import com.batch.config.MatchingSetup.Cond; |
13 | 13 | import com.batch.config.MatchingSetup.Matching; |
14 | 14 | import com.batch.mapper.primary.MatchingInnerDelingMapper; |
15 | +import com.batch.util.StatisticsUtil; | |
15 | 16 | |
16 | 17 | import lombok.RequiredArgsConstructor; |
17 | 18 | import lombok.extern.slf4j.Slf4j; |
... | ... | @@ -37,7 +38,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor<Map, Map> { |
37 | 38 | List<String> lCompareField = matching.getCompareField(); |
38 | 39 | String mtchType = matching.getType(); |
39 | 40 | String mtchTypeName = matching.getTypeName(); |
40 | - int mtchNumber = 0; | |
41 | + long mtchNumber = 0; | |
41 | 42 | int iUpdated = 0; |
42 | 43 | |
43 | 44 | log.info("CustomItemProcessorA.params : " + params.toString()); |
... | ... | @@ -124,7 +125,9 @@ public class MatchingItemProcessorAuto implements ItemProcessor<Map, Map> { |
124 | 125 | List<Map> lMapTwo = mMatchingDataTwo.get(curKey); |
125 | 126 | |
126 | 127 | int iMin = Math.min(lMapOne.size(), lMapTwo.size()); |
127 | - if (iMin > 0) mtchNumber++; | |
128 | + if (iMin > 0) { | |
129 | + mtchNumber = StatisticsUtil.getMtchNum(); /** 일치key Sequence */ | |
130 | + } | |
128 | 131 | for (int i=0; i<iMin; i++) { |
129 | 132 | lMapOne.get(i).put("mtchType", mtchType); |
130 | 133 | lMapOne.get(i).put("mtchTypeName", mtchTypeName); |
... | ... | @@ -209,7 +212,7 @@ public class MatchingItemProcessorAuto implements ItemProcessor<Map, Map> { |
209 | 212 | matchingInnerDelingMapper.setResult(Map.of("itemList", lUpdated)); |
210 | 213 | iUpdated = iUpdated + lUpdated.size(); |
211 | 214 | } |
212 | - log.debug("Updated OrgData : " + iUpdated + "건"); | |
215 | + log.info("Updated OrgData : " + iUpdated + "건, mtchNumber = " + mtchNumber); | |
213 | 216 | |
214 | 217 | //작업이 정상적으로 작동 되었을 경우 현재 처리하고 있는 데이타 그대로 넘겨준다. |
215 | 218 | return item; | ... | ... |
src/main/java/com/batch/service/JobService.java
... | ... | @@ -33,7 +33,7 @@ import com.batch.config.MatchingSetup.Matching; |
33 | 33 | import com.batch.mapper.primary.MatchingInnerDelingMapper; |
34 | 34 | import com.batch.mapper.secondary.OracleMapper; |
35 | 35 | import com.batch.util.FileUtil; |
36 | - | |
36 | +import com.batch.util.StatisticsUtil; | |
37 | 37 | import com.batch.service.JobService; |
38 | 38 | import lombok.extern.slf4j.Slf4j; |
39 | 39 | |
... | ... | @@ -98,6 +98,9 @@ public class JobService { |
98 | 98 | } |
99 | 99 | } |
100 | 100 | |
101 | + /** 일치key 초기화 */ | |
102 | + StatisticsUtil.initMtchNum(); | |
103 | + | |
101 | 104 | for (String sJobType : lJobType) { |
102 | 105 | log.info("[" + sThreadName + "]Current running job type: " + sJobType); |
103 | 106 | JobExecution jobExe = invokeJob("matchingInnerDelng", sJobType, params); |
... | ... | @@ -216,7 +219,7 @@ public class JobService { |
216 | 219 | mtchNumber = matchingExtraProcessorAuto.process(paramRec, 2, 2, i, i, mtchNumber); |
217 | 220 | } |
218 | 221 | |
219 | - // 3건씩 매칭일 경우 최대 5000건 까지 | |
222 | + // 3건씩 매칭일 경우 최대 2000건 까지 | |
220 | 223 | for (int i = 0; i < 2000; i = i + 100) { |
221 | 224 | mtchNumber = matchingExtraProcessorAuto.process(paramRec, 1, 3, 0, i, mtchNumber); |
222 | 225 | } |
... | ... | @@ -224,6 +227,27 @@ public class JobService { |
224 | 227 | mtchNumber = matchingExtraProcessorAuto.process(paramRec, 3, 1, i, 0, mtchNumber); |
225 | 228 | } |
226 | 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 | + | |
227 | 251 | long endTime = System.currentTimeMillis(); |
228 | 252 | log.info( |
229 | 253 | "extra [" + sThreadName + " : " + sDate + "]Job Ended: " + endTime + " mtchNumber = " + mtchNumber); | ... | ... |
src/main/java/com/batch/util/StatisticsUtil.java
... | ... | @@ -25,6 +25,16 @@ public class StatisticsUtil { |
25 | 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 | + | |
28 | 38 | /** |
29 | 39 | * 조합 구하기 |
30 | 40 | * | ... | ... |