이호영 이호영 2025-02-12
테스트 수정사항 완료
@4a3faa34b85b5aee31da0bb30b5a96042b719fdb
src/main/java/itn/com/cmm/util/DateUtils.java
--- src/main/java/itn/com/cmm/util/DateUtils.java
+++ src/main/java/itn/com/cmm/util/DateUtils.java
@@ -194,7 +194,6 @@
 		LocalDateTime dateTime = LocalDateTime.parse(str, inputFormatter);
 		
 		// 원하는 출력 포맷 적용
-//		DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("MM-dd HH:mm");
 		DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(formatter);
 		String formattedDate = dateTime.format(outputFormatter);
 		
src/main/java/itn/com/cmm/util/MsgSendUtils.java
--- src/main/java/itn/com/cmm/util/MsgSendUtils.java
+++ src/main/java/itn/com/cmm/util/MsgSendUtils.java
@@ -276,7 +276,6 @@
 				for (Map.Entry<String, Function<MjonMsgSendVO, String>> entry : placeholders.entrySet()) {
 					String placeholder = entry.getKey();
 					String value = entry.getValue().apply(sendVO);
-					System.out.println("");
 //					log.info(" + smsTxtTemp [{}]", smsTxtTemp);
 //					log.info(" + placeholder [{}]", placeholder);
 //					log.info(" + value [{}]", value);
src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java
--- src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java
+++ src/main/java/itn/let/kakao/user/sent/web/KakaoSentController.java
@@ -498,7 +498,6 @@
      * 발송관리 엑셀다운로드 기능  - 카카오톡
      * @param searchVO
      * @param model
-     * @return	"/web/mjon/msgsent/msgSentExcelDownLoadAjax.do"
      * @throws Exception
      */
 	@RequestMapping(value= {"/web/mjon/msgsent/kakaoSentExcelDownLoadAjax.do"})
src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataVO.java
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataVO.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataVO.java
@@ -28,6 +28,7 @@
 	private List msgIdList;
 	private List msgSeqList;
 	private String subject;
+	private String subjectChkYn;
 	private String mmsSubject;
 	private String smsTxt;
 	private String smsLen;
src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
@@ -5963,7 +5963,6 @@
      * 발송관리 엑셀다운로드 기능 
      * @param searchVO
      * @param model
-     * @return	"/web/mjon/msgsent/msgSentExcelDownLoadAjax.do"
      * @throws Exception
      */
 	@RequestMapping(value= {"/web/mjon/msgdata/recieveCallToListExcelDownAjax.do"})
src/main/java/itn/let/mjo/msgsent/service/MjonMsgDetailSentVO.java
--- src/main/java/itn/let/mjo/msgsent/service/MjonMsgDetailSentVO.java
+++ src/main/java/itn/let/mjo/msgsent/service/MjonMsgDetailSentVO.java
@@ -25,6 +25,7 @@
 	private String userId;
 	private String smsTxt;
 	private String subject;
+	private String subjectChkYn;
 	private String msgType;
 	private String fileCnt;
 	private String msgKind;
src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java
--- src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java
+++ src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java
@@ -27,8 +27,8 @@
 	private String smsTxt;			//문자 내용
 	private String subject;			//문자 제목
 	private String subjectChkYn;			//문자 제목
-	private Date regdate;			//문자 등록일자
-	private Date reqdate;			//문자 예약 발송 일자
+	private String regDate;			//문자 등록일자
+	private String reqDate;			//문자 예약 발송 일자
 	private String callFrom;		//발신번호
 	private String callTo;			//수신자 번호
 	private List callToList;		//수신자 번호 리스트 
src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java
--- src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java
+++ src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java
@@ -13,8 +13,6 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -24,7 +22,6 @@
 import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.FillPatternType;
 import org.apache.poi.ss.usermodel.Font;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.ss.usermodel.IndexedColors;
@@ -33,12 +30,11 @@
 import org.apache.poi.ss.usermodel.VerticalAlignment;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.XSSFFont;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
 
 import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import egovframework.rte.fdl.idgnr.EgovIdGnrService;
+import itn.com.cmm.util.StringUtil2;
 import itn.let.cmm.vo.FileInfoVO;
 import itn.let.fax.addr.service.FaxAddrGroupVO;
 import itn.let.mjo.addr.service.AddrGroupVO;
@@ -184,6 +180,8 @@
 
 		// 목록
 		MjonMsgDetailSentVO resultVO = mjonMsgSentDAO.selectAllMsgSentDetailView(mjonMsgDetailSentVO);
+		
+		log.info(" + ::  [{}]", resultVO.getSmsTxt());
 		
 		
 		// 성공 대기 실패 발송금액 분할여부
@@ -479,6 +477,9 @@
 	public List<MjonMsgDetailSentVO> findByMsgDetailListAjax(MjonMsgDetailSentVO mjonMsgDetailSentVO) {
 		
 		List<MjonMsgDetailSentVO> list = mjonMsgSentDAO.findByMsgDetailListAjax(mjonMsgDetailSentVO);
+		list.stream().forEach(t->{
+			t.setCallTo(StringUtil2.formatPhone(t.getCallTo())); 
+		});
 		
 		return list; 
 	}
@@ -628,8 +629,14 @@
 	
 			for (int i = 0; i < resultAllSentList.size(); i++) {
 				MjonMsgSentVO vo = resultAllSentList.get(i);
-				data[i][0] = i;
-				data[i][1] = vo.getReqdate();
+				data[i][0] = i+1;
+				data[i][1] = vo.getReqDate();
+//				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//				data[i][1] = sdf.format(vo.getReqDate());
+				
+
+				log.info("엑셀에 넣을 데이터: [{}]", data[i][1]);
+
 				data[i][2] = "H".equals(vo.getSendKind()) ? "WEB" : "API";
 				
 				String msgType="단문";
src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java
--- src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java
+++ src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java
@@ -247,12 +247,16 @@
     	 //* SEND_KIND = "H"
 
     	// 전체 영역
-    	model.addAttribute("H_allSentCntVO", this.getResultCntProc(H_smsMsgCnt));
+    	log.info("all");
+    	model.addAttribute("H_allSentCntVO", this.getResultCntProc(totalMsgCnt));
     	// 전체 단문(SMS)
+    	log.info("sms");
     	model.addAttribute("H_smsSentCntVO", this.getResultCntProc(H_smsMsgCnt));
     	// 전체 장문(LMS)
+    	log.info("lms");
     	model.addAttribute("H_lmsSentCntVO", this.getResultCntProc(H_lmsMsgCnt));
-    	// 전체 장문(LMS)
+    	// 전체 그림(MMS)
+    	log.info("mms");
     	model.addAttribute("H_mmsSentCntVO", this.getResultCntProc(H_mmsMsgCnt));
     	
     	
@@ -283,14 +287,17 @@
     	cntVO.setWaitCnt(msgCnt.stream()
     			.filter(f->"W".equals(f.getMsgResultSts()))
     			.mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum());
+    	log.info(" :: cntVO.getWaitCnt() :: [{}]", cntVO.getWaitCnt());
     	// 전체 성공 갯수
     	cntVO.setSuccCnt(msgCnt.stream()
     			.filter(f->"S".equals(f.getMsgResultSts()))
     			.mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum());
+    	log.info(" :: cntVO.getSuccCnt() :: [{}]", cntVO.getSuccCnt());
     	// 전체 실패 갯수
     	cntVO.setFailCnt(msgCnt.stream()
     			.filter(f->"F".equals(f.getMsgResultSts()))
     			.mapToInt(t -> Integer.parseInt(t.getMsgResultCnt())).sum());
+    	log.info(" :: cntVO.getFailCnt() :: [{}]", cntVO.getFailCnt());
 
     	// 전체 갯수 구하기
     	cntVO.setTotCnt(cntVO.getWaitCnt() + cntVO.getSuccCnt() + cntVO.getFailCnt());
@@ -314,6 +321,7 @@
 			
 
 	    	log.info(" ListView pageIndex :: [{}]", mjonMsgSentVO.getPageIndex());
+	    	log.info(" ListView pageUnit :: [{}]", mjonMsgSentVO.getPageUnit());
 				
 				
 			//로그인 권한정보 불러오기
src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml
@@ -371,6 +371,7 @@
 			, MD.FILE_PATH2 as filePath2
 			, MD.FILE_PATH3 as filePath3 
 			, TIMESTAMPDIFF(minute, DATE_FORMAT(MGD.REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) as diffMin
+			, SUBJECT_CHK_YN as subjectChkYn
 		from
 			MJ_MSG_GROUP_DATA MGD
 		inner join MJ_MSG_DATA MD on
@@ -429,8 +430,8 @@
 			, B.SMS_TXT as smsTxt
 			, B.SUBJECT as subject
 			, B.SUBJECT_CHK_YN as subjectChkYn
-			, DATE_FORMAT(B.REGDATE, '%Y-%m-%d %T') AS regdate
-			, DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %T') AS reqDate
+			, CAST(DATE_FORMAT(B.REGDATE, '%Y-%m-%d %H:%i') AS CHAR) AS regDate
+			, CAST(DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %H:%i') AS CHAR) AS reqDate
 			, (
 				CASE
 					WHEN B.DELAY_YN = 'Y' AND B.DELAY_COMPLETE_YN = 'N' THEN DATE_ADD(B.REQ_DATE, INTERVAL -30 MINUTE)
@@ -452,7 +453,7 @@
 			, B.DELAY_COMPLETE_YN as delayCompleteYn
 			, B.RESERVE_YN as reserveYn
 			, B.RESERVE_C_YN as reserveCYn
-			, TIMESTAMPDIFF(minute, DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %T'), DATE_FORMAT(NOW(), '%Y-%m-%d %T')) as diffMin
+			, TIMESTAMPDIFF(minute, CAST(DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %H:%i') AS CHAR), DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i')) as diffMin
 		FROM MJ_MSG_DATA A
 				 JOIN MJ_MSG_GROUP_DATA B ON A.MSG_GROUP_ID = B.MSG_GROUP_ID
 		WHERE (B.DEL_FLAG = 'N' OR B.DEL_FLAG IS NULL)
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
@@ -22,6 +22,7 @@
 <%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %>
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+<%@ taglib prefix="fnc" uri="/WEB-INF/tld/functions.tld"%>
 <% pageContext.setAttribute("newLineChar", "\r\n"); %>
 <% pageContext.setAttribute("newLineChar2", "\n"); %>
 <% String serverName = request.getServerName(); %>
@@ -4157,8 +4158,10 @@
 													</td>
 													<td>
 														<c:choose>
-															<c:when test="${not empty mjonMsgSentList.regdate}">
-																<fmt:formatDate value="${mjonMsgSentList.regdate}" pattern="MM-dd HH:mm"/>
+															<c:when test="${not empty mjonMsgSentList.regDate}">
+<%-- 																<fmt:formatDate value="${mjonMsgSentList.regDate}" pattern="MM-dd HH:mm"/> --%>
+																${fnc:setStrToDataFormatter(mjonMsgSentList.regDate, 'MM-dd HH:mm') }
+<%-- 																<c:out value="${mjonMsgSentList.regDate}" /> --%>
 															</c:when>
 															<c:otherwise>
 																-
@@ -4367,8 +4370,11 @@
 													</td>
 													<td>
 														<c:choose>
-															<c:when test="${not empty mjonMsgSentList.regdate}">
-																<fmt:formatDate value="${mjonMsgSentList.regdate}" pattern="MM-dd HH:mm"/>
+															<c:when test="${not empty mjonMsgSentList.regDate}">
+<%-- 																<fmt:formatDate value="${mjonMsgSentList.regDate}" pattern="MM-dd HH:mm"/> --%>
+<%-- 																<c:out value="${mjonMsgSentList.regDate}" /> --%>
+																
+																${fnc:setStrToDataFormatter(mjonMsgSentList.regDate, 'MM-dd HH:mm') }
 															</c:when>
 															<c:otherwise>
 																-
@@ -4586,8 +4592,8 @@
 												</td>
 												<td>
 													<c:choose>
-														<c:when test="${not empty mjonMsgDelaySentList.regdate}">
-															<fmt:formatDate value="${mjonMsgDelaySentList.regdate}" pattern="yyyy-MM-dd HH:mm"/>
+														<c:when test="${not empty mjonMsgDelaySentList.regDate}">
+															<fmt:formatDate value="${mjonMsgDelaySentList.regDate}" pattern="yyyy-MM-dd HH:mm"/>
 														</c:when>
 														<c:otherwise>
 															-
@@ -4785,6 +4791,10 @@
 														<td>
 															<c:choose>
 																<c:when test="${not empty kakaoResultList.regDate}">
+																
+																	<c:out value="${kakaoResultList.regDate}" />
+																	
+<%-- 																		${fnc:setStrToDataFormatter(kakaoResultList.regDate, 'MM-dd HH:mm') } --%>
 																	<fmt:parseDate value="${kakaoResultList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
 																	<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
 																</c:when>
@@ -4925,8 +4935,10 @@
 														<td>
 															<c:choose>
 																<c:when test="${not empty kakaoReserveList.regDate}">
-																	<fmt:parseDate value="${kakaoReserveList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
-																	<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/>
+																	<c:out value="${kakaoReserveList.regDate}" />
+																	${fnc:setStrToDataFormatter(kakaoReserveList.regDate, 'MM-dd HH:mm') }
+<%-- 																	<fmt:parseDate value="${kakaoReserveList.regDate}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/> --%>
+<%-- 																	<fmt:formatDate value="${dateValue}" pattern="MM-dd HH:mm"/> --%>
 																	
 																</c:when>
 																<c:otherwise>
@@ -5073,8 +5085,11 @@
 													<td>
 														<c:choose>
 															<c:when test="${not empty kakaoDelayInfo.regDate}">
-																<fmt:parseDate value="${kakaoDelayInfo.regDate}" var="kakaoDelayRegdate" pattern="yyyy-MM-dd HH:mm:ss"/>
-																<fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/>
+<%-- 																<c:out value="${kakaoDelayInfo.regDate}" /> --%>
+																	${fnc:setStrToDataFormatter(kakaoDelayInfo.regDate, 'MM-dd HH:mm') }
+<%-- 																<fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/> --%>
+<%-- 																<fmt:parseDate value="${kakaoDelayInfo.regDate}" var="kakaoDelayRegdate" pattern="yyyy-MM-dd HH:mm:ss"/> --%>
+<%-- 																<fmt:formatDate value="${kakaoDelayRegdate}" pattern="MM-dd HH:mm"/> --%>
 															</c:when>
 															<c:otherwise>
 																-
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
@@ -3985,6 +3985,8 @@
 					</c:otherwise>
 				</c:choose>
 			</h2>
+			<!-- /web/mjon/msgdata/selectMsgDataSMLViewAjax.do -->
+			<!-- MsgDataSMLView.jsp -->
 			<button type="button" class="button info" onclick="infoPop('selectMsgDataView1');">사용안내</button>
 	    </div>
 	    <div class="send_general">
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
@@ -123,18 +123,18 @@
 			</div>
 		</div>
 	</div>
-    <div class="inner">
-        <!-- send top -->
-        <div class="send_top">
-            <!-- tab button -->
-            <ul class="tabType1">
-                <li class="tab ${tabDision eq 'tab01' ? 'active' : ''}">
-                	<button type="button" onclick="javascript:fnMsgDataView(); return false;">일반문자</button>
-                </li>
-                <li class="tab ${tabDision eq 'tab02' ? 'active' : ''}">
-                	<button type="button" onclick="javascript:fnMsgExcelDataView(); return false;">대량문자(광고문자)</button>
-                </li>
-            </ul><!--// tab button -->
+	<div class="inner">
+		<!-- send top -->
+		<div class="send_top">
+			<!-- tab button -->
+			<ul class="tabType1">
+				<li class="tab ${tabDision eq 'tab01' ? 'active' : ''}">
+					<button type="button" onclick="javascript:fnMsgDataView(); return false;">일반문자</button>
+				</li>
+				<li class="tab ${tabDision eq 'tab02' ? 'active' : ''}">
+					<button type="button" onclick="javascript:fnMsgExcelDataView(); return false;">대량문자(광고문자)</button>
+				</li>
+			</ul><!--// tab button -->
 			<!-- tab content1 -->
 			<!-- <span id="contentArea"></span> -->
 			<div class="top_content  ${tabDision eq 'tab02' ? 'get_excel' : ''} current contentArea" id="tab1_1" style="min-height: 555px;"></div>
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax.jsp
@@ -151,7 +151,7 @@
         <div>
 			<p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p>
             <label for="pageUnit" class="label">줄보기 선택</label>
-            <select id="pageUnit" name="pageUnit" class="selType2">
+            <select id="pageUnitS" class="selType2">
                 <option value="10" <c:if test="${paginationInfo.recordCountPerPage == '10'}">selected</c:if> >10개보기</option>
                 <option value="20" <c:if test="${paginationInfo.recordCountPerPage == '20'}">selected</c:if> >20개보기</option>
                 <option value="30" <c:if test="${paginationInfo.recordCountPerPage == '30'}">selected</c:if> >30개보기</option>
@@ -236,16 +236,16 @@
 													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
 													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
 												 --%>
-												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.delayOrgTime}" /></p>	
+												<p>${result.delayOrgTime}</p>	
 											</c:when>
 											<c:otherwise>
-												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.reqdate}" /></p>
+												<p>${result.reqDate}</p>
 											</c:otherwise>
 										</c:choose>
 										
 									</c:when>
 									<c:otherwise>
-										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${result.reqdate}" /></p>
+										<p>${result.reqDate}</p>
 										
 									</c:otherwise>
 								</c:choose>
@@ -343,7 +343,7 @@
 <%--             <button type="button" class="btnType btnType15" onClick="javascript:fnAddBlockNo('${mjonMsgSentVO.listType}'); return false;"></i>수신거부번호 등록</button> --%>
 		</div>
 		<div class="table_btn_right">
-			<button type="button" class="excel_btn btnType" onClick="javascript:fnExcelDownLoad(); return false;"><i class="downroad"></i>엑셀 다운로드</button>
+			<button type="button" class="excel_btn btnType" onClick="javascript:fnExcelDownLoad(); return false;"><i class="downroad"></i>발송결과 리스트</button>
 <%-- 			<button type="button" class="print_btn btnType" onClick="javascript:fnShowPrintPopup('all','${mjonMsgSentVO.tabType}'); return false;"><i class="print_img"></i>발송결과 출력하기</button> --%>
 		</div>
 	</div>
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentDetailView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentDetailView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentDetailView.jsp
@@ -4,7 +4,10 @@
 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+<%@ taglib prefix="fnc" uri="/WEB-INF/tld/functions.tld"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>  
 <%@ page import="itn.com.cmm.LoginVO" %>
+<% pageContext.setAttribute("newLineChar", "\n"); %>
 
 
 
@@ -378,7 +381,7 @@
 	// 치환문자 포함 여부에 따른 분기
 	var msg = "";
 	if (replaceYn) {
-		msg = "문자 내용에 포함된 특정 문구가 변환되지 않은 상태([*이름*],[*1*] 등)로 표기됩니다.\n문자내용, 받는 사람 목록 확인 후 발송해주세요";
+		msg = "문자발송 화면으로 이동합니다. 특정문구는 변환되지 않은 상태([*이름*],[*1*] 등)로 표기됩니다.\n문자내용, 받는 사람 목록 확인 후 발송해 주세요";
 // 		form.msgResendAllReplaceYn.value = "Y";
 	} else {
 		var title = (msgKind == 'C') ? "선거문자발송" : "문자발송";
@@ -543,7 +546,7 @@
 	};
 	
 	let selectedTab = $(".tabType3 .tab.active button").text().trim();
-	if(!confirm(selectedTab+" 명단의 번호를 주소록에서 삭제하시겠습니까?")){
+	if(!confirm("발송"+selectedTab+" 번호를 주소록에서 삭제하시겠습니까?\n(모든 주소록 그룹에서 삭제)")){
 		return false;
 	}
 	
@@ -666,11 +669,11 @@
 											<dd>${result.regDate }</dd>
 										</dl>
 										</c:if>
-										<c:if test="${not empty result.subject }">
-										<dl>
-											<dt>제목</dt>
-											<dd>${result.subject }</dd>
-										</dl>
+										<c:if test="${result.subjectChkYn eq 'Y'}">
+											<dl>
+												<dt>제목</dt>
+												<dd>${result.subject }</dd>
+											</dl>
 										</c:if>
 										<dl>
 											<dt>형태</dt>
@@ -688,7 +691,8 @@
 										</dl>
 										<dl>
 											<dt>발신번호</dt>
-											<dd>${result.callFrom }</dd>
+<%-- 											<dd>${result.callFrom }</dd> --%>
+											<dd>${fnc:formatPhone(result.callFrom) }</dd>
 										</dl>
 										<dl>
 											<dt>진행상황
@@ -733,7 +737,18 @@
 									<div class="res_info_btm">
 										<dl>
 											<dt class="btm_charge">발송요금</dt>
-											<dd><span class="stcharge">78,100</span>원</dd>											
+											<dd>
+												<span class="stcharge">
+												<c:choose>
+													<c:when test="${result.totPrice eq '-' }">
+														0
+													</c:when>
+													<c:otherwise>
+														<fmt:formatNumber value="${result.totPrice }" type="number" groupingUsed="true" minFractionDigits="0" maxFractionDigits="1" />
+													</c:otherwise>
+												</c:choose>
+												</span>원
+											</dd>											
 											<!--<dd><span class="stcharge">-</span>원</dd>--><!-- 예역취소 후 금액은 하이픈 처리--> 
 										</dl>
 									</div>
@@ -843,7 +858,9 @@
 										<c:if test="${result.msgKind eq 'A' }" >
 											<p class="ad_tit">(광고)</p>
 										</c:if>
-										<p class="none_txt" id="smsTxt"><c:out value="${result.smsTxt }" /></p>
+										<p class="none_txt" id="smsTxt">
+											${fn:replace(result.smsTxt, newLineChar, "<br/>")}
+										</p>
 										<p class="realtime"></p>
 										<c:if test="${result.msgKind eq 'A' }" >
 											<p class="deny_receipt">무료 거부 080-0000-0000</p>
@@ -924,31 +941,6 @@
 		</div>
 	</div>
 	<!-- //발송대상 리스트 안내 팝업 -->
-	<!-- 
-	<div class="tooltip-wrap">
-		<div class="popup-com adr_layer rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 500px;">
-			<div class="popup_heading">
-				<p>그룹등록</p>
-				<button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button>
-			</div>
-			<div class="layer_in">
-				<div class="gorup_join_cont">
-					<p class="adr_pop_title">선택된 발송내역 전화번호를 그룹으로 등록합니다.</p>
-					<div class="group_input" style="margin-top: 0;">
-						<div class="input_left">그룹이름</div>
-						<div class="input_right">
-							<label for="grpNm" class="label">새 그룹명 입력</label>
-							<input type="text" id="grpNm" name="grpNm" placeholder="새 그룹명 입력" onfocus="this.placeholder=''" onblur="this.placeholder='새 그룹명 입력'" class="inputLight">
-						</div>
-					</div>
-					<div class="popup_btn_wrap2">
-						<button type="button" onclick="javascript:fnAddAddrNo(); return false;">저장</button>
-						<button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close" data-focus-next="rev_popup02">취소</button>                      
-					</div>
-				</div>
-			</div>
-		</div>
-	</div> -->
 	
 	<!-- 주소록에 등록 팝업 -->
 	<div class="tooltip-wrap">
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp
@@ -107,7 +107,8 @@
 		
 	});
 	
-	$(document).on('change','#pageUnit', function(){
+	$(document).on('change','#pageUnitS', function(){
+		setPageUnit($(this).val()); 
 		
 		linkPage(1);
 		
@@ -116,6 +117,10 @@
 	subContent();
 	
 });
+
+function setPageUnit(val){
+	$('#pageUnit').val(val); 
+}
 
 
 //탭 활성화 처리 함수
@@ -198,7 +203,7 @@
 	
 	//즉시, 예약 탭은 전체로 바꿔야함
 	fn_activateTab('');
-
+	setPageUnit('10');
 	
 	var form = document.searchForm;
 
src/main/webapp/WEB-INF/jsp/web/msgsent/subcontent/MsgSentView_HA_allSentAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/subcontent/MsgSentView_HA_allSentAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/subcontent/MsgSentView_HA_allSentAjax.jsp
@@ -28,7 +28,7 @@
 							<div class="rev_admin_in">
 								<div class="rev_admin_top clearfix">
 									<p>전체</p>
-									<c:set var="allTotal" value="${H_smsSentCntVO.totCnt + H_lmsSentCntVO.totCnt + H_mmsSentCntVO.totCnt}" />
+									<c:set var="allTotal" value="${H_allSentCntVO.totCnt}" />
 									<p><span><fmt:formatNumber value="${allTotal }" pattern="#,###"/></span> 건</p>
 								</div>
 								<div class="rev_admin_btm">
@@ -46,23 +46,6 @@
 										<dd><span class="c_e40000"><fmt:formatNumber value="${H_allSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
 									</dl>
 								</div>
-								<%-- <c:if test="${appMgmt }">
-									<div class="rev_admin_btm admin_btm admin_btm_api">
-										<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_allSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
-										<dl>
-											<dt>대기</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_allSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>성공</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_allSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>실패</dt>
-											<dd><span class="c_e40000"><fmt:formatNumber value="${A_allSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-									</div>	
-								</c:if> --%>
 							</div>
 							<div class="rev_admin_in">
 								<div class="rev_admin_top clearfix">
@@ -85,23 +68,6 @@
 										<dd><span class="c_e40000"><fmt:formatNumber value="${H_smsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
 									</dl>
 								</div>
-								<%-- <c:if test="${appMgmt }">
-									<div class="rev_admin_btm admin_btm admin_btm_api">
-										<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_smsSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
-										<dl>
-											<dt>대기</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_smsSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>성공</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_smsSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>실패</dt>
-											<dd><span class="c_e40000"><fmt:formatNumber value="${A_smsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-									</div>	
-								</c:if> --%>
 							</div>
 							<div class="rev_admin_in">
 								<div class="rev_admin_top clearfix">
@@ -124,23 +90,6 @@
 										<dd><span class="c_e40000"><fmt:formatNumber value="${H_lmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
 									</dl>
 								</div>
-								<%-- <c:if test="${appMgmt }">
-									<div class="rev_admin_btm admin_btm admin_btm_api">
-										<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_lmsSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
-										<dl>
-											<dt>대기</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_lmsSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>성공</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_lmsSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>실패</dt>
-											<dd><span class="c_e40000"><fmt:formatNumber value="${A_lmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-									</div>	
-								</c:if> --%>
 							</div>
 							<div class="rev_admin_in">
 								<div class="rev_admin_top clearfix">
@@ -163,21 +112,4 @@
 										<dd><span class="c_e40000"><fmt:formatNumber value="${H_mmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
 									</dl>
 								</div>
-								<%-- <c:if test="${appMgmt }">
-									<div class="rev_admin_btm admin_btm admin_btm_api">
-										<P class="title_top">API<span class="title_num"><fmt:formatNumber value="${A_mmsSentCntVO.totCnt}" pattern="#,###"/><span>건</span></span></P>
-										<dl>
-											<dt>대기</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_mmsSentCntVO.waitCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>성공</dt>
-											<dd><span class="c_002c9a"><fmt:formatNumber value="${A_mmsSentCntVO.succCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-										<dl>
-											<dt>실패</dt>
-											<dd><span class="c_e40000"><fmt:formatNumber value="${A_mmsSentCntVO.failCnt}" pattern="#,###"/></span>건</dd>
-										</dl>
-									</div>	
-								</c:if> --%>
 							</div>
(No newline at end of file)
src/main/webapp/WEB-INF/tld/functions.tld
--- src/main/webapp/WEB-INF/tld/functions.tld
+++ src/main/webapp/WEB-INF/tld/functions.tld
@@ -8,11 +8,17 @@
 
 	<!-- PhoneFormatUtil 클래스의 함수 -->
 	<function>
-		<name>formatPhone</name> <!-- 호출 함수명 -->
-		<function-class>itn.com.cmm.util.StringUtil2</function-class> <!-- 참조 클레스 -->
-		<function-signature>java.lang.String formatPhone(java.lang.String)</function-signature> <!-- 참조 매소드의 파라미터 설정 -->
+		<name>formatPhone</name> <!-- JSP에서 호출할 함수명 -->
+		<function-class>itn.com.cmm.util.StringUtil2</function-class> <!-- 해당 함수를 포함하는 Java 클래스 -->
+		<function-signature>java.lang.String formatPhone(java.lang.String)</function-signature> <!-- 함수의 반환 타입 및 매개변수 타입 (메서드 시그니처) -->
 	</function>
-
+	
+	<function>
+		<name>setStrToDataFormatter</name>
+		<function-class>itn.com.cmm.util.DateUtils</function-class>
+		<function-signature>java.lang.String setStrToDataFormatter(java.lang.String, java.lang.String)</function-signature>
+	</function> 
+	
 	<!-- 예시) function 추가 - StringUtil 클래스의 함수 -->
 	<!-- 
 	<function>
src/main/webapp/js/web/msgdata/msgDataView.js
--- src/main/webapp/js/web/msgdata/msgDataView.js
+++ src/main/webapp/js/web/msgdata/msgDataView.js
@@ -13,6 +13,7 @@
 
 // 문자 그룹정보 => 재전송용
 function getMjMsgGroupInfoByResend() {
+	console.log('재전송 시 싱행되는 function');
 	$.ajax({
 		type: "POST",
 		url: "/web/mjon/msgdata/selectMjMsgGroupInfoByResendAjax.do",
@@ -33,6 +34,7 @@
 				
 				var smsTxt = msgData.smsTxt;
 				var subject = msgData.subject;
+				var subjectChkYn = msgData.subjectChkYn;
 				var fileId = "";
 				var filePath = "";
 				var len = fileData.length;
@@ -56,11 +58,13 @@
 				console.log('msgData : ', msgData);
 				console.log('msgData : ', msgData);
 				// 문자제목
-				if (msgData.subject != null && msgData.subject != "") {
-					$('.msg_title').addClass('active');
-					$("input:radio[name='subjectChkYn']:radio[value='Y']").prop('checked', true); // 선택하기
-					$('.textbox').show();
-					$("#mmsSubject").val(subject);	
+				if (subject != null && subject != "") {
+					if(subjectChkYn == 'Y'){
+						$('.msg_title').addClass('active');
+						$("input:radio[name='subjectChkYn']:radio[value='Y']").prop('checked', true); // 선택하기
+						$('.textbox').show();
+						$("#mmsSubject").val(subject);	
+					}
 				}
 				
 				// 문자내용
@@ -1280,10 +1284,8 @@
 		dataType: 'json',
 		success: function (data) {
 			
-			console.log('data : ', data);
-			
 			var status = data.status;
-			if("OK" == status){
+			if("OK" == status){ // 성공
 				
 				var smsCnt = Number(data.object.resultSts);
 				var blockCnt = Number(data.object.resultBlockSts);
@@ -1309,19 +1311,19 @@
 				}
 				
 				
-			}else if("BAD_REQUEST" == status){
+			}else if("BAD_REQUEST" == status){ // 오류
 
 				alert(data.message);
 				return false;
 					
-			}else if("UNAUTHORIZED" == status){
+			}else if("UNAUTHORIZED" == status){ // 정지 회원 처리
 				
 				alert(data.message);
 				//문자발송 URL Move
 				goMsgUrlMove();
 				return false;
 				
-			}else if("NO_CONTENT" == status){
+			}else if("NO_CONTENT" == status){ // 발송로직에서 이미지 처리 오류 시 처리
 				
 				$('.pop_msg_fails').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
 				$('.pop_msg_fails .msg_text').html(returnData.message);
@@ -1710,15 +1712,15 @@
 
 function msgResultLink(){
 	var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
-	if(reserYn == 'Y'){
+	/*if(reserYn == 'Y'){
 		
 		location.href="/web/mjon/reservmsg/selectReservMsgView.do";
 		
-	}else{
+	}else{*/
 		
 		location.href="/web/mjon/msgsent/selectMsgSentView.do";
 		
-	}
+	/*}*/
 	
 }
 
Add a comment
List