선거문자 업로드 수정

This commit is contained in:
wyh 2024-10-17 11:45:14 +09:00
parent 002869ec69
commit e46a95b02b
2 changed files with 101 additions and 75 deletions

View File

@ -5,6 +5,7 @@ import java.io.InputStreamReader;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
@ -16,6 +17,7 @@ import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFSheet;
@ -29,6 +31,8 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@ -62,6 +66,7 @@ import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.lett.service.HashConfVO; import itn.let.lett.service.HashConfVO;
import itn.let.lett.service.LetterService; import itn.let.lett.service.LetterService;
import itn.let.lett.service.LetterVO; import itn.let.lett.service.LetterVO;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.addr.service.AddrGroupService; import itn.let.mjo.addr.service.AddrGroupService;
import itn.let.mjo.addr.service.AddrGroupVO; import itn.let.mjo.addr.service.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService; import itn.let.mjo.addr.service.AddrService;
@ -1802,47 +1807,91 @@ public class MjonMsgCampainDataController {
return jspUrl; return jspUrl;
} }
/**
/** * 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기
* 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기 *
* * @param AddrGroupVO
* @param AddrGroupVO * @param AddrVO
* @param AddrVO * @param sessionVO
* @param sessionVO * @param model
* @param model * @return
* @return * @throws Exception
* @throws Exception */
*/ @RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjax.do"})
@RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjax.do"}) public ModelAndView selectMsgAddrListAjax(
public ModelAndView selectMsgAddrListAjax( @ModelAttribute("searchVO") AddrVO addrVO,
@ModelAttribute("searchVO") AddrVO addrVO, ModelMap model,
ModelMap model, RedirectAttributes redirectAttributes) throws Exception {
RedirectAttributes redirectAttributes) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기 //로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(userId != "") { if(userId != "") {
addrVO.setMberId(userId); addrVO.setMberId(userId);
}else { }else {
modelAndView.addObject("message", "로그인 후 이용이 가능합니다."); modelAndView.addObject("message", "로그인 후 이용이 가능합니다.");
modelAndView.addObject("result", "loginFail"); modelAndView.addObject("result", "loginFail");
return modelAndView; return modelAndView;
} }
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax(addrVO); long startTime = System.currentTimeMillis(); // 시작 시간 측정
modelAndView.addObject("resultAddrList", resultAddrList); List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax(addrVO);
modelAndView.addObject("result", "success");
long endTime = System.currentTimeMillis(); // 종료 시간 측정
return modelAndView;
} long elapsedTime = endTime - startTime; // 소요 시간 계산
System.out.println("소요 시간: " + elapsedTime + " 밀리초");
modelAndView.addObject("resultAddrList", resultAddrList);
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 선거문자 주소록 그룹 선택시 우측 주소록 리스트 화면 불러오기
*
* @param AddrGroupVO
* @param AddrVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {"/web/mjon/msgcampain/selectMsgAddrListAjaxQ.do"})
public ResponseEntity<StatusResponse> selectMsgAddrListAjax_advc(@ModelAttribute("searchVO") AddrVO addrVO) {
Map<String, Object> response = new HashMap<>();
try {
// 로그인 권한 정보 확인
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
addrVO.setMberId(userId);
// OFFSET 계산
int offset = (addrVO.getPage()) * addrVO.getSize();
addrVO.setOffset(offset);
// 데이터 조회
List<AddrVO> resultAddrList = mjonMsgDataService.selectMsgAddrListAjax_advc(addrVO);
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, "",resultAddrList));
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "조회 요청 중 오류가 발생하였습니다.", LocalDateTime.now()));
}
}
/** /**
* 선거문자 최근 전송내역 리스트 화면 불러오기 * 선거문자 최근 전송내역 리스트 화면 불러오기
@ -1884,7 +1933,6 @@ public class MjonMsgCampainDataController {
return "web/msgcampain/MsgLatestListAjax"; return "web/msgcampain/MsgLatestListAjax";
} }
/** /**
* 선거문자 자주 보내는 번호 리스트 화면 불러오기 * 선거문자 자주 보내는 번호 리스트 화면 불러오기
* *

View File

@ -1734,7 +1734,7 @@ function loadAddrList(){
/* serialize 를 사용할때는 processData, contentType 옵션 제가할것 */ /* serialize 를 사용할때는 processData, contentType 옵션 제가할것 */
var data = $("#searchAddrGrpForm").serialize(); var data = $("#searchAddrGrpForm").serialize();
var url = "/web/mjon/msgcampain/selectMsgAddrListAjax.do"; var url = "/web/mjon/msgcampain/selectMsgAddrListAjaxQ.do";
$.ajax({ $.ajax({
type: "POST", type: "POST",
@ -1743,42 +1743,20 @@ function loadAddrList(){
dataType:'json', dataType:'json',
async: true, async: true,
cache: false, cache: false,
success: function (returnData, status) { success: function (data) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 console.log('data : ', data);
if(data.status == "OK"){
if(returnData.result == "success"){ var addrList = data.object;
var addrList = returnData.resultAddrList; if(addrList.length == 0){
var tableData = []; alert("주소록 정보가 없습니다.");
if(addrList.length == 0){
alert("주소록 정보가 없습니다.");
tableAddr.setData(tableData);
return false;
}
//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
for(var i=0; i < addrList.length; i++){
tableData.push({
groupNm: addrList[i].addrGrpNm
, phone: removeDash(addrList[i].addrPhoneNo)
, name: addrList[i].addrNm
, rep1: addrList[i].addrInfo1
, rep2: addrList[i].addrInfo2
, rep3: addrList[i].addrInfo3
, rep4: addrList[i].addrInfo4
});
}
//우측 주소록 리스트 Tabulator에 입력해주기
tableAddr.setData(tableData);
}else{
alert(returnData.message);
return false; return false;
} }
//우측 주소록 리스트 Tabulator에 입력해주기
tableAddr.setData(addrList);
} else if(status== 'fail'){ } else if(status== 'fail'){
alert("주소록 불러오기에 실패하였습니다. !!"); alert("주소록 불러오기에 실패하였습니다. !!");
} }
@ -2788,8 +2766,8 @@ $(document).on('click', '#hdnLink', function() {
<!--// table --> <!--// table -->
</div> </div>
<div class="popup_btn_wrap2"> <div class="popup_btn_wrap2">
<button type="button" onClick="javascript:addrToList_advc('all'); return false;">전체</button> <button type="button" onClick="javascript:addrToList_advc('all'); return false;">전체추가</button>
<button type="button" onClick="javascript:addrToList_advc('select'); return false;">선택</button> <button type="button" onClick="javascript:addrToList_advc('select'); return false;">선택추가</button>
<button type="button" onClick="javascript:addrClose(); return false;">닫기</button> <button type="button" onClick="javascript:addrClose(); return false;">닫기</button>
</div> </div>
<%-- 주소록 레이어 팝업 닫기 실행 코드 --%> <%-- 주소록 레이어 팝업 닫기 실행 코드 --%>