rosewiper 2024-09-06
알림톡 발송 결과/예약발송결과 화면 30분 딜레이 시간 표시 변경 - 30분 딜레이되어도 사용자에게는 원래 발송시간으로 변경 처리
  - 30분 딜레이되어도 사용자에게는 원래 발송시간으로 변경 처리

일반문자 및 알림톡 발송결과 및 예약문자결과 화면에서 30분 딜레이 된 문자를 관리자가 승인/취소를 처리 못하여 발송된 경우 최종
발송 된 시간으로 표시되도록 변경
@c2a682a4736265767e2387e0ad50b99e1e4ef8e6
src/main/java/itn/let/kakao/user/sent/service/KakaoSentVO.java
--- src/main/java/itn/let/kakao/user/sent/service/KakaoSentVO.java
+++ src/main/java/itn/let/kakao/user/sent/service/KakaoSentVO.java
@@ -99,6 +99,10 @@
 	private String callToComma;
 	private String callFromComma;
 	
+	private String atDelayYn;				//알림톡 30분 지연 유무
+	private String atDelayCompleteYn;		//알림톡 30분 지연 승인/취소 처리 여부
+	private Date atDelayOrgTime;			//알림톡 30분 지연에 대한 원래 시간 (-30분 처리된 시간)
+	
 	public String getCallToComma() {
 		return callToComma;
 	}
@@ -545,6 +549,24 @@
 	public void setFailCount(int failCount) {
 		this.failCount = failCount;
 	}
+	public String getAtDelayYn() {
+		return atDelayYn;
+	}
+	public void setAtDelayYn(String atDelayYn) {
+		this.atDelayYn = atDelayYn;
+	}
+	public String getAtDelayCompleteYn() {
+		return atDelayCompleteYn;
+	}
+	public void setAtDelayCompleteYn(String atDelayCompleteYn) {
+		this.atDelayCompleteYn = atDelayCompleteYn;
+	}
+	public Date getAtDelayOrgTime() {
+		return atDelayOrgTime;
+	}
+	public void setAtDelayOrgTime(Date atDelayOrgTime) {
+		this.atDelayOrgTime = atDelayOrgTime;
+	}
 
 
 	
src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/KakaoSent_SQL_Mysql.xml
@@ -211,6 +211,7 @@
 			M2.subject ,
 			M2.regDate ,
 			M2.reqDate ,
+			IF(atDelayYn = 'Y' and atDelayCompleteYn = 'N', DATE_ADD(M2.reqdate, INTERVAL -30 MINUTE), M2.reqdate) AS atDelayOrgTime ,
 			M2.rsltDate ,
 			M2.callFrom ,
 			M2.callTo ,
@@ -222,6 +223,8 @@
 			M2.curState ,
 			M2.rsltCode ,
 			M2.rsltCode2 ,
+			M2.atDelayYn ,
+			M2.atDelayCompleteYn ,
 			M2.orderByrsltCode ,
 			M2.delFlag ,
 			M2.msgType ,
@@ -306,6 +309,8 @@
 				CUR_STATE                             AS curState ,
 				RSLT_CODE                             AS rsltCode ,
 				RSLT_CODE2                            AS rsltCode2 ,
+				AT_DELAY_YN							  AS atDelayYn ,
+				AT_DELAY_COMPLETE_YN				  AS atDelayCompleteYn ,
 				IF((RSLT_CODE != '7000'),'1','0')     AS orderByrsltCode ,
 				DEL_FLAG                              AS delFlag ,
 				M.MSG_TYPE                            AS msgType ,
@@ -344,6 +349,8 @@
 					MD.CUR_STATE ,
 					MD.RSLT_CODE ,
 					MD.RSLT_CODE2 ,
+					MG.AT_DELAY_YN,
+					MG.AT_DELAY_COMPLETE_YN,
 					CASE
 						 WHEN MG.MSG_TYPE = '8'
 						 THEN '알림톡'
@@ -1076,6 +1083,7 @@
 			M2.subject ,
 			M2.regDate ,
 			M2.reqDate ,
