이호영 이호영 2024-12-11
팩스 주소록 완료
@8d09a13a224ceeedc744f96727bc354d959526d0
src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_Addr_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_Addr_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_Addr_SQL_Mysql.xml
@@ -45,6 +45,11 @@
 		</isNotEmpty>		
 		
 		AND	(C.RECV_STATUS = 'Y' OR C.RECV_STATUS IS NULL)
+		AND 
+		(
+			A.ADDR_GRP_ID = 0
+			or B.DELETE_YN ='N'
+		)
 		
 		<isNotEmpty property="addrIdList">
 			<iterate prepend="AND A.ADDR_ID IN " open="(" close=")" conjunction="," property="addrIdList">
@@ -161,6 +166,11 @@
 				</isNotEmpty>		
 				
 				AND	(C.RECV_STATUS = 'Y' OR C.RECV_STATUS IS NULL)
+				AND 
+				(
+					A.ADDR_GRP_ID = 0
+					or B.DELETE_YN ='N'
+				)
 				
 				<isNotEmpty property="addrIdList">
 					<iterate prepend="AND A.ADDR_ID IN " open="(" close=")" conjunction="," property="addrIdList">
@@ -407,7 +417,12 @@
 		WHERE
 			A.MBER_ID = #mberId#
 			AND	(A.RECV_STATUS = 'Y' OR A.RECV_STATUS = 'S' OR A.RECV_STATUS IS NULL)
-			AND A.DELETE_YN = 'N'
+			AND 
+			( A.ADDR_GRP_ID = 0 or
+				A.ADDR_GRP_ID in (
+					select ADDR_GRP_ID from mj_fax_addr_grp mfag where MBER_ID = #mberId# and DELETE_YN ='N'
+				)
+			)
 	</select>
 	
 	<!-- 주소록 상세  조회 -->
src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
@@ -60,17 +60,21 @@
 			</iterate>
 		</isNotEmpty>		
 		
-		AND      A.ADDR_GRP_ID in (
-							        select addr_grp_id
-									from mj_addr_grp	
-									where 1=1
-										<isNotEmpty property="mberId">
-											AND MBER_ID = #mberId#
-										</isNotEmpty>
-										<isNotEmpty property="searchAddrGrpId">
-											AND ADDR_GRP_ID = #searchAddrGrpId#
-										</isNotEmpty>			
-		        )				
+		AND (
+		A.ADDR_GRP_ID = 0
+		or A.ADDR_GRP_ID in (
+				        select addr_grp_id
+						from mj_addr_grp	
+						where 1=1
+								AND DELETE_YN = 'N'
+							<isNotEmpty property="mberId">
+								AND MBER_ID = #mberId#
+							</isNotEmpty>
+							<isNotEmpty property="searchAddrGrpId">
+								AND ADDR_GRP_ID = #searchAddrGrpId#
+							</isNotEmpty>			
+				)		
+			)		
 
 		<isNotEmpty property="searchKeyword">
 	 		<isEqual property="searchCondition" compareValue="">
@@ -183,7 +187,9 @@
 			</iterate>
 		</isNotEmpty>		
 		
-		AND      A.ADDR_GRP_ID in (
+		AND
+		A.ADDR_GRP_ID = 0
+		or A.ADDR_GRP_ID in (
 							        select addr_grp_id
 									from mj_addr_grp	
 									where 1=1
@@ -194,6 +200,7 @@
 											AND ADDR_GRP_ID = #addrGrpId#
 										</isNotEmpty>			
 		        )		
+			)		
 		
 		<isNotEmpty property="searchKeyword">
 	 		<isEqual property="searchCondition" compareValue="">
src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
@@ -227,17 +227,6 @@
 	    console.log('Tabulator data after getData:', $tableClip.getData());
 	});
 
-
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
 });
 
 
