From 06f4e5e5aeab8c03c6b918591a9ebcb72cf45e86 Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 29 Dec 2023 11:59:45 +0900 Subject: [PATCH] =?UTF-8?q?2023-12-29=2011:59=20=EA=B8=B0=EC=86=8C?= =?UTF-8?q?=EC=9C=A0=EC=98=88=20=EB=93=B1=EB=A1=9D=20=EC=BB=AC=EB=9F=BC?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trgtMng/web/CndtnTrgtMngController.java | 2523 +++++++++-------- .../jsp/oprtn/cndtnSspnIdtmt/trgtReg.jsp | 8 +- 2 files changed, 1268 insertions(+), 1263 deletions(-) diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java index aaa58d3f..0e32b4ff 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java @@ -1,1259 +1,1264 @@ -package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.web; - -import java.time.LocalDate; -import java.time.Period; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.apache.commons.collections.map.HashedMap; -import org.apache.commons.lang3.StringUtils; -import org.apache.poi.xssf.streaming.SXSSFWorkbook; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -import egovframework.rte.fdl.idgnr.EgovIdGnrService; -import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.ComDefaultCodeVO; -import kcc.com.cmm.LoginVO; -import kcc.com.cmm.service.CmmnDetailCode; -import kcc.com.cmm.service.EgovCmmUseService; -import kcc.com.cmm.service.EgovFileMngService; -import kcc.com.cmm.service.FileVO; -import kcc.com.cmm.spring.data.util.ExcelUtil; -import kcc.com.cmm.util.DateUtil; -import kcc.com.cmm.util.StringUtil; -import kcc.com.utl.user.service.CheckFileUtil; -import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.let.uat.uia.service.SsoLoginVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; -import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; -import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; - -/** - * 기반강화연수(관리자) - * 기반강화연수에 관한 controller 클래스를 정의한다. - * @author 조용준 - * @since 2023.07.12 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    --------    ---------------------------
- *   2021.12.16  조용준          최초 생성
- *
- * 
- */ - -@Controller -//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn") -public class CndtnTrgtMngController { - - private static final Logger LOGGER = LoggerFactory.getLogger(CndtnTrgtMngController.class); - - //로그인 체크 util - @Resource(name = "checkLoginUtil") - private CheckLoginUtil checkLoginUtil; - - //과정 관리 - @Resource(name = "vEPrcsService") - private VEPrcsService vEPrcsService; - - //온라인콘텐츠과정 관리 - @Resource(name = "vEPrcsOnlnCntntService") - private VEPrcsOnlnCntntService vEPrcsOnlnCntntService; - - - //과정 관리 - @Resource(name = "cndtnTrgtInfoMngService") - private CndtnTrgtMngService cndtnTrgtInfoMngService; - - //교육과정순번 - @Resource(name="prcsGnrService") - private EgovIdGnrService prcsGnrService; - - //기소유예대상자 - @Resource(name="trgtOrdService") - private EgovIdGnrService trgtOrdService; - - //과정온라인콘텐츠순번 - @Resource(name="prcsOnlnGnrService") - private EgovIdGnrService prcsOnlnGnrService; - - - //과정차시 관리 - @Resource(name = "vEPrcsAplctPrdService") - private VEPrcsAplctPrdService vEPrcsAplctPrdService; - - - //파일 체크 util - @Resource(name = "checkFileUtil") - private CheckFileUtil checkFileUtil; - - - //파일정보의 관리 - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileService; - - @Resource(name = "EgovCmmUseService") - private EgovCmmUseService egovCmmUseService; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - /* - - // 교육신청 서비스단 - @Resource(name = "AdjReqMgrService") - private AdjReqMgrService adjReqMgrService; - - // eGov 공통코드 - @Resource(name = "EgovCmmUseService") - private EgovCmmUseService cmmUseService; - - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileService; - - // global 프로퍼티 - @Resource(name="globalSettings") - protected Properties propertiesService; - - //첨부파일 경로, realPath 설정 - @Resource(name="EgovFileMngUtil") - private EgovFileMngUtil fileUtil; - - // 첨부파일 정보 - @Resource(name="EgovFileMngService") - private EgovFileMngService fileMngService; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - - @Resource(name="KccadrMgrUdtService") - private KccadrMgrUdtService kccadrMgrUdtService; - - // 교육신청 서비스단 - @Resource(name = "checkAdrProcessUtil") - private CheckAdrProcessUtil checkAdrProcessUtil; - */ - - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do") - public String trgtList( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 -// LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - - String userWork = this.getUserWork(request); - cndtnTrgtInfoMngVO.setSearchCondition(userWork); - - //1.pageing step1 - PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); - - //검색 조회 - if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ - - - String selectCondition = ""; - String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); - - selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; - cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); - - } - -// List cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - List cndtnTrgtInfoMngVOList = null; - try { - - cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - } catch (Exception e) { - e.printStackTrace(); - // TODO: handle exception - } - - //3.pageing step3 - paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); - - model.addAttribute("paginationInfo", paginationInfo); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", cndtnTrgtInfoMngVOList); - - - - - return "oprtn/cndtnSspnIdtmt/trgtList"; - } - - /** - * @methodName : getUserWork - * @author : 이호영 - * @date : 2023.11.07 - * @description : 사용자 권한이 관할청 담당자일때 userWork로 관할 가져오기 - * @param request - * @return - */ - private String getUserWork(HttpServletRequest request) { - - String userWork = ""; - HttpSession session = request.getSession(); - LoginVO loginVO = (LoginVO) session.getAttribute("LoginVO"); - String authority = loginVO.getAuthority(); - // 관할청 담당자일때 - if("ROLE_ADR_JRSDC".equals(authority)) { - userWork = loginVO.getUserWork(); - } - // TODO Auto-generated method stub - return userWork; - } - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do") - public String trgtMngList( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority()); - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); - - //검색 조회 - String selectCondition = ""; - if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ - String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); -// selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; - selectCondition = "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'"; - cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); - } - - System.out.println("cndtnTrgtInfoMngVO.getSearchSelStatus() : "+ cndtnTrgtInfoMngVO.getSearchSelStatus()); - - if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getSearchSelStatus())) - { - cndtnTrgtInfoMngVO.setSearchSelStatusToList(cndtnTrgtInfoMngVO.getSearchSelStatus()); - } - - List cndtnTrgtInfoMngVOList = null; - - try { - - cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - } catch (Exception e) { - e.printStackTrace(); - // TODO: handle exception - } - - //3.pageing step3 - paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); - - model.addAttribute("paginationInfo", paginationInfo); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", cndtnTrgtInfoMngVOList); - - ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); - codeParam.setCodeId("VEA008"); - List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); - model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); - - return "oprtn/cndtnSspnIdtmt/trgtMngList"; - } - - /** - * @methodName : trgtCmpltList - * @author : 이호영 - * @date : 2023.10.20 - * @description : 대상자 이수 목록 - * @param cndtnTrgtInfoMngVO - * @param model - * @return - * @throws Exception - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtCmpltList.do") - public String trgtCmpltList( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); - - //검색 조회 - if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ - - - String selectCondition = ""; - String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); - - selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; - cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); - - } - -// List cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - List cndtnTrgtInfoMngVOList = null; - try { - // 이수 조건 추가 - cndtnTrgtInfoMngVO.setEduStateCd("20"); - cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - } catch (Exception e) { - e.printStackTrace(); - // TODO: handle exception - } - - //3.pageing step3 - paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); - - model.addAttribute("paginationInfo", paginationInfo); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", cndtnTrgtInfoMngVOList); - - return "oprtn/cndtnSspnIdtmt/trgtCmpltList"; - } - - /** - * 조건부기소유예대상자 등록 화면 - */ - //@RequestMapping("eduPrcsMngReg.do") - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do") - public String cndtnEduPrcsMngReg( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - String userWork = this.getUserWork(request); - model.addAttribute("userWork", userWork); - - - - ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); - codeParam.setCodeId("VEA008"); - List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); - model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); - - return "oprtn/cndtnSspnIdtmt/trgtReg"; - } - - /** - * 조건부기소유예과정 등록 - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do") - public ModelAndView cndtnEduPrcsMngRegAjax( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - , final MultipartHttpServletRequest multiRequest - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - //로그인 처리==================================== - - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - //step2.파일 처리==================================== - //파일 정상 처리 여부와 첨부 파일 정보 - //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO); - //파일 제한 수량 가져오기, 없으면 기본값 사용 - int i_file_limit = checkFileUtil.getLimitCount(request); // file count - int i_limit_size = checkFileUtil.getLimitSize(request); // file MB - String s_file_exts = checkFileUtil.getS_exts(); // file exts - - String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert( - multiRequest, modelAndView - , "APLCT_" //file_name_prefix - , s_file_exts - , i_limit_size - , i_file_limit - ); //EXT, MB size and ea - - if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView; - - - // 사건번호 - // 형식 : - 예시로 A-서울중앙-100-23-1 경우 - // A (성인/미성년 구분), 서울중앙, 100, 23, 1 - // 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호 - - cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO)); - - cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId()); - cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일 - cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id - cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO); - - - - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - - // 사건번호 - // 형식 : - 예시로 A-서울중앙-100-23-1 경우 - // A (성인/미성년 구분), 서울중앙, 100, 23, 1 - // 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호 - private String getReqNmbr(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { - - //성인 미성년 구분 - String adultWhether = getIsAdultInKorea(cndtnTrgtInfoMngVO.getDBirth()); - String reqNmbrTemp = adultWhether+"-"+cndtnTrgtInfoMngVO.getCmptntAthrt()+"-"+DateUtil.getStringToLocalDateYear(); - - int cnt = cndtnTrgtInfoMngService.findCntreqNmber("%" + reqNmbrTemp + "%"); - System.out.println(cnt); - System.out.println(cnt+1); - return reqNmbrTemp+"-"+(cnt+1); - - } - - /** - * @methodName : getIsAdultInKorea - * @author : 이호영 - * @date : 2023.11.07 - * @description : 성인이면 A, 미성년이면 Y - * @param birthDateString - * @return - */ - public static String getIsAdultInKorea(String birthDateString) { - String returnData = "Y"; - // 생년월일 포맷 정의 (예시: "yyyy-MM-dd") - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); - - // 문자열로부터 LocalDate 객체 생성 - LocalDate birthDate = LocalDate.parse(birthDateString, formatter); - - // 현재 날짜 얻기 - LocalDate now = LocalDate.now(); - - // 생년월일과 현재 날짜 사이의 기간 계산 - Period period = Period.between(birthDate, now); - System.out.println("period.getYears() : "+ period.getYears()); - if(period.getYears() >= 19) { - returnData="A"; - } - // 만 나이가 19세 이상인지 확인 - return returnData; - } - - /** - * 조건부기소유예과정 등록 - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do") - public ModelAndView trgtMdfyAjax( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - //, RedirectAttributes redirectAttributes - , HttpServletRequest request - , final MultipartHttpServletRequest multiRequest - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - //로그인 처리==================================== - - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - //step2.첨부파일 체크 후 저장 하기 - String s_scholSealAtchFileId = ""; - s_scholSealAtchFileId = cndtnTrgtInfoMngVO.getAtchFileId(); - - //DB에서 실제 첨부파일 존재 여부 확인 - FileVO fileVO = new FileVO(); - fileVO.setAtchFileId(s_scholSealAtchFileId); - List result = fileService.selectFileInfs(fileVO); - if (result.size()<=0) { - s_scholSealAtchFileId = ""; - } - - - //step3.파일 처리==================================== - //파일 정상 처리 여부와 첨부 파일 정보 - //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO); - //파일 제한 수량 가져오기, 없으면 기본값 사용 - int i_file_limit = checkFileUtil.getLimitCount(request); // file count - int i_limit_size = checkFileUtil.getLimitSize(request); // file MB - String s_file_exts = checkFileUtil.getS_exts(); // file exts - - - //기존 파일 존재 여부에 따라서 insert or update 처리 - if ("".equals(s_scholSealAtchFileId)) { - //atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea - s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert( - multiRequest, modelAndView - , "APLCT_" - , s_file_exts - , i_limit_size - , i_file_limit - ); //EXT, MB size and ea - cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); - }else { - //atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea - s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate( - multiRequest, modelAndView - , "APLCT_" - , s_file_exts - , i_limit_size - , i_file_limit - , s_scholSealAtchFileId - ); //EXT, MB size and ea - } - - if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView; - - - - - cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id - cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO); - - - - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - /** - * 대상자목록 - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do") - public String trgtDetail( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 조회 - CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); - model.addAttribute("info", cndtnTrgtInfoVO); - - String userWork = this.getUserWork(request); - model.addAttribute("userWork", userWork); - - - //파일 정보 가져오기 - FileVO fileVO = new FileVO(); - fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId()); - List result = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", result); - model.addAttribute("fileListCnt", result.size()); - - return "oprtn/cndtnSspnIdtmt/trgtDetail"; - } - - /** - * 조건부기소유예과정 등록 - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/delUpdateAjax.do") - public ModelAndView delUpdateAjax( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - cndtnTrgtInfoMngService.updateDel(cndtnTrgtInfoMngVO); - - - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - - /** - * 조건부기소유예과정 수료자 상세화면 - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtCmpltDetail.do") - public String trgtCmpltDetail( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 조회 - CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); - model.addAttribute("info", cndtnTrgtInfoVO); - //세부과정 목록 조회 - - - List cndtnTrgtInfoMngVOList = new ArrayList(); - if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getTrgtNm()) || StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getDBirth())) - { - cndtnTrgtInfoMngVO.setFirstIndex(0); - cndtnTrgtInfoMngVO.setRecordCountPerPage(100000); -// String selectCondition = "AND PRCS_APLCT_PRD_ORD_CMPLT is not null "; -// cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); - cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - } - model.addAttribute("list", cndtnTrgtInfoMngVOList); - - - return "oprtn/cndtnSspnIdtmt/trgtCmpltDetail"; - } - - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateTrgtDuplAjax.do") - public ModelAndView updateEduAplctAprvlCd( - @ModelAttribute("vEPrcsDetailVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - //로그인 처리==================================== - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - - try { - // 교육 신청 테이블에 신청자 상태값 update -// vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO); - cndtnTrgtInfoMngService.updateTrgtDuplAjax(cndtnTrgtInfoMngVO); - - modelAndView.addObject("result", "success"); - - } catch (Exception ex) { - ex.printStackTrace(); - modelAndView.addObject("result", ""); - } - - - return modelAndView; - - } - - /** - * 조건부기소유예과정 수정화면 - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfy.do") - public String trgtMdfy( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 조회 - CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); - model.addAttribute("info", cndtnTrgtInfoVO); - - - // 관할청 공통코드 - ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); - codeParam.setCodeId("VEA008"); - List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); - model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); - - String userWork = this.getUserWork(request); - model.addAttribute("userWork", userWork); - - - //파일 정보 가져오기 - FileVO fileVO = new FileVO(); - fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId()); - List result = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", result); - model.addAttribute("fileListCnt", result.size()); - - return "oprtn/cndtnSspnIdtmt/trgtMdfy"; - } - - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngMdfy.do") - public String trgtMngMdfy( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 조회 - CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); - model.addAttribute("info", cndtnTrgtInfoVO); - - - //파일 정보 가져오기 - FileVO fileVO = new FileVO(); - fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId()); - List result = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", result); - model.addAttribute("fileListCnt", result.size()); - - - // 관할청 공통코드 - ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); - codeParam.setCodeId("VEA008"); - List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); - model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); - - return "oprtn/cndtnSspnIdtmt/trgtMngMdfy"; - } - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do") - public String cndtnEduQnaMngList( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - -// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ -// String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; -// vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); -// } - - List vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - - model.addAttribute("paginationInfo", paginationInfo); - - // 사용자 이름 디코딩 - vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEPrcsDetailVOList); - - - return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList"; -// return "oprtn/fndthEnhanceTrn/fndthEduQnaMngList"; - } - - /** - * @methodName : cndtnEduQnaMngDetail - * @author : 이호영 - * @date : 2023.11.21 - * @description : - * @param vEPrcsDetailVO - * @param model - * @param redirectAttributes - * @param session - * @param request - * @return - * @throws Exception - */ - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail.do") - public String cndtnEduQnaMngDetail( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - System.out.println("vEPrcsDetailVO.getPrcsAplctPrdQnaOrd() : "+ vEPrcsDetailVO.getPrcsAplctPrdQnaOrd()); - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 조회 - VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO); - vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm())); - - model.addAttribute("info", vEPrcsQnaDetail); - //세부과정 목록 조회 - - return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail"; - } - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do") - public ModelAndView cndtnEduQnaMngUpdateAjax( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - - //로그인 처리==================================== - - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id - vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id - vEPrcsService.qnaUpdate(vEPrcsDetailVO); - - - //세부과정 지우고 다시 생성 - VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO(); - vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd()); - modelAndView.addObject("result", "success"); - return modelAndView; - } - - - @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngExcel.do") - public ModelAndView trgtMngExcel( - @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority()); - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject(model); - return modelAndView; - } - - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); - - //검색 조회 - String selectCondition = ""; - if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ - String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); -// selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; - selectCondition = "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'"; - cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); - } - - if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getSearchSelStatus())) - { - cndtnTrgtInfoMngVO.setSearchSelStatusToList(cndtnTrgtInfoMngVO.getSearchSelStatus()); - } - - List cndtnTrgtInfoMngVOList = null; - - try { - - cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); - } catch (Exception e) { - e.printStackTrace(); - // TODO: handle exception - } - - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - - for(CndtnTrgtMngVO tmp : cndtnTrgtInfoMngVOList) { - //의뢰읠 - tmp.setReqPnttm(tmp.getReqPnttm().substring(0, 10)); - //사건번호 - tmp.setVntYear(tmp.getVntYear()+"형제"+tmp.getVntNmbr()); - //관할청 - if(StringUtil.isNotEmpty(tmp.getCmptntAthrt())) { - vo.setCodeId("VEA008"); - vo.setCode(tmp.getCmptntAthrt()); - CmmnDetailCode cmmnDetailCode= egovCmmUseService.selectCmmCodeDetailValue(vo); - tmp.setCmptntAthrt(StringUtil.escapeXml(cmmnDetailCode.getCodeNm())); - } - //생년월일 - if(StringUtil.isNotEmpty(tmp.getdBirth())) { - tmp.setDBirth(tmp.getdBirth()); - } - //성별 - if(StringUtil.isNotEmpty(tmp.getSex())) { - vo.setCodeId("COM014"); - vo.setCode(tmp.getSex()); - CmmnDetailCode cmmnDetailCodeSex= egovCmmUseService.selectCmmCodeDetailValue(vo); - tmp.setSex((StringUtil.escapeXml(cmmnDetailCodeSex.getCodeNm()))); - } - //의뢰상태 - if(StringUtil.isNotEmpty(tmp.getReqStateCd())) { - vo.setCodeId("VEA005"); - vo.setCode(tmp.getReqStateCd()); - CmmnDetailCode cmmnDetailCodeReqState= egovCmmUseService.selectCmmCodeDetailValue(vo); - tmp.setReqStateCd((StringUtil.escapeXml(cmmnDetailCodeReqState.getCodeNm()))); - } - //교육상태 - if(StringUtil.isNotEmpty(tmp.getEduStateCd())) { - vo.setCodeId("VEA002"); - vo.setCode(tmp.getEduStateCd()); - CmmnDetailCode cmmnDetailCodeEduState= egovCmmUseService.selectCmmCodeDetailValue(vo); - tmp.setEduStateCd((StringUtil.escapeXml(cmmnDetailCodeEduState.getCodeNm()))); - } - //주소 - if(StringUtil.isNotEmpty(tmp.getAddr()) && StringUtil.isNotEmpty(tmp.getAddrDetail())) { - tmp.setAddr(tmp.getAddr()+" "+tmp.getAddrDetail()); - } - } - - int[] width = { - 4000, 5000, 5000, 5000, 3000 - , 3000, 5000, 4000, 5000, 13000 - - , 3500 - }; // 너비 - String[] header = { - "의뢰일", "사건번호", "관할청", "생년월일", "성명" - , "성별" , "의뢰번호", "의뢰상태", "교육상태", "주소" - , "검사명" - }; // 헤더에 들어갈 이름 - String[] order = { - "ReqPnttm", "VntYear", "CmptntAthrt", "DBirth", "TrgtNm" - , "Sex", "ReqNmbr", "ReqStateCd", "EduStateCd", "Addr" - - , "PrsctrNm" - }; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용) - - excelDown( - cndtnTrgtInfoMngVOList, - "대상자 목록", - width, - header, - order, - model - ); - - - - - - - //3.pageing step3 -// paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); -// -// model.addAttribute("paginationInfo", paginationInfo); -// -// -// //대상 리스트, 페이징 정보 전달 -// model.addAttribute("list", cndtnTrgtInfoMngVOList); -// -// ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); -// codeParam.setCodeId("VEA008"); -// List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); -// model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); - - modelAndView.addObject(model); - - return modelAndView; - } - - - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - // - // private function - // - // - - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1( - VEPrcsDetailVO p_vEPrcsDetailVO - )throws Exception{ - // pageing step1 - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit()); - paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize()); - - return paginationInfo; - } - - - //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 - private VEPrcsDetailVO setPagingStep2( - VEPrcsDetailVO p_vEPrcsDetailVO - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step2 - p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); - p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); - p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); - - if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord"); - p_vEPrcsDetailVO.setSearchSortOrd("desc"); - } - - return p_vEPrcsDetailVO; - } - - //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 - private PaginationInfo setPagingStep3( - List p_vEPrcsDetailVOList - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step3 - int totCnt = 0; - if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt(); - p_paginationInfo.setTotalRecordCount(totCnt); - - return p_paginationInfo; - } - //CndtnTrgtInfoMngVO - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setCndtnPagingStep1( - CndtnTrgtMngVO p_cndtnTrgtInfoMngVO - )throws Exception{ - // pageing step1 - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(p_cndtnTrgtInfoMngVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(p_cndtnTrgtInfoMngVO.getPageUnit()); - paginationInfo.setPageSize(p_cndtnTrgtInfoMngVO.getPageSize()); - - return paginationInfo; - } - - - //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 - private CndtnTrgtMngVO setCndtnPagingStep2( - CndtnTrgtMngVO p_cndtnTrgtInfoMngVO - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step2 - p_cndtnTrgtInfoMngVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); - p_cndtnTrgtInfoMngVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); - p_cndtnTrgtInfoMngVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); - - if("".equals(p_cndtnTrgtInfoMngVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - p_cndtnTrgtInfoMngVO.setSearchSortCnd("prcs_ord"); - p_cndtnTrgtInfoMngVO.setSearchSortOrd("desc"); - } - - return p_cndtnTrgtInfoMngVO; - } - - - //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 - private PaginationInfo setCndtnPagingStep3( - List p_cndtnTrgtInfoMngVOList - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step3 - int totCnt = 0; - if(p_cndtnTrgtInfoMngVOList.size() > 0) totCnt = p_cndtnTrgtInfoMngVOList.get(0).getTotCnt(); - p_paginationInfo.setTotalRecordCount(totCnt); - - return p_paginationInfo; - } - - @SuppressWarnings("unused") - private void excelDown( - List list, - String title, - int[] width, - String[] header, - String[] order, - ModelMap model - ){ - // 호출 - SXSSFWorkbook workbook; - try { - workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title); - model.addAttribute("locale", Locale.KOREA); - model.addAttribute("workbook", workbook); - model.addAttribute("workbookName", title); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} +package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.web; + +import java.time.LocalDate; +import java.time.Period; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.ComDefaultCodeVO; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.CmmnDetailCode; +import kcc.com.cmm.service.EgovCmmUseService; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.FileVO; +import kcc.com.cmm.spring.data.util.ExcelUtil; +import kcc.com.cmm.util.DateUtil; +import kcc.com.cmm.util.StringUtil; +import kcc.com.utl.user.service.CheckFileUtil; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.let.uat.uia.service.SsoLoginVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; +import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; +import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; + +/** + * 기반강화연수(관리자) + * 기반강화연수에 관한 controller 클래스를 정의한다. + * @author 조용준 + * @since 2023.07.12 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2021.12.16  조용준          최초 생성
+ *
+ * 
+ */ + +@Controller +//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn") +public class CndtnTrgtMngController { + + private static final Logger LOGGER = LoggerFactory.getLogger(CndtnTrgtMngController.class); + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + //과정 관리 + @Resource(name = "vEPrcsService") + private VEPrcsService vEPrcsService; + + //온라인콘텐츠과정 관리 + @Resource(name = "vEPrcsOnlnCntntService") + private VEPrcsOnlnCntntService vEPrcsOnlnCntntService; + + + //과정 관리 + @Resource(name = "cndtnTrgtInfoMngService") + private CndtnTrgtMngService cndtnTrgtInfoMngService; + + //교육과정순번 + @Resource(name="prcsGnrService") + private EgovIdGnrService prcsGnrService; + + //기소유예대상자 + @Resource(name="trgtOrdService") + private EgovIdGnrService trgtOrdService; + + //과정온라인콘텐츠순번 + @Resource(name="prcsOnlnGnrService") + private EgovIdGnrService prcsOnlnGnrService; + + + //과정차시 관리 + @Resource(name = "vEPrcsAplctPrdService") + private VEPrcsAplctPrdService vEPrcsAplctPrdService; + + + //파일 체크 util + @Resource(name = "checkFileUtil") + private CheckFileUtil checkFileUtil; + + + //파일정보의 관리 + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService egovCmmUseService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + /* + + // 교육신청 서비스단 + @Resource(name = "AdjReqMgrService") + private AdjReqMgrService adjReqMgrService; + + // eGov 공통코드 + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + // global 프로퍼티 + @Resource(name="globalSettings") + protected Properties propertiesService; + + //첨부파일 경로, realPath 설정 + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + // 첨부파일 정보 + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + + @Resource(name="KccadrMgrUdtService") + private KccadrMgrUdtService kccadrMgrUdtService; + + // 교육신청 서비스단 + @Resource(name = "checkAdrProcessUtil") + private CheckAdrProcessUtil checkAdrProcessUtil; + */ + + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do") + public String trgtList( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 +// LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + + String userWork = this.getUserWork(request); + cndtnTrgtInfoMngVO.setSearchCondition(userWork); + + //1.pageing step1 + PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); + + //검색 조회 + if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ + + + String selectCondition = ""; + String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); + + selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; + cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + + } + +// List cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + List cndtnTrgtInfoMngVOList = null; + try { + + cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + } + + //3.pageing step3 + paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); + + model.addAttribute("paginationInfo", paginationInfo); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", cndtnTrgtInfoMngVOList); + + + + + return "oprtn/cndtnSspnIdtmt/trgtList"; + } + + /** + * @methodName : getUserWork + * @author : 이호영 + * @date : 2023.11.07 + * @description : 사용자 권한이 관할청 담당자일때 userWork로 관할 가져오기 + * @param request + * @return + */ + private String getUserWork(HttpServletRequest request) { + + String userWork = ""; + HttpSession session = request.getSession(); + LoginVO loginVO = (LoginVO) session.getAttribute("LoginVO"); + String authority = loginVO.getAuthority(); + // 관할청 담당자일때 + if("ROLE_ADR_JRSDC".equals(authority)) { + userWork = loginVO.getUserWork(); + } + // TODO Auto-generated method stub + return userWork; + } + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do") + public String trgtMngList( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority()); + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); + + //검색 조회 + String selectCondition = ""; + if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ + String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); +// selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; + selectCondition = "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'"; + cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + } + + System.out.println("cndtnTrgtInfoMngVO.getSearchSelStatus() : "+ cndtnTrgtInfoMngVO.getSearchSelStatus()); + + if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getSearchSelStatus())) + { + cndtnTrgtInfoMngVO.setSearchSelStatusToList(cndtnTrgtInfoMngVO.getSearchSelStatus()); + } + + List cndtnTrgtInfoMngVOList = null; + + try { + + cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + } + + //3.pageing step3 + paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); + + model.addAttribute("paginationInfo", paginationInfo); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", cndtnTrgtInfoMngVOList); + + ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); + codeParam.setCodeId("VEA008"); + List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); + model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); + + return "oprtn/cndtnSspnIdtmt/trgtMngList"; + } + + /** + * @methodName : trgtCmpltList + * @author : 이호영 + * @date : 2023.10.20 + * @description : 대상자 이수 목록 + * @param cndtnTrgtInfoMngVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtCmpltList.do") + public String trgtCmpltList( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); + + //검색 조회 + if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ + + + String selectCondition = ""; + String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); + + selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; + cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + + } + +// List cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + List cndtnTrgtInfoMngVOList = null; + try { + // 이수 조건 추가 + cndtnTrgtInfoMngVO.setEduStateCd("20"); + cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + } + + //3.pageing step3 + paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); + + model.addAttribute("paginationInfo", paginationInfo); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", cndtnTrgtInfoMngVOList); + + return "oprtn/cndtnSspnIdtmt/trgtCmpltList"; + } + + /** + * 조건부기소유예대상자 등록 화면 + */ + //@RequestMapping("eduPrcsMngReg.do") + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do") + public String cndtnEduPrcsMngReg( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + String userWork = this.getUserWork(request); + model.addAttribute("userWork", userWork); + + + + ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); + codeParam.setCodeId("VEA008"); + List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); + model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); + + return "oprtn/cndtnSspnIdtmt/trgtReg"; + } + + /** + * 조건부기소유예과정 등록 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do") + public ModelAndView cndtnEduPrcsMngRegAjax( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + , final MultipartHttpServletRequest multiRequest + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + //로그인 처리==================================== + + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //step2.파일 처리==================================== + //파일 정상 처리 여부와 첨부 파일 정보 + //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO); + //파일 제한 수량 가져오기, 없으면 기본값 사용 + int i_file_limit = checkFileUtil.getLimitCount(request); // file count + int i_limit_size = checkFileUtil.getLimitSize(request); // file MB + String s_file_exts = checkFileUtil.getS_exts(); // file exts + + String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert( + multiRequest, modelAndView + , "APLCT_" //file_name_prefix + , s_file_exts + , i_limit_size + , i_file_limit + ); //EXT, MB size and ea + + if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView; + + + // 사건번호 + // 형식 : - 예시로 A-서울중앙-100-23-1 경우 + // A (성인/미성년 구분), 서울중앙, 100, 23, 1 + // 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호 + + try { + System.out.println(cndtnTrgtInfoMngVO.getDBirth()); + System.out.println(cndtnTrgtInfoMngVO.getdBirth()); + + cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO)); + + cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId()); + cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일 + cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO); + + }catch(Exception ex) { + ex.printStackTrace(); + } + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + // 사건번호 + // 형식 : - 예시로 A-서울중앙-100-23-1 경우 + // A (성인/미성년 구분), 서울중앙, 100, 23, 1 + // 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호 + private String getReqNmbr(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { + + //성인 미성년 구분 + System.out.println("cndtnTrgtInfoMngVO.getDBirth()"); + System.out.println(cndtnTrgtInfoMngVO.getDBirth()); + String adultWhether = getIsAdultInKorea(cndtnTrgtInfoMngVO.getDBirth()); + String reqNmbrTemp = adultWhether+"-"+cndtnTrgtInfoMngVO.getCmptntAthrt()+"-"+DateUtil.getStringToLocalDateYear(); + + int cnt = cndtnTrgtInfoMngService.findCntreqNmber("%" + reqNmbrTemp + "%"); + System.out.println(cnt); + System.out.println(cnt+1); + return reqNmbrTemp+"-"+(cnt+1); + + } + + /** + * @methodName : getIsAdultInKorea + * @author : 이호영 + * @date : 2023.11.07 + * @description : 성인이면 A, 미성년이면 Y + * @param birthDateString + * @return + */ + public static String getIsAdultInKorea(String birthDateString) { + String returnData = "Y"; + // 생년월일 포맷 정의 (예시: "yyyy-MM-dd") + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + + // 문자열로부터 LocalDate 객체 생성 + LocalDate birthDate = LocalDate.parse(birthDateString, formatter); + + // 현재 날짜 얻기 + LocalDate now = LocalDate.now(); + + // 생년월일과 현재 날짜 사이의 기간 계산 + Period period = Period.between(birthDate, now); + System.out.println("period.getYears() : "+ period.getYears()); + if(period.getYears() >= 19) { + returnData="A"; + } + // 만 나이가 19세 이상인지 확인 + return returnData; + } + + /** + * 조건부기소유예과정 등록 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do") + public ModelAndView trgtMdfyAjax( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + , final MultipartHttpServletRequest multiRequest + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + //로그인 처리==================================== + + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //step2.첨부파일 체크 후 저장 하기 + String s_scholSealAtchFileId = ""; + s_scholSealAtchFileId = cndtnTrgtInfoMngVO.getAtchFileId(); + + //DB에서 실제 첨부파일 존재 여부 확인 + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(s_scholSealAtchFileId); + List result = fileService.selectFileInfs(fileVO); + if (result.size()<=0) { + s_scholSealAtchFileId = ""; + } + + + //step3.파일 처리==================================== + //파일 정상 처리 여부와 첨부 파일 정보 + //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO); + //파일 제한 수량 가져오기, 없으면 기본값 사용 + int i_file_limit = checkFileUtil.getLimitCount(request); // file count + int i_limit_size = checkFileUtil.getLimitSize(request); // file MB + String s_file_exts = checkFileUtil.getS_exts(); // file exts + + + //기존 파일 존재 여부에 따라서 insert or update 처리 + if ("".equals(s_scholSealAtchFileId)) { + //atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea + s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert( + multiRequest, modelAndView + , "APLCT_" + , s_file_exts + , i_limit_size + , i_file_limit + ); //EXT, MB size and ea + cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); + }else { + //atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea + s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate( + multiRequest, modelAndView + , "APLCT_" + , s_file_exts + , i_limit_size + , i_file_limit + , s_scholSealAtchFileId + ); //EXT, MB size and ea + } + + if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView; + + + + + cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id + cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO); + + + + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + /** + * 대상자목록 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do") + public String trgtDetail( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 조회 + CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); + model.addAttribute("info", cndtnTrgtInfoVO); + + String userWork = this.getUserWork(request); + model.addAttribute("userWork", userWork); + + + //파일 정보 가져오기 + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId()); + List result = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", result); + model.addAttribute("fileListCnt", result.size()); + + return "oprtn/cndtnSspnIdtmt/trgtDetail"; + } + + /** + * 조건부기소유예과정 등록 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/delUpdateAjax.do") + public ModelAndView delUpdateAjax( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + cndtnTrgtInfoMngService.updateDel(cndtnTrgtInfoMngVO); + + + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + /** + * 조건부기소유예과정 수료자 상세화면 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtCmpltDetail.do") + public String trgtCmpltDetail( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 조회 + CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); + model.addAttribute("info", cndtnTrgtInfoVO); + //세부과정 목록 조회 + + + List cndtnTrgtInfoMngVOList = new ArrayList(); + if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getTrgtNm()) || StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getDBirth())) + { + cndtnTrgtInfoMngVO.setFirstIndex(0); + cndtnTrgtInfoMngVO.setRecordCountPerPage(100000); +// String selectCondition = "AND PRCS_APLCT_PRD_ORD_CMPLT is not null "; +// cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + } + model.addAttribute("list", cndtnTrgtInfoMngVOList); + + + return "oprtn/cndtnSspnIdtmt/trgtCmpltDetail"; + } + + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateTrgtDuplAjax.do") + public ModelAndView updateEduAplctAprvlCd( + @ModelAttribute("vEPrcsDetailVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + //로그인 처리==================================== + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + + try { + // 교육 신청 테이블에 신청자 상태값 update +// vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO); + cndtnTrgtInfoMngService.updateTrgtDuplAjax(cndtnTrgtInfoMngVO); + + modelAndView.addObject("result", "success"); + + } catch (Exception ex) { + ex.printStackTrace(); + modelAndView.addObject("result", ""); + } + + + return modelAndView; + + } + + /** + * 조건부기소유예과정 수정화면 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfy.do") + public String trgtMdfy( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 조회 + CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); + model.addAttribute("info", cndtnTrgtInfoVO); + + + // 관할청 공통코드 + ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); + codeParam.setCodeId("VEA008"); + List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); + model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); + + String userWork = this.getUserWork(request); + model.addAttribute("userWork", userWork); + + + //파일 정보 가져오기 + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId()); + List result = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", result); + model.addAttribute("fileListCnt", result.size()); + + return "oprtn/cndtnSspnIdtmt/trgtMdfy"; + } + + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngMdfy.do") + public String trgtMngMdfy( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 조회 + CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); + model.addAttribute("info", cndtnTrgtInfoVO); + + + //파일 정보 가져오기 + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId()); + List result = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", result); + model.addAttribute("fileListCnt", result.size()); + + + // 관할청 공통코드 + ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); + codeParam.setCodeId("VEA008"); + List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); + model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); + + return "oprtn/cndtnSspnIdtmt/trgtMngMdfy"; + } + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do") + public String cndtnEduQnaMngList( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + +// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ +// String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; +// vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); +// } + + List vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); + + + model.addAttribute("paginationInfo", paginationInfo); + + // 사용자 이름 디코딩 + vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + + + return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList"; +// return "oprtn/fndthEnhanceTrn/fndthEduQnaMngList"; + } + + /** + * @methodName : cndtnEduQnaMngDetail + * @author : 이호영 + * @date : 2023.11.21 + * @description : + * @param vEPrcsDetailVO + * @param model + * @param redirectAttributes + * @param session + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail.do") + public String cndtnEduQnaMngDetail( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + System.out.println("vEPrcsDetailVO.getPrcsAplctPrdQnaOrd() : "+ vEPrcsDetailVO.getPrcsAplctPrdQnaOrd()); + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 조회 + VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO); + vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm())); + + model.addAttribute("info", vEPrcsQnaDetail); + //세부과정 목록 조회 + + return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail"; + } + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do") + public ModelAndView cndtnEduQnaMngUpdateAjax( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + + //로그인 처리==================================== + + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id + vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id + vEPrcsService.qnaUpdate(vEPrcsDetailVO); + + + //세부과정 지우고 다시 생성 + VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO(); + vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd()); + modelAndView.addObject("result", "success"); + return modelAndView; + } + + + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngExcel.do") + public ModelAndView trgtMngExcel( + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority()); + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject(model); + return modelAndView; + } + + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo); + + //검색 조회 + String selectCondition = ""; + if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){ + String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus(); +// selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')"; + selectCondition = "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'"; + cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + } + + if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getSearchSelStatus())) + { + cndtnTrgtInfoMngVO.setSearchSelStatusToList(cndtnTrgtInfoMngVO.getSearchSelStatus()); + } + + List cndtnTrgtInfoMngVOList = null; + + try { + + cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO); + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + } + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + + for(CndtnTrgtMngVO tmp : cndtnTrgtInfoMngVOList) { + //의뢰읠 + tmp.setReqPnttm(tmp.getReqPnttm().substring(0, 10)); + //사건번호 + tmp.setVntYear(tmp.getVntYear()+"형제"+tmp.getVntNmbr()); + //관할청 + if(StringUtil.isNotEmpty(tmp.getCmptntAthrt())) { + vo.setCodeId("VEA008"); + vo.setCode(tmp.getCmptntAthrt()); + CmmnDetailCode cmmnDetailCode= egovCmmUseService.selectCmmCodeDetailValue(vo); + tmp.setCmptntAthrt(StringUtil.escapeXml(cmmnDetailCode.getCodeNm())); + } + //생년월일 + if(StringUtil.isNotEmpty(tmp.getdBirth())) { + tmp.setDBirth(tmp.getdBirth()); + } + //성별 + if(StringUtil.isNotEmpty(tmp.getSex())) { + vo.setCodeId("COM014"); + vo.setCode(tmp.getSex()); + CmmnDetailCode cmmnDetailCodeSex= egovCmmUseService.selectCmmCodeDetailValue(vo); + tmp.setSex((StringUtil.escapeXml(cmmnDetailCodeSex.getCodeNm()))); + } + //의뢰상태 + if(StringUtil.isNotEmpty(tmp.getReqStateCd())) { + vo.setCodeId("VEA005"); + vo.setCode(tmp.getReqStateCd()); + CmmnDetailCode cmmnDetailCodeReqState= egovCmmUseService.selectCmmCodeDetailValue(vo); + tmp.setReqStateCd((StringUtil.escapeXml(cmmnDetailCodeReqState.getCodeNm()))); + } + //교육상태 + if(StringUtil.isNotEmpty(tmp.getEduStateCd())) { + vo.setCodeId("VEA002"); + vo.setCode(tmp.getEduStateCd()); + CmmnDetailCode cmmnDetailCodeEduState= egovCmmUseService.selectCmmCodeDetailValue(vo); + tmp.setEduStateCd((StringUtil.escapeXml(cmmnDetailCodeEduState.getCodeNm()))); + } + //주소 + if(StringUtil.isNotEmpty(tmp.getAddr()) && StringUtil.isNotEmpty(tmp.getAddrDetail())) { + tmp.setAddr(tmp.getAddr()+" "+tmp.getAddrDetail()); + } + } + + int[] width = { + 4000, 5000, 5000, 5000, 3000 + , 3000, 5000, 4000, 5000, 13000 + + , 3500 + }; // 너비 + String[] header = { + "의뢰일", "사건번호", "관할청", "생년월일", "성명" + , "성별" , "의뢰번호", "의뢰상태", "교육상태", "주소" + , "검사명" + }; // 헤더에 들어갈 이름 + String[] order = { + "ReqPnttm", "VntYear", "CmptntAthrt", "DBirth", "TrgtNm" + , "Sex", "ReqNmbr", "ReqStateCd", "EduStateCd", "Addr" + + , "PrsctrNm" + }; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용) + + excelDown( + cndtnTrgtInfoMngVOList, + "대상자 목록", + width, + header, + order, + model + ); + + + + + + + //3.pageing step3 +// paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo); +// +// model.addAttribute("paginationInfo", paginationInfo); +// +// +// //대상 리스트, 페이징 정보 전달 +// model.addAttribute("list", cndtnTrgtInfoMngVOList); +// +// ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); +// codeParam.setCodeId("VEA008"); +// List CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam); +// model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList); + + modelAndView.addObject(model); + + return modelAndView; + } + + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // + // private function + // + // + + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1( + VEPrcsDetailVO p_vEPrcsDetailVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit()); + paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize()); + + return paginationInfo; + } + + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEPrcsDetailVO setPagingStep2( + VEPrcsDetailVO p_vEPrcsDetailVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord"); + p_vEPrcsDetailVO.setSearchSortOrd("desc"); + } + + return p_vEPrcsDetailVO; + } + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3( + List p_vEPrcsDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + //CndtnTrgtInfoMngVO + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setCndtnPagingStep1( + CndtnTrgtMngVO p_cndtnTrgtInfoMngVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_cndtnTrgtInfoMngVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_cndtnTrgtInfoMngVO.getPageUnit()); + paginationInfo.setPageSize(p_cndtnTrgtInfoMngVO.getPageSize()); + + return paginationInfo; + } + + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private CndtnTrgtMngVO setCndtnPagingStep2( + CndtnTrgtMngVO p_cndtnTrgtInfoMngVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_cndtnTrgtInfoMngVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_cndtnTrgtInfoMngVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_cndtnTrgtInfoMngVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_cndtnTrgtInfoMngVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_cndtnTrgtInfoMngVO.setSearchSortCnd("prcs_ord"); + p_cndtnTrgtInfoMngVO.setSearchSortOrd("desc"); + } + + return p_cndtnTrgtInfoMngVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setCndtnPagingStep3( + List p_cndtnTrgtInfoMngVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_cndtnTrgtInfoMngVOList.size() > 0) totCnt = p_cndtnTrgtInfoMngVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + + @SuppressWarnings("unused") + private void excelDown( + List list, + String title, + int[] width, + String[] header, + String[] order, + ModelMap model + ){ + // 호출 + SXSSFWorkbook workbook; + try { + workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title); + model.addAttribute("locale", Locale.KOREA); + model.addAttribute("workbook", workbook); + model.addAttribute("workbookName", title); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtReg.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtReg.jsp index 7d631969..c2cf80d0 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtReg.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/trgtReg.jsp @@ -72,7 +72,7 @@ console.log('returnData :: ', returnData); if(returnData.result == "success"){ alert("저장되었습니다."); - fncGoList(); + //fncGoList(); }else if(returnData.result == "fail"){ alert(returnData.message); $('#cmptntAthrt').prop('disabled', true); @@ -131,9 +131,9 @@ } // 생년월일 검사 - if($("#dBirth").val().trim() == ""){ + if($("#DBirth").val().trim() == ""){ alert("생년월일을 입력해주세요."); - $("#dBirth").focus(); + $("#DBirth").focus(); return true; } @@ -321,7 +321,7 @@ 생년월일 - +