+			IF(atDelayYn = 'Y' and atDelayCompleteYn = 'N', DATE_ADD(M2.reqdate, INTERVAL -30 MINUTE), M2.reqdate) AS atDelayOrgTime ,
 			M2.rsltDate ,
 			M2.diffMin,
 			M2.callFrom ,
@@ -1088,6 +1096,8 @@
 			M2.curState ,
 			M2.rsltCode ,
 			M2.rsltCode2 ,
+			M2.atDelayYn ,
+			M2.atDelayCompleteYn ,
 			M2.orderByrsltCode ,
 			M2.delFlag ,
 			M2.msgType ,
@@ -1173,6 +1183,8 @@
 				CUR_STATE                             AS curState ,
 				RSLT_CODE                             AS rsltCode ,
 				RSLT_CODE2                            AS rsltCode2 ,
+				AT_DELAY_YN 						  AS atDelayYn , 
+				AT_DELAY_COMPLETE_YN 				  AS atDelayCompleteYn ,
 				IF((RSLT_CODE != '7000'),'1','0')     AS orderByrsltCode ,
 				DEL_FLAG                              AS delFlag ,
 				M.MSG_TYPE                            AS msgType ,
@@ -1211,6 +1223,8 @@
 					MD.CUR_STATE ,
 					MD.RSLT_CODE ,
 					MD.RSLT_CODE2 ,
+					MG.AT_DELAY_YN , 
+					MG.AT_DELAY_COMPLETE_YN ,
 					CASE
 						 WHEN MG.MSG_TYPE = '8'
 						 THEN '알림톡'
src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentAllListAjax.jsp
@@ -143,7 +143,28 @@
 								<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" 
 									value="${resultAllSentList.msgGroupId}" <c:if test="${resultAllSentList.curState eq '0'}">disabled</c:if>> 
 							</td>
-							<td rowspan="2"><p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p></td>
+							<td rowspan="2">
+								<c:choose>
+									<c:when test="${resultAllSentList.atDelayYn eq 'Y' && resultAllSentList.atDelayCompleteYn eq 'N'}">
+										<c:choose>
+											<c:when test="${resultAllSentList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.atDelayOrgTime}" /></p>
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
+											</c:otherwise>
+										</c:choose>
+									</c:when>
+									<c:otherwise>
+										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>									
+									</c:otherwise>
+								</c:choose>
+							</td>
 							<td rowspan="2">
 								<p class="c_222 fwRg">
 									<c:if test="${resultAllSentList.msgType eq '8'}">알림톡</c:if>
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
@@ -175,8 +175,21 @@
 							<td name="listTd">
 								<c:choose>
 									<c:when test="${resultAllSentList.delayYn eq 'Y' && resultAllSentList.delayCompleteYn eq 'N'}">
-										<%-- 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 --%>
-										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.delayOrgTime}" /></p>
+									
+										<c:choose>
+											<c:when test="${resultAllSentList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.delayOrgTime}" /></p>	
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
+											</c:otherwise>
+										</c:choose>
+										
 									</c:when>
 									<c:otherwise>
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentCompleteListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentCompleteListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentCompleteListAjax.jsp
@@ -152,15 +152,17 @@
 								
 							</td>
 							<td>
-								<c:choose>
+								<%-- <c:choose>
 									<c:when test="${resultAllSentList.delayYn eq 'Y' && resultAllSentList.delayCompleteYn eq 'N'}">
-										<%-- 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 --%>
+										20240906 추가
+										30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.delayOrgTime}" /></p>
 									</c:when>
 									<c:otherwise>
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
 									</c:otherwise>
-								</c:choose>
+								</c:choose> --%>
+								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
 							</td>
 							<td>
 								<p>
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentFailListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentFailListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentFailListAjax.jsp
@@ -140,15 +140,17 @@
 								
 							</td>
 							<td>
