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 170d2687..2687ddde 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnInstrMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnInstrMngController.java @@ -5,6 +5,7 @@ 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.poi.xssf.streaming.SXSSFWorkbook; @@ -32,6 +33,8 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; @@ -69,6 +72,8 @@ public class CndtnInstrMngController { private static final Logger LOGGER = LoggerFactory.getLogger(CndtnInstrMngController.class); + private final String LCTR_DIV_CD = "60"; + //로그인 체크 util @Resource(name = "checkLoginUtil") private CheckLoginUtil checkLoginUtil; @@ -152,6 +157,10 @@ public class CndtnInstrMngController { @Resource(name = "vELctrMIXService") private VELctrMIXService vELctrMIXService; + // 첨부파일 정보 + @Resource(name="vEInstrDetailActvtHstryService") + private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; + /* // 교육신청 서비스단 @@ -216,7 +225,7 @@ public class CndtnInstrMngController { vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 //교육확정 목록 조회 vEPrcsDetailVO.setDdlnCd("20"); @@ -306,7 +315,7 @@ public class CndtnInstrMngController { vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 //교육확정 목록 조회 vEPrcsDetailVO.setDdlnCd("20"); @@ -419,7 +428,7 @@ public class CndtnInstrMngController { vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 //교육확정 목록 조회 vEPrcsDetailVO.setDdlnCd("20"); @@ -533,6 +542,7 @@ public class CndtnInstrMngController { //차시별 정보 VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); + vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO); model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList); @@ -642,6 +652,59 @@ public class CndtnInstrMngController { } + /** + * @methodName : instrActvtHstrySignMngList + * @author : 이호영 + * @date : 2023.12.28 + * @description : 직인대장관리(이수증) - 기반 기소 + * @param vEInstrDetailActvtHstryVO + * @param model + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.do") + public String instrActvtHstrySignAndCmpltCrtfcMngList( + @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + , 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); //로그인 정보가 없으면 로그인 페이지로 이동한다. +// } + //로그인 처리==================================== + + //1.pageing step1 + 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); + + + +// return "oprtn/cmm/instrActvtHstrySignMngList"; + return "oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList"; + } + /** * 교육실적통계 화면-개별 */ @@ -1376,7 +1439,52 @@ public class CndtnInstrMngController { return p_paginationInfo; } + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1_VEInstrDetailActvtHstryVO( + VEInstrDetailActvtHstryVO p_vEEduAplctVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit()); + paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize()); + + return paginationInfo; + } + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEInstrDetailActvtHstryVO setPagingStep2_VEInstrDetailActvtHstryVO( + VEInstrDetailActvtHstryVO p_vEEduAplctVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEEduAplctVO.setSearchSortCnd("prcs_ord"); + p_vEEduAplctVO.setSearchSortOrd("desc"); + } + + return p_vEEduAplctVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3_VEInstrDetailActvtHstryVO( + List p_vEEduAplctVOList + + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 diff --git a/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml b/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml index d8545130..baf99838 100644 --- a/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml +++ b/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml @@ -41,5 +41,8 @@ - + + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Postgresql.xml new file mode 100644 index 00000000..5b7619e1 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Postgresql.xml @@ -0,0 +1,2460 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 5714f718..9ac2a2b9 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 @@ -635,9 +635,8 @@ AND a.lctr_div_cd=#lctrDivCd# - - AND COALESCE(a.use_yn,'Y')='Y' - + + AND COALESCE(a.use_yn,'Y')='Y' ORDER BY 1, b.prcs_nm ASC diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp new file mode 100644 index 00000000..014e61db --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.jsp @@ -0,0 +1,249 @@ + +<%@ 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="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> + +<% + /** + * @Class Name : instrActvtHstrySignMngList.jsp + * @Description : 운영관리 > 직인대장관리 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2022.12.7 안주영 최초 생성 + * @author 안주영 + * @since 2022.2.7 + * @version 1.0 + * @see + * + */ +%> + + + + + + 직인대장관리(이수증) + + +
+ +
+
+ + " /> + " /> + +
+
+ + +
+

직인대장관리(이수증) 목록

+
    +
  • +
  • +

    운영관리

    +
  • +
  • 직인대장관리(이수증)
  • +
+
+ + +
+ +
+ +
+
+

발급일자

+
+
+
+ +
+ ~ +
+ +
+ +
+
+
+
+

성명

+
+
+ + + +
+
+
+ + + +
+

총 건수 :

+
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + + + + + + + + + + + + + +
번호항목문서번호과정명교육일시성명발급일자
+ + + + + 실무역량- + 기소유예- + + + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+ + +