From a000478d0f5dfca23672125b809a21ef41ee500a Mon Sep 17 00:00:00 2001 From: ijunho Date: Fri, 7 Nov 2025 11:14:58 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EC=88=98=EC=A6=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eduInfo/service/VEEduMIXService.java | 2 + .../eduInfo/service/impl/VEEduMIXDAO.java | 4 + .../service/impl/VEEduMIXServiceImpl.java | 9 +- .../web/CndtnInstrMngController.java | 83 ++- .../ve/edu/VEEdu_MIX_SQL_Postgresql.xml | 154 +++++- .../ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml | 3 +- src/main/webapp/WEB-INF/decorators.xml | 2 + .../cmdTrgt/cndtnEduPrcsAplctCfnMngDetail.jsp | 503 +++++++++--------- .../cndtnEduPrcsAplctCfnMngDetail.jsp | 5 +- ...nstrActvtHstrySignAndCmpltCrtfcMngList.jsp | 71 +-- .../cndtnSspnIdtmt/popup/printCertPopup.jsp | 133 ++--- .../prevent/cndtnEduPrcsAplctCfnMngDetail.jsp | 19 +- 12 files changed, 589 insertions(+), 399 deletions(-) diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java index 6b901bc2..099f86b3 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java @@ -134,4 +134,6 @@ public interface VEEduMIXService { List selectExprnRsltFileDownList(VEEduAplctVO paramVO) throws Exception; void updateCnclStatus(VEEduAplctVO vEEduAplctVO); + + List selectCrtfcMngList( VEEduAplctVO paramVO ); } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java index 321e7c3b..ced00638 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java @@ -322,4 +322,8 @@ public class VEEduMIXDAO extends EgovAbstractDAO { List tlist = (List) list("VEEduMIXDAO.selectExprnRsltFileDownList", paramVO); return tlist; } + + public List selectCrtfcMngList(VEEduAplctVO paramVO) { + return (List) list("VEEduMIXDAO.selectCrtfcMngList", paramVO); + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java index 6c5a4a22..61a7eb59 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java @@ -222,7 +222,7 @@ public class VEEduMIXServiceImpl implements VEEduMIXService { public List selectTrgtList4Cmplt(VEEduAplctVO paramVO) { return vEEduMIXDAO.selectTrgtList4Cmplt(paramVO); } - + public List selectCmdTrgtList4Cmplt(VEEduAplctVO paramVO) { return vEEduMIXDAO.selectCmdTrgtList4Cmplt(paramVO); } @@ -292,5 +292,10 @@ public class VEEduMIXServiceImpl implements VEEduMIXService { public void updateCnclStatus(VEEduAplctVO paramVO) { vEEduMIXDAO.updateCnclStatus(paramVO); - } + } + + @Override + public List selectCrtfcMngList( VEEduAplctVO paramVO ) { + return vEEduMIXDAO.selectCrtfcMngList(paramVO); + } } diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnInstrMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnInstrMngController.java index 5dd004d6..7930dad5 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnInstrMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnInstrMngController.java @@ -8,6 +8,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import kcc.com.cmm.LoginVO; +import kcc.let.uat.uia.service.SsoLoginVO; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -665,46 +668,92 @@ public class CndtnInstrMngController { */ @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.do") public String instrActvtHstrySignAndCmpltCrtfcMngList( - @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO , ModelMap model , HttpServletRequest request ) throws Exception { //로그인 처리==================================== //로그인 정보 가져오기 - //LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - -// if (loginVO == null || ssoLoginVO == null) { -// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. -// } - //로그인 처리==================================== + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO); + /*PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO); //2. pageing step2 vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo); vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); // List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO); List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO); - + vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); - + //3.pageing step3 paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo); model.addAttribute("paginationInfo", paginationInfo); - + // 검색어 복호화 vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEInstrDetailActvtHstryVOList); - - - + model.addAttribute("list", vEInstrDetailActvtHstryVOList);*/ + + VEEduAplctVO paramVO = new VEEduAplctVO(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(paramVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(paramVO.getPageUnit()); + paginationInfo.setPageSize(paramVO.getPageSize()); + + paramVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + paramVO.setLastIndex(paginationInfo.getLastRecordIndex()); + paramVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if("".equals(paramVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + paramVO.setSearchSortCnd("a.frst_regist_pnttm"); + paramVO.setSearchSortOrd("ASC"); + } + + //과정 신청자 정보 가져오기 + //해당 과정을 제출한 사용자 정보를 가져온다. + paramVO.setSbmtYn("Y"); + + // 검색 - 날짜 + paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt()); + paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt()); + // 검색 - 검색어 + paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus()); + paramVO.setSearchSelStatus(vEPrcsDetailVO.getSearchSelStatus()); + + if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) { + + String searchQuery = "AND vsit.edu_state_cd = '"+vEPrcsDetailVO.getSearchStatus()+"' "; + + paramVO.setSearchQuery(searchQuery); + } + + + paramVO.setLctrDivCd(LCTR_DIV_CD); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소 + List vEPrcsDetailVOList = vEEduMIXService.selectCrtfcMngList(paramVO); + vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList); + + int totCnt = 0; + if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt(); + paginationInfo.setTotalRecordCount(totCnt); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + model.addAttribute("paginationInfo", paginationInfo); + + // return "oprtn/cmm/instrActvtHstrySignMngList"; return "oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList"; } - + /** * 교육실적통계 화면-개별 */ diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml index 06bfc8b2..5a1554f4 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml @@ -2008,7 +2008,7 @@ /* ORDER BY 1=1 */ - ORDER BY + ORDER BY $orderByQuery$ @@ -10487,7 +10487,7 @@ VALUES #rsltList[]# ORDER BY b.EDU_HOPE_DT ASC, B.STRT_TM ASC; - + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml index 99ff21ec..bf7b2fa4 100644 --- a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Postgresql.xml @@ -1982,7 +1982,8 @@ ON a.prcs_aplct_prd_ord = c.prcs_ord AND c.aprvl_cd = '60' WHERE - a.prcs_aplct_prd_ord = #prcsAplctPrdOrd# + a.prcs_aplct_prd_ord = #prcsAplctPrdOrd# + AND a.aplct_state_cd = '20'; - + - + @@ -503,14 +516,14 @@
- +
-
+
@@ -534,8 +547,8 @@
- - + +

교육확정상세

@@ -544,10 +557,10 @@
  • 조건부기소유예관리

  • -
  • 교육확정상세
  • +
  • 교육확정상세
  • - +
    @@ -566,23 +579,23 @@ 교육부분 - + - + 과정 - + 과정명 - + - + 신청기간 @@ -593,7 +606,7 @@ 교육장소 - + @@ -603,17 +616,17 @@ <%-- ~ --%> - + 상세교육과정 - + - + 정원 - + @@ -621,17 +634,17 @@ - + <%-- - +

    공개여부(사용여부)

    아니오 - --%> - + --%> +
    @@ -646,9 +659,9 @@
    -
    - - @@ -660,36 +673,36 @@ - - <%-- --%> - <%-- --%> - + + <%-- --%> + <%-- --%> + 강사명 연락처 - 확정여부 + 확정여부 - - 삭제 + + 삭제 - + - + - - + + - - + + - <%-- + <%-- @@ -697,13 +710,13 @@ - + - + --%> - <%-- + <%-- @@ -711,16 +724,16 @@ - + - + --%> - + - + @@ -729,10 +742,10 @@ - + - +
    @@ -742,24 +755,24 @@
    -
    - -

    교육신청자

    - +
    - + />
    @@ -772,11 +785,11 @@ - - + + - - + + @@ -786,13 +799,13 @@ 주민번호 앞자리 이메일 연락처 - 교육이수상태 - 교육이수상태변경 - 취소상태 - - 내용확인 + 교육이수상태 + 교육이수상태변경 + 취소상태 + + 내용확인 - + @@ -800,9 +813,9 @@ - + data-clphone="" title="Check" type="checkbox"/> @@ -817,10 +830,10 @@ - - @@ -840,105 +853,105 @@ - - + + - + - +

    ${list.cnclCn} -
    +
    - - + +
    취소승인

    ${list.cnclCn} -
    +
    - -
    + +
    취소반려

    ${list.cnclCn} -
    +
    -
    + - -
    - + + - + - + - - + - 대상설문없음 - - - - - - 등록된 설문없음 + 대상설문없음 - + + + + + 등록된 설문없음 + + - - + - - - - + + + - + - + - - - + + - + @@ -947,9 +960,9 @@ - - - + + +
    @@ -959,14 +972,14 @@
    - + - +
    -
    -
    - - + +
    + +

    교육신청자 알림정보

    @@ -983,7 +996,7 @@
    - +
    @@ -996,7 +1009,7 @@
    - +

    0/1000 byte

    @@ -1017,7 +1030,7 @@ <%-- --%> - + @@ -1121,20 +1134,20 @@ - - - + + +
    - + - + - + @@ -1142,22 +1155,22 @@
    기타의견
    기타의견기타의견

    -
    +

    - +


    - -
    -
    - + + + + - - - - - + + + + <%-- --%> - +
    - + - + - - - - + )" title="팝업 열림">설문QR - + - + - - - - + + + +
    -
    +
    - + - + - - - - + )" title="팝업 열림">설문QR - + - + - - - - + + + +
    -
    +
    -
    + + - @@ -1265,7 +1278,7 @@ */ function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd){ var isLocal = '${isLocal}'; - + if(isLocal == 'real'){ //운영 var viewer = new m2soft.crownix.Viewer('https://www.edu-copyright.or.kr/ReportingServer/service'); viewer.hideToolbarItem(["save"]); diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp index 611e6e0c..259c9718 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp @@ -491,10 +491,9 @@ form.prcsAplctPrdOrd.value = prcsAplctPrdOrd; -// form.action = ""; form.action = ""; - window.open("#", "_printCertPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px"); + window.open("#", "_printCertPop", "scrollbars = no, top=10px, left=10px, height=1500px, width=1200px"); form.target = "_printCertPop"; form.submit(); } @@ -1007,7 +1006,7 @@ + onclick="fncPrintCert('')"/>출력 - diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp index 014e61db..518494bc 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp @@ -87,9 +87,9 @@
    - - " /> - " /> + + " /> + " />
    @@ -110,40 +110,27 @@
    - -
    + <%--

    발급일자

    - +
    ~
    - +
    -
    +
    --%>

    성명

    - +
    @@ -156,10 +143,10 @@

    총 건수 :

    @@ -173,53 +160,39 @@ - - 번호 - 항목 - 문서번호 과정명 - 교육일시 - 성명 - 발급일자 - + 이름 + 생년월일 + 이수증 출력 -<%-- --%> - - - + + + - 실무역량- - 기소유예- - + - + - - - - - - - + - + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/printCertPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/printCertPopup.jsp index 7aa0aede..71a36b0c 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/printCertPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/popup/printCertPopup.jsp @@ -25,24 +25,61 @@ %> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -<%-- --%> - 강사배치 팝업 diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp index e13dfd1d..b6634321 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp @@ -483,7 +483,20 @@ // listForm.searchCondition.value = $("#searchCondition").val() ; vForm.action = ""; vForm.submit(); - } + } + + // 이수증 + function fncPrintCert(prcsAplctPrdOrd) { + var form = document.popForm; + + form.prcsAplctPrdOrd.value = prcsAplctPrdOrd; + + form.action = ""; + + window.open("#", "_printCertPop", "scrollbars = no, top=10px, left=10px, height=1500px, width=1200px"); + form.target = "_printCertPop"; + form.submit(); + } @@ -926,8 +939,8 @@ - + -