diff --git a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSWFDTO.java b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSWFDTO.java new file mode 100644 index 00000000..ede1b2a6 --- /dev/null +++ b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSWFDTO.java @@ -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; // 대기건수 + +} diff --git a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentService.java b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentService.java index c0d73343..09eff10f 100644 --- a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentService.java +++ b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentService.java @@ -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 selectAllMsgSentList(MjonMsgSentVO mjonMsgSentVO) throws Exception; + public Map selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception; + //발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전 public List selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception; @@ -54,5 +57,8 @@ public interface MjonMsgSentService { //첨부파일 정보 불러오기 public MjonMsgSentVO selectFileInfo(String streFileId) throws Exception; + + public int countAllMsgSentList(MjonMsgSentVO mjonMsgSentVO); + } diff --git a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java index f7478240..b9758511 100644 --- a/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java +++ b/src/main/java/itn/let/mjo/msgsent/service/MjonMsgSentVO.java @@ -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; - } - } diff --git a/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentDAO.java b/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentDAO.java index bb43a7f0..e749d110 100644 --- a/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentDAO.java +++ b/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentDAO.java @@ -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) list("MjonMsgSentDAO.selectAllMsgSentList",mjonMsgSentVO); } + //발송 관리 전체 발송 리스트 불러오기 + @SuppressWarnings("unchecked") + public List selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception{ + + return (List) list("MjonMsgSentDAO.selectAllMsgSentList_advc",mjonMsgSentVO); + } + //발송 관리 전체 발송 리스트 불러오기 => 주소록 조인 제거버전 @SuppressWarnings("unchecked") public List 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); + } } diff --git a/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java b/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java index f142d639..a8945faa 100644 --- a/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgsent/service/impl/MjonMsgSentServiceImpl.java @@ -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 selectAllMsgSentList_advc(MjonMsgSentVO mjonMsgSentVO) throws Exception{ + + + Map resultMap = new HashMap(); + + // 목록 + List resultList = mjonMsgSentDAO.selectAllMsgSentList_advc(mjonMsgSentVO); + + // MsgGroupId만 추출하여 리스트 생성 +// List 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 selectAllMsgSentSimpleList(MjonMsgSentVO mjonMsgSentVO) throws Exception{ List resultList = new ArrayList(); diff --git a/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java b/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java index 89898107..b4fed593 100644 --- a/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java +++ b/src/main/java/itn/let/mjo/msgsent/web/MjonMsgSentController.java @@ -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 totalMsgCnt = mjonMsgSentService.selectDetailMsgSentCntMix(mjonMsgSentVO); System.out.println("start"); @@ -302,8 +295,6 @@ private static final Logger logger = LoggerFactory.getLogger(MjonMsgSentControll List A_lmsMsgCnt = new ArrayList(); List A_mmsMsgCnt = new ArrayList(); - 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 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 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 resultMsgSucFailList = new ArrayList(); - - 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 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 resultMsgSucFailList = new ArrayList(); + + 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; } diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml index a9209770..9dbd1628 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgSent_SQL_mysql.xml @@ -3,8 +3,9 @@ ========= ======= ================================================= 2021.06.21 우영두 --> - + + @@ -222,6 +223,220 @@ + + + + + + + + + + + + + + -

+

- 발송일시 + 발송일시
- 형태 + 형태
- 발송방식 + + 내용 + + + 발송건수
- - 결과 - - 건수 - - 금액 + 결과 + 금액 + 예약관리 + + + + 대기 + 성공 + 실패 + 예약 - - - - - - - - - - - - - - + - - - - - - - - - - + + + - + @@ -205,7 +180,7 @@ $(document).ready(function(){ - +

@@ -220,239 +195,40 @@ $(document).ready(function(){

- -

- - - WEB - - - API - - - - - - -

+ + +<%-- --%> + + ... + - - - + +

- - - - - -

- - - - - - - - 명 -

-
- -

-
- -

-
-
-
- - - -

-
- -

-
-
-
-
+ +

- -

+ +

- - -

+ +

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

정상수신

+ +

0

- - - -

-
- -

-
-
- - - -

- - - - - - 0 - - -

+ + 원 + - + - - - -

정상수신

- - - -

- - - - - - 0 - - -

- -
- - -

수신오류

- - - -

- - - - - - 0 - - -

- -
- - -

결과대기

- - - -

- - - - - - 0 - - -

- -
-
- - - -

실패/대기

- - - - -

- / -

-
- -

- / -

-
-
- - -

- - - - - - 0 - - -

-
- - 발송 내역이 없습니다. - - - 발송 내역이 없습니다. - + 발송 내역이 없습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax_advc_backup_20250115.jsp b/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax_advc_backup_20250115.jsp new file mode 100644 index 00000000..59faa545 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentAllListAjax_advc_backup_20250115.jsp @@ -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" %> + + + +
+ +

+
+ + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + 발송일시 +
+ +
+
형태 +
+ +
+
발송방식 +
+ +
+
내용받는사람 +
+ +
+
발신번호 +
+ +
+
+ 발송건수 +
+ +
+
결과건수금액
+ + + + + + + + + + + + + + + + + + + + + + + + <%-- + 20240906 추가 + 발송 대기 상태일 때만 원래 발송시간을 보여주고, 발송이 완료되면 발송 처리 완료 시간(reqDate)을 보여준다. + 30분 딜레이 된 건으로 관리자 승인/취소 처리가 완료 되지 않은 건에 대해서 -30분 처리하여 원래 사용자가 보내려던 시간을 표시해줌 + --%> +

+
+ +

+
+
+ +
+ +

+
+
+
+

+ + + 장문 + + + 그림 + + + 단문 + + +

+
+

+ + + WEB + + + API + + + - + + +

+
+ + + + + + + +

+ + + + + + + + 명 +

+
+ +

+
+ +

+
+
+
+ + + +

+
+ +

+
+
+
+
+
+

+
+

+
+

정상수신

+
+ + +

+
+ +

+
+
+
+

+ + + + + + 0 + + +

+
+

정상수신

+
+

+ + + + + + 0 + + +

+
+

수신오류

+
+

+ + + + + + 0 + + +

+
+

결과대기

+
+

+ + + + + + 0 + + +

+
+

실패/대기

+
+ + +

+ / +

+
+ +

+ / +

+
+
+
+

+ + + + + + 0 + + +

+
발송 내역이 없습니다.발송 내역이 없습니다.
+
+
+
+ + + + + +
+
+ + +
+
+ +
    + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp b/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp index 2769b35e..6021b6f0 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgsent/MsgSentView.jsp @@ -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 = '' + /* var v_html_pre = '
' + '' + '' + '' @@ -766,8 +766,8 @@ function subContent(p_content_no){ + '' + '' + '' - + '
구분, 충전금액, 사용금액, 잔액 등 정보를 제공하는 표
LOADING...
'; - + + ''; + */ var v_html_pre = '' + '
' + '
'