--- src/main/java/itn/let/fax/addr/service/FaxAddrVO.java
+++ src/main/java/itn/let/fax/addr/service/FaxAddrVO.java
... | ... | @@ -35,6 +35,11 @@ |
| 35 | 35 |
|
| 36 | 36 |
private String[] excelDownTitles; |
| 37 | 37 |
|
| 38 |
+ // 주소록 등록 batch 몇번째인지 확인 |
|
| 39 |
+ private int batchStart; |
|
| 40 |
+ // |
|
| 41 |
+ private int dataTotCount; |
|
| 42 |
+ |
|
| 38 | 43 |
@SuppressWarnings("rawtypes")
|
| 39 | 44 |
private List addrIdList; |
| 40 | 45 |
|
... | ... | @@ -286,6 +291,24 @@ |
| 286 | 291 |
public void setMoveAddrAllFlag(String moveAddrAllFlag) {
|
| 287 | 292 |
this.moveAddrAllFlag = moveAddrAllFlag; |
| 288 | 293 |
} |
| 294 |
+ |
|
| 295 |
+ |
|
| 296 |
+ public int getBatchStart() {
|
|
| 297 |
+ return batchStart; |
|
| 298 |
+ } |
|
| 299 |
+ |
|
| 300 |
+ public void setBatchStart(int batchStart) {
|
|
| 301 |
+ this.batchStart = batchStart; |
|
| 302 |
+ } |
|
| 303 |
+ |
|
| 304 |
+ |
|
| 305 |
+ public int getDataTotCount() {
|
|
| 306 |
+ return dataTotCount; |
|
| 307 |
+ } |
|
| 308 |
+ |
|
| 309 |
+ public void setDataTotCount(int dataTotCount) {
|
|
| 310 |
+ this.dataTotCount = dataTotCount; |
|
| 311 |
+ } |
|
| 289 | 312 |
|
| 290 | 313 |
public String getFieldValue(String field) {
|
| 291 | 314 |
if("addrPhoneNo".equals(field)) {
|
--- src/main/java/itn/let/fax/addr/service/impl/FaxAddrServiceImpl.java
+++ src/main/java/itn/let/fax/addr/service/impl/FaxAddrServiceImpl.java
... | ... | @@ -48,7 +48,6 @@ |
| 48 | 48 |
|
| 49 | 49 |
private static final String FAX_REGEX = "^(02\\d|03[1-3]|04[1-4]|05[1-5]|06[1-4]|030|050|060|070|080|1\\d{2})$";
|
| 50 | 50 |
|
| 51 |
- |
|
| 52 | 51 |
private static final Pattern FAX_PATTERN = Pattern.compile(FAX_REGEX); |
| 53 | 52 |
|
| 54 | 53 |
private static final Charset EUC_KR = Charset.forName("EUC-KR");
|
... | ... | @@ -393,23 +392,25 @@ |
| 393 | 392 |
} |
| 394 | 393 |
|
| 395 | 394 |
// step1 현재 주소록 갯수 조회 |
| 396 |
- |
|
| 397 |
- // step1-1 회원별 주소록 전체 갯수 조회 |
|
| 398 |
- int faxAddrBefCnt = faxAddrDAO.selectFaxAddrTotalCount(faxAddrListVO.get(0)); |
|
| 399 |
- int faxAddrNewCnt = faxAddrListVO.size(); //신규 추가할 주소록 갯수 |
|
| 400 |
- int sumFaxAddrCnt = faxAddrBefCnt + faxAddrNewCnt; |
|
| 401 |
- |
|
| 402 |
- System.out.println("faxAddrListVO.size() : "+ faxAddrListVO.size());
|
|
| 403 |
- |
|
| 404 |
- // step1-2 총 갯수가 (주소록 갯수 + 신규 주소록)1000만건 체크 |
|
| 405 |
- if(sumFaxAddrCnt > MAX_FAX_ADDR_CNT) {
|
|
| 406 |
- return new StatusResponse( |
|
| 407 |
- HttpStatus.BAD_REQUEST |
|
| 408 |
- , "주소록은 총 100만개까지만 등록이 가능합니다." |
|
| 409 |
- , LocalDateTime.now() |
|
| 410 |
- ); |
|
| 395 |
+ // 배치 처음 돌때만 실행 |
|
| 396 |
+ if(faxAddrListVO.get(0).getBatchStart() < 1) {
|
|
| 397 |
+ |
|
| 398 |
+ // step1-1 회원별 주소록 전체 갯수 조회 |
|
| 399 |
+ int faxAddrBefCnt = faxAddrDAO.selectFaxAddrTotalCount(faxAddrListVO.get(0)); |
|
| 400 |
+ int faxAddrNewCnt = faxAddrListVO.get(0).getDataTotCount(); //신규 추가할 주소록 갯수 |
|
| 401 |
+ int sumFaxAddrCnt = faxAddrBefCnt + faxAddrNewCnt; |
|
| 402 |
+ |
|
| 403 |
+ System.out.println("faxAddrListVO.size() : "+ faxAddrListVO.size());
|
|
| 404 |
+ |
|
| 405 |
+ // step1-2 총 갯수가 (주소록 갯수 + 신규 주소록)1000만건 체크 |
|
| 406 |
+ if(sumFaxAddrCnt > MAX_FAX_ADDR_CNT) {
|
|
| 407 |
+ return new StatusResponse( |
|
| 408 |
+ HttpStatus.BAD_REQUEST |
|
| 409 |
+ , "주소록은 총 100만개까지만 등록이 가능합니다." |
|
| 410 |
+ , LocalDateTime.now() |
|
| 411 |
+ ); |
|
| 412 |
+ } |
|
| 411 | 413 |
} |
| 412 |
- |
|
| 413 | 414 |
|
| 414 | 415 |
// step3 |
| 415 | 416 |
// => 팩스번호 빼고 바이트 체크해서 20byte만 짜르고 넣기 |
... | ... | @@ -419,17 +420,22 @@ |
| 419 | 420 |
// 유효성 체크 및 하이픈 제거, 유효하지 않은 번호는 리스트에서 제거 |
| 420 | 421 |
// 나머지 필드들 20byte (euc-kr) 체크 후 넘으면 자르기 |
| 421 | 422 |
AtomicInteger invalid = new AtomicInteger(0); // 스레드-안전(thread-safe)하게 정수 값을 업데이트할 수 있는 기능을 제공 |
| 422 |
- faxAddrListVO.removeIf(faxAddr -> {
|
|
| 423 |
- String phoneNo = faxAddr.getAddrPhoneNo(); |
|
| 423 |
+ |
|
| 424 |
+// log.info(" ++ before faxAddrListVO.size() :: [{}]", faxAddrListVO.size());
|
|
| 425 |
+ |
|
| 426 |
+ /*faxAddrListVO.removeIf(faxAddr -> {
|
|
| 427 |
+ String phoneNo = faxAddr.getAddrPhoneNo().replaceAll("[^0-9]", "");
|
|
| 424 | 428 |
if (isValidFaxNumber(phoneNo)) {
|
| 425 | 429 |
faxAddr.setAddrPhoneNo(phoneNo); // 하이픈이 제거된 유효한 번호 설정 |
| 426 | 430 |
trimFieldsBytes(faxAddr); // 다른 필드들에 대한 20바이트 체크 및 자르기 |
| 427 | 431 |
return false; // 유효한 번호는 제거하지 않음 |
| 428 | 432 |
} else{
|
| 433 |
+ System.out.println(" + else phoneNo : "+ phoneNo);
|
|
| 429 | 434 |
invalid.getAndIncrement(); // 유효하지 않은 번호 개수 증가 |
| 430 | 435 |
return true; // 유효하지 않은 번호는 제거 |
| 431 | 436 |
} |
| 432 |
- }); |
|
| 437 |
+ });*/ |
|
| 438 |
+// log.info(" ++ after faxAddrListVO.size() :: [{}]", faxAddrListVO.size());
|
|
| 433 | 439 |
|
| 434 | 440 |
long endTime = System.currentTimeMillis(); |
| 435 | 441 |
double executionTime = (endTime - startTime) / 1000.0; |
... | ... | @@ -535,7 +541,7 @@ |
| 535 | 541 |
return false; |
| 536 | 542 |
} |
| 537 | 543 |
// 앞 3자리 추출 |
| 538 |
- String subNumber = faxNo.length() >= 3 ? faxNo.substring(0, 3) : faxNo; |
|
| 544 |
+ String subNumber = faxNo.substring(0, 3); |
|
| 539 | 545 |
Matcher matcher = FAX_PATTERN.matcher(subNumber); |
| 540 | 546 |
return matcher.matches(); |
| 541 | 547 |
} |
--- src/main/java/itn/let/fax/addr/web/FaxAddrRestController.java
+++ src/main/java/itn/let/fax/addr/web/FaxAddrRestController.java
... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 |
|
| 6 | 6 |
import javax.annotation.Resource; |
| 7 | 7 |
|
| 8 |
+import org.apache.commons.vfs2.util.DelegatingFileSystemOptionsBuilder; |
|
| 8 | 9 |
import org.springframework.http.HttpStatus; |
| 9 | 10 |
import org.springframework.http.ResponseEntity; |
| 10 | 11 |
import org.springframework.ui.ModelMap; |
... | ... | @@ -74,6 +75,7 @@ |
| 74 | 75 |
) |
| 75 | 76 |
); |
| 76 | 77 |
} |
| 78 |
+ |
|
| 77 | 79 |
return ResponseEntity.ok().body(faxAddrService.faxAddrMassInsertByTempAjax_advc(faxAddrListVO, userId)); |
| 78 | 80 |
} |
| 79 | 81 |
}(No newline at end of file) |
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
... | ... | @@ -389,7 +389,7 @@ |
| 389 | 389 |
|
| 390 | 390 |
var $objTabul = fn_utils_getTabulator(); |
| 391 | 391 |
var dataToSend = $objTabul.getData(); |
| 392 |
- console.log('dataToSend : ', dataToSend);
|
|
| 392 |
+ var dataTotCount = $objTabul.getDataCount(); // 총 갯수 |
|
| 393 | 393 |
var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val(); |
| 394 | 394 |
var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val(); |
| 395 | 395 |
|
... | ... | @@ -411,6 +411,8 @@ |
| 411 | 411 |
var updateData = batchData.map(row => {
|
| 412 | 412 |
row.addrGrpId = addrGrpIdInfo; |
| 413 | 413 |
row.addrGrpNm = addrGrpNmInfo; |
| 414 |
+ row.batchStart = start; |
|
| 415 |
+ row.dataTotCount = dataTotCount; |
|
| 414 | 416 |
return row; |
| 415 | 417 |
}); |
| 416 | 418 |
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?