diff --git a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java index 8e3bae8d..ca7c9335 100644 --- a/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java +++ b/src/main/java/kcc/ve/adv/tngr/stngInfo/service/VEAStngVO.java @@ -60,6 +60,8 @@ public class VEAStngVO extends ComDefaultVO implements Serializable { private String dpDdlnDt; //표시용마감일자 private String dpDdlnTm; //표시용마감시간 + private String eduSlctCd; //교육선택코드 //10-온라인, 20-오프라인 + private String rgstrDateState; //일자기준접수상태 0,1,2 -기간전, 기간중, 기간후 @@ -369,5 +371,11 @@ public class VEAStngVO extends ComDefaultVO implements Serializable { public void setUserNm(String userNm) { this.userNm = userNm; } + public String getEduSlctCd() { + return eduSlctCd; + } + public void setEduSlctCd(String eduSlctCd) { + this.eduSlctCd = eduSlctCd; + } } diff --git a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/EduAplctTngrService.java b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/EduAplctTngrService.java index 29ba416a..20ce2cd1 100644 --- a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/EduAplctTngrService.java +++ b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/EduAplctTngrService.java @@ -12,9 +12,13 @@ public interface EduAplctTngrService { boolean eduAplctRegProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; + + boolean eduAplctRegProcess202310(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; boolean eduAplctRegUpdProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; + boolean eduAplctRegUpdProcess202310(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; + boolean eduAplctMdfyProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception; boolean eduAplctChkProcess(VEEduAplctVO vEEduAplctVO , HttpServletRequest request, ModelAndView modelAndView) throws Exception; diff --git a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/impl/EduAplctTngrServiceImpl.java b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/impl/EduAplctTngrServiceImpl.java index 01bb51e7..4cf2fad5 100644 --- a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/impl/EduAplctTngrServiceImpl.java +++ b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/service/impl/EduAplctTngrServiceImpl.java @@ -176,6 +176,92 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService { return true; } + @Override + public boolean eduAplctRegProcess202310(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, MultipartHttpServletRequest multiRequest, ModelAndView modelAndView) throws Exception { + 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 + , "SCHOLSEAL_" //file_name_prefix + , s_file_exts + , i_limit_size + , i_file_limit + ); //EXT, MB size and ea + + if ("ERROR".equals(s_scholSealAtchFileId)) return false; + //step2.파일 처리==================================== + + + //교육신청 번호 생성 및 디비 저장하기 + String eduAplctOrd = eduAplctGnrService.getNextStringId(); // 고유ID + vEEduAplctVO.setEduAplctOrd(eduAplctOrd); + vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); //강의 구분 코드 청소년찾교 + vEEduAplctVO.setScholSealAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일 + vEEduAplctVO.setUserId(loginVO.getUniqId()); + vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + + //저장전 암호화 - VO 단위로 만들어서 사용 + vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO); + + //오프라인 교육을 신청할 때, 해당 지역의 허용가능차시를 초과하면 교육 승인코드를 대기상태로 저장해야 함 + if("Y".equals(vEEduAplctVO.getSbmtYn()) && "20".equals(vEEduAplctVO.getEduSlctCd())) { + chkOffChasiWait202310(vEEduAplctVO, request); + + //온라인 교육을 신청할 때, 해당 지역의 허용가능차시를 초과하면 교육 승인코드를 대기상태로 저장해야 함 + }else if("Y".equals(vEEduAplctVO.getSbmtYn()) && "10".equals(vEEduAplctVO.getEduSlctCd())) { + chkOnChasiWait(vEEduAplctVO, request); + + } + + //저장 + vEEduAplctDAO.insert(vEEduAplctVO); + + //차시 저장 + String[] s_eduHopeDt = request.getParameterValues("eduHopeDt"); + String[] s_strtTm = request.getParameterValues("strtTm"); + String[] s_endTm = request.getParameterValues("endTm"); + String[] s_lrnTm = request.getParameterValues("lrnTm"); + String[] s_divCd = request.getParameterValues("divCd"); + String[] s_trgt = request.getParameterValues("trgt"); + String[] s_prsnl = request.getParameterValues("prsnl"); + + System.out.println("s_divCd.length"); + System.out.println(s_divCd.length); + System.out.println(s_trgt.length); + + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(eduAplctOrd); //교육신청순번 + vEEduChasiVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + + String bb = null; + for (int i=0;i result = fileService.selectFileInfs(fileVO); + if (result.size()<=0) { + s_scholSealAtchFileId = ""; + } + + 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 + + if ("".equals(s_scholSealAtchFileId)) { + s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert( + multiRequest, modelAndView + , "SCHOLSEAL_" + , s_file_exts + , i_limit_size + , i_file_limit + ); //EXT, MB size and ea + }else { + s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate( + multiRequest, modelAndView + , "SCHOLSEAL_" + , s_file_exts + , i_limit_size + , i_file_limit + , s_scholSealAtchFileId + ); //EXT, MB size and ea + } + + if ("ERROR".equals(s_scholSealAtchFileId)) return false; + + //step3.파일 처리==================================== + //교육신청 번호 생성 및 디비 저장하기 + vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); //강의 구분 코드 체험교실 + vEEduAplctVO.setScholSealAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일 + vEEduAplctVO.setUserId(loginVO.getUniqId()); + vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + + //저장전 암호화 - VO 단위로 만들어서 사용 + vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO); + + //오프라인 교육을 신청할 때, 해당 지역의 허용가능차시를 초과하면 교육 승인코드를 대기상태로 저장해야 함 + if("Y".equals(vEEduAplctVO.getSbmtYn()) && "20".equals(vEEduAplctVO.getEduSlctCd())) { + chkOffChasiWait202310(vEEduAplctVO, request); + + //온라인 교육을 신청할 때, 해당 지역의 허용가능차시를 초과하면 교육 승인코드를 대기상태로 저장해야 함 + }else if("Y".equals(vEEduAplctVO.getSbmtYn()) && "10".equals(vEEduAplctVO.getEduSlctCd())) { + chkOnChasiWait202310(vEEduAplctVO, request); + + } + + //수정 + vEEduAplctDAO.updateReg(vEEduAplctVO); + //차시 수정-일괄 삭제 후 저장 + String[] s_eduHopeDt = request.getParameterValues("eduHopeDt"); + String[] s_strtTm = request.getParameterValues("strtTm"); + String[] s_endTm = request.getParameterValues("endTm"); + String[] s_lrnTm = request.getParameterValues("lrnTm"); + String[] s_divCd = request.getParameterValues("divCd"); + String[] s_trgt = request.getParameterValues("trgt"); + String[] s_prsnl = request.getParameterValues("prsnl"); + + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + + //차시 전체 삭제 + vVEEduChasiDAO.delete(vEEduChasiVO); + for (int i=0;i list = vELctrAreaMngDAO.selectList(vELctrDetailVO); @@ -598,6 +762,56 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService { return vEEduAplctVO; } + private VEEduAplctVO chkOffChasiWait202310(VEEduAplctVO vEEduAplctVO, HttpServletRequest request) throws Exception { + + //1. 지역별강의관리의 해당 지역코드의 총수강시간을 가져옴 + VELctrDetailVO vELctrDetailVO = new VELctrDetailVO(); + vELctrDetailVO.setAreaCd(vEEduAplctVO.getEduSlctAreaCd()); + vELctrDetailVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10); //청소년 코드 + String[] s_eduHopeDt = request.getParameterValues("eduHopeDt"); + + boolean waitYn = false; //대기상태 판별 변수 + //차시별로 지역별 총 시간이 초과되는지 확인 + for (int i=0; i list = vELctrAreaMngDAO.selectList(vELctrDetailVO); + int rgstrPsblTm = 0; + if(list.size() > 0) { + rgstrPsblTm = Integer.parseInt(list.get(0).getRgstrPsblTm()); // 해당 지역의 허용가능차시 + } + + //2. 현재 신청한 지역의 토탈시간을 가져옴 (승인상태가 취소(40)가 아닌 건들에 대한 토탈 시간) + aplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); + aplctVO.setEduSlctCd(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인 + //aplctVO.setEduSlctAreaCd(vEEduAplctVO.getEduSlctAreaCd()); + //신청한 전체 차시 + int aplctTotalChasi = vEEduAplctDAO.selectTotalChasi(aplctVO); + + //3. 총수강시간 < 신청한 지역의 토탈시간인 경우 대기(VE0003 : 230) 상태로 세팅 + if(rgstrPsblTm < aplctTotalChasi) { + waitYn = true; + break; + } + } + if(waitYn) { + vEEduAplctVO.setAprvlCd(VeConstants.APRVL_CD_230); + vEEduAplctVO.setIsWait("Y"); + } + + return vEEduAplctVO; + } } diff --git a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java index f7fa3e06..7794dbf4 100644 --- a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java +++ b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java @@ -234,7 +234,7 @@ public class EduAplctTngrController { modelAndView.addObject("result", "loginFail"); return modelAndView; } - boolean flag = eduAplctTngrService.eduAplctRegProcess(vEEduAplctVO, request, multiRequest, modelAndView); + boolean flag = eduAplctTngrService.eduAplctRegProcess202310(vEEduAplctVO, request, multiRequest, modelAndView); if(!flag){ modelAndView.addObject("result", "fail"); diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java index 8c04ff84..56710998 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java @@ -5,8 +5,8 @@ import java.util.List; import org.springframework.stereotype.Repository; import egovframework.rte.psl.dataaccess.EgovAbstractDAO; +import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; @Repository("vEEduAplctDAO") public class VEEduAplctDAO extends EgovAbstractDAO { @@ -119,6 +119,10 @@ public class VEEduAplctDAO extends EgovAbstractDAO { return (int) select("VEEduAplctDAO.selectTotalChasi", paramVO); } + public int selectTotalChasi202310(VEAStngVO paramVO) throws Exception { + return (int) select("VEEduAplctDAO.selectTotalChasi202310", paramVO); + } + public int selectCntAplctPrd(VEEduAplctVO veEduAplctVO) throws Exception { return (int) select("VEEduAplctDAO.selectCntAplctPrd",veEduAplctVO); } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/lctrInfo/service/impl/VELctrAreaMngDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/lctrInfo/service/impl/VELctrAreaMngDAO.java index b041ca13..7530969d 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/lctrInfo/service/impl/VELctrAreaMngDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/lctrInfo/service/impl/VELctrAreaMngDAO.java @@ -64,6 +64,11 @@ public class VELctrAreaMngDAO extends EgovAbstractDAO { return tlist; } + //L + public VEAStngVO selectList202310(VEAStngVO paramVO) throws Exception { + return (VEAStngVO) select("VELctrAreaMngDAO.selectList202310", paramVO); + } + //L public List selectList20231024(VEAStngVO paramVO) throws Exception { List tlist = (List) list("VELctrAreaMngDAO.selectList20231024", paramVO); diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml index bed83408..4ff97926 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml @@ -4,6 +4,7 @@ + @@ -1127,6 +1128,35 @@ AND A.SBMT_YN = 'Y' + + + - + + + +