From 4426df5b720cea36fe2a0176eb6e1093bcea7a48 Mon Sep 17 00:00:00 2001 From: hylee Date: Tue, 2 Jan 2024 15:42:20 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[=EA=B4=80=EB=A6=AC=EC=9E=90=20-=20?= =?UTF-8?q?=EC=A7=80=EC=97=AD=EA=B2=80=EC=83=89=EC=A1=B0=EA=B1=B4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80]=20=EC=84=B1=EC=9D=B8=20>=20=EA=B5=90?= =?UTF-8?q?=EC=9C=A1=EB=B0=B0=EC=B9=98=EA=B4=80=EB=A6=AC=20>=20=EA=B0=95?= =?UTF-8?q?=EC=82=AC=EB=B3=80=EA=B2=BD=20>=20=ED=8C=9D=EC=97=85=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kcc/com/cmm/util/KoreanRegionEnum.java | 67 +++++++++++++++++ .../asgnmInfo/service/VEInstrAsgnmVO.java | 8 +++ .../eduInfo/service/VEEduAplctVO.java | 14 ++++ .../instrInfo/service/VEInstrDetailVO.java | 8 +++ .../service/VEPrcsAplctPrdService.java | 2 + .../service/impl/VEPrcsAplctPrdDAO.java | 5 ++ .../impl/VEPrcsAplctPrdServiceImpl.java | 5 ++ .../web/EduCnfrmMngAdultController.java | 47 ++++++++++-- .../web/CndtnPrcsInfoMngController.java | 2 +- .../web/FndthPrcsAplctPrdMngController.java | 2 +- .../ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml | 3 + .../sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml | 8 ++- .../ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml | 72 +++++++++++++++++++ .../oprtn/adultVisitEdu/eduCnfrmMngList.jsp | 18 ++++- .../adultVisitEdu/popup/instrAsgnmPopup.jsp | 4 ++ .../fndthEduPrcsAplctCfnMngList.jsp | 2 +- 16 files changed, 257 insertions(+), 10 deletions(-) create mode 100644 src/main/java/kcc/com/cmm/util/KoreanRegionEnum.java diff --git a/src/main/java/kcc/com/cmm/util/KoreanRegionEnum.java b/src/main/java/kcc/com/cmm/util/KoreanRegionEnum.java new file mode 100644 index 00000000..37e3efa7 --- /dev/null +++ b/src/main/java/kcc/com/cmm/util/KoreanRegionEnum.java @@ -0,0 +1,67 @@ +package kcc.com.cmm.util; + +/** + * + * @author : 이호영 + * @fileName : KoreanRegionEnum.java + * @date : 2024.01.02 + * @description : VEA017 지역 이랑 코드 맞춰야함 + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- * + * 2024.01.02 이호영 최초 생성 + * + * + * + */ +public enum KoreanRegionEnum { + GANGWON("10", "강원도", "강원"), + GYEONGGI("20", "경기도", "경기"), + GYEONGSANGNAM("30", "경상남도", "경남"), + GYEONGSANGBUK("40", "경상북도", "경북"), + GWANGJU("50", "광주광역시", "광주"), + DAEGU("60", "대구광역시", "대구"), + DAEJEON("70", "대전광역시", "대전"), + BUSAN("80", "부산광역시", "부산"), + SEOUL("90", "서울특별시", "서울"), + SEJONG("100", "세종특별자치시", "세종"), + ULSAN("110", "울산광역시", "울산"), + INCHEON("120", "인천광역시", "인천"), + JEOLLANAM("130", "전라남도", "전남"), + JEOLLABUK("140", "전라북도", "전북"), + JEJU("150", "제주특별자치도", "제주"), + CHUNGCHEONGNAM("160", "충청남도", "충남"), + CHUNGCHEONGBUK("170", "충청북도", "충북"); + + private final String order; + private final String fullName; + private final String shortName; + + KoreanRegionEnum(String order, String fullName, String shortName) { + this.order = order; + this.fullName = fullName; + this.shortName = shortName; + } + + public static KoreanRegionEnum fromOrder(String order) { + for (KoreanRegionEnum region : values()) { + if (region.getOrder().equals(order)) { + return region; + } + } + throw new IllegalArgumentException("No enum constant with order: " + order); + } + + public String getOrder() { + return order; + } + public String getFullName() { + return fullName; + } + public String getShortName() { + return shortName; + } + + + +} diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java index a635d415..e588931d 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java @@ -161,6 +161,8 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable { private String cmmNotifyOrd; //평균점수 + private String selectRsdneQuery; // 지역쿼리 + public String getMemoCn() { @@ -799,5 +801,11 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable { public void setCmmNotifyOrd(String cmmNotifyOrd) { this.cmmNotifyOrd = cmmNotifyOrd; } + public String getSelectRsdneQuery() { + return selectRsdneQuery; + } + public void setSelectRsdneQuery(String selectRsdneQuery) { + this.selectRsdneQuery = selectRsdneQuery; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java index 1d59a21c..0fa4044c 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java @@ -315,6 +315,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable { ////////////////paging/////////////// private String selectPagingListQuery; + private String selectRsdneQuery; + private String searchRsdne; private String orderByQuery; //운영신청 목록 셀렉트박스 검색구분자 @@ -374,6 +376,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable { public void setSelectPagingListQuery(String selectPagingListQuery) { this.selectPagingListQuery = selectPagingListQuery; } + public String getSelectRsdneQuery() { + return selectRsdneQuery; + } + public void setSelectRsdneQuery(String selectRsdneQuery) { + this.selectRsdneQuery = selectRsdneQuery; + } + public String getSearchRsdne() { + return searchRsdne; + } + public void setSearchRsdne(String searchRsdne) { + this.searchRsdne = searchRsdne; + } public String getOrderByQuery() { return orderByQuery; } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java index 8b9f9278..5a8841ad 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrDetailVO.java @@ -27,6 +27,8 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable { private String lastUpdtPnttm; // 수정일시 private String lastUpdusrId; // 수정자 + private String searchRsdne; // 수정자 + private String checkTopSum; private String weekCnt; private List userIdList = new ArrayList(); @@ -299,6 +301,12 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable { public void setLastUpdusrId(String lastUpdusrId) { this.lastUpdusrId = lastUpdusrId; } + public String getSearchRsdne() { + return searchRsdne; + } + public void setSearchRsdne(String searchRsdne) { + this.searchRsdne = searchRsdne; + } public String getInstrDiv() { return instrDiv; } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java index 8e8e72ef..103decff 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java @@ -68,4 +68,6 @@ public interface VEPrcsAplctPrdService { List selectOneDayBeforeTrainingStartDate(VEPrcsDetailVO vEPrcsDetailVO); + List selectCfnPagingList4Fndth(VEPrcsDetailVO vEPrcsDetailVO) throws Exception; + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java index 97f2030b..f8b2a562 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java @@ -79,6 +79,11 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO { return tlist; } + public List selectCfnPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception { + List tlist = (List) list("VEPrcsAplctPrdDAO.selectCfnPagingList4Fndth", paramVO); + return tlist; + } + public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO); } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java index b3456fdc..28ef593f 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java @@ -71,6 +71,11 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO); } + + public List selectCfnPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{ + return vEPrcsAplctPrdDAO.selectCfnPagingList4Fndth(paramVO); + } + //R public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO); diff --git a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java index 9731a7f6..7eafb8e0 100644 --- a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java +++ b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java @@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +import com.epapyrus.common.util.StringUtils; + import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import kcc.com.cmm.ComDefaultCodeVO; import kcc.com.cmm.LoginVO; @@ -24,6 +26,7 @@ import kcc.com.cmm.service.EgovCmmUseService; import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.spring.data.util.ExcelUtil; +import kcc.com.cmm.util.KoreanRegionEnum; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.kccadr.cmm.CmmUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil; @@ -170,12 +173,21 @@ public class EduCnfrmMngAdultController { vEEduAplctVO.setLctrDivCd("20"); //성인강의 vEEduAplctVO.setAprvlCd("60"); //확정코드 + // 지역검색 + /* if(StringUtils.isNotEmpty(vEEduAplctVO.getSearchRsdne())) + { + // KoreanRegionEnum Class 참고 + // VEA017 코드 번호만 넘기면 경상남도, 경남과 같은 값을 return함 + // return "AND rsdne like '%' || '"+fullName+"' || '%' OR rsdne like '%' || '"+shortName+"' || '%' "; + vEEduAplctVO.setSelectRsdneQuery(this.getRsdneQueryStr(vEEduAplctVO.getSearchRsdne())); + }*/ + if(!"".equals(vEEduAplctVO.getSearchInstrNm())) { vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm())); } - System.out.println("vEEduAplctVO.getAprvlCd()"); - System.out.println(vEEduAplctVO.getAprvlCd()); + System.out.println("vEEduAplctVO.getSearchRsdne()"); + System.out.println(vEEduAplctVO.getSearchRsdne()); List vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO); VEEduAplctVO vo = new VEEduAplctVO(); @@ -193,11 +205,21 @@ public class EduCnfrmMngAdultController { //대상 리스트, 페이징 정보 전달 model.addAttribute("list", vEEduAplctVOList); - + return "oprtn/adultVisitEdu/eduCnfrmMngList"; } + private String getRsdneQueryStr(String searchRsdne) { + KoreanRegionEnum region = KoreanRegionEnum.fromOrder(searchRsdne); + + String fullName = region.getFullName(); + String shortName = region.getShortName(); + +// return String.format("AND rsdne like '%' || '%s'|| '%' OR rsdne like '%' || '%s'|| '%' ", fullName, shortName); + return "AND (rsdne like '"+fullName+"' || '%' OR rsdne like '"+shortName+"' || '%' )"; + } + /** * 교육배치관리 상세 화면 */ @@ -310,11 +332,17 @@ public class EduCnfrmMngAdultController { //String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; + + System.out.println("vEEduAplctVO.getSearchRsdne() : "+vEEduAplctVO.getSearchRsdne()); + + String searchRsdne = vEEduAplctVO.getSearchRsdne(); //로그인 처리==================================== //0.step0 //해당 처시 정보 가져오기 (온라인 오프라인 여부 및 신청내용 확인) vEEduAplctVO = vEEduAplctService.selectDetailChasi(vEEduAplctVO); + + System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인 System.out.println(vEEduAplctVO.getAplctCn()); //신청내용 System.out.println(vEInstrAsgnmVO.getInstrNm()); //검색강사 @@ -324,6 +352,9 @@ public class EduCnfrmMngAdultController { String[] a_rr = null; + + + System.out.println("vEEduAplctVO.getAplctCn()"); //신청내용 @@ -355,7 +386,15 @@ public class EduCnfrmMngAdultController { } - + + // 지역검색 + if(StringUtils.isNotEmpty(searchRsdne)) + { + // KoreanRegionEnum Class 참고 + // VEA017 코드 번호만 넘기면 경상남도, 경남과 같은 값을 return함 + // return "AND rsdne like '%' || '"+fullName+"' || '%' OR rsdne like '%' || '"+shortName+"' || '%' "; + vEInstrAsgnmVO.setSelectRsdneQuery(this.getRsdneQueryStr(searchRsdne)); + } vEInstrAsgnmVO.setYr(vEEduAplctVO.getEduHopeDt().substring(0,4)); vEInstrAsgnmVO.setSearchQuery(s_searchQuery); List selectVEInstrAsgnmVOList = vEAsgnmMIX2023Service.selectInstrAsgnmList_202311_adult(vEInstrAsgnmVO); 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 4566fcc1..41bb9b55 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java @@ -1676,7 +1676,7 @@ public class CndtnPrcsInfoMngController { //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 } - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO); + List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectCfnPagingList4Fndth(vEPrcsDetailVO); //3.pageing step3 paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); diff --git a/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java b/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java index 00922c00..df0cfedf 100644 --- a/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java +++ b/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java @@ -310,7 +310,7 @@ public class FndthPrcsAplctPrdMngController { //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 } - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO); + List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectCfnPagingList4Fndth(vEPrcsDetailVO); //3.pageing step3 paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); diff --git a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml index 7e8635ca..f94b357a 100644 --- a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml @@ -938,6 +938,9 @@ ) WHERE 1 =1 + + $selectRsdneQuery$ + AND b.user_id =a.user_id AND b.use_yn ='Y' AND b.INSTR_DIV ='20' diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml index 0a22b43c..9523f457 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml @@ -2605,6 +2605,7 @@ AND b.edu_chasi_ord = i.edu_chasi_ord GROUP BY i.edu_aplct_ord , i.edu_chasi_ord ),0) AS rowNo + , e.rsdne as rsdne FROM ve_edu_aplct a , ve_edu_chasi b @@ -2682,7 +2683,7 @@ $selectPagingListQuery$ - + AND d.asgnm_aprvl_cd is null @@ -2732,6 +2733,11 @@ $checkListQuery$ + + + $selectRsdneQuery$ + + AND AA.CNT = ]]> 1 diff --git a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml index ff8da47b..b418434e 100644 --- a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml @@ -403,6 +403,78 @@ + ORDER BY 1 + + + , a.prcs_aplct_prd_ord desc + + + , $orderByQuery$ + + + + /* + LIMIT recordCountPerPage OFFSET firstIndex + */ + OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY; + + + + + - -
@@ -585,8 +583,24 @@
+ +
+<%-- +
+
+

지역검색

+
+
+ + + +
+
--%> diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrAsgnmPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrAsgnmPopup.jsp index 941857a6..3e5b719b 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrAsgnmPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrAsgnmPopup.jsp @@ -132,6 +132,10 @@

강사검색

+ <%-- <%-- selectedText="${vEEduAplctVO.rsdne}" defaultValue='' --%> <%-- defaultText='전체' --%> diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.jsp index 1d1f8b20..06a8fda6 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.jsp @@ -252,7 +252,7 @@ 교육구분코드 과정명 교육기간 - 신청자/정원 + 승인자/정원 상태 강사배정 From cc37e5d61d9eeab8e256f25f8e52e6838cad04b1 Mon Sep 17 00:00:00 2001 From: hylee Date: Thu, 4 Jan 2024 14:10:21 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=EA=B0=95=EC=9D=98=EA=B5=90=ED=99=98?= =?UTF-8?q?=20=EC=A7=84=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asgnmInfo/web/VEAdultAsgnmController.java | 214 ++++++++++++- .../asgnmInfo/service/VEAsgnmMIXService.java | 6 + .../asgnmInfo/service/VEInstrAsgnmVO.java | 37 +++ .../asgnmInfo/service/impl/VEAsgnmMIXDAO.java | 12 + .../service/impl/VEAsgnmMIXServiceImpl.java | 15 + .../asgnmInfo/web/VEAsgnmController.java | 295 +++++++++++++++++- .../prcsInfo/service/VEPrcsDetailVO.java | 8 + .../spring/com/context-idgen.xml | 16 +- .../ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml | 79 ++++- .../ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml | 7 + .../asgnmInfo/instrAsgnmRqstList.jsp | 106 ++++++- .../asgnmInfo/instrAsgnmRqstList.jsp | 150 +++++++++ .../popup/instrAsgnmListExchnPopup.jsp | 231 ++++++++++++++ .../asgnmInfo/popup/instrAsgnmListPopup.jsp | 154 +++++++++ 14 files changed, 1315 insertions(+), 15 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.jsp diff --git a/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java b/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java index 9cd6b91e..de49013b 100644 --- a/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java +++ b/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java @@ -16,13 +16,16 @@ 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.ComDefaultVO; import kcc.com.cmm.EgovMessageSource; import kcc.com.cmm.LoginVO; import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.FileVO; import kcc.com.cmm.util.IpUtil; +import kcc.com.cmm.util.StringUtil; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; @@ -36,6 +39,7 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService; @@ -93,12 +97,20 @@ public class VEAdultAsgnmController { //NOTI 서비스 @Resource(name="vEAsgnmNotiService") private VEAsgnmNotiService vEAsgnmNotiService; - + + //과정차시 관리 + @Resource(name = "vEPrcsAplctPrdService") + private VEPrcsAplctPrdService vEPrcsAplctPrdService; + + //강의교환 + @Resource(name="veaLctrExchnOrdGnrService") + private EgovIdGnrService veaLctrExchnOrdGnrService; + + //성인강사 강의 요청 목록 @RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstList.do") public String instrAsgnmRqstList( @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO - , ModelMap model , RedirectAttributes redirectAttributes , HttpSession session @@ -140,8 +152,7 @@ public class VEAdultAsgnmController { } List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); - - + //6.pageing step3 paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo); model.addAttribute("paginationInfo", paginationInfo); @@ -154,10 +165,152 @@ public class VEAdultAsgnmController { //대상 리스트, 페이징 정보 전달 model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList); + + return "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstList"; } + + @RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.do") + public String instrAsgnmListPopup( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getEduAplctOrd()); + System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getEduChasiOrd()); + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //3. SelectPagingListQuery set 할 조건 설정 + String selectCondition = new String(); + //3.1 제출 완료 후 사용중인 데이터 조회 + selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'"; + //3.2 강사 테이블 성인강사여부 Y인것만 조회 + selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') "; + //3.3 이름 검색 시 + if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ + //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; + //이름 암호화 - comDefaultVO 검색단어 공통 암호화 + ComDefaultVO comDefaultVO = new ComDefaultVO(); + comDefaultVO.setSearchKeyword(vEPrcsDetailVO.getSearchKeyword()); + comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); + vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + selectCondition += "AND a.instr_nm LIKE '%'|| '" +vEPrcsDetailVO.getSearchKeyword() + "'|| '%'"; + comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); + vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + } + //3.4 요청일 시작일 검색 시 +// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchStartDt())){ +// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEPrcsDetailVO.getSearchStartDt()+"', '.', '')"; +// } + //3.5 요청일 종료일 검색 시 +// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchEndDt())){ +// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEPrcsDetailVO.getSearchEndDt()+"', '.', '')"; +// } + vEPrcsDetailVO.setInstrDiv("20"); + vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); + + vEPrcsDetailVO.setLoginId(loginVO.getUniqId());; + + List vEInstrDetailVOList = vEPrcsAplctPrdService.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO); + + try { + + vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + } + + //4.pageing step3 + paginationInfo = this.setInstrPagingStep3(vEInstrDetailVOList, paginationInfo); + System.out.println(" ==== vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); + model.addAttribute("vEPrcsDetailVO", vEPrcsDetailVO); + model.addAttribute("paginationInfo", paginationInfo); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEInstrDetailVOList); + + + return "/web/ve/instr/adultVisitEdu/asgnmInfo/popup/instrAsgnmListPopup"; + +// return "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstList"; + } + + @RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.do") + public String instrAsgnmListExchnPopup( + @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + model.addAttribute("ssoLoginVO", ssoLoginVO); + model.addAttribute("loginVO", loginVO); + //로그인 처리==================================== + + + //3.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEInstrAsgnmVO); + + + //4. pageing step2 + vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationInfo); + + vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); + vEInstrAsgnmVO.setInstrDiv("20"); + vEInstrAsgnmVO.setHstryCd("10"); + + try { + System.out.println("session.getAttribute(menuNo).toString()"); + System.out.println(session.getAttribute("menuNo").toString()); + vEInstrAsgnmVO.setMenuNo(session.getAttribute("menuNo").toString()); + }catch(Exception ex) { + ex.printStackTrace(); + vEInstrAsgnmVO.setMenuNo("9991100"); + } + vEInstrAsgnmVO.setSearchAsgnmAprvlCd("20"); + List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); + + //6.pageing step3 + paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + + //fee 계산하기 + //feeSum4Dp +// vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList); + + + return "/web/ve/instr/adultVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup"; + } + //성인강사 강의 추가신청 목록 @RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmAddRqstList.do") @@ -524,6 +677,8 @@ public class VEAdultAsgnmController { return modelAndView; } + + /** * 숙박신청 등록 처리 */ @@ -683,4 +838,55 @@ public class VEAdultAsgnmController { return p_paginationInfo; } + + + + + + //페이징을 위한 처리 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.setRecordCountPerPage(5); + 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 setInstrPagingStep3( + List p_vEInstrDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java index 667051aa..433b0f00 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java @@ -123,4 +123,10 @@ public interface VEAsgnmMIXService { List selectFndtnVisitAsgnmPagingList(VEPrcsDetailVO vEPrcsDetailVO); + VEInstrAsgnmVO findByEduAplctOrdAndEduChasiOrdFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrAsgnmVO); + + void insertFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrAsgnmVO); + + List findAllFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrVO); + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java index e588931d..49a07a07 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java @@ -164,6 +164,13 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable { private String selectRsdneQuery; // 지역쿼리 + private String exchnOrd; + private String exchnCd; + private String toUserId; + private String toEduAplctOrd; + private String toEduChasiOrd; + + public String getMemoCn() { return memoCn; @@ -807,5 +814,35 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable { public void setSelectRsdneQuery(String selectRsdneQuery) { this.selectRsdneQuery = selectRsdneQuery; } + public String getExchnOrd() { + return exchnOrd; + } + public void setExchnOrd(String exchnOrd) { + this.exchnOrd = exchnOrd; + } + public String getExchnCd() { + return exchnCd; + } + public void setExchnCd(String exchnCd) { + this.exchnCd = exchnCd; + } + public String getToUserId() { + return toUserId; + } + public void setToUserId(String toUserId) { + this.toUserId = toUserId; + } + public String getToEduAplctOrd() { + return toEduAplctOrd; + } + public void setToEduAplctOrd(String toEduAplctOrd) { + this.toEduAplctOrd = toEduAplctOrd; + } + public String getToEduChasiOrd() { + return toEduChasiOrd; + } + public void setToEduChasiOrd(String toEduChasiOrd) { + this.toEduChasiOrd = toEduChasiOrd; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java index e55637f8..db8e4c1a 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java @@ -219,5 +219,17 @@ public class VEAsgnmMIXDAO extends EgovAbstractDAO { public List selectFndtnVisitAsgnmPagingList(VEPrcsDetailVO paramVO) { return (List) list("VEAsgnmMIXDAO.selectFndtnVisitAsgnmPagingList", paramVO); } + + public VEInstrAsgnmVO findByEduAplctOrdAndEduChasiOrdFromVeaLctrExchnInfo(VEInstrAsgnmVO paramVO) { + return (VEInstrAsgnmVO) select("VEAsgnmMIXDAO.findByEduAplctOrdAndEduChasiOrdFromVeaLctrExchnInfo", paramVO); + } + + public void insertFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrAsgnmVO) { + insert("VEAsgnmMIXDAO.insertFromVeaLctrExchnInfo", vEInstrAsgnmVO); + } + + public List findAllFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrVO) { + return (List) list("VEAsgnmMIXDAO.findAllFromVeaLctrExchnInfo", vEInstrVO); + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java index 49a0f8e7..31c191d7 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java @@ -200,5 +200,20 @@ public class VEAsgnmMIXServiceImpl implements VEAsgnmMIXService { public List selectFndtnVisitAsgnmPagingList(VEPrcsDetailVO paramVO) { return vEAsgnmMIXDAO.selectFndtnVisitAsgnmPagingList(paramVO); } + + @Override + public VEInstrAsgnmVO findByEduAplctOrdAndEduChasiOrdFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrAsgnmVO) { + return vEAsgnmMIXDAO.findByEduAplctOrdAndEduChasiOrdFromVeaLctrExchnInfo(vEInstrAsgnmVO); + } + + @Override + public void insertFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrAsgnmVO) { + vEAsgnmMIXDAO.insertFromVeaLctrExchnInfo(vEInstrAsgnmVO); + } + + @Override + public List findAllFromVeaLctrExchnInfo(VEInstrAsgnmVO vEInstrVO) { + return vEAsgnmMIXDAO.findAllFromVeaLctrExchnInfo(vEInstrVO); + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java index 65aa0117..3c2bed90 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java @@ -1,5 +1,6 @@ package kcc.ve.instr.tngrVisitEdu.asgnmInfo.web; +import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -15,10 +16,13 @@ import org.springframework.web.bind.annotation.RequestParam; 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.ComDefaultVO; import kcc.com.cmm.EgovMessageSource; import kcc.com.cmm.LoginVO; import kcc.com.cmm.util.IpUtil; +import kcc.com.cmm.util.StringUtil; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; @@ -37,6 +41,7 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService; @@ -95,7 +100,14 @@ public class VEAsgnmController { @Resource(name = "NotifyManageService") private NotifyManageService notifyManageService; + + //강사MIX 정보 + @Resource(name="vEInstrMixService") + private VEInstrMixService vEInstrMixService; + //강의교환 + @Resource(name="veaLctrExchnOrdGnrService") + private EgovIdGnrService veaLctrExchnOrdGnrService; //청소년강사 강의 요청 목록 @RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.do") @@ -150,15 +162,245 @@ public class VEAsgnmController { paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo); model.addAttribute("paginationInfo", paginationInfo); + // 교환상태 확인 + vEInstrAsgnmVOList.stream().forEach(t-> { + + if("20".equals(t.getAsgnmAprvlCd())) { + VEInstrAsgnmVO veaLctrExchnInfo = vEAsgnmMIXService.findByEduAplctOrdAndEduChasiOrdFromVeaLctrExchnInfo(t); + if(veaLctrExchnInfo != null) { + t.setExchnOrd(veaLctrExchnInfo.getExchnOrd()); + t.setExchnCd(veaLctrExchnInfo.getExchnCd()); + } + } + }); //대상 리스트, 페이징 정보 전달 model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList); + + + + // 교환강의신청목록 영역 + // 교환강의신청목록 영역 + // 교환강의신청목록 영역 + + VEInstrAsgnmVO vEInstrVO = new VEInstrAsgnmVO(); + vEInstrVO.setToUserId(loginVO.getUniqId()); + + //3.pageing step1 +// PaginationInfo paginationTwoInfo = this.setPagingStep1(vEInstrAsgnmVO); + + + //4. pageing step2 +// vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationTwoInfo); + + List veaLctrExchnInfo = vEAsgnmMIXService.findAllFromVeaLctrExchnInfo(vEInstrVO); + veaLctrExchnInfo.stream().forEach(t-> { + t.setInstrNm(egovCryptoUtil.decrypt(t.getInstrNm())); + }); + + model.addAttribute("veaLctrExchnInfo", veaLctrExchnInfo); + + //6.pageing step3 +// paginationTwoInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationTwoInfo); +// model.addAttribute("paginationTwoInfo", paginationTwoInfo); + + + return "/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList"; } - //청소년강사 강의 추가신청 목록 + + + @RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.do") + public String instrAsgnmListExchnPopup( + @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + model.addAttribute("ssoLoginVO", ssoLoginVO); + model.addAttribute("loginVO", loginVO); + //로그인 처리==================================== + + + //3.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEInstrAsgnmVO); + + + //4. pageing step2 + vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationInfo); + + vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); + vEInstrAsgnmVO.setInstrDiv("10"); + vEInstrAsgnmVO.setHstryCd("10"); + + try { + System.out.println("session.getAttribute(menuNo).toString()"); + System.out.println(session.getAttribute("menuNo").toString()); + vEInstrAsgnmVO.setMenuNo(session.getAttribute("menuNo").toString()); + }catch(Exception ex) { + ex.printStackTrace(); + vEInstrAsgnmVO.setMenuNo("999231100"); + + } + + vEInstrAsgnmVO.setSearchAsgnmAprvlCd("20"); + + List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); + + + + //6.pageing step3 + paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + + //fee 계산하기 + //feeSum4Dp +// vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList); + + + return "/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup"; + } + + + + + @RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.do") + public String instrAsgnmListPopup( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingInstrStep1(vEInstrDetailVO); + + + //2. pageing step2 + vEInstrDetailVO = this.setPagingInstrStep2(vEInstrDetailVO, paginationInfo); + + //3. SelectPagingListQuery set 할 조건 설정 + String selectCondition = new String(); + //3.1 제출 완료 후 사용중인 데이터 조회 + selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'"; + //3.2 강사 테이블 성인강사여부 Y인것만 조회 + //selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') "; + + + List vEInstrDetailVOList = new ArrayList(); + + //3.3 이름 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){ + //이름 암호화 - comDefaultVO 검색단어 공통 암호화 + ComDefaultVO comDefaultVO = new ComDefaultVO(); + comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword()); + comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); + vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; + selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'"; + comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); + vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + + //정보변경 요청사항 있는 강사부터 조회 + vEInstrDetailVO.setOrderByQuery(" rqstCnt DESC "); + + vEInstrDetailVO.setInstrDiv("10"); + vEInstrDetailVO.setSelectPagingListQuery(selectCondition); + + vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); + + vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); + } + //3.4 요청일 시작일 검색 시 + /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){ + selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')"; + } + //3.5 요청일 종료일 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){ + selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')"; + }*/ + + + //4.pageing step3 + paginationInfo = this.setPagingInstrStep3(vEInstrDetailVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEInstrDetailVOList); + + return "/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup"; + +// return "/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmAddRqstList"; + } + + /** + * 교환 신청 Insert + * 교환 신청 Insert + * 교환 신청 Insert + * 교환 신청 Insert + */ + @RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/insertVeaLctrExchnAjax.do") + public ModelAndView insertVeaLctrExchnAjax( + @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + Boolean isSuccess = true; + String msg = ""; + + //로그인 처리==================================== + //로그인 정보 가져오기 + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + //로그인 처리==================================== + + try { + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + vEInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); + vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); + vEInstrAsgnmVO.setExchnOrd(veaLctrExchnOrdGnrService.getNextStringId()); // 고유ID + vEAsgnmMIXService.insertFromVeaLctrExchnInfo(vEInstrAsgnmVO); + } catch (Exception ex) { + ex.printStackTrace(); + isSuccess = false; + msg = ex.getMessage(); + } + + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + + @RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmAddRqstList.do") public String instrAsgnmAddRqstList( @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO @@ -850,4 +1092,55 @@ public class VEAsgnmController { return p_paginationInfo; } + + + /// 강사 페이징을 위한 paging + + + + //청소년강사 강의 추가신청 목록 + private PaginationInfo setPagingInstrStep3( + List p_vEInstrDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + + private VEInstrDetailVO setPagingInstrStep2( + VEInstrDetailVO p_vEInstrDetailVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm"); + p_vEInstrDetailVO.setSearchSortOrd("desc"); + } + + return p_vEInstrDetailVO; + } + + private PaginationInfo setPagingInstrStep1( + VEInstrDetailVO p_vEInstrDetailVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit()); + paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize()); + + return paginationInfo; + } + + + + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java index ece5ee21..8692cc21 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java @@ -208,6 +208,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable { private String qestnrId20Cnt; private String qestnrId30Cnt; + private String loginId; + public String getEduPrcsOrd() { return eduPrcsOrd; @@ -1013,6 +1015,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable { public void setQestnrId30Cnt(String qestnrId30Cnt) { this.qestnrId30Cnt = qestnrId30Cnt; } + public String getLoginId() { + return loginId; + } + public void setLoginId(String loginId) { + this.loginId = loginId; + } } diff --git a/src/main/resources/egovframework/spring/com/context-idgen.xml b/src/main/resources/egovframework/spring/com/context-idgen.xml index d854b8ba..e6a5c64e 100644 --- a/src/main/resources/egovframework/spring/com/context-idgen.xml +++ b/src/main/resources/egovframework/spring/com/context-idgen.xml @@ -3061,7 +3061,6 @@ - @@ -3075,5 +3074,20 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml index dce722ef..b6320a31 100644 --- a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml @@ -4969,7 +4969,84 @@ - + + + + + + + + + + INSERT INTO VEA_LCTR_EXCHN ( + EXCHN_ORD + , EDU_APLCT_ORD + , EDU_CHASI_ORD + , USER_ID + , EXCHN_CD + , TO_USER_ID + , FRST_REGIST_PNTTM + , FRST_REGISTER_ID + )VALUES( + #exchnOrd#, + #eduAplctOrd#, + #eduChasiOrd#, + #userId#, + '10', + #toUserId#, + SYSDATE, + #userId# + ) + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+
+ + + + --%> + + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.jsp index c22e69c2..b8a7e31b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.jsp @@ -65,6 +65,42 @@ , "scholPop" ); } + + + + function fn_eduRegPopup(eduAplctOrd, eduChasiOrd){ + var data ={ + "eduAplctOrd": eduAplctOrd, + "eduChasiOrd": eduChasiOrd + } + + commonPopLayeropen( + "${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.do" + , 800 + , 800 + , data + , "N" + , "instrAsgnmListPopup" + ); + } + + + + + function fn_eduExchnPopup(exchnOrd){ + var data ={ + "exchnOrd": exchnOrd + } + + commonPopLayeropen( + "${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.do" + , 800 + , 800 + , data + , "N" + , "instrAsgnmListPopup" + ); + } @@ -121,6 +157,7 @@ + @@ -132,6 +169,7 @@ 기관(학교)명 교육대상 신청상태 + 교환상태 @@ -219,6 +257,39 @@ + + + + + + + + + + + + + + + + + + + + + + - + + + +<%-- --%> + @@ -318,3 +389,82 @@ + + + +
+
+

교환강의요청목록

+
+ + +
+
+
+ + +<%-- --%> + + + + + + + + + + + + + + + + +<%-- --%> + +<%-- + + + + + + + + + + +
요청자요청시간요청상태
', '');" style="cursor:pointer;"> --%> + +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> + + +

+ + + + + + + + + + + + + + +
+
+ +<%-- --%> + +
+ diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.jsp new file mode 100644 index 00000000..feab136c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListExchnPopup.jsp @@ -0,0 +1,231 @@ +<%@ 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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ 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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + +
+ + + " /> + " /> +
+ + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.jsp new file mode 100644 index 00000000..90402475 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/asgnmInfo/popup/instrAsgnmListPopup.jsp @@ -0,0 +1,154 @@ +<%@ 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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ 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" %> + + + + +
+ + + " /> + " /> +
+ + + + + + + +