-								<c:choose>
+								<%-- <c:choose>
 									<c:when test="${resultAllSentList.delayYn eq 'Y' && resultAllSentList.delayCompleteYn eq 'N'}">
-										<%-- 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 --%>
+										20240906 추가
+										30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.delayOrgTime}" /></p>
 									</c:when>
 									<c:otherwise>
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
 									</c:otherwise>
-								</c:choose>
+								</c:choose> --%>
+								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.reqdate}" /></p>
 							</td>
 							<td>
 								<p>
src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentReadyListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentReadyListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentReadyListAjax.jsp
@@ -154,8 +154,20 @@
 							<td>
 								<c:choose>
 									<c:when test="${resultAllSentList.delayYn eq 'Y' && resultAllSentList.delayCompleteYn eq 'N'}">
-										<%-- 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 --%>
-										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.delayOrgTime}" /></p>
+										<c:choose>
+											<c:when test="${resultAllSentList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.delayOrgTime}" /></p>	
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.regdate}" /></p>
+											</c:otherwise>
+										</c:choose>
+										
 									</c:when>
 									<c:otherwise>
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllSentList.regdate}" /></p>
src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoAllListAjax.jsp
@@ -198,7 +198,26 @@
 								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.regdate}" /></p>
 							</td>
 							<td>
-								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>
+								<c:choose>
+									<c:when test="${resultAllResList.atDelayYn eq 'Y' && resultAllResList.atDelayCompleteYn eq 'N'}">
+										<c:choose>
+											<c:when test="${resultAllResList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.atDelayOrgTime}" /></p>
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>	
+											</c:otherwise>
+										</c:choose>
+									</c:when>
+									<c:otherwise>
+										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>
+									</c:otherwise>
+								</c:choose>
 							</td>
 							<td>
 								<p>
src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoReadyListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoReadyListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedKakaoReadyListAjax.jsp
@@ -169,7 +169,26 @@
 								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.regdate}" /></p>
 							</td>
 							<td>
-								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>
+								<c:choose>
+									<c:when test="${resultAllResList.atDelayYn eq 'Y' && resultAllResList.atDelayCompleteYn eq 'N'}">
+										<c:choose>
+											<c:when test="${resultAllResList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.atDelayOrgTime}" /></p>
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>	
+											</c:otherwise>
+										</c:choose>
+									</c:when>
+									<c:otherwise>
+										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>
+									</c:otherwise>
+								</c:choose>
 							</td>
 							<td>
 								<p>
src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgAllListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgAllListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgAllListAjax.jsp
@@ -204,8 +204,19 @@
 							<td>
 								<c:choose>
 									<c:when test="${resultAllResList.delayYn eq 'Y' && resultAllResList.delayCompleteYn eq 'N'}">
-										<%-- 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 --%>
-										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.delayOrgTime}" /></p>
+										<c:choose>
+											<c:when test="${resultAllResList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.delayOrgTime}" /></p>	
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>	
+											</c:otherwise>
+										</c:choose>
 									</c:when>
 									<c:otherwise>
 										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>	
src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgReadyListAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgReadyListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/reservedmsg/ReservedMsgReadyListAjax.jsp
@@ -175,7 +175,26 @@
 								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.regdate}" /></p>
 							</td>
 							<td>
-								<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>
+								<c:choose>
+									<c:when test="${resultAllResList.delayYn eq 'Y' && resultAllResList.delayCompleteYn eq 'N'}">
+										<c:choose>
+											<c:when test="${resultAllResList.curState eq '0'}">
+												<%-- 
+													20240906 추가
+													발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다.
+													30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌
+												 --%>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.delayOrgTime}" /></p>	
+											</c:when>
+											<c:otherwise>
+												<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>	
+											</c:otherwise>
+										</c:choose>
+									</c:when>
+									<c:otherwise>
+										<p><fmt:formatDate pattern = "yyyy-MM-dd HH:mm" value = "${resultAllResList.reqdate}" /></p>	
+									</c:otherwise>
+								</c:choose>
 							</td>
 							<td>
 								<p>
Add a comment
List