From 319445f4835bbb2b65bb452ce59d3b4ee2a30a88 Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Fri, 13 Dec 2024 16:19:20 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=A9=EC=8A=A4=20=EC=A3=BC=EC=86=8C?= =?UTF-8?q?=EB=A1=9D=20=EB=93=B1=EB=A1=9D=20=EC=86=8D=EB=8F=84=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/fax/addr/service/FaxAddrVO.java | 23 +++++++++ .../addr/service/impl/FaxAddrServiceImpl.java | 48 +++++++++++-------- .../fax/addr/web/FaxAddrRestController.java | 2 + .../WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp | 4 +- 4 files changed, 55 insertions(+), 22 deletions(-) diff --git a/src/main/java/itn/let/fax/addr/service/FaxAddrVO.java b/src/main/java/itn/let/fax/addr/service/FaxAddrVO.java index 43279335..2b122202 100644 --- a/src/main/java/itn/let/fax/addr/service/FaxAddrVO.java +++ b/src/main/java/itn/let/fax/addr/service/FaxAddrVO.java @@ -35,6 +35,11 @@ public class FaxAddrVO extends ComDefaultVO{ private String[] excelDownTitles; + // 주소록 등록 batch 몇번째인지 확인 + private int batchStart; + // + private int dataTotCount; + @SuppressWarnings("rawtypes") private List addrIdList; @@ -286,6 +291,24 @@ public class FaxAddrVO extends ComDefaultVO{ public void setMoveAddrAllFlag(String moveAddrAllFlag) { this.moveAddrAllFlag = moveAddrAllFlag; } + + + public int getBatchStart() { + return batchStart; + } + + public void setBatchStart(int batchStart) { + this.batchStart = batchStart; + } + + + public int getDataTotCount() { + return dataTotCount; + } + + public void setDataTotCount(int dataTotCount) { + this.dataTotCount = dataTotCount; + } public String getFieldValue(String field) { if("addrPhoneNo".equals(field)) { diff --git a/src/main/java/itn/let/fax/addr/service/impl/FaxAddrServiceImpl.java b/src/main/java/itn/let/fax/addr/service/impl/FaxAddrServiceImpl.java index 3683fe77..f7e475a9 100644 --- a/src/main/java/itn/let/fax/addr/service/impl/FaxAddrServiceImpl.java +++ b/src/main/java/itn/let/fax/addr/service/impl/FaxAddrServiceImpl.java @@ -48,7 +48,6 @@ public class FaxAddrServiceImpl extends EgovAbstractServiceImpl implements FaxAd 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})$"; - private static final Pattern FAX_PATTERN = Pattern.compile(FAX_REGEX); private static final Charset EUC_KR = Charset.forName("EUC-KR"); @@ -393,24 +392,26 @@ public class FaxAddrServiceImpl extends EgovAbstractServiceImpl implements FaxAd } // step1 현재 주소록 갯수 조회 - - // step1-1 회원별 주소록 전체 갯수 조회 - int faxAddrBefCnt = faxAddrDAO.selectFaxAddrTotalCount(faxAddrListVO.get(0)); - int faxAddrNewCnt = faxAddrListVO.size(); //신규 추가할 주소록 갯수 - int sumFaxAddrCnt = faxAddrBefCnt + faxAddrNewCnt; - - System.out.println("faxAddrListVO.size() : "+ faxAddrListVO.size()); - - // step1-2 총 갯수가 (주소록 갯수 + 신규 주소록)1000만건 체크 - if(sumFaxAddrCnt > MAX_FAX_ADDR_CNT) { - return new StatusResponse( - HttpStatus.BAD_REQUEST - , "주소록은 총 100만개까지만 등록이 가능합니다." - , LocalDateTime.now() - ); + // 배치 처음 돌때만 실행 + if(faxAddrListVO.get(0).getBatchStart() < 1) { + + // step1-1 회원별 주소록 전체 갯수 조회 + int faxAddrBefCnt = faxAddrDAO.selectFaxAddrTotalCount(faxAddrListVO.get(0)); + int faxAddrNewCnt = faxAddrListVO.get(0).getDataTotCount(); //신규 추가할 주소록 갯수 + int sumFaxAddrCnt = faxAddrBefCnt + faxAddrNewCnt; + + System.out.println("faxAddrListVO.size() : "+ faxAddrListVO.size()); + + // step1-2 총 갯수가 (주소록 갯수 + 신규 주소록)1000만건 체크 + if(sumFaxAddrCnt > MAX_FAX_ADDR_CNT) { + return new StatusResponse( + HttpStatus.BAD_REQUEST + , "주소록은 총 100만개까지만 등록이 가능합니다." + , LocalDateTime.now() + ); + } } - // step3 // => 팩스번호 빼고 바이트 체크해서 20byte만 짜르고 넣기 // => 팩스번호는 유효성 체크 하기 @@ -419,17 +420,22 @@ public class FaxAddrServiceImpl extends EgovAbstractServiceImpl implements FaxAd // 유효성 체크 및 하이픈 제거, 유효하지 않은 번호는 리스트에서 제거 // 나머지 필드들 20byte (euc-kr) 체크 후 넘으면 자르기 AtomicInteger invalid = new AtomicInteger(0); // 스레드-안전(thread-safe)하게 정수 값을 업데이트할 수 있는 기능을 제공 - faxAddrListVO.removeIf(faxAddr -> { - String phoneNo = faxAddr.getAddrPhoneNo(); + +// log.info(" ++ before faxAddrListVO.size() :: [{}]", faxAddrListVO.size()); + + /*faxAddrListVO.removeIf(faxAddr -> { + String phoneNo = faxAddr.getAddrPhoneNo().replaceAll("[^0-9]", ""); if (isValidFaxNumber(phoneNo)) { faxAddr.setAddrPhoneNo(phoneNo); // 하이픈이 제거된 유효한 번호 설정 trimFieldsBytes(faxAddr); // 다른 필드들에 대한 20바이트 체크 및 자르기 return false; // 유효한 번호는 제거하지 않음 } else{ + System.out.println(" + else phoneNo : "+ phoneNo); invalid.getAndIncrement(); // 유효하지 않은 번호 개수 증가 return true; // 유효하지 않은 번호는 제거 } - }); + });*/ +// log.info(" ++ after faxAddrListVO.size() :: [{}]", faxAddrListVO.size()); long endTime = System.currentTimeMillis(); double executionTime = (endTime - startTime) / 1000.0; @@ -535,7 +541,7 @@ public class FaxAddrServiceImpl extends EgovAbstractServiceImpl implements FaxAd return false; } // 앞 3자리 추출 - String subNumber = faxNo.length() >= 3 ? faxNo.substring(0, 3) : faxNo; + String subNumber = faxNo.substring(0, 3); Matcher matcher = FAX_PATTERN.matcher(subNumber); return matcher.matches(); } diff --git a/src/main/java/itn/let/fax/addr/web/FaxAddrRestController.java b/src/main/java/itn/let/fax/addr/web/FaxAddrRestController.java index 3d392aea..9f3b6659 100644 --- a/src/main/java/itn/let/fax/addr/web/FaxAddrRestController.java +++ b/src/main/java/itn/let/fax/addr/web/FaxAddrRestController.java @@ -5,6 +5,7 @@ import java.util.List; import javax.annotation.Resource; +import org.apache.commons.vfs2.util.DelegatingFileSystemOptionsBuilder; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.ui.ModelMap; @@ -74,6 +75,7 @@ public class FaxAddrRestController { ) ); } + return ResponseEntity.ok().body(faxAddrService.faxAddrMassInsertByTempAjax_advc(faxAddrListVO, userId)); } } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp index acbca1b4..680fd8bd 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp @@ -389,7 +389,7 @@ function setSenderList_advc(){ var $objTabul = fn_utils_getTabulator(); var dataToSend = $objTabul.getData(); - console.log('dataToSend : ', dataToSend); + var dataTotCount = $objTabul.getDataCount(); // 총 갯수 var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val(); var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val(); @@ -411,6 +411,8 @@ function setSenderList_advc(){ var updateData = batchData.map(row => { row.addrGrpId = addrGrpIdInfo; row.addrGrpNm = addrGrpNmInfo; + row.batchStart = start; + row.dataTotCount = dataTotCount; return row; });