From 98f546ac230f2a4cc2faf1d3bcaa366d8011779a Mon Sep 17 00:00:00 2001 From: myname Date: Thu, 2 Oct 2025 09:39:47 +0900 Subject: [PATCH] =?UTF-8?q?2025-10-02=2009:39=20=EB=8C=80=EC=83=81?= =?UTF-8?q?=EC=9E=90=20=EC=88=98=EB=8F=99=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmdTrgt/web/CmdPrcsInfoMngController.java | 133 ++++++++ .../web/CndtnPrcsInfoMngController.java | 133 ++++++++ .../ve/cmd/cmdTrgtInfoMng_SQL_Postgresql.xml | 38 ++- .../cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml | 40 ++- .../cndtnEduPrcsAplctPrdMngDetail.jsp | 37 ++- .../popup/cndtnApplyAsgnmPopup.jsp | 292 ++++++++++++++++++ 6 files changed, 668 insertions(+), 5 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.jsp diff --git a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java index 77b9a9f5..ea310abb 100644 --- a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java @@ -2149,6 +2149,92 @@ public class CmdPrcsInfoMngController { return "/oprtn/cmdTrgt/popup/cndtnInstrAsgnmPopup"; } + /** + * 1.신청자 수동 추가 + */ + @RequestMapping("/kccadr/oprtn/cmdTrgt/popup/cndtnApplyAsgnmPopup.do") + public String fndthApplyAsgnmPopup( +// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + //@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + + + //System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + + //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(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeywordFrom())){ + //cndtnTrgtInfoMngVO.setSearchKeywordFrom(egovCryptoUtil.encrypt(cndtnTrgtInfoMngVO.getSearchKeywordFrom())); + selectCondition = " AND a.trgt_nm = '" +egovCryptoUtil.encrypt(cndtnTrgtInfoMngVO.getSearchKeywordFrom()) + "' "; + //cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + } + + //생년월일검색 + if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeywordTo())){ + selectCondition = " AND a.d_birth ='" +cndtnTrgtInfoMngVO.getSearchKeywordTo() + "' "; + + } + + 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); + + + //복호화 + cndtnTrgtInfoMngVOList = egovCryptoUtil.decryptCndtnTrgtMngVOList(cndtnTrgtInfoMngVOList); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", cndtnTrgtInfoMngVOList); + + return "/oprtn/cmdTrgt/popup/cndtnApplyAsgnmPopup"; + } + /** * @methodName : cnclPopup * @author : 이호영 @@ -2914,4 +3000,51 @@ public class CmdPrcsInfoMngController { 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; + } + } diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java index 14a785df..ba671658 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java @@ -2149,6 +2149,93 @@ public class CndtnPrcsInfoMngController { return "/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup"; } + /** + * 1.신청자 수동 추가 + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.do") + public String fndthApplyAsgnmPopup( +// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + //@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + + + //System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + + //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(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeywordFrom())){ + //cndtnTrgtInfoMngVO.setSearchKeywordFrom(egovCryptoUtil.encrypt(cndtnTrgtInfoMngVO.getSearchKeywordFrom())); + selectCondition = " AND a.trgt_nm = '" +egovCryptoUtil.encrypt(cndtnTrgtInfoMngVO.getSearchKeywordFrom()) + "' "; + //cndtnTrgtInfoMngVO.setSearchQuery(selectCondition); + } + + //생년월일검색 + if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeywordTo())){ + selectCondition = " AND a.d_birth ='" +cndtnTrgtInfoMngVO.getSearchKeywordTo() + "' "; + + } + + 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); + + + //복호화 + cndtnTrgtInfoMngVOList = egovCryptoUtil.decryptCndtnTrgtMngVOList(cndtnTrgtInfoMngVOList); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", cndtnTrgtInfoMngVOList); + + + return "/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup"; + } + /** * @methodName : cnclPopup * @author : 이호영 @@ -2914,4 +3001,50 @@ public class CndtnPrcsInfoMngController { 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; + } } diff --git a/src/main/resources/egovframework/sqlmap/ve/cmd/cmdTrgtInfoMng_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/cmd/cmdTrgtInfoMng_SQL_Postgresql.xml index 40f2aae2..58889171 100644 --- a/src/main/resources/egovframework/sqlmap/ve/cmd/cmdTrgtInfoMng_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/cmd/cmdTrgtInfoMng_SQL_Postgresql.xml @@ -940,6 +940,42 @@ + + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml index b920821e..613aa2e9 100644 --- a/src/main/resources/egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml @@ -937,9 +937,45 @@ WHERE stng_cd = #stngCd# - + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp index dd898d6b..5f6d9693 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp @@ -278,7 +278,19 @@ form.submit(); } - + // 신청자 수동 추가 + function fncApplyAsgnmInfo(prcsAplctPrdOrd) { + var form = document.popForm; + + form.prcsAplctPrdOrd.value = prcsAplctPrdOrd; + +// form.action = ""; + form.action = ""; + + window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px"); + form.target = "_securityPop"; + form.submit(); + } function fn_goDetailPop(p_eduAplctOrd, p_mberId, p_sspnIdtmtTrgtOrd) { @@ -572,6 +584,15 @@ +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+ +
+
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.jsp new file mode 100644 index 00000000..4b30447d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.jsp @@ -0,0 +1,292 @@ + +<%@ 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="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<% + /** + * @Class Name : instrAsgnmPopup.jsp + * @Description : 강사배치 팝업 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2021.08.09 김봉호 최초 생성 + * @author 안주영 + * @since 2022.1.8 + * @version 1.0 + * @see + * + */ +%> + + + + +<%-- --%> + + + 강사배치 팝업 + + + + +
+
+ + + + + + + " /> + + + + + + + + + " /> + + + + + +
+
+ +
+
+
+

강사검색

+
+<%-- +<%-- selectedText="${vEEduAplctVO.rsdne}" defaultValue='' --%> +<%-- defaultText='전체' --%> +<%-- /> --%> +
+ + +
+
+
+
+

강사 목록

(*선호분야 일치여부, 적은 할당시수 순입니다.) +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + style="cursor:pointer;" + + + style="cursor:pointer;background-color:lightgray;" + + > + + + + + + + + + + + + + + + <%-- --%> + + + + + + + + + + + + + + + + + +
의뢰일사건번호관할청생년월일성명성별의뢰번호의뢰상태교육상태주소검사명선택
');" style="cursor:pointer;"> + + <%-- --%> + + ');" style="cursor:pointer;"> + 형제 + ');" style="cursor:pointer;"> + + ');" style="cursor:pointer;"> + + ');" style="cursor:pointer;"> + + ');" style="cursor:pointer;"> + + ');" style="cursor:pointer;"> + + ');" style="cursor:pointer;"> + + + 완료 + + + + + + + + 병합처리 + + + <%-- --%> + ${list.eduStateCdNm } + + ${fullAddr} + <%-- ${fn:length(fullAddr)> 50 ? fn:substring(fullAddr, 0, 50).concat('...') : ''} --%> + + + + + + +
+
+ +
+ +
+ + +
+
+
+
+ +
+
+
+
+
+
+ +
+ +
+
+ + +