Merge branch 'master' into kakaoFT
@48582b616d609996196f91c49902fc0a4d679a32
--- src/main/java/itn/com/cmm/util/MJUtil.java
+++ src/main/java/itn/com/cmm/util/MJUtil.java
... | ... | @@ -279,6 +279,14 @@ |
| 279 | 279 |
return beforeMonthDay; |
| 280 | 280 |
} |
| 281 | 281 |
|
| 282 |
+ public static String getBefore1DayDate() throws Exception {
|
|
| 283 |
+ Calendar mon = Calendar.getInstance(); |
|
| 284 |
+ mon.add(Calendar.DAY_OF_MONTH , -1); |
|
| 285 |
+ String beforeMonthDay = new java.text.SimpleDateFormat("yyyy-MM-dd").format(mon.getTime());
|
|
| 286 |
+ |
|
| 287 |
+ return beforeMonthDay; |
|
| 288 |
+ } |
|
| 289 |
+ |
|
| 282 | 290 |
public static void main(String args[]) throws Exception {
|
| 283 | 291 |
System.out.println(new Date(System.currentTimeMillis())); |
| 284 | 292 |
System.out.println(checkHpNum("070-85326650"));
|
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
... | ... | @@ -241,7 +241,7 @@ |
| 241 | 241 |
|
| 242 | 242 |
// 기간검색 설정 |
| 243 | 243 |
String toDay = MJUtil.getTodayDate(); //오늘 |
| 244 |
- String beforeMonthDay = MJUtil.getBefore1MonthDate(); //한달 전 |
|
| 244 |
+ String beforeMonthDay = MJUtil.getBefore1DayDate(); //하루 전 |
|
| 245 | 245 |
if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
|
| 246 | 246 |
searchVO.setNtceBgnde(beforeMonthDay); |
| 247 | 247 |
//searchVO.setNtceEndde(toDay); |
... | ... | @@ -1206,9 +1206,13 @@ |
| 1206 | 1206 |
searchVO.setReserveYn("Y");
|
| 1207 | 1207 |
searchVO.setReserveCYn("N");//예약 취소건은 보여주지 않는다.
|
| 1208 | 1208 |
|
| 1209 |
- // 기간검색 설정 |
|
| 1209 |
+ /* |
|
| 1210 |
+ * 2024.01.26 우영두 변경 |
|
| 1211 |
+ * 기존 한달전 시작일자 지정에서 하루전으로 변경 |
|
| 1212 |
+ * 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청 |
|
| 1213 |
+ * */ |
|
| 1210 | 1214 |
String toDay = MJUtil.getTodayDate(); //오늘 |
| 1211 |
- String beforeMonthDay = MJUtil.getBefore1MonthDate(); //한달 전 |
|
| 1215 |
+ String beforeMonthDay = MJUtil.getBefore1DayDate(); //하루 전 |
|
| 1212 | 1216 |
if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
|
| 1213 | 1217 |
searchVO.setNtceBgnde(beforeMonthDay); |
| 1214 | 1218 |
//searchVO.setNtceEndde(toDay); |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -3166,6 +3166,7 @@ |
| 3166 | 3166 |
, pay.fileName3 AS fileName3 |
| 3167 | 3167 |
, pay.orderByCode AS orderByCode |
| 3168 | 3168 |
, pay.msgId AS msgId |
| 3169 |
+ , pay.reqDate AS reqDate |
|
| 3169 | 3170 |
FROM |
| 3170 | 3171 |
( |
| 3171 | 3172 |
SELECT |
... | ... | @@ -3194,6 +3195,7 @@ |
| 3194 | 3195 |
, M.fileName3 AS fileName3 |
| 3195 | 3196 |
, M.orderByCode AS orderByCode |
| 3196 | 3197 |
, M.msgId AS msgId |
| 3198 |
+ , M.reqDate AS reqDate |
|
| 3197 | 3199 |
FROM |
| 3198 | 3200 |
(SELECT |
| 3199 | 3201 |
DATE_FORMAT(B.REGDATE, '%Y-%m-%d %H:%i' ) AS regDate |
... | ... | @@ -3266,6 +3268,7 @@ |
| 3266 | 3268 |
, "" AS fileName3 |
| 3267 | 3269 |
, "" AS orderByCode |
| 3268 | 3270 |
, pf.SEQ AS msgId |
| 3271 |
+ , DATE_FORMAT(pf.ReqDate, '%Y-%m-%d %H:%i' ) AS reqDate |
|
| 3269 | 3272 |
FROM |
| 3270 | 3273 |
pgi_faxtran pf |
| 3271 | 3274 |
LEFT JOIN mj_fax_group_data mjf |
... | ... | @@ -3306,12 +3309,12 @@ |
| 3306 | 3309 |
</isNotEmpty> |
| 3307 | 3310 |
<isNotEmpty property="startDate"> |
| 3308 | 3311 |
<![CDATA[ |
| 3309 |
- AND DATE_FORMAT(pay.regDate, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d') |
|
| 3312 |
+ AND DATE_FORMAT(pay.reqDate, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d') |
|
| 3310 | 3313 |
]]> |
| 3311 | 3314 |
</isNotEmpty> |
| 3312 | 3315 |
<isNotEmpty property="endDate"> |
| 3313 | 3316 |
<![CDATA[ |
| 3314 |
- AND DATE_FORMAT(pay.regDate, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d') |
|
| 3317 |
+ AND DATE_FORMAT(pay.reqDate, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d') |
|
| 3315 | 3318 |
]]> |
| 3316 | 3319 |
</isNotEmpty> |
| 3317 | 3320 |
|
... | ... | @@ -3493,9 +3496,10 @@ |
| 3493 | 3496 |
|
| 3494 | 3497 |
<!-- 사용자 요금 사용내역 Sum 리스트 --> |
| 3495 | 3498 |
<select id="mjonMsgDAO.selectPayUserSumList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> |
| 3499 |
+ /* 2024.01.26 검색 기준을 regdate 에서 reqdate로 기준을 잡자고 장건영팀장 요청으로 변경처리 */ |
|
| 3496 | 3500 |
SELECT |
| 3497 |
- MAX(DATE_FORMAT(M.REGDATE, '%Y-%m-%d' )) AS maxRegDate |
|
| 3498 |
- , MIN(DATE_FORMAT(M.REGDATE, '%Y-%m-%d' )) AS minRegDate |
|
| 3501 |
+ MAX(DATE_FORMAT(M.REQ_DATE, '%Y-%m-%d' )) AS maxRegDate |
|
| 3502 |
+ , MIN(DATE_FORMAT(M.REQ_DATE, '%Y-%m-%d' )) AS minRegDate |
|
| 3499 | 3503 |
, M.msgTypeName |
| 3500 | 3504 |
, M.orderByCode |
| 3501 | 3505 |
, SUM(IF(M.msgTypeName = '단문(SMS)', 1, 0)) AS shtSendCount |
... | ... | @@ -3510,6 +3514,7 @@ |
| 3510 | 3514 |
FROM ( |
| 3511 | 3515 |
SELECT |
| 3512 | 3516 |
B.REGDATE |
| 3517 |
+ , B.REQ_DATE |
|
| 3513 | 3518 |
, B.MSG_GROUP_CNT |
| 3514 | 3519 |
, (B.EACH_PRICE * B.MSG_GROUP_CNT) AS supplyPrice |
| 3515 | 3520 |
, B.EACH_PRICE |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
... | ... | @@ -65,7 +65,9 @@ |
| 65 | 65 |
|
| 66 | 66 |
//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다. |
| 67 | 67 |
tableL.clearData(); //기존 받는사람 목록을 삭제. |
| 68 |
- tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 68 |
+ //tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 69 |
+ tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 속도 개선된 중복 검사 호출 |
|
| 70 |
+ |
|
| 69 | 71 |
_fileForm2 = []; //form file data 초기화 |
| 70 | 72 |
_fileIdx = 0; //form file idx 초기화 |
| 71 | 73 |
|
... | ... | @@ -2429,7 +2431,9 @@ |
| 2429 | 2431 |
url: url, |
| 2430 | 2432 |
data: data, |
| 2431 | 2433 |
dataType:'json', |
| 2432 |
- async: false, |
|
| 2434 |
+ async: true, |
|
| 2435 |
+ processData: false, |
|
| 2436 |
+ contentType: false, |
|
| 2433 | 2437 |
cache: false, |
| 2434 | 2438 |
success: function (returnData, status) {
|
| 2435 | 2439 |
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
... | ... | @@ -2467,7 +2471,17 @@ |
| 2467 | 2471 |
alert("주소록 불러오기에 실패하였습니다. !!");
|
| 2468 | 2472 |
} |
| 2469 | 2473 |
}, |
| 2470 |
- error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 2474 |
+ error: function (e) {
|
|
| 2475 |
+ alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e);
|
|
| 2476 |
+ }, |
|
| 2477 |
+ beforeSend : function(xmlHttpRequest) {
|
|
| 2478 |
+ //로딩창 show |
|
| 2479 |
+ $('.loading_layer').addClass('active');
|
|
| 2480 |
+ }, |
|
| 2481 |
+ complete : function(xhr, textStatus) {
|
|
| 2482 |
+ //로딩창 hide |
|
| 2483 |
+ $('.loading_layer').removeClass('active');
|
|
| 2484 |
+ } |
|
| 2471 | 2485 |
}); |
| 2472 | 2486 |
|
| 2473 | 2487 |
} |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
... | ... | @@ -2564,13 +2564,14 @@ |
| 2564 | 2564 |
url: url, |
| 2565 | 2565 |
data: data, |
| 2566 | 2566 |
dataType:'json', |
| 2567 |
- async: false, |
|
| 2567 |
+ async: true, |
|
| 2568 |
+ processData: false, |
|
| 2569 |
+ contentType: false, |
|
| 2568 | 2570 |
cache: false, |
| 2569 | 2571 |
success: function (returnData, status) {
|
| 2570 | 2572 |
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
| 2571 | 2573 |
|
| 2572 | 2574 |
if(returnData.result == "success"){
|
| 2573 |
- |
|
| 2574 | 2575 |
var addrList = returnData.resultAddrList; |
| 2575 | 2576 |
var tableData = []; |
| 2576 | 2577 |
|
... | ... | @@ -2580,14 +2581,12 @@ |
| 2580 | 2581 |
tableAddr.setData(tableData); |
| 2581 | 2582 |
return false; |
| 2582 | 2583 |
} |
| 2583 |
- |
|
| 2584 | 2584 |
//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다. |
| 2585 | 2585 |
for(var i=0; i < addrList.length; i++){
|
| 2586 | 2586 |
|
| 2587 | 2587 |
tableData.push({addrGroupNm: addrList[i].addrGrpNm, addrPhone: removeDash(addrList[i].addrPhoneNo) , addrName: addrList[i].addrNm, addrRep1: addrList[i].addrInfo1, addrRep2: addrList[i].addrInfo2, addrRep3: addrList[i].addrInfo3, addrRep4: addrList[i].addrInfo4});
|
| 2588 | 2588 |
|
| 2589 | 2589 |
} |
| 2590 |
- |
|
| 2591 | 2590 |
//우측 주소록 리스트 Tabulator에 입력해주기 |
| 2592 | 2591 |
tableAddr.setData(tableData); |
| 2593 | 2592 |
|
... | ... | @@ -2602,7 +2601,17 @@ |
| 2602 | 2601 |
alert("주소록 불러오기에 실패하였습니다. !!");
|
| 2603 | 2602 |
} |
| 2604 | 2603 |
}, |
| 2605 |
- error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 2604 |
+ error: function (e) {
|
|
| 2605 |
+ alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e);
|
|
| 2606 |
+ }, |
|
| 2607 |
+ beforeSend : function(xmlHttpRequest) {
|
|
| 2608 |
+ //로딩창 show |
|
| 2609 |
+ $('.loading_layer').addClass('active');
|
|
| 2610 |
+ }, |
|
| 2611 |
+ complete : function(xhr, textStatus) {
|
|
| 2612 |
+ //로딩창 hide |
|
| 2613 |
+ $('.loading_layer').removeClass('active');
|
|
| 2614 |
+ } |
|
| 2606 | 2615 |
}); |
| 2607 | 2616 |
|
| 2608 | 2617 |
} |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
... | ... | @@ -65,7 +65,9 @@ |
| 65 | 65 |
|
| 66 | 66 |
//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다. |
| 67 | 67 |
tableL.clearData(); //기존 받는사람 목록을 삭제. |
| 68 |
- tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 68 |
+ //tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 69 |
+ tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 받는사람 목록에 주소 정보 입력하기 |
|
| 70 |
+ |
|
| 69 | 71 |
_fileForm2 = []; //form file data 초기화 |
| 70 | 72 |
_fileIdx = 0; //form file idx 초기화 |
| 71 | 73 |
|
... | ... | @@ -2688,7 +2690,9 @@ |
| 2688 | 2690 |
url: url, |
| 2689 | 2691 |
data: data, |
| 2690 | 2692 |
dataType:'json', |
| 2691 |
- async: false, |
|
| 2693 |
+ async: true, |
|
| 2694 |
+ processData: false, |
|
| 2695 |
+ contentType: false, |
|
| 2692 | 2696 |
cache: false, |
| 2693 | 2697 |
success: function (returnData, status) {
|
| 2694 | 2698 |
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
... | ... | @@ -2726,7 +2730,17 @@ |
| 2726 | 2730 |
alert("주소록 불러오기에 실패하였습니다. !!");
|
| 2727 | 2731 |
} |
| 2728 | 2732 |
}, |
| 2729 |
- error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 2733 |
+ error: function (e) {
|
|
| 2734 |
+ alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e);
|
|
| 2735 |
+ }, |
|
| 2736 |
+ beforeSend : function(xmlHttpRequest) {
|
|
| 2737 |
+ //로딩창 show |
|
| 2738 |
+ $('.loading_layer').addClass('active');
|
|
| 2739 |
+ }, |
|
| 2740 |
+ complete : function(xhr, textStatus) {
|
|
| 2741 |
+ //로딩창 hide |
|
| 2742 |
+ $('.loading_layer').removeClass('active');
|
|
| 2743 |
+ } |
|
| 2730 | 2744 |
}); |
| 2731 | 2745 |
|
| 2732 | 2746 |
} |
--- src/main/webapp/js/MJUtill.js
+++ src/main/webapp/js/MJUtill.js
... | ... | @@ -575,6 +575,7 @@ |
| 575 | 575 |
|
| 576 | 576 |
//중복 전화번호 체크하기 |
| 577 | 577 |
function dupliPhoneData(data){
|
| 578 |
+ |
|
| 578 | 579 |
var chk = true; //중복값 유무 |
| 579 | 580 |
var uniqData = []; // 중복값 삭제 후 데이터 저장 |
| 580 | 581 |
var dupCnt = 0; |
... | ... | @@ -622,6 +623,23 @@ |
| 622 | 623 |
return uniqData; |
| 623 | 624 |
} |
| 624 | 625 |
|
| 626 |
+ |
|
| 627 |
+//연락처 중복검사 속도 개선 버전 |
|
| 628 |
+function getSpupDupliPhoneDataChk(data){
|
|
| 629 |
+ |
|
| 630 |
+ var dataLen = data.length; |
|
| 631 |
+ const arrUnique = data.filter((character, idx, arr)=>{
|
|
| 632 |
+ return arr.findIndex((item) => item.phone === character.phone) === idx |
|
| 633 |
+ }); |
|
| 634 |
+ |
|
| 635 |
+ var uniqLen = arrUnique.length; |
|
| 636 |
+ var dupCnt = dataLen - uniqLen; |
|
| 637 |
+ //중복건수 텍스트 입력해 주기 |
|
| 638 |
+ $("#rowDupCnt").text(dupCnt);
|
|
| 639 |
+ |
|
| 640 |
+ return arrUnique; |
|
| 641 |
+} |
|
| 642 |
+ |
|
| 625 | 643 |
// Get 중복 연락처 |
| 626 | 644 |
function GetDupliPhoneDataReal(item) {
|
| 627 | 645 |
var isDuplicate = false; |
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?