src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
@@ -678,6 +678,7 @@
 
 // 주소록 그룹정보 불러오기
 function getAddrGroupList() {
+	console.log('getAddrGroupList: ', getAddrGroupList);
     $.ajax({
         type : "POST",
         async : false,
@@ -706,8 +707,11 @@
 	for (var j = 0; j < jsonList.length; j++) {
 		sHtml += "	<option value='" + $.trim(jsonList[j].addrGrpId) + "' />" + $.trim(jsonList[j].addrGrpNm) + "</option>";
 	}
-	    	
-	$("#addrGrpIdInfo").html(sHtml);
+
+	var tabulNm = fn_utils_getTabulatorNm();
+	var tabluC = '.'+tabulNm
+	$(tabluC+" #addrGrpIdInfo").html(sHtml);
+	console.log('sHtml : ', sHtml);
 }
 
 $(document).on('change', '#addrGrpIdInfo', function() {
@@ -938,6 +942,8 @@
 //function fn_tabToggle('1')
 function fn_tabToggle(tabNum){
 	var tabId = '#tab'+tabNum;
+	console.log('tabNum : ', tabNum);
+	console.log('tabId : ', tabId );
 	$('.tab_c').hide();
 	$(tabId).show();
 	getAddrGroupList();
@@ -974,13 +980,16 @@
 						</ul>
 						<!--// tab button -->
 					</div>
+<!-- 					<div id="tab1" class="tab_c tableExcel" style="display: none;"> -->
 					<div id="tab1" class="tab_c tableExcel">
 						<%@include file="/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp" %>
 					</div>
 					<div id="tab2" class="tab_c tableClip" style="display: none;">
+<!-- 					<div id="tab2" class="tab_c tableClip"> -->
 						<%@include file="/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp" %>
 					</div>
 					<div id="tab3" class="tab_c tableSelf" style="display: none;">
+<!-- 					<div id="tab3" class="tab_c tableSelf"> -->
 						<%@include file="/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforSelf.jsp" %>
 					</div>
 				</div>
src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp
@@ -23,31 +23,6 @@
 }
 
 
-// 주소록그룹 콤보박스 유지
-function setSelectSetting(selectVal) {
-	$("#addrRegistSelect").val(selectVal).prop("selected", true);	
-}
-	
-function linkPage(pageNo){
-	if ($('#searchKeywordAddr').val() != "" && $('#searchKeywordAddr').val() != null && $('#searchKeywordAddr').val() != undefined) {
-		// 문자전송 검색용
-		$("#msgStartKeyword").val("");
-	}
-
-	var searchForm = document.searchAddrForm;
-	searchForm.pageIndex.value = pageNo;
-	searchForm.pageUnit.value = $('#pageUnit').val();
-	searchForm.searchCondition.value = $('#searchConditionAddr').val();
-	searchForm.searchKeyword.value = $('#searchKeywordAddr').val();
-	searchForm.startKeyword.value = $("#msgStartKeyword").val();
-	
-	var sendData = $(document.searchAddrForm).serializeArray();
-	$("#adr1_right").load("/web/mjon/addr/selectAddrAjax.do", sendData, function(response, status, xhr){tableAllChk();});
-	addrGroupLoadAjax();
-}
-
-
-
 //#############################################################################################
 //Tabulator
 //#############################################################################################
@@ -307,7 +282,7 @@
 	                        <p>- 엑셀(EXCEL), 텍스트(TXT) 파일로 작성된 주소록 내용을 복사하여 등록 가능합니다.</p>
 	                        <p>- 많은 양의 데이터를 입력하시려면 ‘주소록 복사(Ctrl+C) + 붙여넣기(Ctrl+V)’를 이용해주세요.</p>
 	                        <p>- 입력 내용은 (Tab) 또는 (,) 기호로 구분하여 입력하여야 합니다.</p>
-	                        <p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p>
+	                        <p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p>
 	                        <p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
 <!-- 	                        <button type="button" class="txt_btn" onclick="location.href='/download/addr/주소록_대량등록.zip'"><i></i>TXT샘플 다운로드</button>                         -->
 	                    </div>
@@ -382,6 +357,7 @@
 									<option value="addrComment">메모</option>
 								</select>
 							</div>
+						</div>
                      </div>					
 					
 					<div class="drag_drop_wrap callList_box" id="tabulator_clip">
src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
@@ -17,10 +17,6 @@
 
 
 
-// 주소록그룹 콤보박스 유지
-function setSelectSetting(selectVal) {
-	$("#addrRegistSelect").val(selectVal).prop("selected", true);	
-}
 
 $(document).ready(function(){
     // 파일 선택 버튼 클릭 이벤트
@@ -248,19 +244,12 @@
 <!-- 엑셀입력 -->
 <div class="popCont current pop_more_cont" id="popCont_1">
 	<div class="titBox">
-		<p>- 엑셀(EXCEL) 파일로 주소록을 한 번에 최대 2만건까지 등록하여 간편하게 발송 및 관리하실 수 있습니다.</p>
-		<p>- 반드시 샘플파일을 다운로드하여 작성방법을 확인하신 후 정해진 양식에 맞추어 주소록을 작성하셔야 합니다.</p>
-		<p>  &nbsp;&nbsp;※ 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p>
-		<p>  &nbsp;&nbsp;※ 주소록 관리 메뉴에서 다운로드 받으신 엑셀 파일 또한 업로드 양식에 맞추어 작성하셔야 하며, </p>
-		<p>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;주소록에 이미 등록된 팩스 번호는 업데이트 되지 않으므로 기존 주소록에서 해당 팩스 번호를 삭제한 후 재등록해 주시기 바랍니다.</p>
-		<p>- 쉼표(,), 구분선(|), 역슬래시(\, ₩), 작은따옴표('), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
-		<p>- 팩스 번호는 필수입력 항목입니다.</p>
-		<p>- 팩스번호 형태는 02-1234-5678 또는 0212345678 모두 가능합니다. 단, 공백은 허용되지 않습니다.</p>
-		<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
-		<p>- 이름 20byte, 메모 250byte까지 입력 가능합니다.</p>
-		<p>- 첨부가능 파일 : xlsx, xls(최대용량 3MB)</p>
-		<p>- ‘오류 검사’를 통해 등록된 데이터에 팩스 번호 입력 오류를 확인하실 수 있습니다.</p>
-		<p>- 주소록 등록이 어려우신 경우에는 주소록 입력대행 메뉴를 이용하시면 됩니다.</p>
+			<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.</p>
+			<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
+			<p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
+			<p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p>
+			<p>- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p>
+			<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
 	</div>
 	<div class="pop_more_wrap">
 		<button type="button" class="pop_more" onclick="popMore(this);">더보기<i></i></button>
src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforSelf.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforSelf.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforSelf.jsp
@@ -76,8 +76,8 @@
 		return '';
 	} 
 	
-	if (!isValidPhoneNumber(formattedNumber)) { // 유효성 검사
-		alert('휴대폰 형식에 맞지 않는 데이터입니다.\nex) 발송불가 특수문자, 자릿수 오류 등');
+	if (!checkFaxNum(formattedNumber)) { // 유효성 검사
+		alert('팩스번호 형식에 맞지 않는 데이터입니다.\nex) 발송불가 특수문자, 자릿수 오류 등');
 		$(tabluC+" #rowTotCnt").text(totalCnt-1);
 		return '';
 	}
@@ -100,8 +100,8 @@
 <!-- 	                        <p>- 엑셀(EXCEL), 텍스트(TXT) 파일로 작성된 주소록 내용을 복사하여 등록 가능합니다.</p> -->
 <!-- 	                        <p>- 많은 양의 데이터를 입력하시려면 ‘주소록 복사(Ctrl+C) + 붙여넣기(Ctrl+V)’를 이용해주세요.</p> -->
 	                        <p>- 셀간 이동은 Tab으로 가능합니다.</p>
-	                        <p>- 핸드폰 번호를 입력하지 않은 행은 저장되지 않습니다.</p>
-	                        <p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p>
+	                        <p>- 팩스 번호를 입력하지 않은 행은 저장되지 않습니다.</p>
+	                        <p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p>
 	                        <p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
 <!-- 	                        <button type="button" class="txt_btn" onclick="location.href='/download/addr/주소록_대량등록.zip'"><i></i>TXT샘플 다운로드</button>                         -->
 	                    </div>
src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
@@ -665,10 +665,12 @@
 			<!-- 엑셀입력 -->
 			<div class="popCont current pop_more_cont" id="popCont_1">
 				<div class="titBox">
-					<p>- 최대 2만 건까지 등록할 수 있습니다.</p>
-					<p>- [엑셀 불러오기]시 문서의 A, B열을 불러옵니다.(지원하는 파일 형식 : xls, xlsx)</p>
-					<p>- 이름 : 20byte까지 입력 가능합니다.</p>
+					<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.</p>
+					<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
+					<p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
+					<p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p>
 					<p>- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p>
+					<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
 				</div>
 				<div class="pop_more_wrap">
 						<button type="button" class="pop_more" onclick="popMore(this);">더보기<i></i></button>
src/main/webapp/js/MJUtill.js
--- src/main/webapp/js/MJUtill.js
+++ src/main/webapp/js/MJUtill.js
@@ -58,7 +58,9 @@
 function checkFaxNum(str) {
 	str = removeDash(str);
 	var subNum = str.substring(0,3);
-	var regExp = /^(02[0-9]{1}|030|050|060|070|080|0[3-6]{1}[1-5]{1}|1[0-9]{1}[0-9]{1})$/; //지역번호(일반전화) 형식까지 체크해주는 정규식
+	/*var regExp = /^(02[0-9]{1}|030|050|060|070|080|0[3-6]{1}[1-5]{1}|1[0-9]{1}[0-9]{1})$/; //지역번호(일반전화) 형식까지 체크해주는 정규식
+	return regExp.test(subNum);*/
+	var regExp = /^(02|0[3-6][1-4]|030|050|060|070|080|1\d{2})$/;
 	return regExp.test(subNum);
 }
 
src/main/webapp/js/user/fax/addr/event.js
--- src/main/webapp/js/user/fax/addr/event.js
+++ src/main/webapp/js/user/fax/addr/event.js
@@ -80,7 +80,7 @@
 			const cleanedNumber = formattedNumber.replace(/[^0-9]/g, ''); // 숫자만 남김
 			
 			if (!existingNumbers.has(cleanedNumber)) { // 중복 번호 체크
-				if (isValidPhoneNumber(formattedNumber)) { // 유효성 검사
+				if (checkFaxNum(formattedNumber)) { // 유효성 검사
 					row.addrPhoneNo = formattedNumber;
 					existingNumbers.add(cleanedNumber); // 추가된 번호를 기존 목록에 추가
 					newData.push(row); // 유효한 데이터만 새로운 배열에 추가
@@ -271,6 +271,7 @@
 		// 초기 후 필드 값 셋팅하기
 		$('[data-group="' + group + '"] .field-selector').each(function(index) {
 			var selectedField = $(this).val();
+			console.log('selectedField : ', selectedField);
 			//  ASCII 문자 코드 사용 - 65=A, 66=B ...
 			var field = String.fromCharCode(65 + index);
 			if (selectedField) {
src/main/webapp/js/user/fax/addr/init.js
--- src/main/webapp/js/user/fax/addr/init.js
+++ src/main/webapp/js/user/fax/addr/init.js
@@ -105,6 +105,11 @@
 		 	{title:"미등록 결과", field:"result", hozAlign:"center", headerHozAlign: "center", width:125}
 	 	]
 	});
+
+
+	// 직접입력 타블레이터
+	fn_selfmakeTable();
+	
 	
 	// 타뷸레이터 width값 변경 시 위에 select width 값 변경
 	var titleArray = ["A","B","C","D","E","F","G"];
@@ -172,12 +177,12 @@
 		},
 		data: tableData,
 		columns: [
-			{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
+			{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", width:50, headerSort: false, cellClick: function(e, cell) {
 				cell.getRow().toggleSelect();
 			}},
-			{formatter:"rownum", hozAlign:"center" ,title:"No", headerHozAlign:"center", width:40},
-			{title:"이름", field:"addrNm", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
-			{title:"휴대폰", field:"addrPhoneNo", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"
+			{formatter:"rownum", hozAlign:"center" ,title:"No", headerHozAlign:"center", width:100},
+			{title:"이름", field:"addrNm", hozAlign:"center", headerHozAlign: "center", width:200, validator:["maxLength:100"], editor:"input"},
+			{title:"팩스번호", field:"addrPhoneNo", hozAlign:"center", headerHozAlign: "center", width:269, validator:["maxLength:100"], editor:"input"
 				, cellEdited:function(cell){
 					var currentValue = cell.getValue();
 					console.log('cell.getValue() : ', currentValue);
@@ -195,11 +200,7 @@
 					}
 				}
 			},
-			{title:"[*1*]", field:"addrInfo1", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
-			{title:"[*2*]", field:"addrInfo2", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
-			{title:"[*3*]", field:"addrInfo3", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
-			{title:"[*4*]", field:"addrInfo4", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
-			{title:"메모", field:"addrComment", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}
+			{title:"메모", field:"addrComment", hozAlign:"center", headerHozAlign: "center", width:297, validator:["maxLength:100"], editor:"input"}
 		],
 		navigation: true // 키보드 탐색 활성화
 	});
Add a comment
List