발송결과 페이지 및 속도개선 진행중 - 화면수정 중
This commit is contained in:
parent
071fd2b35b
commit
d34f626aa0
32
src/main/java/itn/let/mjo/msgsent/service/MjonMsgSWFDTO.java
Normal file
32
src/main/java/itn/let/mjo/msgsent/service/MjonMsgSWFDTO.java
Normal file
@ -0,0 +1,32 @@
|
||||
package itn.let.mjo.msgsent.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author : 이호영
|
||||
* @fileName : MjonMsgSWFDTO.java
|
||||
* @date : 2025.01.16
|
||||
* @description : 그룹ID로 성공 실패 대기 건수를 구해서 전달해주는 DTO
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* ----------------------------------------------------------- *
|
||||
* 2025.01.16 이호영 최초 생성
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class MjonMsgSWFDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L; // 선언
|
||||
|
||||
private int resultSValue; // 성공건수
|
||||
private int resultFValue; // 실패건수
|
||||
private int resultWValue; // 대기건수
|
||||
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
package itn.let.mjo.msgsent.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import itn.let.fax.addr.service.FaxAddrGroupVO;
|
||||
import itn.let.mjo.addr.service.AddrGroupVO;
|
||||
@ -16,6 +17,8 @@ public interface MjonMsgSentService {
|
||||
//발송 관리 전체 발송 리스트 불러오기
|
||||
public List<MjonMsgSentVO> selectAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
|
||||
|
||||
public Map<String, Object> selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception;
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception;
|
||||
|
||||
@ -54,5 +57,8 @@ public interface MjonMsgSentService {
|
||||
|
||||
//첨부파일 정보 불러오기
|
||||
public MjonMsgSentVO selectFileInfo(String streFileId) throws Exception;
|
||||
|
||||
public int countAllMsgSentList(MjonMsgSentVO mjonMsgSentVO);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,11 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import itn.let.uss.umt.service.UserDefaultVO;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class MjonMsgSentVO extends UserDefaultVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -86,399 +90,8 @@ public class MjonMsgSentVO extends UserDefaultVO{
|
||||
private String successCount;
|
||||
|
||||
private String resultSValue;
|
||||
private String resultFValue;
|
||||
private String resultWValue;
|
||||
private String resultWFValue;
|
||||
|
||||
public String getSuccessCount() {
|
||||
return successCount;
|
||||
}
|
||||
public void setSuccessCount(String successCount) {
|
||||
this.successCount = successCount;
|
||||
}
|
||||
public String getMsgSentType() {
|
||||
return msgSentType;
|
||||
}
|
||||
public void setMsgSentType(String msgSentType) {
|
||||
this.msgSentType = msgSentType;
|
||||
}
|
||||
public String getCallFromComma() {
|
||||
return callFromComma;
|
||||
}
|
||||
public void setCallFromComma(String callFromComma) {
|
||||
this.callFromComma = callFromComma;
|
||||
}
|
||||
public String getCallToComma() {
|
||||
return callToComma;
|
||||
}
|
||||
public void setCallToComma(String callToComma) {
|
||||
this.callToComma = callToComma;
|
||||
}
|
||||
|
||||
public String getAtchFiles() {
|
||||
return atchFiles;
|
||||
}
|
||||
public void setAtchFiles(String atchFiles) {
|
||||
this.atchFiles = atchFiles;
|
||||
}
|
||||
|
||||
public String getMsgId() {
|
||||
return msgId;
|
||||
}
|
||||
public void setMsgId(String msgId) {
|
||||
this.msgId = msgId;
|
||||
}
|
||||
public int getSuccessCnt() {
|
||||
return successCnt;
|
||||
}
|
||||
public void setSuccessCnt(int successCnt) {
|
||||
this.successCnt = successCnt;
|
||||
}
|
||||
public String getMsgTypeName() {
|
||||
return msgTypeName;
|
||||
}
|
||||
public void setMsgTypeName(String msgTypeName) {
|
||||
this.msgTypeName = msgTypeName;
|
||||
}
|
||||
public int getOrderByCode() {
|
||||
return orderByCode;
|
||||
}
|
||||
public void setOrderByCode(int orderByCode) {
|
||||
this.orderByCode = orderByCode;
|
||||
}
|
||||
public String getAtchFileId() {
|
||||
return atchFileId;
|
||||
}
|
||||
public void setAtchFileId(String atchFileId) {
|
||||
this.atchFileId = atchFileId;
|
||||
}
|
||||
public String getFileSn() {
|
||||
return fileSn;
|
||||
}
|
||||
public void setFileSn(String fileSn) {
|
||||
this.fileSn = fileSn;
|
||||
}
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
public String getAddrNm() {
|
||||
return addrNm;
|
||||
}
|
||||
public void setAddrNm(String addrNm) {
|
||||
this.addrNm = addrNm;
|
||||
}
|
||||
public String getMsgSeq() {
|
||||
return msgSeq;
|
||||
}
|
||||
public void setMsgSeq(String msgSeq) {
|
||||
this.msgSeq = msgSeq;
|
||||
}
|
||||
public String getMsgGroupId() {
|
||||
return msgGroupId;
|
||||
}
|
||||
public void setMsgGroupId(String msgGroupId) {
|
||||
this.msgGroupId = msgGroupId;
|
||||
}
|
||||
public List getMsgGroupIdList() {
|
||||
return msgGroupIdList;
|
||||
}
|
||||
public void setMsgGroupIdList(List msgGroupIdList) {
|
||||
this.msgGroupIdList = msgGroupIdList;
|
||||
}
|
||||
public String getSmsTxt() {
|
||||
return smsTxt;
|
||||
}
|
||||
public void setSmsTxt(String smsTxt) {
|
||||
this.smsTxt = smsTxt;
|
||||
}
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
public Date getRegdate() {
|
||||
return regdate;
|
||||
}
|
||||
public void setRegdate(Date regdate) {
|
||||
this.regdate = regdate;
|
||||
}
|
||||
public Date getReqdate() {
|
||||
return reqdate;
|
||||
}
|
||||
public void setReqdate(Date reqdate) {
|
||||
this.reqdate = reqdate;
|
||||
}
|
||||
public String getCallFrom() {
|
||||
return callFrom;
|
||||
}
|
||||
public void setCallFrom(String callFrom) {
|
||||
this.callFrom = callFrom;
|
||||
}
|
||||
public String getCallTo() {
|
||||
return callTo;
|
||||
}
|
||||
public void setCallTo(String callTo) {
|
||||
this.callTo = callTo;
|
||||
}
|
||||
public List getCallToList() {
|
||||
return callToList;
|
||||
}
|
||||
public void setCallToList(List callToList) {
|
||||
this.callToList = callToList;
|
||||
}
|
||||
public String getTotPrice() {
|
||||
return totPrice;
|
||||
}
|
||||
public void setTotPrice(String totPrice) {
|
||||
this.totPrice = totPrice;
|
||||
}
|
||||
public String getEachPrice() {
|
||||
return eachPrice;
|
||||
}
|
||||
public void setEachPrice(String eachPrice) {
|
||||
this.eachPrice = eachPrice;
|
||||
}
|
||||
public String getDelFlag() {
|
||||
return delFlag;
|
||||
}
|
||||
public void setDelFlag(String delFlag) {
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
public String getTotMsgPrice() {
|
||||
return totMsgPrice;
|
||||
}
|
||||
public void setTotMsgPrice(String totMsgPrice) {
|
||||
this.totMsgPrice = totMsgPrice;
|
||||
}
|
||||
public String getRsltCode() {
|
||||
return rsltCode;
|
||||
}
|
||||
public void setRsltCode(String rsltCode) {
|
||||
this.rsltCode = rsltCode;
|
||||
}
|
||||
public String getRsltCode2() {
|
||||
return rsltCode2;
|
||||
}
|
||||
public void setRsltCode2(String rsltCode2) {
|
||||
this.rsltCode2 = rsltCode2;
|
||||
}
|
||||
public String getMsgType() {
|
||||
return msgType;
|
||||
}
|
||||
public void setMsgType(String msgType) {
|
||||
this.msgType = msgType;
|
||||
}
|
||||
public String getMsgGroupCnt() {
|
||||
return msgGroupCnt;
|
||||
}
|
||||
public void setMsgGroupCnt(String msgGroupCnt) {
|
||||
this.msgGroupCnt = msgGroupCnt;
|
||||
}
|
||||
public String getFileCnt() {
|
||||
return fileCnt;
|
||||
}
|
||||
public void setFileCnt(String fileCnt) {
|
||||
this.fileCnt = fileCnt;
|
||||
}
|
||||
public String getTotMsgCnt() {
|
||||
return totMsgCnt;
|
||||
}
|
||||
public void setTotMsgCnt(String totMsgCnt) {
|
||||
this.totMsgCnt = totMsgCnt;
|
||||
}
|
||||
public String getCurState() {
|
||||
return curState;
|
||||
}
|
||||
public void setCurState(String curState) {
|
||||
this.curState = curState;
|
||||
}
|
||||
public String getReserveYn() {
|
||||
return reserveYn;
|
||||
}
|
||||
public void setReserveYn(String reserveYn) {
|
||||
this.reserveYn = reserveYn;
|
||||
}
|
||||
public String getReserveCYn() {
|
||||
return reserveCYn;
|
||||
}
|
||||
public void setReserveCYn(String reserveCYn) {
|
||||
this.reserveCYn = reserveCYn;
|
||||
}
|
||||
public String getFilePath1() {
|
||||
return filePath1;
|
||||
}
|
||||
public void setFilePath1(String filePath1) {
|
||||
this.filePath1 = filePath1;
|
||||
}
|
||||
public String getFilePath2() {
|
||||
return filePath2;
|
||||
}
|
||||
public void setFilePath2(String filePath2) {
|
||||
this.filePath2 = filePath2;
|
||||
}
|
||||
public String getFilePath3() {
|
||||
return filePath3;
|
||||
}
|
||||
public void setFilePath3(String filePath3) {
|
||||
this.filePath3 = filePath3;
|
||||
}
|
||||
public Date getSentDate() {
|
||||
return sentDate;
|
||||
}
|
||||
public void setSentDate(Date sentDate) {
|
||||
this.sentDate = sentDate;
|
||||
}
|
||||
public String getAgentCode() {
|
||||
return agentCode;
|
||||
}
|
||||
public void setAgentCode(String agentCode) {
|
||||
this.agentCode = agentCode;
|
||||
}
|
||||
public String getUserData() {
|
||||
return userData;
|
||||
}
|
||||
public void setUserData(String userData) {
|
||||
this.userData = userData;
|
||||
}
|
||||
public List getUserDataList() {
|
||||
return userDataList;
|
||||
}
|
||||
public void setUserDataList(List userDataList) {
|
||||
this.userDataList = userDataList;
|
||||
}
|
||||
public Date getCancelDate() {
|
||||
return cancelDate;
|
||||
}
|
||||
public void setCancelDate(Date cancelDate) {
|
||||
this.cancelDate = cancelDate;
|
||||
}
|
||||
public String getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
public void setStartDate(String startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
public String getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
public void setEndDate(String endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
public String getSearchMsgType() {
|
||||
return searchMsgType;
|
||||
}
|
||||
public void setSearchMsgType(String searchMsgType) {
|
||||
this.searchMsgType = searchMsgType;
|
||||
}
|
||||
public String getTabType() {
|
||||
return tabType;
|
||||
}
|
||||
public void setTabType(String tabType) {
|
||||
this.tabType = tabType;
|
||||
}
|
||||
public String getStateType() {
|
||||
return stateType;
|
||||
}
|
||||
public void setStateType(String stateType) {
|
||||
this.stateType = stateType;
|
||||
}
|
||||
public String getListType() {
|
||||
return listType;
|
||||
}
|
||||
public void setListType(String listType) {
|
||||
this.listType = listType;
|
||||
}
|
||||
public String getResultType() {
|
||||
return resultType;
|
||||
}
|
||||
public void setResultType(String resultType) {
|
||||
this.resultType = resultType;
|
||||
}
|
||||
public String getMsgResultCnt() {
|
||||
return msgResultCnt;
|
||||
}
|
||||
public void setMsgResultCnt(String msgResultCnt) {
|
||||
this.msgResultCnt = msgResultCnt;
|
||||
}
|
||||
public String getMsgResultSts() {
|
||||
return msgResultSts;
|
||||
}
|
||||
public void setMsgResultSts(String msgResultSts) {
|
||||
this.msgResultSts = msgResultSts;
|
||||
}
|
||||
public String getAddrGrpNm() {
|
||||
return addrGrpNm;
|
||||
}
|
||||
public void setAddrGrpNm(String addrGrpNm) {
|
||||
this.addrGrpNm = addrGrpNm;
|
||||
}
|
||||
public int getOrderByrsltCode() {
|
||||
return orderByrsltCode;
|
||||
}
|
||||
public void setOrderByrsltCode(int orderByrsltCode) {
|
||||
this.orderByrsltCode = orderByrsltCode;
|
||||
}
|
||||
public String getMsgResult() {
|
||||
return msgResult;
|
||||
}
|
||||
public void setMsgResult(String msgResult) {
|
||||
this.msgResult = msgResult;
|
||||
}
|
||||
public String getNtceBgnde() {
|
||||
return ntceBgnde;
|
||||
}
|
||||
public void setNtceBgnde(String ntceBgnde) {
|
||||
this.ntceBgnde = ntceBgnde;
|
||||
}
|
||||
public String getNtceEndde() {
|
||||
return ntceEndde;
|
||||
}
|
||||
public void setNtceEndde(String ntceEndde) {
|
||||
this.ntceEndde = ntceEndde;
|
||||
}
|
||||
public String getMsgKind() {
|
||||
return msgKind;
|
||||
}
|
||||
public void setMsgKind(String msgKind) {
|
||||
this.msgKind = msgKind;
|
||||
}
|
||||
public String getDelayYn() {
|
||||
return delayYn;
|
||||
}
|
||||
public void setDelayYn(String delayYn) {
|
||||
this.delayYn = delayYn;
|
||||
}
|
||||
public String getDelayCompleteYn() {
|
||||
return delayCompleteYn;
|
||||
}
|
||||
public void setDelayCompleteYn(String delayCompleteYn) {
|
||||
this.delayCompleteYn = delayCompleteYn;
|
||||
}
|
||||
public String getSendKind() {
|
||||
return sendKind;
|
||||
}
|
||||
public void setSendKind(String sendKind) {
|
||||
this.sendKind = sendKind;
|
||||
}
|
||||
public String getResultSValue() {
|
||||
return resultSValue;
|
||||
}
|
||||
public void setResultSValue(String resultSValue) {
|
||||
this.resultSValue = resultSValue;
|
||||
}
|
||||
public String getResultWFValue() {
|
||||
return resultWFValue;
|
||||
}
|
||||
public void setResultWFValue(String resultWFValue) {
|
||||
this.resultWFValue = resultWFValue;
|
||||
}
|
||||
public Date getDelayOrgTime() {
|
||||
return delayOrgTime;
|
||||
}
|
||||
public void setDelayOrgTime(Date delayOrgTime) {
|
||||
this.delayOrgTime = delayOrgTime;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||
import itn.let.fax.addr.service.FaxAddrGroupVO;
|
||||
import itn.let.mjo.addr.service.AddrGroupVO;
|
||||
import itn.let.mjo.block.service.MjonBlockVO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSWFDTO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
||||
|
||||
@Repository("MjonMsgSentDAO")
|
||||
@ -56,6 +57,13 @@ public class MjonMsgSentDAO extends EgovAbstractDAO {
|
||||
return (List<MjonMsgSentVO>) list("MjonMsgSentDAO.selectAllMsgSentList",mjonMsgSentVO);
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<MjonMsgSentVO> selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
|
||||
return (List<MjonMsgSentVO>) list("MjonMsgSentDAO.selectAllMsgSentList_advc",mjonMsgSentVO);
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
@ -158,5 +166,14 @@ public class MjonMsgSentDAO extends EgovAbstractDAO {
|
||||
public MjonMsgSentVO selectFileInfo(String streFileId) throws Exception{
|
||||
return (MjonMsgSentVO) select("MjonMsgSentDAO.selectFileInfo", streFileId);
|
||||
}
|
||||
|
||||
public int countAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) {
|
||||
return (Integer)select("MjonMsgSentDAO.countAllMsgSentList", mjonMsgSentVO);
|
||||
}
|
||||
|
||||
public MjonMsgSWFDTO findBySWF(String msgGroupId) {
|
||||
|
||||
return (MjonMsgSWFDTO) select("MjonMsgSentDAO.findBySWF", msgGroupId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,7 +1,12 @@
|
||||
package itn.let.mjo.msgsent.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -12,9 +17,12 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import itn.let.fax.addr.service.FaxAddrGroupVO;
|
||||
import itn.let.mjo.addr.service.AddrGroupVO;
|
||||
import itn.let.mjo.block.service.MjonBlockVO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSWFDTO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentService;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service("MjonMsgSentService")
|
||||
public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements MjonMsgSentService{
|
||||
|
||||
@ -84,6 +92,54 @@ public class MjonMsgSentServiceImpl extends EgovAbstractServiceImpl implements
|
||||
return resultList;
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기
|
||||
public Map<String, Object> selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
|
||||
// 목록
|
||||
List<MjonMsgSentVO> resultList = mjonMsgSentDAO.selectAllMsgSentList_advc(mjonMsgSentVO);
|
||||
|
||||
// MsgGroupId만 추출하여 리스트 생성
|
||||
// List<String> msgGroupIdList = resultList.stream()
|
||||
// .map(MjonMsgSentVO::getMsgGroupId) // MsgGroupId 추출
|
||||
// .collect(Collectors.toList()); // 리스트로 수집
|
||||
|
||||
|
||||
resultList.stream().forEach(t->{
|
||||
MjonMsgSWFDTO mjonMsgSWFDTO = mjonMsgSentDAO.findBySWF(t.getMsgGroupId());
|
||||
t.setResultSValue(String.valueOf(mjonMsgSWFDTO.getResultSValue()));
|
||||
t.setResultFValue(String.valueOf(mjonMsgSWFDTO.getResultFValue()));
|
||||
t.setResultWValue(String.valueOf(mjonMsgSWFDTO.getResultWValue()));
|
||||
|
||||
BigDecimal eachPrice = new BigDecimal(t.getEachPrice());
|
||||
BigDecimal resultSValue = new BigDecimal(mjonMsgSWFDTO.getResultSValue());
|
||||
BigDecimal totalPrice = eachPrice.multiply(resultSValue);
|
||||
// 소수점 한 자리로 설정 (반올림)
|
||||
BigDecimal roundedTotalPrice = totalPrice.setScale(1, RoundingMode.HALF_UP);
|
||||
t.setTotPrice(roundedTotalPrice.toPlainString()); // 결과를 String으로 설정
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// 총 카운트
|
||||
int totalCnt = mjonMsgSentDAO.countAllMsgSentList(mjonMsgSentVO);
|
||||
// int totalCnt = 0;
|
||||
resultMap.put("resultList", resultList);
|
||||
resultMap.put("totalCnt", totalCnt);
|
||||
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int countAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) {
|
||||
return mjonMsgSentDAO.countAllMsgSentList(mjonMsgSentVO);
|
||||
}
|
||||
|
||||
//발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전
|
||||
public List<MjonMsgSentVO> selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception{
|
||||
List<MjonMsgSentVO> resultList = new ArrayList<MjonMsgSentVO>();
|
||||
|
||||
@ -5,14 +5,17 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.Font;
|
||||
@ -47,7 +50,9 @@ import itn.let.mjo.apikey.service.ApiKeyVO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentCntVO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentService;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class MjonMsgSentController {
|
||||
|
||||
@ -234,22 +239,9 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
|
||||
String startDate = mjonMsgSentVO.getStartDate();
|
||||
String endDate = mjonMsgSentVO.getEndDate();
|
||||
|
||||
if(startDate == null && endDate == null ) {
|
||||
|
||||
|
||||
//
|
||||
// Calendar cal = Calendar.getInstance();
|
||||
// Date now = new Date();
|
||||
//
|
||||
// SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
|
||||
//
|
||||
// //종료일은 오늘날짜
|
||||
// cal.setTime(now);
|
||||
// endDate = format.format(cal.getTime());
|
||||
//
|
||||
// //시작일은 전날로 셋팅
|
||||
// cal.add(Calendar.DATE, -1);
|
||||
// startDate = format.format(cal.getTime());
|
||||
if(StringUtils.isEmpty(startDate)
|
||||
&& StringUtils.isEmpty(endDate))
|
||||
{
|
||||
|
||||
mjonMsgSentVO.setStartDate(DateUtils.getDateMonthsAgo(3));
|
||||
mjonMsgSentVO.setEndDate(DateUtils.getCurrentDate());
|
||||
@ -285,6 +277,7 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
|
||||
|
||||
//전체 발송 건수 통계 불러오기
|
||||
mjonMsgSentVO.setMsgType("");
|
||||
log.info(" :: mjonMsgSentService.selectDetailMsgSentCntMix :: ");
|
||||
List<MjonMsgSentVO> totalMsgCnt = mjonMsgSentService.selectDetailMsgSentCntMix(mjonMsgSentVO);
|
||||
|
||||
System.out.println("start");
|
||||
@ -302,8 +295,6 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
|
||||
List<MjonMsgSentVO> A_lmsMsgCnt = new ArrayList<MjonMsgSentVO>();
|
||||
List<MjonMsgSentVO> A_mmsMsgCnt = new ArrayList<MjonMsgSentVO>();
|
||||
|
||||
System.out.println(" ::H_totalMsgCnt :: "+ H_totalMsgCnt.size());
|
||||
System.out.println(" ::A_totalMsgCnt :: "+ A_totalMsgCnt.size());
|
||||
|
||||
H_totalMsgCnt.forEach(t->{
|
||||
if (Integer.parseInt(t.getFilePath1())>0) {
|
||||
@ -325,8 +316,6 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
//* 홈페이지에서 보낸 데이터 LIST
|
||||
//* SEND_KIND = "H"
|
||||
|
||||
@ -366,7 +355,6 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
|
||||
apiKeyVO.setMberId(userId);
|
||||
model.addAttribute("appMgmt", apiKeyMngService.selectMberApiKeyChk(apiKeyVO) > 0 ? true : false);
|
||||
|
||||
|
||||
System.out.println("MsgSentView_HA_allSentAjax_end");
|
||||
|
||||
return "/web/msgsent/subcontent/MsgSentView_HA_allSentAjax";
|
||||
@ -421,89 +409,191 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll
|
||||
@RequestMapping(value= {"/web/mjon/msgsent/selectMsgSentListViewAjax.do"})
|
||||
public String selectMsgSentListViewAjax(@ModelAttribute("searchVO") MjonMsgSentVO mjonMsgSentVO, ModelMap model) throws Exception{
|
||||
|
||||
String pageUrl = "";
|
||||
try {
|
||||
|
||||
|
||||
|
||||
|
||||
//로그인 권한정보 불러오기
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
mjonMsgSentVO.setUserId(userId);
|
||||
|
||||
// 검색 리스트 불러오기
|
||||
// if(mjonMsgSentVO.getPageUnit() != 10) {
|
||||
// mjonMsgSentVO.setPageUnit(mjonMsgSentVO.getPageUnit());
|
||||
// }
|
||||
|
||||
//기본 내림차순 정렬
|
||||
if(mjonMsgSentVO.getSearchSortOrd().equals("")) {
|
||||
|
||||
mjonMsgSentVO.setSearchSortOrd("desc");
|
||||
mjonMsgSentVO.setSearchSortCnd("regdate");
|
||||
}
|
||||
|
||||
if(mjonMsgSentVO.getListType().equals("")) {
|
||||
|
||||
mjonMsgSentVO.setListType("groupList");
|
||||
|
||||
}
|
||||
|
||||
//선택 탭 정보 저장
|
||||
//mjonResvMsgVO.setSearchMsgType(mjonResvMsgVO.getTabType());
|
||||
|
||||
/** pageing */
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(mjonMsgSentVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(mjonMsgSentVO.getPageUnit());
|
||||
paginationInfo.setPageSize(mjonMsgSentVO.getPageSize());
|
||||
|
||||
mjonMsgSentVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
mjonMsgSentVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
mjonMsgSentVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
if(!DateUtils.dateChkAndValueChk(mjonMsgSentVO.getStartDate(),mjonMsgSentVO.getEndDate(), 3 )) {
|
||||
mjonMsgSentVO.setStartDate(DateUtils.getDateMonthsAgo(3));
|
||||
mjonMsgSentVO.setEndDate(DateUtils.getCurrentDate());
|
||||
};
|
||||
|
||||
model.addAttribute("startDate", mjonMsgSentVO.getStartDate());
|
||||
model.addAttribute("endDate", mjonMsgSentVO.getEndDate());
|
||||
|
||||
//전체 발송 리스트 불러오기
|
||||
Map<String, Object> resultMap = mjonMsgSentService.selectAllMsgSentList_advc(mjonMsgSentVO);
|
||||
|
||||
|
||||
model.addAttribute("resultAllSentList", resultMap.get("resultList"));
|
||||
|
||||
|
||||
paginationInfo.setTotalRecordCount((Integer)resultMap.get("totalCnt"));
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
model.addAttribute("totalRecordCount", paginationInfo.getTotalRecordCount());
|
||||
|
||||
model.addAttribute("mjonMsgSentVO", mjonMsgSentVO);
|
||||
|
||||
String stateType = mjonMsgSentVO.getStateType();
|
||||
// String pageUrl = "web/msgsent/MsgSentAllListAjax";
|
||||
/*
|
||||
pageUrl = "web/msgsent/MsgSentAllListAjax";
|
||||
if(stateType.equals("ready")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentReadyListAjax";
|
||||
|
||||
}else if(stateType.equals("complete")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentCompleteListAjax";
|
||||
|
||||
}else if(stateType.equals("fail")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentFailListAjax";
|
||||
|
||||
}*/
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
return "web/msgsent/MsgSentAllListAjax";
|
||||
}
|
||||
|
||||
@RequestMapping(value= {"/web/mjon/msgsent/selectMsgSentListViewAjax_backup.do"})
|
||||
public String selectMsgSentListViewAjax_backup(@ModelAttribute("searchVO") MjonMsgSentVO mjonMsgSentVO, ModelMap model) throws Exception{
|
||||
|
||||
|
||||
|
||||
|
||||
//로그인 권한정보 불러오기
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
mjonMsgSentVO.setUserId(userId);
|
||||
|
||||
// 검색 리스트 불러오기
|
||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
mjonMsgSentVO.setUserId(userId);
|
||||
|
||||
// 검색 리스트 불러오기
|
||||
if(mjonMsgSentVO.getPageUnit() != 10) {
|
||||
mjonMsgSentVO.setPageUnit(mjonMsgSentVO.getPageUnit());
|
||||
}
|
||||
|
||||
//기본 내림차순 정렬
|
||||
if(mjonMsgSentVO.getSearchSortOrd().equals("")) {
|
||||
|
||||
mjonMsgSentVO.setSearchSortOrd("desc");
|
||||
mjonMsgSentVO.setSearchSortCnd("regdate");
|
||||
}
|
||||
|
||||
if(mjonMsgSentVO.getListType().equals("")) {
|
||||
|
||||
mjonMsgSentVO.setListType("groupList");
|
||||
|
||||
}
|
||||
|
||||
//선택 탭 정보 저장
|
||||
//mjonResvMsgVO.setSearchMsgType(mjonResvMsgVO.getTabType());
|
||||
|
||||
//기본 내림차순 정렬
|
||||
if(mjonMsgSentVO.getSearchSortOrd().equals("")) {
|
||||
|
||||
mjonMsgSentVO.setSearchSortOrd("desc");
|
||||
mjonMsgSentVO.setSearchSortCnd("regdate");
|
||||
}
|
||||
|
||||
if(mjonMsgSentVO.getListType().equals("")) {
|
||||
|
||||
mjonMsgSentVO.setListType("groupList");
|
||||
|
||||
}
|
||||
|
||||
//선택 탭 정보 저장
|
||||
//mjonResvMsgVO.setSearchMsgType(mjonResvMsgVO.getTabType());
|
||||
|
||||
/** pageing */
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(mjonMsgSentVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(mjonMsgSentVO.getPageUnit());
|
||||
paginationInfo.setPageSize(mjonMsgSentVO.getPageSize());
|
||||
|
||||
|
||||
mjonMsgSentVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
mjonMsgSentVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
mjonMsgSentVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
|
||||
|
||||
|
||||
|
||||
if(!DateUtils.dateChkAndValueChk(mjonMsgSentVO.getStartDate(),mjonMsgSentVO.getEndDate(), 3 )) {
|
||||
mjonMsgSentVO.setStartDate(DateUtils.getDateMonthsAgo(3));
|
||||
mjonMsgSentVO.setEndDate(DateUtils.getCurrentDate());
|
||||
};
|
||||
|
||||
model.addAttribute("startDate", mjonMsgSentVO.getStartDate());
|
||||
model.addAttribute("endDate", mjonMsgSentVO.getEndDate());
|
||||
|
||||
//전체 발송 리스트 불러오기
|
||||
List<MjonMsgSentVO> resultAllSentList = mjonMsgSentService.selectAllMsgSentList(mjonMsgSentVO);
|
||||
model.addAttribute("resultAllSentList", resultAllSentList);
|
||||
model.addAttribute("resultAllSentCnt", resultAllSentList.size());
|
||||
|
||||
model.addAttribute("searchKeyword", mjonMsgSentVO.getSearchKeyword());
|
||||
paginationInfo.setTotalRecordCount( resultAllSentList.size()> 0 ? (Integer.parseInt((resultAllSentList.get(0)).getTotMsgCnt())) : 0);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
model.addAttribute("totalRecordCount", paginationInfo.getTotalRecordCount());
|
||||
|
||||
//발송 결과 성공 실패 건수 리스트 불러오기
|
||||
List<MjonMsgSentVO> resultMsgSucFailList = new ArrayList<MjonMsgSentVO>();
|
||||
|
||||
if(resultAllSentList.size() > 0) {
|
||||
resultMsgSucFailList = mjonMsgSentService.selectAllMsgSentSucFailList(resultAllSentList, mjonMsgSentVO);
|
||||
}
|
||||
model.addAttribute("resultMsgSucFailList", resultMsgSucFailList);
|
||||
|
||||
model.addAttribute("mjonMsgSentVO", mjonMsgSentVO);
|
||||
|
||||
String stateType = mjonMsgSentVO.getStateType();
|
||||
String pageUrl = "web/msgsent/MsgSentAllListAjax";
|
||||
|
||||
if(stateType.equals("ready")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentReadyListAjax";
|
||||
|
||||
}else if(stateType.equals("complete")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentCompleteListAjax";
|
||||
|
||||
}else if(stateType.equals("fail")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentFailListAjax";
|
||||
|
||||
}
|
||||
model.addAttribute("startDate", mjonMsgSentVO.getStartDate());
|
||||
model.addAttribute("endDate", mjonMsgSentVO.getEndDate());
|
||||
|
||||
//전체 발송 리스트 불러오기
|
||||
List<MjonMsgSentVO> resultAllSentList = mjonMsgSentService.selectAllMsgSentList(mjonMsgSentVO);
|
||||
|
||||
|
||||
model.addAttribute("resultAllSentList", resultAllSentList);
|
||||
model.addAttribute("resultAllSentCnt", resultAllSentList.size());
|
||||
|
||||
model.addAttribute("searchKeyword", mjonMsgSentVO.getSearchKeyword());
|
||||
paginationInfo.setTotalRecordCount( resultAllSentList.size()> 0 ? (Integer.parseInt((resultAllSentList.get(0)).getTotMsgCnt())) : 0);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
model.addAttribute("totalRecordCount", paginationInfo.getTotalRecordCount());
|
||||
|
||||
//발송 결과 성공 실패 건수 리스트 불러오기
|
||||
List<MjonMsgSentVO> resultMsgSucFailList = new ArrayList<MjonMsgSentVO>();
|
||||
|
||||
if(resultAllSentList.size() > 0) {
|
||||
System.out.println("=====resultMsgSucFailList=====");
|
||||
resultMsgSucFailList = mjonMsgSentService.selectAllMsgSentSucFailList(resultAllSentList, mjonMsgSentVO);
|
||||
System.out.println("//=====resultMsgSucFailList=====");
|
||||
}
|
||||
model.addAttribute("resultMsgSucFailList", resultMsgSucFailList);
|
||||
|
||||
model.addAttribute("mjonMsgSentVO", mjonMsgSentVO);
|
||||
|
||||
String stateType = mjonMsgSentVO.getStateType();
|
||||
// String pageUrl = "web/msgsent/MsgSentAllListAjax";
|
||||
String pageUrl = "web/msgsent/MsgSentAllListAjax";
|
||||
|
||||
if(stateType.equals("ready")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentReadyListAjax";
|
||||
|
||||
}else if(stateType.equals("complete")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentCompleteListAjax";
|
||||
|
||||
}else if(stateType.equals("fail")) {
|
||||
|
||||
pageUrl = "web/msgsent/MsgSentFailListAjax";
|
||||
|
||||
}
|
||||
|
||||
log.info(" :: pageUrl [{}]", pageUrl);
|
||||
return pageUrl;
|
||||
}
|
||||
|
||||
|
||||
@ -3,8 +3,9 @@
|
||||
========= ======= =================================================
|
||||
2021.06.21 우영두
|
||||
-->
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
<sqlMap namespace="Msg">
|
||||
<typeAlias alias="mjonMsgSWFDTO" type="itn.let.mjo.msgsent.service.MjonMsgSWFDTO"/>
|
||||
<typeAlias alias="mjonMsgSentVO" type="itn.let.mjo.msgsent.service.MjonMsgSentVO"/>
|
||||
<typeAlias alias="mjonMsgVO" type="itn.let.mjo.msg.service.MjonMsgVO"/>
|
||||
<typeAlias alias="addrGroupVO" type="itn.let.mjo.addr.service.AddrGroupVO"/>
|
||||
@ -222,6 +223,220 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 전체 발송결과 조회 (전송사별) 카운트-->
|
||||
<select id="MjonMsgSentDAO.countAllMsgSentList" parameterClass="mjonMsgSentVO" resultClass="int">
|
||||
|
||||
select
|
||||
COUNT(DISTINCT B.MSG_GROUP_ID) as totalGroupCount
|
||||
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)
|
||||
AND A.DEL_FLAG = 'N'
|
||||
AND B.USER_ID = #userId#
|
||||
AND B.RESERVE_C_YN = 'N'
|
||||
<![CDATA[
|
||||
AND B.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE)
|
||||
]]>
|
||||
<isNotEmpty property="searchMsgType">
|
||||
<isEqual property="searchMsgType" compareValue="S">
|
||||
AND B.MSG_TYPE = '4'
|
||||
</isEqual>
|
||||
<isEqual property="searchMsgType" compareValue="L">
|
||||
AND B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT = '0'
|
||||
</isEqual>
|
||||
<isEqual property="searchMsgType" compareValue="M">
|
||||
<![CDATA[
|
||||
AND B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT > '0'
|
||||
]]>
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual property="searchCondition" compareValue="1" >
|
||||
AND B.SUBJECT LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="2" >
|
||||
AND B.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="3" >
|
||||
AND CALL_TO LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchCondition_01">
|
||||
AND sendKind = #searchCondition_01#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="startDate">
|
||||
<![CDATA[
|
||||
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d')
|
||||
]]>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="endDate">
|
||||
<![CDATA[
|
||||
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d')
|
||||
]]>
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 전체 발송결과 조회 (전송사별) 카운트-->
|
||||
<select id="MjonMsgSentDAO.findBySWF" parameterClass="String" resultClass="mjonMsgSWFDTO">
|
||||
select
|
||||
SUM(IF(aa.result = 'S', 1, 0)) AS resultSValue,
|
||||
SUM(IF(aa.result = 'W', 1, 0)) AS resultWValue,
|
||||
SUM(IF(aa.result = 'F', 1, 0)) AS resultFValue
|
||||
from
|
||||
(
|
||||
select
|
||||
case
|
||||
when A.AGENT_CODE = '01'
|
||||
and ( A.RSLT_CODE = '100'
|
||||
and (A.RSLT_CODE2 = '0')) then 'S'
|
||||
when A.AGENT_CODE = '02'
|
||||
and (A.RSLT_CODE = '0') then 'S'
|
||||
when A.AGENT_CODE = '03'
|
||||
and (A.RSLT_CODE = '100'
|
||||
or A.RSLT_CODE = '101'
|
||||
or A.RSLT_CODE = '110'
|
||||
or A.RSLT_CODE = '800') then 'S'
|
||||
when
|
||||
A.AGENT_CODE = '04'
|
||||
and (A.RSLT_CODE = '4100'
|
||||
or A.RSLT_CODE = '6600'
|
||||
or A.RSLT_CODE = '7000') then 'S'
|
||||
when
|
||||
A.AGENT_CODE = '05'
|
||||
and (A.RSLT_CODE = '1000'
|
||||
or A.RSLT_CODE = '1001') then 'S'
|
||||
when
|
||||
A.AGENT_CODE = '07'
|
||||
and (A.RSLT_CODE = '6'
|
||||
or A.RSLT_CODE = '1000') then 'S'
|
||||
when
|
||||
A.AGENT_CODE = '08'
|
||||
and (A.RSLT_CODE = '1000'
|
||||
or A.RSLT_CODE = '1001') then 'S'
|
||||
when
|
||||
A.AGENT_CODE = '09'
|
||||
and (A.RSLT_CODE = '1000'
|
||||
or A.RSLT_CODE = '1001') then 'S'
|
||||
when (
|
||||
A.RSLT_CODE is null
|
||||
and A.RSLT_CODE2 is null
|
||||
and A.SENT_DATE is null
|
||||
and A.RSLT_DATE is null ) then 'W'
|
||||
else 'F'
|
||||
end as result /* common query */
|
||||
from
|
||||
MJ_MSG_DATA A
|
||||
where
|
||||
A.MSG_GROUP_ID = #msgGroupId#
|
||||
) aa
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 전체 발송결과 조회 (전송사별)-->
|
||||
<select id="MjonMsgSentDAO.selectAllMsgSentList_advc" parameterClass="mjonMsgSentVO" resultClass="mjonMsgSentVO">
|
||||
|
||||
SELECT
|
||||
B.USER_ID as userId
|
||||
, B.MSG_GROUP_ID as msgGroupId
|
||||
, B.MSG_GROUP_CNT as msgGroupCnt
|
||||
, B.SMS_TXT as smsTxt
|
||||
, B.SUBJECT as subject
|
||||
, DATE_FORMAT(B.REGDATE, '%Y-%m-%d %T') AS regdate
|
||||
, DATE_FORMAT(B.REQ_DATE, '%Y-%m-%d %T') AS reqDate
|
||||
, (
|
||||
CASE
|
||||
WHEN B.DELAY_YN = 'Y' AND B.DELAY_COMPLETE_YN = 'N' THEN DATE_ADD(B.REQ_DATE, INTERVAL -30 MINUTE)
|
||||
ELSE B.REQ_DATE
|
||||
END
|
||||
) AS delayOrgTime
|
||||
, B.CALL_FROM as callFrom
|
||||
, B.TOT_PRICE as totPrice
|
||||
, B.EACH_PRICE as eachPrice
|
||||
, B.MSG_TYPE as msgType
|
||||
, B.FILE_CNT as fileCnt
|
||||
, B.AGENT_CODE as agentCode
|
||||
, B.RESERVE_C_YN as reserveCYn
|
||||
, B.CANCELDATE as canceldate
|
||||
, B.DEL_FLAG as delFlag
|
||||
, B.SEND_KIND as sendKind
|
||||
, B.MSG_KIND as msgKind
|
||||
, B.DELAY_YN as delayYn
|
||||
, B.DELAY_COMPLETE_YN as delayCompleteYn
|
||||
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)
|
||||
AND A.DEL_FLAG = 'N'
|
||||
AND B.RESERVE_C_YN = 'N'
|
||||
AND B.USER_ID = #userId#
|
||||
<![CDATA[
|
||||
AND B.REQ_DATE <= DATE_ADD(NOW(), INTERVAL 60 MINUTE)
|
||||
]]>
|
||||
<isNotEmpty property="searchMsgType">
|
||||
<isEqual property="searchMsgType" compareValue="S">
|
||||
AND B.MSG_TYPE = '4'
|
||||
</isEqual>
|
||||
<isEqual property="searchMsgType" compareValue="L">
|
||||
AND B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT = '0'
|
||||
</isEqual>
|
||||
<isEqual property="searchMsgType" compareValue="M">
|
||||
<![CDATA[
|
||||
AND B.MSG_TYPE = '6'
|
||||
AND B.FILE_CNT > '0'
|
||||
]]>
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual property="searchCondition" compareValue="1" >
|
||||
AND B.SUBJECT LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="2" >
|
||||
AND B.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="3" >
|
||||
AND CALL_TO LIKE CONCAT('%', #searchKeyword#, '%')
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchCondition_01">
|
||||
AND sendKind = #searchCondition_01#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="startDate">
|
||||
<![CDATA[
|
||||
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') >= DATE_FORMAT(#startDate#, '%Y-%m-%d')
|
||||
]]>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="endDate">
|
||||
<![CDATA[
|
||||
AND DATE_FORMAT(REGDATE, '%Y-%m-%d') <= DATE_FORMAT(#endDate#, '%Y-%m-%d')
|
||||
]]>
|
||||
</isNotEmpty>
|
||||
GROUP BY B.MSG_GROUP_ID
|
||||
ORDER BY 1=1
|
||||
<isNotEmpty property="searchSortCnd">
|
||||
<isEqual property="searchSortCnd" compareValue="curState">
|
||||
, curState $searchSortOrd$
|
||||
, orderByrsltCode
|
||||
</isEqual>
|
||||
<isNotEqual property="searchSortCnd" compareValue="curState">
|
||||
,$searchSortCnd$
|
||||
</isNotEqual>
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSortOrd">
|
||||
$searchSortOrd$
|
||||
</isNotEmpty>
|
||||
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 전체 발송결과 조회 (전송사별)-->
|
||||
<select id="MjonMsgSentDAO.selectAllMsgSentList" parameterClass="mjonMsgSentVO" resultClass="mjonMsgSentVO">
|
||||
SELECT
|
||||
|
||||
@ -58,18 +58,11 @@ $(document).ready(function(){
|
||||
}
|
||||
});
|
||||
|
||||
if($("#tdType").val() == "groupList"){
|
||||
$('td[name="listTd"]').attr("rowspan", "2")
|
||||
}else{
|
||||
$('tr[name="listTr"]').remove();
|
||||
$('td[name="listSucc"]').remove();
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
<div class="list_info">
|
||||
<input type="hidden" id="tdType" value="${mjonMsgSentVO.listType}">
|
||||
<p>총 <span class="c_e40000"><c:out value="${totalRecordCount}"/></span>건</p>
|
||||
<p>총 <span class="c_e40000" id="testId"><c:out value="${totalRecordCount}"/></span>건</p>
|
||||
<div>
|
||||
<label for="pageUnit" class="label">줄보기 선택</label>
|
||||
<select id="pageUnit" name="pageUnit" class="selType2">
|
||||
@ -84,104 +77,86 @@ $(document).ready(function(){
|
||||
<div class="tb_wrap">
|
||||
<table class="tType4">
|
||||
<colgroup>
|
||||
<col style="width: 40px;">
|
||||
<col style="width: 45px;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: 8%;">
|
||||
<col style="width: 90px;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 8%;">
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<col style="width: 8%;">
|
||||
<col style="width: 8%;">
|
||||
</c:if>
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 6%;">
|
||||
<col style="width: 11%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<th rowspan="2">
|
||||
<label for="allCheck" class="label">전체 선택</label>
|
||||
<input type="checkbox" id="allCheck" name="allCheck">
|
||||
</th>
|
||||
<th>발송일시
|
||||
<th rowspan="2">발송일시
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_reqdate">
|
||||
</div>
|
||||
</th>
|
||||
<th>형태
|
||||
<th rowspan="2">형태
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_orderByCode">
|
||||
</div>
|
||||
</th>
|
||||
<th>발송방식
|
||||
<!-- <th>발송방식
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_sendKind">
|
||||
</div>
|
||||
</th>
|
||||
<th>내용</th>
|
||||
<th>받는사람
|
||||
</th> -->
|
||||
<th rowspan="2">내용</th>
|
||||
<!-- <th>받는사람
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_callTo">
|
||||
</div>
|
||||
</th>
|
||||
<th>발신번호
|
||||
</th> -->
|
||||
<!-- <th>발신번호
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_callFrom">
|
||||
</div>
|
||||
</th>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<th>
|
||||
</th> -->
|
||||
<th rowspan="2">
|
||||
발송건수
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_msgGroupCnt">
|
||||
</div>
|
||||
</th>
|
||||
</c:if>
|
||||
<th>결과</th>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<th>건수</th>
|
||||
</c:if>
|
||||
<th>금액</th>
|
||||
<th colspan="4">결과</th>
|
||||
<th rowspan="2">금액</th>
|
||||
<th rowspan="2">예약관리</th>
|
||||
<!-- <th>금액</th> -->
|
||||
</tr>
|
||||
<tr>
|
||||
<th>대기</th>
|
||||
<th>성공</th>
|
||||
<th>실패</th>
|
||||
<th>예약</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${not empty resultAllSentList}">
|
||||
<c:forEach var="resultAllSentList" items="${resultAllSentList}" varStatus="status">
|
||||
<c:set var="replaceCnt" value="0" />
|
||||
<c:set var="electionCnt" value="0" />
|
||||
<c:set var="advertisementCnt" value="0" />
|
||||
|
||||
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'[*이름*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*1*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*2*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*3*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*4*]') != -1}">
|
||||
<c:set var="replaceCnt" value="1" />
|
||||
</c:if>
|
||||
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'(선거운동정보)') == 0}">
|
||||
<c:set var="electionCnt" value="1" />
|
||||
</c:if>
|
||||
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'(광고)') == 0}">
|
||||
<c:set var="advertisementCnt" value="1" />
|
||||
</c:if>
|
||||
<tr>
|
||||
<td name="listTd">
|
||||
<td>
|
||||
<label for="msgSentDel${status.count}" class="label">선택</label>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.curState == '0'}">
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgGroupId}" disabled>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgGroupId}">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgSeq}">
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:otherwise>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgGroupId}">
|
||||
</c:when>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.delayYn eq 'Y' && resultAllSentList.delayCompleteYn eq 'N'}">
|
||||
|
||||
@ -205,7 +180,7 @@ $(document).ready(function(){
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<td>
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.msgType eq '6' && resultAllSentList.fileCnt eq 0 }">
|
||||
@ -220,239 +195,40 @@ $(document).ready(function(){
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.sendKind eq 'H' }">
|
||||
WEB
|
||||
</c:when>
|
||||
<c:when test="${resultAllSentList.sendKind eq 'A'}">
|
||||
API
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
<td class="result_cont" title="${resultAllSentList.smsTxt}">
|
||||
<a href="#none" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">
|
||||
<%-- <button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">상세보기</button> --%>
|
||||
<c:out value="${fn:substring(resultAllSentList.smsTxt, 0, 20)}" />
|
||||
<c:if test="${fn:length(resultAllSentList.smsTxt) > 20}">...</c:if>
|
||||
</a>
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">상세보기</button>
|
||||
<button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
|
||||
<td>
|
||||
<p><c:out value="${resultAllSentList.msgGroupCnt}"/> </p>
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.msgGroupCnt > 1}">
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.addrNm ne '-' and resultAllSentList.addrNm ne ''}">
|
||||
<c:out value="${resultAllSentList.addrNm}"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:out value="${resultAllSentList.callToComma}"/>
|
||||
</c:otherwise>
|
||||
</c:choose> 외 <fmt:formatNumber value="${resultAllSentList.msgGroupCnt - 1}" pattern="#,###"/>명
|
||||
</p>
|
||||
</c:when>
|
||||
<c:when test="${resultAllSentList.addrNm ne '-' and resultAllSentList.addrNm ne ''}">
|
||||
<p><c:out value="${resultAllSentList.addrNm}"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p><c:out value="${resultAllSentList.callToComma}"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.addrNm ne '-' and resultAllSentList.addrNm ne ''}">
|
||||
<p><c:out value="${resultAllSentList.addrNm}"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p><c:out value="${resultAllSentList.callToComma}"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<td>
|
||||
<p><c:out value="${resultAllSentList.resultWValue}"/> </p>
|
||||
</td>
|
||||
<td name="listTd">
|
||||
<p><c:out value="${resultAllSentList.callFromComma}"/></p>
|
||||
<td>
|
||||
<p><c:out value="${resultAllSentList.resultSValue}"/> </p>
|
||||
</td>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<td name="listTd">
|
||||
<p><c:out value="${resultAllSentList.msgGroupCnt}"/></p>
|
||||
<td>
|
||||
<p><c:out value="${resultAllSentList.resultFValue}"/> </p>
|
||||
</td>
|
||||
</c:if>
|
||||
<!-- 발송 성공/실패 listType에 따른 전송건별(groupList), 개인별 리스트 처리-->
|
||||
<c:set var="succ" value="0"/> <!-- 정상수신-->
|
||||
<c:set var="fail" value="0"/> <!-- 수신실패-->
|
||||
<c:set var="wait" value="0"/> <!-- 결과대기-->
|
||||
<c:set var="succPrice" value="0"/> <!-- 정상수신 가격-->
|
||||
<c:set var="failPrice" value="0"/> <!-- 수신실패 가격-->
|
||||
<c:set var="waitPrice" value="0"/> <!-- 결과대기 가격-->
|
||||
<c:set var="msgResultSts" value=""/><!-- 결과상태 확인 -->
|
||||
<c:forEach var="resultMsgSFList" items="${resultMsgSucFailList}" varStatus="status">
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<c:if test="${resultAllSentList.msgGroupId == resultMsgSFList.msgGroupId}">
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'S'}">
|
||||
<c:set var="succ" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="succPrice" value="${resultMsgSFList.eachPrice * succ}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'F'}">
|
||||
<c:set var="fail" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="failPrice" value="${resultMsgSFList.eachPrice * fail}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'W'}">
|
||||
<c:set var="wait" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="waitPrice" value="${resultMsgSFList.eachPrice * wait}"/>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:if test="${resultAllSentList.msgGroupId == resultMsgSFList.msgGroupId && resultAllSentList.msgSeq == resultMsgSFList.msgSeq}">
|
||||
<c:set var="msgResultSts" value="${resultMsgSFList.msgResultSts}"/>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'S'}">
|
||||
<c:set var="succ" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="succPrice" value="${resultMsgSFList.eachPrice * succ}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'F'}">
|
||||
<c:set var="fail" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="failPrice" value="${resultMsgSFList.eachPrice * fail}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'W'}">
|
||||
<c:set var="wait" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="waitPrice" value="${resultMsgSFList.eachPrice * wait}"/>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:forEach>
|
||||
<td name="listSucc">
|
||||
<p class="fwRg c_002c9a">정상수신</p>
|
||||
<td>
|
||||
<p class="c_222">0</p>
|
||||
</td>
|
||||
<td name="listSucc">
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList' && succ > 0}">
|
||||
<p class="fwRg c_002c9a" onclick="javascript:fnMsgSFDetailList('${resultAllSentList.msgGroupId}', 'S'); return false;" style="cursor:pointer;"><fmt:formatNumber value="${succ}" pattern="#,###.#"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="fwRg c_002c9a"><fmt:formatNumber value="${succ}" pattern="#,###.#"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td name="listSucc">
|
||||
<p class="fwRg c_002c9a">
|
||||
<c:choose>
|
||||
<c:when test="${succPrice > 0}">
|
||||
<fmt:formatNumber value="${succPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
<td>
|
||||
<c:out value="${resultAllSentList.totPrice}"/>원
|
||||
</td>
|
||||
<td>-</td>
|
||||
|
||||
|
||||
<c:if test="${mjonMsgSentVO.listType != 'groupList'}">
|
||||
<c:if test="${msgResultSts == 'S'}">
|
||||
<td>
|
||||
<p class="fwRg c_002c9a">정상수신</p>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td>
|
||||
<p class="fwRg c_002c9a">
|
||||
<c:choose>
|
||||
<c:when test="${succPrice > 0}">
|
||||
<fmt:formatNumber value="${succPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</c:if>
|
||||
<c:if test="${msgResultSts == 'F'}">
|
||||
<td>
|
||||
<p class="fwRg c_e40000">수신오류</p>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td>
|
||||
<p class="fwRg c_e40000">
|
||||
<c:choose>
|
||||
<c:when test="${failPrice > 0}">
|
||||
<fmt:formatNumber value="${failPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</c:if>
|
||||
<c:if test="${msgResultSts == 'W'}">
|
||||
<td>
|
||||
<p class="fwRg c_e40000">결과대기</p>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td>
|
||||
<p class="fwRg c_e40000">
|
||||
<c:choose>
|
||||
<c:when test="${waitPrice > 0}">
|
||||
<fmt:formatNumber value="${waitPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</tr>
|
||||
<tr name="listTr">
|
||||
<td>
|
||||
<p class="c_222">실패/대기</p>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList' && (fail+wait) > 0}">
|
||||
<p class="c_222" onclick="javascript:fnMsgSFDetailList('${resultAllSentList.msgGroupId}', 'F'); return false;" style="cursor:pointer;">
|
||||
<fmt:formatNumber value="${fail}" pattern="#,###"/> / <fmt:formatNumber value="${wait}" pattern="#,###"/>
|
||||
</p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="c_222">
|
||||
<fmt:formatNumber value="${fail}" pattern="#,###"/> / <fmt:formatNumber value="${wait}" pattern="#,###"/>
|
||||
</p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<p class="c_222">
|
||||
<c:choose>
|
||||
<c:when test="${(failPrice+waitPrice) > 0}">
|
||||
<fmt:formatNumber value="${(failPrice+waitPrice)}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<td colspan="11">발송 내역이 없습니다.</td>
|
||||
</c:if>
|
||||
<c:if test="${mjonMsgSentVO.listType ne 'groupList'}">
|
||||
<td colspan="9">발송 내역이 없습니다.</td>
|
||||
</c:if>
|
||||
<td colspan="11">발송 내역이 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
@ -0,0 +1,479 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ page import="itn.com.cmm.LoginVO" %>
|
||||
<script src="/publish/js/content.js"></script>
|
||||
<script src="/publish/js/popupLayer.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
var startDate = '${startDate}';
|
||||
var endDate = '${endDate}';
|
||||
|
||||
// DatePicker 값 수정
|
||||
var startDatePicker = $('#startDate').pickadate('picker');
|
||||
startDatePicker.set('select', startDate, { format: 'yyyy/mm/dd' });
|
||||
startDatePicker = $('#endDate').pickadate('picker');
|
||||
startDatePicker.set('select', endDate, { format: 'yyyy/mm/dd' });
|
||||
|
||||
|
||||
/* 목록 정렬 항목 아이콘 표시 */
|
||||
var searchSortCnd = $("[name='searchSortCnd']").val();
|
||||
var searchSortOrd = $("[name='searchSortOrd']").val();
|
||||
if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) {
|
||||
var $sort_div = $("#sort_"+ searchSortCnd);
|
||||
var sortClass = 'sortBtn' ;
|
||||
if (searchSortOrd == "desc") sortClass = "sortBtnDesc";
|
||||
$sort_div.replaceClass('sortBtn' , sortClass) ;
|
||||
$sort_div.attr("sortOrd", searchSortOrd);
|
||||
}
|
||||
|
||||
//체크박스 전체 선택 및 해제
|
||||
var allChkSts = false;
|
||||
$("#allCheck").click(function(){
|
||||
|
||||
if(!allChkSts){// 전체선택이 해제되어 있을 경우
|
||||
|
||||
$("input[name=msgSentDel]").prop("checked", true);
|
||||
allChkSts = true;
|
||||
|
||||
//발송 대기건은 선택 삭제가 안되도록 처리함
|
||||
$("input:checkbox[name='msgSentDel']:checked").each(function(index){
|
||||
|
||||
var disabledChk = $(this).prop('disabled');
|
||||
if(disabledChk){ //checkbox disabled 인 것은 제외하고 아이디 저장
|
||||
|
||||
$(this).prop("checked", false);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}else{
|
||||
|
||||
$("input[name=msgSentDel]").prop("checked", false);
|
||||
allChkSts = false;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
if($("#tdType").val() == "groupList"){
|
||||
$('.listTd').attr("rowspan", "2")
|
||||
}else{
|
||||
$('.listTr').remove();
|
||||
$('.listSucc').remove();
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
<div class="list_info">
|
||||
<input type="hidden" id="tdType" value="${mjonMsgSentVO.listType}">
|
||||
<p>총 <span class="c_e40000"><c:out value="${totalRecordCount}"/></span>건</p>
|
||||
<div>
|
||||
<label for="pageUnit" class="label">줄보기 선택</label>
|
||||
<select id="pageUnit" name="pageUnit" 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>
|
||||
<option value="100" <c:if test="${paginationInfo.recordCountPerPage == '100'}">selected</c:if> >100개보기</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 받는사람(전송건별) - 전체 -->
|
||||
<div class="tb_wrap">
|
||||
<table class="tType4">
|
||||
<colgroup>
|
||||
<col style="width: 40px;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: 8%;">
|
||||
<col style="width: 90px;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: 8%;">
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<col style="width: 8%;">
|
||||
<col style="width: 8%;">
|
||||
</c:if>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<label for="allCheck" class="label">전체 선택</label>
|
||||
<input type="checkbox" id="allCheck" name="allCheck">
|
||||
</th>
|
||||
<th>발송일시
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_reqdate">
|
||||
</div>
|
||||
</th>
|
||||
<th>형태
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_orderByCode">
|
||||
</div>
|
||||
</th>
|
||||
<th>발송방식
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_sendKind">
|
||||
</div>
|
||||
</th>
|
||||
<th>내용</th>
|
||||
<th>받는사람
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_callTo">
|
||||
</div>
|
||||
</th>
|
||||
<th>발신번호
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_callFrom">
|
||||
</div>
|
||||
</th>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<th>
|
||||
발송건수
|
||||
<div class="sort_wrap">
|
||||
<input type="button" class="sort sortBtn" id="sort_msgGroupCnt">
|
||||
</div>
|
||||
</th>
|
||||
</c:if>
|
||||
<th>결과</th>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<th>건수</th>
|
||||
</c:if>
|
||||
<th>금액</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${not empty resultAllSentList}">
|
||||
<c:forEach var="resultAllSentList" items="${resultAllSentList}" varStatus="status">
|
||||
<c:set var="replaceCnt" value="0" />
|
||||
<c:set var="electionCnt" value="0" />
|
||||
<c:set var="advertisementCnt" value="0" />
|
||||
|
||||
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'[*이름*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*1*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*2*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*3*]') != -1 || fn:indexOf(resultAllSentList.smsTxt,'[*4*]') != -1}">
|
||||
<c:set var="replaceCnt" value="1" />
|
||||
</c:if>
|
||||
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'(선거운동정보)') == 0}">
|
||||
<c:set var="electionCnt" value="1" />
|
||||
</c:if>
|
||||
<c:if test="${fn:indexOf(resultAllSentList.smsTxt,'(광고)') == 0}">
|
||||
<c:set var="advertisementCnt" value="1" />
|
||||
</c:if>
|
||||
<tr>
|
||||
<td class="listTd">
|
||||
<label for="msgSentDel${status.count}" class="label">선택</label>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.curState == '0'}">
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgGroupId}" disabled>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgGroupId}">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<input type="checkbox" id="msgSentDel${status.count}" name="msgSentDel" value="${resultAllSentList.msgSeq}">
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</td>
|
||||
<td class="listTd">
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.delayYn eq 'Y' && resultAllSentList.delayCompleteYn 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.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>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td class="listTd">
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.msgType eq '6' && resultAllSentList.fileCnt eq 0 }">
|
||||
장문
|
||||
</c:when>
|
||||
<c:when test="${resultAllSentList.msgType eq '6' && resultAllSentList.fileCnt ne 0 }">
|
||||
그림
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
단문
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
<td class="listTd">
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.sendKind eq 'H' }">
|
||||
WEB
|
||||
</c:when>
|
||||
<c:when test="${resultAllSentList.sendKind eq 'A'}">
|
||||
API
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
<td class="listTd">
|
||||
<button class="btnType btnType20" data-tooltip="rev_popup01" onClick="javascript:fnRevDetailPop('${resultAllSentList.msgGroupId}','${resultAllSentList.msgId}','${resultAllSentList.fileCnt}'); return false;">상세보기</button>
|
||||
<button class="btnType btnType20" onClick="javascript:fnMjMsgReSendAll('${resultAllSentList.msgGroupId}','${replaceCnt}','${electionCnt}','${advertisementCnt}'); return false;">재전송</button>
|
||||
</td>
|
||||
<td class="listTd">
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.msgGroupCnt > 1}">
|
||||
<p>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.addrNm ne '-' and resultAllSentList.addrNm ne ''}">
|
||||
<c:out value="${resultAllSentList.addrNm}"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:out value="${resultAllSentList.callToComma}"/>
|
||||
</c:otherwise>
|
||||
</c:choose> 외 <fmt:formatNumber value="${resultAllSentList.msgGroupCnt - 1}" pattern="#,###"/>명
|
||||
</p>
|
||||
</c:when>
|
||||
<c:when test="${resultAllSentList.addrNm ne '-' and resultAllSentList.addrNm ne ''}">
|
||||
<p><c:out value="${resultAllSentList.addrNm}"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p><c:out value="${resultAllSentList.callToComma}"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:choose>
|
||||
<c:when test="${resultAllSentList.addrNm ne '-' and resultAllSentList.addrNm ne ''}">
|
||||
<p><c:out value="${resultAllSentList.addrNm}"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p><c:out value="${resultAllSentList.callToComma}"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td class="listTd">
|
||||
<p><c:out value="${resultAllSentList.callFromComma}"/></p>
|
||||
</td>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<td class="listTd">
|
||||
<p><c:out value="${resultAllSentList.msgGroupCnt}"/></p>
|
||||
</td>
|
||||
</c:if>
|
||||
<!-- 발송 성공/실패 listType에 따른 전송건별(groupList), 개인별 리스트 처리-->
|
||||
<c:set var="succ" value="0"/> <!-- 정상수신-->
|
||||
<c:set var="fail" value="0"/> <!-- 수신실패-->
|
||||
<c:set var="wait" value="0"/> <!-- 결과대기-->
|
||||
<c:set var="succPrice" value="0"/> <!-- 정상수신 가격-->
|
||||
<c:set var="failPrice" value="0"/> <!-- 수신실패 가격-->
|
||||
<c:set var="waitPrice" value="0"/> <!-- 결과대기 가격-->
|
||||
<c:set var="msgResultSts" value=""/><!-- 결과상태 확인 -->
|
||||
<c:forEach var="resultMsgSFList" items="${resultMsgSucFailList}" varStatus="status">
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList'}">
|
||||
<c:if test="${resultAllSentList.msgGroupId == resultMsgSFList.msgGroupId}">
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'S'}">
|
||||
<c:set var="succ" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="succPrice" value="${resultMsgSFList.eachPrice * succ}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'F'}">
|
||||
<c:set var="fail" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="failPrice" value="${resultMsgSFList.eachPrice * fail}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'W'}">
|
||||
<c:set var="wait" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="waitPrice" value="${resultMsgSFList.eachPrice * wait}"/>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:if test="${resultAllSentList.msgGroupId == resultMsgSFList.msgGroupId && resultAllSentList.msgSeq == resultMsgSFList.msgSeq}">
|
||||
<c:set var="msgResultSts" value="${resultMsgSFList.msgResultSts}"/>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'S'}">
|
||||
<c:set var="succ" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="succPrice" value="${resultMsgSFList.eachPrice * succ}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'F'}">
|
||||
<c:set var="fail" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="failPrice" value="${resultMsgSFList.eachPrice * fail}"/>
|
||||
</c:if>
|
||||
<c:if test="${resultMsgSFList.msgResultSts == 'W'}">
|
||||
<c:set var="wait" value="${resultMsgSFList.msgResultCnt}"/>
|
||||
<c:set var="waitPrice" value="${resultMsgSFList.eachPrice * wait}"/>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</c:forEach>
|
||||
<td class="listSucc">
|
||||
<p class="fwRg c_002c9a">정상수신</p>
|
||||
</td>
|
||||
<td class="listSucc">
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList' && succ > 0}">
|
||||
<p class="fwRg c_002c9a" onclick="javascript:fnMsgSFDetailList('${resultAllSentList.msgGroupId}', 'S'); return false;" style="cursor:pointer;"><fmt:formatNumber value="${succ}" pattern="#,###.#"/></p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="fwRg c_002c9a"><fmt:formatNumber value="${succ}" pattern="#,###.#"/></p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td class="listSucc">
|
||||
<p class="fwRg c_002c9a">
|
||||
<c:choose>
|
||||
<c:when test="${succPrice > 0}">
|
||||
<fmt:formatNumber value="${succPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
|
||||
<c:if test="${mjonMsgSentVO.listType != 'groupList'}">
|
||||
<c:if test="${msgResultSts == 'S'}">
|
||||
<td>
|
||||
<p class="fwRg c_002c9a">정상수신</p>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td>
|
||||
<p class="fwRg c_002c9a">
|
||||
<c:choose>
|
||||
<c:when test="${succPrice > 0}">
|
||||
<fmt:formatNumber value="${succPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</c:if>
|
||||
<c:if test="${msgResultSts == 'F'}">
|
||||
<td>
|
||||
<p class="fwRg c_e40000">수신오류</p>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td>
|
||||
<p class="fwRg c_e40000">
|
||||
<c:choose>
|
||||
<c:when test="${failPrice > 0}">
|
||||
<fmt:formatNumber value="${failPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</c:if>
|
||||
<c:if test="${msgResultSts == 'W'}">
|
||||
<td>
|
||||
<p class="fwRg c_e40000">결과대기</p>
|
||||
</td>
|
||||
<!-- 과금/비과금 -->
|
||||
<td>
|
||||
<p class="fwRg c_e40000">
|
||||
<c:choose>
|
||||
<c:when test="${waitPrice > 0}">
|
||||
<fmt:formatNumber value="${waitPrice}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</tr>
|
||||
<tr class="listTr">
|
||||
<td>
|
||||
<p class="c_222">실패/대기</p>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${mjonMsgSentVO.listType == 'groupList' && (fail+wait) > 0}">
|
||||
<p class="c_222" onclick="javascript:fnMsgSFDetailList('${resultAllSentList.msgGroupId}', 'F'); return false;" style="cursor:pointer;">
|
||||
<fmt:formatNumber value="${fail}" pattern="#,###"/> / <fmt:formatNumber value="${wait}" pattern="#,###"/>
|
||||
</p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="c_222">
|
||||
<fmt:formatNumber value="${fail}" pattern="#,###"/> / <fmt:formatNumber value="${wait}" pattern="#,###"/>
|
||||
</p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<p class="c_222">
|
||||
<c:choose>
|
||||
<c:when test="${(failPrice+waitPrice) > 0}">
|
||||
<fmt:formatNumber value="${(failPrice+waitPrice)}" pattern="#,###.#"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
0
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<c:if test="${mjonMsgSentVO.listType eq 'groupList'}">
|
||||
<td colspan="11">발송 내역이 없습니다.</td>
|
||||
</c:if>
|
||||
<c:if test="${mjonMsgSentVO.listType ne 'groupList'}">
|
||||
<td colspan="9">발송 내역이 없습니다.</td>
|
||||
</c:if>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="table_btn clearfix">
|
||||
<div class="table_btn_left">
|
||||
<!-- 2022.07.04 발송결과 화면에 리스트 선택삭제 기능 제거(카운팅 및 금액 합산 오류 관련) -->
|
||||
<!-- <button type="button" class="btnType btnType15" onClick="javascript:fnDelete(); return false;"><i class="remove_img"></i>선택삭제</button> -->
|
||||
<button type="button" data-tooltip="rev_popup02" class="btnType btnType15"><i class="add_img"></i>그룹등록</button>
|
||||
<button type="button" class="btnType btnType15" onClick="javascript:fnDeleteAddrNo('${mjonMsgSentVO.listType}'); return false;"><i class="remove_img"></i>주소록에서 번호 삭제</button>
|
||||
<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('all','${mjonMsgSentVO.tabType}'); 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>
|
||||
<c:if test="${!empty resultAllSentList}">
|
||||
<ul class="pagination">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="imageWeb" jsFunction="linkPage" />
|
||||
</ul>
|
||||
</c:if>
|
||||
@ -744,10 +744,10 @@ function fnMjMsgReSendAll(msgGroupId, replaceCnt, electionCnt, advertisementCnt)
|
||||
}
|
||||
|
||||
//발송결과 - 대기/성공/실패
|
||||
function subContent(p_content_no){
|
||||
function subContent(){
|
||||
|
||||
var sendData = $(document.listForm).serializeArray();
|
||||
var v_html_pre = '<table>'
|
||||
/* var v_html_pre = '<table>'
|
||||
+ '<caption>구분, 충전금액, 사용금액, 잔액 등 정보를 제공하는 표</caption>'
|
||||
+ '<colgroup>'
|
||||
+ '<col style="width: 115px;">'
|
||||
@ -766,8 +766,8 @@ function subContent(p_content_no){
|
||||
+ '<tbody>'
|
||||
+ '<tr><td colspan="4">LOADING...</td></tr>'
|
||||
+ '</tbody>'
|
||||
+ '</table>';
|
||||
|
||||
+ '</table>';
|
||||
*/
|
||||
var v_html_pre = ''
|
||||
+ '<div class="rev_admin_in">'
|
||||
+ '<div class="rev_admin_top clearfix">'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user