--- src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
+++ src/main/java/itn/let/mjo/addr/service/impl/AddrServiceImpl.java
... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 |
import java.nio.charset.Charset; |
| 4 | 4 |
import java.text.SimpleDateFormat; |
| 5 | 5 |
import java.time.LocalDateTime; |
| 6 |
+import java.time.format.DateTimeFormatter; |
|
| 6 | 7 |
import java.util.Date; |
| 7 | 8 |
import java.util.List; |
| 8 | 9 |
import java.util.Locale; |
... | ... | @@ -491,9 +492,11 @@ |
| 491 | 492 |
try {
|
| 492 | 493 |
if(addrListVO.size() > 0) {
|
| 493 | 494 |
// 등록 |
| 495 |
+ // 배치 제거 |
|
| 496 |
+ // 참고 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 |
|
| 494 | 497 |
// Batch insert |
| 495 |
- batchInsertAddrListAsync(addrListVO); |
|
| 496 |
-// addrDAO.insertAddrList(addrListVO); |
|
| 498 |
+// batchInsertAddrListAsync(addrListVO); |
|
| 499 |
+ addrDAO.insertAddrList(addrListVO); |
|
| 497 | 500 |
|
| 498 | 501 |
} |
| 499 | 502 |
|
... | ... | @@ -514,12 +517,22 @@ |
| 514 | 517 |
// 중복체크 dupliCnt |
| 515 | 518 |
|
| 516 | 519 |
|
| 517 |
- |
|
| 520 |
+ // 현재 시간 가져오기 |
|
| 521 |
+ LocalDateTime now = LocalDateTime.now(); |
|
| 522 |
+ |
|
| 523 |
+ // 원하는 포맷 설정 |
|
| 524 |
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
| 525 |
+ |
|
| 526 |
+ // 포맷된 시간 문자열로 변환 |
|
| 527 |
+ String formattedDateTime = now.format(formatter); |
|
| 528 |
+ |
|
| 529 |
+ // 출력 |
|
| 530 |
+ System.out.println(formattedDateTime); |
|
| 518 | 531 |
// |
| 519 | 532 |
String message = "저장에 성공했습니다.\n저장 : " + addrListVO.size() + "건" |
| 520 | 533 |
// +", 중복 : " + invalid.dupliCnt + "건" |
| 521 | 534 |
+", INERT 총 시간 : " + executionTime+ "초" |
| 522 |
- +", 휴대폰번호 오류 : " + invalid.get() + "건"; |
|
| 535 |
+ +", 현재시간 : " + formattedDateTime; |
|
| 523 | 536 |
|
| 524 | 537 |
return new StatusResponse( |
| 525 | 538 |
HttpStatus.OK |
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
... | ... | @@ -265,37 +265,29 @@ |
| 265 | 265 |
alert("한 개 이상의 연락처를 입력하세요");
|
| 266 | 266 |
return false; |
| 267 | 267 |
} |
| 268 |
-// else if (selectedData.length > 20000) {
|
|
| 269 |
-// alert("2만줄 이상의 업로드는 데이터 부하로 업로드 할수 없습니다.");
|
|
| 270 |
-// return false; |
|
| 271 |
-// } |
|
| 272 | 268 |
|
| 273 |
- var selectMassVal = $(tabluC+" #addrGrpIdInfo option:selected").val(); |
|
| 269 |
+ if($objTabul.getData().length > 300000){
|
|
| 270 |
+ alert("30만개 까지 등록 가능합니다.");
|
|
| 271 |
+ return false; |
|
| 272 |
+ } |
|
| 273 |
+ |
|
| 274 |
+// var selectMassVal = $(tabluC+" #addrGrpIdInfo option:selected").val(); |
|
| 274 | 275 |
|
| 275 | 276 |
var loginVO = '${LoginVO}';
|
| 276 |
-// if(loginVO == "" || loginVO == null){
|
|
| 277 | 277 |
if(fn_utils_isEmpty(loginVO)){
|
| 278 | 278 |
alert("로그인 후 이용이 가능합니다.");
|
| 279 | 279 |
return false; |
| 280 | 280 |
} |
| 281 | 281 |
|
| 282 |
- // tableExcel 그룹의 select 요소들을 확인 |
|
| 283 |
-// var isPhoneSelected = false; |
|
| 284 |
-// var isNameSelected = false; |
|
| 282 |
+ // tableExcel select 요소들을 확인 |
|
| 285 | 283 |
var columns = $objTabul.getColumns(); |
| 286 | 284 |
var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo'); |
| 287 |
- |
|
| 288 | 285 |
if (!isAddrPhoneNoSelected) {
|
| 289 | 286 |
// isPhoneSelected = true; |
| 290 | 287 |
alert('휴대폰이 선택되지 않았습니다.');
|
| 291 | 288 |
return false; |
| 292 | 289 |
|
| 293 | 290 |
} |
| 294 |
-// if (!isPhoneSelected || !isNameSelected) {
|
|
| 295 |
-// alert('휴대폰 또는 이름이 선택되지 않았습니다.');
|
|
| 296 |
-// return false; |
|
| 297 |
-// } |
|
| 298 |
- |
|
| 299 | 291 |
|
| 300 | 292 |
// 주소록이 새로생성이면 새로운 주소록명이 있는지 확인 |
| 301 | 293 |
if ($(tabluC+" #addrGrpIdInfo option:selected").val() == "NEW" |
... | ... | @@ -321,24 +313,17 @@ |
| 321 | 313 |
} |
| 322 | 314 |
|
| 323 | 315 |
var confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다."; |
| 324 |
-// if (selectedData.length >= 10000) {
|
|
| 325 |
-// confirmMsg = "저장하시겠습니까?\n이름 20byte, [*1*]~[*4*] 40byte, 메모 250byte 초과 글자는 절사됩니다.\n1만건 이상 등록시 약 30초정도 소요됩니다.\n잠시만 기다려주세요."; |
|
| 326 |
-// } |
|
| 327 | 316 |
if (confirm(confirmMsg)) {
|
| 328 | 317 |
//로딩창 show |
| 329 | 318 |
fn_loadAddActive(); |
| 330 | 319 |
|
| 331 |
- console.time('updateData');
|
|
| 332 | 320 |
setTimeout(setSenderList_advc, 1000); |
| 333 | 321 |
// setTimeout(setSenderList_old, 1000); |
| 334 | 322 |
|
| 335 |
- console.timeEnd('updateData');
|
|
| 336 |
-// fn_loadAddActive(); |
|
| 337 |
-// setSenderList_advc(); |
|
| 338 | 323 |
} |
| 339 | 324 |
} |
| 340 |
- |
|
| 341 |
-// 주소록 등록 advc |
|
| 325 |
+/* |
|
| 326 |
+// 주소록 등록 old |
|
| 342 | 327 |
function setSenderList_old(){
|
| 343 | 328 |
|
| 344 | 329 |
// tab에 해당하는 타블레이터 가져오기 |
... | ... | @@ -394,7 +379,7 @@ |
| 394 | 379 |
} |
| 395 | 380 |
}); |
| 396 | 381 |
} |
| 397 |
- |
|
| 382 |
+ */ |
|
| 398 | 383 |
|
| 399 | 384 |
function setSenderList_advc(){
|
| 400 | 385 |
|
... | ... | @@ -406,7 +391,7 @@ |
| 406 | 391 |
var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val(); |
| 407 | 392 |
var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val(); |
| 408 | 393 |
|
| 409 |
- var batchSize = 15000; // 배치 크기 |
|
| 394 |
+ var batchSize = 30000; // 배치 크기 |
|
| 410 | 395 |
var totalBatches = Math.ceil(dataToSend.length / batchSize); // 총 배치 수 |
| 411 | 396 |
var currentBatch = 0; // 현재 배치 인덱스 |
| 412 | 397 |
|
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?