From 6ea9e39a9840072e9a6b9047f50b97a3e060e0ca Mon Sep 17 00:00:00 2001 From: hylee Date: Mon, 2 Sep 2024 09:50:42 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A3=BC=EC=86=8C=EB=A1=9D=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EB=B0=B0=EC=B9=98=ED=81=AC=EA=B8=B0=20=EC=A1=B0?= =?UTF-8?q?=EC=A0=95=20:=20js=203=EB=A7=8C,=20java=20batchX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addr/service/impl/AddrServiceImpl.java | 21 +++++++++-- .../webapp/WEB-INF/jsp/web/addr/AddrList.jsp | 37 ++++++------------- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java b/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java index fe7bff20..e969e960 100644 --- a/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java +++ b/src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java @@ -3,6 +3,7 @@ package itn.let.mjo.addr.service.impl; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; import java.util.Locale; @@ -491,9 +492,11 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer try { if(addrListVO.size() > 0) { // 등록 + // 배치 제거 + // 참고 http://wiki.iten.co.kr:9999/doku.php?id=%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8:%EB%AC%B8%EC%9E%90%EC%98%A8_%EA%B0%9C%EC%84%A0:03.%ED%85%8C%EC%8A%A4%ED%8A%B8:%EC%A3%BC%EC%86%8C%EB%A1%9D_30%EB%A7%8C%EA%B1%B4#%EB%B9%84%EA%B5%90_%ED%91%9C // Batch insert - batchInsertAddrListAsync(addrListVO); -// addrDAO.insertAddrList(addrListVO); +// batchInsertAddrListAsync(addrListVO); + addrDAO.insertAddrList(addrListVO); } @@ -514,12 +517,22 @@ public class AddrServiceImpl extends EgovAbstractServiceImpl implements AddrSer // 중복체크 dupliCnt - + // 현재 시간 가져오기 + LocalDateTime now = LocalDateTime.now(); + + // 원하는 포맷 설정 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + // 포맷된 시간 문자열로 변환 + String formattedDateTime = now.format(formatter); + + // 출력 + System.out.println(formattedDateTime); // String message = "저장에 성공했습니다.\n저장 : " + addrListVO.size() + "건" // +", 중복 : " + invalid.dupliCnt + "건" +", INERT 총 시간 : " + executionTime+ "초" - +", 휴대폰번호 오류 : " + invalid.get() + "건"; + +", 현재시간 : " + formattedDateTime; return new StatusResponse( HttpStatus.OK diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp index 041e4ed1..089f3a82 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp @@ -265,37 +265,29 @@ function SetAddrMassSave(){ alert("한 개 이상의 연락처를 입력하세요"); return false; } -// else if (selectedData.length > 20000) { -// alert("2만줄 이상의 업로드는 데이터 부하로 업로드 할수 없습니다."); -// return false; -// } - var selectMassVal = $(tabluC+" #addrGrpIdInfo option:selected").val(); + if($objTabul.getData().length > 300000){ + alert("30만개 까지 등록 가능합니다."); + return false; + } + +// var selectMassVal = $(tabluC+" #addrGrpIdInfo option:selected").val(); var loginVO = '${LoginVO}'; -// if(loginVO == "" || loginVO == null){ if(fn_utils_isEmpty(loginVO)){ alert("로그인 후 이용이 가능합니다."); return false; } - // tableExcel 그룹의 select 요소들을 확인 -// var isPhoneSelected = false; -// var isNameSelected = false; + // tableExcel select 요소들을 확인 var columns = $objTabul.getColumns(); var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo'); - if (!isAddrPhoneNoSelected) { // isPhoneSelected = true; alert('휴대폰이 선택되지 않았습니다.'); return false; } -// if (!isPhoneSelected || !isNameSelected) { -// alert('휴대폰 또는 이름이 선택되지 않았습니다.'); -// return false; -// } - // 주소록이 새로생성이면 새로운 주소록명이 있는지 확인 if ($(tabluC+" #addrGrpIdInfo option:selected").val() == "NEW" @@ -321,24 +313,17 @@ function SetAddrMassSave(){ } var confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다."; -// if (selectedData.length >= 10000) { -// confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다.\n1만건 이상 등록시 약 30초정도 소요됩니다.\n잠시만 기다려주세요."; -// } if (confirm(confirmMsg)) { //로딩창 show fn_loadAddActive(); - console.time('updateData'); setTimeout(setSenderList_advc, 1000); // setTimeout(setSenderList_old, 1000); - console.timeEnd('updateData'); -// fn_loadAddActive(); -// setSenderList_advc(); } } - -// 주소록 등록 advc +/* +// 주소록 등록 old function setSenderList_old(){ // tab에 해당하는 타블레이터 가져오기 @@ -394,7 +379,7 @@ function setSenderList_old(){ } }); } - + */ function setSenderList_advc(){ @@ -406,7 +391,7 @@ function setSenderList_advc(){ var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val(); var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val(); - var batchSize = 15000; // 배치 크기 + var batchSize = 30000; // 배치 크기 var totalBatches = Math.ceil(dataToSend.length / batchSize); // 총 배치 수 var currentBatch = 0; // 현재 배치 인덱스